组会被分到讲这篇论文,从来没接触过姿态估计相关的东西,本来还有点抵触。但注意到是李飞飞团队做的,就还是认真看了一下。看了之后发现还是很有收获的,就在这里记录一下。
一、6D 姿态估计
6D指的是6个自由度,旋转的3个自由度+平移的3个自由度,需要估计的目标姿态是相对于相机的坐标系来定义。
6D姿态估计有很多重要的现实应用,例如机器人抓取与控制、自动导航、增强现实等。
二、Contribution
这篇论文主要是两个contribution,分别对应之前研究工作中的两个问题:
- 重度遮挡的case 效果不好
- 高耗时的refine,实时性不足
第一点问题,之前的方法一般使用图像块计算全局特征或者2D边界框,对于重度遮挡的case,原始图像块中的信息是有污染的——会参杂别的物体的信息——这样得到的全局特征就会不准确,从而造成估计姿态的不准确。而论文通过在像素级别构造特征——嵌入(embed)、融合(fuse) RGB颜色特征和点云几何特征(由深度值D构造)——并引入置信度参数来剔除污染信息,从而在重度遮挡的情况下也能得到准确的姿态估计。
第二点问题,之前使用的refine方法与姿态估计的主体网络是脱节的,因此无法和最终目标函数联合优化,并且计算也比较慢,导致无法满足运算的实时性要求。这篇论文提出了一种基于网络的迭代的refine方法,极大地提高了模型性能,保证了实时的处理速度。
三、网络结构
整个模型的架构主要包含两个阶段:
- 第一阶段将彩色图像作为输入,对每个已知的物体进行语义分割。按分割后的结果裁剪原图片和点云(由深度像素转换而成),将两个裁剪结果导入第二阶段。这里segmentation的网络直接使用了别的论文的成果。
- 第二阶段处理分割的结果并估计目标的 6D 姿态,包含四个部分:
① 一个处理颜色信息的全卷积网络,图像块中的每个像素被映射成一个颜色特征(128维);
② 一个基于 PointNet 的网络,将带有裁剪后的 3D 点云中的每个点处理为一个几何特征(128维);
③ 一个像素级的 fusion 网络,利用颜色和几何特征计算一个全局特征并将三种特征合并后送入pose predictor进行6D姿态估计。每个pixel估计得到一组结果(旋转参数、平移参数和置信度),也就是说如果分割得到的物体有500个像素点,那么这一步会得到500组姿态估计参数。选取置信度最高的pose作为最终的pose。置信度是通过无监督的方法学习,详见Loss部分的内容;
④ 一个迭代的refine方法,通过网络迭代地微调估计结果。将前三步计算得到姿态参数应用到点云上,计算得到新的点云位置,用PointNet重新计算几何特征,联合计算的颜色特征一起送入fusion网络,将得到的特征送入pose residual estimator,计算新的微调姿态参数,再更新点云,再算几何特征,循环迭代。refine网络部分的特征计算与前面的特征计算用的是不太一样的网络结构。
网络结构的部分细节:
- pose predictor是三个4层的1x1卷积网络,旋转参数、平移参数和置信度分别对应一个卷积网络;
- pse residual estimator是两个3层的全连接网络,旋转参数和平移参数分别对应一个全连接网络;
四、Loss
计算逐像素点的loss。公式很好理解,下标i表示由第i个点的特征预测得到的姿态参数P的Loss。
区分了对称物体和非对称物体,对于非对称物体直接计算对应像素点之间的距离,而对于对称物体,因为会有歧义,