超越Stream PETR!BEVNeXt:重塑密集BEV感知新框架
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
寫在前面&&筆者的個人理解
目前基于純相機的自動駕駛3D感知算法也可以按照2D目標檢測的技術路線分為包含后處理的感知算法和不需要后處理(端到端)的感知算法。
諸如BEVDet這類密集檢測的感知算法會在BEV特征的每個單元網格上利用3D Head來輸出相應的感知結果,這就導致這類密集檢測的感知結果最后需要利用3D NMS等后處理操作來抑制掉重復的檢測框。
但是仿照2D目標檢測中End-to-End的方法,在自動駕駛感知算法中也有Query-Based的檢測算法,利用Transformer的Decoder模塊直接輸出最終的檢測結果,省去了NMS后處理的操作。
雖然,目前這類Query-Based的算法模型的感知性能正在逐漸逼近或者超過BEV-Based的感知模型。但是,作者認為BEV-Based的感知算法相比于Query-Based的感知算法而言,更加的有利于對于整體的場景理解,因為BEV-Based的感知算法會對車身周圍的前景區域或者背景區域均輸出相應的語義特征。
同時,作者認為BEV-Based的算法目前落后于Query-Based的算法主要是由于缺少更加先進的網絡設計和訓練技巧。基于此,作者將目前經典的BEV-Based算法進行分析,并總結出了三條缺點,列舉如下:
- 2D建模還不夠不充分
在BEV-Based的感知算法當中,通常會利用一個由激光雷達采集的點云信號進行監督的深度估計網絡來提高模型的2D建模能力。但是采集的點云信號很大程度上會受到激光雷達分辨率的限制,從而造成模型對于深度的感知不夠準確,影響模型的感知性能。 - 時序建模能力還比較差
目前,基于BEV框架的感知算法對于時序的建模能力依舊比較有限,但是對于時序信息的理解對于自動駕駛感知算法而言卻是非常重要的一環。在時序建模的過程中,當自車以及周圍的物體在不斷運動時,建立一個大感受野對于時序信息的融合是至關重要的。 - 投影轉換中的特征失真
在基于BEV-Based的算法當中,在進行不同坐標系之間的坐標轉換,或者特征圖分辨率的變換過程中特征圖的失真是非常容易發生的一件事情。而特征的失真問題對于自動駕駛的感知性能影響很非常大。
基于上述提到的幾點問題,作者提出了一個更加先進的BEV-Based的算法模型,即BEV-NeXt。
論文的arxiv鏈接:https://arxiv.org/pdf/2312.01696.pdf
BEVNeXt算法流程
BEVNeXt是基于現有的LSS算法基礎上構建起來的。BEVNeXt算法模型的整體框圖如下所示。
BEVNeXt算法模型的整體網絡結構
通過上圖可知,BEVNeXt算法模型主要由三個子模塊組成,分別是BEV Generation模塊,BEV Encoder模塊以及Detection Head模塊。下面依次為大家介紹各個模塊的功能及用途。
BEV Generation模塊
首先針對網絡模型輸入的六張環視圖像,利用2D主干網絡提取輸入環視圖像的多尺度特征。論文中提取到的多尺度特征分別是原始輸入圖像的降采樣4倍、8倍、16倍、32倍的特征結果。
接下來會將主干網絡提取到的多尺度特征送入到深度估計網絡Depth Net中預測離散的深度概率分布。然后利用論文中提出的Conditional Random Fields(CRF)利用輸入圖像的色彩信息對估計出來的深度信息進行調制,從而得到調制后的深度概率估計。接下來讓我們來看看CRF-Modulated子模塊具體是怎么來實現的。
- CRF-Modulated深度估計子模塊
在基于BEV-Based的感知算法當中,對物體的深度信息進行估計可以幫助模型提高對于2D的建模能力。論文中指出提高2D的建模能力可以緩解模型在構建BEV特征過程中的失真問題。
因此對于純視覺的感知任務而言,獲取準確和高精度的深度估計對于模型的定位能力是非常有幫助的。因此論文中將深度估計看作是一個語義分割任務,并利用Conditional Random Fields(CRF)來增強模型的深度估計能力。
具體而言,論文中希望施加顏色平滑的方法來調制深度估計,從而緩解2D深度估計的不足實現在像素級別執行深度的一致性功能。
假設代表降采樣特征圖所包含的個像素,代表需要估計的個離散的深度信息。而深度估計網絡的目標就是為每一個像素值分配對應的離散深度,用數學公式表示為。所以最終所需要優化的目標就是使得相應的Energy Cost最小,代價公式計算方式如下:其中,公式里的
用來衡量與深度估計網絡初始輸出的代價損失。而其具體的衡量公式如下所示:
其中,和代表圖像塊的平均RGB色彩像素值,表示兩個離散的深度網格之間的label兼容性,用來衡量其在現實世界中的實際距離。
最后利用View Transformer結合提取出來的多尺度圖像特征以及調制后的離散深度概率值來構建最終當前T時刻的BEV特征。
BEV Encoder模塊
論文中設計的BEV Encoder模塊用于融合過去K幀計算得到的歷史BEV特征信息。由于前文已經提到了,在時序信息融合的過程當中需要足夠大的感受野來獲取自車周圍運動的目標特征信息。而這一過程是通過論文提出的Res2Fusion子網絡來實現的。
- Res2Fusion子網絡
作者認為將當前時刻的BEV特征與歷史幀的BEV特征進行融合有助于提高模型對于動態物體的感知能力。然而,在BEV空間擴展模型的感受野是非常有挑戰性的,如果簡單的擴大卷積核的大小不僅會增加模型的計算量還會增加模型的過擬合風險。
為此,論文中是提出了Res2Fusion子網絡,該部分的網絡結構如下圖所示
Res2Fusion子網絡整體網絡結構
針對當前幀以及前K個時刻的歷史BEV特征信息,首先以窗口大小為尺寸將所有BEV特征分成組。然后利 用卷積降低每組特征的通道數,該部分可以表示成
再降低通道數之后,再采用多尺度卷積操作進行特征提取從而擴大模型的感受野,提高模型對于時序信息的建模能力。該部分的數學 表達式如下:
Detection Head模塊
最后將得到的統一BEV特征,利用Center-Based的3D檢測頭進行處理,從而獲取最終的3D感知結果。但是生成最終檢測結果的過程當中,作者采用CRF-Modulated深度估計子模塊得到的深度估計概率幫助模型區分不同位置的目標特征。
- Perspective Refinement
前文也有提到,將2D的圖像特征利用坐標轉換關系變換到3D空間會造成特征的失真問題。所以在本文中,作者利用透視精修的方法來對齊前景區域的特征。
具體而言,作者利用CenterPoint中的3D檢測頭來獲取目標的中心位置,在此中心位置的基礎上考慮大小的鄰域范圍,利用一組可學習的查詢,使用可變形注意力來實現透視精修的過程。為了進一步的引入深度信息的指導,論文中將CRF-Modulated子網絡中估計出來的深度信息嵌入到了2D圖像特征當中,具體公式如下其中,代表可變形卷積運算,是將點Lift到高度后的一組參考點。
實驗
作者在nuScenes數據集上來驗證提出的算法模型的有效性。通過表格中的結果可以看出,在采用不同2D Backbone的情況下,BEVNeXt均實現了非常出色的檢測結果。
BEVNeXt算法模型在nuScenes val數據集上的實驗結果對比
此外,論文為了更加直觀的展示所提出的CRF-Modulated深度估計網絡的效果,分別對幾組輸入圖像進行了可視化,如下圖所示
Conditional Random Field模塊的可視化效果對比
通過可視化結果也可以比較清晰的看出,采用了CRF模塊的深度估計更加的準確,目標的邊緣更加的銳利,前景區域和背景區域區分的也更加的明顯,從而證明了所提出的CRF模塊的有效性。
除此之外,論文也通過可視化的方式來驗證了提出的Perspective Refinement創新點的有效性。
Perspective Refinement模塊可視化效果對比
通過上面的可視化結果可以比較清楚的看出,無論是大目標還是小目標都可以從提出的Perspective Refinement模塊上受益。同時通過進一步的細化,模型在方向上的預測更加準確。
總結
目前雖然Query-Based的算法模型整體感知性能要好于BEV-Based的算法,但是作者將原因歸結于目前密集BEV-Based檢測模型的網絡結構和訓練策略,基于提到的相關缺點,本文介紹的BEVNeXt分別從2D建模能力、時序信息融合、透視精修等角度對BEV-Based的算法模型進行增強,希望本文可以給大家帶來幫助~
原文鏈接:https://mp.weixin.qq.com/s/vPDCMSSW1bp0zZ2d73xYzg