![]()
長視頻 3D 重建最怕的,其實(shí)不是 "看不清"。
前面幾十幀拍得再好,序列一拉長,軌跡就開始慢慢歪。模型在短片段上表現(xiàn)還行,但讓它一口氣吃掉幾百上千幀,誤差會(huì)一段接一段往后累。到了公里級(jí)大場(chǎng)景,這個(gè)問題被放得非常大。
浙江大學(xué)、地平線機(jī)器人和之江實(shí)驗(yàn)室最近的新工作Scal3R,要解決的就是這件事。
以往做長序列重建,大家主要在 "怎么切塊、怎么拼回去" 上做文章。
Scal3R 則更進(jìn)一步關(guān)注問題本質(zhì):推理時(shí)要處理超長序列,訓(xùn)練時(shí)也應(yīng)該讓模型見過超長序列。作者借助 test-time training 技術(shù),設(shè)計(jì)了一個(gè)全局上下文模塊和同步機(jī)制,將長序列訓(xùn)練、推理以及跨 chunk 的信息更新放進(jìn)同一個(gè)流程里,大幅提升了長序列重建的穩(wěn)定性和精度。
Scal3R 能夠處理超萬幀幾千米的超大規(guī)模場(chǎng)景三維重建,輸出精確的相機(jī)位姿和點(diǎn)云,下面是真實(shí)拍攝浙大紫金港校區(qū)的重建效果:
![]()
視頻鏈接:https://mp.weixin.qq.com/s/Yi8AMQ3BxcTCLUDlzvLlcg
和 Depth Anything 3(Streaming 模式)的可視化對(duì)比:
![]()
視頻鏈接:https://mp.weixin.qq.com/s/Yi8AMQ3BxcTCLUDlzvLlcg
論文 Scal3R: Scalable Test-Time Training for Large-Scale 3D Reconstruction 已上線 arXiv,代碼和模型權(quán)重分別發(fā)布在 GitHub 和 Hugging Face 平臺(tái):
![]()
- 論文鏈接:https://arxiv.org/abs/2604.08542
- 論文主頁:https://zju3dv.github.io/scal3r/
- 代碼倉庫:https://github.com/zju3dv/Scal3R
- 模型地址:https://huggingface.co/xbillowy/Scal3R
超大規(guī)模場(chǎng)景重建問題在哪
這兩年 VGGT 這類前饋式 3D foundation model 已經(jīng)能直接從 RGB 估計(jì)相機(jī)參數(shù)、深度和點(diǎn)云,精度相當(dāng)不錯(cuò)。
但場(chǎng)景一變大、序列一拉長,麻煩就來了。
一方面,Transformer 的長序列建模本身就貴,計(jì)算和顯存都會(huì)飛漲。
另一方面,很多方法訓(xùn)練和測(cè)試時(shí)面對(duì)的序列形態(tài)根本對(duì)不上。訓(xùn)練通常喂短序列或局部窗口,測(cè)試卻要求模型吞幾百幀甚至上千幀,這種錯(cuò)位會(huì)把長程漂移放大。
目前應(yīng)對(duì)長序列大致有兩條路。
一條是壓縮 token,把更長序列硬塞進(jìn)模型。確實(shí)能省一些計(jì)算,但細(xì)節(jié)和長程依賴也容易跟著被壓掉。
另一條是 chunk-based 路線:先切成多個(gè)重疊片段各自重建,再做跨塊對(duì)齊。這條路比較實(shí)用,擴(kuò)展性也好,只是前提是每一塊的局部幾何預(yù)測(cè)要夠準(zhǔn),否則塊間誤差會(huì)繼續(xù)被放大。
所以問題的重點(diǎn)并不是 "怎么處理長序列",而是怎么讓模型訓(xùn)練時(shí)就學(xué)會(huì)處理長序列,再用同一套機(jī)制在測(cè)試時(shí)穩(wěn)住局部幾何和全局一致性。
Scal3R 是怎么做的
Scal3R 是在 VGGT 的視覺幾何能力上往前走的。局部幾何依然重要,Scal3R 沒打算繞開它,只是希望這份能力在長序列訓(xùn)練和長序列推理里以一致方式被使用。
作者的想法很直接:要讓模型測(cè)試時(shí)穩(wěn)住長視頻,就不能只拿短片段訓(xùn)練然后指望它自然泛化到長序列。所以 Scal3R 借助 test-time training 相關(guān)機(jī)制,把長序列訓(xùn)練、長序列推理以及跨 chunk 的信息更新放進(jìn)同一個(gè)流程里
![]()
Scal3R 的整體框架。輸入長序列首先被切成多個(gè)重疊 chunk 并行處理,訓(xùn)練和推理都圍繞長序列展開,并通過測(cè)試時(shí)更新與跨 chunk 同步提升大規(guī)模場(chǎng)景重建的一致性。
圍繞這個(gè)思路,論文給出了兩個(gè)核心模塊。
一個(gè)是全局上下文記憶模塊(Global Context Memory,GCM)。
它由若干自適應(yīng)存儲(chǔ)單元(Adaptive Memory Units)組成,可以當(dāng)成一組輕量的、可更新的上下文模塊。每處理完一個(gè) chunk,模型會(huì)通過自監(jiān)督目標(biāo)更新這些單元。GCM 在這里起兩個(gè)作用:一是跨 chunk 累積并保留上下文信息;二是讓訓(xùn)練和測(cè)試階段用同一套逐 chunk 更新方式,模型從訓(xùn)練第一步起就在適應(yīng)長序列。
另一個(gè)是全局上下文同步機(jī)制(Global Context Synchronization,GCS)。
GCM 管逐 chunk 更新和上下文累積,GCS 負(fù)責(zé)把這些更新在不同 chunk 之間同步起來,使用 PyTorch DDP 的 all-reduce 機(jī)制,在不同的 chunk 之間同步自適應(yīng)存儲(chǔ)單元的自監(jiān)督梯度。
Scal3R 處理長序列時(shí)會(huì)把它切成多個(gè)重疊 chunk,分配到不同 GPU 上并行跑。GCS 讓這些 chunk 的更新彼此同步,不管訓(xùn)練還是推理,整個(gè)長序列機(jī)制都是一致的,不會(huì)出現(xiàn)訓(xùn)練時(shí)學(xué)局部、測(cè)試時(shí)臨時(shí)拼一下的情況。
關(guān)鍵的點(diǎn)是,作者并沒有把 test-time training 當(dāng)成測(cè)試階段的臨時(shí)補(bǔ)丁,而是把它變成支撐長序列訓(xùn)練和長序列推理對(duì)齊的一種方式;GCM/GCS 則在這種長序列機(jī)制里做更新、保留和同步。
為什么 Scal3R 的做法可以穩(wěn)住長序列
長序列重建里最棘手的情形,經(jīng)常不是 "看不見",而是局部都能看懂、時(shí)間跨度一長就不一定穩(wěn)得住。
大尺度室外場(chǎng)景里的重復(fù)紋理、長距離視角變化、稀疏采樣、長走廊、回環(huán)閉合 —— 每一項(xiàng)都在考驗(yàn)局部幾何預(yù)測(cè)的魯棒性。局部塊必須先算得準(zhǔn),跨塊同步和長程約束才有意義;否則局部誤差會(huì)順著整條序列一路被放大。
Scal3R 的價(jià)值就在這里。
它沒有把長視頻簡(jiǎn)單切開再拼回去,而是讓模型在訓(xùn)練階段就反復(fù)經(jīng)歷 "長序列 + 逐 chunk 更新 + 跨 chunk 同步" 的完整過程。等到測(cè)試時(shí),模型遇到的行為模式和訓(xùn)練時(shí)是一樣的。
這時(shí) memory 的角色就清楚了:GCM 不替代局部幾何預(yù)測(cè),只是在逐 chunk 訓(xùn)練和推理里提供一份可更新的上下文狀態(tài),把前后 chunk 的信息接起來 —— 前提依然是局部幾何得可靠。
所以 Scal3R 重要的地方不在削弱局部幾何,而在把局部幾何、可更新上下文、長序列訓(xùn)練、測(cè)試時(shí)同步這四件事放到同一個(gè)框架里。
一,長序列被拆成 chunk 來算。這把原本隨序列長度平方增長的計(jì)算壓力攤平了。按論文里的視角,全序列注意力的復(fù)雜度會(huì)隨長度快速上升,chunk-wise 處理則把問題改寫成更可控的局部計(jì)算,再通過融合擴(kuò)展到整段序列。
二,不是簡(jiǎn)單分塊,而是逐 chunk 更新、再做同步。很多分塊方法塊和塊之間是割裂的,算完就算完了。Scal3R 會(huì)在每個(gè) chunk 上算可更新模塊的變化,再由 GCS 把這些更新在 chunk 之間同步起來。網(wǎng)絡(luò)雖然按塊處理,但訓(xùn)練和測(cè)試時(shí)都在學(xué)習(xí)怎么把局部結(jié)果放回長序列里。
三,訓(xùn)練時(shí)就直接面向長序列。論文里講得比較清楚:訓(xùn)練階段會(huì)直接采樣連續(xù)長序列,再用不同 GPU 分組去覆蓋不同的有效序列長度。TTT 在這里更像是一種手段 —— 讓長序列訓(xùn)練可行,也讓測(cè)試行為和訓(xùn)練行為保持一致。
這三條合起來就能解釋為什么 Scal3R 不止是 "能跑長序列",而是在長序列上把局部幾何質(zhì)量、效率和整體一致性都穩(wěn)住了。
在基準(zhǔn)測(cè)試上的效果
論文從相機(jī)位姿和三維重建兩部分做了比較完整的評(píng)估,覆蓋室內(nèi)外和不同尺度的場(chǎng)景,結(jié)果顯示提升很扎實(shí)。
![]()
論文主表中的位姿與資源對(duì)比,覆蓋 VKITTI2、KITTI Odometry 和 Oxford Spires。
相機(jī)位姿估計(jì):表里 baseline 大致可以分成三類。SLAM / SfM 方法在條件合適時(shí)很準(zhǔn),比如 COLMAP 在 Oxford Spires 上很強(qiáng),DPVO++ 在 VKITTI2 上誤差也低;但它們要么需要內(nèi)參,要么速度慢,在資源統(tǒng)計(jì)中,COLMAP 平均一次推理要 6614.73 秒。前饋和 streaming 方法更快,但長序列漂移壓不住,F(xiàn)astVGGT 還會(huì)遇到顯存問題。最接近的對(duì)照是 VGGT-Long:它比不少 streaming baseline 穩(wěn),但 KITTI 上 ATE / RTE / RRE 仍是 25.94 / 9.67 / 1.71,而 Scal3R 是 14.55 / 4.61 / 0.97;Oxford Spires 上也從 15.46 m 降到 4.45 m。
![]()
大規(guī)模多場(chǎng)景軌跡對(duì)比。藍(lán)線是預(yù)測(cè)軌跡,紅色虛線是真值軌跡。
軌跡圖更直觀:KITTI 00 上 Scal3R 的 ATE 是 4.298,VGGT-Long 是 8.637;Oxford Keble 04 和 Oxford Quarter 01 上 ATE 分別是 2.448 和 1.624。藍(lán)線基本能貼住真值軌跡,其他方法更容易漂成局部團(tuán)塊。
再看三維重建精度
![]()
三維重建點(diǎn)云評(píng)測(cè),指標(biāo)為 Chamfer Distance(越低越好)和 F1(越高越好)
這張表更直接。Scal3R 在 ETH3D、Oxford Spires、VKITTI2 三個(gè)數(shù)據(jù)集上六個(gè)指標(biāo)都是最優(yōu):ETH3D 是 0.11 / 0.91,Oxford Spires 是 0.96 / 0.96,VKITTI2 是 0.40 / 0.91。對(duì)比最強(qiáng)的 VGGT-Long,ETH3D 從 0.24 / 0.84 提到 0.11 / 0.91;Oxford Spires 從 3.41 / 0.80 提到 0.96 / 0.96;VKITTI2 則從 1.78 / 0.70 提到 0.40 / 0.91。這里的差距不只是局部幾何更準(zhǔn),也和前面的位姿穩(wěn)定性有關(guān):軌跡一旦漂了,后面拼出來的點(diǎn)云通常也會(huì)散。
![]()
重建對(duì)比圖,展示 Oxford Keble 04 和 ETH3D Terrains 等場(chǎng)景。
定性圖也對(duì)得上表格。像 Oxford Keble 04 這種大尺度校園場(chǎng)景,Scal3R 的建筑輪廓和庭院結(jié)構(gòu)更完整;ETH3D Terrains 紅框里的墻面和門框邊界也更規(guī)整。FastVGGT、VGGT-Long、TTT3R 在不同場(chǎng)景里會(huì)出現(xiàn)局部破碎、漂散或者結(jié)構(gòu)發(fā)糊,原因往往不是某一幀深度錯(cuò)了,而是長序列位姿和局部幾何沒有一起穩(wěn)住。
精度之外再看下資源和擴(kuò)展性。Scal3R 可以在單張 RTX 4090 上完成推理,它不是吞吐最快的方案,但在精度、長序列穩(wěn)定性和可擴(kuò)展性之間做了一個(gè)比較實(shí)用的取舍。補(bǔ)充材料里還分析了隨序列變長的趨勢(shì):從 150 幀漲到 990 幀,整體運(yùn)行時(shí)間基本呈線性增長,相對(duì)位姿誤差則穩(wěn)在 0.07 到 0.08 m,說明它不是只適配某個(gè)固定長度。
結(jié)語
Scal3R 最值得留意的地方,不只是又做出來一個(gè)更強(qiáng)的長序列 3D 重建方法,而是它把問題的重點(diǎn)重新擺過一遍。
它沒有把 "大規(guī)模 3D 重建" 簡(jiǎn)單理解成更大的 backbone、更多 token 或者更激進(jìn)的壓縮,而是問了一個(gè)更靠前的問題:模型要想在測(cè)試時(shí)吞下長序列,訓(xùn)練時(shí)是不是也得先真正學(xué)過長序列?
順著這個(gè)視角往下看,Scal3R 提出的其實(shí)不只是一個(gè)記憶模塊,更像是一種把局部幾何、可更新上下文、長序列訓(xùn)練和測(cè)試時(shí)同步串起來的思路。對(duì) 3D 重建如此,搬到更廣泛的長視頻場(chǎng)景理解任務(wù)上,可能也差不多。
如果你正在關(guān)心這幾件事 —— 長視頻怎么做高質(zhì)量 3D 重建;foundation model 怎么擴(kuò)展到公里級(jí)場(chǎng)景;test-time training 除了語言和分類任務(wù),還能怎么真正落到 3D 視覺里 —— Scal3R 值得花點(diǎn)時(shí)間細(xì)讀。
![]()
視頻鏈接:https://mp.weixin.qq.com/s/Yi8AMQ3BxcTCLUDlzvLlcg
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
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.