天天看點

自動駕駛傳感器融合:雷射雷達+攝像頭

作者丨巫婆塔裡的工程師

自動駕駛傳感器融合:雷射雷達+攝像頭

一. 前言

自動駕駛感覺技術所采用的傳感器主要包括攝像頭,雷射雷達和毫米波雷達。這些傳感器各有優缺點,也互為補充,是以如何高效的融合多傳感器資料,也就自然的成為了感覺算法研究的熱點之一。本篇文章介紹如何在感覺任務中融合雷射雷達和攝像頭,重點是目前主流的基于深度學習的融合算法。

攝像頭産生的資料是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這三個點雲物體檢測的常用方法在結合了圖像特征後都有了很大幅度的提升。尤其是對于行人和騎車的人這兩個類來說,提升的幅度更大,這也證明了分辨率較高的圖像特征對小目标的檢測有很大的幫助。

自動駕駛傳感器融合:雷射雷達+攝像頭

參考文獻

[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.