当前位置: 首页 » 资讯 » 科技头条 » 正文

慕尼黑工业大学最新研究:用"迭代导航"思路重建3D世界

IP属地 中国·北京 科技行者 时间:2026-06-09 22:24:00


这项由慕尼黑工业大学(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以显著低于主流多视图方法的显存和时间代价,实现了接近的重建精度,并同样呈现出随迭代轮数增加精度稳步提升的行为。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其内容真实性、完整性不作任何保证或承诺。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。

全站最新