一文教你讀懂3D目標檢測
本文共4593字,預計需要20分鐘,可以先收藏再看哦
1 簡介
目標檢測是計算機視覺領域的傳統任務,與圖像識別不同,目標檢測不僅需要識別出圖像上存在的物體,給出對應的類別,還需要將該物體的位置通過最小包圍框(Bounding box)的方式給出。根據目標檢測需要輸出結果的不同,一般將使用RGB圖像進行目標檢測,輸出物體類別和在圖像上的最小包圍框的方式稱為2D目標檢測,而將使用RGB圖像、RGB-D深度圖像和激光點雲,輸出物體類別及在三維空間中的長寬高、旋轉角等信息的檢測稱為3D目標檢測。
隨著Faster-RCNN的出現,2D目標檢測達到了空前的繁榮,各種新的方法不斷湧現,百家爭鳴,但是在無人駕駛、機器人、增強現實的應用場景下,普通2D檢測並不能提供感知環境所需要的全部信息,2D檢測僅能提供目標物體在二維圖片中的位置和對應類別的置信度,但是在真實的三維世界中,物體都是有三維形狀的,大部分應用都需要有目標物體的長寬高還有偏轉角等信息。例如下圖Fig.1中,在自動駕駛場景下,需要從圖像中提供目標物體三維大小及旋轉角度等指標,在鳥瞰投影的信息對於後續自動駕駛場景中的路徑規劃和控制具有至關重要的作用。
目前3D目標檢測正處於高速發展時期,目前主要是綜合利用單目相機、雙目相機、多線激光雷達來進行3D目標檢測,從目前成本上講,激光雷達>雙目相機>單目相機,從目前的準確率上講,激光雷達>雙目相機>單目相機。但是隨著激光雷達的不斷產業化發展,成本在不斷降低,目前也出現一些使用單目相機加線數較少的激光雷達進行綜合使用的技術方案。進行3D目標檢測從使用的數據進行劃分主要可以分為以下幾類:
▍1.1 激光
Voxelnet,Voxelnet把激光點雲在空間中均勻劃分為不同的voxel,再把不同voxel中的點雲通過提出的VFE(Voxel Feature Encoding)層轉換為一個統一的特徵表達,最後使用RPN(Region Proposal Network)對物體進行分類和位置回歸,整體流程如圖Fig.2所示。
▍1.2 單目相機
以開源的Apollo為例,Apollo中使用的YOLO 3D,在Apollo中通過一個多任務網路來進行車道線和場景中目標物體檢測。其中的Encoder模塊是Yolo的Darknet,在原始Darknet基礎上加入了更深的卷積層同時添加反卷積層,捕捉更豐富的圖像上下文信息。高分辨多通道特徵圖,捕捉圖像細節,深層低解析度多通道特徵圖,編碼更多圖像上下文信息。和FPN(Feature Paramid Network)類似的飛線連接,更好的融合了圖像的細節和整體信息。Decoder分為兩個部分,一部分是語義分割,用於車道線檢測,另一部分為物體檢測,物體檢測部分基於YOLO,同時還會輸出物體的方向等3D信息。
通過神經網路預測3D障礙物的9維參數難度較大,利用地面平行假設,來降低所需要預測的3D參數。1)假設3D障礙物只沿著垂直地面的坐標軸有旋轉,而另外兩個方向並未出現旋轉,也就是只有yaw偏移角,剩下的Pitch和Roll均為0。障礙物中心高度和相機高度相當,所以可以簡化認為障礙物的Z=0;2)可以利用成熟的2D障礙物檢測演算法,準確預測出圖像上2D障礙物框(以像素為單位);3)對3D障礙物里的6維描述,可以選擇訓練神經網路來預測方差較小的參數。
在Apollo中,實現單目攝像頭的3D障礙物檢測需要兩個部分:
1、訓練網路,並預測出大部分參數:
圖像上2D障礙物框預測
障礙物物理尺寸不被障礙物在圖像上位置所影響,並且通過圖像特徵可以很好解釋的障礙物yaw偏轉角
2、通過圖像幾何學計算出障礙物中心點相對相機坐標系的偏移量X分量和Y分量
▍1.3 激光+單目相機
AVOD,AVOD輸入RGB圖像及BEV(Bird Eye View),利用FPN網路得到二者全解析度的特徵圖,再通過Crop和Resize提取兩個特徵圖對應的區域進行融合,挑選出3D proposal來進行3D物體檢測,整個流程如圖Fig.5所示。
在KITTI 3D object Detection的評測結果如下圖Fig.6,目前領先的演算法主要集中於使用激光數據、或激光和單目融合的方法,純視覺做3D目標檢測的方法目前在準確度上還不能和上述兩種方法相提並論,在相關演算法上還有很大的成長空間,在工業界有較大的實用性需求,本次分享主要集中在目前比較新的純視覺單目3D目標檢測。
2 問題和難點
儘管目前對於3D目標檢測已經有不少的研究,但是在實際應用中任然有許多的問題,首先,對物體遮擋、截斷、周圍動態環境的健壯性問題,其次,現有方式大都依賴於物體表面紋理或結構特徵,容易造成混淆,最後,在滿足準確率要求的條件下,演算法效率有很大問題。
3D bounding box是在真實三維世界中包圍目標物體的最小長方體,理論上,一個3D bounding box有9個自由度,3個是位置,3個是旋轉,3個是維度大小。對於自動駕駛場景下的物體,絕大多數都是水平放置於地面,所以通過假設物體都放置於水平地面,可以設置滾動和傾斜角度相對於水平面為零,同時底面是水平面的一部分,這樣就可以省略掉3個自由度,還有6個自由度,所以3D目標檢測也是一個目標物體6D pose預測問題。
目前,3D目標檢測的數據集主要包含Jura、Pascal3D+、LINEMOD、KITTI等,以KITTI數據集為例,如圖Fig.7是KITTI數據集中對於一個3D障礙物的標註:
3D視覺目標檢測的難點主要在於:
1)遮擋,遮擋分為兩種情況,目標物體相互遮擋和目標物體被背景遮擋
2)截斷,部分物體被圖片截斷,在圖片中只能顯示部分物體
3)小目標,相對輸入圖片大小,目標物體所佔像素點極少
4)旋轉角度學習,物體的朝向不同,但是對應特徵相同,旋轉角的有效學習有較大難度,如圖Fig.8所示
5)缺失深度信息,2D圖片相對於激光數據存在信息稠密、成本低的優勢,但是也存在缺失深度信息的缺點
3 主要方法
目前基於單目相機的3D目標檢測的方法主要是復用2D檢測中的一系列方法,同時加入多坐標點的回歸、旋轉角的回歸或分類,同時也有採用自編碼器的方法來進行姿態學習。
▍3.1 SSD-6D:
Making RGB-Based 3D Detection and 6D Pose Estimation Great Again
Fig.9 SSD-6D Architecture, figure from reference[6]
SSD-6D的模型結構如上圖Fig.9所示,其關鍵流程介紹如下:
輸入為一幀解析度為299x299的三通道RGB圖片
輸入數據先經過Inception V4進行特徵提取和計算分別在解析度為71x71、35x35、17x17、9x9、5x5、3x3的特徵圖上進行SSD類似的目標值(4+C+V+R)回歸,其中目標值包括4(2D包圍框)、C(類別分類得分)、V(可能的視點的得分)和R(平面內旋轉)對回歸的結果進行非極大抑制(NMS),最終得到結果
關鍵點:
Viewpoint classification VS pose regression:
作者認為儘管已有論文直接使用角度回歸,但是有實驗證明對於旋轉角的檢測,使用分類的方式比直接使用回歸更加可靠,特別是使用離散化的viewpoints比網路直接輸出精確數值效果更好
Dealing with symmetry and view ambiguity:
給定一個等距採樣的球體,對於對稱的目標物體,僅沿著一條弧線採樣視圖,對於半對稱物體,則完全省略另一個半球,如圖Fig.10所示
效果:
▍3.2 3D Bounding Box Estimation Using Deep Learning and Geometry
作者提出一種從單幀圖像中進行3D目標檢測和姿態估計的方法,該方法首先使用深度神經網路回歸出相對穩定的3D目標的特性,再利用估計出來的3D特徵和由2D bounding box轉換為3D bounding box時的幾何約束來產生最終的結果。論文中,作者提出了一個嚴格的假設,即一個3D bounding box應該嚴格地被2D bounding box所包圍,一個3D bounding box由中心點的(x, y, z)坐標、和三維尺度(w, h, l)和三個旋轉角所表示。要估計全局的物體姿態僅僅通過檢測到的2D bounding box是不可能的,如下圖Fig.11所示,儘管汽車的全局姿態一直沒有變,但是在2D bounding box中的姿態一直在變。因此,作者選用回歸2D bounding box中的姿態再加上在相機坐標系中汽車角度的變化的綜合來進行汽車全局姿態的估計。
同時,作者還提出了MultiBin的結構來進行姿態的估計,首先離散化旋轉角到N個重疊的Bin,對個每一個Bin,CNN網路估計出姿態角度在當前Bin的概率,同時估計出角度值的Cos和Sin值。網路整體結構如下圖Fig.12所示,在公共的特徵圖後網路有三個分支,分別估計3D物體的長寬高、每個Bin的置信度和每個Bin的角度估計。
效果:
▍3.3 Implicit 3D Orientation Learning for 6D Object Detection from RGB Images
作者主要是提出了一種新型的基於去噪自編碼器DA(Denoising Autoencoder)的3D目標朝向估計方法,使用了域隨機化(Domain Randomization)在3D模型的模擬視圖上進行訓練。在進行檢測時,首先使用SSD(Single Shot Multibox Detector)來進行2D物體邊界框的回歸和分類,然後使用預先訓練的深度網路3D目標朝向估計演算法對物體的朝向進行估計。在模型的訓練期間,沒有顯示地從3D姿態標註數據中學習物體的6D pose,而是通過使用域隨機化訓練一個AAE(Augmented Autoencoder)從生成的3D模型視圖中學習物體6D pose的特徵表示。
這種處理方式有以下幾個優勢:
可以有效處理有歧義的物體姿態,尤其是在物體姿態對稱時
有效學習在不同環境背景、遮擋條件下的物體3D姿態表示AAE不需要真實的姿態標註訓練數據
效果:
4 思考
- 如前所述,純視覺單目3D目標檢測在準確率上離預期還有較大差距,可以考慮引入採用深度神經網路結合稀疏激光點雲生成稠密點雲對檢測結果進行修正
- 目前大多是採用One-Stage的方法進行3D目標的姿態回歸,可以考慮使用Two-Stage的方法來,並利用分割的Mask信息
- 目前3D目標檢測的標註數據較少,可以考慮引入非監督學習
- 使用更多的幾何約束
參考資料
- LiborNovák. Vehicle Detection andPose Estimation for Autonomous Driving. Master』s thesis, Czech TechnicalUniversity in Prague.
- YinZhou, Oncel Tuzel. VoxelNet: End-to-End Learning for Point Cloud Based 3DObject Detection. In CVPR, 2018.
- https://mp.weixin.qq.com/s/XdH54ImSfgadCoISmVyyVg
- Ku,Jason and Mozifian, Melissa and Lee, Jungwook and Harakeh, Ali and Waslander,Steven. Joint 3D Proposal Generation and Object Detection from ViewAggregation. In IROS, 2018.
- http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d
- Wadim Kehl, Fabian Manhardt, Federico Tombari,Slobodan Ilic and Nassir Navab: SSD-6D: Making RGB-Based 3D Detection and 6DPose Estimation Great Again. ICCV 2017.
- ArsalanMousavian, Dragomir Anguelov, John Flynn, Jana Ko?ecká. 3d bounding box estimation using deep learning andgeometry.CVPR 2017.
- MartinSundermeyer、En Yen Puang、Zoltan-Csaba Marton、Maximilian Durner、Rudolph Triebel. Implicit 3DOrientation Learning for 6D Object Detection from RGB Images. In ECCV, 2018.
作者:一個做感知的程序猿
出品:美團無人配送(ID:meituandr)
美團無人配送是我司最美運營小姐姐運營的官方微信公眾號,歡迎關注和我們交流更多自動駕駛知識喲~~~~
都看到這兒了~~點個贊再走嘛~~~
推薦閱讀: