乐趣区

关于算法:SLAM技术支持的物体6Dof位姿估计的自训练方法

转载:深蓝 AI
分享嘉宾:卢子琦
文稿整顿:张琳
编辑:东岸因为 @一点人工一点智能
原文:SLAM 技术支持的物体 6Dof 位姿预计的自训练方法

01 嘉宾介绍

卢子琦,目前于麻省理工学院计算机科学于人工智能实验室攻读博士学位,师从 Prof. JohnLeonard,钻研方向为鲁棒和子进步的物体级机器人感知于建图。个人主页:https://520xyxyzq.github.io

02  背景

2.1 Object-based SLAM

SLAM 就是机器人同步定位与建图,通过一些传感器的测量数据同时去建设环境的地图,且利用这个地图对于机器人的状态进行预计,机器人的状态包含机器人的位姿、速度和机器人的参数,比方内参。环境地图包含比方点的地位,线的地位,面的地位。常见的 SLAM 零碎由前端和后端组成,如图 1 所示,前端个别从一些原始的传感器数据中采集一些特色,后端利用概率的推断模型对采集的模型进行交融生成全局统一的环境地图。
图 1 SLAM 构造
要晓得环境中有哪些物体,就须要进行物体级 SLAM,简略而言就是以物体为指标的 SLAM 零碎,对物体和机器人的状态进行预计,如图 2 所示。一个是对空间中的几何体加上语义信息,对上游的工作有作用,另一个是十分节俭存储空间的示意。如果用浓密点云就须要用很多的存储空间,然而基于物体级的 SLAM 造成的示意是十分轻量化的形容。
图 2 物体级 SLAM

2.2 如何做 Object SLAM?

和宽泛 SLAM 相似,首先要在原始的测量数据中提取特色,应用物体的感知模型,包含二维的指标检测,也包含实例宰割。明天波及的是六自由度物体预计指标检测,后端也是用概率推断模型对于多帧进行交融生成全局统一的地图。图 3 列举了一些指标 SLAM 的文章和办法。
图 3 相干 SLAM 办法和文章

2.3 为什么 object SLAM 是比拟艰难的问题?

因为有一些宽泛的 SLAM 具备的挑战,也面临一些新的挑战。宽泛的 challenge 包含 ambiguous data assosiation 的问题,比方在一个停车场检测到一辆车,那么怎么把真的观测和地图外面的进行关联,那么哪一辆车是以后被观测的车呢?另外一个问题就是动静的问题,比方有一个车在前进,如何判断这辆车是在前进,如何避免这个前进的车对相机跟踪产生影响,而后如何依据这个车的行进去一直地更新地图,这些问题是比拟难解决的。新的挑战次要是源于引入了 object perception model,这两个模型联合的过程中就会产生一些 information 瓶颈,比方在 deep learning model 做出一些预测的时候,很难对不确定性进行量化,很难晓得预测是好是坏。
在这种状况下如何去应用深度学习的 model,如何给观测赋权重是一个比拟艰难的问题。另外,一个比拟重要的在 object SLAM 畛域中的问题就是 domain gap 问题,在新的环境中会有性能降落的问题。就是在训练 perception model 的时候,个别在特定环境中采取数据,给数据增加标注,用这些标注的数据训练网络。但当应用或测试这个网络时,往往在一个新环境中测试,训练和测试环境之间很可能有一些区别,比方光照的不同,背景的不同,噪声状况的不同,这个差别会使测试数据和训练数据造成散布不匹配的问题,这个问题就是一个 domain gap 的问题。还会导致 perception model 性能降落的问题。合成数据在真实情况中应用时,它的成果会大打折扣。
心愿可能做到的体现是机器人在摸索不同环境的时候,可能主动的适应以后的环境,把它的 perception model 调整到比拟好的性能状态。这里对于 object SLAM 的介绍告一段落,如果感兴趣能够在面 4 的主页中关注。
图 4 主页

03  办法介绍

3.1 什么是 6 自由度物体位姿预计?

如图 5 所示,图片中有物体,而后通过模型计算物体绝对于相机的位姿,这个位姿包含 3 自由度的旋转和 3 自由度的平移,所以称它为 6 自由度的物体位姿预计。具备代表性的工作,比如说 CNN 和明天会波及到的办法。
图 5 6 自由度的物体位姿预计
明天要探讨的不是如何去设计一个更好的 6 自由度位姿预计,而是在实在场景中的体现如何,把它从文章中拿进去,和其余的位姿模型在同样的 benchmark 中进行比照它们的体现最终如何。
BOP 办法进行 6 自由度位姿预计,而后这个 benchmark 它的指标就是这样的体现,模型对应的物体是刚性物体,它们的输出是 RGB 和 RGBD 的图像。BOP challenge 依据指标对不同的 model 进行打分,而后分数比拟高的就能够取得奖项,每年的会议上都有 BOP challenge 的 workshop,介绍如图 6 所示。
图 6 BOP 六维物体位姿预计
BOP challenge 在 2019 年的后果,在这一年有很多办法在一些 task 下来竞争,表 1 列举了不同办法的性能比拟,依照性能从高到低排列。能够看到这一年的经典办法就是基于这种特色的办法是因为基于深度学习办法的。 表 1 BOP challenge 性能比拟
针对下面的问题给出解释,首先不足在真实世界中训练的图片,还有实在的测试图片和通常应用的合成的训练图片之间有比拟大的 domain gap。这两个起因属于一个问题,就是短少在实在环境或者测试环境中带有 6 自由度物体标注的数据。
为了解决这个问题,有哪些计划呢?一种解决方案就是去进步合成数据的真实性,生成更加成熟的数据,另一种计划是能够利用 test devirament 没有标注的数据去进步体现。须要用到文章应用的 self-training。Semi-supervised learning 联合一些带有标签和数据和不带有标签的数据去进步模型的预测性能。
为什么这样的事件可能胜利呢?为什么可能用不带有标签的数据去进步性能呢?因为不带标签的数据上往往携带了对于预测的 task 有用的一些信息。比方雾天的数据是不带标签的数据的话,那它就携带了这种 background 的信息,这样的信息有可能被提出的 semi-supervised learning 的办法学习到,进步模型的体现。可怜的是,Semi-supervised learning 大部分的办法都没有对于收敛的一个保障,很可能越去训练它这个模型的体现越差,因为预报的一些谬误的在这个训练过程中会一直的增强本身导致的。

3.2 什么是 self-training?

self-training 是比拟晚期的办法,用学习模型的预测去进步模型预测的能力。图 7 是具体的流程图,首先从一些带有标签的数据开始去训练 Deep CNN model,而后用模型在不带标签的数据上预测,再把这些预测当做新的标签,这些标签就叫做伪标签,并不是实在的标签,是模型的预测。这些伪标签可能会有好有坏,为了选出好的伪标签,须要应用 selection algorithm 选出外面高质量的 label 造成一些带有伪标签的数据。把这些带有伪标签的数据和原始的带有实在标签的预训练的数据联合在一起,微调或从新训练网络。
能够看到,整个流程图中比拟重要的一环就是抉择算法,如果通过这个算法可能胜利的抉择出高质量的数据的话,就能够进步性能体现,反之可能会升高性能体现。
图 7 self-training 流程图
对于文章 SLAM-supported self-training for 6D object pose estimation,首先是一些动机,为什么要做 6 自由度物体的位姿预计,因为它能够给出这些环境中的几何和语义的信息,如图 8 所示。
图 8 环境的几何和语义信息
在一个环境中训练,在另外一个环境中测试,就会存在 domain gap 问题。这个问题的体现展现了一个 video 可视化问题,在合成数据上训练,有了实在数据再测试,能够看到它很难对这些物体进行正确的预测。那么如何去解决这样的问题呢?一种最简略的形式就是在测试数据中采集一些数据,给这些数据加上物体位姿的标注,而后微调 6 自由度位姿预计器。
然而,整个 6 自由度物体位姿标注的过程十分费时费力,更重要的一点是心愿机器人在摸索不同环境的时候是不被打断的,如果机器人进入到新的环境,还要去标注这个新环境的数据,那它对机器人的自主运行就是一个很不利的事件。所以心愿做的就是机器人可能本人去给它采集到的数据进行标注,做一个 self label。
图 9 domain gap 问题
应运而生,有一些办法来解决问题,个别用合成带有标签的数据和一些实在不带标签的数据一起去进步位姿预计的性能。如图 10 所示,它们能够分为 single-view methods 和 Multi-view methods,前者输出的数据是无序的,然而个别机器人采集的数据都是依照肯定的秩序采集的,会有工夫和空间上的连续性。single-view 不能利用连续性,于是利用 Multi-view 办法,交融不同视角对于物体位姿的预计来造成更加牢靠的对于物体的了解,用这个更加牢靠的位姿对一些数据做标注,再微调,但大部分须要高精度相机的静止信息。
图 10 single-view 办法和 multi-view 办法
于是,提出了一种用 SLAM 来反对的办法,通过机器人采集的数据把它放到一个这种鲁棒的物体级 SLAM 的零碎外面,而后生成一个全局统一的,包含相机的位姿和物体的位姿,而后生成一些伪标签,利用一致性的标签作为新的训练数据去微调位姿预计模型,如图 11 所示。

图 11 SLAM 反对的办法
办法的流程图如图 12 所示,从带有标签的图片数据动手,预训练一个 6D 的物体位姿预计器,把这个预计器放在机器人上,在前进过程中对物体的位姿进行预计,而后联结物体的位姿预计和机器人的里程计造成位姿图。用提出的一些鲁棒的优化办法求解 SLAM 预计,包含机器人的位姿和物体的位姿,从这些模型所预测的物体位姿和优化的位姿物体之中选出比拟高质量的物体位姿作为伪标签,把它和原始的带有实在标签的数据进行交融。整个流程图和 self-training 是一样的过程,从宏观上来看,办法左半边是在做一个鲁棒的状态预计,造成全局统一的场景地图,右半边实际上是在用 semi-supervised learning 进步物体位姿预计的性能,办法联合了两方面的一个成绩。
图 12 办法流程图
如何进行鲁棒的位姿图优化来失去比拟牢靠的 SLAM 预计?提出了一种主动协方差调整的位姿图优化,这里如果开展讲可能须要很长时间,在这边只做一个比拟宏观的介绍。如果大家有趣味,能够去文章中的相干章节看到比拟细节的公式推导。
首先要思考为什么要做这样一个主动协方差的调整,个别在做位姿图预计的过程中会假如观测是合乎高斯分布的,这样就能把问题转换为一个非线性最小二乘问题去求解,为了指定这样的高斯分布,须要两个量,一个是冀望,一个是方差,对于高维的高斯分布须要一个冀望和一个协方差矩阵。冀望很好失去,能够通过 SLAM 预计还有测量模型计算每个测量的期望值,但协方差个别都是经验性的给出一个值,在理论中依据对于传感器噪声大小的一个了解去制订这样的协方差值,比方传感器的噪声比拟大,给一个比拟大的协方差矩阵,反之给一个比拟小的协方差矩阵。
当初对于物体位姿的预计都是从深度学习模型失去的,也就是说传感器变成了模型,对噪声没有十分牢靠的了解,预测没有方法很好的量化。在这种状况下,如何指定协方差矩阵?提出的计划是不指定协方差矩阵,把协方差矩阵和 SLAM 的变量进行联结优化,如图 13 所示,在公式里展现。第一项代表物体位姿的损失值,最初一项是机器人里程计的损失值,第一项是正则化项,目标是避免值跑到正无穷,像零这个方向去正则化。
求解联结优化的问题是用的 alternating minimization 办法,这个办法有两个劣势,第一个劣势是对最优的协方差矩阵有一个解析解,第二个益处是能够在重量级别对协方差矩阵进行拟合。失去位姿预测时,对六个自由度的重量进行不同水平的拟合,与传统办法相比更加灵便,也可能拟合更宽泛的噪声模型。
图 13 主动协方差调整公式推导
如图 14 所示是 hybrid pseudo-labeling 办法,在两种位姿中选取高质量的伪标签。
图 14 hybrid pseudo-labeling 办法
如图 15 所示,Hybrid model 利用了两种数据,一种数据是模型间接在图片上预测的物体位姿,另一种是通过优化失去的物体位姿,为了对位姿进行好坏的评估,有两种评估办法,一种利用几何信息,另一种利用视觉信息,几何信息应用卡方测试,预测的物体位姿是否和优化的物体位姿有显著的差别,如果有显著差别可能是比拟差的位姿预计,反之是比拟好的位姿预计。视觉查看依据物体位姿预计生成一个渲染图片,把渲染物体和实在物体比照,转换到特色空间,在特色空间上的向量看它们是不是类似。通过这两个 check,就能失去比拟高质量的位姿标签数据。
图 15 Hybrid model
提出办法的后果如图 16 所示,在两个数据集上进行试验,并测试方法。第一个数据集是一个公开数据集,叫做 YCB video experiment。首先用一些合成数据去预训练,而后拿到模型上进行 self-training。值得强调的是,在进行 self-training 时,不去应用这些 label 标注,齐全通过 self-training 生成标注,最初一步就是把 self-training 后的放在下面去评估体现。Video 展现的是它们在测试集的体现,就是在 self-training 之前和之后进行的比照,能够看到 self-training 后性能更加稳固,可能检测出更多物体,也有更少离群的位姿预计。
图 16 提出办法的后果
如图 17 所示,第二个试验是在实在车下面做的试验,把相机放在机器人上,围绕物体进行导航。做实在机器人试验的目标就是为了测试方法对于挑战的可行性,提出办法在静止含糊等状况下仍然能够失去比拟好的性能,比拟多的进步训练后的体现,离群值很少。
图 17 实在车试验

04  总结和将来瞻望

提出的办法是鲁棒性 SLAM 所反对的 6 自由度物体位姿预计的自训练方法,目标是心愿做优化,办法可能适应新的环境。最重要的一环是提出的主动协方差调整的位姿图优化办法,最初通过试验验证了办法的体现。如图 18 所示,右上角有文章和代码的链接,感兴趣能够去看一下。
图 18 主页和文章链接
最初就是如何去延长工作,首先能够给零碎退出对动静物体的解决,如何思考它的影响,或者某些物体有对称性的物体位姿如何解决,以及鲁棒性的半监督学习,还有很多更新的办法进一步提高体现,最初能够把对于物体级别的性能晋升扩大到对于物体位姿形态和类别进行预计,用更加牢靠的后果训练,而后预计。当然能够很多其余的方面,因为工夫的分享,探讨告一段落。微信扫码,获取公开课回放地址

05  问题

1、深度学习对于重叠物体位姿预计有什么倡议吗?能够看一些对于这块钻研的设计办法的文章,如果对这块了解的不是特地深刻,也能够看一下深蓝学院的相干课程。
2、在利用深度学习的办法进行 6 自由度物体位姿预计时,如果要建设 RGBD 数据集的话,有什么好的办法举荐吗?我的了解是如何抉择采集到的 RGBD 图片对不对,能够在网上找一些图,而后放在 tool 中进行学习产生标注。能够应用优化办法只采纳标注关键帧的办法,利用优化进行复制,无效疾速的标注。
3、失去伪标签当前,再训练网络是不是须要离线进行?这样 SLAM 是否就要停下了?是的,这个说法是正确的,采集到伪标签数据时,须要训练位姿预计的模型,须要较长的工夫,以后大多数模型都须要较长时间,如果将来有更好的办法在短时间内进行训练,也心愿能够在线进行。
4、试验小车的处理器什么配置?办法实现在线实时吗?在试验中采取的小车是 jerk robot,只是去用它作为一个相机支架围绕物体变成指标,如果要理解的话能够理解这个机器人的外部结构。
5、实现的办法是单目还是 rgbd 的?办法是单目标。
6、如果 SLAM 须要进行的话,那么 SLAM 的作用不就相当于收集数据集吗?是的,这个办法的提出主动收集数据集的过程,可能传到云端,有服务的话能够很快的训练,也就不须要进行很久。
7、最初检测的物体依然是预训练外面已有的物体吗?是的。
8、即便不应用 SLAM,手动收集数据集也能够,另外办法对 SLAM 的过程有哪些进步?
手动收集是能够的,但大部分都是在公开数据集中进行剖析,而后对它进行应用。它的问题在于在实在环境中对机器人环境摸索,很难有人始终跟着机器人,心愿机器人自主做 label 的。进步次要是主动的产生标签,能够用这个过程优化协方差模型。
1、书籍举荐 -《3D 点云剖析:传统、深度学习和可解释的机器学习办法》
2、书籍举荐 -《基于 Pose SLAM 的建图、布局与摸索》
3、基于多传感器交融的定位和建图零碎
4、书籍举荐 -《卡尔曼滤波与信息交融》
5、书籍举荐 -《3D 形态剖析:根底、实践和利用》
6、书籍举荐 -《大规模 SLAM 技术》

退出移动版