机器人只记住最近11帧,却能在4.8万帧的街景里走完27分钟不迷路

📅 发布时间:2026/9/9 9:08:49
机器人只记住最近11帧,却能在4.8万帧的街景里走完27分钟不迷路 先问你一个问题如果让你闭着眼睛只凭刚刚十几秒的身体感觉往前走你能走多远不迷路大概率走不了几步就得睁眼?认。可是阿里的AMAP CV Lab团队做了一件听起来更离谱的事让一个AI模型只看最近11帧画面就在一段8.6公里、48656帧、持续27分钟的北京望京街景视频里把摄像机的完整轨迹和三维场景都重建了出来而且误差控制得比那些记性更好的模型还小。这篇论文叫《Revisiting Local Context for Long-Horizon Streaming 3D Reconstruction》讲的是一个反常识的选择在所有人都在拼命给AI装更大记忆的时候这个团队反而把记忆砍到了极致然后靠这个健忘的设计打赢了记忆力更强的对手。这事到底是怎么回事得从流式三维重建这个问题说起。从视频里看出相机在哪、世界长啥样想象你戴着一台摄像机走在路上边走边录。现在有个任务只用这段视频反推出你走过的每一步具体在哪个位置、朝向哪个方向同时还原出你路过的每一栋建筑、每一条街道的三维形状。这就是三维重建要干的事自动驾驶要用它来定位机器人靠它来导航AR眼镜靠它来理解你面前的房间。早些年这活儿是靠一整套精密的工程流水线做的找特征点、算三角关系、做全局优化、检测是否绕回了原路。近几年出现了一批喂图就能出结果的深度学习模型比如DUSt3R和它的后续者VGGT、Pi3这些模型不需要你告诉它相机参数直接从图像里学出几何结构。流式重建*指视频是一帧一帧实时到来的模型必须边看边算不能等看完整段视频再统一处理而且内存和计算量不能随着视频变长而无限膨胀。问题来了上面提到的那些强模型大多是设计给一堆照片用的可以把所有图片同时喂进去让它们互相打招呼交换信息。可现实中的视频流是源源不断的你不可能等一万帧都拍完了才开始算那样根本没法实时用在机器人或自动驾驶上。而且如果模型试图记住从第一帧到现在的所有信息内存迟早爆掉。于是研究者们开始给模型装记忆。有的用外部空间记忆库存几何特征有的用循环神经网络维护一个压缩状态还有的用因果注意力机制缓存最近的键值对。这几年最新的两个工作LingBot-Map和HorizonStream已经把流式重建的能力推到了一万帧以上靠的是把短程观察和长程持久记忆结合起来一边看眼前一边翻旧账。这条路看起来是对的效果也确实在变好。但这篇论文的团队盯着这个趋势问了一个不太一样的问题如果预测目标本身就跟记多久没关系是不是根本不需要那么复杂的长程记忆管理被忽略的一个变量你到底在预测什么这里有个容易被忽略的细节。很多流式重建模型的做法是把某一帧通常是最开始那帧定为世界原点后面所有帧的位置和姿态都相对于这个原点去计算。这带来一个隐藏的麻烦随着视频越拍越长摄像机离这个原点越来越远预测目标的数值范围也在跟着膨胀。你想想让模型去预测我现在距离出发点多远这个数字在视频刚开始时可能是几米到后面可能是几公里。同一个模型要在训练时见过的短序列范围内学会预测几米的误差却要在推理时去应付几公里量级的误差这个预测问题的难度是随着视频变长而实实在在变难的。如果不这样设计会怎么样答案就是我们在实验数据里看到的很多老牌流式模型跑到几千帧之后轨迹误差会急剧膨胀因为它们一直在试图相对一个越来越遥远的锚点去定位自己。这就好比你在陌生城市里散步导航App非要你时刻汇报你距离你家门口多少米、朝向多少度。刚出门时这个任务很简单走出去五公里之后哪怕你自己每一步都走得很稳光是要精确报出距离家门口5213米、方位角37度这种绝对数值就已经开始容易出错了。如果导航App换个问法只让你报你和上一秒相比往哪个方向挪了多少这个任务无论你走了多远都是同样难度的小任务。ABot-Recon这篇论文选择的就是后一种问法。它不去预测我现在相对于第一帧在哪而是只预测当前这一帧相对于上一帧动了多少以及当前这一帧看到的三维点云在当前相机坐标系下长什么样。这个预测目标从第一帧到第一万帧难度是完全一样的不会随着视频变长而膨胀。局部预测*指模型的输出目标只依赖于最近的一小段上下文不依赖某个固定的全局参照点因此无论视频多长模型面对的都是同一种难度的预测任务。只留11帧记忆够用吗具体来说ABot-Recon的做法是这样的。每来一帧新画面模型只回头看最近11帧缓存下来的特征加上当前这一帧凑够12帧的窗口去做计算。它输出三样东西当前帧坐标系下的三维点云、每个点的置信度、以及当前帧相对于上一帧的相对姿态变换。KV缓存*Transformer模型在处理序列时会把每一帧算出来的键和值存起来供后续帧查询比对这里的KV缓存被严格限制在最近11帧超出这个范围的历史全部丢弃不再保留。要拿到全局的相机轨迹和完整场景靠的是链式组合把第1帧到第2帧的变换、第2帧到第3帧的变换一路乘下去就能算出第1帧到第10000帧的完整变换关系。这就跟你把一串多米诺骨牌的相邻推倒关系记录下来最终能推算出第一块骨牌倒下会不会影响到第一万块一样你不需要记住每块骨牌相对于起点的绝对位置只需要记住每一步的相对关系。这个设计带来两个直接的好处。第一模型可以在32帧、128帧这样的短视频上训练训练完之后直接拿去处理几万帧的长视频因为训练和推理面对的预测任务本质上是同一种。第二因为窗口大小固定模型的内存占用和每一帧的计算量理论上跟视频总长度完全脱钩实测中处理4661帧的KITTI-02序列时峰值显存只要6.71GB速度能跑到每秒24.45帧比同类的LingBot-Map和HorizonStream都要快显存占用也小得多。误差会不会越滚越大这里必须承认一个显而易见的风险如果每一步只看局部误差会不会像滚雪球一样越滚越大这确实是这个方法最大的挑战。相邻两帧之间的姿态估计哪怕只差一点点尤其是旋转角度的误差在成千上万次的链式相乘之后会被指数级放大最终导致整条轨迹严重跑偏。这就跟你闭眼走路时每一步方向都稍微偏了那么一两度走个十步可能感觉不出来走个一万步你可能已经绕到马路对面去了。论文给出的解法分两层。第一层是在推理阶段加一个轻量的旋转修正器第二层是在训练阶段改造监督信号让模型对链式误差更敏感。旋转修正器*一个额外的小模块专门用来修正相邻帧之间预测出的旋转角度因为团队发现平移量相对稳定可靠真正容易出问题、容易积累误差的是旋转。这个修正器的思路挺有意思它同时看两种线索。一种是运动证据把相邻两帧的运动描述编码成一个向量另一种是视觉证据通过跨帧的注意力机制去查询两帧图像里那些密集的视觉细节看看画面本身给出的线索是不是支持刚才算出来的旋转角度。这两路信息融合之后再喂进一个轻量级的门控时序卷积网络这个网络会看最近K帧的历史输出一个修正量把原始的旋转估计往回拉一拉。门控时序卷积网络*一种专门处理时间序列数据的神经网络结构这里用它来综合最近若干帧的运动和视觉线索判断当前的旋转估计需要往哪个方向、修正多少。这就像一个老练的司机在倒车入库时不会只盯着后视镜看车轮打了几度方向盘还会同时瞄一眼旁边的参照物两种信息互相印证才能判断这一把方向打得准不准。如果只信任仪表盘上的数字而完全不看外部参照稍微有点误差累积几次就容易蹭到旁边的车。第二层解法叫组合感知的姿态损失。传统做法是只监督第i帧到第i1帧这一步的准确性但这篇论文的团队意识到真正决定长期轨迹好不好的是任意两帧之间无论隔了多远组合起来的变换准不准。于是训练时他们让模型不仅要把相邻帧预测对还要把跨越2步、4步、8步乃至更多步的组合变换也预测对并且给跨度更长的组合分配更高的权重逼着模型在训练阶段就直面链式误差这个问题而不是等到推理时才发现问题。这就好比练字如果你只练这一笔和上一笔衔接得顺不顺写出来的单字可能都很工整但连起来写一整段话时可能会越写越歪。如果训练时就要求你时不时停下来检查这五个字组合起来端不端正你写字时自然会更注意每一笔留下的累积影响。模型是怎么练出来的训练数据方面团队用了30个数据集混合训练覆盖室内场景、户外环境、自动驾驶、手持拍摄、航拍轨迹合成数据占62.05%真实数据占37.95%。训练分了两个主要阶段。第一阶段用32帧的短视频片段训练先建立起稳定的局部几何和相邻帧运动估计的能力这个阶段是从公开发布的π?模型权重初始化的团队把它原来预测绝对相机姿态的输出头换成了预测相邻帧相对姿态的结构。第二阶段把训练片段拉长到128帧但局部预测窗口依然固定在12帧不变同时启用前面说的旋转修正模块。更长的训练片段能提供更连续、更完整的姿态组合链条的监督信号让模型见识更多真实的运动模式。最后还有一个小阶段专门微调置信度分支用来判断模型自己给出的密集预测有多可信。结果到底好在哪论文在多个高难度长序列基准上做了测试包括KITTI自动驾驶数据集、Oxford Spires大尺度校园数据集以及VBR罗马视觉基准。在Oxford Spires上ABot-Recon的绝对轨迹误差ATE做到了4.35米相对旋转误差RPE-R做到了0.12度比之前最好的结果分别降低了大约40%。这个降幅意味着什么意味着同样走过一段几百米长的路之前最好的模型可能累积出7米左右的定位偏差而这个模型能把偏差压到4米出头这在需要精确建图的场景里是实打实的差距。在KITTI数据集上团队测试了11条序列覆盖从271帧的短序列到4661帧的长序列。有一条很能说明问题的对比在KITTI-02这条4661帧的序列上团队专门画了一张图追踪相邻帧姿态误差随着处理帧数增加是怎么变化的。结果显示ABot-Recon的误差曲线始终保持在最低水平没有随着处理帧数增多而逐渐恶化这正好印证了局部预测目标不随序列长度膨胀这个设计初衷。同时团队还测试了跨越不同帧数间隔的组合误差发现跨度越大误差增长得越慢这说明组合感知的损失函数确实起了作用模型对长距离的姿态组合更有把控力。在效率对比上处理KITTI-02这条序列时几个对照组的表现是这样的LongStream每秒处理10.36帧、占用6.62GB显存LingBot-Map每秒19.74帧、占用18.87GBHorizonStream每秒8.02帧、占用13.04GB而ABot-Recon做到了每秒24.45帧、只占用6.71GB显存。速度更快内存占用却更小这在实际部署时意味着同样一块GPU可以同时跑更多路视频流。在稠密三维重建的测试里团队还看了7Scenes室内场景、TUM-Dynamic动态场景、以及Oxford Spires大尺度场景。有意思的是在紧凑的室内场景里ABot-Recon的优势并不算特别突出团队自己也坦承了这一点室内场景空间有限、经常反复经过同一片区域、视觉重叠度高持久的几何记忆在这种情况下确实还是有用的而ABot-Recon没有专门去保留这种场景级的长期状态。但在Oxford Spires这种更大尺度的环境里它反而拿到了最低的倒角距离误差和最高的F1分数说明局部预测这条路径在空间尺度变大之后反而更加吃香。除了标准测试集团队还找了几段没有精确真值轨迹的真实长视频做定性验证包括北京望京8.6公里48656帧的街景、武汉大学8.8公里的校园道路、浙江大学11.3公里的校园道路甚至还有一段四足机器人低视角导航的视频。低视角这个场景特别有挑战性因为摄像机架得离地面很近画面里地面占了大半能看到的远处结构变少了帧与帧之间的对应关系比手持或车载视频更难找。即便是在这种明显偏离训练数据分布的场景下ABot-Recon依然给出了比对照方法更连贯的轨迹。要不要翻旧账检测回环虽然ABot-Recon的核心设计是完全局部的但论文里也留了一个可选的插件训练无关的回环检测后端。回环检测*当摄像机绕了一圈重新回到之前经过的地方时系统能识别出这里我来过并利用这个重复观测来修正累积误差是SLAM系统里的经典技术。具体做法是用FAISS配合DINOv2-SALAD这类视觉描述子去检索历史帧里跟当前帧相似的画面一旦找到疑似重复经过的位置就把这两帧周围的局部窗口再送进ABot-Recon去估计一次相对姿态作为一个额外的约束加进姿态图里做一次全局优化。这个操作完全在推理阶段进行不需要重新训练模型。加上这个回环模块之后Oxford Spires上的ATE能进一步降到4.02米。这个设计挺聪明的地方在于它把局部预测和全局修正这两件事彻底解耦了。局部预测负责提供一套稳定、不随时间膨胀的基础能力回环检测负责在有机会翻旧账的时候顺手修正一下积累的误差。两者互不依赖谁也不需要为了配合对方而重新设计。消融实验说明了什么团队做了一组循序渐进的消融实验从只用相邻帧监督的基线模型开始逐步加入组合感知损失、长序列训练、旋转修正器观察每一步带来的改进。在KITTI上加入组合损失后ATE从56.60米直接降到27.66米几乎腰斩。再把训练片段从32帧拉长到128帧ATE进一步降到22.31米。最后加入旋转修正器ATE降到18.25米。整个过程里旋转修正器只增加了475万个参数相当于整个模型参数量的0.48%却带来了18.2%的ATE降幅这个投入产出比相当划算。在Oxford Spires和VBR上也能看到类似的递进式改善说明这几个设计不是孤立起作用的而是环环相扣局部预测目标解决了任务难度不随序列长度膨胀这个根本问题组合感知损失解决了局部预测如何避免链式放大的问题旋转修正器则针对性地补上了旋转误差最容易失控这个具体薄弱环节。写在后面读这篇论文时最触动我的其实不是最终那些漂亮的数字而是它提出问题的角度。这几年做长视频三维重建的思路几乎是一边倒的大家都在琢磨怎么把记忆做得更聪明、更持久、更会取舍仿佛记性好天然就是解决长视频问题的正确方向。这篇论文提醒了一件容易被忽略的事有时候问题的根源不在记多久而在你到底在问一个什么问题。把预测目标从相对于遥远的过去改成相对于刚刚发生的事情这个转变听起来简单效果却相当直接。另一个让我印象深刻的细节是附录里那部分数据清洗的描述。团队坦承他们在OmniWorld-Game、TartanAir、BlendedMVS这些公开数据集里发现了不少标注错误比如天空区域的深度值算错了、某些场景的图片是侧着或倒着的、某个海洋场景的水面深度完全不对。他们没有回避这些问题而是花了相当的篇幅描述具体怎么用SIFT特征匹配加RANSAC去交叉验证哪些帧对存在几何不一致然后把问题场景剔除出训练集。这提醒我很多论文里看不见的功夫恰恰藏在这些不起眼的数据清理环节里模型架构设计得再精巧喂进去的数据本身有问题训练出来的东西照样会带着这些错误的影子。这篇论文没有解决的问题也很明确就是紧凑室内场景里持久记忆仍然有它的价值。一个完全局部化的模型在这种反复兜圈子、高度重叠的环境里并没有表现出压倒性优势这说明要不要长程记忆这件事本质上还是要看具体场景的空间结构长什么样。一个只走直线的漫长走廊和一个反复绕圈的房间对记忆这件事的需求可能完全不是一回事。QAQ1ABot-Recon是什么AABot-Recon是阿里AMAP CV Lab提出的一种流式三维重建模型它只缓存最近11帧的特征通过预测局部点云和相邻帧相对姿态再链式组合出全局轨迹从而实现内存和计算量不随视频长度增长的长视频三维重建。Q2ABot-Recon为什么只用11帧就能处理几万帧的长视频A因为它预测的目标只是当前帧相对上一帧的变化和当前坐标系下的局部点云这个预测难度不会因为视频变长而膨胀模型训练和推理面对的都是同一种任务全局轨迹靠把每一步的相对变换链式相乘得到。Q3ABot-Recon的效果和其他流式重建方法比怎么样A在Oxford Spires上ABot-Recon的绝对轨迹误差和相对旋转误差比之前最好的方法降低约40%同时处理速度更快、显存占用更低在KITTI和VBR等基准上也表现出更强的长距离稳定性。