![]()
這項由慕尼黑工業大學(TU Munich)與慕尼黑機器學習中心(MCML)、蘇黎世聯邦理工學院(ETH Zurich)聯合推進的研究,以預印本形式于2026年6月發布,論文編號為arXiv:2606.03287。研究提出了一種名為BA-T(Bundle Adjustment Transformer,束調整變換器)的新方法,在三維場景重建這一計算機視覺核心任務上,以極為精簡的結構實現了與體積龐大的主流模型相當乃至更優的性能。
在我們日常生活中,機器人、增強現實眼鏡、自動駕駛汽車都需要"看懂"周圍的三維世界。要讓計算機從幾張普通照片中還原出完整的三維場景并精確估算相機的位置和朝向,是一件極具挑戰性的事。現有的主流方法雖然已經很強大,但它們的計算架構像是一棟越蓋越高的樓,樓層越多、重量越重,運行起來就越費資源,而且一旦某層算錯了,后面也沒有辦法回頭糾正。BA-T的出現,正是為了解決這個"只能向前、無法回頭"的根本缺陷。
一、從一張地圖導航說起:為什么三維重建那么難
要理解BA-T解決的問題,可以先把三維重建想象成一項導航任務。你站在一個陌生城市里,手里只有幾張從不同街角拍的照片,你需要根據這些照片推斷出:每張照片是在哪個位置、朝哪個方向拍的?照片里的建筑和道路在真實世界中的精確三維坐標是什么?這兩件事必須同時做對,因為你對位置的判斷會影響你對建筑坐標的估算,反過來建筑坐標也會幫助你修正位置判斷。
這正是計算機視覺里"三維重建"的核心挑戰。學術界把這個任務分成兩個子問題:相機位姿估計(你在哪、朝哪看)和幾何重建(場景中每個點在三維空間里的坐標)。這兩個問題相互依存,互相影響,必須聯合求解。
經典的解決方案叫做"束調整"(Bundle Adjustment,簡稱BA)。這個名字來自攝影測量學,意思是通過反復調整,讓所有相機位置和所有三維點的估算結果在數學上達到最優的自洽狀態。你可以把它理解為一個非常耐心的校對員:他拿著一份城市地圖草稿,不斷檢查"如果相機在這里、朝這個方向拍,照片里應該看到什么?"然后把預期結果與實際照片對比,找出誤差,再一輪一輪地修正地圖和相機位置,直到兩者高度吻合為止。這個反復校對的過程非常精準,但也非常耗費計算資源,因為每一輪修正都需要求解一個龐大的數學方程組。
近年來,深度學習的崛起帶來了一類完全不同的方法——前向傳播模型(feed-forward model)。這類方法放棄了繁瑣的迭代校對,改用神經網絡直接"一眼看穿":把兩張照片輸入網絡,網絡直接輸出相機位置和三維坐標。這就像換了一位經驗極為豐富的老向導,他看一眼照片就能直覺性地告訴你城市的大致布局,不需要一遍遍核對。以DUSt3R、MASt3R、VGGT等為代表的前向傳播模型在很多場景下表現非常出色。
然而,這類方法有個根本的弱點:它們的神經網絡被設計成一路向前、不回頭的結構。網絡的核心是大量堆疊的"跨視圖注意力模塊"——可以理解為網絡里一層又一層的"會議室",每層都讓來自不同照片的信息開會討論、互相參考。樓層越多,網絡越"聰明",但同時也越笨重。更關鍵的是,一旦某一層開會得出了錯誤結論,后面的層只能在這個錯誤基礎上繼續,沒有任何機制回頭糾正。網絡跑完了就完了,誤差無從修正。
BA-T的研究團隊發現,這兩種方法各有所長:傳統束調整的反復校對機制非常寶貴,而深度學習在隱式特征表達上的能力無可替代。那么,有沒有可能把這兩者的優點融合起來,在深度學習的框架內實現類似束調整的反復校對機制?這正是BA-T要做的事。
二、把"反復校對"這件事變成神經網絡的一層
傳統束調整的數學本質其實可以用一段非常清晰的"信息流"來描述。每一輪迭代,算法都做這樣幾件事:先計算出當前預測的三維點投影到另一張照片上應該落在哪個像素(這叫"重投影"),再與實際看到的像素位置作比較,得出"殘差"(誤差);然后用殘差來更新相機位置估計;最后用更新后的相機位置再來優化三維點的坐標。這三步——計算殘差、更新相機、更新幾何——循環往復,直到收斂。
數學上,這對應于求解一個叫做"正規方程"的方程組,其中最關鍵的步驟是"Schur補"分解:先把相機更新量單獨解出來,再用相機更新量來推導幾何更新量。這個設計保證了相機和幾何的更新是有序的、相互約束的,而不是各自為政亂猜一氣。
BA-T的核心洞察是:這個"信息流"模式——殘差→相機更新→幾何更新——本質上就是一種特定的信息傳播結構,完全可以用神經網絡中的注意力機制來模擬,而且不需要真的去算那些龐大的數學矩陣。
具體來說,BA-T把相機位姿和每張圖像的局部幾何結構都表示成"令牌"(token)——這是深度學習中的基本單位,可以理解為把復雜信息壓縮進一個高維向量中。相機令牌編碼了兩張照片之間的相對位置和朝向關系;幾何令牌則由圖像編碼器(一個預訓練的ViT視覺變換器)從照片中提取,每個令牌代表圖像中一個小區域的局部幾何特征。
BA-T的精妙之處在于,它用一個極其輕量的可復用層來實現上述三步信息流,而且這一層可以反復調用任意次數,每次調用都在上一次的基礎上進一步精煉結果。這就像用同一張校對表格反復核查草稿,每次都把發現的錯誤標注出來,然后修改,再核查,直到草稿完美為止。訓練時只需要學習這一張"校對表格",推理時可以根據需要決定校對幾輪。
三、BA-T內部的三大運作機制
BA-T的一次迭代由三個功能模塊協作完成,它們共同模擬了傳統束調整中的信息傳播鏈路。
第一個模塊負責建立跨視圖對應關系并計算"隱式殘差"。由于兩張照片是從不同位置拍的,同一個場景點在兩張照片中的幾何令牌處于各自的局部坐標系中,不能直接比較。BA-T的做法是:先用相機令牌對視圖A的幾何令牌做一次"條件變換",把它們從A的坐標系"搬運"到B的坐標系中去。這個變換借鑒了擴散模型(DiT)中的條件歸一化技術,把相機令牌的信息以縮放和平移的方式注入幾何令牌,使其在概念上對應于B視圖中相同場景區域的幾何。
完成坐標系對齊之后,第二步是找到對應關系。被變換后的A視圖令牌作為"查詢",通過注意力機制在B視圖的所有幾何令牌中尋找最相關的區域。這個過程非常靈活:一個查詢令牌可以與多個B視圖令牌產生軟對應,這使得BA-T能處理遮擋、紋理模糊等經典束調整難以應對的情況。找到對應關系之后,用線性投影提取兩側令牌的"屬性",再用一個兩層MLP計算它們之間的差值,得到"隱式殘差令牌"——這個殘差令牌在高維向量空間中編碼了兩個視圖在當前相機估計下的幾何不一致程度,是整個迭代過程的核心驅動力。
論文中有一張可視化圖非常能說明問題:隨著迭代輪數增加,這些隱式殘差的量級(L2范數)不斷下降,說明網絡確實在逐步消除幾何不一致,而不是在原地打轉。這和傳統束調整中殘差隨迭代減小的行為完全吻合。
第二個模塊負責更新相機令牌。相機令牌作為"查詢",通過一個一對多的跨注意力機制,從所有隱式殘差令牌中聚合信息,產生一個相機更新量。這個設計對應于傳統束調整中用Schur補解出相機更新量的那一步:相機令牌"掃描"所有殘差,匯總出一個全局性的相機修正方向,然后加到當前相機令牌上,完成相機位姿的一次精煉。
第三個模塊負責更新幾何令牌。在獲得更新后的相機令牌之后,每個視圖的幾何令牌通過跨視圖注意力機制來精煉自身:以自身的當前幾何令牌為查詢,以另一個視圖的幾何令牌(經過更新后的相機令牌變換到同一坐標系)為上下文,計算出幾何更新量。兩個視圖對稱地互相參考、互相修正,最終各自得到更精準的幾何令牌。這種對稱設計保證了兩個視圖的幾何估計是互相自洽的,不會出現A視圖看到的桌子和B視圖看到的桌子"對不上"的情況。
此外,論文還有一個細節值得關注:由于BA-T只維護一個方向的相機令牌(從A到B),但幾何更新需要雙向變換,研究團隊訓練了一個輕量級MLP來從正向相機令牌中推算反向變換,避免了冗余存儲兩個相機令牌。
四、從訓練到推理:一個可以"多練幾遍"的輕量網絡
在訓練階段,BA-T設置了五輪迭代(K=5)。每一輪的輸出都會計算損失函數,但后面輪次的權重更高,鼓勵網絡把"越練越好"作為目標。具體來說,損失函數是一個加權求和,權重隨輪次增加而指數增長,這確保網絡不會只盯著最終輸出而忽視中間過程的質量。
損失函數本身由三部分組成:點圖損失(監督每個像素對應的三維坐標預測)、位姿損失(監督相機旋轉和平移的精度,并加入循環一致性約束)、以及幾何一致性損失(要求兩個視圖的三維重建在預測相機變換下能夠對齊)。三部分通過權重系數平衡,共同引導網絡向精準且自洽的方向優化。
編碼器部分初始化自預訓練的ViT模型,BA-T層和回歸頭從隨機初始值開始聯合訓練,訓練數據包括ScanNet、ScanNet++、ARKitScenes、CO3D、ASE和Replica六個數據集,在8塊NVIDIA H100 GPU上訓練約兩天,使用AdamW優化器,學習率1.5×10??,權重衰減0.01。
推理階段,BA-T默認運行四輪迭代(K=4)。由于每一輪使用的是同一個BA-T層(共享參數),增加迭代輪數不會增加模型參數量,只是多花一點計算時間。從效率表格來看,K=1時推理只需21毫秒,K=4時也只需約31毫秒,而同類方法如MASt3R需要93毫秒,DUSt3R需要66毫秒,VGGT需要129毫秒。在顯存占用上,BA-T只需1.32GB,而VGGT需要4.93GB,DA3需要6.52GB。
五、數字說話:BA-T在性能測試中的表現
研究團隊在兩個真實世界室內場景數據集上評測了BA-T:7Scenes(3600對圖像)和BundleFusion(1109對圖像),兩者都提供了精確的地面真值相機位姿和三維幾何。評測指標涵蓋位姿精度(AUC曲線下面積,閾值分別為5°、10°、20°)和幾何質量(Chamfer距離、準確率、完整率、深度閾值精度δ1.25)。
在位姿估計方面,BA-T在兩視圖訓練的方法中達到最佳表現:在7Scenes上,AUC@5°為0.16,AUC@10°為0.37,AUC@20°為0.59;在BundleFusion上,AUC@5°為0.16,AUC@10°為0.34,AUC@20°為0.54。這些數字不僅超越了同樣只用兩視圖數據訓練的DUSt3R和MASt3R,甚至在某些指標上與使用了多視圖數據訓練的VGGT和DA3相當——而后者的解碼器參數量分別是BA-T的16倍和20倍。
在幾何重建方面,BA-T同樣表現出色,δ1.25指標在7Scenes上達到0.98,與用多視圖數據訓練的頂尖模型持平。最有說服力的對比來自ViSTA+這個"同體量競爭對手":研究團隊專門訓練了一個與BA-T解碼器規模相同(38M參數)的ViSTA變體作為公平對比基準,結果BA-T在所有位姿和幾何指標上均明顯領先,證明了BA-T的結構設計本身帶來了實質性的性能提升,而不僅僅是參數量的問題。
六、迭代越多越好嗎?實驗結果給出答案
研究團隊專門設計了一組實驗來分析迭代精煉的效果,并與一個關鍵對照組對比:ViSTA+加上迭代訓練(即用同樣的迭代監督策略,但解碼器是普通的堆疊跨視圖注意力層,而非BA-T結構)。這個對比的意義在于:它能把"迭代訓練本身的貢獻"和"BA-T結構設計的貢獻"區分開來。
結果非常清晰。對于ViSTA+迭代版,從第一輪到第四輪,旋轉AUC@5°從0.442增長到0.491,平移AUC@0.05m從0.101增長到0.151,三維對應誤差從0.062m降至0.045m,下降幅度約27%。對于BA-T,從第一輪到第四輪,旋轉AUC@5°從0.650躍升至0.683,平移AUC@0.05m從0.322大幅增長到0.422,三維對應誤差從0.046m降至0.026m,下降幅度達44%。
兩點關鍵差異值得細讀:第一,BA-T在第一輪的起點就已經大幅領先于ViSTA+迭代版在第四輪的終點,說明BA-T的結構設計從一開始就帶來了更好的特征表達;第二,BA-T的改善幅度更大,說明其迭代機制更有效地利用了每一輪的信息傳播,而不是簡單地重復相似的計算。
從迭代收斂曲線來看,BA-T在3到4輪后性能基本趨于穩定,繼續迭代帶來的邊際收益快速下降。這意味著在實際應用中,4輪迭代是一個效率與精度的良好平衡點。
定性可視化結果同樣令人印象深刻。在展示的場景中,第一輪迭代后,三維重建已經能大致捕捉到場景的整體結構,但存在明顯的平面錯位和邊緣模糊;第四輪之后,這些問題被大幅修正,平面更平整,邊緣更清晰,兩個視圖的三維點云對齊程度顯著提升。相機位姿的可視化也顯示了類似的收斂過程:估計的相機位置(藍色和粉色錐形)逐步逼近地面真值(綠色錐形)。即使在視覺重疊區域很小的困難場景(兩個視圖之間只有一小塊共同可見區域),BA-T也能在迭代中逐步修正位姿誤差,展現出較強的魯棒性。
七、拆解BA-T:去掉哪個零件影響最大
為了驗證各個模塊的必要性,研究團隊做了消融實驗,逐一移除BA-T的三個關鍵組件,觀察性能變化。
去掉迭代監督(即不在每一輪都計算損失,只監督最終輸出)之后,旋轉AUC@5°從0.683降至0.667,平移AUC@0.05m從0.422降至0.404,三維對應誤差從0.026m升至0.036m。這說明迭代監督對于引導網絡逐步收斂至關重要:如果只盯著最終輸出,網絡無法學會"一步步改進"的行為模式,中間輪次的質量會變差,最終影響整體收斂速度和精度。
去掉對應匹配模塊(即不做軟對應,跳過從A視圖令牌到B視圖令牌的注意力聚合步驟)之后,位姿精度下降更為明顯,而幾何精度下降相對有限。這表明對應匹配主要服務于跨視圖位姿對齊,它幫助相機令牌準確感知兩視圖之間的幾何差異;對單視圖內部的幾何質量影響相對較小。
去掉相機條件幾何變換(即不把A視圖令牌變換到B的坐標系,直接在各自坐標系中做對比)之后,位姿和幾何指標都有明顯下降,降幅相比其他消融項更為突出。這一結果揭示了一個關鍵事實:如果不對齊坐標系就強行比較兩個視圖的幾何令牌,網絡面臨的問題會更難,所有后續的信息傳播都建立在混亂的基礎上,自然難以有效精煉。坐標系對齊是整個BA-T結構能夠正常工作的前提。
八、從兩張照片到多張照片:BA-T的自然擴展
BA-T的設計從一開始就考慮了多視圖擴展的可能性。由于所有跨視圖交互都在各視圖的局部坐標系中進行,不依賴特定的全局參考幀,因此將兩視圖情形推廣到多視圖只需改變"令牌之間如何交互",而無需修改網絡結構本身。
在多視圖設定下,輸入不再是一對圖像,而是一張"視圖圖"(view graph):圖中每個節點代表一個視圖(有其對應的幾何令牌),每條邊代表一對相鄰視圖之間的相機令牌。殘差計算和相機更新仍然按邊獨立進行;幾何更新則從"一個視圖參考另一個視圖"變為"一個視圖同時參考圖中所有相鄰視圖"——換句話說,每個視圖在更新自身幾何時,能夠匯聚來自所有鄰居視圖的幾何約束,信息流動更加豐富。
多視圖定性結果進一步展示了迭代精煉的威力:在一個四視圖場景中,第一輪迭代后軌跡絕對誤差(ATE,可理解為相機位置估計與真實位置之間的平均距離)為0.232m,第二輪降至0.149m,第三輪進一步降至0.029m——三輪內精度提升了近8倍。
九、與傳統束調整直接對比:誰更勝一籌
研究團隊專門設計了一個公平對比實驗:用BA-T第零輪輸出的相機位姿和幾何初始化作為起點,同時運行傳統束調整(以Droid-SLAM為代表,使用重投影誤差作為殘差,Gauss-Newton法作為優化器)和BA-T,在7Scenes數據集上比較最終結果。為了讓Droid-SLAM有最好的發揮條件,額外提供了地面真值相機內參(BA-T不需要內參)。
研究團隊對這一差異給出了清晰的解釋:傳統束調整依賴顯式的重投影誤差,這個目標函數高度非凸,在視覺重疊少、紋理匱乏的兩視圖場景中極易陷入局部最優;而BA-T在隱式高維特征空間中操作,能夠利用從海量數據中學到的先驗知識來彌補觀測信息的不足,因此在困難場景下更加魯棒。
說到底,BA-T這項研究做成了一件很有意思的事:它沒有拋棄經典算法的智慧,而是把傳統束調整那種"殘差→相機→幾何"的信息傳播模式,以一種輕巧的方式嵌入了深度學習的框架中。結果是一個只有38M參數的解碼器,能夠在幾十毫秒內完成四輪迭代精煉,性能卻與參數量是它16倍的模型相當甚至更好。這種"用結構換參數"的思路,在當前大模型橫行的時代顯得格外清醒。
對普通人來說,這項研究最直接的意義或許是:未來手機上的AR應用、機器人家電的環境感知、自動駕駛系統的實時建圖,都可能因為類似BA-T這樣高效的算法而變得更快、更準、更省電。更深層的啟示則在于:當我們面對一個需要反復校對才能做對的問題時,與其堆砌更多層的處理流程,不如思考"如何讓一個聰明的校對機制可以反復復用"。
有興趣深入了解這項工作細節的讀者,可以通過arXiv編號2606.03287查詢完整論文,代碼也將在GitHub(zhangganlin/BA-T)公開發布。
Q&A
Q1:BA-T和傳統束調整(Bundle Adjustment)有什么本質區別?
A:傳統束調整在顯式的三維坐標和像素坐標上做數值優化,每輪迭代需要構建并求解大型矩陣方程,計算量大且在紋理稀少的場景中容易失敗。BA-T則把相機和幾何信息壓縮成高維"令牌",在隱式的特征空間中通過注意力機制模擬束調整的信息傳播結構,既保留了迭代精煉的思路,又能利用從海量數據中學到的先驗知識彌補觀測不足,速度更快、魯棒性更強,且不需要已知相機內參。
Q2:BA-T的迭代輪數越多精度越高嗎,有沒有上限?
A:在實驗中,BA-T在前3到4輪迭代中精度提升最為顯著,之后趨于收斂,繼續迭代帶來的邊際收益快速降低。以7Scenes數據集為例,從第一輪到第四輪,三維對應誤差從0.046m降至0.026m,但第五輪及以后幾乎沒有進一步改善。因此在實際應用中,4輪迭代是效率與精度的良好平衡點,不需要無限制地增加輪數。
Q3:BA-T能處理多張照片的場景嗎,還是只適合兩張照片?
A:BA-T在設計上不局限于兩張照片。由于所有跨視圖交互都在各視圖的局部坐標系中進行,只需改變視圖之間的連接方式(通過視圖圖描述哪些視圖互相參考),不修改網絡結構就能直接擴展到多視圖場景。論文在BundleFusion數據集的四視圖實驗中驗證了這一點,BA-T以顯著低于主流多視圖方法的顯存和時間代價,實現了接近的重建精度,并同樣呈現出隨迭代輪數增加精度穩步提升的行為。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.