【論文閱讀】Sparse4D v2:Recurrent Temporal Fusion with Sparse Model

標題: Sparse4D v2:Recurrent Temporal Fusion with Sparse Model
作者: Xuewu Lin, Tianwei Lin, Zixiang Pei, Lichao Huang, Zhizhong Su

motivation

在v1的基礎上,作者發現長時序有更好的效果,但v1的計算量太大,于是又快又好的長時序v2誕生。
稀疏算法為多視圖時間感知任務提供了極大的靈活性。提出了 Sparse4D 的增強版本,其中通過實現多幀特征采樣的遞歸形式來改進時間融合模塊。通過有效地解耦圖像特征和結構化錨點特征,Sparse4D實現了時間特征的高效變換,從而僅通過稀疏特征的逐幀傳輸來促進時間融合。循環時間融合方法有兩個主要好處。首先,它將時間融合的計算復雜度從O(T)降低到O(1),從而顯著提高了推理速度和內存占用。其次,它能夠實現長期信息的融合,從而通過時間融合帶來更明顯的性能提升:Sparse4D v2。
在這里插入圖片描述

methods

總體Framwork如下:
在這里插入圖片描述

1、Instance Temporal Propagation
實例由三個部分表示,分別是錨點、實例特征和錨點嵌入。錨點是結構化信息,它指示實例的狀態,并具有實際的物理含義。實例特征是從圖像中提取的高階語義特征,主要來自圖像編碼器。錨點嵌入是錨點的特征編碼,利用小型錨點編碼器將錨點的結構化信息映射到高維空間。這種設計完全解耦了實例的圖像特征和結構化狀態,因此我們可以更方便地添加先驗知識。例如時間傳播,我們只需要投影其錨點,并使用錨點編碼器對投影的錨點進行編碼,實例特征可以保持不變。
在這里插入圖片描述
其中投影公式與anchor定義相關,對于3D 檢測任務,使用的投影公式如公式:
在這里插入圖片描述
將decoder分為單幀層和時序層。單幀層以新初始化的instance作為輸入,輸出一部分高置信度的instance至時序層;時序層的instance除了來自于單幀層的輸出以外,還來自于歷史幀(上一幀)。將歷史幀的instance投影至當前幀,其中,instance feature保持不變,anchor box通過自車運動和目標速度投影至當前幀,anchor embed通過對投影后的anchor進行編碼得到。

Instance 表示方式:PETR系列中,query instance 采用的是 “Anchor Point -> Query 特征”的方式。即將均勻分布在3D 空間中的anchor point(learnable)用MLP編碼成Query 特征。比起Sparse4D instance 中顯式分離feature (紋理語義信息) 和3D anchor(幾何運動信息) 的方式,PETR的instance 表示方式更加隱式一些。我們認為feature + anchor box的顯式instance表示方式,在稀疏3D檢測任務中更加簡潔有效,也更易于訓練;
時序轉換方式:與instance 表示方法相對應的是稀疏Reccurent 的方式。StreamPETR 中,采用了隱式的query時序轉換方式,即把velocity、ego pose、timestamp都編碼成特征,然后再和query feature做一些乘加操作;Sparse4d-V2 則采用了顯式的時序轉換方式,對于歷史幀的instance,直接將其3D anchor基于自車和instance 運動投影到當前幀,而保持其instance feature不變。
歷史幀數量:StreamPETR 中 cache了歷史N幀的query,再與當前幀進行attention。Sparse4d-v2 則只cache了上一幀的query。當然,StreamPETR 也可以只cache 一幀,只是效果會略略有下降。在實際的業務實踐中,較少的歷史幀cache 有助于減少端上的帶寬占用,進一步提升系統整體性能。

2、Efficient Deformable Aggregation
就是直接在模型里面進行特征采樣及融合,提高中間效率,降低訪問及存儲;
作者對deformable aggregation模塊進行了底層的分析和優化,讓其并行計算效率顯著提升,顯存占用大幅降低。基于pytorch op組合的Basic Deformable Aggregation 計算邏輯實現如下圖所示。
在這里插入圖片描述
可以發現其會生成多個中間變量,需要對顯存進行多次訪問和存儲,降低了推理速度,且中間變量 尺寸較大,從而導致顯存占用量顯著增加,并且反向傳播過程中的顯存消耗會進一步提升。
Efficient Deformable Aggregation(EDA)的關鍵在于將“先采樣所有特征再融合”的方式變成了“并行地邊采樣邊融合”,其允許在關鍵點維度和特征維度上實現完全的并行化,每個線程的計算復雜度僅與相機數量和特征尺度數量相關,在某些場景中,3D空間中的一個點最多被投影到兩個視圖,使得計算復雜度可以進一步降低 。EDA可以作為一種基礎性的算子操作,可以適用于需要多圖像和多尺度融合的各種應用。
在這里插入圖片描述
3、Camera Parameter Encoding
camera embedding(Liner層)
作者加入了內外參的編碼,將相機投影矩陣通過全連接網絡映射到高維特征空間得到camera embed。在計算deformable aggregation中的attention weights
時,我們不僅考慮instance feature和anchor embed,還加上了camera embedding。
4、Dense Depth Supervision
在實驗中,發現基于稀疏的方法在早期訓練階段缺乏足夠的收斂能力和速度。為了緩解這一問題,還引入了以點云為監督的多尺度密集深度估計方法作為輔助訓練任務。而在推理過程中,這個分支網絡將不會被激活,不影響推理效率。

Experiment

作者首先基于Resnet50 + 256x704 分辨率的配置展開了消融實驗。如下表所示:
對比Exp1 和Exp5可以看出,采用recurrent instance的形式來實現長時序融合,相比單幀提升非常大;
對比Exp4 和Exp5可以看出,深度監督模塊,有效降低了Sparse4D-V2的收斂難度,如果去掉該模塊,模型訓練過程會出現梯度崩潰的現象,從而使得mAP降低了8.5%。(在不具備深度監督條件的情況下,也可以考慮使用2D 的檢測head 作為輔助loss,如FCOS Head,YoloX等)
對比Exp2 和Exp3可以看出,單幀層 + 時序層的組合方式比起只使用時序層的效果要好很多;
對比Exp3 和Exp5可以看出,相機參數編碼也帶來了可觀的提升,mAP和NDSf分別提升了2.0%和1.5%;
在這里插入圖片描述
在nuScenes validation數據集上進行了對比,可以無論是在低分辨率+ResNet50還是高分辨率+ResNet101的配置下,Sparse4D v2都取得了SOTA的指標,超過了SOLOFusion、VideoBEV和StreamPETR等算法。
從推理速度來看,在256X704的圖像分辨率下,Sparse4Dv2超過了LSS-Based算法BEVPoolv2,但是低于StreamPETR。但是當圖像分辨率提升至512X1408,Sparse4Dv2的推理速度會反超StreamPETR。這主要是因為在低分辨率下直接做global attention的代價較低,但隨著特征圖尺寸的上升其效率顯著下降。而Sparse4D head理論計算量則和特征圖尺寸無關,這也展示了純稀疏范式算法在效率上的優勢。實際測定中,當圖像分辨率從256x704 提升到512x1408時,Sparse4Dv2 的decoder 部分耗時僅增加15%(從高分辨率特征上進行grid sample,會比從低分辨率特征上進行grid sample 略慢一點)。
在這里插入圖片描述
以上是作者的全部內容,好,好,好!

【完結】

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

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

相關文章

構建免費的音視頻轉文字工具:支持多語言的語音識別項目

在當今數字時代,音視頻內容越來越多,但如何快速將其轉換為文字一直是一個挑戰。本項目提供了一個免費的解決方案,支持將視頻和音頻文件轉換為文字,并且支持多語言識別。 一個支持中英文的音視頻轉文字工具,集成了 Vos…

【開題答辯全過程】以 基于SpringBootVue的智能敬老院管理系統為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人,語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…

Linux 830 shell:expect,ss -ant ,while IFS=read -r line,

[rootsamba caozx26]# scp /home/caozx26/pub root192.168.235.3:~/ root192.168.235.3s password: /home/caozx26/pub: not a regular file [rootsamba caozx26]# ls app km nntp.sh ntp.sh until1.sh 公共 圖片 音樂 find.sh l2 ntp1.sh pub u…

???????GPT-5發布引爆爭議,奧特曼連夜回應!付費充值的Plus用戶成最大贏家?

摘要: GPT-5發布后,社區口碑兩極分化,從“強無敵”到“還我4o”的呼聲并存。面對技術故障和用戶質疑,OpenAI CEO薩姆奧爾特曼及團隊火速回應,公布了一系列補救措施和未來計劃。本文將帶你速覽這場風波始末,…

Python 操作 Redis 的客戶端 - Redis Stream

Python 操作 Redis 的客戶端 - Redis Stream1. Redis Stream2. Redis Commands2.1. CoreCommands.xadd() (生產端)2.2. CoreCommands.xlen() (生產端)2.3. CoreCommands.xdel() (生產端)2.4. CoreCommands.xrange() (生產端)2.5. RedisClusterCommands.delete()3. Redis Stream…

【Qt開發】按鈕類控件(一)-> QPushButton

目錄 1 -> 什么是 PushButton? 2 -> 相關屬性 3 -> 代碼示例 3.1 -> 帶有圖標的按鈕 3.2 -> 帶有快捷鍵的按鈕 4 -> 總結 1 -> 什么是 PushButton? 在 Qt 框架中,QPushButton 是最基礎且最常用的按鈕控件之一&am…

Citrix 零日漏洞自五月起遭積極利用

安全研究員 Kevin Beaumont 披露了有關 CVE-2025-6543 的驚人細節,這是一個嚴重的 Citrix NetScaler 漏洞,在該公司發布補丁之前的幾個月里,該漏洞被積極利用作為零日攻擊。 Citrix 最初將其輕描淡寫為簡單的“拒絕服務”漏洞,但…

【系列08】端側AI:構建與部署高效的本地化AI模型 第7章:架構設計與高效算子

第7章:架構設計與高效算子 要將AI模型成功部署到端側,除了對現有模型進行壓縮和優化,更根本的方法是在設計之初就考慮其在資源受限環境下的運行效率。本章將深入探討如何設計高效的網絡架構,以及如何理解并優化常用的核心算子。高…

42-Ansible-Inventory

文章目錄Ansible基本概述手動運維時代(原始社會)自動化運維時代自動化運維工具的優勢Ansible的功能及優點Ansible的架構Ansible的執行流程安裝AnsibleAnsible配置文件生效順序Ansible inventory主機清單Ansible基于免秘鑰方式管理客戶端小結Ansible-Adho…

Go語言runtime/trace工具全面解析

基本概念與功能 Go語言的runtime/trace是Go標準庫中內置的性能分析工具,主要用于追蹤和可視化Go程序的運行時行為。它能夠記錄程序執行期間的各種事件,包括goroutine調度、系統調用、垃圾回收(GC)、網絡I/O、鎖等待等關鍵信息。 trace工具的核心功能包括: goroutine生命周期…

Docker(自寫)

Docker程序是跑在操作系統上的,而操作系統上又裝了各種不同版本的依賴庫和配置程序依賴環境,環境不同,程序就可能跑不起來,如果我們能將環境和程序一起打包docker就是可以將程序和環境一起打包并運行的工具軟件基礎鏡像DockerFile…

深度拆解 OpenHarmony 位置服務子系統:從 GNSS 到分布式協同定位的全鏈路實戰

1. 系統概述 OpenHarmony 的“定位子系統”就是硬件服務子系統集里的 “位置服務子系統”(Location SubSystem)。它向下對接 GNSS/GPS、基站、Wi-Fi 等定位模組,向上以 標準位置 API 形式為應用提供 實時位置、軌跡、地理圍欄 等能力,并可與分布式軟總線聯動,實現 跨設備…

React Native基本用法

1,index調用registerComponent,把appName注入到React Native的根節點。 2,package.json是全局大管家,package-lock.json鎖定版本,不會手動編輯,通過install安裝 3, bebal.config.json bebal.config.json是翻…

LoraConfig target modules加入embed_tokens(64)

LoraConfig target modules加入embed_tokens 更好且成本更低的方法 嵌入層(embedding layer)的 lora_embedding_A 和 lora_embedding_B 頭部(head)是否需加入目標模塊列表 用戶警告 解除權重綁定 解綁以后是隨機權重,怎么辦 更好且成本更低的方法 “有沒有一種更好且成本…

筆記共享平臺|基于Java+vue的讀書筆記共享平臺系統(源碼+數據庫+文檔)

筆記共享平臺|讀書筆記共享平臺系統 目錄 基于Javavue的讀書筆記共享平臺系統 一、前言 二、系統設計 三、系統功能設計 四、數據庫設計 五、核心代碼 六、論文參考 七、最新計算機畢設選題推薦 八、源碼獲取 博主介紹:??大廠碼農|畢設布道師&#xff…

【VSCode】VSCode為Java C/S項目添加圖形用戶界面

為Java C/S項目添加圖形用戶界面 現在我們來為它添加圖形用戶界面(GUI)。我將使用Java Swing庫創建一個簡單的GUI,因為它內置于Java標準庫中,無需額外依賴。 客戶端GUI實現 首先,我們將修改客戶端代碼,添加一個Swing GUI界面&…

【云原生】Docker 搭建Kafka服務兩種方式實戰操作詳解

目錄 一、前言 二、Docker 搭建kafka介紹 2.1 Docker 命令部署 2.2 使用Docker Compose 部署 2.3 使用 Docker Swarm 2.4 使用 Kubernetes 2.5 部署建議 三、Docker 搭建kafka操作方式一 3.1 前置準備 3.2 完整操作過程 3.2.1 創建docker網絡 3.2.2 啟動zookeeper容…

DBeaver中禁用PostgreSQL SSL的配置指南

在DBeaver中為PostgreSQL連接禁用SSL是一個常見的配置,特別是當你的數據庫服務器未啟用SSL或遇到連接問題時。我來為你詳細講解操作步驟和注意事項。 🛠? DBeaver中禁用PostgreSQL SSL的配置指南 詳細步驟 打開驅動設置:在DBeaver中創建新的…

數組去重【JavaScript】

數組去重,并且key和val相同的對象視為相同的,需要去重。主函數:/*** 數組去重* 兩個屬性相同的對象也認為是相同的* param {Array} arr* return {Array} */ function uniqueArray(arr) {const result []// outer: 標簽,標記外層循…

基于單片機設計的智能停車系統_271

文章目錄 一、前言 1.1 項目介紹 【1】項目開發背景 【2】設計實現的功能 【3】項目硬件模塊組成 【4】設計意義 【5】國內外研究現狀 【6】摘要 1.2 設計思路 1.3 系統功能總結 1.4 開發工具的選擇 【1】設備端開發 【2】上位機開發 1.5 參考文獻 1.6 系統框架圖 1.7 系統原理…