基於立體R-CNN的自主駕駛3D目標檢測方法

基於立體R-CNN的自主駕駛3D目標檢測方法

參考鏈接:https://blog.csdn.net/hitzijiyingcai/article/details/88537274

Title

Stereo R-CNN based 3D Object Detection for Autonomous Driving

Link

https://arxiv.org/abs/1902.09738

Abstract

我們爲自主駕駛設計了一個充分利用了立體圖像的稀疏、密集、語義、幾何結構信息的3D目標檢測方法。

我們的方法,稱爲“Stereo R-CNN”,立體R-CNN,基於Faster R-CNN拓展了立體輸入,在左右圖像中同時進行目標檢測。

我們在立體RPN之後加入了額外的分支,用於推斷稀疏關鍵點、視點以及目標dimension,融合2D左右圖像信息,粗略計算出3D目標邊界框。然後通過使用左右ROI的基於區域的光度校準恢復出精確3D邊界框。

我們的方法不需要深度輸入和三維位置信息,但優於現在所有的完全監督的基於圖像的方法。

在具有挑戰性的數據集KITTI上證明了,我們的方法在3D目標檢測和3D定位方面,超過最先進的基於立體的算法30%左右。

Code

https://github.com/HKUST-Aerial-Robotics/Stereo-RCNN

Introduction

大多數3D目標檢測方法是,基於激光雷達提供的自主駕駛場景中的精確深度信息來實現的,但激光雷達成本高、可測距離近(100m),並且它的分辨率比較低,獲得的信息是稀疏的,對目標的描述不夠細緻(激光雷達是點陣,點間隔不固定,估算的信息也很粗略)。

另一方面,單目相機可以爲3D目標檢測提供低成本的解決方案。深度信息可以通過場景中的語義屬性以及目標大小來推斷。然而,這種推斷出的深度信息不能保證精確性,尤其是第一次到的場景,具備的已知信息幾乎爲0。

出於這樣的目的,我們設想了一種基於立體視覺的3D目標檢測方法。對比單目相機,立體相機通過左右光度校準能夠提供更多精確地深度信息。對比激光雷達,立體相機成本低,而且可以獲得更有效的深度數據。立體相機的拍攝距離由焦點距離和基準線決定,相對激光雷達可以獲得更遠距離的精確信息。

Stereo R-CNN Network

與單幀檢測器(如Faster R-CNN),Stereo R-CNN能同時檢測並關聯左右圖像的2D邊界框,並進行微調。我們使用權重共享的ResNet-101和FPN作爲骨幹網絡來提取左右圖像的一致特徵。

受益於我們的訓練目標fig2,不需要任何額外的數據關聯計算。

在這裏插入圖片描述

Stereo R-CNN網絡架構如圖所示:

在這裏插入圖片描述

Stereo RPN

RPN是一個基於滑窗的前景探測器,在特徵提取過程後,用一個3×3的卷積層減少通道數,緊接着是並聯兩個全連接層,分別用來目標分類和邊界迴歸。相似的FPN,我們在原始RPN中加入特徵金字塔,用於評估多尺度特徵。

不同點在於,我們連接了每一個尺度的左右特徵圖,然後將這些特徵送入立體RPN網絡。

Stereo R-CNN

Stereo Regression

在Stereo RPN之後,分別對特徵金字塔的左右feature map應用ROI Align(一致化)操作。concat對應的左右ROI feature,並輸入到兩個連續的全連接層(每一個都FC都伴隨着ReLU)。使用4個子分支分別推測目標類別、立體邊界框、dimension、視點角度。

這裏的迴歸部分同stereo RPN是一致的,着重講解一下viewpoint angle。

在這裏插入圖片描述

用θ來表示,每一幀圖像中,車輛的運動方向。β來表示, 目標關於相機中心的方位角角。

圖中的三輛車有不同的朝向,然而他們在ROI圖像上的投影是完全一樣的。

定義迴歸的視角角度α=θ+β。爲了避免中斷,訓練目標設定爲[sinα,cosα]而不是一個角度值。

Keypoint Prediction

除了立體boxes和視點角度之外,我們注意到,3D包圍盒的投影到包圍盒中的邊角可以提供更多嚴苛的約束條件。
在這裏插入圖片描述

定義了4個3D語義關鍵點,它表示3D邊界框在底部的四個角。只有一個點能被明顯地投影到盒子中間(而不是左右邊界)。我們定義語義關鍵點的投影作爲透視的關鍵點。在上圖展示瞭如何使用透視關鍵點估計3D包圍盒的過程。

我們使用了Mask R-CNN提到的關鍵點檢測方法。

只有左側的feature map用於推薦關鍵點。我們使用ROI Align得到的14×14的feature map輸入到連續6個3×3×256的卷積層,每一個卷積層都帶有ReLU。經過一個2×2的反捲積層得到28×28的尺寸。我們注意到只有關鍵點的u座標會提供2D box以外的信息,爲了簡化計算,我們對高度通道進行求和,將6×28×28轉成6×28。

從結果上講,作者將每一列的ROI feature聚合到一起來推測關鍵點。第一個4通道代表每個關鍵點被投影到相應u座標的概率,後面倆個通道代表的是左右邊界上有關鍵點的概率。

3D Box Estimation

利用稀疏的關鍵點信息和2D包圍盒信息估算出一個粗略的3D包圍盒。

定義3D包圍盒的狀態爲x={x,y,z,θ},分別表示3D中心的點座標和水平方向的偏轉角。

給定左右2D包圍盒、透視關鍵點、迴歸dimension,通過最小化二維逆投影的誤差就可以得到3D包圍盒。

在這裏插入圖片描述

從立體包圍盒和透視關鍵點中提取出7個測量參數:
z={ul,vt,ur,vb,ul,ur,up} z=\{u_l,v_t,u_r,v_b,u_l^`,u_r^`,u_p\}
分別代表,左側2D包圍盒的left,top,right,bottom邊界,右側2D包圍盒的left,right半徑,以及透視關鍵點座標u。每一個參數都需經過相機內參進行歸一化。給定透視關鍵點,就能推斷出3D包圍盒的角與2D包圍盒的邊的對應關係。

通過[1]的方法,就能通過透視變換得到3D-2D的關係。

[1] 基於立體視覺的相機運動追蹤和3D語義物體檢測

在這裏插入圖片描述

Dense 3D Box Alignment

對於每一個在左圖中的有效ROI區域的歸一化後的像素座標值,圖像誤差被定義爲
ei=Il(ui,vi)Ir(uibz+Δzi,vi) e_i=||I_l(u_i,v_i)-I_r(u_i-\frac b{z+\Delta z_i},v_i)||
Il,Ir表示左右圖像透視圖的3通道RGB向量,△zi=zi-z爲像素i同3D包圍盒中心的深度偏差值,b是基準線長度,只有z是我們需要解決的客觀變量。

我們採用雙線性插值的方法得到右圖子像素值。當前的匹配的代價被定義爲“Sum of Squared Difference—SSD”覆蓋所有在有效ROI區域內的像素點:
E=i=0Nei E=\sum_{i=0}^Ne_i
中心點深度值z可以通過最小化當前匹配代價E來解算。我們可以通過枚舉深度值來加速最小化代價的過程。我們在初始值周圍每隔0.5米枚舉共50個深度值,得到粗略的深度值,然後在粗略深度值的周圍每隔0.05米枚舉共20個深度值,得到精確地深度值。

這種方法避免了全局深度估計時,一些無效像素點引起的中斷問題,整個方法更加健壯。

在這裏插入圖片描述

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