7

SegICP:一种集成深度语义分割和位姿估计的框架(附代码)

 2 years ago
source link: https://zhuanlan.zhihu.com/p/444295453
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

SegICP:一种集成深度语义分割和位姿估计的框架(附代码)

SegICP: Integrated Deep Semantic Segmentation and Pose Estimation

尽管机器人的相关技术近年快速发展,但机器人如何在复杂、真实的场景中实现快速、可靠地感知与任务相关的物体仍然是一项十分具有挑战性的工作。为了提高机器人系统的感知速度和鲁棒性,作者提出了 SegICP,这是一种用于对象识别和位姿估计的集成解决方案。SegICP 结合卷积神经网络和多假设点云配准,以实现鲁棒的像素级语义分割以及相关对象的准确实时 6 自由度姿态估计。该架构在没有初始解的情况下实现了实时的1 cm 位置误差和 小于5°的角度误差。最后在根据运动捕捉生成的带注释的基准数据集上完成了SegICP的评估。

作者:PCB_Segmen|来源微信公众号:3D视觉工坊

本文主要贡献如下:

1)提出一种高度并行化的综合语义分割和多假设物体姿态估计方法,其单视图操作精度为1cm。在70-270毫秒(4-14赫兹)的时间内,不需要任何先验的位姿状态。2) 提出一种新的点云配准评价指标,对点云的配准质量进行评分,允许在许多潜在的假设上进行自主和准确的位姿初始化。3) 提出一个高效的自动数据收集框架,用于通过使用运动捕捉系统获取带注释的语义分割和位姿数据集。

v2-34e38b8ffe8d578f7b34f0906974b3d9_720w.jpg

图1 给定RGB图像(左)和深度帧,SegICP 方法以像素级别分割对象,并以1 cm位置误差和小于5°的角度误差(右)估计每个对象的6 DOF姿态。

1、目前存在的问题

为了在非结构化环境中实现鲁棒、自主的操作,机器人必须能够识别周围环境中的相关物体和特征,并相应地规划其运动和交互。尤其是最近在 DARPA Robotics Challenge和Amazon Picking Challenge等自主操纵挑战方面的努力取得了显著成果,使系统能够感知、推理和与周围环境进行交互。然而,用于闭环操作任务的现有对象识别和姿态估计解决方案通常具有以下问题:

(1) 在具有部分遮挡的杂乱环境中不鲁棒;

(2) 无法实时操作 (<1 Hz);

(3) 不够准确;

(4) 在没有较好初始条件的情况下无法获得高精度。

作者针对这些问题提出了一种新的pipeline,它紧密集成了深度语义分割和基于模型的对象姿态估计,实现了实时姿态估计,中等位姿态误差为 1 cm 且小于5°。所提的解决方案(SegICP)使用 RGB-D 传感器在高度并行化的架构中提供场景中所有相关对象的各自位姿(见图 1)的语义分割。所提方法建立在大量相关工作的基础上,这些工作致力于机器人移动操作任务及其相关对象的感知。机器人系统必须能够首先识别与任务相关的实体,并推断它们的相对姿势,以最终操纵它们并与之交互。因此,作者在相关工作部分讨论了对象识别和姿态估计方面的相关文献。

2、核心思想

图2 在杂乱环境中运行的完整 SegICP pipeline。系统检测物体并估计每个物体的 6-DOF 姿态。右上角的分割图像中的彩色叠加像素对应于蓝色漏斗(红色)、油瓶(蓝色)和发动机(紫色),该图像由安装在 PR2 机器人顶部的 Kinect1 检测。左下角显示了油瓶对象的选定多假设配准及其各自的对齐分数,该结果用来确定最佳对象姿态。

A总体描述:

在如图 2 所示的SegICP架构中,RGB帧首先通过 CNN输出带有像素级语义对象标签的图像。然后使用带有标记的图像分割出相应的点云,并为每个检测到的对象生成单独的点云。然后使用ICP将每个对象的点云与其完整的点云数据库模型进行配准,并估计目标对象相对于传感器的姿态。

其中几个关键环节如下:

B 基于神经网络的语义分割:

与经典的分割问题相反,该框架特别关注如何在深度图上生成适当的mask以便进行准确的位姿估计。为了解决这个问题,作者尝试了多种CNN架构,这些架构均可以完成感兴趣对象的语义分割。通过在两种不同的CNN架构:SegNet和DilatedNet上的实验,作者发现 SegICP的最佳适用模型是SegNet,这是一个27层的全卷积神经网络,具有3000万个参数。该网络使用交叉熵标准结合由图像旋转、裁剪、水平和垂直翻转组成的数据增强,对裁剪和下采样后图像进行训练。

C 多假设目标姿态估计:

分割结果用于从场景云中提取每个对象的3D点云。然后使用SegNet预测的每个分割对象的语义标签,并从对象模型库中检索其相应的3D网格模型。网格模型被转换为点云形式后进行下采样并针对其各自的分割点云进行配准。其中,点云配准分为获取和跟踪两个阶段。获取阶段的目标是找到每个对象的模型与其对应的场景点云之间的初始最佳对齐。这种对齐用于确定模型的可见侧(模型裁剪),并初始化跟踪阶段,其目标是融合相机和机器人运动信息,即使在相机运动期间和遮挡情况下也能保持对物体的准确、实时姿态估计。SegICP使用点对点 ICP算法进行配准。本文的其中一个贡献就是将模型与场景的对齐度量,用于确定配准和在获取和跟踪阶段的切换质量。

获取阶段。获取阶段用来找到对象网格模型与当前点云的初始最佳对齐和裁剪。通过以各种方位角和仰角渲染可见对象的模型并裁剪模型以仅保留正面。同时,每个候选物体都在对象场景点云的中间位置进行初始化,以去除分割中的噪点并防止ICP陷入局部最优。

图3多假设配准排序示例:(a)中生成的蓝色分割块用于生成(b)中的突出显示的待裁剪场景点云。(c-e)说明了各种候选模型物体(橙色)与裁剪场景点云(蓝色)的配准,以及它们各自的对齐分数。图3显示了分割模型的裁剪例子和它们各自的对齐分数。

作者还指出了一些问题,如ICP 拟合得分(欧几里得误差得分)和IOU不能有效地区分好的配准和错误的配准。相比之下,作者提出的指标解决了高度对称的物体(例如油瓶)上存在的这些直接缺点。如果任何候选分数高于一个阈值ε,SegICP就会切换到未来帧的跟踪阶段。

跟踪阶段。具有最高对齐分数的候选模型位姿和裁剪用于初始化跟踪阶段。为了使跟踪过程对对象分割边界上的缺陷具有鲁棒性,通过删除最新配准模型位姿的边界框外的点来进一步修剪对象的场景点云。通过配准获得的位姿用作卡尔曼滤波器中的测量更新,以跟踪每个对象的6-DoF姿态和速度。通过融合来自机器人可用里程计的已知相机运动,滤波器能够处理临时对象遮挡和异常位姿估计。作者提出的对齐度量在拟合上进行评估,以测量当前姿态测量的不确定性并相应地告知卡尔曼滤波器。如果分数低于最小阈值,卡尔曼滤波器会在切换回获取模式的同时根据里程计计算对象的姿态。

D 自动注释训练数据:作者在由汽车实体(例如发动机、油瓶、漏斗等)组成的室内场景的7500张标记图像上训练了SegNet。在这些图像中,大约三分之二是由人类手工标记(使用LabelMe),而剩下的三分之一是由3D InvestigatorTM动作捕捉(MoCap)系统和放置在相机和物体上的活动标记自动生成(如图 4所示)。

图4动作捕捉系统:(a)使用NDI 3D Investigator 设置动作捕捉系统。作者在RGB-D相机和用于姿态测量的对象上安装了圆形活动标记。PR2的Kinect1 (b)和 Kinect2 (c)上的标记示例。图4动作捕捉系统:(a)使用NDI 3D Investigator 设置动作捕捉系统。作者在RGB-D相机和用于姿态测量的对象上安装了圆形活动标记。PR2的Kinect1 (b)和 Kinect2 (c)上的标记示例。

考虑到图像训练涉及多个传感器硬件(Microsoft Kinect1、Asus Xtion Pro Live、Microsoft Kinect2 和 Carnegie Robotics Multisense SL),每个硬件又具有不同的分辨率,因此获得用于分割和位姿估计的大型数据集很困难。为此作者又提出了一个运动捕捉系统来自动注释图5中所示的图像。

图5自动运动捕捉注释:给定输入的RGB 和深度图像(顶行),自动以轴角格式标记系统的输出分割和对象姿态(底行)。

3、实验环节

作者在数据集上对 SegICP 进行基准测试,该数据集由通过 MoCap 系统获得的1246个带注释的对象位姿组成。

A.语义分割结果:为了探究分割方法对姿态估计的影响,作者探索了两种语义分割架构:SegNet和DilatedNet。SegNet是一种计算效率高的自动编码器-解码器,用于逐像素语义分割。自编码器架构对于每像素分类至关重要,因为它可以从每一层的输出重建输入,学习如何在最终分类层之前重建输入。DilatedNet利用扩张的卷积模块来聚合多尺度上下文信息而不会损失准确性。两种网络架构都采用了VGG图像分类的卷积层,SegNet使用 VGG 层作为其编码器,而 DilatedNet 将后面的层转换为扩张的卷积模块。作者使用在ImageNet上预训练的VGG-16模型在训练期间初始化权重。最终用超过7500张带注释的图像(平均epoch时间约为一个小时)的数据集训练这两个网络,并获得了表1中列出的性能指标。表1 语义分割网络的性能

两种架构之间的一个关键区别在于,DilatedNet旨在通过合并扩张卷积模块来提高召回率,而SegNet似乎可以实现更高精度的测量。两种网络的视觉差异如图6所示,其中SegNet和DilatedNet的输出显示为同一场景。需要注意的是,分割的质量会影响点云标记,并对框架中用于对象姿态估计的点到姿态配准方法的性能产生直接影响。尽管如此,作者仍然考虑了一个问题,那就是:更高的分割IOU是否会导致更好的位姿估计?更高的精度?和更高的召回率?并给出相关讨论。

图6SegNet 和 DilatedNet:给定来自PR2的Kinect1的相同RGB输入图像(左),分别输出两种网络的结果(中、右);与DilatedNet相比,SegNet似乎产生更精确的分割。

B.位姿估计结果:获取和跟踪阶段。

在作者的基准测试中,在获取阶段为每个对象使用了30个模型裁剪的集合,并发现在六核i7-6850K(30线程)上的总体平均运行时间为270毫秒。需要注意的是,这里的时间评估取决于目标物体的数量和机器的CPU。

基准测试。在图7中,作者说明了在1246个对象姿态注释的基准数据集上评估SegICP的结果。为了对分割标记对最终姿态估计的影响进行全面分类,作者使用带注释的分割和两个分割网络架构的输出运行SegICP。结果表明,与DilatedNet (66%)相比,SegNet实现了更高的性能 (77%)。同时,作者将误差超过5厘米和轴角度超过15°的情况归类为失败。在成功的场景中,SegICP实现了1 cm的位置误差和< 5°的角度误差;这一准确度水平接近所有基准实例的80%。图7显示了给定分割的姿态估计误差的分布。有趣的是,SegICP的性能与传感器技术和校准高度相关。当仅考虑466个Kinect1实例(具有更好RGB-D 校准的结构光传感器)时,SegICP 分别使用来自注释、SegNet 和 DilatedNet的标记分别实现了90%、73%和72%的成功度量。

图7SegICP 姿态估计:不同的神经网络架构(例如 SegNet 和 DilatedNet)导致的不同分割标记之间的错误。

此外,与TOF传感器(例如 Kinect2)相比,SegICP 在结构光传感器(例如 Kinect1)上的运行性能似乎更高。作者发现,由于TOF引起的点云变形,具有高度几何对称性和具有反射表面的物体(例如油瓶)会导致ICP拟合不佳。图8说明了这种特殊现象,其中油瓶表面存在较大变形,导致配准不准确。最后,由于该架构使用分割标记来裁剪点云,所以RGB和深度帧的传感器校准对于准确的姿态估计至关重要。

图8点云变形:由于物体表面反射造成的配准错误

4、总结

本文提出了一种高度并行化的架构,用于语义分割和准确的位姿估计(1 cm 位置误差和 <5°的角度误差)。所提架构最直接的好处是不需要足够接近解决方案的初始估计,并且本质上是可并行化的,允许实时同时处理多个对象(跟踪和采集模式分别为70-270毫秒)。此外,作者详细阐述了一种运动捕捉方法来收集潜在的大量带注释的分割和位姿数据集,使该架构能够快速扩展其他的领域。同时作者表示,目前正在努力改进感知架构,扩展框架以包含更大的对象集,并将其与非结构化环境中复杂交互的集成任务和运动规划联系起来。本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)

3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进

4.国内首个面向工业级实战的点云处理课程

5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解

6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦

7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化

8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现11.自动驾驶中的深度学习模型部署实战12.相机模型与标定(单目+双目+鱼眼)

更多干货

欢迎加入【3D视觉工坊】交流群,方向涉及3D视觉、计算机视觉、深度学习

、vSLAM、激光SLAM、立体视觉、自动驾驶、点云处理、三维重建、多视图几何、结构光、多传感器融合、VR/AR、学术交流、求职交流等。工坊致力于干货输出,为3D领域贡献自己的力量!欢迎大家一起交流成长~

添加小助手微信:CV_LAB,备注学校/公司+姓名+研究方向即可加入工坊一起学习进步。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK