三維目標檢測算法總結

文中有參考微信文章,侵刪!!

經典的計算機視覺問題是通過數學模型或者統計學習識別圖像中的物體、場景,繼而實現視頻時序序列上的運動識別、物體軌跡追蹤、行爲識別等等。然而,由於圖像是三維空間在光學系統的投影,僅僅實現圖像層次的識別是不夠的,這在無人駕駛系統、增強現實技術等領域表現的尤爲突出,計算機視覺的更高層次必然是準確的獲得物體在三維空間中的形狀、位置、姿態,通過三維重建技術實現物體在三維空間的檢測、識別、追蹤以及交互。近年來,藉助於二維圖像層面的目標檢測和識別的性能提升,針對如何恢復三維空間中物體的形態和空間位置,研究者們提出了很多有效的方法和策略。
相比2D目標檢測問題,進行物體在3D空間的位置估計對於實際應用場景更有意義。通過估計實際位置,自主駕駛的車輛和機器人可以準確的預判和規劃自己的行爲和路徑,避免碰撞和違規。同時,3D目標檢測問題也面臨更多的挑戰,主要的區別在於不僅要找到物體在圖像中出現的位置,還需要反投影到實際3D空間中,需要有絕對的尺寸估計。對於視覺3D目標估計,採用擴展圖像目標檢測算法的深度學習模型對於3D檢測具有重要幫助,但是加入空間幾何關係的約束是非常必要的前提,不僅可以提升檢測精度,也可以去除可能的無意義的錯檢。而如何結合稠密匹配算法以及3D重建中的集束調整技術,對於進一步提升3D目標檢測精度必然具有重要作用。
三維目標檢測在自主駕駛汽車視覺感知系統中佔有重要地位。現代自動駕駛汽車通常配備多個傳感器,如激光雷達和攝像頭。激光掃描器的優點是深度信息準確,而相機可以保存更詳細的語義信息。通過圖像、雷達、深度相機等信號可以檢測和識別三維場景信息,從而幫助計算機確定自身與周圍物體的位置關係,做出正確的運動交互和路徑規劃。從相機得到圖像信息,需要正確計算圖像點與三維點的對應關係,而雷達和深度相機可以直接得到點雲或者點的空間位置。可以將三維目標檢測數據按照輸入數據分爲圖像數據和點雲數據,按照傳感器類型分爲單目相機、雙目相機、多目相機、雷達掃描、深度相機和紅外相機。一般而言,由多目相機組成的立體視覺系統或者激光雷達可以實現更準確的3D推理信息,但單目RGB相機設備更方便,更便宜。使用單目攝像頭進行三維物體檢測是經濟型自動駕駛系統合理選擇。
三維目標檢測算法按照數據劃分爲三個類別,即單目圖像,多視圖圖像(視圖或立體數據),點雲。基於單視圖的方法,例如,[1],使用單目攝像頭完成三維目標檢測。基於多視圖的方法,例如,[2],可以使用從不同視圖的圖像中得到的視差來獲得深度圖。基於點雲的方法,例如[3,4,5,6],從點雲獲取目標信息,是比較直觀和準確的三維目標檢測方法,由於點的深度數據可以直接測量,三維檢測問題本質上是三維點的劃分問題。相比於使用雷達系統或者深度相機,使用攝像機系統成本更低,但是需要進行圖像點的反投影,計算點在空間中的位置。除此之外,相比於點雲數據,圖像恢復深度可以適用於室外大尺度場景,這是普通深度相機所不能達到的。
1、單目圖像
由射影幾何學,僅僅依賴一副圖像是無法準確恢復物體的三維位置,即使能得到相對位置信息,也無法獲得真實尺寸。因此,正確檢測目標的3D位置最少需要多個相機或者運動相機組成的立體視覺系統,或者由深度相機、雷達等傳感器得到的3D點雲數據。
對於特定類型目標,基於機器學習的方法使得通過單目相機進行物體3D檢測成爲可能。原因是特定類型目標往往具有很強的先驗信息,因此依靠給真實物體做標註,聯合學習物體類別和物體姿態可以大概估計出物體3D尺寸。不過,爲了更好的估計物體的3D位置,更好的方法是結合學習的方法充分融合射影幾何知識,來計算物體在真實世界中的尺度和位置。
A. Mousavian在CVPR2017提出了一種結合深度神經網絡迴歸學習和幾何約束的3D目標(主要針對車輛)檢測和3維位置估計的算法[7]。論文中對車輛的三維姿態和位置進行建模,需要知道車輛在場景中的位置和車輛相對於攝像機的角度,以及車輛的尺寸大小。迴歸計算方位角和物體尺寸,利用投影公式,計算中心點向量。
GS3D[1]是基於引導和表面的三維車輛檢測算法,由香港中文大學Buyu Li等完成,其思想爲:首先預測二維檢測框和觀測角度;然後基於場景先驗,生成目標的粗糙邊界框,再將邊界框重投影到圖像平面,計算表面特徵;最後通過子網絡,由重投影特徵進行分類學習,得到精細化的三維檢測框。
通過2D探測器有效地確定預測對象的粗糙邊界框。雖然粗糙,但可以接受。其精確度可以指導確定空間位置,尺寸(高度,寬度,長度)和物體的方向等。提取不同可見表面的特徵,然後加以合併,因此結構信息被用來區分不同的三維邊界框。將傳統迴歸的形式重新表述爲分類的形式,併爲其設計了質量敏感的損失函數。主要貢獻在於,基於可靠的二維檢測結果,GS3D是一種純單目攝像頭的方法。可以有效爲物體獲取粗糙邊界框。粗糙邊界框提供了對象的位置大小和方向的可靠近似,並作爲進一步優化的指導;利用投影在二維圖像上的三維框的可見表面的結構信息,然後利用提取的特徵解決模糊問題;設計比較之後發現基於質量敏感的損失的離散分類的效果要更好。
基於YOLO的三維目標檢測:YOLO-6D[8]是一種使用一張2D圖像來預測物體6D姿態的方法。但是,並不是直接預測6D姿態,而是通過預測3D編輯框在二維圖像上的1箇中心點和8個角點,然後在有九個點通過PNP算法計算得到6D姿態。把預測6D姿態問題轉爲了預測9個座標點的問題。而在2D的目標檢測中,我們實際上也是需要預測座標點xy的。那麼,我們能不能把目標檢測框架拿來用呢?很顯然是可以的。所以這篇文章就提出基於yolo的6D姿態估計框架。
2、雙(多)視圖圖像
對於雙目立體視覺,進行合理的雙目匹配,通過相機之間的相對位置計算,可以得到比單目視覺更強的空間約束關係,因此結合已有的物體先驗知識,可能得到比單目相機更準確的檢測結果。
基於3DOP的3D目標檢測[9]採用類似於Fast R-CNN的二步檢測算法。對於具有2幅成對圖像的雙目立體視覺圖像。首先,採用Yamaguchi在ECCV2014年發表的方法[10]計算每個點的深度圖像,由此生成點雲數據,後續的處理是基於點雲做爲處理和輸入數據。然後,採用Struct-SVM優化的方法選擇3D檢測的候選3D框y。最後,通過R-CNN方式,對每個候選框進行分類評估和位置迴歸。在此處考慮像素的深度數據,爲了處理深度數據,可以直接在輸入圖像中增加深度數據圖像,也可以採用雙分支架構的判別和迴歸網絡。但是這種雙分支訓練時需要更大的顯存。
基於立體視R-CNN的3D目標檢測算法是擴展 Faster-RCNN網絡框架到雙目立體視覺進行3D目標檢測的方法[11]。方法的關鍵步驟是對左右圖像的自動對齊學習,以及通過稠密匹配優化最終的檢測結果。由左右視圖圖像經過2個相同的Faster-RCNN中的RPN結構計算左右視圖中匹配的推送(proposals)矩形框stereo-RPN。RPN主幹網絡採用Resnet-101或者FPN。與Faster-RCNN中的RPN相比,stereo-RPN同時計算了可能的2D框,並且對左右視圖的2D框進行了配對(association)。
3、點雲
三維點雲數據是由無序的數據點構成一個集合來表示。在使用圖像識別任務的深度學習模型處理點雲數據之前,需要對點雲數據進行一些處理。目前採用的方式主要有兩種:一種是將點雲數據投影到二維平面。此種方式不直接處理三維的點雲數據,而是先將點雲投影到某些特定視角再處理,如前視視角和鳥瞰視角。同時,也可以融合使用來自相機的圖像信息。通過將這些不同視角的數據相結合,來實現點雲數據的認知任務。比較典型的算法有MV3D和AVOD。一種是將點雲數據劃分到有空間依賴關係的voxel。此種方式通過分割三維空間,引入空間依賴關係到點雲數據中,再使用3D卷積等方式來進行處理。這種方法的精度依賴於三維空間的分割細膩度,而且3D卷積的運算複雜度也較高。不同於以上兩種方法對點雲數據先預處理再使用的方式,PointNet是直接在點雲數據上應用深度學習模型的方法。
PointNet系列論文首先提出了一種新型的處理點雲數據的深度學習模型,並驗證了它能夠用於點雲數據的多種認知任務,如分類、語義分割和目標識別。PointNet的關鍵流程爲:輸入爲一幀的全部點雲數據的集合,表示爲一個n×3的張量,其中n代表點雲數量,3對應xyz座標;輸入數據先通過和一個T-Net學習到的轉換矩陣相乘來對齊,保證了模型的對特定空間轉換的不變性;通過多次mlp對各點雲數據進行特徵提取後,再用一個T-Net對特徵進行對齊;在特徵的各個維度上執行max-pooling操作來得到最終的全局特徵;對分類任務,將全局特徵通過mlp來預測最後的分類分數;對分割任務,將全局特徵和之前學習到的各點雲的局部特徵進行串聯,再通過mlp得到每個數據點的分類結果。
受到CNN的啓發,作者提出了PointNet++,它能夠在不同尺度提取局部特徵,通過多層網絡結構得到深層特徵。PointNet++關鍵部分包括:採樣層,組合層和特徵提取層。上述各層構成了PointNet++的基礎處理模塊。如果將多個這樣的處理模塊級聯組合起來,PointNet++就能像CNN一樣從淺層特徵得到深層語義特徵。對於分割任務的網絡,還需要將下采樣後的特徵進行上採樣,使得原始點雲中的每個點都有對應的特徵。這個上採樣的過程通過最近的k個臨近點進行插值計算得到。
PointNet和PointNet++主要用於點雲數據的分類和分割問題,Frustum-PointNet(F-PointNet)[12]將PointNet的應用拓展到了3D目標檢測上。目前單純基於Lidar數據的3D目標檢測算法通常對小目標檢測效果不佳,爲了處理這個問題,F-PointNet提出了結合基於圖像的2D檢測算法來定位目標,再用其對應的點雲數據視錐進行bbox迴歸的方法來實現3D目標檢測。從KITTI數據集的檢測結果來看,得益於精確的基於圖像的2D檢測模型,F-PointNet對小目標的檢測效果確實處於領先地位。F-PointNet由2D目標檢測模型和3D分割和迴歸網絡構成,並非爲端到端的模型。可以考慮將其組合成一個端到端的網絡。
基於點雲數據,PointRCNN[6]實現了純粹使用點雲數據完成三維目標檢測任務。PointRCNN是香港中文大學發佈的3D目標檢測框架,整個框架包括兩個階段:第一階段使用自下而上的3D提案產生,第二階段用於在規範座標中修改提案獲得最終的檢測結果。Stage-1階段子網絡不是從RGB圖像或者將點雲投影到鳥類視圖或者體素中,而是通過將整個場景的點雲分割爲前景點和背景點,以自下而上的方式直接從點雲生成少量高質量的3D提案。Stage-2階段子網絡將每個提案的池化的點轉換爲規範座標,更好地學習局部空間特徵,這個過程與Stage-1中學習每個點的全局語義特徵相結合,用於Box優化和置信度預測。對KITTI數據集的3D檢測基準的廣泛實驗表明,該架構優於只是用點雲作爲輸入具有顯著邊緣的最先進方法。
用於點雲的目標檢測方法,精度較高的還有港中文&商湯科技發表的Part-A2 Net[14],而海康威視的Voxel-FPN[13]單論mAP只能說勉強接近SOTA水平,但論文mAP與FPS的Trade-off,50 FPS的速度,還是強壓其他算法的。

參考文獻
[1] Li B , Ouyang W , Sheng L , et al. GS3D: An Efficient 3D Object Detection Framework for Autonomous Driving[J]. 2019.
[2] X. Chen, K. Kundu, Y. Zhu, H. Ma, S. Fidler, and R. Urtasun. 3d object proposals using stereo imagery for accurate object class detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017.
[3] C. R. Qi, W. Liu, C. Wu, H. Su, and L. J. Guibas. Frustum pointnets for 3d object detection from rgb-d data. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2018.
[4] Y. Zhou and O. Tuzel. Voxelnet: End-to-end learning for point cloud based 3d object detection. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2018.
[5] J. Ku, M. Mozifian, J. Lee, A. Harakeh, and S. Waslander. Joint 3d proposal generation and object detection from view aggregation. IROS, 2018.
[6] Shi S , Wang X , Li H . PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud[J]. In IEEE CVPR, 2019.
[7]A. Mousavian, D. Anguelov, J. Flynn, J. Kosecka, “3d bounding box estimation
using deep learning and geometry”. In CVPR 2017, 5632-5640.
[8] Tekin B , Sinha S N , Fua P . Real-Time Seamless Single Shot 6D Object Pose Prediction[J]. 2017.
[9]A. Mousavian, D. Anguelov, J. Flynn, J. Kosecka, “3d bounding box estimation using deep learning and geometry”. In CVPR 2017, 5632-5640.
[10]K. Yamaguchi, D. McAllester, and R. Urtasun, “Efficient joint segmentation, occlusion labeling, stereo and flow estimation,” in Proc. Eur. Conf. Comput. Vis., 2014, pp. 756–771.
[11]P. Li, X. Chen, S. Shen. “Stereo R-CNN based 3D Object Detection for Autonomous Driving”. CVPR 2019.
[12] Qi C R , Liu W , Wu C , et al. Frustum PointNets for 3D Object Detection from RGB-D Data[J]. 2017.
[13] Wang B , An J , Cao J . Voxel-FPN: multi-scale voxel feature aggregation in 3D object detection from point clouds[J]. 2019.
[14] Shi S , Wang Z , Wang X , et al. Part-A^2 Net: 3D Part-Aware and Aggregation Neural Network for Object Detection from Poin Cloud[J]. 2019.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章