自動駕駛感知技術所採用的感測器主要包括攝像頭,鐳射雷達和毫米波雷達。這些感測器各有優缺點,也互為補充,因此如何高效的融合多感測器資料,也就自然的成為了感知演算法研究的熱點之一。本篇文章介紹如何在感知任務中融合鐳射雷達和攝像頭,重點是目前主流的基於深度學習的融合演算法。
攝像頭產生的資料是2D影象,對於物體的形狀和類別的感知精度較高。深度學習技術的成功起源於計算機視覺任務,很多成功的演算法也是基於對影象資料的處理,因此目前基於影象的感知技術已經相對成熟。影象資料的缺點在於受外界光照條件的影響較大,很難適用於所有的天氣條件。對於單目系統來說,獲取場景和物體的深度(距離)資訊也比較困難。雙目系統可以解決深度資訊獲取的問題,但是計算量很大。鐳射雷達在一定程度上彌補了攝像頭的缺點,可以精確的感知物體的距離,但是限制在於成本較高,車規要求難以滿足,因此在量產方面比較困難。同時,鐳射雷達生成的3D點雲比較稀疏(比如垂直掃描線只有64或128)。對於遠距離物體或者小物體來說,反射點的數量會非常少。
如下圖所示,影象資料和點雲存在著巨大的差別。首先是視角不同,影象資料是真實世界透過透視投影得到的二維表示,而三維點雲則包含了真實世界歐式座標系中的三維資訊,可以投影到多種檢視。其次是資料結構不同,影象資料是規則的,有序的,稠密的,而點雲資料是不規則的,無序的,稀疏的。在空間解析度方面,影象資料也比點雲資料高很多。
圖片來源於參考文獻[1]
自動駕駛感知系統中有兩個典型的任務:物體檢測和語義分割。深度學習技術的興起首先來自視覺領域,基於影象資料的物體檢測和語義分割已經被廣泛和充分的研究,也有很多非常全面的綜述文章,這裡就不贅述了。另一方面,隨著車載鐳射雷達的不斷普及以及一些大規模資料庫的釋出,點雲資料處理的研究這幾年來發展也非常迅速。本專欄之前的兩篇文章分別介紹了點雲物體檢測和語義分割的發展情況,感興趣的朋友可以參考。下面以物體檢測任務為主來介紹不同的融合方法。語義分割的融合方法可以由物體檢測擴充套件得到,就不做單獨介紹了。
2. 不同的融合策略
物體檢測的策略分為:決策層融合,決策+特徵層融合,以及特徵層融合。在決策層融合中,影象和點雲分別得到物體檢測結果(BoundingBox),轉換到統一座標系後再進行合併。這種策略中用到的大都是一些傳統的方法,比如IoU計算,卡爾曼濾波等,與深度學習關係不大,本文就不做介紹了。下面重點來講講後兩種融合策略。
2.1 決策+特徵層融合
這種策略的主要思路是將先透過一種資料生成物體的候選框(Proposal)。如果採用影象資料,那麼生成的就是2D候選框,如果採用點雲資料,那麼生成的就是3D候選框。然後將候選框與另外一種資料相結合來生成最終的物體檢測結果(也可以再重複利用生成候選框的資料)。這個結合的過程就是將候選框和資料統一到相同的座標系下,可以是3D點雲座標(比如F-PointNet),也可以是2D影象座標(比如IPOD)。
F-PointNet[2]由影象資料生成2D物體候選框,然後將這些候選框投影到3D空間。每個2D候選框在3D空間對應一個視椎體(Frustum),並將落到視椎體中所有點合併起來作為該候選框的特徵。視椎體中的點可能來自前景的遮擋物體或者背景物體,所以需要進行3D例項分割來去除這些干擾,只保留物體上的點,用來進行後續的物體框估計(類似PointNet中的處理方式)。這種基於視椎的方法,其缺點在於每個視椎中只能處理一個要檢測的物體,這對於擁擠的場景和小目標(比如行人)來說是不能滿足要求的。
F-PointNet網路結構圖
針對視椎的上述問題,IPOD[3]提出採用2D語義分割來替換2D物體檢測。首先,影象上的語義分割結果被用來去除點雲中的背景點,這是透過將點雲投影到2D影象空間來完成的。接下來,在每個前景點處生成候選物體框,並採用NMS去除重疊的候選框,最後每幀點雲大約保留500個候選框。同時,PointNet++網格被用來進行點特徵提取。有了候選框和點特徵,最後一步採用一個小規模的PointNet++來預測類別和準確的物體框(當然這裡也可以用別的網路,比如MLP)。IPOD在語義分割的基礎上生成了稠密的候選物體框,因此在含有大量物體和互相遮擋的場景中效果比較好。
IPOD網路結構圖
上面兩個方法分別透過2D影象上的物體檢測和語義分割結果來生成候選框,然後只在點雲資料上進行後續的處理。SIFRNet[4]提出在視椎體上融合點雲和影象特徵,以增強視椎體所包含的資訊量,用來進一步提高物體框預測的質量。
SIFRNet網路結構圖
近年來,隨著3D物體檢測技術的快速發展,物體候選框的選取也從逐漸從2D向3D轉變。MV3D[5]是基於3D候選框的代表性工作。首先,它將3D點雲對映到BEV檢視,並基於此檢視生成3D物體候選框。然後,將這些3D候選框對映到點雲的前檢視以及影象檢視,並將相應的特徵進行融合。特徵融合是以候選框為基礎,並透過ROI pooling來完成的。
MV3D網路結構圖
AVOD[6]的思路也是在3D候選框的基礎上融合影象和點雲特徵。但是原始候選框的生成並不是透過點雲處理得到,而是透過先驗知識在BEV檢視下均勻取樣生成的(間隔0.5米,大小為各個物體類的均值)。點雲資料用來輔助去除空的候選框,這樣最終每幀資料會產生8萬到10萬個候選框。這些候選框透過融合的影象和點雲特徵進行進一步篩選後,作為最終的候選再送入第二階段的檢測器。因此,也可以認為AVOD的候選框是同時在影象和點雲上得到的。
AVOD網路結構圖
2.2 特徵層融合
決策+特徵層融合的特點是以物體候選框為中心來融合不同的特徵,融合的過程中一般會用到ROI pooling(比如雙線性插值),而這個操作會導致空間細節特徵的丟失。另外一種思路是特徵層融合,也就是直接融合多種特徵。比如說將點雲對映到影象空間,作為帶有深度資訊的額外通道與影象的RGB通道進行合併。這種思路簡單直接,對於2D物體檢測來說效果不錯。但是融合的過程丟失了很多3D空間資訊,因此對於3D物體檢測來說效果並不好。由於3D物體檢測領域的迅速發展,特徵層融合也更傾向於在3D座標下完成,這樣可以為3D物體檢測提供更多資訊。
ContFuse[7]採用連續卷積(Continuous Convolution)來融合點雲和影象特徵。融合過程在BEV檢視下完成。對於BEV上的一個畫素(網格),首先在點雲資料中找到其K個最鄰近的點,然後將這些3D空間中的點對映到影象空間,以此得到每個點的影象特徵。同時,每個點的幾何特徵則是該點到相應BEV畫素的XY偏移量。將影象特徵和幾何特徵合併作為點特徵,然後按照連續卷積的做法對其進行加權求和(權重依賴於XY偏移量),以得到相應BEV畫素處的特徵值。對BEV的每個畫素進行類似處理,就得到了一個BEV特徵圖。這樣就完成了影象特徵到BEV檢視的轉換,之後就可以很方便的與來自點雲的BEV特徵進行融合。ContFuse中在多個空間解析度下進行了上述的特徵融合,以提高對不同大小物體的檢測能力。
利用連續卷積將影象特徵投影到BEV檢視
PointPainting[8]把點雲投影到影象語義分割的結果中,這與IPOD中的做法類似。但是,PointPainting沒有利用語義分割的結果來分離前景點,而是直接將語義分割的資訊附加到點雲上。這樣做的好處是,融合之後的資料還是點雲(但是具有更為豐富的語義資訊),可以採用任何點雲物體檢測網路來處理,比如PointRCNN,VoxelNet,PointPillar等等。
PointPainting的融合流程圖
PointPainting中附加給點雲的是2D影象的語義資訊,這已經是高度抽象之後的資訊,而原始的影象特徵則被丟棄了。從融合的角度來看,底層特徵的融合可以更大程度的保留資訊,利用不同特徵之間的互補性,理論上說也就更有可能提升融合的效果。MVX-Net[9]利用一個實現訓練好的2D卷積網路來提取影象特徵,然後透過點雲和影象之間的對映關係將影象特徵附加到每個點上。之後再採用VoxelNet來處理融合後的點特徵。除了這種點融合策略,MVX-Net還提出了在voxel層次上融合,其主要的不同就在於將voxel而不是point投影到影象空間,因此影象特徵是被附加在voxel之上。從實驗結果來看,point融合比voxel融合結果略好,這也進一步說明了較低的融合層次可能會帶來更好的效果。
MVX-Net中的Point融合方法
語義分割任務中的融合一般都是在特徵層上進行,之前介紹的特徵融合方法理論上來說可以用來進行語義分割。比如說,ContFuse在BEV網格上融合了影象和點雲特徵,這個特徵就可以用來進行網格級別的語義分割,而PointPainting將影象特徵附加到點雲上,後續可以採用任何基於點雲語義分割的演算法來對每個點進行語義分類,甚至也可以進行例項分割和全景分割。
3. 結果對比
這裡我們來總結和定量的對比一下前面介紹的各種融合方法。準確度指標採用採用KITTI資料庫上3D車輛檢測中等難度的AP(70% IoU),速度指標採用FPS(執行的硬體不同,因此不具備完全的可比性)。下表中融合方法一欄中的D+F表示決策+特徵層融合,之後的2D/3D表示是在2D影象還是3D點雲上提取物體候選框。F表示特徵層融合,之後的BEV和Point表示融合的位置。總體來說,特徵層融合的效果較好,基於Point的融合也優於基於BEV的融合。
演算法
融合方法
準確度(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 |
- |
作為對比,只基於點雲資料的VoxelNet其AP為64.17,MVX-Net將影象特徵附加到點雲上之後再採用VoxelNet就可以將AP提升到77.43,提升的幅度還是非常可觀的。PointPainting中的對比實驗也展示了類似的提升。下圖是分別在KITTI和NuScenes上進行的對比實驗。PointPillar,VoxelNet,和PointRCNN這三個點雲物體檢測的常用方法在結合了影象特徵後都有了很大幅度的提升。尤其是對於行人和騎車的人這兩個類來說,提升的幅度更大,這也證明了解析度較高的影象特徵對小目標的檢測有很大的幫助。