同时检测RGB图像和预测其6D位姿,不需要多阶段或者检查多重假设
只需要3D bounding box作为物体形状加入训练,不需要详细的3d模型
CNN卷积网络架构
预测与感兴趣的对象的三维模型相关联的虚拟三维控制点(9个点,8个角点,第九个为中心点)的二维图像坐标
给出了二维坐标预测,利用PnP算法计算了目标的6D位姿
首先输入一个完整的彩色图像,用一个全连接层处理,并分割出S x S格(如上图C)
三维输出张量中的每个网格都对应输出一个多维向量,该多维向量包括9个控制点的预测二维图像位置、目标的类概率和总体置信值(是否存在对象)
测试时,对某格子的预测值置信度较低时,即很大概率不存在感兴趣对象,该预测会被删除(如上图e空白处,只输出了4个带目标预测值)
输出目标值:S x S x D (如上图e)
9个控制点(x,y),C个类别预测,1个物体存在与否的置信度
D = 9×2+C+1
计算置信度函数(预测的2D点(用x来表示)与真实点的DT(x) 距离)
定义为图像空间上的2D欧几里德距离
dth是一个界限参数,阈值
指数函数由 α 控制其函数变化的陡度
实际上将所有控制点使用置信度函数计算,然后计算9个点的置信度平均值作为置信度,代替IoU计算
原网络架构
选择S = 13 ,23个卷积层和5个max-pooling层
增加了一个转移层,使网络的深层能够使用到详细的特征(共享特征)
从早期的分辨率为26×26的图层中引入特征,在实时训练中应用批量归一化和调整输入图像的大小。
当网络将图像采样率降低到32时,将输入分辨率调整至32的倍数(从集合{320,352,…608}随机选取),可使网络对不同大小的对象具有鲁棒性。#代码没有这部分
训练流程
训练时,要预测的二维坐标要加上相对于所在的网格单元的左上角(cx,cy)
对于中心点,限制其偏移量在0到1之间,使其落在单元格之内
但对于角点,不限制网络的输出,因为这些点应该被允许落在单元格之外
预测点(gx,gy)
实际预测出f(x)f(y)是相对于格子里的x和y,以左上角为(0,0)
输出整个图片的x 和 y要加上单元格左上角的坐标
其中f()为对于中心的是1D 的sigmoid函数
对于8个角点是 the identity function
这就迫使网络首先为对象找到近似的单元格位置,然后对它的八个角位置进行修正。
损失函数:
Lpt为坐标损失
Lconf 为置信度损失
Lid 为分类损失
对坐标损失和置信度损失使用平方均值误差计算,对分类误差使用交叉熵计算
将不含目标物体的λconf设为0.1,以降低格子的置信度损失——提高模型稳定性
而对于含有目标物体的λconf设为5
λpt 和 λid 设为1.
当多对象靠得很近(在图像上很靠近或者互相遮挡),即有可能一个格子内有多个对象
为了解决该问题的预测位姿,允许每个格子有5个候选对象——每个格子预测5组控制点
这意味着最多5个互相遮挡的对象在一个格子当中
用K-means预计算5个定义大小的anchor box,即与图像中物体周围的掩蔽区域紧密贴合的2D矩形框的宽和高
在训练中,我们指定与当前对象大小最相似的anchor box作为负责预测该对象的2D坐标的anchor box。——和2D的一样,即用固定的对应的盒子一直训练其拟合程度来预测对象
位姿预测
测试时候,对每个对象估计一个特定类置信度(类概率(class probabilities )与置信度相乘)
通过一个网络后,每个格子都产生一个预测,置信度低于阈值的格子将被移除
对于大型对象,或者是那些横跨两个格子的对象,多个格子都可能出现较高的置信度预测,为了得到更鲁棒性的和更准确的位置位姿估计:检查格子附近3X3的格子,看哪格置信度分数最高,取那个格子作为对象中心点所在
通过计算单个检测的加权平均值,将这些相邻格子的单个角点预测结合起来,其中使用的权重是对应格子的置信分数
运行时,网络预测对象的中心点和角点的3Dbounding box的2D投影
通过Perspective-n-Point (PnP) 位姿估计方法 从2D和3D之间的关联程度估计6D位姿
在本情况中,PnP使用9个点的联系,就提供了在摄像机坐标下物体的三维旋转 R 和三维平移 t 的估计。
实现细节
1.通过在ImageNet分类任务上训练原始网络来初始化网络的参数
2.刚开始训练,位姿估计置信度较低不可靠——修正方法:将正则化参数的置信度设置为0来预训练网络参数,随后,通过设置包含对象的格子的λconf为5和 ,没对象的格子的λconf设为0.1来训练网络,以在网络的早期阶段得到更可靠的置信度估计
3.设置置信度函数的 α 为2 和距离阈值为30个像素
4.使用随机梯度下降作优化
5.开始时学习率为0.01,每100次迭代降低10倍
6.避免过拟合,使用大量的数据增强(随机调整色彩、饱和、亮度,随机压缩转换图像尺寸)
实验
数据集
LineMod
OCCLUSION
评估标准
二维投影误差:预测的角点2D投影与实际点之间平均距离小于5个像素才可以接受
IoU评分:预测与实际3D模型投影的重叠部分,大于0.5才接受
模型顶点的平均三维距离:3D实际网格顶点与预测的顶点之间的平均距离要小于对象直径的10%才合格