全面解析自動駕駛系統 BEV 3D 檢測提升策略
眾所周知,與其他傳感器相比,自動駕駛汽車AV攝像頭擁有最密集的信息,使其成為自動駕駛汽車中提取信息最具挑戰性的傳感器之一,但同時也是最有用的。為了從數學上理解這一點,需要首先看一下每個可視化數據點數量,如下圖所示。實際上,視覺感知算法是將這些數據點(浮點數)作為傳感器覆蓋 360°視圖的感知算法輸入,負責為 AV 做出決策。
基于視覺的3D檢測任務是自動駕駛系統感知的基礎任務,也是自動駕駛當前研究的熱點。然而,使用單目相機的 2D 傳感器輸入數據實現 3D BEV(鳥瞰圖)性能并不是一件容易的事。在本文中,重點關注自動駕駛中基于3D 視覺檢測的方法?;诓煌曈XBEV 算法檢測進行了詳細分析,并將它們分為不同的子組,以便更容易理解共同趨勢。此外,從行業趨勢上分析了如何將3D檢測任務轉向基于環視圖像的方法,以及介紹了這些環視方法適用到自動駕駛或自動泊車中的特殊場景。最后,基于當前方法的缺點以及前沿協同感知這類型研究方向,提出了 3D 視覺技術對未來研究的思考。
為了涵蓋理解3D BEV目標檢測任務所需的基礎知識,我們討論四個方面:自動駕駛車輛 (AV) 上的傳感器設置;經常使用的數據集;自動駕駛檢測任務的常見評估指標,以及為什么鳥瞰圖 (BEV) 對于 AV 攝像頭感知很重要?
因此,本文將基于環視視覺的3D對象檢測的進行全面調研,提供了對最近基于深度學習的方法和架構的全面回顧。首先,基于單視圖檢測器基線進行了深入分析,激發了使用相機進行 3D 物體檢測任務中的環視檢測器研究。其次,進一步分析了計算機視覺界目前正在開發的主要環視探測器趨勢,從而對它們進行分類。最后,對遺留問題進行了詳細分析,并介紹了BEV 3D圖像目標檢測器的幾個潛在研究方向,從而為未來的檢測研究打開了可能的大門。
AV系統利用不同視角感知視圖的特征來了解自動駕駛車輛周圍場景的整體表示。多相機組合都需要事先進行與固定傳感器安裝及其校準相關的基礎設施工作。相機的標定簡單來說就是提取兩個相機之間的外參變換矩陣。該相機矩陣使我們能夠將一個相機中的像素一對一映射到另一個相機中的像素,從而在多個相機之間創建關系以實現它們之間的推理。自動駕駛汽車需要保持這種長距離的高視場重疊,以最大限度地減少短距離的盲點。通過回歸每個對象的深度或使用基于啟發式的方法(逆透視映射),通過估計地平面高度,可以有效的將透視圖檢測提升到 BEV 空間。
3D 物體檢測器使用多個標準來衡量檢測器的性能,即精度和召回率。精度是檢索到的待檢測案例中相關實例的比例,召回率是檢索到的相關實例的比例。如下公式:
Precisinotallow=TP/(TP + FP) (1)
Recall=TP/(TP + FN) (2)
然而,平均精度 (mAP) 是最常見的評估指標。可根據上述方程,分別計算每個類別的平均精度。為了比較不同檢測器之間的性能(mAP)。需要基于每個類別的基本事實數量計算加權平均值。并集交集(IoU)是預測框與真實框之間重疊面積與并集面積的比率,IoU 閾值(通常為 0.5)用于判斷預測框是否與任何特定的真實框匹配。如果 IoU 大于閾值,則該預測被視為真陽性 (TP),否則為假陽性 (FP)。如果無法用任何預測框檢測到的真實對象將被視為假陰性 (FN)。
另外,定義如下公式所示的F1 分數作為第二個最常見的檢測指標,它表示為精度和召回率的加權平均值。當模型在不同的配置下部署時,更高的 AP 檢測器可以提供更好的性能。然而,當模型要以已知的固定最佳置信度閾值部署時,會使用更高的 max-F1 分數檢測器。
F1=2?Precision?Recall/(Precision+Recall) (3) 此外,還有一些數據集特定的指標,即 KITTI 引入的平均方向相似度(AOS),它評估地平面上盒子的方向估計的質量。mAP度量僅考慮對象的3D位置,但是忽略尺寸和方向的影響。與此相關的是,nuScenes 引入了 TP 指標,即平均平移誤差 (ATE)、平均尺度誤差 (ASE) 和平均方向誤差 (AOE)。WOD 引入了按航向加權的平均精度 (APH) 作為其主要指標,將航向/方向信息納入評估體系??紤]到相機等 2D 傳感器的深度混亂,WOD 引入了縱向誤差容錯 3D 平均精度 (LET-3D-AP),在預測中更強調橫向誤差而不是縱向誤差。
為什么要在 AV 中采用環視技術構建多相機檢測視圖算法呢?因為在很多時候,很難將整個對象放入單個幀中以對其進行準確檢測和分類,這是長型車輛類別中特別常見的問題。通過如下圖所示可以很直觀地了解整個多相機檢測的優勢。
圖 周視圖像在 3D 物體檢測中的使用
如上圖所示,頂部表示構建的整個BEV 視圖;底部表示右前、右、右后攝像頭的周視圖像。假設只使用一個或兩個攝像頭,我們可以將物體分類為汽車,但如果沒有所有三個圖像,我們將無法對其位姿和運動狀態進行完美定位,因為考慮跟蹤而言,我們最后的目的是要在黑色豪華轎車上安裝準確的邊界框。因此,由多V構建在3D坐標系下的鳥瞰圖是非常必要的。并且,在鳥瞰圖中使用 3D 代理的表示形式對于自動駕駛更具有實際意義。
1、傳感器融合
首先,BEV代理表示形式使得所有AV車輛相關的全場景感知傳感器(即Camera、LiDAR 和RADAR)的融合更加自然。比如,基于激光雷達本身也可以在 BEV 空間中運行。
2、時間一致性
其次,如果處理算法都在BEV 中進行操作,就可以更好地對動態場景的時間一致性進行建模。與透視圖(相機視圖)相比,BEV 代理中的運動補償(即平移和旋轉建模)要簡單得多。例如,在 BEV 視圖中:姿勢變化僅取決于主體的運動,而在透視視圖中,姿勢變化取決于深度以及主體的運動。
3、空間一致性
由于感知對象的比例在BEV 空間中是一致的,但在透視圖中則不太一致。在透視圖中,物體離物體越近就會顯得越大。因此,BEV 空間使得學習與范圍無關的尺度特征變得更容易。在自動駕駛中,感知之后的下游任務(例如運動預測和運動規劃)本身也可以在 BEV 空間上運行。因此,所有軟件堆棧在車載域控平臺上很自然的就會利用BEV下的通用坐標視圖進行計算和轉化。
4、協同感知
基于單V圖像的目標檢測主要是基于如下三類方法:兩級、單級和基于集合的檢測器。其中,兩級探測器分為兩個階段。第一階段是預測任意數量的對象提案,然后在第二階段通過對這些對象提案進行分類和本地化來生成預測框。然而,這些建議存在推理時間慢、缺乏全局上下文(即使在單個圖像內)和復雜架構等固有問題。因此,采用多V圖像的BEV代理架構構成的兩階段方法可以很好的解決如上問題。
最近的創新研究領域---“協同感知”,也正是利用了 BEV 形式來表示公共坐標系中的所有代理。這些協同感知中視覺算法主要基于 R-CNN工作線構建區域的全卷積網絡(R-FCN)、特征金字塔網絡(FPN)和 Mask R-CNN。此外,還有激光算法圍繞偽 LiDAR 的并行工作流,在第一階段預測密集深度,從而將像素轉換為偽點云,然后將類似 LiDAR 的檢測頭應用于 3D Point-pillars 中完成的對象檢測。
周視檢測可以大致分為兩個子組,即基于幾何的視圖變換器和基于交叉注意力的視覺變換器。其過程是將每個圖像單獨提升到 BEV 特征的截錐體中,然后將所有截錐體放到光柵化的 BEV 網格上。給定 n 張圖像 Xk ∈ R3xHxWn,每個都有一個外參矩陣 Ek ∈ R3x4 和一個內參矩陣 Ik ∈ R3x3,可以在 BEV 坐標系中找到特征的柵格化 BEV 圖為 y ∈ RCxXxY,其中 C、X 和 Y 是通道深度BEV 地圖 、高度和寬度。外參矩陣和內參矩陣共同定義了每個攝像機從參考坐標 (x, y, z) 到局部像素坐標 (h, w, d) 的映射。這種方法不需要在訓練或測試期間訪問任何深度傳感器,只需 3D 框注釋就足夠了。該架構如下圖所示,它改進了預處理和后處理技術。
Lift-splat-shoot (LSS)架構
如上圖所示,頂圖表示的整個BEV算法的提升步驟如下:
每個圖像平截頭體的像素定義了上下文向量,并投影到 BEV 坐標空間中生成離散深度,底圖則通過接收 n 個圖像并返回 BEV 語義圖。
與基于雷達這類傳感器相比,基于單幀視覺的探測器通常具有更高的速度誤差,因為 LiDAR 探測器通常使用在點云中嵌入時間信息的多次掃描數據,而RADAR 固有的點云包括使用多普勒效應的速度屬性。基于此,在視覺檢測器中添加時間幀則能夠學習道路上動態代理的時間線索。最新的BEVDet4D網絡架構整體上添加了時間維度,使BEV的問題升級成為 4 維問題,這種方法試圖解決基于視覺的探測器中高速誤差的固有問題。
作為進一步的擴展,BEVDepth方法添加了相機感知深度估計模塊,這有助于實現對象深度預測能力。整體假設是:增強深度是 nuScenes 基準上高性能相機 3D 檢測的關鍵,將 LSS 中的普通分割頭替換為用于3D 檢測的 CenterPoint頭。對于輔助深度頭基線,則僅使用檢測損失的監督。然而,由于單目深度估計的困難,單獨的檢測損失遠遠不足以監督深度模塊。因此,通過使用校準的 LiDAR 數據將相機變換矩陣點云投影到圖像上,從而形成 2.5D 圖像坐標 P imgi(u, v, d),其中 u 和 v 表示圖像坐標中的坐標,d 表示相應 LiDAR 點云的深度,實現了單攝像頭檢測深度的缺陷損失。
當然,為了減少內存使用,進一步開發的M2BEV可以很好減少可學習參數,并在推理速度和內存使用方面提高效率。優化的檢測器包括四個組件:
1. 圖像編碼器,用于提取透視圖中的圖像特征;
2. 深度模塊,用于生成深度和上下文,然后將它們進行外積以獲得點特征;
3. 視圖轉換器,將透視圖轉換為 BEV 視圖;
4. 3D 檢測頭提出最終的 3D 邊界框;
5. BEV三維重建模塊引入動態時間立體方法來增強計算成本預算內的深度預測。
視覺 Transformer (Vision Transformer,ViT)可以根據 Transformer 解碼器中查詢(對象建議)的粒度進行劃分,即基于稀疏查詢的方法和基于密集查詢的方法?;谙∈璨樵兊?ViT假設測試數據對象代表訓練數據對象,其處理過程則是嘗試從代表性訓練數據中學習要在場景中查找的對象建議,然后使用這些學習到的對象建議在測試時進行查詢。
單圖像(透視視圖)DETR通過 DETR3D 擴展到 BEV 空間中的環視圖像。這里給定 n 個環視圖像 I ∈ R H’×W’×3,分別通過主干網BackBone、特征提取網FPN 后由Transformers 編碼器產生 n 個編碼圖像特征 F ∈ RHxWxd。其中 d 是特征維度,H'、W' 和 H,W 分別表示圖像和特征的空間尺寸。然后,將這 n 個編碼特征和一小組對象查詢 Q ∈ R Nxd 饋送到Transformer 解碼器中以產生檢測結果。這里 N 是對象查詢的數量,表示 BEV 地圖上不同位置的潛在對象,對于整個 360°場景,通常為 300 ~900個查詢對象。作為元數據,相機變換矩陣也用作輸入。需要這些矩陣來創建映射到 2D 坐標空間的 3D 參考點,并對每個查詢的相應 2D 特征進行采樣。
在 Transformers 解碼器中,對象查詢依次由自注意力模塊、交叉注意力模塊和前饋網絡 (FFN) 處理,最后由多層感知器 (MLP) 生成 3D BEV 檢測的最終輸出。這里的自注意力模塊在不同對象查詢之間執行消息傳遞;在交叉注意力模塊中,對象查詢首先搜索相應的區域/視圖進行匹配,然后從匹配的區域中提取相關特征以進行后續預測。
另外值得注意的是,基于變壓器的編碼器是這里的可選附加組件,但這些檢測器的核心部分是基于變壓器的解碼器。這種方法的工作流程可以很容易地理解,如下圖所示。
DETR3D 合并了重疊區域中兩個相鄰視圖的多個特征,同時也合并了重疊區域中兩個相鄰視圖的多個特征,每個圖像的邊界區域可能導致特征截斷,這也是阻礙 DETR3D 性能的主要瓶頸。因此,DETR3D仍然存在特征聚合不足的問題,從而錯過了充分提升檢測性能的機會。
為了優化 DETR3D算法瓶頸,可以由如下不同的算法優化策略:
1)通過圖結構學習(GSL)聚合環視圖像信息。
它在每個對象查詢和 2D 特征圖之間構建動態 3D 圖,以增強對象表示,尤其是在圖像邊界區域。這類方法可以表述為PETR,即在PETR的位置編碼開發工作中,通過對攝像機變換矩陣中的 3D 坐標進行編碼,將環繞視圖特征變換到 3D 域。隨后,通過與 3D 位置感知功能交互來更新對象查詢并生成 3D 預測,從而使過程更簡單。增強型PETRv2則在PETR基礎上其添加了時間維度,以獲得時間感知的更密集特征。
2)Polar DETR在極坐標中參數化 3D 檢測。
這重新表述了位置參數化,極坐標系(r,θ)中的速度分解、感知范圍、標簽分配和損失函數。這種基于 Graph-DETR3D的檢測方法,量化了位于不同區域的對象,可以簡化并支持中心上下文特征聚合以增強特征交互。
3)基于密集查詢的 ViT。
假設有一個基于 BEV 表示中感興趣區域的密集查詢,每個查詢都預先分配了 3D 空間中的空間位置。因為仍然能夠檢測到某些類型的對象,這些對象不是通過稀疏查詢在訓練數據中進行學習的。換句話說,當訓練數據不能完美代表測試數據時,這種方法更加穩健。
BEVFormer通過預定義的網格狀 BEV 查詢與空間和時間空間進行交互,從而可以很好的利用空間和時間信息。為了聚合空間信息,設計了空間交叉注意力,每個 BEV 從相機視圖的空間特征中提取信息進行查詢。對于時間信息,他們使用時間自注意力來循環融合歷史 BEV 信息,如下圖所示。
BEVFormer 的總體架構
如上圖所示,整體架構上(a) BEVFormer 的編碼器層包含網格狀 BEV 查詢、時間自注意力和空間交叉注意力。(b)在空間交叉注意力中,每個 BEV 查詢僅與感興趣區域中的圖像特征進行交互。(c)在時間自注意力中,每個 BEV 查詢與兩個特征交互:當前時間戳的 BEV 查詢和前一個時間戳的 BEV 特征。
由于利用了密集查詢,這種方法已經超越了基于稀疏查詢的 Vision Transformers 方法,獲得了更高的召回值。然而,密集查詢是以高計算要求為代價的。因此,使用可變形 DETR 來解決這個問題的K點圍繞參考點采樣策略,即BEVFormer 可完全基于變壓器的結構使其 BEV 功能比其他方法更加通用,從而輕松支持非均勻和不規則的采樣網格。
4)優化BEVFormer的方法策略。
后續優化策略中,BEVFormerV2添加了透視監督,這有助于收斂并以更好的方式利用基于圖像的主干網。其中包括兩級檢測器,其中來自透視頭的建議被輸入鳥瞰圖并進行最終預測。除了透視頭提案之外,還使用了 DETR3D 風格的學習查詢。對于輔助透視損失,使用 FCOS3D head,用于預測 3D 邊界框的中心位置、大小、方向和投影中心度。
該頭的輔助檢測損失,表示為透視損失Lpers,作為BEV損失Lbev的補充,促進骨干網的優化。整個模型的訓練有一個總體目標:
PolarFormer主張在 BEVFormer 之上利用極坐標系,這樣可以很好的解釋自車視角的本質,因為每個車載攝像頭都以具有根(非垂直)軸的成像幾何固有的楔形形狀感知世界。