
1. 从VGGT到AMB3R这个赛道为什么卷到这个程度过去一年做三维重建的人几乎绕不开VGGT。它把多图重建这件事推进到了一个此前没人敢想的阶段随便丢进去几张图不需要任何per-scene优化撑着单卡15秒就能出相机参数和稠密点云。当时很多同行包括我在内都觉得这条路线已经走到头了——视觉Transformer把多视角几何揉进一个前向网络里精度、速度、易用性全都占了还能怎么卷结果CVPR26放出的AMB3R直接在标题上把VGGT当成了参照物精度超越VGGT单卡无需优化搞定千图在线/离线重建7任务13数据集SOTA。作为从业者看到这类“踩着脸刷榜”的标题我的第一反应其实是警惕。3D重建圈子里刷榜的模型太多了很多论文在几个benchmark上好看落到真实场景里一塌糊涂。但把AMB3R的几个关键词拆开看之后我发现它确实不是在玩数字游戏它在工程层面解决了一批VGGT没能解决的问题。这篇文章我想做的就是把AMB3R相对VGGT到底动了哪些部件、为什么能单卡吃下千图、评测含金量如何、以及如果你想复现要怎么跑通这几件事逐一说清楚。不管你是研究多视角几何的还是做航测、做SLAM、做NeRF数据管线的工程师这篇文章应该都能给你一些真正能落地的参考。1.1 先回顾VGGT做了什么事VGGTVisual Geometry Transformer的核心思路是把多视角三维重建这个经典几何问题重构成一个端到端的视觉任务。输入N张图经过一个共享的视觉Transformer主干直接输出每张图的相机参数、3D点三角化结果和置信度。它不做传统的特征匹配-几何验证-光束法平差BA这套流程而是用数据驱动的方式隐式学习了多视图之间的几何一致性。VGGT带来的范式转变是巨大的。它把重建从“需要专业知识和大量调参的COLMAP流程”变成了“喂图进模型张量出来”的API式操作。而且因为不需要在测试阶段做任何优化推理耗时非常短十几张图基本是秒级出结果这在以前的SfM系统里是不可想象的。我还记得第一次跑通VGGT的时候感触是这个方向可能会让一大批传统重建管线重写。但VGGT也有它的天花板而且这几个天花板在真实落地场景里非常致命。第一个是长序列输入问题。自注意力的复杂度是O(N²)这个N是图像token总数。VGGT为了获取全局一致性用了全图跨帧注意力图像数量一上来计算量和显存占用直接爆炸。实测中我跑几十张图还能扛住一旦超过两三百张要么显存爆掉要么推理时间慢到失去“无需优化”的意义。千图级别的航拍场景VGGT完全无能为力。第二个是相机参数精度问题。VGGT输出的相机参数对少量图像来说是够用的可以作为NeRF或3DGS的初始化参数。但在大规模场景、大基线的航拍数据上它的参数精度往往达不到测绘级需求。很多人只注意到VGGT的“快”忽略了它在绝对精度的维度上距离传统SfM还有差距。第三个问题是增量能力。VGGT是纯batch式模型所有图像要一次性丢进去。实际业务里数据往往是流式获取的比如无人机飞完一个架次、手机边走边拍你不可能等全部图像到位再做重建。这也是AMB3R标题里“在线重建”这个能力让我特别关注的原因。1.2 AMB3R拆掉了VGGT的哪块天花板AMB3R标题里至少拆掉了三块天花板精度天花板、输入规模天花板、使用门槛天花板。我逐个说。精度天花板方面标题直接写“精度超越VGGT”。这不是含糊的“具有竞争力的性能”而是明确的surpass表述。在7个任务13个数据集上拿到SOTA意味着它不是在某一个benchmark上偶然占优而是跨任务、跨数据集的一致胜出。这种精度的提升不是靠堆积模型参数实现的后面我会专门分析它的架构逻辑。输入规模方面“单卡无需优化搞定千图在线/离线重建”是一个信息量极大的表述。千图意味着输入规模至少是VGGT极限的5到10倍单卡意味着它的计算图和显存设计必须做了根本性的重组而不是简单靠着更大的显存硬扛无需优化意味着它依然保持了VGGT的“前向即可用”特性这在工程上太重要了——你不需要为每个新场景跑几十轮的梯度下降。在线/离线双模式则是工程范式的补全。“离线重建”是传统batch式流程所有图像就绪一次性完成重建。而“在线重建”对应的是流式数据图像不断到达系统需要实时扩展场景表示同时保持已有部分的一致性。这两个模式覆盖了三维重建的绝大部分真实应用场景——从无人机测绘到机器人SLAM再到手机端的AR交互。顺便说一下虽然当前还没有公开的技术细节文档从标题和已有信息推断AMB3R大概率采用了某种分组聚合或跨帧token压缩机制把千图的token规模压到了注意力计算可承受的量级。这一块我放在下一节展开聊。2. 单卡千图重建计算图与显存的最优解在哪先说一个结论千图重建在单卡上跑通核心难点根本不是“显存够不够装下1000张图”而是“1000张图产生的中间张量能不能装进显存”。因为Transformer的自注意力计算会把中间激活值放大到远超输入图像本身的规模这个问题不解决给你A100的80GB显存也一样白搭。2.1 千图输入时第一个崩溃的其实是注意力计算我们做个小学生都会算的算术题。假设输入图像resize到224×224每张图切成14×14个patch就是196个token。如果是1000张图像总token数就是19.6万。在全局注意力下注意力矩阵的大小是token数的平方也就是19.6万×19.6万大约383亿个元素。就算用FP16存储这个注意力矩阵的前向计算结果也要超过76GB——单卡根本装不下。所以AMB3R能在“单卡”上处理千图它的注意力计算方式一定不是无脑的全量自注意力。从已知的技术路线推断最可能的设计是“分组局部注意力加全局稀疏锚点”的组合图像先按视角邻近关系分组在组内做密集注意力保证局部几何的高精度匹配然后通过一组场景级的锚点token锚点数量远小于图像token总数在全局做信息交换。这样局部特征不会丢失细节全局一致性又能以较低代价维护整体计算量从O(N²)降到了接近O(N)的量级。同时内存高效的attention kernel类似FlashAttention的思路几乎是必然选项。FlashAttention通过分块计算和重计算的方式避免把完整的注意力矩阵写入显存而是随算随用。这个技巧配合分组稀疏注意力才能让千图场景真正在单卡内存活。说句实在话没有这些工程优化任何“单卡千图”的说法都是在耍流氓。2.2 “无需优化”背后的双管线设计在线与离线AMB3R的“在线/离线重建”双模式是它和VGGT这类纯batch模型最重要的工程差异。我理解它的设计是同一个骨干网络两套前向调度策略。离线模式处理的是完整输入集。所有图像一次性进入模型通过分组聚合完成全局对齐然后输出完整的点云和相机位姿。适合的场景是摄影测量、离线数据集重建、影视特效的三维场景重建。这类任务数据一次性到位对重建质量的完整性要求远高于实时性。在线模式则是增量式处理。每次进来一批新图像模型在场景表示的基础上进行局部更新同时把新图像融合进全局坐标系。这就需要模型维护一个“记忆”机制——场景已有的特征表示必须被妥善压缩和保存新来的图像只需要和这些压缩后的场景语义token做匹配和位姿估计而不用和所有历史图像逐对匹配。否则在线模式的累计计算量会随时间线性膨胀最后还是会退化成离线全量计算。“无需优化”的含义也需要细说。在传统增量SfM系统里每加入一批新图像通常要执行一次局部BA甚至全局BA来消除累积误差。AMB3R声称无需优化意味着它在在线模式下要么通过特殊的设计比如重叠窗口的冗余匹配天然抑制了误差累积要么模型自身在推理时隐式完成了位姿精化。不管哪一种对用户体验来说都是巨大的简化——以前跑一套增量重建要守着BA参数调整现在大概率是丢进去就跑。2.3 单卡能跑通的关键工程取舍聊完理论设计说点实际操作层面的判断。单卡跑千图显存容量依然是个硬约束。我的建议是按不同显存规模做不同的策略选择。12GB显存属于入门档。这个体量跑完整的千图离线重建大概率吃力建议把输入图像分辨率降到约480×320或者采用滑动窗口策略将千图拆分成若干两百张的子集分别处理再用全局点云注册合并。代价是合并处可能出现对齐误差但胜在单卡能跑。24GB显存是甜点位。这个体量可以在原生分辨率下处理千图场景前提是不要试图一次性把1000张图全部塞进模型——除非AMB3R的官方实现明确支持全量batch。最实用的方式是按在线模式分批送入每批64到128张图既控制显存峰值又能利用在线增量机制保持全局一致性。48GB以上显存基本可以放开手跑。但即使显存充裕我依然不建议离线模式一次性丢入千图。我可以给你一个简单的估算方法统计模型的patch数如果模型沿用ViT的14×14 patch切分每张图在512×512分辨率下会产生约1369个token。当累计token数超过5万时无论如何优化都建议开启在线模式。只要在线模式的重建质量和离线模式相当在线模式始终是更稳妥的选择。3. 精度超越VGGT靠的是架构换血不是堆参数精度超越VGGT是AMB3R最核心的卖点。但要理解这个超越的含金量得先搞清楚VGGT为什么在某些任务上精度不够以及AMB3R用了什么方式来补齐这些短板。我倾向于认为AMB3R不是简单地把模型做大——如果真是这样标题就没必要强调“单卡”了。它更像是在架构层面做了系统性换血。3.1 从全局Transformer到混合聚合为什么有效VGGT的思路是让任意两张图像之间的所有token都可以相互互动用全局注意力来保证多视角一致性。这个设计在小规模输入下非常优雅但当一个场景的图像数量增多全局注意力会被严重稀释——模型需要同时关注成千上万对图像之间的关系分配到每一对具体图像上的注意力权重自然变低。结果是细节匹配质量下降尤其在弱纹理区域和重复结构区域特征匹配容易出现歧义。AMB3R要走一条更务实的路线先做局部再做全局。具体来说它应该采用了“局部稠密匹配加全局稀疏聚合”的混合结构。相邻视角图像之间有足够的视差重叠可以做高分辨率的稠密特征匹配这保证了局部几何的精度。这些局部匹配结果再通过场景级的锚点token聚合到全局坐标系中保证远距离视角之间的一致性。这种混合结构很像人的视觉系统工作方式——近处看细节远处看轮廓最后在脑中合成完整空间认知。另外一个可能是它还引入了尺度感知机制。航拍大场景中同一场景里既有几百米的高空视角也有几米高的低空特写尺度跨度极大。单尺度模型天然难以同时兼顾远距离结构的完整性和近距离细节的丰富性。AMB3R如果采用了图像金字塔或者多尺度特征解码那它在MegaDepth这类大规模户外场景上超越VGGT就顺理成章了。3.2 精度反超的量化维度既然目前官方还没有公布完整的数值对比表我就从评测结构层面来帮大家理解“超越”到底体现在哪些维度。按标题信息梳理精度对比大致会在这样几个维度展开多视角深度估计精度。衡量模型输出的深度图与真实深度的一致性。在这个维度上VGGT已经很强AMB3R的超越点大概率在弱纹理区域和物体边缘处的深度连续性。相机位姿估计精度。通常用ATE绝对轨迹误差或AUCN°来衡量。位姿精度是重建质量的基石位姿错了后续所有几何结果都是空中楼阁。这个维度也是传统SfM相对VGGT的优势所在AMB3R如果在这里超过VGGT意义极为重大。点云重建完整性与准确性。一般用F-score、Chamfer距离等指标。完整性考察是否模型只重建了容易的部分而省略了困难区域准确性考察重建的点云与真实表面的偏差程度。新视角合成质量。重建出的场景能不能渲染出未见过的视角图像这个维度直接综合考验了场景几何和纹理还原能力。3.3 长序列输入下精度的稳定性才是真试金石短序列精度高只能说明模型在小规模输入下拟合得好。但重建模型的真正挑战在于长序列下的精度稳定性这就是所谓的累积误差问题。在增量重建过程中每加入一批新图像模型基于已有估计来预测新图像位姿。如果预测存在微小偏差这个偏差会传递到后续所有图像的匹配和三角化中。几十张图的时候偏差还不明显到了几百张、上千张误差就像滚雪球一样越滚越大最终导致场景漂移或者彻底断裂。传统SfM系统靠全局BA来对抗这个问题所以COLMAP能在千图规模保持精度但代价是极长的计算时间。AMB3R如果真能在千图规模保持精度不退化它的机制大概率不是消除每一步的误差而是在流程中加入某种全局校正机制。我推测它可能采用了重叠窗口设计——相邻批次之间保留一定的图像重叠重叠区域会执行一致性约束把新批次的位姿拉回全局最优位置。这个机制的工程价值极大因为它意味着用户可以放心地做流式重建而不需要定期停下来做全局优化。4. 7任务13数据集SOTA评测全景与含金量分析看到“7任务13数据集SOTA”这种表述一方面确实亮眼另一方面也要冷静拆解。SOTA并不意味着每个维度都碾压所有方法它背后可能有很多评测设置的细节需要辨析。这一节我不去猜测具体数字而是帮你建立一个判断这类评测可信度的方法论——这对你自己去看论文、用模型会有极大帮助。4.1 七个任务到底考的是什么根据标题和当前三维重建领域的主流任务划分这七个任务应该覆盖了从几何到外观的完整重建链路。大致可以这么理解单目深度估计。输入一张图输出逐像素深度。考的是模型对单张图像中空间关系的理解能力不需要多视角约束。多视角深度估计。输入多张图输出每个视角的深度图。这是核心重建任务需要模型在多图中找对应关系并推断几何。相机位姿估计。输入多张图输出每张图的相机内外参。这是所有多视角重建任务的地基相当于给整个三维场景定坐标。点云重建。输出场景的三维点集直接呈现几何结构。衡量点是点云完整性和几何准确性。稠密表面重建。在点云基础上重建连续表面通常用网格表示需要处理噪声和补全空洞。稀疏视角重建。给定少量输入图像比如3到5张尽可能重建出高质量几何。这在AR/VR场景中很重要因为实际很难为每个物体拍摄大量图像。新视角合成。给定输入图像和估计的几何渲染未见过视角的图片综合考验几何和纹理的质量。每一个任务的难度和评价指标都不同能在所有任务上同时拿到SOTA至少说明AMB3R的架构没有偏科。4.2 13个数据集的覆盖广度决定了模型的下限13个数据集这个数量级在三维重建论文中相当可观。我根据这个领域常用的数据集分布来梳理一下可能的构成ScanNet和ScanNet是室内场景的标杆数据集包含密集的RGB-D序列考的是室内重建精度和动态物体排除能力。CO3Dv2是物体系数据集涵盖了大量日常物体的多视角视频考的是物体级别的几何重建。MegaDepth是户外大规模场景数据集利用网络图片构建场景跨度极大考的是大场景位姿和大规模点云重建能力。DTU是物体级稠密重建的经典基准有一个标准化的评测协议适合做定量对比。Tanks and Temples则包含室内外多类型场景是重建领域公认的硬基准。RealEstate10K和LLFF常被用于新视角合成测试。如果AMB3R真的在跨越室内、室外、物体级、场景级的13个数据集上拿SOTA这至少说明它的泛化能力不是过拟合某类数据。一个模型能处理像MegaDepth那样的大场景又能搞定ScanNet的室内稠密重建它的特征提取和对齐机制一定是足够通用的。4.3 哪些指标是“数据好看”但实际有坑的这里必须说一些得罪人但很实在的话。三维重建领域有几个指标非常容易产生“好看但没用”的结果。第一个是F-score对点云密度的宽容度过高。F-score同时看精度和召回率但前提是双方对“一个点算不算匹配”有统一的距离阈值。在物体级数据集中这个阈值通常设得很小比如2mm但在大场景中阈值会被放宽。阈值一宽重建结果即使密度很低只要位置大致对就能拿到高分。所以看F-score一定要关注它对应的阈值是否合理。第二个是AUCN°对标称误差的容错太宽松。位姿估计中如果容错阈值为10°甚至20°那么终端用户根本无法感知结果是否可用。真实应用往往要求误差在1°甚至更小。一个模型可能在AUC10°上表现SOTA但在严格阈值下翻车。第三个是PSNR在新视角合成中的失效问题。PSNR对全局像素差异敏感但如果重建场景的边缘或高频细节丢失PSNR可能依然很高——因为丢失的细节在整体像素中的占比很小。我建议结合LPIPS这类感知指标一起看。所以等AMB3R正式release之后我建议你不要只看官方SOTA表要自己在自己的数据上测三个方向的指标位姿的绝对轨迹误差ATE、点云在合理阈值下的F-score、以及长序列重建的轨迹闭合误差。这三个指标过了关模型才真正可靠。5. 开源复现与实测单卡怎么跑起来最后这部分写给想动手复现的同行。AMB3R既然开源那么从拿到代码到跑通自己的数据中间一定会有一些文档里没写明白的细节。我根据自己的经验把流程和容易踩的坑都列出来。5.1 环境准备与权重下载运行环境上PyTorch 2.x配合CUDA 12.1是目前最稳的组合。AMB3R大概率依赖了一些比较新的算子比如内存高效的注意力kernel这些算子对CUDA版本有要求建议不要用太老的CUDA。Python依赖建议直接用官方提供的environment配置文件不要手动一个一个装。整套环境的安装时间通常在20分钟到半小时之间大部分耗时在编译注意力kernel上。权重方面官方release之后应该会在Hugging Face或项目主页放出预训练权重。注意在线和离线模式很可能共用一份权重只是推理逻辑不同。如果是这样你只需要下载一份主权重即可不用为每种模式单独找文件。下载的时候确认权重文件的hash值避免下载到残缺文件浪费排查时间。5.2 在线和离线模式的运行实测以典型的命令行工具风格来举例离线模式大概会是这样python run.py --mode offline --input_dir ./my_images --output_dir ./my_output --max_resolution 1024输入目录下放全部图像脚本会读取图像、执行推理、输出点云文件和相机参数文件。结果通常包括PLY格式的三维点云、一个包含相机内外参的JSON或TXT文件以及可选的网格模型。先跑一个100张图左右的小场景验证精度再看说明书跑自己的大场景这个顺序永远是对的。在线模式大概长这样python run.py --mode online --input_dir ./stream_frames --output_dir ./my_output在线模式适合视频序列或者无人机航测的帧流。输入目录下图像按照拍摄顺序命名脚本会增量式地处理每一批新图像。输出结果会随着输入的增加持续更新这样你可以在数据采集过程中就实时查看重建进度而不是等到全部数据拍完才开始处理。5.3 我在类似模型上踩过的几个坑这些年我跑过不少三维重建模型踩过一堆坑这里挑几个AMB3R大概率也会踩到的说一下。第一个坑是图像路径问题。图片目录里一定不要有中文名或者空格。这类模型底层有一套图像读取和元数据管理逻辑很多直接继承自SfM工具链对路径格式非常敏感。我遇到过最离谱的问题是因为一张图片的文件名里带了个中文括号整个重建任务直接崩溃。第二个坑是batch size的陷阱。很多人以为在线模式可以随便调整每批输入图像的数量其实不然。batch size过大可能会导致显存溢出。按我经验24GB显存从batch size 32开始试稳定后再往上加。每张图的分辨率也要控制在合理范围内——它比你想象的更影响显存占用因为patch token数是随分辨率平方增长的。第三个坑是输入顺序问题。在线模式依赖帧与帧之间的空间连续性乱序输入会对重建结果造成毁灭性打击。如果你从多个设备收集数据导入前一定要按时间戳或GPS信息重新排序不要让模型在毫无关联的帧之间建立匹配。第四个坑是图像预处理不一致。有的数据集里混杂了不同分辨率、不同旋转方向、不同曝光的图片。这些图片喂进模型前最好统一做预处理——把最大边缩放到合理尺寸、根据EXIF信息统一旋转方向、做直方图均衡化改善过曝欠曝。不要指望模型扛过所有恶劣输入前处理做好能省掉大量后续返工时间。第五个坑也是所有做三维重建的人都该记住的先在小场景上跑通再放大。不要直接拿1000张图的第一天就跑全量先在100张上验证出图质量确认结构没问题再逐步增加数据规模。这样即使出问题你也能快速定位是前处理的问题、参数的问题还是模型本身的问题。AMB3R这种模型出来之后肯定会有人问COLMAP是不是要死了我的看法是短时间内不会。COLMAP在精度、可解释性、可控性、以及用户对中间过程的干预能力上依然有不可替代的优势。AMB3R的价值在于把重建从“需要专家调参的精密仪器”变成了“开箱即用的通用工具”降低了入行门槛也让更多业务场景能直接享受三维重建的收益。真正聪明的做法不是非此即彼而是把AMB3R放进现有管线的第一步或者最后一步让它和传统工具各司其职。等模型正式发布后我会用真实数据集跑一组对比到时候再回来更新结论。