導讀:這幾天偷懶,也確實沒有時間來進行更新(更新頻率越來越低了),這里接著一篇去年的綜述來開始中斷的學習之旅《Deep Learning for Image and Point Cloud Fusion in Autonomous Driving: A Review》。這篇文章總結了基于圖像和點云基于深度學習的數(shù)據(jù)融合方法,包括深度估計、目標檢測、語義分割、目標分割、傳感器在線標定等方面的應用。這里就來學習一下相關的知識點,下圖就是基于圖像和點云融合的感知任務及其相關部分一攬表。 深度學習 a)基于圖像的深度學習方法 卷積神經(jīng)網(wǎng)絡(CNNs)是目前(2020年,因為2021年VIT大火)對圖像理解和處理的最有效的模型之一。與MLP相比,CNN具有平移不變性,利用較少的權重和層次模式(卷積層、BN層、relu層、pooling層),可以以抽象的層次和學習能力完成對圖像特征的提取和高階語義的學習。 b)基于點云的深度學習方法 對于點云的方法,有很多種類型,如b1)Volumetric representation based,即將點云按照固定的分辨率組成三維網(wǎng)格,每個網(wǎng)格的特征都是學出來的;這種方法可以很輕松的獲取到網(wǎng)格內(nèi)部結構,但在體素化過程中,失去了空間分辨率和細粒度的三維幾何形狀;b2)Index/Tree representation based,是將點云劃分為一系列不平衡的樹,可以根據(jù)區(qū)域的點密度進行分區(qū),對于點密度較低的區(qū)域具有較低的分辨率,從而減少不必要的內(nèi)存和計算資源;b3)2D views representation based,這種方式比較好理解,就是將點云按照不同的視圖投影成深度圖,然后利用CNN對圖像進行檢測;b4)Graph representation based,這種就是將點云表示為圖,在空間或者光譜域上實現(xiàn)卷積操作。(這種吧,不太好評價)b5)Point representation based,這種直接適用點云,而不是將其轉換為中間數(shù)據(jù)進行表示。這個也是目前點云深度學習的最流行的方式。如點網(wǎng)方法(PointNet,PointNet++,RandLA-Net等),點卷積是直接表征點之間的空間關系,其目的是將標準的二維離散卷積推廣到三維連續(xù)空間中,即用連續(xù)權重函數(shù)替代離散權重函數(shù),如PointConv、KPConv等。 深度估計 所謂深度估計,就是將稀疏的點云通過上采樣方法生成稠密有規(guī)則地深度信息,這樣生成的點云方便后續(xù)感知模塊的應用,也能夠改善激光雷達掃描得到點云的不均勻分布。直接給出最近的深度估計發(fā)展歷程和相關方法: 不管哪種方法,其核心就是將圖像的RGB信息與點云的3D幾何信息相結合,從而使得圖像RGB信息包含相關的3D幾何信息。所以,圖像可以作為深度采樣的參考信息。從上面的方法可以看出,其包含Mono-Lidar融合方法和Stereo-Lidar融合方法。 Mono Camera and LiDAR fusion Mono-Lidar包含信號級、特征級、以及多層次融合: 其中信號級就是將點云深度圖與圖像結合,形成RGBD圖像,然后將RGBD圖像送入網(wǎng)絡中。這種適配的網(wǎng)絡有很多種,如Sparse-to-dense(基于ResNet的自動編碼網(wǎng)絡,但是真值比較難獲?。elf-supervised sparse-to-dense(Sparse-to-dense的改進,但只對靜止物體有效,且輸出的深度模糊)、CSPN(卷積空間網(wǎng)絡,可以直接提取與圖像相關的affinity 矩陣)、 CSPN++(CSPN改進版,可以動態(tài)調(diào)整卷積核大?。?。 特征級融合就是分別將稀疏深度圖和點云送入網(wǎng)絡中,完成特征的提取,如:《Depth completion and semantic segmentation》(就是將圖像和稀疏深度圖先由NASNet進行編碼處理,然后融合到共享解碼器中,獲得良好的深度效果)、Plug-and-Play(利用Pnp從稀疏深度圖中計算梯度并更新現(xiàn)有深度圖信息)、《Confidence propagation through cnns for guided sparse depth regression》(并行處理圖像與稀疏深度映射,并歸一化卷積來處理高度稀疏的深度和置信度)、《Self-supervised model adaptation for multimodal semantic segmentation》(將前面提到的單節(jié)段擴展到網(wǎng)絡不同深度的多階段)、GuideNet(將圖像特征與不同層次的稀疏深度特征在編碼其中進行融合,缺乏有效的gt)。 多層次融合就是把前兩個做了一個融合?!丁癝parse and noisy lidar completion with rgb guidance and uncertainty》(對RGBD數(shù)據(jù)和深度數(shù)據(jù)同時進行處理,然后根據(jù)置信圖進行融合)。 Stereo Cameras and LiDAR fusion 這種方法相對于Mono,就是利用stereo相機之間的視差獲取圖像的深度值,然后結合稀疏的點云深度信息產(chǎn)生更精確的密集深度。如《“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)的目標是在三維空間中定位、分類和估計有方向的邊界框。自動駕駛動態(tài)目標檢測,類別包括常見的動態(tài)道路對象(汽車、行人、騎車人等),方法主要有兩種:順序檢測和單步檢測。基于序列的模型按時間順序由預測階段和三維邊界框(bbox)回歸階段組成。在預測階段,提出可能包含感興趣對象的區(qū)域。在bbox回歸階段,基于從三維幾何中提取的區(qū)域特征對這些建議進行分類。然而,序列融合的性能受到各個階段的限制。另一方面,一步模型由一個階段組成,其中二維和三維數(shù)據(jù)以并行方式處理。下面兩幅圖,給出了3D檢測網(wǎng)絡的時間線和經(jīng)典網(wǎng)絡架構圖。 下面兩張表給出了在KITTI上3D檢測的對比結果以及動態(tài)檢測模型。 5A)基于2D的序列模型 所謂基于2D的序列模型,就是首先對圖片進行2D檢測/分割,生成ROI區(qū)域,然后將ROI投影到3D空間中(將圖像上的邊界框投影到點云上,形成三維ROI空間;將點云投影到圖像平面上,形成帶有點向的2D語義點云)。 結果級:就是將2D的ROI來限制點云的搜索空間,這樣可以顯著減少計算量,提高運行時間。如FPointNes《Frustum pointnets for 3d object detection from rgb-d data》(將圖像生成的2D邊界框投影到3D空間中,然后將產(chǎn)生的投影送入到PointNet中進行3D檢測)、《A general pipeline for 3d detection of vehicles》(利用基于模型擬合的方法過濾掉不必要的背景點,然后將過濾后的點送入網(wǎng)絡中進行回歸)、RoarNet(利用《3d bounding box estimation using deep learning and geometry》將每個2Dbbox生成多個3D圓柱,然后利用PointNet的head去進行處理,并最終細化)。 上述方法都需要假設每個ROI區(qū)域內(nèi)只包含一個感興趣的對象,對于擁擠的場景或者行人等不太適用。所以需要有改進版。解決方案就是用二維語義分割和region-wise seed proposal with point-wise seed proposals替代2D檢測器,如IPOD就是類似的方法,首先采用二維語義分割來過濾出背景點,留下的前景點云保留了上下文信息和細粒度的位置,然后送入到PointNet++中用于特征提取和bbox的預測,這里提出了PointsIoU來加速訓練和推理。 特征融合:最直觀的就是將點云投影到圖像上,然后利用圖像處理方法進行特征提取,但輸出也是圖像級,對于3D空間的定位不是很準確。如DepthRCNN就是一種基于RCNN的二維對象檢測、實例和語義分割架構?!禖ross modal distillation for supervision transfer》則是在圖像數(shù)據(jù)和深度圖像之間做遷移,當然還有其他,這一塊后續(xù)會專門介紹。 多級融合,這個其實是結果級融合與特征級融合的結合,主要工作可以歸結為點融合(Pointfusion),點融合首先利用現(xiàn)有的2D檢測模型生成2D bbox,然后用于通過向圖像平面的投影點來定位通過方框的點,最后采用一個ResNet和一個PointNet結合的網(wǎng)絡將點云與圖像特征結合來估計3D目標。類似的方案還很多,如SIFRNet、Pointsift。 5B)基于3D的模型 略(個人對這一塊很感興趣,會專門對提到的文章進行閱讀,見諒)。 Stationary Road Object Detection 靜止物體檢測,其實對在線校準起到很大的作用。固定的道路物體包括路面、道路標記、交通標識牌等。 道路/車道檢測,有很多方法,這里專門介紹一下基于深度學習的融合策略。可以分為基于BEV的方法或者基于前視圖的方法?!禗eep multi-sensor lane detection》利用CNN從點云中預測密集的BEV高度估計,然后與BEV圖像融合,以進行精確的車道檢測,但這種方法無法區(qū)分不同的車道類型。類似的還有《A novel approach for detecting road based on two-stream fusion fully convolutional network》。另外還有一種多階段融合策略(MSRF)方法, 結合了不同網(wǎng)絡層次的圖像深度特征,顯著提高了其性能,但也增加了計算成本。《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 前面已經(jīng)有了基于檢測的融合方法,這里還有基于分割的融合方法,旨在預測每個像素與每個點的類標簽。下面兩幅圖給出了3D語義分割和典型模型架構的時間線。 7a)二維語義分割 2D語義分割方法有很多種,大多是將點云深度圖和圖像進行特征提取,然后利用圖像與深度的2D語義分割和深度完成,如《Sparse and dense data with cnns : Depth completion and semantic segmentation》。當然也有不同的方法進行特征提取和融合,如《Self-supervised model adaptation for multi modal semantic segmentation》采用了不同深度的多階段特征級融合,以促進語義分割?!禠idarcamera fusion for road detection using fully convolutional neural networks》則是利用上采樣的深度圖像和圖像進行2D語義分割?!禤edestrian detection combining rgb and dense lidar data》則是對rgb和稠密點云進行上采樣并分別進行CNN特征提取,在最終的卷積層融合兩個特征圖。 7b)三維語義分割 3D語義分割,根據(jù)對點云的處理方法,可以分為不同的方法,如:基于點云體素的3DMV(從多個對齊的圖像中提取2D特征,然后投影到3D空間內(nèi),并與3D幾何圖像融合,并最終輸入到3DCNN中進行語義預測),為了減輕點云體素化引起的問題,還有UPF(該方法利用語義分割網(wǎng)絡提取渲染的多視圖圖像的特征,并投影到三維空間進行點特征融合,其中點云由兩個基于PointNet++的編碼器進行處理,提取局部和全局特征,然后進行點的語義標簽預測)、MVPNet(可以理解為融合了多視圖圖像語義和三維幾何圖形來預測每點的語義標簽)等。 SPLATNet是一種多模態(tài)數(shù)據(jù)融合的方法,主要采用稀疏雙邊卷積來實現(xiàn)空間感知表示學習和多模態(tài)(圖像和點云)推理。(個人覺得這篇文章的思路比較獨特,后面會專門解讀)。 7c)實例分割 實例分割本質(zhì)上是語義分割和目標檢測的聯(lián)合。用于區(qū)分類中的單個實例來擴展語義分割任務。實例分割包括Proposal-based和Proposal-free-based兩種。 Proposal-based包括3D-SIS(基于ENet對多視圖提取特征,和下采樣,實現(xiàn)解決高分辨率圖像特征與低分辨率像素化點云特征圖不匹配問題的RGB-D體素實例分割的3DCNN網(wǎng)絡)和Panoptic-fusion(以RGB和深度圖作為輸入,然后通過關聯(lián)和積分方法跟蹤幀之間的標簽,并適用CRF來進行深度和語義分割,但這種方法不適合動態(tài)場景)。 Proposal-free-based代表性的為3DBEVIS,該方法主要是適用2D語義信息點在聚類方法上聯(lián)合執(zhí)行3D語義和實例分割任務。具體如下圖: Objects Tracking 談到融合,不得不提跟蹤,而目標跟蹤,是基于歷史幀數(shù)據(jù)信息對目標障礙物的長期監(jiān)測。在實際應用中,MOT是很常見的場景,而MOT算法又可以分為基于檢測的跟蹤(DBT)和不基于檢測的跟蹤(DFT)。 DBT:其實就是逐幀進行檢測,然后通過數(shù)據(jù)關聯(lián)或者多個假設來進行對象跟蹤。這種類型的算法也是目前最流行,最容易出成果的。主要包括兩部分:檢測目標,將目標進行關聯(lián)。比較常用的方法包括《End-to-end learning of multi-sensor 3d tracking by detection》(該方法同時檢測圖像和點云,然后通過深度結構化模型DSM對連續(xù)幀的目標進行匹配和優(yōu)化),《Robust multi-modality multi-object tracking》(該方法包括檢測、相鄰幀估計以及在線優(yōu)化等,在檢測階段使用VGG16和PointNet進行圖像和點云的特征提取,然后使用(A模型+多模態(tài))魯棒融合模塊進行融合,然后通過adjacent matrix learning 將adjacency estimation擴展到多模態(tài),并求min-cost flow,從而計算出一個最優(yōu)的路徑。 另外,跟蹤和三維重建也可以同時進行?!禩rack to reconstruct and reconstruct to track》就是這么一種方法,其利用三維重建來進行跟蹤,使跟蹤對遮擋有很好的魯棒性。當然,MOTSFusion也可以將lidar、mono和stereo depth進行融合。 DFT:主要是基于 finite-setstatistics(FISST,這個在NLP或者情感分析中用的比較多)進行狀態(tài)估計,常見的方法包括多目標多伯努利(MeMBer)濾波器和概率假設密度(PHD)濾波器。比較經(jīng)典的如Complexer-yolo就是將圖像和點云數(shù)據(jù)進行解耦,然后進行3D檢測和跟蹤的實時框架,該方法采用了尺度-旋轉-轉換分數(shù)(SRTS)的度量來取代IOU,并評估bbox位置的3個自由度。當然,該方法最終通過帶有標記的伯努利隨機有限集濾波器(LMBRFS)來實現(xiàn)推理過程。 Online Cross-Sensor Calibration 所謂的在線cross-sensor calibration,就是將激光雷達與相機之間進行在線校準,也就是所謂的空間同步,由于機械本身的振動,傳感器之間的外參不斷地變化,這會導致融合算法的性能和可靠性。所以online cross-sensor calibration的意義重大。 經(jīng)典的在線校正,更多的是利用自然環(huán)境進行校準。如《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》是基于最大化不同模式之間的相互信息(原始強度值或邊緣強度)發(fā)現(xiàn)外在的信息,但基于Mi的方法對紋理變化、傳感器抖動不是很友好。而《Visual odometry driven online calibration for monocular lidar-camera systems》采用相機的自身運動估計來評估相機與激光雷達的外參,這話方法計算量較大,無法實時運行。 基于DL的在線校準,主要是為了解決傳統(tǒng)方法實時性不好的情況,RegNet就是一個實時的用于估計外參的網(wǎng)絡,它是在兩個平行分支中提取圖像和深度特征,然后將它們連接起來生成融合特征圖,然后將該特征圖送入到一個NiN加2個FC的網(wǎng)絡中,進行特征匹配和全局回歸。但RegNet對傳感器的固有參數(shù)敏感,如果內(nèi)參發(fā)生了變化,就需要重新訓練。為了是模型對傳感器不內(nèi)參不敏感,Calibnet采用幾何自監(jiān)督的方法,將點云與單目圖像以及相機外參矩陣K輸入到網(wǎng)絡中,然后實現(xiàn)3D點云與2D圖像之間6自由度剛體轉換,有效的降低了校準的工作量。但基于深度學習的校驗方法,計算量比較大,計算資源消耗較多。