自動(dòng)駕駛傳感器融合:激光雷達(dá)+攝像頭
來自于點(diǎn)擊下方卡片,關(guān)注“新機(jī)器視覺”公眾號(hào)
視覺/圖像重磅干貨,第一時(shí)間送達(dá)

一. 前言
自動(dòng)駕駛感知技術(shù)所采用的傳感器主要包括攝像頭,激光雷達(dá)和毫米波雷達(dá)。這些傳感器各有優(yōu)缺點(diǎn),也互為補(bǔ)充,因此如何高效的融合多傳感器數(shù)據(jù),也就自然的成為了感知算法研究的熱點(diǎn)之一。本篇文章介紹如何在感知任務(wù)中融合激光雷達(dá)和攝像頭,重點(diǎn)是目前主流的基于深度學(xué)習(xí)的融合算法。
攝像頭產(chǎn)生的數(shù)據(jù)是2D圖像,對(duì)于物體的形狀和類別的感知精度較高。深度學(xué)習(xí)技術(shù)的成功起源于計(jì)算機(jī)視覺任務(wù),很多成功的算法也是基于對(duì)圖像數(shù)據(jù)的處理,因此目前基于圖像的感知技術(shù)已經(jīng)相對(duì)成熟。圖像數(shù)據(jù)的缺點(diǎn)在于受外界光照條件的影響較大,很難適用于所有的天氣條件。對(duì)于單目系統(tǒng)來說,獲取場(chǎng)景和物體的深度(距離)信息也比較困難。雙目系統(tǒng)可以解決深度信息獲取的問題,但是計(jì)算量很大。激光雷達(dá)在一定程度上彌補(bǔ)了攝像頭的缺點(diǎn),可以精確的感知物體的距離,但是限制在于成本較高,車規(guī)要求難以滿足,因此在量產(chǎn)方面比較困難。同時(shí),激光雷達(dá)生成的3D點(diǎn)云比較稀疏(比如垂直掃描線只有64或128)。對(duì)于遠(yuǎn)距離物體或者小物體來說,反射點(diǎn)的數(shù)量會(huì)非常少。
如下圖所示,圖像數(shù)據(jù)和點(diǎn)云存在著巨大的差別。首先是視角不同,圖像數(shù)據(jù)是真實(shí)世界通過透視投影得到的二維表示,而三維點(diǎn)云則包含了真實(shí)世界歐式坐標(biāo)系中的三維信息,可以投影到多種視圖。其次是數(shù)據(jù)結(jié)構(gòu)不同,圖像數(shù)據(jù)是規(guī)則的,有序的,稠密的,而點(diǎn)云數(shù)據(jù)是不規(guī)則的,無序的,稀疏的。在空間分辨率方面,圖像數(shù)據(jù)也比點(diǎn)云數(shù)據(jù)高很多。

自動(dòng)駕駛感知系統(tǒng)中有兩個(gè)典型的任務(wù):物體檢測(cè)和語(yǔ)義分割。深度學(xué)習(xí)技術(shù)的興起首先來自視覺領(lǐng)域,基于圖像數(shù)據(jù)的物體檢測(cè)和語(yǔ)義分割已經(jīng)被廣泛和充分的研究,也有很多非常全面的綜述文章,這里就不贅述了。另一方面,隨著車載激光雷達(dá)的不斷普及以及一些大規(guī)模數(shù)據(jù)庫(kù)的發(fā)布,點(diǎn)云數(shù)據(jù)處理的研究這幾年來發(fā)展也非常迅速。本專欄之前的兩篇文章分別介紹了點(diǎn)云物體檢測(cè)和語(yǔ)義分割的發(fā)展情況,感興趣的朋友可以參考。下面以物體檢測(cè)任務(wù)為主來介紹不同的融合方法。語(yǔ)義分割的融合方法可以由物體檢測(cè)擴(kuò)展得到,就不做單獨(dú)介紹了。
2. 不同的融合策略
物體檢測(cè)的策略分為:決策層融合,決策+特征層融合,以及特征層融合。在決策層融合中,圖像和點(diǎn)云分別得到物體檢測(cè)結(jié)果(BoundingBox),轉(zhuǎn)換到統(tǒng)一坐標(biāo)系后再進(jìn)行合并。這種策略中用到的大都是一些傳統(tǒng)的方法,比如IoU計(jì)算,卡爾曼濾波等,與深度學(xué)習(xí)關(guān)系不大,本文就不做介紹了。下面重點(diǎn)來講講后兩種融合策略。
2.1 決策+特征層融合
這種策略的主要思路是將先通過一種數(shù)據(jù)生成物體的候選框(Proposal)。如果采用圖像數(shù)據(jù),那么生成的就是2D候選框,如果采用點(diǎn)云數(shù)據(jù),那么生成的就是3D候選框。然后將候選框與另外一種數(shù)據(jù)相結(jié)合來生成最終的物體檢測(cè)結(jié)果(也可以再重復(fù)利用生成候選框的數(shù)據(jù))。這個(gè)結(jié)合的過程就是將候選框和數(shù)據(jù)統(tǒng)一到相同的坐標(biāo)系下,可以是3D點(diǎn)云坐標(biāo)(比如F-PointNet),也可以是2D圖像坐標(biāo)(比如IPOD)。
F-PointNet[2]由圖像數(shù)據(jù)生成2D物體候選框,然后將這些候選框投影到3D空間。每個(gè)2D候選框在3D空間對(duì)應(yīng)一個(gè)視椎體(Frustum),并將落到視椎體中所有點(diǎn)合并起來作為該候選框的特征。視椎體中的點(diǎn)可能來自前景的遮擋物體或者背景物體,所以需要進(jìn)行3D實(shí)例分割來去除這些干擾,只保留物體上的點(diǎn),用來進(jìn)行后續(xù)的物體框估計(jì)(類似PointNet中的處理方式)。這種基于視椎的方法,其缺點(diǎn)在于每個(gè)視椎中只能處理一個(gè)要檢測(cè)的物體,這對(duì)于擁擠的場(chǎng)景和小目標(biāo)(比如行人)來說是不能滿足要求的。

針對(duì)視椎的上述問題,IPOD[3]提出采用2D語(yǔ)義分割來替換2D物體檢測(cè)。首先,圖像上的語(yǔ)義分割結(jié)果被用來去除點(diǎn)云中的背景點(diǎn),這是通過將點(diǎn)云投影到2D圖像空間來完成的。接下來,在每個(gè)前景點(diǎn)處生成候選物體框,并采用NMS去除重疊的候選框,最后每幀點(diǎn)云大約保留500個(gè)候選框。同時(shí),PointNet++網(wǎng)格被用來進(jìn)行點(diǎn)特征提取。有了候選框和點(diǎn)特征,最后一步采用一個(gè)小規(guī)模的PointNet++來預(yù)測(cè)類別和準(zhǔn)確的物體框(當(dāng)然這里也可以用別的網(wǎng)絡(luò),比如MLP)。IPOD在語(yǔ)義分割的基礎(chǔ)上生成了稠密的候選物體框,因此在含有大量物體和互相遮擋的場(chǎng)景中效果比較好。

上面兩個(gè)方法分別通過2D圖像上的物體檢測(cè)和語(yǔ)義分割結(jié)果來生成候選框,然后只在點(diǎn)云數(shù)據(jù)上進(jìn)行后續(xù)的處理。SIFRNet[4]提出在視椎體上融合點(diǎn)云和圖像特征,以增強(qiáng)視椎體所包含的信息量,用來進(jìn)一步提高物體框預(yù)測(cè)的質(zhì)量。

近年來,隨著3D物體檢測(cè)技術(shù)的快速發(fā)展,物體候選框的選取也從逐漸從2D向3D轉(zhuǎn)變。MV3D[5]是基于3D候選框的代表性工作。首先,它將3D點(diǎn)云映射到BEV視圖,并基于此視圖生成3D物體候選框。然后,將這些3D候選框映射到點(diǎn)云的前視圖以及圖像視圖,并將相應(yīng)的特征進(jìn)行融合。特征融合是以候選框?yàn)榛A(chǔ),并通過ROI pooling來完成的。

AVOD[6]的思路也是在3D候選框的基礎(chǔ)上融合圖像和點(diǎn)云特征。但是原始候選框的生成并不是通過點(diǎn)云處理得到,而是通過先驗(yàn)知識(shí)在BEV視圖下均勻采樣生成的(間隔0.5米,大小為各個(gè)物體類的均值)。點(diǎn)云數(shù)據(jù)用來輔助去除空的候選框,這樣最終每幀數(shù)據(jù)會(huì)產(chǎn)生8萬(wàn)到10萬(wàn)個(gè)候選框。這些候選框通過融合的圖像和點(diǎn)云特征進(jìn)行進(jìn)一步篩選后,作為最終的候選再送入第二階段的檢測(cè)器。因此,也可以認(rèn)為AVOD的候選框是同時(shí)在圖像和點(diǎn)云上得到的。

2.2 特征層融合
決策+特征層融合的特點(diǎn)是以物體候選框?yàn)橹行膩砣诤喜煌奶卣鳎诤系倪^程中一般會(huì)用到ROI pooling(比如雙線性插值),而這個(gè)操作會(huì)導(dǎo)致空間細(xì)節(jié)特征的丟失。另外一種思路是特征層融合,也就是直接融合多種特征。比如說將點(diǎn)云映射到圖像空間,作為帶有深度信息的額外通道與圖像的RGB通道進(jìn)行合并。這種思路簡(jiǎn)單直接,對(duì)于2D物體檢測(cè)來說效果不錯(cuò)。但是融合的過程丟失了很多3D空間信息,因此對(duì)于3D物體檢測(cè)來說效果并不好。由于3D物體檢測(cè)領(lǐng)域的迅速發(fā)展,特征層融合也更傾向于在3D坐標(biāo)下完成,這樣可以為3D物體檢測(cè)提供更多信息。
ContFuse[7]采用連續(xù)卷積(Continuous Convolution)來融合點(diǎn)云和圖像特征。融合過程在BEV視圖下完成。對(duì)于BEV上的一個(gè)像素(網(wǎng)格),首先在點(diǎn)云數(shù)據(jù)中找到其K個(gè)最鄰近的點(diǎn),然后將這些3D空間中的點(diǎn)映射到圖像空間,以此得到每個(gè)點(diǎn)的圖像特征。同時(shí),每個(gè)點(diǎn)的幾何特征則是該點(diǎn)到相應(yīng)BEV像素的XY偏移量。將圖像特征和幾何特征合并作為點(diǎn)特征,然后按照連續(xù)卷積的做法對(duì)其進(jìn)行加權(quán)求和(權(quán)重依賴于XY偏移量),以得到相應(yīng)BEV像素處的特征值。對(duì)BEV的每個(gè)像素進(jìn)行類似處理,就得到了一個(gè)BEV特征圖。這樣就完成了圖像特征到BEV視圖的轉(zhuǎn)換,之后就可以很方便的與來自點(diǎn)云的BEV特征進(jìn)行融合。ContFuse中在多個(gè)空間分辨率下進(jìn)行了上述的特征融合,以提高對(duì)不同大小物體的檢測(cè)能力。

PointPainting[8]把點(diǎn)云投影到圖像語(yǔ)義分割的結(jié)果中,這與IPOD中的做法類似。但是,PointPainting沒有利用語(yǔ)義分割的結(jié)果來分離前景點(diǎn),而是直接將語(yǔ)義分割的信息附加到點(diǎn)云上。這樣做的好處是,融合之后的數(shù)據(jù)還是點(diǎn)云(但是具有更為豐富的語(yǔ)義信息),可以采用任何點(diǎn)云物體檢測(cè)網(wǎng)絡(luò)來處理,比如PointRCNN,VoxelNet,PointPillar等等。

PointPainting中附加給點(diǎn)云的是2D圖像的語(yǔ)義信息,這已經(jīng)是高度抽象之后的信息,而原始的圖像特征則被丟棄了。從融合的角度來看,底層特征的融合可以更大程度的保留信息,利用不同特征之間的互補(bǔ)性,理論上說也就更有可能提升融合的效果。MVX-Net[9]利用一個(gè)實(shí)現(xiàn)訓(xùn)練好的2D卷積網(wǎng)絡(luò)來提取圖像特征,然后通過點(diǎn)云和圖像之間的映射關(guān)系將圖像特征附加到每個(gè)點(diǎn)上。之后再采用VoxelNet來處理融合后的點(diǎn)特征。除了這種點(diǎn)融合策略,MVX-Net還提出了在voxel層次上融合,其主要的不同就在于將voxel而不是point投影到圖像空間,因此圖像特征是被附加在voxel之上。從實(shí)驗(yàn)結(jié)果來看,point融合比voxel融合結(jié)果略好,這也進(jìn)一步說明了較低的融合層次可能會(huì)帶來更好的效果。

語(yǔ)義分割任務(wù)中的融合一般都是在特征層上進(jìn)行,之前介紹的特征融合方法理論上來說可以用來進(jìn)行語(yǔ)義分割。比如說,ContFuse在BEV網(wǎng)格上融合了圖像和點(diǎn)云特征,這個(gè)特征就可以用來進(jìn)行網(wǎng)格級(jí)別的語(yǔ)義分割,而PointPainting將圖像特征附加到點(diǎn)云上,后續(xù)可以采用任何基于點(diǎn)云語(yǔ)義分割的算法來對(duì)每個(gè)點(diǎn)進(jìn)行語(yǔ)義分類,甚至也可以進(jìn)行實(shí)例分割和全景分割。
3. 結(jié)果對(duì)比
這里我們來總結(jié)和定量的對(duì)比一下前面介紹的各種融合方法。準(zhǔn)確度指標(biāo)采用采用KITTI數(shù)據(jù)庫(kù)上3D車輛檢測(cè)中等難度的AP(70% IoU),速度指標(biāo)采用FPS(運(yùn)行的硬件不同,因此不具備完全的可比性)。下表中融合方法一欄中的D+F表示決策+特征層融合,之后的2D/3D表示是在2D圖像還是3D點(diǎn)云上提取物體候選框。F表示特征層融合,之后的BEV和Point表示融合的位置??傮w來說,特征層融合的效果較好,基于Point的融合也優(yōu)于基于BEV的融合。
| 算法 | 融合方法 | 準(zhǔn)確度(AP) | 速度(FPS) |
|---|---|---|---|
| F-PointNet | D+F, 2D | 69.79 | 5.9 |
| IPOD | D+F, 2D | 72.57 | 5.0 |
| SIFRNet | D+F, 2D | 72.05 | - |
| MV3D | D+F, 3D | 63.63 | 2.8 |
| AVOD | D+F, 2D+3D | 71.76 | 12.5 |
| ContFuse | F, BEV | 68.78 | 16.7 |
| PointPainting | F, Point | 71.70 | 2.5 |
| MVX-Net | F, Point | 77.43 | - |
作為對(duì)比,只基于點(diǎn)云數(shù)據(jù)的VoxelNet其AP為64.17,MVX-Net將圖像特征附加到點(diǎn)云上之后再采用VoxelNet就可以將AP提升到77.43,提升的幅度還是非常可觀的。PointPainting中的對(duì)比實(shí)驗(yàn)也展示了類似的提升。下圖是分別在KITTI和NuScenes上進(jìn)行的對(duì)比實(shí)驗(yàn)。PointPillar,VoxelNet,和PointRCNN這三個(gè)點(diǎn)云物體檢測(cè)的常用方法在結(jié)合了圖像特征后都有了很大幅度的提升。尤其是對(duì)于行人和騎車的人這兩個(gè)類來說,提升的幅度更大,這也證明了分辨率較高的圖像特征對(duì)小目標(biāo)的檢測(cè)有很大的幫助。

參考文獻(xiàn)
[1] Cui et.al., Deep Learning for Image and Point Cloud Fusion in Autonomous Driving: A Review, 2020.
[2] Qi et.al., Frustum Pointnets for 3d Object Detection from RGB-D Data, 2018.
[3] Yang et.al., IPOD: Intensive Point-based Object Detector for Point Cloud, 2018.
[4] Zhao et.al., 3D Object Detection Using Scale Invariant and Feature Re-weighting Networks, 2019.
[5] Chen et.al., Multi-View 3D Object Detection Network for Autonomous Driving, 2016.
[6] Ku et.al., Joint 3D Proposal Generation and Object Detection from View Aggregation, 2017.
[7] Liang et.al., Deep Continuous Fusion for Multi-Sensor 3D Object Detection, 2018.
[8] Vora et.al., PointPainting: Sequential Fusion for 3D Object Detection, 2019.
[9] Sindagi et.al., MVX-Net: Multimodal VoxelNet for 3D Object Detection, 2019.
