【SFFAI分享】鄭武:CIA-SSD:自信的IoU可知的單階點(diǎn)云物體檢測器【附PPT與視頻資料】

隨著激光雷達(dá)在機(jī)器人,無人車的領(lǐng)域的推廣應(yīng)用,三維點(diǎn)云的相關(guān)處理技術(shù)作為高精地圖、高精定位、環(huán)境檢測等方向的核心模塊越來越受到重視?,F(xiàn)有的在點(diǎn)云中定位物體的單階段檢測器通常將物體定位和類別分類視為分開的任務(wù),因此定位精度和分類置信度可能無法很好地對齊?!禨FFAI97期三維點(diǎn)云檢測專題》我們邀請到了來自香港中文大學(xué)的鄭武同學(xué),分享他提出的新型檢測方法,解決此問題。
關(guān)注微信公眾號:人工智能前沿講習(xí)
對話框回復(fù)"SFFAI97"
入交流群/推薦論文下載/錄播視頻觀看/講者PPT下載

鄭武,香港中文大學(xué)二年級博士研究生,本科畢業(yè)于清華大學(xué)自動化系,主要研究方向是自動駕駛場景下基于點(diǎn)云的三維物體檢測。
很高興在這里和大家分享一下我們最新的工作:CIA-SSD,自信的IoU可知的單階點(diǎn)云物體檢測器,這份工作已經(jīng)被AAAI 2021接收。這份工作是我和兩位本科實習(xí)生Weiliang Tang & Sijin Chen,我的師姐Li Jiang,在Chi-WingFu教授的指導(dǎo)下完成的。
論文:https://arxiv.org/abs/2012.03015
代碼:https://github.com/Vegeta2020/CIA-SSD今天的報告主要分為5個部分,分別是背景介紹,研究動機(jī),研究方法,實驗結(jié)果,以及最后總結(jié)。
01
背景介紹
我們這份工作要完成的任務(wù)是自動駕駛場景下基于點(diǎn)云的三維物體檢測。三維物體檢測能夠為自動駕駛的車輛提供最基本也是最重要的環(huán)境感知信息,包括行駛道路中的其他車輛和人員的相對位置,這可以為車輛行駛的規(guī)劃和控制提供關(guān)鍵信息,從而確保自身和他人的安全。在圖1右邊的圖片中,我們給出了三維物體檢測的樣例,大家可以看到RGB圖片中的車輛都被三維矩形框精確地框出來,所以獲得物體的三維坐標(biāo),長寬高和水平面的旋轉(zhuǎn)角,就是我們要完成的三維檢測任務(wù)。

目前,三維物體檢測仍然是一個具有挑戰(zhàn)性的任務(wù)。首先體現(xiàn)在檢測精度仍然有待提升,目前精度最高的一類方法主要是基于點(diǎn)云的檢測器,我們的CIA-SSD也是采用的點(diǎn)云作為輸入數(shù)據(jù)。相比于RGB圖片作為感知數(shù)據(jù),點(diǎn)云往往更加魯棒,特別是在霧天或者夜晚,點(diǎn)云依然能夠提供精確地物體三維坐標(biāo),而RGB圖片在這些情形中則很難通過像素確定物體位置。另外,點(diǎn)云的特性使得研究者可以快速地獲取物體深度信息,這對于RGB圖片來說則是一個難題。所以,相比于基于RGB圖片的檢測器,采用點(diǎn)云的檢測器往往能夠獲得更高的精度。
我們在圖2中對近兩年的三維檢測器的性能進(jìn)行了比較。正如二維檢測器一樣,三維檢測器也可以分為單階和二階檢測器,區(qū)別主要在于是否利用第一階網(wǎng)絡(luò)生成的region proposal來提取特征,從而對物體的位置和置信度做進(jìn)一步的refine。
從圖2中,大家可以看到,2019年的時候,精度最高的二階檢測器STD大幅領(lǐng)先于當(dāng)時性能最好的單階檢測器PointPillar。但是進(jìn)入到2020年,以SA-SSD和3DSSD為代表的單階檢測器在精度上獲得大幅提升,并且逐漸逼近了二階檢測器,包括目前最優(yōu)的二階檢測器PV-RCNN, 3D-CVF,所以單階和二階檢測器的精度差距在逐漸縮小。

與此同時,檢測速度和精度一樣,也是三維檢測器的重要衡量指標(biāo),因為速度決定了檢測器是否能夠應(yīng)用到實際場景中去。由于單階檢測器往往具備更加簡單的網(wǎng)絡(luò)結(jié)構(gòu),所以它的檢測速度往往更高,正如圖2中所示,紅線左側(cè)都是單階檢測器,右側(cè)都是二階檢測器,所以單階檢測器的推理時間往往更短。
所以,高效率和快速增長的精度這兩個優(yōu)勢,驅(qū)使我們提出了一個新的單階檢測器CIA-SSD,可以看到,我們的CIA-SSD位于圖2的左上角,它在單階檢測器中具備有最高的精度,同時具備有實時檢測的速度。
02
研究動機(jī)
我們的主要動機(jī)是基于檢測任務(wù)中的一個普遍挑戰(zhàn),即分類置信度和定位精度之間的不對齊問題,或者直接說置信度與real IoU間的不對齊問題,這里的real IoU是指網(wǎng)絡(luò)預(yù)測和真實邊界框的IoU。最理想的對齊情形是指confidence和realIoU完全成正比,我們曾經(jīng)做過一個簡單的實驗,就是把real IoU作為confidence去測averageprecision,我們發(fā)現(xiàn)在KITTI驗證集上可以達(dá)到90%以上的精度,所以bounding box回歸不夠準(zhǔn)確并不一定是性能無法提升的主要障礙。相反,這個主要障礙是置信度和real IoU之間的不對齊。
圖3中展示了一個不對齊的樣例,我在每個預(yù)測的bounding box旁邊給出了confidence和realIoU, 可以看到兩個紅色框的樣本,置信度更高的為0.94的預(yù)測樣本反而real IoU更低,只有0.81,這就說明了不對齊問題。在圖3右邊的圖中,我們給出了驗證集中預(yù)測框的IoU和confidence的統(tǒng)計散點(diǎn)圖,可以看出,有大量的樣本是不對齊的。

為了緩解這個不對齊問題,我們提出了IoU可知的置信度校正模塊。我們通過利用單階檢測器來預(yù)測真實框和預(yù)測框之間的IoU,然后用這個預(yù)測的IoU來校正已有的分類得分,從而緩解不對齊問題。一般來說,由于軟的IoU目標(biāo)相比于one-hot的分類目標(biāo),能夠促使網(wǎng)絡(luò)預(yù)測出和定位精度更加一致的置信度,所以用預(yù)測的IoU作為置信度成為二階檢測器提升性能的一個重要方法。在二階檢測器中,它們通過提取region proposal的特征,可以預(yù)測到非常準(zhǔn)確的IoU來作為置信度。但是單階檢測器的特征都是和anchor對齊的,所以很難得到準(zhǔn)確的IoU預(yù)測值。盡管如此,我們發(fā)現(xiàn)基于anchor特征預(yù)測的IoU依然是和Real IoU大致成正比的,當(dāng)我們用一個冪函數(shù)對預(yù)測IoU進(jìn)行編碼后,這種相關(guān)性得到了進(jìn)一步加強(qiáng),這個發(fā)現(xiàn)為我們在單階檢測器中校正置信度創(chuàng)造了可能性。

除此之外,我們還提出了一個輕量的空間語義特征聚合模塊。之前的方法中,BEV的特征提取往往都是采用幾層直接疊加的卷積層,我們認(rèn)為這種網(wǎng)絡(luò)結(jié)構(gòu)雖然可以提取到較好的高層語義特征,但是容易忽略掉淺層的空間特征,導(dǎo)致檢測精度無法有效提升。我們知道,空間特征對于精確地定位物體很重要,高層語義特征則對于判斷樣本的正負(fù)性比較重要。因此,我們采用淺層卷積層獲取空間特征,再采用高層卷積層獲取語義特征,最后則采用attention模塊對這兩類特征進(jìn)行融合,從而有效提升檢測精度。

最后,我們提出了距離可變的IoU加權(quán)NMS用于后處理,據(jù)我們所知,這是第一個考慮深度信息的NMS方法,因為2D檢測中是不需要考慮深度信息的,我們提出這個NMS方法,是為了獲取更加平滑的回歸邊界框,并且更有效得移除冗余的邊界框,特別是false positive的邊界框。
03
研究方法
圖6是我們CIA-SSD的pipeline,可以看出,整個框架由5個部分組成,其中part (c)-(e)是我們設(shè)計的部分。下面我對每個部分分別進(jìn)行介紹。

其中,對于part (a) ,我們遵循常規(guī)的設(shè)置對點(diǎn)云數(shù)據(jù)進(jìn)行預(yù)處理,主要包括一些常用的數(shù)據(jù)增強(qiáng)方法;對于part(b), 我們則采用稀疏卷積層來提取體素的三維特征,具體網(wǎng)絡(luò)結(jié)構(gòu)可以參考我們的論文。

接下來我將介紹part(c)和(d),也就是我們的空間語義特征聚合模塊。正如之前所介紹的,在物體檢測中,低級空間特征對于回歸物體的精確位置很重要,而高級語義特征對于對正樣本/負(fù)樣本的準(zhǔn)確分類很重要。因此,在part(c)中,我們采用兩個卷積組,即淺層的空間卷積組(紅色標(biāo)記的)和深層的語義卷積組(綠色標(biāo)記的)分別來提取這兩種特征,其中語義卷積組的特征channel增加為空間卷積組的2倍,但是spatial size則縮小了1/4,這樣做的好處是,一方面有利于提取更加抽象的語義特征,另一方面可以降低卷積的計算量。
此后,為了將兩種特征進(jìn)行融合,我們首先用解卷積來恢復(fù)語義特征的spatial size, 并和空間特征做逐像素相加,從而豐富空間特征的語義信息,得到了富語義的空間特征(藍(lán)色標(biāo)記的)。我們同時用另外一層解卷積來恢復(fù)語義特征的spatial size,得到放大的語義特征(黃色標(biāo)記的)。

最后,我們在part(d)中采用attentional fusion來自適應(yīng)地融合(藍(lán)色的)富語義空間特征和(黃色的)放大的語義特征。我們首先用卷積層分別計算了兩個特征的attention mask,這兩個卷積層的卷積核是1x1,輸出的channel是1,所以可以理解為兩個全連接層,它們的計算量也很小。然后,我們對這兩個attention mask在每個位置做softmax,從而得到featuremap的兩組權(quán)重, 這兩組權(quán)重在每個位置的和都是1。最后我們將這兩組權(quán)重分別和對應(yīng)的特征做加權(quán),再將加權(quán)的特征逐像素相加,得到最后的BEV特征。
我們說這個空間語義聚合模塊是輕量的,是因為相比于SA-SSD的BEV網(wǎng)絡(luò)結(jié)構(gòu),計算量大概是60%,雖然我們的卷積層更多,但是絕大部分的channel數(shù)量128,而SA-SSD的channel數(shù)量都是256,我們只有語義卷積層的channel是256,但是它的spatialsize是SA-SSD的1/4,所以總的計算量只占6成左右。另外,即使相比于SECOND中channel只有128的BEV網(wǎng)絡(luò)結(jié)構(gòu),我們增加的復(fù)雜度也是很少的。
最后,我想說的是的SSFA模塊所提取的BEV特征是非常魯棒的,對于提升BEV檢測性能和小物體檢測效果都是明顯的,這是論文中沒有體現(xiàn)的,所以我在這里補(bǔ)充一下。
Part(e)是一個多任務(wù)檢測頭,它包括有bounding box的正負(fù)性分類,bounding box的IoU回歸,boundingbox自身的回歸,以及bounding box方向的分類。相比于常規(guī)的檢測器,我們在這里僅僅增加了bounding box的IoU回歸。基于這個預(yù)測的IoU,我們設(shè)計了一個置信度函數(shù)來校正分類得分。而基于校正后的置信度,我們進(jìn)一步設(shè)計了DI-NMS來對預(yù)測的bounding box進(jìn)行后處理。接下來,我們將分別介紹置信度校正模塊和DI-NMS模塊。

我們的置信度校正模塊稱為IoU可知的置信度校正模塊。首先,我們對單階檢測器在KITTI驗證集上所預(yù)測的IoU進(jìn)行了統(tǒng)計分析,從圖10(a)中可以看到,預(yù)測的IoU和真實的IoU并不完全匹配,而且當(dāng)real IoU偏低時,它所對應(yīng)的預(yù)測IoU具有較大的標(biāo)準(zhǔn)差,也就是說它有一個較大的震蕩區(qū)間,這種現(xiàn)象是容易解釋的,比如,當(dāng)anchor特征能夠生成一個非常精準(zhǔn)的預(yù)測框時,那么它應(yīng)該包含了足夠的位置信息,因而所預(yù)測的IoU應(yīng)該較大并且震蕩很??;相反,如果anchor遠(yuǎn)離檢測目標(biāo),那么它很難包含充分的物體位置信息,從而容易生成較低的預(yù)測IoU,并且這種預(yù)測是不準(zhǔn)確的,因而容易有較大偏差。
盡管如此,我們還是可以看到real IoU和真實的IoU依然是大致成正比的。為了抑制低IoU預(yù)測值的震蕩,并增加高IoU和低IoU預(yù)測值之間的差距,我們用冪函數(shù)對預(yù)測的IoU進(jìn)行編碼。正如圖10(b)所示,當(dāng)我們求取預(yù)測IoU的四次方時,低IoU預(yù)測值的震蕩區(qū)間變小,并且高IoU和低IoU預(yù)測值之間的差距則增大,使得預(yù)測IoU和真實IoU之間的相關(guān)新更強(qiáng)了。

當(dāng)我們直接使用預(yù)測IoU或者它的冪函數(shù)作為置信度時,相比于采用分類得分作為置信度,精度并不能提升。為了利用預(yù)測IoU和真實IoU之間的相關(guān)性,我們用預(yù)測IoU來校正分類得分:即將預(yù)測IoU的多次方和分類得分相乘,來獲得校正后的置信度。所以,我們的IoU可知的校正模塊實際上就是一個簡單的校正函數(shù),稱為置信度函數(shù)。其中c是分類得分,i是預(yù)測的IoU,常數(shù)beta是一個超參數(shù)。需要注意的是,有一種質(zhì)疑是我們的校正模塊和Focal Loss很像,在這里我們需要澄清,我們的置信度校正只是一個后處理技術(shù),只在測試時使用,并不參與網(wǎng)絡(luò)訓(xùn)練,并且二者的motivation也完全不同。
最后,我在這里給出不同beta值下的moderate AP和真實IoU與校正后的置信度間的皮爾森相關(guān)系數(shù)。可以看到,當(dāng)beta值設(shè)為4的時候,皮爾森相關(guān)系數(shù)達(dá)到峰值,對應(yīng)的精度也達(dá)到峰值,證明了我們這個模塊的有效性。
總的來說,我們的校正模塊非常易于實現(xiàn),只是在多任務(wù)頭中添加了一個卷積層來預(yù)測IoU,在測試時也只需要做一個乘法和冪函數(shù)計算,相比于SA-SSD中的PSWarp校正模塊,我們的方法明顯是更加簡單并且易于實現(xiàn)的。
在我們完成置信度校正后,我們又設(shè)計了可變距的IoU加權(quán)NMS對預(yù)測框進(jìn)行后處理。我們觀察到,近距離的預(yù)測框通常比較準(zhǔn)確,因為點(diǎn)云非常密集,能夠提供非常充分的物體位置信息;而遠(yuǎn)處的預(yù)測框則容易出現(xiàn)偏差,因為點(diǎn)云非常稀疏,特別是在預(yù)測框的方向上,容易出現(xiàn)左右搖擺。所以距離是一個影響預(yù)測結(jié)果的重要因素,因此,為了獲得更加平滑的預(yù)測框,我們將距離因素sigma考慮進(jìn)了我們的NMS方法。在我們算法的第8步中,我們設(shè)定sigma和物體離原點(diǎn)距離是成正比的,所以,在我們的高斯加權(quán)平均中,我們首先選出置信度最高的預(yù)測框,在這個預(yù)測框離原點(diǎn)較近時,那些同它具有較大IoU的其他預(yù)測框?qū)峙涿黠@較高的權(quán)重,這是因為近距離情形下的預(yù)測框相對更加準(zhǔn)確,所以我們應(yīng)該給與他們更高的權(quán)重;相反,當(dāng)這個置信度最高的預(yù)測框離原點(diǎn)較遠(yuǎn)時,與之具有不同IoU的其他預(yù)測框都會分配相對均勻的權(quán)重,因為遠(yuǎn)距離預(yù)測框精度不高,通過這種相對均勻加權(quán)有利于獲得平滑的結(jié)果,特別是對那些方向上出現(xiàn)左右搖擺的預(yù)測框非常有效。

此外,我們還觀察到,有一些anchor被錯誤的激活了,去回歸一些與車輛具有相似特征的物體,比如墻壁、花壇等等,因為它們可能具備和汽車相似的棱角和高度特征。但是這些物體和真實的檢測目標(biāo)仍然是有差距的,所以被錯誤激活的anchor數(shù)量通常比較少,因此我們在第7步中求取了一個累加和,在第10步中,我們用一個簡單的閾值進(jìn)行過濾,這種方法就有效的過濾掉了一部分false positives。
這就是我們DI-NMS方法的兩個考慮因素和設(shè)計方法,在3D NMS領(lǐng)域,我們提出的DI-NMS應(yīng)該是對3D NMS方法改進(jìn)的第一次嘗試。
我們這里還給出了一個效果說明圖,圖12原本是比較CIA-SSD和SA-SSD的檢測效果,但是也能用來說明我們DI-NMS的效果。第一張圖是RGB的正視圖,第二張和第三張分別是SA-SSD和CIA-SSD點(diǎn)云檢測的側(cè)視圖,一方面我們可以看到左邊的三個檢測框,由于DI-NMS可以獲得更加平滑的結(jié)果,所以我們所預(yù)測的綠色檢測框能夠和真實的紅色框更好的對齊;另一方面,DI-NMS能夠有效抑制遠(yuǎn)距離的False Positive,所以SA-SSD誤檢到的最右端的綠色檢測框,我們的CIA-SSD有效的過濾掉了。

04
實驗結(jié)果
我們的實驗主要是在KITTI數(shù)據(jù)集汽車類別上進(jìn)行的。KITTI數(shù)據(jù)集是自動駕駛領(lǐng)域三維物體檢測的經(jīng)典數(shù)據(jù)集,目前它的檢測精度仍然有較大的提升空間;汽車類別是KITTI中最重要的檢測類別,也是樣本數(shù)量最大的類別,所以在汽車類別上的檢測精度是評估模型的關(guān)鍵尺度。

我們首先給出了在KITTI測試集上汽車類別的Easy/Moderate/HardAP,其中ModerateAP是所有方法的排名尺度。從這張表中,可以看到我們的CIA-SSD成為了state-of-the-art的單階檢測器,它領(lǐng)先于之前的SA-SSD接近0.5個點(diǎn),并且也超越了除PV-RCNN之外的所有二階檢測器。
除了精度,我們的檢測速度也得到了提升。例如,相比于之前精度最高的單階檢測器SA-SSD,我們的推理時間下降了1/4;而相比于之前速度最高的單階檢測器TANet,我們的CIA-SSD仍然更快,并且精度更高。和二階檢測器相比,我們的推理時間至少減少了1/2,并且精度超越了絕大部分的二階檢測器。
這里我們給出了最新的單階檢測器的精度和推理速度的散點(diǎn)圖??梢钥吹剑覀兊腃IA-SSD位于圖14的左上方,意味著它同時具備有更高的精度和速度。從速度上來看,僅有CIA-SSD和PointPillar達(dá)到了實時檢測的速度,也就是超過了30 FPS的閾值。我們的CIA-SSD在速度上僅次于PointPillar,但是在精度上卻大幅領(lǐng)先。所以,總的來說,CIA-SSD具備有更高的實用價值。

下面,我們對運(yùn)行時間做進(jìn)一步分析。CIA-SSD的運(yùn)行時間30.76ms,是通過計算模型在整個驗證集上運(yùn)行的總時間,再除以驗證集樣本數(shù),從而得到單個樣本的推理時間。這個單樣本的推理時間,包括2.84ms的數(shù)據(jù)預(yù)處理時間,24.33ms的網(wǎng)絡(luò)推理時間,以及3.59ms的后處理時間。數(shù)據(jù)預(yù)處理時間指的是數(shù)據(jù)傳進(jìn)網(wǎng)絡(luò)之前的時間,包括載入數(shù)據(jù),數(shù)據(jù)增強(qiáng),體素化等等;網(wǎng)絡(luò)推理時間是指從讀入數(shù)據(jù)到多任務(wù)檢測頭輸出結(jié)果所耗費(fèi)的時間;后處理是指從拿到多任務(wù)檢測頭的輸出,到產(chǎn)生最終的結(jié)果所耗費(fèi)的時間。

盡管CIA-SSD和SA-SSD都是建立在SECOND網(wǎng)絡(luò)基礎(chǔ)上,但是CIA-SSD的運(yùn)行時間相比SA-SSD下降了約1/4。一方面是因為我們的BEV網(wǎng)絡(luò),也就是空間語義特征聚合模塊復(fù)雜度更低;另一方面是因為,我們對代碼進(jìn)行了很多優(yōu)化,其中效果最明顯的地方在于體素化這一部分。接下來我們介紹消融學(xué)習(xí)的結(jié)果。我們的CIA-SSD主要由3個模塊構(gòu)成,分別是SSFA,CF,和DI-NMS,從表中可以看到,三個模塊對精度的增長都有所貢獻(xiàn),證明了三個模塊都是非常有效的,特別是其中CF模塊,也就是置信度校正,方法非常簡單,但是對性能的提升非常明顯,所以證明了我們的研究動機(jī)和研究方法都是得當(dāng)?shù)?。然后,我們所提出的三個模塊都是即插即用的,并且易于實現(xiàn),所以很容易嵌入到其他框架中,具有較高的可拓展性。

這里我們給出了一些可視化的檢測結(jié)果(見圖17),一共包括6個場景,每個場景中的紅色框是ground truth, 綠色框是CIA-SSD的檢測結(jié)果。從這些結(jié)果中可以看到,我們的CIA-SSD對于近點(diǎn)、遠(yuǎn)點(diǎn)、不同旋轉(zhuǎn)角和不同物體密度的情形下,都成得到較高的檢測精度。

05
總結(jié)
總的來說,我們這份工作的貢獻(xiàn)可以分為三點(diǎn),第一,是我們提出了一種IoU可知的置信度校正模塊,這個模塊非常高效并易于實現(xiàn),可以有效提升單階檢測器的精度;第二,我們提出了空間語義特征聚合模塊,這是一個輕量的BEV特征提取模塊,可以提取魯棒的BEV特征,提升檢測器精度;第三,我們提出了可變距離的IoU加權(quán)NMS方法用于后處理,可以獲得更加平滑的預(yù)測框,并減少False Positive的數(shù)量。

基于這三點(diǎn),我們的CIA-SSD在三維單階點(diǎn)云檢測器中獲得了最高的精度,并且取得了非常高的推理速度。
