【多模態融合】Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

論文鏈接:Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

代碼鏈接:https://github.com/junjie18/CMT

作者:Junjie Yan, Yingfei Liu, Jianjian Sun, Fan Jia, Shuailin Li, Tiancai Wang, Xiangyu Zhang

發表單位:曠視科技

會議/期刊:ICCV2023

一、研究背景

多傳感器融合在自動駕駛系統中展示了其巨大優勢。不同的傳感器通常能提供互補的信息。例如,攝像頭以透視視角捕捉信息,圖像中包含豐富的語義特征,而點云則提供更多的定位和幾何信息。充分利用不同傳感器有助于減少不確定性,從而進行準確和魯棒的預測。

然而,由于不同模態的傳感器數據在分布上的巨大差異,融合這些多模態數據一直是個挑戰。當前的主流方法通常通過構建統一的鳥瞰圖(BEV)表示來進行多模態特征融合,或通過查詢令牌(Transformer架構)來實現多模態融合。

BEVFusion、TransFusion 和所提出的 CMT 之間的比較

上圖, (a) 在 BEVFusion 中,通過視圖變換將相機特征變換到 BEV 空間。兩個模態特征在BEV空間中級聯,并采用BEV編碼器進行融合。 “VT”是從圖像到3D空間的視圖變換。(b) TransFusion 首先從 LiDAR 特征的高響應區域生成查詢。之后,對象查詢分別與點云特征和圖像特征交互。 (c) 在 CMT 中,對象查詢直接同時與多模態特征交互。將位置編碼(PE)添加到多模態特征中以進行對齊。

性能對比以及傳感器缺失情況性能評估

左:CMT 與現有方法之間的性能比較。所有速度統計數據均使用官方存儲庫的最佳模型在單個 Tesla A100 GPU 上測量。 (所有方法都使用spconv repo中相同的Voxelization模塊。此外,BevFusion的TranFusion head也配備了CMT repo中相同的FlashAttn。CMT和BEVFusion都沒有采用預計算)。

右:傳感器缺失情況下 CMT 的性能評估。在推理過程中,CMT 在 LiDAR 缺失的情況下實現了基于視覺的性能,表現出很強的魯棒性。

本文受 DETR 的啟發,目標是為 3D 對象檢測中的多模態融合構建一個優雅的端到端管道。

在 DETR 中,對象查詢通過 Transformer 解碼器中的交叉注意力直接與圖像標記交互。對于 3D 對象檢測,一種直觀的方法是將圖像和點云標記連接在一起,以便與對象查詢進一步交互。然而,連接的標記是無序的并且不知道它們在 3D 空間中的相應位置。因此,有必要為多模態標記和對象查詢提供位置先驗。

在本文,提出了 Cross-Modal Transformer (CMT),這是一種簡單但有效的端到端管道,用于魯棒3D 對象檢測。

首先,提出了坐標編碼模塊(CEM),它通過將 3D 點集隱式編碼為多模態標記來生成位置感知特征。具體來說,對于相機圖像,從視錐體空間采樣的 3D 點用于指示每個像素的 3D 位置的概率。而對于 LiDAR,BEV 坐標只是簡單地編碼到點云標記中。接下來,使用位置引導查詢。每個查詢都按照 PETR初始化為 3D 參考點。將參考點的 3D 坐標變換到圖像和 LiDAR 空間,以在每個空間中執行相對坐標編碼。

與現有方法相比,所提出的 CMT 框架具有許多優點。

首先,該方法是一個簡單的端到端管道,可以輕松擴展。 3D 位置被隱式編碼到多模態特征中,這避免了引入顯式跨視圖特征對齊引起的偏差。

其次,方法僅包含基本操作,沒有對多模態特征進行特征采樣或復雜的 2D 到 3D 視圖轉換。它實現了最先進的性能,并且與現有方法相比顯示出明顯的優越性。

第三,CMT的魯棒性比其他現有方法強得多。極端的是,在 LiDAR 未命中的情況下,與那些基于視覺的 3D 物體檢測器相比,僅使用圖像標記的 CMT 可以實現相似的性能。

本文貢獻:

(1)提出了一種快速且強大的3D 檢測器,這是一個真正的端到端框架,無需任何后處理。它克服了傳感器丟失的問題。

(2)3D 位置被編碼到多模式標記中,無需任何復雜的操作,例如網格采樣和體素池化(cue了BEVFusion)。

(3)CMT 在nuScenes 數據集上實現了最先進的3D 檢測性能。它為未來的研究提供了一個簡單的基線。

二、整體框架

Cross-Modal Transformer (CMT) 范例的架構

多視圖圖像和點云被輸入到兩個骨干網絡以提取特征tokens。在坐標編碼模塊中,相機光線和BEV位置的坐標(3D 坐標)分別轉換為圖像位置編碼(Im PE)和點云位置編碼(PC PE)。查詢由位置引導查詢生成器生成。在查詢生成器中,3D 錨點被投影到不同的模態,并且相對坐標被編碼(參見右側部分)。多模態tokens進一步與轉換器解碼器中的查詢交互。更新后的查詢進一步用于預測 3D 邊界框。整個框架以完全端到端的方式學習,LiDAR 主干從頭開始訓練,無需預訓練。

(1)特征提取:從多視角圖像和LiDAR點云中提取特征。

(2)位置編碼:使用CEM對圖像和點云特征進行位置編碼,生成位置嵌入。

(3)初始化查詢:

  • 使用PQG在3D空間中初始化錨點,并通過CEM對這些錨點進行位置編碼。

  • 將位置嵌入與查詢內容嵌入相結合,生成初始位置引導查詢。

(4)查詢更新:在跨模態Transformer解碼器中,位置引導查詢與多模態特征進行交互和更新,最終生成3D目標檢測結果。

三、核心方法

3.1 Coordinates Encoding Module

CEM的主要目的是通過將3D點的位置信息編碼到多模態令牌(圖像和LiDAR)中,提供具有位置感知的特征。這種編碼使模型能夠隱式理解3D空間中的空間關系,這對于準確的3D目標檢測至關重要。

假設P(u,v)是不同模態特征圖F(u,v)的3D點集,這里的(u,v)表示特征圖中的坐標。具體來說,F是相機的圖像特征或者LiDAR的BEV特征。假設CEM的輸出位置嵌入為Γ?(u,v),其計算公式為:

\Gamma(u,v)=\psi(P(u,v))

其中 𝜑 是多層感知 (MLP) 層。

CE for Images:對于攝像頭圖像,編碼涉及從攝像頭的截錐體空間中采樣3D點,因此圖像中的每個像素可以看作在3D空間中表示一條線(極線)。對于每個圖像,從相機視錐體空間中的一組點進行編碼以執行坐標編碼,對于給定的圖像特征F im,每個像素都可以表示為相機平截頭體坐標中的一系列點:

\{p_{k}(u,v)=(u*d_{k},v*d_{k},d_{k},1)^{T},k=1,2,...,d\}

其中,u和v代表像素坐標,d是沿深度軸采樣的點的數量。

特別說明這里的dk是怎么得到的,類似LSS中的方法:

(1)預定義的深度范圍:通常,攝像頭的視錐體會有一個預定義的深度范圍,比如從最小深度(通常接近0)到最大深度(通常是攝像頭的遠裁剪面距離)。

(2)均勻采樣:在這個預定義的深度范圍內,均勻采樣dk個點。這些點可以是等間距的,也可以按照特定的策略(如對數分布)進行采樣,以便更好地捕捉近距離或遠距離的細節。例如,如果預定義的深度范圍是從0.1米到100米,可以均勻地在這個范圍內采樣d個點。

(3)深度值集合:得到的d個深度值{d1,d2,...,dk,...,d}}就代表了沿深度軸采樣的點。這些點用于生成相機平截頭體坐標中的點集。

采樣后得到的點通過相機內外參變化矩陣進行變化,最終投影到3D空間:

p_k^{im}(u,v)=T_{c_i}^lK_i^{-1}p_k(u,v)

其中,T_{c_{i}}^{l}\in R^{4\times4} 是從第i個相機坐標到LiDAR坐標的變換矩陣, K_{i}\in4\times4 是第i個相機的內在矩陣。也就是說,這些點通過T從攝像頭坐標系變到LiDAR坐標系,然后由攝像頭內參矩陣K變到LiDAR空間。

圖像中每個像素的位置信息編碼計算為:

\Gamma_{im}(u,v)=\psi_{im}(\{p_{k}^{im}(u,v),\quad k=1,2,...,d\})

一樣是用MLP進行位置編碼。

CE for Point Clouds:使用VoxelNet或PointPillar作為主干網絡編碼點云Tokens,稱為F pc。點集沿Z軸(高度)采樣。假設(u,v)是BEV特征圖的坐標,那么采樣得到的點集是:

p_{k}(u,v)=\left(u,v,h_{k},1\right)^{T}

其中,hk代表第k個點的高度,h0=0是默認值。BEV特征圖對應的3D點就可以通過下面公式計算:

p_k^{pc}(u,v)= (u*u_d,v*v_d,h_k,1)

其中,(ud,vd)是每個BEV特征網格的大小,為了簡化,只沿高度軸采樣一個點,相當于BEV空間中的2D坐標編碼。那么點云的position embedding(位置信息編碼)可以計算:

\Gamma_{pc}(u,\upsilon)=\psi_{_{pc}}(\{p_{k}^{pc}(u,\upsilon),\quad k=1,2,...,h\})

3.2 Position-guided Query Generator

首先,位置引導的查詢生成器根據Anchor-DETR和PETR的方法,初始化一組錨點。這些錨點是從均勻分布中采樣的n個點,表示為:

A=\{a_{i}=(a_{x, i},a_{y, i},a_{z, i}),i=1,2,...,n\}

其中,每個錨點的坐標在[0, 1]范圍內均勻分布。

接下來,這些錨點通過線性變換映射到3D世界空間中,具體公式如下:

\left\{\begin{array}{ll}a_{x,i}= a_{x,i}*(x_{max}-x_{min})+x_{min}\\a_{y,i}= a_{y,i}*(y_{max}-y_{min})+y_{min}\\a_{z,i}= a_{z,i}*(z_{max}-z_{min})+z_{min}\end{array}\right.

其中,[xmin?,ymin?,zmin?,xmax?,ymax?,zmax?]是3D世界空間的感興趣區域(RoI)。

3D世界空間的感興趣區域(Region of Interest, RoI)是預定義的一個空間范圍,用于在該范圍內進行3D目標檢測。這個RoI的確定通常基于具體的應用場景和傳感器的覆蓋范圍。RoI通常通過一組邊界坐標來定義,通常是一個長方體或立方體,包含了目標可能出現的所有區域。定義RoI的邊界坐標通常包括最小和最大值。

這些坐標分別表示RoI在X、Y、Z三個軸上的最小和最大范圍。例如:

  • xmin? 和 xmax? 表示RoI在X軸(通常是車輛前后方向)的范圍。

  • ymin? 和 ymax? 表示RoI在Y軸(通常是車輛左右方向)的范圍。

  • zmin? 和 ?zmax? 表示RoI在Z軸(通常是高度方向)的范圍。

這種定義確保了RoI覆蓋了車輛周圍的所有重要區域,從而能夠有效地檢測和處理這些區域內的目標。

在將錨點轉換到3D世界空間后,這些錨點被投影到不同的模態(如圖像和平面視圖)中,并通過坐標編碼模塊(CEM)編碼對應的點集。這樣可以生成對象查詢的位置信息嵌入Γq可以通過以下方式生成:

\Gamma_q=\psi_{_{pc}}(A_{_{pc}})+\psi_{_{im}}(A_{_{im}})

其中,Apc和Aim分別是投影到BEV平面和圖像平面的點集,位置嵌入Γq進一步與查詢內容嵌入相加,以生成初始位置引導查詢Q0。

3.3 Decoder and Loss

對于解碼器,遵循 DETR 中原始的 Transformer 解碼器并使用解碼器L層。

每個解碼器層,位置引導查詢與多模式令牌交互并更新其表示。兩個前饋網絡 (FFN) 用于使用更新的查詢來預測 3D 邊界框和類別。將每個解碼器層的預測過程表述如下:

\stackrel{\wedge}{b}_{i}=\Psi^{reg}(Q_{i}),\stackrel{\wedge}{c}_{i}=\Psi^{cls}(Q_{i}),

其中Ψreg和Ψcls分別表示回歸和分類的FFN。Qi是第i解碼器層的更新的對象查詢。

對于集合預測,二分匹配應用于預測和真實值之間的一對一分配。采用Focal Loss進行分類,采用L1 損失進行 3D 邊界框回歸:

L(y,\hat{y})=\omega_{1}L_{cls}(c,\hat{c})+\omega_{2}L_{reg}(b,\hat{b})

w1和w2是平衡兩個損失項的超參數。對于查詢去噪中的正查詢和負查詢,損失的計算方式相同。

3.4 Masked-Modal Training for Robustness

安全性是自動駕駛系統最重要的問題。理想的系統需要可靠的性能,即使其中一部分失敗,并且不依賴于任何特定模式的輸入。BEVFusion 探索了 LiDAR 傳感器故障的魯棒性。然而,探索僅限于有限的掃描范圍,并且模型需要重新訓練。在本文中,嘗試了更多的極端故障,包括單攝像頭缺失、攝像頭缺失和激光雷達缺失,如下圖所示。與實際場景一致,保證了自動駕駛的安全。

為了提高模型的魯棒性,提出了一種訓練策略,稱為masked-模態訓練。在訓練過程中,隨機使用單一模態進行訓練,例如相機或激光雷達,其比例為x1和x2。該策略確保模型經過單模態和多模態的充分訓練。然后可以使用單模態或多模態測試模型,而無需修改模型權重。實驗結果表明,掩模模態訓練不會影響融合模型的性能。即使LiDAR損壞,與基于SoTA視覺的3D探測器相比,它仍然可以實現相似的性能。

圖 4:在測試期間分析了 CMT 在三種模擬傳感器誤差下的系統魯棒性:(a) 單攝像頭未命中、(b) 所有攝像頭未命中和 (c) LiDAR 未命中。

CMT 在端到端建模方面與 FUTR3D 有著相似的動機。然而,兩者的方法和效果卻完全不同。 FUTR3D 重復采樣每個模態的相應特征,然后執行跨模態融合。 CMT對多視點圖像和點云都進行位置編碼,簡單地添加相應的模態標記,消除了重復的投影和采樣過程。它在原有的DETR框架中保留了更多端到端的精神。此外,與 FUTR3D 相比,CMT 取得了更好的性能,顯示出其卓越的有效性。可以認為 CMT 為多模態目標檢測提供了更好的端到端解決方案。

四、實驗結果

nuScenes 測試集上的性能比較

nuScenes 驗證集的性能比較

使用 LiDAR 或相機未命中的 nuScenes val 的定量結果。通過掩模模態訓練, CMT 的效率和魯棒性得到了顯著提高,特別是在缺少 LiDAR 或相機的情況下。

nuScenes val 與傳感器缺失的 NDS/mAP 比較。 BEVFusion 使用掩模模態策略進行訓練。 * 表示作者復現的結果。

Argoverse2 驗證集上的 CDS/AP 比較。 “L”是激光雷達,“C”是相機。CDS和NDS有點相似,但是只考慮了平均平移誤差、平均尺度誤差和平均角度誤差。

CDS的公式

nuScenes 測試集中周圍視圖和 BEV 空間的一些定性檢測結果。不同顏色的邊界框代表車輛、行人、公共汽車和卡車。

多視圖圖像上注意力圖的可視化。藍點是初始錨點,而紅點是框預測的中心。它表明注意力圖的高響應區域主要集中在靠近錨點的前景物體上。

CMT 中不同組件的消融研究

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14255.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14255.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14255.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

字符串的周期:每一期都有那么幾位

【題目描述】 如果一個字符串可以由某個長度為k的字符串重復多次得到,則稱該串以k為周期。例 如,abcabcabcabc以3為周期(注意,它也以6和12為周期)。 輸入一個長度不超過80的字符串(不含空格),輸出其最小周期。 輸入第一行表示有T組數據,后續是T行字符串。輸出的每組…

性能測試工具

性能測試工具 1.Jmeter 環境搭建1.安裝JDK2.安裝Jmeter1.下載2.安裝3.環境配置 3.Jmeter 文件目錄介紹1.bin目錄2.docs 目錄3.printable_docs目錄4.lib目錄 4.修改默認配置1.漢化配置2.修改主題 5.元件的基本介紹6.元件的作用域作用域的原則 7.元件的執行順序 1.Jmeter 環境搭建…

Linux基礎-目錄命令

目錄文件命令 一、概述二、文件目錄1. 目錄信息1. pwd:顯示當前目錄2. cd :切換目錄3. ls:顯示目錄中的文件信息 2. 操作目錄1. mkdir : 創建目錄2. rm : 刪除目錄3. mv : 移動、重命名目錄4. cp :拷貝命令 一、概述 這里記錄一下…

【Pytorch】16.使用ImageFolder加載自定義MNIST數據集訓練手寫數字識別網絡(包含數據集下載)

數據集下載 MINST_PNG_Training在github的項目目錄中的datasets中有MNIST的png格式數據集的壓縮包 用于訓練的神經網絡模型 自定義數據集訓練 在前文【Pytorch】13.搭建完整的CIFAR10模型我們已經知道了基本搭建神經網絡的框架了,但是其中的數據集使用的torchvision…

Flutter 中的 WidgetInspector 小部件:全面指南

Flutter 中的 WidgetInspector 小部件:全面指南 Flutter 的 WidgetInspector 是一個強大的工具,它允許開發者在運行時檢查和操作他們的 widget 樹。這在調試復雜的布局和 widget 結構時尤其有用。本文將為您提供一個全面的指南,幫助您了解如…

Excel 按順序去重再編號

Excel的A有重復數據: A1Cow2Chicken3Horse4Butterfly5Cow 現在要去除重復,用自然數按順序進行編號,結果寫在相鄰列: AB1Cow12Chicken23Horse34Butterfly45Cow1 使用 SPL XLL,輸入公式并向下拖: spl(&q…

RISC-V壓縮指令擴展測試

概述 RISC-V定義了壓縮指令擴展(compressed instruction-set extension ),命名為“C”擴展。壓縮指令使用16位寬指令替換32位寬指令,從而減少代碼量。這個C擴展可運用在RV32、RV64和RV128指令集上,通常使用“RVC”來表…

Double 4 VR情景實訓教學系統在商務洽談課堂上的應用

隨著科技的不斷發展,VR(虛擬現實)技術已經逐漸滲透到各個領域。在商務洽談課堂上,Double 4 VR情景實訓教學系統不僅可以為學生提供身臨其境的模擬環境,還可以通過互動和交互式學習方式,增強學生的學習體驗和…

貝銳向日葵打造農機設備遠程運維支持方案

當物聯網“萬物互聯”的概念向第一產業賦能,農機設備的智能化程度也越來越高。 所謂農業物聯網,即在應用層將大量的傳感器節點構成監控網絡,通過各種傳感器采集信息,以幫助農民及時發現問題,并準確地判定發生問題的位…

QT 使用QZipReader 進行文件解壓縮

目錄 1、QZipReader 概述 2、解壓示例 3、說明 1、QZipReader 概述 QZipReader 是一個方便的工具,用于在 Qt 應用程序中解壓 ZIP 壓縮包。它提供了讀取 ZIP 文件的接口,并能提取其中的內容。以下是如何使用 QZipReader 解壓 ZIP 文件的示例代碼&#…

List、IList、ArrayList 和 Dictionary

List 類型: 泛型類命名空間: System.Collections.Generic作用: List<T> 表示一個強類型的對象列表&#xff0c;可以通過索引訪問。提供了搜索、排序和操作列表的方法。特點: 類型安全&#xff0c;性能較好&#xff0c;適用于需要強類型和高效操作的場景。例子: List<…

每日一練 - BGP Keepalive 報文詳解

01 真題題目 關于 BGP 的 Keepalive 報文消息的描述,錯誤的是&#xff1a; A.Keepalive 周期性的在兩個 BGP 鄰居之間發送 B.缺省情況下,Keepalive 的時間間隔是 180s C.Keepalive 報文主要用于對等路由器間的運行狀態和鏈路的可用性確認 D.Keepalive 報文的組成只包含一個…

Web安全:SQL注入之時間盲注原理+步驟+實戰操作

「作者簡介」&#xff1a;2022年北京冬奧會網絡安全中國代表隊&#xff0c;CSDN Top100&#xff0c;就職奇安信多年&#xff0c;以實戰工作為基礎對安全知識體系進行總結與歸納&#xff0c;著作適用于快速入門的 《網絡安全自學教程》&#xff0c;內容涵蓋系統安全、信息收集等…

ICML2024高分論文!大模型計算效率暴漲至200%,來自中國AI公司

前段時間&#xff0c;KAN突然爆火&#xff0c;成為可以替代MLP的一種全新神經網絡架構&#xff0c;200個參數頂30萬參數&#xff1b;而且&#xff0c;GPT-4o的生成速度也是驚艷了一眾大模型愛好者。 大家開始意識到—— 大模型的計算效率很重要&#xff0c;提升大模型的token…

前端加載excel文件數據 XLSX插件的使用

npm i xlsx import axios from axios; axios //這里用自己封裝的http是不行的&#xff0c;踩過坑.get(url,{ responseType: "arraybuffer" }).then((re) > {console.log(re)let res re.datavar XLSX require("xlsx");let wb XLSX.read(r…

黑龍江大學文學院古代文學教研室安家琪副教授

女&#xff0c;生于1990年。蘭州大學文學學士、碩士&#xff0c;上海交通大學文學博士&#xff0c;曾赴臺灣東華大學交流&#xff0c;研究方向為明清詩文與唐代文學。 在《文藝理論研究》、《蘇州大學學報》、《唐史論叢》、《中國社會科學報》等期刊發表論文20余篇&#xff0…

2024年 電工杯 (A題)大學生數學建模挑戰賽 | 園區微電網風光儲協調優化配置 | 數學建模完整代碼解析

DeepVisionary 每日深度學習前沿科技推送&頂會論文&數學建模與科技信息前沿資訊分享&#xff0c;與你一起了解前沿科技知識&#xff01; 本次DeepVisionary帶來的是電工杯的詳細解讀&#xff1a; 完整內容可以在文章末尾全文免費領取&閱讀&#xff01; 問題重述…

干就對了!

成年人的世界哪有那么容易&#xff0c;不過都在負重前行&#xff0c;誰不是一邊抱怨著&#xff0c;一邊咬牙堅持&#xff0c;一邊崩潰&#xff0c;一邊還要自我安慰。 想改變&#xff0c;想更好&#xff0c;我們都有很多想法。 想再多不如動手做一次。一旦開始做了&#xff0…

前端手寫文件上傳;使用input實現文件拖動上傳

使用input實現文件拖動上傳 vue2代碼&#xff1a; <template><div><div class"drop-area" dragenter"highlight" dragover"highlight" dragleave"unhighlight" drop"handleDrop"click"handleClick&quo…

聽說京東618裁員沒?上午還在趕需求,下午就開會通知被裁了~

文末還有最新面經共享群&#xff0c;沒準能讓你刷到意向公司的面試真題呢。 京東也要向市場輸送人才了? 在群里看到不少群友轉發京東裁員相關的內容&#xff1a; 我特地去網上搜索了相關資料&#xff0c;看看網友的分享&#xff1a; 想不到馬上就618了&#xff0c;東哥竟然搶…