BEVFusion論文閱讀

1. 簡介

融合激光雷達和相機的信息已經變成了3D目標檢測的一個標準,當前的方法依賴于激光雷達傳感器的點云作為查詢,以利用圖像空間的特征。然而,人們發現,這種基本假設使得當前的融合框架無法在發生 LiDAR 故障時做出任何預測,無論是輕微還是嚴重。這從根本上限制了實際場景下的部署能力。相比之下,在BEVFusion框架中,其相機流不依賴于 LiDAR 數據的輸入,從而解決了以前方法的缺點。

有兩個版本的BEVFusion,分別是北大與阿里合作的Bevfusion: A Simple and Robust LiDAR-Camera和麻省理工發表的Bevfusion: Multi-task multi-sensor fusion with unified bird's-eye view representation,下面分別進行介紹。

2. PKU BEVFusion

作者認為,LiDAR和相機融合的理想框架應該是,無論彼此是否存在,單個模態的每個模型都不應該失敗,但同時擁有兩種模態將進一步提高感知準確性。為此,作者提出了一個令人驚訝的簡單而有效的框架,它解決了當前方法的LiDAR相機融合的依賴性,稱為BEVFusion。具體來說,如圖1 (c)所示,作者的框架有兩個獨立的流,它們將來自相機和LiDAR傳感器的原始輸入編碼為同一BEV空間內的特征。然后作者設計了一個簡單的模塊,在這兩個流之后融合這些BEV的特征,以便最終的特征可以傳遞到下游任務架構中。由于作者的框架是一種通用方法,作者可以將當前用于相機和LiDAR的單模態BEV模型合并到作者的框架中。作者采用Lift-Splat-Shoot作為相機流,它將多視圖圖像特征投影到3D車身坐標特征以生成相機BEV特征。同樣,對于LiDAR流,作者選擇了三個流行的模型,兩個基于超體素(voxel)的模型和一個基于柱子(pillar)的模型將LiDAR特征編碼到BEV空間中。

圖1 框架對比。以前的融合方法可以大致分為 (a) 點級point-level融合機制,將圖像特征投影到原始點云上,即找到點云和圖像特征對應的部分,融合信息,以及 (b) 特征級融合機制,分別在每個視圖圖像上投影LiDAR特征或proposal以提取RGB信息。(c) 相比之下,作者提出一個新框架,相機和lidar的輸入分開
圖2 BEVFusion框架。兩個流分別提取特征并將它們轉換到相同的BEV空間:i)將相機視圖特征投影到3D車身坐標以生成相機BEV特征;ii) 3D backbone從點云中提取LiDAR BEV特征。然后融合兩種模態的BEV特征。最后,基于融合的BEV特征構建特定任務的頭部,并預測3D目標。其中藍框是預測,紅圈是錯誤預測

3. MIT BEVFusion

3.1. 統一表示

不同的視圖中可以存在不同的特征。例如,相機特征在透視視圖中,而激光雷達/雷達特征通常在3D/鳥瞰視圖中。即使是相機功能,每個功能都有不同的視角(即前、后、左、右)。這個視圖差異使得特征融合變得困難,因為不同特征張量中的相同元素可能對應完全不同的空間位置(在這種情況下,naive elementwise特征融合將不起作用)。因此,找到一個共享的表示是至關重要的,這樣(1)所有傳感器特征都可以很容易地轉換為它而不丟失信息,(2)它適合于不同類型的任務。

相機。在RGB-D數據的激勵下,一種選擇是將LiDAR點云投影到相機平面上,并渲染2.5D稀疏深度。然而,這種轉換在幾何上是有損的。深度圖上的兩個鄰居在3D空間中可以彼此遠離。這使得相機視圖對于專注于物體/場景幾何的任務(如3D物體檢測)的效果較差。

激光雷達。大多數最先進的傳感器融合方法用相應的攝像機特征(例如語義標簽、CNN特征或虛擬點)裝飾LiDAR點。然而,這種攝像頭到激光雷達的投影在語義上是有損耗的。相機和激光雷達功能的密度有很大的不同,導致只有不到5%的相機功能與激光雷達點匹配(對于32通道激光雷達掃描儀)。放棄相機特征的語義密度嚴重損害了模型在面向語義任務(如BEV地圖分割)上的性能。類似的缺點也適用于潛在空間中的最新融合方法(例如,對象查詢)。

鳥瞰圖。采用鳥瞰圖(BEV)作為融合的統一表示。這個視圖對幾乎所有的感知任務都是友好的,因為輸出空間也是在BEV中。更重要的是,向BEV的轉換同時保持幾何結構(來自激光雷達特征)和語義密度(來自相機特征)。一方面,LiDAR- bev投影將稀疏的LiDAR特征沿高度維度平坦化,從而不會在圖1a中產生幾何失真。另一方面,相機到BEV投影將每個相機特征像素投射回3D空間中的射線(下一節將詳細介紹),這可能導致圖1c中密集的BEV特征映射,其中保留了來自相機的完整語義信息。

3.2. 高效的攝像頭到BEV的轉換

攝像頭到BEV的轉換不是簡單的,因為與每個攝像頭特征像素相關的深度本質上是模糊的。根據LSS和BEVDet,他們明確地預測了每個像素的離散深度分布。然后,他們將每個特征像素沿攝像機射線分散到D個離散點,并根據相應的深度概率重新縮放相關特征(圖3a)。這將生成一個大小為N HW D的相機特征點云,其中N是相機的數量,(H, W)是相機特征映射的大小。該三維特征點云沿x、y軸進行量化,步長為r(例如0.4m)。他們使用BEV池化操作來聚集每個r × r BEV網格中的所有特征,并沿z軸將特征平坦化。

雖然簡單,但BEV池化的效率和速度驚人地低,在RTX 3090 GPU上需要超過500毫秒(而他們模型的其余部分只需要大約100毫秒)。這是因為攝像特征點云非常大:對于典型的工作負載,每幀可能生成大約200萬個點,比激光雷達特征點云的密度大兩個數量級。為了克服這一效率瓶頸,他們提出了通過預計算和間隔縮短來優化BEV池。

預先計算。BEV池化的第一步是將攝像機特征點云中的每個點與BEV網格關聯。與LiDAR點云不同,相機特征點云的坐標是固定的(只要相機的intrinsic和extrinsics保持不變,這通常是在適當校準后的情況下)。在此基礎上,他們預先計算每個點的3D坐標和BEV網格索引。他們還根據網格索引對所有點進行排序,并記錄每個點的排名。在推理過程中,他們只需要根據預先計算的秩對所有特征點進行重新排序。這種緩存機制可以將網格關聯的延遲從17ms減少到4ms。

間隔的減少。網格關聯后,同一BEV網格內的所有點在張量表示中都是連續的。BEV池化的下一步是通過一些對稱函數(例如,均值、最大值和和)聚合每個BEV網格中的特征。如圖3b所示,現有實現首先計算所有點的前綴和,然后減去索引變化邊界處的值。然而,前綴和操作需要GPU上的樹約簡,并產生許多未使用的部分和(因為他們只需要邊界上的那些值),這兩者都是低效的。為了加速特征聚合,他們實現了一個專門的GPU內核,它直接在BEV網格上并行:他們為每個網格分配一個GPU線程,計算它的間隔和并將結果寫回來。該內核消除了輸出之間的依賴關系(因此不需要多級樹約化),并避免將部分和寫入DRAM,將特征聚合的延遲從500ms減少到2ms(圖3c)。

其他。通過優化的BEV池化,相機到BEV的轉換速度提高了40倍:延遲從超過500ms減少到12ms(僅占他們模型端到端運行時間的10%),并且在不同的特征分辨率上都能很好地伸縮(圖3d)。這是在共享BEV表示中統一多模態感官特征的關鍵使能器。我們同時進行的兩項工作也確定了僅在相機的3D檢測中的效率瓶頸。他們通過假設均勻的深度分布或截斷每個BEV網格中的點來近似視圖轉換器。相比之下,他們的技術是精確的,沒有任何近似,同時仍然更快。

3.3. 全卷積融合

將所有的感官特征轉換為共享的BEV表示,他們可以很容易地用一個元素操作符(如拼接)將它們融合在一起。盡管在同一空間中,由于視圖轉換器的深度不準確,LiDAR BEV特征和相機BEV特征仍然會在一定程度上出現空間錯位。為此,他們應用了一個基于卷積的BEV編碼器(帶有一些剩余塊)來補償這種局部失調。他們的方法可能從更精確的深度估計中受益(例如,用地面真實深度監視視圖轉換器),他們將其留給未來的工作。

3.4. 多任務頭

他們將多個特定于任務的頭應用到融合BEV特征圖中。他們的方法適用于大多數3D感知任務。他們展示了兩個例子:三維物體檢測和BEV地圖分割。

檢測。他們使用特定于類的中心熱圖頭來預測所有對象的中心位置,并使用一些回歸頭來估計對象的大小、旋轉和速度。我們建議讀者參考之前的3D檢測論文[1, 67, 68]了解更多細節。

分割。不同的地圖類別可能會重疊(例如,人行橫道是可駕駛空間的子集)。因此,他們將這個問題表述為多個二進制語義分割,每個類一個。他們遵循CVT,用標準focal loss來訓練分割頭。

參考文獻

https://download.csdn.net/blog/column/11257654/134724055

Bevfusion: A Simple and Robust LiDAR-Camera

BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework - 知乎

BEVFusion:A Simple and Robust LiDAR-Camera Fusion Framework 論文筆記_bevfusion: a simple and robust lidar-camera fusion-CSDN博客

Bevfusion: Multi-task multi-sensor fusion with unified bird's-eye view representation

技術精講 | BEVFusion: 基于統一BEV表征的多任務多傳感器融合-CSDN博客?

BEVFusion論文解讀-CSDN博客

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

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

相關文章

OSI七層協議——分層網絡協議

OSI七層協議,顧名思義,分為七層,實際上七層是不存在的,是人為的進行劃分,讓人更好的理解 七層協議包括,物理層(我),數據鏈路層(據),網絡層(網),傳輸層(傳輸),會話層(會),表示層(表),應用層(用)(記憶口訣->我會用表…

6. NLP自然語言處理(Natural Language Processing)

自然語言是指人類日常使用的語言,如中文、英語、法語等。 自然語言處理是人工智能(AI)領域中的一個重要分支,它結合了計算機科學、語言學和統計學的方法,通過算法對文本和語音進行分析,使計算機能夠理解、解…

Ubuntu使用指南

Ubuntu使用指南 一、Ubuntu虛擬機1、本地如何連接虛擬機,并設置虛擬機可以訪問外網 一、Ubuntu虛擬機 1、本地如何連接虛擬機,并設置虛擬機可以訪問外網 本地:WMware設置為橋接模式(此時虛擬機可以看作一臺獨立主機)…

【Mysql進階知識】Mysql 程序的介紹、選項在命令行配置文件的使用、選項在配置文件中的語法

目錄 一、程序介紹 二、mysqld--mysql服務器介紹 三、mysql - MySQL 命令行客戶端 3.1 客戶端介紹 3.2 mysql 客戶端選項 指定選項的方式 mysql 客戶端命令常用選項 在命令行中使用選項 選項(配置)文件 使用方法 選項文件位置及加載順序 選項文件語法 使用舉例&am…

wireshark抓路由器上的包 抓包路由器數據

文字目錄 抓包流程概述設置抓包配置選項 設置信道設置無線數據包加密信息設置MAC地址過濾器 抓取聯網過程 抓包流程概述 使用Omnipeek軟件分析網絡數據包的流程大概可以分為以下幾個步驟: 掃描路由器信息,確定抓包信道;設置連接路由器的…

【藍橋杯】43687.贏球票

題目描述 某機構舉辦球票大獎賽。獲獎選手有機會贏得若干張球票。 主持人拿出 N 張卡片(上面寫著 1?N 的數字),打亂順序,排成一個圓圈。 你可以從任意一張卡片開始順時針數數: 1,2,3 ? ? 如果數到的數字剛好和卡片上的數字…

SQL-leetcode—626. 換座位

626. 換座位 表: Seat -------------------- | Column Name | Type | -------------------- | id | int | | student | varchar | -------------------- id 是該表的主鍵(唯一值)列。 該表的每一行都表示學生的姓名和 ID。 ID 序列始終從 1 開始并連續…

微軟開源AI Agent AutoGen 詳解

AutoGen是微軟發布的一個用于構建AI Agent系統的開源框架,旨在簡化事件驅動、分布式、可擴展和彈性Agent應用程序的創建過程。 開源地址: GitHub - microsoft/autogen: A programming framework for agentic AI ?? PyPi: autogen-agentchat Discord: https://aka.ms/auto…

【Elasticsearch】全文搜索與相關性排序

🧑 博主簡介:CSDN博客專家,歷代文學網(PC端可以訪問:https://literature.sinhy.com/#/?__c1000,移動端可微信小程序搜索“歷代文學”)總架構師,15年工作經驗,精通Java編…

用css和html制作太極圖

目錄 css相關參數介紹 邊距 邊框 偽元素選擇器 太極圖案例實現、 代碼 效果 css相關參數介紹 邊距 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>*{margin: 0;padding: 0;}div{width: …

【React】插槽渲染機制

目錄 通過 children 屬性結合條件渲染通過 children 和 slot 屬性實現具名插槽通過 props 實現具名插槽 在 React 中&#xff0c;并沒有直接類似于 Vue 中的“插槽”機制&#xff08;slot&#xff09;。但是&#xff0c;React 可以通過 props和 children 來實現類似插槽的功能…

【Go】Go Gorm 詳解

1. 概念 Gorm 官網&#xff1a;https://gorm.io/zh_CN/docs/ Gorm&#xff1a;The fantastic ORM library for Golang aims to be developer friendly&#xff0c;這是官網的介紹&#xff0c;簡單來說 Gorm 就是一款高性能的 Golang ORM 庫&#xff0c;便于開發人員提高效率 那…

【MySQL實戰】mysql_exporter+Prometheus+Grafana

要在Prometheus和Grafana中監控MySQL數據庫&#xff0c;如下圖&#xff1a; 可以使用mysql_exporter。 以下是一些步驟來設置和配置這個監控環境&#xff1a; 1. 安裝和配置Prometheus&#xff1a; - 下載和安裝Prometheus。 - 在prometheus.yml中配置MySQL通過添加以下內…

【Apache Doris】周FAQ集錦:第 29 期

引言 歡迎查閱本周的 Apache Doris 社區 FAQ 欄目&#xff01; 在這個欄目中&#xff0c;每周將篩選社區反饋的熱門問題和話題&#xff0c;重點回答并進行深入探討。旨在為廣大用戶和開發者分享有關 Apache Doris 的常見問題。 通過這個每周 FAQ 欄目&#xff0c;希望幫助社…

Linux:文件描述符fd、系統調用open

目錄 一、文件基礎認識 二、C語言操作文件的接口 1.> 和 >> 2.理解“當前路徑” 三、相關系統調用 1.open 2.文件描述符 3.一切皆文件 4.再次理解重定向 一、文件基礎認識 文件 內容 屬性。換句話說&#xff0c;如果在電腦上新建了一個空白文檔&#xff0…

鴻蒙動態路由實現方案

背景 隨著CSDN 鴻蒙APP 業務功能的增加&#xff0c;以及為了與iOS、Android 端統一頁面跳轉路由&#xff0c;以及動態下發路由鏈接&#xff0c;路由重定向等功能。鴻蒙動態路由方案的實現迫在眉睫。 實現方案 鴻蒙版本動態路由的實現原理&#xff0c;類似于 iOS與Android的實…

計算機網絡 (42)遠程終端協議TELNET

前言 Telnet&#xff08;Telecommunication Network Protocol&#xff09;是一種網絡協議&#xff0c;屬于TCP/IP協議族&#xff0c;主要用于提供遠程登錄服務。 一、概述 Telnet協議是一種遠程終端協議&#xff0c;它允許用戶通過終端仿真器連接到遠程主機&#xff0c;并在遠程…

汽車網絡信息安全-ISO/SAE 21434解析(上)

目錄 概述 第四章-概述 1. 研究對象和范圍 2. 風險管理 第五章-組織級網絡安全管理 1. 網絡安全治理&#xff08;cybersecurity governance&#xff09; 2. 網絡安全文化&#xff08;cybersecurity culture) 3. 信息共享&#xff08;Information Sharing) 4. 管理體系…

【0393】Postgres內核 checkpointer process ③ 構建 WAL records 工作緩存區

1. 初始化 ThisTimeLineID、RedoRecPtr 函數 InitXLOGAccess() 內部會初始化 ThisTimeLineID、wal_segment_size、doPageWrites 和 RedoRecPtr 等全局變量。 下面是這四個變量初始化前的值: (gdb) p ThisTimeLineID $125 = 0 (gdb) p wal_segment_size $126 = 16777216 (gdb…

cursor+deepseek構建自己的AI編程助手

文章目錄 準備工作在Cursor中添加deepseek 準備工作 下載安裝Cursor &#xff08;默認安裝在C盤&#xff09; 注冊deepseek獲取API key 在Cursor中添加deepseek 1、打開cursor&#xff0c;選擇設置 選擇Model&#xff0c;添加deepseek-chat 注意這里去掉其他的勾選項&…