YOLO進軍BEV感知!YOLO+BEV在實時檢測上的嘗試
本文經(jīng)自動駕駛之心公眾號授權轉載,轉載請聯(lián)系出處。
筆者的個人理解
通過最近的nuScenes的Leaderboard榜單可以看出,基于純視覺的感知算法取得的性能(0.668)已經(jīng)逐漸向純激光雷達的算法性能逼近。
基于純視覺的感知LeaderBoard
基于純激光雷達的感知LeaderBoard
同時,多個傳感器融合的感知算法由于匯聚了不同傳感器的優(yōu)勢(相機傳感器采集的圖像提供豐富的語義信息,激光雷達傳感器提供物體的深度和幾何信息),使得檢測器得到了更加魯棒的檢測性能。
相機+激光雷達的融合感知模型
雖然目前基于多傳感器融合或者純視覺的感知算法已經(jīng)使自動駕駛車輛具備了強大的感知能力,但設計出來的感知算法模型往往會受到傳感器設備成本以及潛在的環(huán)境挑戰(zhàn),使其很難做到大規(guī)模的上車部署。
而在2D目標檢測任務中的YOLO算法模型因其在算法性能和部署方面做到了非常出色的權衡,本文就以YOLO網(wǎng)絡框架為設計原型,設計了在BEV場景下的感知算法模型——YOLO-BEV。
論文的arxiv鏈接:https://arxiv.org/pdf/2310.17379.pdf
YOLO-BEV算法模型的整體結構
本文將從模型的輸入數(shù)據(jù)準備,網(wǎng)絡模型架構,網(wǎng)格補償機制以及損失函數(shù)四方面進行介紹。
輸入數(shù)據(jù)準備
YOLO-BEV采用的是nuPlan數(shù)據(jù)集。這個數(shù)據(jù)集是包括波士頓、匹茲堡、拉斯維加斯和新加坡在內的四個城市采集的高質量的路采數(shù)據(jù),總計1200個小時。nuPlan數(shù)據(jù)集包含了多種駕駛條件,同時還包括了豐富的傳感器數(shù)據(jù),包括但不限于多個激光雷達,多個攝像頭采集到的視角、慣性測量單元以及高精度的GPS坐標。
與通用的視覺感知算法模型不一樣的是,本文使用的來自nuPlan數(shù)據(jù)集的8臺攝像機采集的圖像,每臺攝像機的FOV角為45°,從而構成一個360°的環(huán)視視角。在輸入的數(shù)據(jù)方面,喂入到模型的數(shù)據(jù)是一個3x3的圖像矩陣,其中中間的圖像是空白的,如下圖所示
值得注意的是,輸入的圖像矩陣最后一行作者將三張圖片旋轉了180度,因為作者在論文中提到,這種做法可以更好的匹配鳥瞰的空間位置。
除此之外,為了生成可靠和準確的GT真實數(shù)據(jù),采用了一種創(chuàng)新但簡單的提取技術。通過利用nuPlan數(shù)據(jù)集中唯一標識的標記,成功地建立了輸入圖像和精心計算的代表其他車輛位置的鳥瞰圖坐標之間的一對一對應關系。而且非必要信息,如行人、交通信號和其他環(huán)境變量,被有意地從作者的分析中省略。這種精簡的方法有助于加快計算過程,顯著縮短獲得有意義的結果所需的時間。
網(wǎng)絡模型架構
YOLO-BEV算法模型的整體網(wǎng)絡架構如下圖所示,其中復用了原有YOLO框架的主干網(wǎng)絡和Head檢測頭。
其中3x3 Matrix of Input Picture
即輸入到網(wǎng)絡中的一組8視角的環(huán)視圖像,通過主干網(wǎng)絡提取多尺度特征,然后送入到論文中提出的CustomDetect
結構當中得到最終的預測結果。
CustomDetect
結構通過上圖可以看出,分成了三個通道分支。每個通道分支包含一組卷積運算,該卷積層的結構用數(shù)學公示建模如下
其中以及代表每個卷積層的權重參數(shù)和偏置項。
針對每個通道分支輸入特征圖,得到包含待預測物體坐標和置信度的特征的數(shù)學表達式如下:
再得到特征圖后,就可以用來預測最終的置信度得分以及在BEV空間網(wǎng)格中的位置了。
網(wǎng)格補償機制
網(wǎng)格補償機制在本文中用于去調整預測后的物體空間位置信息。網(wǎng)格補償機制主要包括兩個子部分,分別是Innovative Grid Creation和Precision-Driven Coordinate Adjustment模塊。
- Innovative Grid Creation模塊
對于每個單獨的檢測層都會構建一個網(wǎng)格,這個網(wǎng)格和特征圖的尺寸大小是完全一致的。針對特征圖每個單元格的中心點坐標,假設其在當前網(wǎng)格的笛卡爾坐標系中的位置為:
通過上述操作,就可以得到特征圖每個單元格位置的中心點坐標在網(wǎng)格中的相對坐標了。
- Precision-Driven Coordinate Adjustment模塊
該模塊的作用用于將模型的檢測結果在構建的網(wǎng)格上進行調整。相當于是在初始化好的中心點坐標的偏移量,利用網(wǎng)絡的預測結果進行坐標的微調,該微調的數(shù)學表達式表述如下:
通過上面的Precision-Driven Coordinate Adjustment模塊就可以得到最終細粒度的坐標位置結果了。
損失函數(shù)
該論文中的總損失包括兩個部分,一部分是分類損失,另外一部分是回歸損失,兩個損失之間的比重靠和來調節(jié)。
對于分類損失來說,和常見的目標檢測中的損失計算方式一樣,采用的是交叉熵損失函數(shù),訓練過程中的正負樣本均參與分類損失的計算,即上面公式中的。
對于回歸損失來說,只有正類樣本才會參與回歸損失的計算,的計算方式如下
采用MSE作為回歸損失的目的是用來平滑梯度流,促進了基于反向傳播的學習環(huán)境中的優(yōu)化過程。
那接下來就嘮嘮在YOLO-BEV中的正負樣本損失是如何定義的。先放下論文中的插圖!
針對兩個有向的車輛目標,其中預測的車輛目標(圖中的綠色框),真值的車輛目標(圖中的藍色框),因其旋轉IoU計算比較困難。所以在論文中,為了方便、快捷的計算兩個框的IoU的值,選擇對兩個有向框轉換成與軸平行的矩形框(AABBs),水平預測框對應圖上的橙色框,水平真值框對應圖上的水藍色框。通過計算兩個水平框之間的IoU值來近似代替兩個旋轉框的IoU值。雖然這么做會造成IoU計算不準確的問題,但是作者也在論文中提到了這種近似做法并不會影響模型的訓練優(yōu)化過程。
may generally result in slightly larger IoU values compared to more exact oriented bounding box methods. This is because the boxes are aligned to the axis and may encompass extra area that is not a true part of the overlap.Importantly, empirical testing has shown that this slight overestimation is generally acceptable, as it still effectively aids in reducing the loss during training.
與更精確的定向邊界框方法相比,通常會導致略大的IoU值。這是因為框與軸對齊,并且可能包含不屬于重疊部分的額外區(qū)域。重要的是,經(jīng)驗測試表明,這種輕微的高估通常是可以接受的,因為它仍然有效地幫助減少訓練期間的損失。
最終在模型訓練過程中,正類樣本即計算的IoU閾值大于設定的閾值即為正類樣本,小于設定的閾值即為負類樣本。
實驗結果
在作者實際訓練模型的過程中,實際訓練策略包括了兩個階段
- 第一個階段:作者只使用了包括1000個左右實例的輕量數(shù)據(jù)集進行訓練從而使模型接近過訓練過程中的擬合狀態(tài),以確保捕捉復雜特征。在這一階段,花費了數(shù)小時的時間來達到近似過擬合的優(yōu)化模型狀態(tài)。
- 第二階段:在這一階段,作者將第一階段訓練的模型在完整的Nuplan數(shù)據(jù)集上進行訓練,并且在大規(guī)模的數(shù)據(jù)集上進行學習率、batch size等超參數(shù)的調優(yōu),從而實現(xiàn)最佳的感知性能。
通過論文中放出來的BEV下的檢測結果可以看到,YOLO-BEV的定位效果還是很不錯的,證實了模型在復雜場景下進行準確的位置定位能力。
目前存在的問題以及未來工作重點
- NMS后處理操作仍可進行改進
作者提到,NMS作為目標檢測任務中的后處理操作在抑制重復框方面是非常有效的,但是在鳥瞰圖的感知方面仍需考慮感知中特有的問題。比如兩輛車靠的比較近,NMS算法很有可能將其中的一個感知結果抑制掉。或者是由于徑向虛警等問題導致的最終檢測結果距離真值目標的位置依舊有偏移。
- 提升模型對于連續(xù)幀的建模能力
由于當前提出的YOLO-BEV是基于單幀的,缺乏對于連續(xù)幀的建模能力,從而在生成的BEV結果中,會有不平滑的“跳躍“問題。所以作者為了改善這一問題,后續(xù)的工作可能會深入到Transformer的架構中去建模不同幀之間的時序關系。同時作者也有提到,基于Transformer的架構參數(shù)量較高,可能會降低模型的FPS造成系統(tǒng)的延遲。所以,要在增強模型的時態(tài)理解和維護實時處理能力之間取得謹慎的平衡。
- 提升模型對于不同類別物體的感知能力
目前該工作不能識別像交通燈、行人或者其他車輛實體。但是在理想的情況下,一個更全面的BEV結果將包含這些不同的元素,提供更豐富的感知結果,更好地為自主導航系統(tǒng)提供信息。所以作者后續(xù)會可能會增加不同類別的損失函數(shù)或者語義分割功能,以封裝這種粒度級別的細節(jié)。
總結
目前雖然純視覺的單模態(tài)或者是多模態(tài)融合的感知算法已經(jīng)取得了出色的成績,但感知算法模型是否易于部署才是算法得以上車的關鍵所在!本文就是對YOLO-BEV的算法模型進行了細致的介紹和解讀,希望對大家有所幫助。