科研学术分享(研究生学术分享) ypxx.net

今天介绍一篇同步定位与建图方向的新工作:命令式同步定位与建图。山东济南胡凌翔团队、英国伦敦大学、哈尔滨工程大学、美国加州大学伯克利分校特雷弗·达雷尔团队、德国图宾根大学安德烈亚斯·盖格团队、美国丰田研究院阿德里安·盖东团队、英国牛津大学菲利普·托尔团队,以及美国英伟达研究院扬·考茨团队等,已经围绕视觉里程计、学习型三维重建、相机运动估计和几何优化系统进行了大量探索。可以说,视觉里程计和同步定位与建图正在从传统手工特征和局部几何匹配,逐渐走向“学习前端 + 几何后端 + 自监督优化”的新阶段。而命令式同步定位与建图正是在这个背景下提出的,它试图回答一个很关键的问题:学习型前端和几何后端能不能不再割裂,而是在训练过程中互相纠正?

同步定位与建图为什么难?

同步定位与建图可以简单理解为:

机器人一边估计自己在哪里,一边构建周围环境地图。

这个问题是机器人导航中的核心问题之一。

一个完整系统通常分为两部分。

第一部分是前端。

前端负责从传感器数据中估计局部运动,比如通过图像、惯性测量或者点云判断机器人从上一帧到当前帧移动了多少。

第二部分是后端。

后端负责消除累计误差,比如通过位姿图优化、回环检测和全局一致性约束,把长期轨迹拉回合理状态。

传统系统里,前端和后端通常是分开的。

前端先给出局部运动估计,后端再根据这些估计做全局优化。

这种设计很经典,也很实用,但它有一个问题:

前端和后端之间的信息流通常是单向的。

前端给后端结果,后端优化后得到更好的轨迹,但这个更好的全局几何信息并不会真正反过来指导前端模型学习。

学习型前端的问题在哪里?

近年来,很多工作开始用深度学习来做前端任务。

比如学习图像匹配、学习深度、学习光流、学习局部运动估计。

这些学习型前端在局部感知上很强,尤其是在传统特征容易失败的场景中,可能比手工方法更稳。

但它们也有明显问题。

如果只根据局部帧间误差训练,模型可能只学会短期运动估计,而不能理解全局轨迹一致性。

比如前端每一步误差都不大,但长时间累积下来仍然会产生漂移。后端可以把漂移修正回来,但修正结果如果不能反馈给前端,前端下一次还是会犯类似错误。

这就是论文想解决的问题:

能不能让后端优化产生的全局几何知识,反过来监督前端学习?

核心思路:前端和后端双向连接

命令式同步定位与建图的核心思想,就是把前端和后端通过一个双层优化框架连接起来。

传统做法更像是:

前端预测局部运动 → 后端优化全局轨迹

而这篇文章希望变成:

前端预测局部运动 → 后端优化全局轨迹 → 后端残差反向传播回前端 → 前端学会更好的局部估计

也就是说,后端不再只是一个“事后修正器”,而是变成了前端学习过程的一部分。

这点非常关键。

因为后端优化里包含很多局部前端看不到的信息,比如全局位姿一致性、回环约束、长期漂移趋势等。

如果这些信息可以反向传给前端,前端就不只是学习短期运动,而是可以学习更符合全局几何结构的局部估计。

什么是双层优化?

双层优化听起来比较抽象,可以通俗理解为:

外层训练前端模型,内层运行后端优化。

具体来说,前端模型先根据传感器数据输出局部运动估计。

然后后端根据这些估计构建位姿图,并通过优化得到更一致的全局轨迹。

最后,系统把后端优化后的残差或者误差信号反向传递给前端,让前端参数更新。

也就是说,训练前端时,不只是看前端自己输出得好不好,还要看:

前端输出的结果放进后端优化之后,能不能形成一个更一致的全局轨迹。

这就让前端学习目标更接近真实同步定位与建图系统的最终目标。

为什么叫“命令式”?

这里的“命令式”可以理解为:系统不再是简单地让前端独立学习,而是由后端几何优化对前端施加更明确的训练约束。

后端会告诉前端:

你这个局部运动估计虽然看起来还行,但放到全局轨迹里会造成漂移;你这个估计需要往哪个方向修正,才能让整体地图更一致。

这种训练方式有点像老师纠错。

前端是学生,负责做局部估计;

后端是老师,负责从全局角度检查结果;

学生根据老师反馈不断调整自己的估计方式。

它是不是需要外部真值?

这篇文章一个重要特点是:它强调自监督。

也就是说,它不需要额外的外部监督信号,比如高精度定位系统给出的真值轨迹。

系统通过前端和后端之间的互相约束来训练。

前端提供初始估计,后端进行几何优化,优化后的残差再反过来训练前端。

这种方式的好处是:

不依赖昂贵的外部标注,也可以让模型从同步定位与建图系统内部获得训练信号。

对于机器人来说,这很有吸引力。

因为真实场景中的高质量轨迹真值很难获得,而自监督方法更容易扩展到大规模数据。

应用到什么系统?

论文里展示的是一个立体惯性同步定位与建图应用。

也就是系统使用双目相机和惯性测量单元。

双目相机可以提供几何尺度,惯性测量可以提供运动先验,两者结合可以让系统更稳定。

文章的重点不在于重新设计所有前端模块,而是在于提出一种训练框架:

让学习型前端和几何后端通过双层优化互相连接。

所以它的思想不只局限于某一个具体传感器组合,也可以启发其他学习型同步定位与建图系统。

实验结果说明了什么?

论文实验显示,这种训练策略相比基线模型平均提升约 22%。

这个结果说明,后端几何优化确实可以为前端学习提供有效信号。

换句话说,前端如果只靠自己学习,可能很难理解全局几何一致性;但如果训练时让后端残差参与进来,前端就能获得更好的运动估计能力。

这也是这篇文章最重要的实验结论:

前端和后端不是简单拼接,而是可以互相纠正、互相促进。

这篇文章的亮点在哪里?

我觉得它的亮点主要有三个。

第一,它没有把学习型前端和几何后端割裂开。

很多系统只是把深度网络作为前端模块,然后把输出交给传统后端。但这篇文章进一步让后端优化结果反过来训练前端。

第二,它强调自监督。

不需要外部真值轨迹,系统可以利用自身的后端几何约束训练前端。这对真实机器人数据很重要。

第三,它用双层优化统一了前端学习和后端优化。

这让同步定位与建图不再只是“学习模型加传统模块”的简单拼装,而是变成一个可以端到端互相反馈的系统。

我的看法

我个人感觉,这篇文章最有价值的地方在于,它抓住了学习型同步定位与建图的一个核心矛盾:

学习模型擅长局部感知,但几何后端擅长全局一致性。

过去很多系统把两者分开用。前端负责预测,后端负责修正。但修正后的信息并不会真正让前端变得更聪明。

命令式同步定位与建图的思路,是让后端不只是“修正结果”,而是参与“训练过程”。

这代表了一种很重要的趋势:

未来的同步定位与建图系统,不应该只是把神经网络和几何优化拼在一起,而应该让它们形成闭环。

神经网络提供鲁棒前端,几何后端提供全局约束,后端残差再反过来提升前端模型。

这种双向连接,可能比单纯堆更大的网络更有意义。

不足在哪里?

当然,这篇文章也不是没有局限。

首先,双层优化本身会增加训练复杂度。相比普通前端模型训练,它需要在训练过程中运行后端优化,并让后端残差信号参与反向传播。

其次,它的实验主要展示在立体惯性同步定位与建图场景中。这个思路能否直接扩展到单目、彩色深度、激光雷达或者多机器人系统,还需要更多验证。

第三,后端优化本身也可能受到错误回环、异常约束或者外点影响。如果后端给出的反馈不可靠,前端训练也可能受到干扰。

第四,它更多解决的是训练范式问题,而不是完整处理所有真实场景挑战。比如强动态物体、严重遮挡、低纹理环境、长期地图维护等问题,仍然需要其他模块配合。

总结

命令式同步定位与建图可以用一句话概括:

它让学习型前端和几何后端通过双层优化互相连接,使后端的全局几何残差能够反向指导前端学习。

这篇文章最重要的启发是:

同步定位与建图中的学习和几何不应该只是简单串联,而应该形成闭环。

前端负责感知,后端负责全局优化,后端再反过来纠正前端。

对于机器人来说,这种思路很有价值。因为真实环境复杂多变,单靠局部学习模型不够,单靠传统几何也不够。真正强大的系统,可能需要学习模型和几何优化互相反馈、互相提升。