3D目標檢測&6D姿態估計之SSD-6D算法--by leona


最近的研究主要以6D檢測為主,本篇介紹基於2D檢測器SSD的3D檢測器SSD-6D。

1)論文鏈接:https://arxiv.org/pdf/1711.10006.pdf

   測試部分代碼鏈接:https://github.com/wadimkehl/ssd-6d

2)介紹:

  許多3D檢測器都是基於視角的(view based),生成一系列離散的目標視角用於后續視頻序列的特征計算。在測試過程中,從不同的離散視角對場景進行采樣,然后計算特征,並與目標數據庫匹配來建立訓練視角和場景位置的對應。此處的特征可指編碼后的圖像特征(顏色梯度,深度值,方向),或者學習得到的結果。但無論是哪種情況,檢測和姿態估計的精度都受一下三個方面影響: 1. 在對應的視角和尺度上,6D姿態空間的收斂性;2. 特征區別目標和視角的辨別能力;3. 在場景混亂,光照變化,出現遮擋時的魯棒性。

  YOLO和SSD等2D檢測器的思想:改變采樣策略,使場景采樣不再是得到連續輸出的離散的輸入點。輸入空間在整個圖片上是稠密的,輸出空間被離散為不同形狀和尺寸的邊界框。

  本文貢獻:1. 使用動態3D模型信息的訓練階段; 2. 分解模型姿態空間, 便於對稱的訓練和處理; 3. 擴展SSD, 產生2D檢測並推斷合適的6D位姿。(當正確使用顏色信息的時候,過度依賴3D實例檢測的深度信息使不合理的)。

3)相關工作:

  對於所有的3D檢測,場景采樣都至關重要。如果太粗糙,小尺寸的目標容易被漏檢;細粒度采樣會增加計算量且常常導致更多的假陽性檢測。

  其他基於SSD的位姿估計算法:

  1. A. Mousavian, D. Anguelov, J. Flynn, and J. Kosecka. 3D Bounding Box Estimation Using Deep Learning and Geometry. arXiv:1612.00496, 2016. (推斷3D邊界框,回歸3D框的角和方向角,城市交通)
  2. P. Poirson, P. Ammirato, C.-Y. Fu, W. Liu, J. Kosecka, and A. C. Berg. Fast Single Shot Detection and Pose Estimation. In 3DV, 2016. (引入額外的姿勢組合,不僅表達類別,還有局部取向的概念)

  這兩篇都是使用真實圖片訓練的,本文使用合成模型訓練,並包圍所有的6D姿態空間。

4)本文方法:

  • 網絡結構:

  Base network:預訓練的InceptionV4

  Input:RGB image 299*299,計算得到多尺度特征圖

  在最后一個池化層前分支,加入一個Inception-A模塊,得到71*71*384的特征圖;在Inception-A后繼續分支得到35*35*384,加入Inception-B;Inception-B后得到17*17*1024;Inception-C后得到9*9*1536。為了檢測大尺寸的目標,又增加了兩個模塊:Reduction-B后面跟着兩個Inception-C模塊,得到5*5*1024的特征圖;Reduction-B和Inception-C得到3*3*1024的特征圖。得到的6個特征圖都與預測卷積核卷積,從特征圖的位置返回局部檢測。

  (ws; hs; cs)表示尺寸s的寬、高和通道數。對於每個尺寸,訓練一個3*3*cs的核,此核提供每個特征圖的位置和目標ID的得分、離散視角和平面內旋轉。由於網格引入離散誤差,在每個位置創建Bs個不同橫縱比的邊界框。

  對於尺寸s,有(ws; hs;Bs*(C+V +R+4))個檢測圖,C: 目標類別數,V: 視角采樣數,R: 平面內旋轉采樣數,最后網絡會得到21222個不同尺寸和形狀的可能的邊界框。

  網絡在給出離散的視角的得分並進行分類上,比直接給出精確的平移和旋轉數值表現的更好。因此對視角分類而非回歸位姿。6D位姿在視角和平面內旋轉的分解可簡化問題。當一個新的視點呈現出一個新的視覺結構時,平面內旋轉的視點是同一視點的非線性變換。

  • 訓練過程:

  以來自MS COCO[20]的隨機圖像為背景,使用OpenGL命令將對象隨機轉換到場景中。對於每個處理過的實例,計算其每個邊界框與mask的IoU,大於0.5的被選做此目標類別的正樣本。此外,我們為所使用的變換確定其的最接近的采樣離散視點和平面內旋轉,並將其四個角值設置為最緊貼合掩模,設置后的四個角值作為回歸目標。

  與SSD相似,采取多種數據增強的方式,改變圖片的亮度和對比度。但是不會旋轉圖像,因其會導致視角混淆進而得到錯誤的姿態檢測。再反向傳播的過程中,保證對每個圖片,正負樣本的比例為1:2(選取困難負樣本)。

損失函數:Pos: 正樣本集合,Neg: 負樣本集合。對於分類概率,將正負樣本框相加,此外,每個正樣本為視角和平面內旋轉還有四角的擬合誤差貢獻權值。對於分類損失Lclass, Lview, Linplane 采用標准softmax cross-entropy loss,四角的回歸使用smooth L1-norm 損失。

處理對稱和視角模糊:本文方法需要消除視角的不確定性,因此需要特殊處理對稱和半對稱(可由平面反射構成)的目標,給定等距采樣的球體,從其中選取視點,並拋棄可能會產生歧義的位置。對於對稱對象,只沿着一條弧線采樣視圖,而對於半對稱對象,完全省略了一個半球。這種方法很容易進行概括,以處理相互不可分辨的視圖,盡管在實踐中可能需要對特定對象進行手工注釋。本質上,只是在測試過程中忽略了卷積分類器輸出的某些視圖,在訓練中特別注意視點分配。

  • 檢測階段:

      前向傳播得到所有高於某一閾值的所有檢測結果,極大值抑制。這將得到緊密且精細的2D邊界框,帶有目標ID和所有視角和平面內旋轉的得分。對於每個2D檢測結果,分析最有可能的視角和平面內旋轉,進而建立一系列6D假設,並在其中選擇一個最優的。

2D框建立6D假設:到目前為止,所有的計算都是在平面上的,通過視角ID和平面內旋轉ID可以3D旋轉,通過邊界框可以推斷3D平移。在離線階段,以標准質心距離zr = 0.5m呈現所有離散視圖和平面內旋轉的可能組合,並計算它們的邊界框。

姿態矯正和確認:對於RGB圖像,將每個假設呈現到場景中,並提取一組稀疏的3D輪廓點。對於每一個3D點Xi,計算投影π(Xi) = xi, 然后用一條垂直於其方向的光線,找到最近的場景邊緣yi,尋求三維模型的最佳對齊,使平均投影誤差最小(使用IRLS方法來最小化,Geman-McLure權重來使其魯棒)。

  對於RGB-D圖像,給出了當前的位姿,並用標准投影ICP求解,並用點對面公式。兩種情況都會進行多輪對應來提高准確度,並使用多線程來加速。

  這個過程為每個2D框都提供了多個調整過后的位姿,需要選擇一個最好的。對於RGB圖像,進行最終渲染,並通過絕對點積計算輪廓梯度和重疊場景梯度之間的方向平均偏差。在RGB-D數據可用的情況下,我們提出假設,估計相機空間法線來用絕對點積測量相似性。

  • 實現細節:

網絡參數和訓練過程:

  為了得到好的結果,需要合適的方法來對模型的視覺空間進行采樣,采樣過於稀疏,則要么錯過了某些姿勢的對象,要么建立的是次優的6D假設,而非常精細的采樣可能導致難以訓練。采用在單位圓上等距離采樣642的視角,因為數據集只有上半球,所以最后只有337個可能的視角ID。對於平面內旋轉,從-45°到45°每隔5°采樣一次,共有19個bin。

  使用ADAM和0:0003的恆定學習率對網絡的最后一層和預測器內核進行訓練,直到在合成驗證集上收斂。

  損失函數權重:α= 1:5, β= 2:5, γ= 1:5(實驗經驗值)。

單一目標:

2D檢測結果如下:檢測框與gt的IoU大於0.5即保留檢測結果

 本文方法只依賴於顏色信息,因此需要CAD模型的合成效果圖與其在場景中的外觀之間具有一定的顏色相似性。

多目標

5)總結:

  第一個提出了一個SSD方式檢測器用於三維實例檢測和全6D位姿估計,並且是在合成模型數據集上訓練的。本文證明,基於顏色的探測器確實能夠匹敵甚至超越目前最先進的利用RGB-D數據的方法,同時大約快一個數量級。進一步工作是提高CAD模型和場景中物體外觀顏色差異的魯棒性,還有各個損失項之間的平衡問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM