一种基于投影点坐标回归的六自由度位姿估计算法的制作方法

文档序号:16364129发布日期:2018-12-22 08:20阅读:322来源:国知局
一种基于投影点坐标回归的六自由度位姿估计算法的制作方法

本发明涉及数字图像处理技术领域,更具体的说是涉及三维立体视觉的数字图像处理技术。

背景技术

确定图像中物体相对于相机的三维平移和旋转变换参数(共六个自由度)是计算机视觉领域的经典问题。近年来,增强现实、自动驾驶以及视觉机器人等新兴应用的发展对六自由度位姿估计提出了更高的精度和速度的需求,学术界也针对这一需求进行了大量的研究工作。就输入数据的形式而言,现有算法主要可以分为基于rgb图像的位姿估计算法和基于rgbd数据的位姿估计算法。其中,基于rgbd数据的位姿估计算法由于深度信息的引入,可以更好地恢复场景结构,然而深度信息的获取需要消耗大量的能量,并且目前商用级别的深度相机所获取的深度信息通常会包含大量噪声和孔洞。因此,基于rgb图像的位姿估计算法在移动端和实时应用领域具有更加广泛的实际应用价值。

传统的基于rgb图像的六自由度位姿估计算法主要依靠关键点和线的匹配来建立图像与三维模型之间的2d-3d特征对应关系,然后基于2d-3d对应关系对投影误差函数进行优化实现对目标姿态参数的估计。这类方法适用于具有丰富纹理信息的物体和高质量图像,能够取得较高的位姿估计精度,然而对于纹理信息较弱的物体和存在遮挡、光照变化的场景,如何有效、准确地估计六自由度相对位姿仍然是一个十分具有挑战性的问题。

近年来,深度学习技术的引入,尤其以卷积神经网络(cnn)为代表,提升了六自由度位姿估计算法的性能。现有算法主要采取两种策略将cnn应用于位姿估计。第一种策略是直接用cnn回归连续的位姿参数或离散的视点位置。这些方法通常用于位姿初始化,需要进一步的位姿修正来提升位姿精度。第二种策略使用cnn预测2d-3d对应关系,既可以是预测二维图像块对应的三维坐标,也可以是预测物体三维模型点对应的二维图像坐标,其得益于卷积神经网络强大的特征学习和表示能力,以bb8算法为代表的第二类方法能够在复杂的、具有挑战性的场景下建立2d-3d对应关系,并且取得了当前最优的六自由度位姿估计精度。

而现有技术以bb8算法为代表,其流程图如图1所示。bb8算法采用多步处理方式,首先利用由粗到精的二级卷积神经网络进行图像分割,将目标与背景进行区分,确定目标的中心位置;在目标的中心周围截取图像块,输入第二个卷积神经网络,回归目标的三维边界框的八个顶点在图像块中的二维坐标;利用epnp算法根据获得的2d-3d对应关系计算六自由度位姿参数,最后通过一个修正网络进行位姿修正,得到位姿估计结果。

bb8算法采用多步处理方式,导致计算效率较低;多个卷积神经网络分别单独训练,无法针对位姿估计目标进行综合调优,导致位姿估计精度不高;位姿修正过程中涉及图像渲染等操作,计算复杂度高,导致算法的运行速度较慢;对于含有多个目标的场景,bb8算法需要对每一个物体实例进行单独计算,导致算法运行时间大幅提高。

因此,如何提供一种能够提高位姿估计精度和速度的算法是本领域技术人员亟需解决的问题。



技术实现要素:

有鉴于此,本发明提供了一种基于投影点坐标回归的六自由度位姿估计算法可以针对位姿估计目标进行端到端的训练和预测,使得网络中的所有参数针对位姿估计目标进行综合调优,相比于现有技术bb8算法的多步处理方式,能够在提升计算效率的同时提高位姿估计精度。

为了实现上述目的,本发明采用如下技术方案:

一种基于投影点坐标回归的六自由度位姿估计算法,包括以下步骤:

s1:输入rgb图像,利用目标三维模型计算出目标物体在三个维度上的尺寸信息,得到目标物体三维边界框的八个顶点的坐标;

s2:通过卷积神经网络对rgb图像进行训练,得到六个不同尺度的特征图以及特征图上每个位置的类别、类别得分、二维边界框和投影点坐标回归结果;

s3:对特征图上属于目标的实例,基于步骤s2得到的类别得分和二维边界框进行非极大抑制,得到图像目标实例的类别预测、二维边界框和投影点坐标回归结果;

s4:利用步骤s1的目标物体三维边界框的八个顶点的坐标以及步骤s3中图像目标实例的投影点坐标回归结果得到二维点与三维点之间的对应关系,epnp算法通过二维点与三维点之间的对应关系计算每一个目标实例相对于相机的六自由度位姿。

本发明提出的卷积神经网络可以针对位姿估计目标进行端到端的训练和预测,取代了bb8算法中的多步处理方式,同时提升了算法的计算效率和位姿估计精度,不需要进行计算复杂度高的位姿修正就可以取得当前最好的位姿估计精度,进一步节省了算法的运行时间,可以实现实时处理(约50fps)。在多目标场景下,只需要对检测到的每个物体实例进行一次epnp计算,不需要重复运行算法多次,运行时间提升不大。

进一步,通过卷积神经网络对rgb图像进行预测,得到六个不同尺度的特征图上每个位置的类别、类别得分、二维边界框以及投影点坐标回归结果的具体包括以下步骤:

s21:将rgb图像的尺寸调整为300×300像素;

s22:将步骤s21处理后的rgb图像输入残差50层网络,得到六个不同尺寸的特征图;

s23:在特征图上设定预设锚框,并利用卷积层对六个不同尺度的特征图进行目标预测与坐标回归,计算每个特征图上每个位置的类别、二维边界框预测结果以及投影点坐标预测值;

s24:计算预设锚框与每一个目标实例的真值二维边界框之间的交并比,交并比大于0.5的预设锚框作为正样本预设锚框,交并比小于0.4的预设锚框作为负样本预设锚框;

s25:通过在线难样本挖掘的方法使正样本预设锚框与负样本预设锚框的比例为1:3,并计算类别、二维边界框预测结果、投影点坐标预测值分别与训练目标值之间的误差,通过带动量的随机梯度下降法对卷积神经网络中的权重参数进行更新;

s26:若更新次数<45000,则返回至步骤s22中,并利用更新后的权重参数进行下一轮迭代更新;若更新次数等于45000,则迭代更新停止。

上述进一步技术方案的有益效果为:训练是使得卷积神经网络(机器学习算法)针对特定任务实现性能提升的必要手段,训练可以看作一个根据误差梯度调整卷积神经网络中的权重参数使得损失函数逐渐减小的优化过程,训练的目的就是调整权重参数使其更准确地实现类别预测、二维边界框以及投影点坐标回归任务。

进一步,将步骤s21处理后的rgb图像输入残差50层网络,得到六个不同尺寸的特征图具体步骤包括:

s221:将rgb图像输入到残差50层网络stage1~stage4中,得到的维度为38x38x1024的第一张特征图;

s222:将第一张特征图通过残差50层网络的stage5,得到的维度为19x19x2048的第二张特征图;

s223:利用256个1x1卷积对第二张特征图进行卷积,再经过512个3x3的卷积得到维度为10x10x512的第三张特征图;

s224:将第三张特征图依次经过128个1x1的卷积和256个3x3的卷积得到维度为5x5x256的第四张特征图;

s225:将第四张特征图依次经过128个1x1的卷积和256个3x3的卷积得到维度为3x3x256的第五张特征图;

s226:将第五张特征图依次再经过128个1x1的卷积和256个3x3的卷积得到维度为1x1x256的第六张特征图。

进一步,在特征图上设定预设锚框,并利用卷积层对六个不同尺度的特征图进行目标预测与坐标回归,得到每个特征图上每个位置的类别、二维边界框预测结果以及投影点坐标预测值的具体步骤为:

s231:在六个不同尺寸的特征图的每一点生成预设锚框;

s232:对于第i个特征图,i∈{1,2,3,4,5,6},其维度为wi×hi×channeli,经过一组卷积核的个数为nanchor×(npt×2+a+c+1)的卷积运算后得到预测结果的维度为wi×hi×[nanchor×(npt×2+a+c+1)],其中,nanchor表示特征图上每一点的预设锚框数目,每一个预设锚框的预测结果是一个长度为npt×2+a+c+1的向量,npt×2表示预测出的投影点数目,a=(predbbox_centerx,predbbox_centery,predbbox_width,predbbox_height)表示预测出的二维边界框相对于预设锚框的中心点、宽和高的修正值,c+1=(x0,x1,…,xc)表示预设锚框中目标所属类别的预测,x0表示对背景类别的预测;

s33:假定预设锚框的中心点为(anchorcenterx,anchorcentery),宽和高分别为anchorwidth和anchorheight,每一个投影点的预测修正值为(predptx,predpty),则预测出的投影点坐标计算如下:

根据预测出的二维边界框相对于预设锚框的中心点以及宽高的修正值(predbbox_centerx,predbbox_centery,predbbox_width,predbbox_height),计算预测出的二维边界框的中心点以及宽高,计算公式如下:

利用softmax函数将输出的的类别预测结果转化为归一化的概率:

通过公式(3)可以判定预设锚框的类别,同时将该类别的概率作为类别得分。

进一步,通过在线难样本挖掘的方法使正样本预设锚框与负样本预设锚框的比例为1:3,并计算类别、二维边界框预测结果和投影点坐标的预测值分别与训练目标值之间的误差,并通过带动量的随机梯度下降法对卷积神经网络中的权重参数进行更新的具体步骤为:

通过在线难样本挖掘的方法使正样本预设锚框与负样本预设锚框的比例为1:3;对于正样本锚框,卷积神经网络训练目标值包括目标类别、二维边界框偏移量以及投影点坐标偏移量;其中,二维边界框中心点坐标、宽和高的偏移量计算公式如下:

其中gtcenterx,gtcentery,gtwidth,gtheight分别表示真值二维边界框中心点的x,y坐标以及宽高,anchorcenterx,anchorcentery,anchorwidth,anchorheight分别表示预设锚框的中心点的x,y坐标以及宽高;

投影点坐标偏移量计算方式如下:

其中gtcoordinatex,gtcoordinatey分别代表投影点x,y坐标的真值;

对于负样本锚框,卷积神经网络训练目标值为类别;

设一组正样本预设预设锚框pos和负样本预设锚框neg,训练网络采用的损失函数为:

其中lconf代表针对分类问题的分量,采用softmaxcrossentropy损失函数;lloc代表针对边界框偏移量的分量,采用smoothl1norm损失函数;lpt代表针对投影点坐标偏移量的分量,采用smoothl1norm损失函数;α和β表示权重系数;

利用公式(6)计算卷积神经网络预测值与训练目标值之间的误差,再通过带动量的随机梯度下降法对网络中的权重参数进行更新。

进一步,对特征图上属于目标的实例,基于s2得到的类别得分和二维边界框进行非极大抑制的具体步骤为:

根据卷积神经网络预测出的每一个非背景的目标实例,计算与其同类别的其它二维边界框的交并比;交并比大于0.5时,保留类别得分高的预测,去除类别得分低的预测。

上述进一步技术方案的有益效果:非极大抑制能够去除大量冗余的、相互重叠的预测,只保留置信度最高的一部分预测。

经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于投影点坐标回归的六自由度位姿估计算法,具有以下优点:

(1)可以对位姿估计目标进行端到端训练,取代现有技术bb8算法中的多步处理方式,使得卷积神经网络可以针对位姿估计目标进行综合调优,能够同时提升计算效率和位姿估计精度;

(2)本发明在不需要位姿修正的情况下就可以得到优于现有技术bb8算法的位姿估计精度,因此降低了算法的计算量,节省运行时间,可以实现实时处理;

(3)在多目标场景下运算时间增加不大,并且对于物体之间的遮挡和场景光照变化具有一定的鲁棒性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1附图为现有bb8算法的流程图。

图2附图为本发明的算法流程图。

图3附图为本发明算法在单目标场景下的位姿估计结果图。

图4附图为本发明算法在多目标场景下的位姿估计结果图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种端到端训练的卷积神经网络对六自由度位姿估计的算法,使得网络中的所有参数针对位姿估计目标进行综合调优,相比于现有技术bb8算法的多步处理方式,能够在提升计算效率的同时提高位姿估计精度。

本发明与现有技术的位姿估计精度对比结果见表1,在不需要位姿修正的情况下,本发明算法的位姿估计精度就已经明显高于现有技术。也正是由于不需要进行计算复杂度高的位姿修正步骤,本发明算法能够达到较高的运行速度,见表2,约为每秒处理50张图像,可以实现实时处理。

图3与图4展示了本发明算法在单目标场景(linemod数据集)和多目标场景(occlusion数据集)下的位姿估计结果。可以得出,本发明算法对于物体之间的遮挡情况以及场景的光照变化都具有一定的鲁棒性。

表1

表1为本发明与现有技术在linemod数据集上的位姿估计精度对比,表中数值为旋转角度误差小于5°且平移量误差小于5cm的图像数目占测试集中图像总数的百分比,该数值越高表示位姿估计精度越高。

表2

表2为本发明算法与现有技术的运行速度对比。

本发明在单步目标检测算法(ssd)的基础上针对位姿估计问题进行扩展,借鉴bb8算法回归投影点位置的方式,对于每个检测到的感兴趣物体回归三维边界框顶点的投影坐标,再利用epnp算法计算六自由度位姿参数。其具体步骤为:

s1:输入rgb图像,利用目标三维模型计算出目标物体在三个维度上的尺寸信息,即长、宽、高,进而得到目标物体三维边界框的八个顶点的坐标;

s2:将rgb图像的尺寸调整为300×300像素;

s3:将步骤s21处理后的rgb图像依次输入残差50层网络中的stage1~stage4和stage5,分别得到第一张特征图和第二张特征图,在stage5之后添加4组额外的卷积层,第二张特征图依次添加到4组额外的卷积层上进行降采样,依次得到第三张特征图、第四张特征图、第五张特征图和第六张特征图;

残差50层网络包含49个卷积层和最后的一个全连接层,本发明利用49个卷积层(即stage1~5),其中,stage1包含第一个卷积层,一个批归一化层,一个非线性激活层以及一个最大池化层,本发明去掉最大池化层,以在网络结构中保持较大的空间分辨率;stage2~5是由残差块组成,残差块的个数分别为[3,4,6,3],每一个残差块中包含3个卷积层;

具体的:

s31:将rgb图像输入到残差50层网络stage1~stage4中,得到的维度为38x38x1024的第一张特征图,;

s32:将第一张特征图通过残差50层网络的stage5,得到的维度为19x19x2048的第二张特征图;

s33:利用256个1x1卷积对第二张特征图进行卷积,再经过512个3x3的卷积得到维度为10x10x512的第三张特征图;

s34:将第三张特征图依次经过128个1x1的卷积和256个3x3的卷积得到维度为5x5x256的第四张特征图;

s35:将第四张特征图依次经过128个1x1的卷积和256个3x3的卷积得到维度为3x3x256的第五张特征图;

s36:将第五张特征图依次再经过128个1x1的卷积和256个3x3的卷积得到维度为1x1x256的第六张特征图;

s4:在特征图上设定预设锚框,预设锚框是以特征图上每一点为中心、按照一定的尺寸和长宽比例设置的二维边界框结构,用于回归目标真值二维边界框以及投影点坐标。在本发明中,六个不同尺度的特征图上的预设锚框的尺寸分别为[0.1,0.14],[0.2,0.27],[0.37,0.45],[0.54,0.62],[0.71,0.79],[0.88,0.96](均为相对于特征图短边的比例),长宽比例均为1:1,2:1,1:2。。具体地,首先固定一个比例r1,采样2个不同的尺寸s1和s2;然后固定尺寸s1,采样2个长宽比r2和r3,由此在每个特征图的每个位置上生成4个预设锚框。

对于第i个特征图,i∈{1,2,3,4,5,6},其维度为wi×hi×channeli,经过一组卷积核的个数为nanchor×(npt×2+a+c+1)的卷积运算后得到预测结果的维度为wi×hi×[nanchor×(npt×2+a+c+1)],即在该特征图的wi×hi中的每一个二维空间位置上,对应一个长度为nanchor×(npt×2+4+c+1)的预测结果向量,其中,nanchor表示特征图上每一点的预设锚框数目,在本实施例中,nanchor=4,每一个预设锚框的预测结果是一个长度为npt×2+a+c+1的向量,npt×2表示预测出的投影点数目,在本实施例中,npt=8,a=(predbbox_centerx,predbbox_centery,predbbox_width,predbbox_height)表示预测出的二维边界框相对于预设锚框的中心点、宽和高的修正值,c+1=(x0,x1,…,xc)表示预设锚框中目标所属类别的预测,x0表示对背景类别的预测;

s5:假定预设锚框的中心点为(anchorcenterx,anchorcentery),宽和高分别为anchorwidth和anchorheight,每一个投影点的预测修正值为(predptx,predpty),则预测出的投影点坐标计算如下:

根据预测出的二维边界框相对于预设锚框的中心点以及宽高的修正值(predbbox_centerx,predbbox_centery,predbbox_width,predbbox_height),计算预测出的二维边界框的中心点以及宽高,计算公式如下:

利用softmax函数将输出的类别预测转化为归一化的概率:

通过公式(3)可以判定预设锚框的类别,同时将该类别的概率作为类别得分;

s6:计算预设锚框与人为标注的每一个目标实例的真值二维边界框之间的交并比,交并比大于0.5的预设锚框作为正样本预设锚框,交并比小于0.4的预设锚框作为负样本预设锚框;

s7:通过在线难样本挖掘的方法使正样本预设锚框与负样本预设锚框的比例为1:3;具体的,在线难样本挖掘方法是指在迭代训练过程中,执行预测过程后得到卷积神经网络对所有预设锚框的类别、二维边界框预测结果以及投影点坐标预测值,对于所有非正样本的预设锚框,按照卷积神经网络预测出的属于背景的概率升序排序,取排名靠前的一部分作为负样本预设锚框的数目。

对于正样本锚框,卷积神经网络训练目标值包括目标类别、二维边界框偏移量以及投影点坐标偏移量;其中,二维边界框中心点坐标、宽和高的偏移量计算公式如下:

其中gtcenterx,gtcentery,gtwidth,gtheight分别表示边界框真值的中心点的x,y坐标以及宽高,anchorcenterx,anchorcentery,anchorwidth,anchorheight分别表示预设锚框的中心点的x,y坐标以及宽高;

投影点坐标偏移量计算方式如下:

其中gtcoordinatex,gtcoordinatey分别代表投影点x,y坐标的真值;

对于负样本锚框,卷积神经网络训练目标值为类别;

设一组正样本预设预设锚框pos和负样本预设锚框neg,训练网络采用的损失函数为:

其中lconf代表针对分类问题的分量,采用softmaxcrossentropy损失函数;lloc代表针对边界框回归的分量,采用smoothl1norm损失函数;lpt代表针对投影点坐标回归的分量,采用smoothl1norm损失函数;α和β表示权重系数,在本实施例中,将α设置为1,β设置为10;

利用公式(6)计算网络预测值与训练目标值之间的误差,再通过带动量的随机梯度下降法对网络中的权重参数进行更新;训练时采用的带动量的随机梯度下降法,初始学习率为0.001,动量为0.9,权重衰减为0.0005,批量大小为8,共迭代更新网络参数45000次,并在第30000次更新和第40000次更新后将学习率降低至原来的十分之一。需要说明的是,卷积神经网络更新的参数是指卷积层中卷积核的取值。

s8:若更新次数<45000,则返回至步骤s3中,并利用更新后的权重参数进行下一轮迭代更新;若更新次数等于45000,则迭代更新停止。

本发明的训练流程为:先执行一次前向传播(rgb图像到步骤s3再到步骤s5),得到网络对于每个特征图上每个位置的类别、二维边界框预测结果以及投影点坐标的预测值,然后利用公式(6)计算卷积神经网络预测值与训练目标值之间的误差,误差包括投影点目标偏移量、二维边界框偏移量和类别误差,再通过带动量的随机梯度下降法对网络中的权重参数进行更新,使得误差减小;接下来进行下一次迭代,即使用更新后的网络参数执行前向传播,计算预测值与目标值的误差,继续更新网络权重参数。

s9:根据卷积神经网络预测出的每一个非背景的目标实例,计算与其同类别的其它二维边界框的交并比;交并比大于0.5时,保留类别得分高的预测,去除类别得分低的预测,得到得到图像目标实例的类别预测、二维边界框和投影点坐标回归结果;

需要说明的是,同类别是指:与特征图上其中一个目标实例为相同类别的二维边界框。

s10:利用步骤s1的目标物体三维边界框的八个顶点的坐标以及步骤s9中图像目标实例的投影点坐标回归结果得到二维点与三维点之间的对应关系,epnp算法通过二维点与三维点之间的对应关系计算每一个目标实例相对于相机的六自由度位姿。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1