在自动驾驶及机器人操作领域须要对目标进行判断与定位,并对目标在三维空间的旋转角度进行判断.传统的二维图像识别无法获取对应信息,六自由度(6D)姿态估计可以较好地解决此类问题.这些场景对姿态识别速度和精度提出了相当高的要求,与此同时,在实际应用中存在着多种干扰条件(例如光照强度低、目标物体背景复杂、目标被遮挡等),这些都给姿态识别带来了难度,本研究针对姿态估计应用中的难点进行了分析.目前,姿态估计可以分为以下三个类别:基于点对特征(PPF)方法,基于点云的方法,基于卷积神经网络(CNN)的姿态估计方法.基于点对特征方法是一种基于点对特征广义霍夫变换的三维推广方法,Birdal等将目标检测与一个由粗到精的分割结合起来,并采用加权霍夫投票和插值恢复的位姿参数进行匹配,最后通过一个遮挡感知排序对生成的假设进行检验和排序[1].Liu等首先通过线下阶段构建模型描述的哈希表,之后通过线上阶段识别场景中的目标实例,最后借助迭代最近点(ICP)算法对位姿进行优化[2].该类算法面对轻微形变及遮挡具有高鲁棒性、抗噪声干扰能力强的特点,但面对缺乏纹理的姿态估计场景,则无法很好地对目标姿态进行提取,具有很高的参数空间维度、空间复杂度及时间复杂度.基于点云的方法将点云与整个形状对齐,获取六自由度(6D)姿态[3].Zeng等提出了一个数据驱动的模型3DMatch,该模型学习局部体块描述符以建立部分三自由度(3D)数据之间的对应关系[4].Pais等提出了一种三维扫描配准的深度学习算法3DRegNet,可以实现将点对应关系分类为正确或错误的点对应关系[5].通常情况下,先进行粗配准来实现初始对准,之后采取密集配准方式,例如迭代最近点方法,进而获取最终六自由度姿态[6],其具有可以保留原始几何信息及不须要离散化的特点,但其须要耗费大量的计算资源.基于卷积神经网络的姿态估计方法可以分为回归和映射两种策略,回归策略基于卷积神经网络生成连续的姿态参数和目标视角,其中的典型代表有Kehl等提出的SSD-6D[7],通过固态硬盘(SSD)结构预测目标的方向与二自由度边界框,并依据已知边界信息估计目标的深度信息,将二自由度输出信息提升为六自由度信息.基于回归策略的卷积神经网络姿态估计算法,通常要在后期进行优化来提高姿态估计的精度,这个过程带来了较大的运算复杂度.本研究是在已知目标三自由度模型的情况下进行姿态估计,因此选用基于映射策略的卷积神经网络姿态估计算法,该方法通过关键点学习来预测红绿蓝(RGB)图像与三自由度模型之间的映射关系,构建三自由度边界框并预测其在二自由度图像上的投影位置后,使用EPnP算法计算六自由度姿态.Tekin等把预测六自由度姿态问题转为预测9个坐标点的问题,之后通过PnP方法由坐标点估计六自由度姿态[8].此类方法在有遮挡情况下表现较差,因此重新设计基于YOLO V3框架的卷积神经网络来解决这个问题,提高了算法预测精度和速度.本研究在传统YOLO六自由度算法基础上,融合YOLO V3框架与注意力模块作为检测网络,直接对输入的二自由度图片进行射影顶点预测,并采用基于随机样本一致性(RANSAC)算法的EPnP算法估计目标的姿态.在LineMod数据集[9]和Occlusion LineMod数据集[10]上进行测试,基于单个目标进行对比实验,本文方法运行速度优于其他方法,且在精度上对比原算法有较大提升.1 姿态识别算法1.1 检测网络优化为了更好地对背景复杂且存在遮挡的目标进行姿态估计,本研究选择YOLO V3[11-12]融合注意力模块作为检测网络.首先预测目标物体三维边界框顶点的二维投影位置,然后使用基于随机样本一致性算法的EPnP算法计算目标物体的六自由度姿态.通过9个特征点对目标物体的位置和姿态进行描述,其中包括8个三自由度包络框角点及物体中心点.网络输入为单张RGB图像,将图像均匀划分为S×S个规则单元,每个单元可输出一个多维向量,向量存放着9个特征点的坐标信息、目标物体分类概率及整体置信度.检测网络的组成框架如图1所示,其包含三个预测特征层Box1,Box2及Box3,网络输入大小为416×416的RGB图像,特征层Box1须要经过SENet网络[13-14]形成注意力机制,其通过损失函数学习特征权重,获取每个特征图的重要程度,加大有效特征图权重,同时降低无效特征图权重,使模型变得更优,SENet网络的注意力机制主要由挤压(squeeze)和激发(excitation)两部分组成.10.13245/j.hust.238897.F001图1检测网络框图挤压操作对空间维度上的特征压缩,得到1×1×C的通道描述,将一个通道上的空间信息缩略成一个全局特征,获取数量为C的全局特征,这通过全局池化来实现,过程如下式所示S=1H×W∑i=1H ∑j=1π X(i, j),式中:X为输入图像;H和W为图片的长和宽.在激发阶段须要对全局特征间的非线性关系进行学习,选用Relu激活函数来增加非线性变化,同时在进行Relu操作前后分别添加两个全连接层.前全连接层负责参数压缩,后全连接层负责恢复原始维度,使用Sigmoid函数获取各个通道上全局特征的权重,将得到的权重系数与原始特征图像相乘,得到最终的特征图.添加注意力机制后,能够降低复杂背景对目标物体识别的影响.之后再经特征提取器(convolutional set)分成两支,其中一支经卷积得到13×13的第一个预测特征层,使用1×1卷积核预测器进行预测,另外一支通往另一个卷积层,再经上采样,高和宽会变成原来的2倍(即26×26),并与网络中Box2内残差网络的输出进行融合.与此同时,拼接后的矩阵也经特征提取器处理,分为两个分支,其中一支通向第二个预测特征层,另一支通往1×1卷积层,进行上采样,高宽均变为52,再与Box3内残差网络的输出融合.融合结果通过特征提取器,再经卷积得到第三个预测特征层.此操作目的是对目标物体的局部特征进行提取,因为其具有三个不同尺度的预测特征层,可以加强对被遮挡物体的预测能力.1.2 位姿估计方法将图像均匀划分为S×S(13×13)个规则单元,当对9个关键点进行预测时,须要将形心点限制在单元内,这个过程中并不关注其他的角点.对每个单元的置信度进行计算,选择置信度最高的单元(红色区域),以该单元为基点选取3×3正方形单元群(黄色区域).如图2所示,置信度最高的单元可能出现在图像边缘、图像内部及图像角点,单元群选择也依次对应图2三种方式.对单元群内每个单元都进行8个关键点的预测,对单元群内所有单元的估计结果进行基于随机样本一致性算法的EPnP位姿估计,随机样本一致性算法使用投票机制来寻找优化的拟合结果,其计算参数没有时间上限,须要进行设置.相较于原始的位姿估计方法,此步骤运算复杂度会有一定程度增加,但能够提升检测精确度.10.13245/j.hust.238897.F002图2单元群选择示意图2 损失函数及置信度函数2.1 损失函数姿态估计网络输出信息有目标类别概率、九个特征点坐标及置信度评分,本研究通过以下损失函数进行网络训练L=λptLpt+λconf Lconf +λidLid,(1)式中:L为损失函数;Lpt为坐标损失;Lconf为置信度损失;Lid为类别损失;λpt,λconf 和λid分别为坐标损失函数权重、置信度损失函数权重和分类损失函数权重.损失函数由坐标损失函数ℒpt、置信度损失函数ℒconf 和类别损失函数ℒid三部分组成,前面的系数表示权重.坐标损失和置信度损失使用均方差函数进行计算,分类损失则使用交叉熵进行计算.训练初期对置信度的预测精度较低,开始时须要将λconf 设置为0,随着训练深入再将包含目标物体的单元的λconf 设置为5,不包含目标物体的单元的λconf 设置为0.1.与此同时,坐标损失函数权重λpt设置为1,分类损失函数权重同样设置为1.2.2 置信度函数在二维预测中,会根据目标物体置信度分数及交并比(Intersection over Union,IOU)进行筛选.在三维空间中同样要对目标物体的置信度进行分析,但三维空间下交并比计算难度较大,本研究基于欧式距离使用了置信度函数c(x)评估目标物体的预测姿态与真实姿态间的偏差情况,c(x)=exp α1-DTxdth /(eα-1) , (2)式中:DT(x)为欧式距离;dth为置信度函数像素阈值;α为c(x)函数锐利程度.3 实验设计及结果分析本实验的训练样本取自LineMod数据集,Linemod数据集是进行六自由度姿态估计的标准数据集,包含13个纹理较少的物体,共有1.578 3×104张图像,每个对象约有1 200张图像,数据集场景包括复杂背景和变化的光照条件等.数据集中的图像集每个成员都标记了平移距离、旋转角度及类别,并且数据集还包含目标物体的三自由度模型,另外还有拍摄每张照片对应的摄像头内参及深度缩放的比例.测试中使用了Occlusion LineMod数据集,这个数据集是对LineMod数据集的重新注释,包含8个物体,共有1 435张图像,图像中大部分目标存在部分遮挡.通常规则是基于LineMod数据集进行网络训练,之后在Occlusion LineMod数据集上进行测试,以评估算法在遮挡场景下的鲁棒性.实验的硬件配置为Intel Core i7处理器、32 GiB存储器、NVIDIA GTX2080Ti独立显卡.该实验选用基于Anaconda的pytorch框架实现神经网络模型,配置的CUDA版本为8.0,CUDNN版本为5.1.此类姿态估计容易出现过拟合现象,须要对数据集进行相关处理.本研究使用1.4倍因子随机对图像的亮度进行调整,并使用0.2的因子对图像进行平移或者旋转.距离阈值初始参数设置为30像素,学习率初始设置为0.001,每100个期间(epoch)学习率除以10,并且在训练期间采用批量归一化的方法对图像的大小进行调整,以提高对尺寸不一目标检测的鲁棒性.3.1 评估指标本研究使用二自由度投影指标[15]对预测精度进行评估,通过对比预测角点与真实标注角点的投影的平均距离对预测结果进行评估.如果平均距离少于5个像素,那么可以认为预测是正确的.二自由度重投影指标的定义为eREP=(Pi-TMμ)2, (3)式中:Pi为第i个像素的位置;T为相机矩阵;M为须要估计的目标姿态矩阵;μ为具有最大混合权重的像素分布平均值.3.2 姿态估计方法改进实验结果对比基于LineMod数据集,对仅改进姿态估计方法的算法进行了测试,将网络结构改进前后的检测准确率进行对比,改进后算法的测试结果如图3所示.本文算法对目标物体的姿态估计结果与真实姿态相似度较高,当场景中的光照条件发生变化时,依旧有较好的检测效果.如表1所示,依据二自由度投影误差指标与文献[8]原算法进行对比,平均精度提升了1.60%,检测准确度有一定提升.10.13245/j.hust.238897.F003图3LineMod数据集姿态估计结果10.13245/j.hust.238897.T001表1姿态估计方法改进前后姿态估计精度对比算法猿相机小猫鸭子胶水台灯手机平均值文献[8]95.8094.4196.7289.5796.5381.1272.0589.46本文96.2190.3798.3091.4696.6884.7679.6691.06%3.3 SENet应用实验结果对比基于Occlusion LineMod数据集,通过对比实验验证仅应用SENet对姿态估计效果的具体影响.Occlusion LineMod数据集中大部分目标的背景都较为复杂,并且存在不同程度的遮挡.依据二自由度投影误差指标,当距离阈值为30个像素时,对7个目标类别网络结构变更前后姿态估计效果进行对比,如表2所示,本文算法的二自由度投影精度达到66.83%,较网络结构改进前平均精度提升了3.73%.10.13245/j.hust.238897.T002表2SENet应用前后姿态估计精度对比算法猿相机小猫鸭子胶水台灯手机平均值文献[8]70.7284.7154.5778.2950.6255.4747.3463.10本文72.1478.1356.3178.4357.3972.1753.2366.83%3.4 检测网络优化实验结果对比基于Occlusion LineMod数据集,通过对比实验验证了添加SENet模块和更改检测网络对姿态估计效果的具体影响,改进后算法的测试结果如图4所示.10.13245/j.hust.238897.F004图4Occlusion LineMod数据集姿态估计结果依据二自由度投影误差指标,当距离阈值为30个像素时,对7个目标类别网络结构变更前后姿态估计效果进行对比,如表3所示,本文算法的二自由度投影精度达到69.87%,较网络结构改进前平均精度提升了6.77%,提升了检测准确度.10.13245/j.hust.238897.T003表3检测网络优化前后姿态估计精度对比算法猿相机小猫鸭子胶水台灯手机平均值文献[8]70.7284.7154.5778.2950.6255.4747.3463.10本文75.7980.1360.6382.9159.6271.3358.6569.87%3.5 综合实验结果对比为验证本研究提出的算法模型整体效果,将本文算法与原算法和目前广泛应用的姿态估计算法在Occlusion LineMod数据集上进行对比实验,当距离阈值为30个像素时,对7个目标类别网络结构变更前后姿态估计效果进行对比,检测精度见表4.其中BB8算法检测精度最高,平均精度为92.08%,但算法运行速度仅有2帧/s,PoseCNN算法检测精度为75.89%,运行速度为8帧/s,略快于BB8算法[16].文献[8]提出的原算法运行精度最低,但具有最快的运行速度(26帧/s).本文算法检测精度为72.30%,相对于文献[8]提出的算法精确度有了较大提升,接近PoseCNN算法[17]精确度,并且运行速度达到25帧/s,可以满足实时运行需求.通过调整检测网络结构和优化姿态估计方法,提升了对被遮挡物体的检测能力并提高了姿态估计准确率,相对于其他常见的姿态估计算法,性能更加优越.10.13245/j.hust.238897.T004表4常见算法姿态估计精度对比算法猿相机小猫鸭子胶水台灯手机平均值文献[16]95.6596.3797.9492.5189.6186.9585.5692.08文献[17]87.3785.2872.4684.4565.2471.2265.2375.89文献[8]70.7284.7154.5778.2950.6255.4747.3463.10本文82.6381.5863.8577.8662.8367.8969.4972.30%4 结论本研究提出了一种能应对复杂背景并且更精确的三维姿态估计算法,该算法基于YOLO-6D算法进行了两点优化:a. 将原算法中的YOLO V2检测网络更改为YOLO V3检测网络,同时添加了注意力机制,增强了对背景复杂并存在遮挡的物体的检测能力;b. 选择单元群进行基于随机样本一致性算法的EPnP姿态估计,提高了预测精度.实验表明本文提出的算法在具备较快的检测速度的同时,还具备可观的检测精度.依据二自由度投影指标,当距离阈值为30个像素时,本文算法在Occlusion LineMod数据集下精度为72.30%.后续研究将寻求完善网络来进一步提高姿态估计精度.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读
复制地址链接在其他浏览器打开
继续浏览