天天看點

自動駕駛之點雲與圖像融合綜述

/ 導讀 /

這幾天偷懶,也确實沒有時間來進行更新(更新頻率越來越低了),這裡接着一篇去年的綜述來開始中斷的學習之旅《Deep Learning for Image and Point Cloud Fusion in Autonomous Driving: A Review》。這篇文章總結了基于圖像和點雲基于深度學習的資料融合方法,包括深度估計、目标檢測、語義分割、目标分割、傳感器線上标定等方面的應用。這裡就來學習一下相關的知識點,下圖就是基于圖像和點雲融合的感覺任務及其相關部分一攬表。

自動駕駛之點雲與圖像融合綜述
自動駕駛之點雲與圖像融合綜述

深度學習

a)基于圖像的深度學習方法

卷積神經網絡(CNNs)是目前(2020年,因為2021年VIT大火)對圖像了解和處理的最有效的模型之一。與MLP相比,CNN具有平移不變性,利用較少的權重和層次模式(卷積層、BN層、relu層、pooling層),可以以抽象的層次和學習能力完成對圖像特征的提取和高階語義的學習。

b)基于點雲的深度學習方法

對于點雲的方法,有很多種類型,如

b1)Volumetric representation based,即将點雲按照固定的分辨率組成三維網格,每個網格的特征都是學出來的;這種方法可以很輕松的擷取到網格内部結構,但在體素化過程中,失去了空間分辨率和細粒度的三維幾何形狀;

b2)Index/Tree representation based,是将點雲劃分為一系列不平衡的樹,可以根據區域的點密度進行分區,對于點密度較低的區域具有較低的分辨率,進而減少不必要的記憶體和計算資源;

b3)2D views representation based,這種方式比較好了解,就是将點雲按照不同的視圖投影成深度圖,然後利用CNN對圖像進行檢測;

b4)Graph representation based,這種就是将點雲表示為圖,在空間或者光譜域上實作卷積操作。(這種吧,不太好評價)

b5)Point representation based,這種直接适用點雲,而不是将其轉換為中間資料進行表示。這個也是目前點雲深度學習的最流行的方式。如點網方法(PointNet,PointNet++,RandLA-Net等),點卷積是直接表征點之間的空間關系,其目的是将标準的二維離散卷積推廣到三維連續空間中,即用連續權重函數替代離散權重函數,如PointConv、KPConv等。

自動駕駛之點雲與圖像融合綜述

深度估計

所謂深度估計,就是将稀疏的點雲通過上采樣方法生成稠密有規則地深度資訊,這樣生成的點雲友善後續感覺子產品的應用,也能夠改善雷射雷達掃描得到點雲的不均勻分布。直接給出最近的深度估計發展曆程和相關方法:

自動駕駛之點雲與圖像融合綜述
自動駕駛之點雲與圖像融合綜述

不管哪種方法,其核心就是将圖像的RGB資訊與點雲的3D幾何資訊相結合,進而使得圖像RGB資訊包含相關的3D幾何資訊。是以,圖像可以作為深度采樣的參考資訊。從上面的方法可以看出,其包含Mono-Lidar融合方法和Stereo-Lidar融合方法。

自動駕駛之點雲與圖像融合綜述

Mono Camera and LiDAR fusion

Mono-Lidar包含信号級、特征級、以及多層次融合:

其中信号級就是将點雲深度圖與圖像結合,形成RGBD圖像,然後将RGBD圖像送入網絡中。這種适配的網絡有很多種,如Sparse-to-dense(基于ResNet的自動編碼網絡,但是真值比較難擷取)、Self-supervised sparse-to-dense(Sparse-to-dense的改進,但隻對靜止物體有效,且輸出的深度模糊)、CSPN(卷積空間網絡,可以直接提取與圖像相關的affinity 矩陣)、 CSPN++(CSPN改進版,可以動态調整卷積核大小)。

特征級融合就是分别将稀疏深度圖和點雲送入網絡中,完成特征的提取,如:《Depth completion and semantic segmentation》(就是将圖像和稀疏深度圖先由NASNet進行編碼處理,然後融合到共享解碼器中,獲得良好的深度效果)、Plug-and-Play(利用Pnp從稀疏深度圖中計算梯度并更新現有深度圖資訊)、《Confidence propagation through cnns for guided sparse depth regression》(并行處理圖像與稀疏深度映射,并歸一化卷積來處理高度稀疏的深度和置信度)、《Self-supervised model adaptation for multimodal semantic segmentation》(将前面提到的單節段擴充到網絡不同深度的多階段)、GuideNet(将圖像特征與不同層次的稀疏深度特征在編碼其中進行融合,缺乏有效的gt)。

多層次融合就是把前兩個做了一個融合。《“Sparse and noisy lidar completion with rgb guidance and uncertainty》(對RGBD資料和深度資料同時進行處理,然後根據置信圖進行融合)。

自動駕駛之點雲與圖像融合綜述

Stereo Cameras and LiDAR fusion

這種方法相對于Mono,就是利用stereo相機之間的視差擷取圖像的深度值,然後結合稀疏的點雲深度資訊産生更精确的密集深度。如《“High-precision depth estimation using uncalibrated lidar and stereo fusion》(兩階段CNN,第一階段采用雷射雷達與Stereo的視差擷取融合視差,第二階段将融合視差與左RGB圖像融合在特征空間中,以預測最終的高精度視差,然後再進行三維重建)、《Noise-aware unsupervised deep lidar-stereo fusion》(不需要gt,直接适用圖像、點雲自身的損失進行端到端訓練,好處就是不太關注于點雲與圖像之間的對齊資訊)、類似的還有《Listereo: Generate dense depth maps from lidar and stereo imagery 》,但是不管哪種,由于stereo本身的局限性(基線、遮擋、紋理等),是以不太考慮用在自動駕駛中。

自動駕駛之點雲與圖像融合綜述

Dynamic Object Detection

目标檢測(3D)的目标是在三維空間中定位、分類和估計有方向的邊界框。自動駕駛動态目标檢測,類别包括常見的動态道路對象(汽車、行人、騎車人等),方法主要有兩種:順序檢測和單步檢測。基于序列的模型按時間順序由預測階段和三維邊界框(bbox)回歸階段組成。在預測階段,提出可能包含感興趣對象的區域。在bbox回歸階段,基于從三維幾何中提取的區域特征對這些建議進行分類。然而,序列融合的性能受到各個階段的限制。另一方面,一步模型由一個階段組成,其中二維和三維資料以并行方式處理。下面兩幅圖,給出了3D檢測網絡的時間線和經典網絡架構圖。

自動駕駛之點雲與圖像融合綜述
自動駕駛之點雲與圖像融合綜述

下面兩張表給出了在KITTI上3D檢測的對比結果以及動态檢測模型。

自動駕駛之點雲與圖像融合綜述
自動駕駛之點雲與圖像融合綜述

5A)基于2D的序列模型

所謂基于2D的序列模型,就是首先對圖檔進行2D檢測/分割,生成ROI區域,然後将ROI投影到3D空間中(将圖像上的邊界框投影到點雲上,形成三維ROI空間;将點雲投影到圖像平面上,形成帶有點向的2D語義點雲)。

結果級:就是将2D的ROI來限制點雲的搜尋空間,這樣可以顯著減少計算量,提高運作時間。如FPointNes《Frustum pointnets for 3d object detection from rgb-d data》(将圖像生成的2D邊界框投影到3D空間中,然後将産生的投影送入到PointNet中進行3D檢測)、《A general pipeline for 3d detection of vehicles》(利用基于模型拟合的方法過濾掉不必要的背景點,然後将過濾後的點送入網絡中進行回歸)、RoarNet(利用《3d bounding box estimation using deep learning and geometry》将每個2Dbbox生成多個3D圓柱,然後利用PointNet的head去進行處理,并最終細化)。

上述方法都需要假設每個ROI區域内隻包含一個感興趣的對象,對于擁擠的場景或者行人等不太适用。是以需要有改進版。解決方案就是用二維語義分割和region-wise seed proposal with point-wise seed proposals替代2D檢測器,如IPOD就是類似的方法,首先采用二維語義分割來過濾出背景點,留下的前景點雲保留了上下文資訊和細粒度的位置,然後送入到PointNet++中用于特征提取和bbox的預測,這裡提出了PointsIoU來加速訓練和推理。

特征融合:最直覺的就是将點雲投影到圖像上,然後利用圖像處理方法進行特征提取,但輸出也是圖像級,對于3D空間的定位不是很準确。如DepthRCNN就是一種基于RCNN的二維對象檢測、執行個體和語義分割架構。《Cross modal distillation for supervision transfer》則是在圖像資料和深度圖像之間做遷移,當然還有其他,這一塊後續會專門介紹。

多級融合,這個其實是結果級融合與特征級融合的結合,主要工作可以歸結為點融合(Pointfusion),點融合首先利用現有的2D檢測模型生成2D bbox,然後用于通過向圖像平面的投影點來定位通過方框的點,最後采用一個ResNet和一個PointNet結合的網絡将點雲與圖像特征結合來估計3D目标。類似的方案還很多,如SIFRNet、Pointsift。

5B)基于3D的模型

略(個人對這一塊很感興趣,會專門對提到的文章進行閱讀,見諒)。

自動駕駛之點雲與圖像融合綜述

Stationary Road Object Detection

靜止物體檢測,其實對線上校準起到很大的作用。固定的道路物體包括路面、道路标記、交通辨別牌等。

自動駕駛之點雲與圖像融合綜述
自動駕駛之點雲與圖像融合綜述
自動駕駛之點雲與圖像融合綜述

道路/車道檢測,有很多方法,這裡專門介紹一下基于深度學習的融合政策。可以分為基于BEV的方法或者基于前視圖的方法。《Deep multi-sensor lane detection》利用CNN從點雲中預測密集的BEV高度估計,然後與BEV圖像融合,以進行精确的車道檢測,但這種方法無法區分不同的車道類型。類似的還有《A novel approach for detecting road based on two-stream fusion fully convolutional network》。另外還有一種多階段融合政策(MSRF)方法, 結合了不同網絡層次的圖像深度特征,顯著提高了其性能,但也增加了計算成本。《Early fusion of camera and lidar for robust road detection based on u-net fcn》使用信号級融合生成一個融合的BEV特征,并基于UNet來進行道路分割,但這種方法容易導緻密集紋理資訊的丢失。

基于前視圖的方法主要講雷射雷達深度投影到前視圖平面上,以提取路面,這類方法在3D投影2D時存在精度損失,方法有:《Lidarcamera fusion for road detection using fully convolutional neural networks》、《Progressive lidar adaptation for road detection》、《Fast road detection by cnn-based camera-lidar fusion and spherical coordinate transformation》。

交通标志牌檢測,這種方法太多了,主要是因為交通辨別牌具有較高的反射特性,但缺乏密集的紋理,而圖像則可以很好的對其進行分類,是以都是講相機與點雲進行結合,即利用了圖像的紋理資訊,也利用了辨別牌對點雲的高反射特性,形成一個帶有色彩的點雲。

自動駕駛之點雲與圖像融合綜述

Semantic Segmentation

前面已經有了基于檢測的融合方法,這裡還有基于分割的融合方法,旨在預測每個像素與每個點的類标簽。下面兩幅圖給出了3D語義分割和典型模型架構的時間線。

自動駕駛之點雲與圖像融合綜述
自動駕駛之點雲與圖像融合綜述

7a)二維語義分割

2D語義分割方法有很多種,大多是将點雲深度圖和圖像進行特征提取,然後利用圖像與深度的2D語義分割和深度完成,如《Sparse and dense data with cnns : Depth completion and semantic segmentation》。當然也有不同的方法進行特征提取和融合,如《Self-supervised model adaptation for multi modal semantic segmentation》采用了不同深度的多階段特征級融合,以促進語義分割。《Lidarcamera fusion for road detection using fully convolutional neural networks》則是利用上采樣的深度圖像和圖像進行2D語義分割。《Pedestrian detection combining rgb and dense lidar data》則是對rgb和稠密點雲進行上采樣并分别進行CNN特征提取,在最終的卷積層融合兩個特征圖。

7b)三維語義分割

3D語義分割,根據對點雲的處理方法,可以分為不同的方法,如:

基于點雲體素的3DMV(從多個對齊的圖像中提取2D特征,然後投影到3D空間内,并與3D幾何圖像融合,并最終輸入到3DCNN中進行語義預測),為了減輕點雲體素化引起的問題,還有UPF(該方法利用語義分割網絡提取渲染的多視圖圖像的特征,并投影到三維空間進行點特征融合,其中點雲由兩個基于PointNet++的編碼器進行處理,提取局部和全局特征,然後進行點的語義标簽預測)、MVPNet(可以了解為融合了多視圖圖像語義和三維幾何圖形來預測每點的語義标簽)等。

SPLATNet是一種多模态資料融合的方法,主要采用稀疏雙邊卷積來實作空間感覺表示學習和多模态(圖像和點雲)推理。(個人覺得這篇文章的思路比較獨特,後面會專門解讀)。

7c)執行個體分割

執行個體分割本質上是語義分割和目标檢測的聯合。用于區分類中的單個執行個體來擴充語義分割任務。執行個體分割包括Proposal-based和Proposal-free-based兩種。

Proposal-based包括3D-SIS(基于ENet對多視圖提取特征,和下采樣,實作解決高分辨率圖像特征與低分辨率像素化點雲特征圖不比對問題的RGB-D體素執行個體分割的3DCNN網絡)和Panoptic-fusion(以RGB和深度圖作為輸入,然後通過關聯和積分方法跟蹤幀之間的标簽,并适用CRF來進行深度和語義分割,但這種方法不适合動态場景)。

Proposal-free-based代表性的為3DBEVIS,該方法主要是适用2D語義資訊點在聚類方法上聯合執行3D語義和執行個體分割任務。具體如下圖:

自動駕駛之點雲與圖像融合綜述
自動駕駛之點雲與圖像融合綜述

Objects Tracking

談到融合,不得不提跟蹤,而目标跟蹤,是基于曆史幀資料資訊對目标障礙物的長期監測。在實際應用中,MOT是很常見的場景,而MOT算法又可以分為基于檢測的跟蹤(DBT)和不基于檢測的跟蹤(DFT)。

自動駕駛之點雲與圖像融合綜述

DBT:其實就是逐幀進行檢測,然後通過資料關聯或者多個假設來進行對象跟蹤。這種類型的算法也是目前最流行,最容易出成果的。主要包括兩部分:檢測目标,将目标進行關聯。比較常用的方法包括《End-to-end learning of multi-sensor 3d tracking by detection》(該方法同時檢測圖像和點雲,然後通過深度結構化模型DSM對連續幀的目标進行比對和優化),《Robust multi-modality multi-object tracking》(該方法包括檢測、相鄰幀估計以及線上優化等,在檢測階段使用VGG16和PointNet進行圖像和點雲的特征提取,然後使用(A模型+多模态)魯棒融合子產品進行融合,然後通過adjacent matrix learning 将adjacency estimation擴充到多模态,并求min-cost flow,進而計算出一個最優的路徑。

另外,跟蹤和三維重建也可以同時進行。《Track to reconstruct and reconstruct to track》就是這麼一種方法,其利用三維重建來進行跟蹤,使跟蹤對遮擋有很好的魯棒性。當然,MOTSFusion也可以将lidar、mono和stereo depth進行融合。

DFT:主要是基于 finite-setstatistics(FISST,這個在NLP或者情感分析中用的比較多)進行狀态估計,常見的方法包括多目标多伯努利(MeMBer)濾波器和機率假設密度(PHD)濾波器。比較經典的如Complexer-yolo就是将圖像和點雲資料進行解耦,然後進行3D檢測和跟蹤的實時架構,該方法采用了尺度-旋轉-轉換分數(SRTS)的度量來取代IOU,并評估bbox位置的3個自由度。當然,該方法最終通過帶有标記的伯努利随機有限集濾波器(LMBRFS)來實作推理過程。

自動駕駛之點雲與圖像融合綜述

Online Cross-Sensor Calibration

所謂的線上cross-sensor calibration,就是将雷射雷達與相機之間進行線上校準,也就是所謂的空間同步,由于機械本身的振動,傳感器之間的外參不斷地變化,這會導緻融合算法的性能和可靠性。是以online cross-sensor calibration的意義重大。

經典的線上校正,更多的是利用自然環境進行校準。如《Cross-calibration of push-broom 2d lidars and cameras in natural scenes》、《Automatic calibration of lidar and camera images using normalized mutual information》、《Automatic extrinsic calibration of vision and lidar by maximizing mutual information》、《Hybrid online mobile laser scanner calibration through image alignment by mutual information》是基于最大化不同模式之間的互相資訊(原始強度值或邊緣強度)發現外在的資訊,但基于Mi的方法對紋理變化、傳感器抖動不是很友好。而《Visual odometry driven online calibration for monocular lidar-camera systems》采用相機的自身運動估計來評估相機與雷射雷達的外參,這話方法計算量較大,無法實時運作。

基于DL的線上校準,主要是為了解決傳統方法實時性不好的情況,RegNet就是一個實時的用于估計外參的網絡,它是在兩個平行分支中提取圖像和深度特征,然後将它們連接配接起來生成融合特征圖,然後将該特征圖送入到一個NiN加2個FC的網絡中,進行特征比對和全局回歸。但RegNet對傳感器的固有參數敏感,如果内參發生了變化,就需要重新訓練。為了是模型對傳感器不内參不敏感,Calibnet采用幾何自監督的方法,将點雲與單目圖像以及相機外參矩陣K輸入到網絡中,然後實作3D點雲與2D圖像之間6自由度剛體轉換,有效的降低了校準的工作量。但基于深度學習的校驗方法,計算量比較大,計算資源消耗較多。

目前已經有越來越多的研究在關注于關于點雲和圖像的融合,除了融合方法外,也需要考慮雷射雷達與相機之間的時空同步,尤其是兩者之間的rotation的變化。而且不光要考慮點雲和圖像之間的關系,還需要加入IMU資訊或者HD資訊,來更準确的檢測所關注的障礙物。另外,文章中的某些論文或章節,個人比較感興趣,會詳細閱讀和整理。是以這裡沒有貼出來。