感知: 3D目標檢測 Sparse BEV 補1
1. DETR3D 2021(DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries)
Ref 1. https://zhuanlan.zhihu.com/p/430198800
Coarse-to-Fine的形式,Decode每層都輸出預測框和類別,做Loss計算。
DETR3D首先根據object query預測N個參考點,然后利用相機參數將參考點反投影回圖像,對2D圖像特征進行采樣,最后根據采樣得到的2D圖像特征預測3D目標信息。
單點特征采樣:DETR3D只會選取參考點反投影位置對應的圖像特征,導致模型對于全局特征學習的不夠充分。
1. 有無Corase2Fine?如何實現?
2. PETR 2022(Implicit BEV Pos Embed) (PETR: Position Embedding Transformation for Multi-View 3D Object Detection)
1. 3D Position Encoder
將空間特征編碼到圖像二維特征中。
2. Object queries 生成
DETR使用一組可學習的參數作為初始的object query,DETR3D基于初始的object query預測一組參考點,PETR為了降低3D場景的收斂難度,首先在3D世界空間中以均勻分布的方式初始化一組可學習的3D錨點,然后錨點經過一個小型MLP生成初始的object query。論文作者還提到,如果使用DETR的方式或在BEV空間生成錨點,最終模型性能都不理想。
3. Decoder
和標準DETR一樣,Cross attention模式
PETR系列算法利用基于query的架構和全局cross attention來實現多視圖特征融合。PETR排除了密集的視圖轉換模塊,但與DETR類似,它使用全局注意力,導致了較高的理論計算成本。
3. FUTR3D 2023(FUTR3D: A Unified Sensor Fusion Framework for 3D Detection)
4. BEVFormer 2022(Transformer for BEV feature)
Ref 1. 一文讀懂BEVFormer論文: https://zhuanlan.zhihu.com/p/538490215
1. Queries如何生成
BEV Queries是預定義的一組柵格形(grid-shaped)可學習參數,簡稱\(Q\in R^{H\times W \times C}\),在輸入到BEVFormer之前,BEV Queries加上了可學習的位置編碼(learnable positional embedding)
具體組成?
(待補充...)
2. Temporal self attenion reference points/off set 如何生成?如何組合多個采樣特征
-
從經典 RNN 網絡獲得啟發,將 BEV特征 \(B_t\) 視為能夠傳遞序列信息的 memory。每一時刻生成的 BEV 特征 \(B_t\) 都從上一時刻的 BEV 特征 \(B_{t-1}\) 獲取所需的時序信息,這樣能保證動態地獲取所需的時序特征,而非像堆疊不同時刻 BEV 特征那樣只能獲取定長的時序信息。
-
BEVFormer中TSA采用了繼承式的時域信息融合方式:利用attention機制在t時刻融合了t-1時刻的BEV features信息,由于t-1時刻的BEV features 也融合了更早時刻(t-2)的信息,因此t時刻BEV features間接地融合了比t-1時刻更早的信息。但是這種繼承式時域融合方式有遺忘的特點,即不能有效利用較長時間的歷史信息。BEVFormer V2把時域融合改成了:根據ego motion,把過去多個時刻的BEV features 對齊到當前時刻,然后在channel 維度把這些對齊后的BEV features 與當前時刻BEV features串聯,然后用Residual 模塊降低channel數,就完成了時域融合。
如何在\(B_{t-1}\)產生參考點?
將\(B_{t-1}\)根據自車運動對齊到t時刻記作\(B^{'}_{t-1}\),(x, y) 處 query在\(B^{'}_{t-1}\)的參考點為(x, y)
3. Spatial cross attention reference points/off set 如何生成?
- 無需reference points,BEV query顯示表示某個BEV網格處的特征。
- 論文中把BEV平面中的柵格叫做2D參考點(2D reference points)。論文中定義nuScenes數據集柵格尺寸200x200,對應[-51.2米, 51.2米],那么s就是0.512米。把BEV平面在z軸方向選取\(N_{ref}\)個3D參考點進行擴展,表示車輛周圍有限空間。
- 最后,對\(V_{hit}, N_{ref}\)個sampled features進行加權求和,作為spatial cross-attention的輸出來更新BEV query,從而完成 spatial 空間的特征聚合。
- 在BEV Query對應的圖像2D features 有效區域附近計算注意力,把圖像2D features加權融合到BEV Query作為SCA的輸出。
補充:
將每個BEV grid的\(N_{ref}\)點投影到N個圖像特征,作為參考點,在參考點周圍采樣圖像特征需要off set,此off set怎么獲得?
通過bev query接MLP/CNN獲得?(是一種方式)
4. 是否Corase-to-fine,如何實現的?
無?(未看源碼,暫無結論)
4. Sparse3D
Ref 1. https://zhuanlan.zhihu.com/p/635478379
Ref 2. https://zhuanlan.zhihu.com/p/674699884 \(\star\)
1. v1: Sparse4D: Multi-view 3D Object Detection with Sparse Spatial-Temporal Fusion
- Sparse 4D采樣:對于每個3D anchor,分配多個4D關鍵點,然后將其投影到多視圖/尺度/時間戳圖像特征上,以采集樣相應的特征;
- 分層特征融合:分層融合不同視圖/尺度、不同時間戳和不同關鍵點的采樣特征,生成高質量的實例特征。通過這種方式,Sparse4D能夠在不依賴密集視圖變換(類似于基于LSS的方法基本都是密集視圖變化)或全局注意力的情況下,高效地實現3D檢測,并且更適合在邊緣設備上部署。
- 此外,作者引入了一個實例級深度重加權模塊,以緩解3D到2D投影中的不適定問題。(具體參考 Ref 2)
補充:
1. 代碼內 anchor 是如何表示的?參數是否是可學習的?(均勻分布的預制框,不可學習?)
均勻分布的預制框,可學習的(nn.Parameter(anchor, requires_grad=True))
2. v2: Sparse4D v2 Recurrent Temporal Fusion with Sparse Model
1. v1問題
- Sparse4D的時態模塊存在一個顯著的限制,即在執行特征融合之前需要對多幀歷史數據進行采樣。這導致計算復雜性隨歷史幀數的增加而線性增加,導致推理和訓練速度降低,GPU內存使用增加并且難以有效地整合長期時態特征。
2. v2特點
- 提出Sparse4D的增強版本,通過實現一種遞歸形式的多幀特征采樣,改進了時態融合模塊(通過用一種基于實例特征的循環方式替代多幀采樣方法,類似于基于query的跟蹤器和SteamPETR);
- 有效地解耦圖像特征和結構anchor特征,Sparse4D實現了對時態特征的高效轉換,從而僅通過逐幀傳輸稀疏特征促進了時態融合;
- 具體而言,對于第一幀,使用單幀Sparse4D執行檢測,輸出一組帶有它們相應實例特征的3D邊界框。對于后續幀,將前一幀的輸出轉換到當前幀。實例特征保持不變,而實例狀態(例如3D邊界框)則投影到當前幀上作為anchor,利用自車運動數據。
- Sparse4Dv2引入的改進,包括增強的時態模塊、可變形聚合操作的重構、相機參數編碼的整合以及密集深度監督。
- 在Sparse4D中,一個實例由三個部分表示:anchor、實例特征(instance feature)和anchor embedding。anchor是結構化信息,表示實例的狀態,并具有實際的物理意義。實例特征是從圖像中提取的高階語義特征,主要來自圖像編碼器。而anchor embedding是錨點的特征編碼,使用一個小的anchor編碼器 Ψ 將anchor的結構化信息映射到高維空間。這種設計完全解耦了圖像特征和實例(指的是anchor)的結構化狀態,因此可以更方便地添加先驗知識。對于實例的時序傳播,僅僅需要投射前一幀的anchor到當前幀,然后再對投射到當前幀的anchor進行編碼,而實例特征不用改變。
- 收斂困難:稀疏形式的感知算法,大多數都面臨這個收斂困難的問題,收斂速度相對較慢、訓練不穩定導致最終指標不高;在Sparse4D-V2 中,我們主要采用了額外的深度估計任務來幫助網絡訓練,但由于用上了額外的點云作為監督。
3. v3: Sparse4D v3 Advancing End-to-End 3D Detection and Tracking
1. v2問題
- 網絡收斂慢,引入額外深度估計任務幫助訓練,使用點云做監督(理想情況不需要借助額外點云數據);
2. v3特點
- 引入了DETR-like 2D 檢測論文中最為有效的輔助任務"query denosing"并將其改進成了時序形式,此外我們提出另外一個輔助訓練任務 "quality estimation",這兩個任務不僅加速了模型收斂,同時讓感知性能更優。
- 針對端到端跟蹤任務,我們很驚喜得發現無需加入任何訓練策略和優化,只需要在測試時引入簡單的跟蹤策略,僅依賴于Sparse4D 中的實例時序傳播策略,即可實現SOTA 的性能指標。
補充:
1. Temporal denosing 中Noisy Instances feature是如何產生的?
噪聲GT需要轉為instance的形式以輸入進網絡中,首先噪聲GT可以直接作為anchor,把噪聲GT編碼成高維特征作為anchor embed,相應的instance feature直接以全0來初始化。

浙公網安備 33010602011771號