本文将从研究背景、技术方法、实验验证及未来展望等多个维度,全面解读一种基于SLAM技术的六自由度物体位姿估计自训练方法,帮助读者深入理解如何借助机器人自主采集的数据,提升位姿估计模型在新环境中的适应能力与泛化性能。
一、背景
1. 什么是SLAM?
SLAM(同步定位与建图,Simultaneous Localization and Mapping)是机器人领域的核心技术之一。它通过传感器(如相机、激光雷达)的测量数据,同步完成两项关键任务:构建环境地图和估算机器人自身状态。机器人状态涵盖位姿(位置与朝向)、速度以及内参等参数;环境地图则包含点、线、面等几何特征的空间位置信息。
常见的SLAM系统由前端和后端组成,如图1所示。前端负责从原始传感器数据中提取特征,后端则利用概率推断模型对提取的特征进行融合,生成全局一致的环境地图表示。

小提示: 前端通常用于处理视觉特征(如ORB、SIFT),而后端则负责优化位姿与地图,确保系统在长时间运行中保持一致性。
2. 什么是物体级SLAM?
当我们需要了解“环境中有哪些物体”时,就需要引入物体级SLAM(Object-level SLAM)。它以物体作为建图的基本单元,同时估计物体和机器人的状态,如图2所示。与稠密点云表示相比,物体级SLAM具有两大显著优势:
- 语义丰富:为空间中的几何体赋予语义标签(如“椅子”“桌子”),对后续的导航、操作等下游任务极具价值。
- 存储高效:基于物体的表示方式非常轻量,不像稠密点云那样需要占用大量存储空间。

注意: 物体级SLAM的核心在于将物体视为可观测的“地标”,从而在估计机器人位姿的同时,持续维护物体的位姿与身份信息。
3. 如何实现Object SLAM?
与通用SLAM类似,Object SLAM的第一步是从原始测量数据中提取特征,但这里使用的是物体感知模型,包括二维目标检测、实例分割,以及本文重点关注的六自由度(6D)物体位姿估计。后端同样采用概率推断模型对多帧观测进行融合,生成全局一致的物体地图。图3列出了一些相关的SLAM方法与代表性文献。

4. 为什么Object SLAM困难?
除了传统SLAM面临的挑战(如模糊的数据关联、动态物体处理),Object SLAM还引入了一些新的难题:
- 数据关联困难:例如在停车场检测到一辆车,如何确定它是地图中的哪一辆?
- 动态物体处理:如果车辆正在移动,如何避免它对相机跟踪产生干扰?又如何利用它的运动信息更新地图?
- 感知模型的不确定性:深度学习模型在预测时难以量化其置信度,导致难以判断预测结果的优劣,进而影响观测权重的合理分配。
- 域差异(Domain Gap)问题:训练感知模型时通常使用特定环境的数据(如合成数据),而在真实测试场景中,光照、背景、噪声等分布发生变化,导致模型性能显著下降。这是当前Object SLAM中一个尤为突出的挑战。
图4展示了相关工作的主页,感兴趣可进一步查阅。

二、方法介绍
1. 6自由度物体位姿估计
如图5所示,六自由度物体位姿估计的任务是:给定一张包含物体的图像,通过模型计算物体相对于相机的位姿,包含3个自由度的旋转和3个自由度的平移。代表性方法包括基于CNN的深度学习方法以及本文涉及的其他技术。

2. BOP Benchmark与性能现状
BOP(Benchmark for 6D Object Pose Estimation)是一个标准的评估平台,专门针对刚性物体的位姿估计,输入可以是RGB或RGBD图像。每年的BOP Challenge会根据既定指标对模型进行评分,表现优异者获得奖项。图6展示了BOP挑战的基本信息。

表1列出了2019年BOP Challenge中不同方法的性能对比(按性能从高到低排列)。可以看出,当年基于特征的方法在性能上优于基于深度学习的方法。

原因分析: 深度学习模型在真实场景中表现不佳的主要原因是缺乏真实的训练数据,以及合成数据与真实数据之间存在巨大的域差异(Domain Gap)。
3. 解决域差异的方案
针对上述问题,常见的解决方案包括:
- 提高合成数据的真实性:生成更逼真的合成数据,使其更接近真实场景。
- 利用测试环境中未标注的数据:通过半监督学习或自训练(Self-training)方法,让模型从无标签数据中提取有用信息(如雾天背景等环境特征)。
小提示: 半监督学习之所以有效,是因为无标签数据中包含对任务有益的环境信息,例如光照、纹理等,这些信息可以被模型捕获并利用。但大多数半监督方法不能保证收敛,错误的预测可能在训练过程中自我强化,导致性能下降。
4. Self-training的基本流程
Self-training 是一种经典的自训练方法,其流程如图7所示:
- 使用带标签的数据训练一个深度CNN模型。
- 用该模型对无标签数据进行预测,得到“伪标签”。
- 通过选择算法(Selection Algorithm)筛选出高质量的伪标签。
- 将高质量的伪标签数据与原始带标签数据合并,重新训练或微调模型。
关键在于选择算法:如果能成功选出高质量伪标签,就能有效提升性能;否则可能适得其反。

5. SLAM-supported Self-training for 6D Object Pose Estimation
本文提出的方法名为 “SLAM-supported Self-training for 6D Object Pose Estimation”。其核心动机是:六自由度物体位姿估计能够提供环境的几何与语义信息(如图8所示),但在新环境中存在域差异问题。图9展示了在合成数据上训练、真实数据上测试时,模型很难正确预测物体的位姿。


一个直观的解决思路是:在测试环境中采集部分数据并进行人工标注(但六维位姿标注成本高昂),然后微调模型。然而,这会导致机器人自主运行中断,且人工标注极为耗时。因此,我们希望机器人能够自动为自身采集的数据生成伪标签。
已有的一些方法(如图10所示)可分为两类:
- 单视角方法(Single-view):输入无序图像,无法利用时间上的连续性。
- 多视角方法(Multi-view):利用图像序列中的空间与时间连续性,融合多视角估计得到更可靠的物体位姿。但多数方法需要高精度的相机运动信息。

本文提出的方法:利用鲁棒的物体级SLAM系统,将机器人采集的数据生成全局一致的相机位姿和物体位姿,然后将这些优化后的位姿作为伪标签,反馈给位姿估计模型进行微调。整体流程如图11所示。

方法的完整流程如图12所示:
- 用带标签的合成数据预训练一个六维位姿估计器。
- 将该估计器搭载到机器人上,在行进过程中实时估计物体位姿,并结合机器人里程计构建位姿图。
- 通过鲁棒的优化方法求解SLAM估计(包括机器人位姿和物体位姿)。
- 从模型预测的物体位姿和优化后的物体位姿中,通过筛选算法挑选高质量伪标签。
- 将伪标签数据与原始真实标签数据合并,微调位姿估计模型。
从宏观角度看,流程左侧是鲁棒的状态估计(生成全局一致的环境地图),右侧是半监督学习(提升位姿估计性能)。

6. 自动协方差调整的位姿图优化
为了获得可靠的SLAM估计,本文提出了一种自动协方差调整的位姿图优化方法。传统位姿图优化通常假设观测服从高斯分布,需要指定期望和协方差矩阵。期望容易计算,但协方差矩阵往往依赖经验设定(例如根据传感器噪声大小)。然而,当观测来自深度学习模型时,我们无法准确量化预测的不确定性,因此难以指定合适的协方差。
本文的解决方案是:不事先指定协方差,而是将协方差矩阵与SLAM变量进行联合优化,如图13的公式所示。公式包含三项:第一项为物体位姿的损失,最后一项为机器人里程计的损失,中间一项为正则化项(防止协方差趋于无穷大或零)。
通过交替最小化(Alternating Minimization)求解,该方法具有两个优势:
- 解析解:对于最优协方差矩阵存在闭合解,计算高效。
- 分量级拟合:可以对6个自由度(3旋转+3平移)的每个分量分别调整协方差,比传统方法更灵活,能够适应更多样的噪声模型。

7. Hybrid Pseudo-labeling 混合伪标签选择
如图14所示,该方法从两种来源的位姿中筛选高质量伪标签:
- 模型直接预测的物体位姿(来自深度估计器)
- 优化后的物体位姿(来自SLAM求解)

筛选时使用两种检查机制(如图15所示):
- 几何检查(卡方检验):判断预测位姿与优化位姿是否存在显著差异。差异较小则可能为高质量伪标签。
- 视觉检查:根据位姿生成渲染图像,与真实图像在特征空间中进行相似度比较。相似度越高,质量越高。
通过这两项检查,即可获得高质量伪标签。

8. 实验结果
实验一:YCB Video数据集
如图16所示,使用合成数据预训练模型后,在真实数据集上进行self-training(不使用任何真实标注)。对比self-training前后的表现,可以看出self-training后模型性能更加稳定,检测出的物体更多,离群位姿显著减少。

实验二:真实机器人实验
如图17所示,将相机安装在实际机器人上,围绕物体进行导航。该实验旨在验证方法在真实挑战(如运动模糊)下的可行性。结果显示,self-training后模型性能明显提升,离群值极少出现。

三、总结与未来展望
本文提出了一种鲁棒SLAM支持的六自由度物体位姿估计自训练方法,核心创新在于自动协方差调整的位姿图优化,这使得机器人能够在新环境中自主生成高质量的伪标签,从而有效适应环境变化。实验结果充分验证了该方法的有效性。图18提供了文章和代码的链接,感兴趣可深入了解。
小提示: 代码和论文链接通常在作者主页或GitHub上公开,读者可搜索“SLAM-supported self-training for 6D object pose estimation”获取相关资源。

未来可扩展的方向包括:
- 处理动态物体(如移动的车辆)
- 处理具有对称性的物体(如杯子、球)
- 采用更鲁棒的半监督学习方法进一步提升性能
- 将物体级性能提升扩展到形状和类别估计
四、常见问题
-
深度学习方法对堆叠物体位姿估计有什么建议吗?
可以查阅相关专门研究堆叠物体位姿估计的文献。如果理解不够深入,也可以参考深蓝学院的相关课程。 -
使用深度学习进行6D物体位姿估计时,建立RGBD数据集有什么好的方法推荐?
如果是指如何筛选采集到的RGBD图片,可以在网上寻找已有图片并利用工具生成标注。也可以采用关键帧标注+优化的方式,只人工标注少量关键帧,然后利用优化方法将其传播到其他帧,实现高效标注。 -
得到伪标签后,再训练网络是不是需要离线进行?这样SLAM是否就要停下了?
是的,目前大多数模型需要较长的离线训练时间,因此SLAM需要暂停。未来如果有更快速的在线训练方法,也可以实现在线微调。 -
实验小车的处理器是什么配置?方法实现在线实时吗?
实验中采用的小车是“jerk robot”,仅作为相机支架使用。若要了解具体配置,可查阅该机器人说明。当前方法并未实现在线实时,因为优化和训练需要一定的时间。 -
实现的方法是单目还是RGBD?
方法是单目的。 -
如果SLAM需要停止,那么SLAM的作用不就相当于收集数据集吗?
是的,该方法的核心就是自动收集高质量的数据集。收集完成后可将数据上传到云端,利用更快的服务器完成训练,从而减少机器人停止的时间。 -
最后检测的物体仍然是预训练里面已有的物体吗?
是的,该方法仅针对预训练中已包含的物体类别进行检测和位姿估计。 -
即使不使用SLAM,手动收集数据集也可以,另外方法对SLAM的过程有哪些提高?
手动收集虽然可行,但真实机器人探索环境时很难有人一直跟随。本方法最大的优势是让机器人自主生成标签,无需人工干预。对SLAM过程的提升主要体现在:通过自动协方差调整,可以获得更鲁棒的物体位姿估计,从而更好地服务于SLAM的全局优化。
编辑:黄飞
