一种基于深度学习的点云物体姿态估计方法、装置及其设备转让专利

申请号 : CN201810800385.8

文献号 : CN108961339B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐楷冯良炳陈先开

申请人 : 深圳辰视智能科技有限公司

摘要 :

本发明实施例提供一种基于深度学习的点云物体姿态估计方法、装置及其设备,所述方法包括:获取需要学习的数据;网络模型的设计;模型的训练及预测。网络模型的设计包括:将点云物体姿态估计问题建模为无区别的多分类问题;设计残差块结构来提取特征;将提取的特征通过最大池化层获取全局特征;将全局特征分别送入三个并行的多层感知机做坐标轴的预测类别得分;使用分类器对坐标轴做预测类别得分后的特征做最后的类别预测;对经过分类器处理后得到的损失值进行等权重的求和,并将此和作为整体的多分类损失函数;使用适应性矩估对多分类损失函数进行优化。本发明所述方法能精确地对点云物体姿态进行评估,以提高对物体姿态定位及预测的精准性。

权利要求 :

1.一种基于深度学习的点云物体姿态估计方法,其特征在于,包括步骤:获取需要学习的数据;

网络模型的设计;

模型的训练;

模型的预测;

其中,所述网络模型的设计具体包括:

将点云物体姿态估计问题建模为无区别的多分类问题;

设计残差块结构来提取点云物体的特征;

将经过所述残差块结构获取的特征通过最大池化层获取全局特征;

将经过最大池化层获取的所述全局特征分别送入三个并行的多层感知机做坐标轴的预测类别得分;

使用分类器对分别经过所述多层感知机做坐标轴的预测类别得分后的特征做最后的类别预测;

对经过所述三个并行分类器处理后得到的损失值进行等权重的求和,并将此和作为整体的多分类损失函数;

使用适应性矩估计对多分类损失函数进行优化,所述设计残差块结构来提取点云物体的特征包括步骤:网络输入首先通过第一卷积层做卷积操作输出特征图;

将第一卷积层做卷积操作输出特征图输入第二卷积层做卷积操作输出特征图;

将第二卷积层做卷积操作输出的特征图分别通过Block1和Block2;

其中,Block1包含三个卷积层,Block2包含两个卷积层;

其数学原理公式为:

y=σ(wTx+b);                     1y1=σ(w1Ty+b1+y);                2y2=σ(w2Ty1+b2+y1);              3y3=σ(w3Ty2+b3+y2);              4y4=σ(w4Ty3+b4+y3);              5y5=σ(w5Ty4+b5+y4);              6其中“σ”表示激活函数,对应函数Relu:max{0,x};

“x”表示网络的原始输入;

“y”表示第0层卷积网络层的输出结果同时也是下一层卷积层的输入的一部分,“y1,y2,y3,y4,y5”含义与“y”相同,其中不同的数字表示处于不同的卷积层,卷积层序数从0开始计数;

“wT”表示卷积层权重矩阵,即与当前卷积层的输入做矩阵叉乘;

“b”代表偏置参数。

2.根据权利要求1所述的基于深度学习的点云物体姿态估计方法,其特征在于,所述使用分类器对分别经过所述多层感知机做坐标轴的预测类别得分后的特征做最后的类别预测包括:使用交叉熵损失函数作为分类器,进行最后的类别预测,公式如下:公式10为softmax计算公式,用于计算网络的前向传播最终得分;

公式11为损失函数,其中“b”代表批尺寸batch size。

3.根据权利要求1所述的基于深度学习的点云物体姿态估计方法,其特征在于,所述将经过最大池化层获取的全局特征分别送入三个并行的多层感知机做坐标轴的预测类别得分,包括步骤:三个多层感知机分别预测X轴或Y轴或Z轴的类别得分;从数学的角度看三个并行的多层感知机满足轮换对称性,对应数学公式为:y6x=σ(y5×w6x+b6x);               7-1y7x=σ(y6x×w7x+b7x);              7-2y8x=(y7x×w8x+b8x);               7-3y6y=σ(y5×w6y+b6y);               8-1y7y=σ(y6y×w7y+b7y);              8-2y8y=(y7y×w8y+b8y);               8-3y6z=σ(y5×w6z+b6z);               9-1y7z=σ(y6z×w7z+b7z);              9-2y8z=(y7z×w8z+b8z);               9-3其中,“σ”表示激活函数,对应函数Relu:max{0,x};

公式7-1、7-2、7-3表示x轴预测角度的全连接层连接方式的数学公式;

公式8-1、8-2、8-3表示y轴预测角度的全连接层连接方式的数学公式;

公式9-1、9-2、9-3表示z轴预测角度的全连接层连接方式的数学公式。

4.根据权利要求1所述的基于深度学习的点云物体姿态估计方法,其特征在于,所述获取需要学习的数据,具体包括步骤:从数据集中选择点云物体文件;

将选取的点云物体文件.off文件类型转换为.obj文件类型;

将.obj文件作为X、Y、Z轴旋转角度都为0的数据文件导出,并重新以旋转角度为文件名

000.obj命名进行保存;

将.obj文件包含的点云物体同时绕X、Y、Z坐标轴旋转来获取不同角度的数据文件,同时导出旋转后的数据文件并记录数据文件对应的旋转角度,并以旋转角度作为文件名命名的数据文件作为训练标签;

将旋转后获取不同角度的大量数据文件进行洗牌并整理成.h5文件;

将获得的数据文件按照比例划分为训练集、验证集和测试集。

5.根据权利要求4所述的基于深度学习的点云物体姿态估计方法,其特征在于,所述将获得的数据文件按照比例划分为训练集、验证集和测试集步骤具体包括:将获得的数据文件按照7:1:2的比例划分为训练集、验证集和测试集。

6.根据权利要求1所述的基于深度学习的点云物体姿态估计方法,其特征在于,所述模型的训练,具体包括步骤:对模型进行监督训练,通过观察训练集与验证集的错误率变化趋势来判断决定是否提前结束网络训练;

利用训练好的网络模型在测试集上进行评估,并获取评估结果;

对评估结果进行分析,对于评估结果准确率低的模型有针对性的修改网络结构并进行重新训练模型,对于评估结果准确率高的模型重新分析模型的优点。

7.根据权利要求1~6任一项所述的基于深度学习的点云物体姿态估计方法,其特征在于,所述模型的预测具体包括步骤:收集需要预测的点云数据;

将收集的数据格式转换为.h5格式,以适应网络的输入;

根据训练好的模型参数,将需要预测的数据在训练好的模型上运行一遍,从而得到网络预测结果并将网络预测结果作为真实的物体姿态信息。

8.一种基于深度学习的点云物体姿态估计装置,应用于权利要求1至7任一项所述的基于深度学习的点云物体姿态估计方法,其特征在于,所述装置包括:数据获取模块,用于获取需要学习的数据;

网络模型设计模块,用于设计需要解决的问题的网络模型;

模型训练模块,根据设计的网络模型进行训练、评估及进行模型改进;

模型预测模块,用于根据训练好的模型参数预测物体姿态信息。

9.一种基于深度学习的点云物体姿态估计设备,其特征在于,包括处理器、计算机可读存储介质以及在所述计算机可读存储介质上存储的计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法中的步骤。

说明书 :

一种基于深度学习的点云物体姿态估计方法、装置及其设备

技术领域

[0001] 本发明涉及计算机视觉领域,尤其涉及一种基于深度学习的点云物体姿态估计方法、装置及其设备。

背景技术

[0002] 目前,在对3D点云的深度学习方法的研究中,3D点云往往会被投影到2D平面或被转化为3D体素以适应卷积神经网络的高度规则化的输入数据格式,但在数据的转换操作过程中往往会引入人为噪声,为去除人为噪声往往会增加计算量,过程较为繁杂,且人为噪声的引入会严重影响对物体姿态评估的准确性,从而导致现有对物体姿态的评估的准确率都不高,导致严重影响该技术在应用领域的效果。

发明内容

[0003] 有鉴于此,本发明的目的在于提供一种基于深度学习的点云物体姿态估计方法、装置及其设备,旨在能精确地对点云物体姿态进行评估,以提高对物体姿态定位及预测的精准性。
[0004] 本发明解决上述技术问题所采用的技术方案如下:
[0005] 本发明的第一方面提供一种基于深度学习的点云物体姿态估计方法,该方法包括步骤:
[0006] 获取需要学习的数据;
[0007] 网络模型的设计;
[0008] 模型的训练;
[0009] 模型的预测;
[0010] 其中,所述网络模型的设计具体包括:
[0011] 将点云物体姿态估计问题建模为无区别的多分类问题;
[0012] 设计残差块结构来提取点云物体的特征;
[0013] 将经过所述残差块结构获取的特征通过最大池化层获取全局特征;
[0014] 将经过最大池化层获取的所述全局特征分别送入三个并行的多层感知机做坐标轴的预测类别得分;
[0015] 使用分类器对分别经过所述多层感知机做坐标轴的预测类别得分后的特征做最后的类别预测;
[0016] 对经过所述三个并行分类器处理后得到的损失值进行等权重的求和,并将此和作为整体的多分类损失函数;
[0017] 使用适应性矩估计对多分类损失函数进行优化。
[0018] 在一些实施例中,所述使用分类器对分别经过所述多层感知机做坐标轴的预测类别得分后的特征做最后的类别预测包括:
[0019] 使用交叉熵损失函数作为分类器,进行最后的类别预测,公式如下:
[0020]
[0021]
[0022] 公式10为softmax计算公式,用于计算网络的前向传播最终得分;
[0023] 公式11为损失函数,其中“b”代表批尺寸batch size。
[0024] 在一些实施例中,所述设计残差块结构来提取点云物体的特征包括步骤:
[0025] 网络输入首先通过第一卷积层做卷积操作输出特征图;
[0026] 将第一卷积层做卷积操作输出特征图输入第二卷积层做卷积操作输出特征图;
[0027] 将第二卷积层做卷积操作输出的特征图分别通过Block1和Block2;
[0028] 其中,Block1包含三个卷积层,Block2包含两个卷积层;
[0029] 其数学原理公式为:
[0030] y=σ(wTx+b);   1
[0031] y1=σ(w1Ty+b1+y);    2
[0032] y2=σ(w2Ty1+b2+y1);   3
[0033] y3=σ(w3Ty2+b3+y2);   4
[0034] y4=σ(w4Ty3+b4+y3);   5
[0035] y5=σ(w5Ty4+b5+y4);   6
[0036] 其中“σ”表示激活函数,对应函数Relu:max{0,x};
[0037] “x”表示网络的原始输入;
[0038] “y”表示第0层卷积网络层的输出结果同时也是下一层卷积层的输入的一部分,“y1,y2,y3,y4,y5”含义与“y”相同,其中不同的数字表示处于不同的卷积层,卷积层序数从0开始计数;
[0039] “wT”表示卷积层权重矩阵,即与当前卷积层的输入做矩阵叉乘;
[0040] “b”代表偏置参数。
[0041] 在一些实施例中,所述将经过最大池化层获取的全局特征分别送入三个并行的多层感知机做坐标轴的预测类别得分,包括步骤:
[0042] 三个多层感知机分别预测X轴或Y轴或Z轴的类别得分;从数学的角度看三个并行的多层感知机满足轮换对称性,对应数学公式为:
[0043] y6x=σ(y5×w6x+b6x);    7-1
[0044] y7x=σ(y6x×w7x+b7x);   7-2
[0045] y8x=(y7x×w8x+b8x);    7-3
[0046] y6y=σ(y5×w6y+b6y);    8-1
[0047] y7y=σ(y6y×w7y+b7y);   8-2
[0048] y8y=(y7y×w8y+b8y);    8-3
[0049] y6z=σ(y5×w6z+b6z);    9-1
[0050] y7z=σ(y6z×w7z+b7z);   9-2
[0051] y8z=(y7z×w8z+b8z);    9-3
[0052] 其中,“σ”表示激活函数,对应函数Relu:max{0,x};
[0053] 公式7-1、7-2、7-3表示x轴预测角度的全连接层连接方式的数学公式;
[0054] 公式8-1、8-2、8-3表示y轴预测角度的全连接层连接方式的数学公式;
[0055] 公式9-1、9-2、9-3表示z轴预测角度的全连接层连接方式的数学公式。
[0056] 在一些实施例中,所述获取需要学习的数据,具体包括步骤:
[0057] 从数据集中选择点云物体文件;
[0058] 将选取的点云物体文件.off文件类型转换为.obj文件类型;
[0059] 将.obj文件作为X、Y、Z轴旋转角度都为0的数据文件导出,并重新以旋转角度为文件名000.obj命名进行保存;
[0060] 将.obj文件包含的点云物体同时绕X、Y、Z坐标轴旋转来获取不同角度的数据文件,同时导出旋转后的数据文件并记录数据文件对应的旋转角度,并以旋转角度作为文件名命名的数据文件作为训练标签;
[0061] 将旋转后获取不同角度的大量数据文件进行洗牌并整理成.h5文件;
[0062] 将获得的数据文件按照比例划分为训练集、验证集和测试集。
[0063] 在一些实施例中,所述将获得的数据文件按照比例划分为训练集、验证集和测试集步骤具体包括:将获得的数据文件按照7:1:2的比例划分为训练集、验证集和测试集。
[0064] 在一些实施例中,所述模型的训练,具体包括步骤:
[0065] 对模型进行监督训练,通过观察训练集与验证集的错误率变化趋势来判断决定是否提前结束网络训练;
[0066] 利用训练好的网络模型在测试集上进行评估,并获取评估结果;
[0067] 对评估结果进行分析,对于评估结果准确率低的模型有针对性的修改网络结构并进行重新训练模型,对于评估结果准确率高的模型重新分析模型的优点。
[0068] 在一些实施例中,所述模型的预测具体包括步骤:
[0069] 收集需要预测的点云数据;
[0070] 将收集的数据格式转换为.h5格式,以适应网络的输入;
[0071] 根据训练好的模型参数,将需要预测的数据在训练好的模型上运行一遍,从而得到网络预测结果并将网络预测结果作为真实的物体姿态信息。
[0072] 本发明的第二方面还提供一种基于深度学习的点云物体姿态估计装置,应用于上述所述的基于深度学习的点云物体姿态估计方法,所述装置包括:
[0073] 数据获取模块,用于获取需要学习的数据;
[0074] 网络模型设计模块,用于设计需要解决的问题的网络模型;
[0075] 模型训练模块,根据设计的网络模型进行训练、评估及进行模型改进;
[0076] 模型预测模块,用于根据训练好的模型参数预测物体姿态信息。
[0077] 本发明的第三方面还提供一种基于深度学习的点云物体姿态估计设备,包括处理器、计算机可读存储介质以及在所述计算机可读存储介质上存储的计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法中的步骤。
[0078] 本发明实施例提供的一种基于深度学习的点云物体姿态估计方法、装置及其设备,通过对需要解决的问题进行分析,将点云物体姿态估计问题建模为无区别的多分类问题;然后采用端到端的训练方式训练获取网络模型,再根据训练好的模型对点云物体姿态进行估计,对点云物体姿态的预测速度快且评估预测结果准确率高,本发明实施例对点云物体的姿态估计预测准确率高达到99.9%。

附图说明

[0079] 图1为本发明实施例的基于深度学习的点云物体姿态估计方法的可视化模型图;
[0080] 图2为本发明实施例残差块结构示意图;
[0081] 图3为本发明实施例基于深度学习的点云物体姿态估计方法流程图;
[0082] 图4为本发明实施例获取需要学习数据的方法流程图;
[0083] 图5为本发明实施例网络模型设计的方法流程图;
[0084] 图6为本发明实施例模型的训练的方法流程图;
[0085] 图7为本发明实施例模型的预测的方法流程图;
[0086] 图8为本发明实施例基于深度学习的点云物体姿态估计装置结构框图。

具体实施方式

[0087] 为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0088] 针对于现有技术中对物体姿态的评估准确率不高,从而严重影响该技术在应用领域的效果的问题,本发明提出一种基于深度学习的点云物体姿态估计方法、装置及其设备,能精确地对目标物体姿态进行定位及预测。本发明实施例通过采用端到端的训练方式训练获取网络模型,对点云物体姿态的估计预测速度快且评估结果准确率高,同时点云物体的姿态估计准确率高达到99.9%,能极大提高该技术应用到相关领域的安全性能。本发明可以应用于自动驾驶、机械臂抓取物体以及增强现实等场景中。
[0089] 本发明实施例中所提及的卷积层为2D卷积且已封装了TensorFlow(表示张量流)中的2D卷积层与激活层Relu。
[0090] 实施例一:
[0091] 本发明提供的一种基于深度学习的点云物体姿态估计方法,请参阅图1,其为本发明实施例所提出的基于深度学习的点云物体姿态评估方法的模型图。请参阅图2至图7,本发明实施例所述方法具体包括以下步骤:
[0092] S1:获取需要学习的数据,具体包括以下步骤:
[0093] S11、从数据集中选择点云物体文件;
[0094] 具体地,从公开数据集ModelNet40(http://modelnet.cs.princeton.edu)中选取一个点云物体文件。
[0095] S12、将选取的点云物体文件.off文件类型转换为.obj文件类型;
[0096] 具体地,将S11中选取的点云物体文件.off文件类型通过Antiprism(www.antiprism.com一组用来创建,转换,分析,可视化多边形的程序)代码提供的接口(off2obj命令)转换为.obj文件类型。
[0097] S13、将.obj文件作为X、Y、Z轴旋转角度都为0的数据文件导出,并重新以旋转角度为文件名(000.obj)命名进行保存;
[0098] 具体地,将S12中得到的.obj文件导入Blender(三维动画制作软件)中,并将此.obj文件作为X、Y、Z轴旋转角度都为0的数据文件导出,重新以旋转角度为文件名(000.obj)命名进行保存。
[0099] S14、将.obj文件包含的点云物体同时绕X、Y、Z坐标轴旋转来获取不同角度的数据文件,同时导出旋转后的数据文件并记录数据文件对应的旋转角度,并将以旋转角度作为文件名命名的数据文件作为训练标签。
[0100] 具体地,将S13中的.obj文件包含的点云物体在Blender中进行同时绕X、Y、Z坐标轴旋转来获取不同角度的数据文件,同时导出旋转后的数据文件并记录数据文件对应的旋转角度,并将以旋转角度作为文件名命名的数据文件作为训练的标签。
[0101] S15、将旋转后获取不同角度的大量数据文件进行洗牌并整理成.h5文件,以适应网络数据的输入格式;
[0102] 具体地,将S14中获取的的大量数据文件进行洗牌并整理成.h5文件,.h5文件包含data与label两个字段,其中data字段内元素形状为2048*n*3(2048为包含的.obj文件数,n为每个.obj文件为包含的点云物体的点数,3为点的坐标x,y,z对应的张量类型,值为点的X、Y、Z轴坐标),label字段内元素形状为2048*3,(2048为包含的.obj文件数,3为X、Y、Z轴的旋转角度对应的类型,值为点云物体绕X、Y、Z轴的旋转角度),通过转换数据文件类型以适应网络数据的输入格式。
[0103] S16、将获得的数据文件按照比例划分为训练集、验证集和测试集;
[0104] 具体地,将S15中获得的数据文件按照7:1:2的比例划分为训练集、验证集和测试集。
[0105] S17、重新执行S11-S16步骤若干次,并注意选取不同物体的点云数据文件,点云数据文件包括稀疏点云、稠密点云、对称物体点云与非对称物体点云数据文件。
[0106] S2:网络模型的设计,具体包括步骤:
[0107] S21、将点云物体姿态估计问题建模为无区别的多分类问题,如图1所示;
[0108] 具体地,在实际的操作过程中,经过对需要解决的问题进行分析,本发明实施例决定将点云物体姿态估计问题建模为无区别的多分类问题。
[0109] 需要说明的是:无区别这里指对围绕X、Y、Z轴旋转的处理方法相同,对应网络模型的分支参数与损失函数中的权重相同;网络模型用到的卷积层封装了TensorFlow(张量流)中提供的卷积层(tf.nn.con2d)、批归一化层、激活层(Relu)。
[0110] S22、设计残差块结构来提取点云物体的特征,并将此残差块结构作为网络的共享部分。
[0111] 具体地,如图1所示,在本实施例中,利用设计残差块结构来提取特征,并将此计残差块结构作为网络的共享部分,如图1中除去最后的三个n*51的其余部分均属于网络共享部分,该网络共享部分可以满足不同分支的网络共享。网络输入(n*3)首先通过一卷积核为1*3,步长为1的第一卷积层做卷积操作并输出特征图,再将特征图输入卷积核为64的第二卷积层(n*64)做卷积操作,然后通过两个Block结构:Block1与Block2,Block2的输出经过最大池化层(max_pool2d)获取全局特征,最后将获取的全局特征通过三个并行的多层感知机(MLP):每个多层感知机都由三个串行相连的全连接层组成,全连接层的输出特征图个数分别为512、256、51(其中,51为最后分类的类别个数),最后通过交叉熵损失函数做分类预测。
[0112] 本发明实施例中Block1包含三个卷积层,每个卷积层输出特征图个数为128,Block2包含两个卷积层,每个卷积层输出特征图个数为256;
[0113] 其数学原理公式为:
[0114] y=σ(wTx+b);    1
[0115] y1=σ(w1Ty+b1+y);   2
[0116] y2=σ(w2Ty1+b2+y1);   3
[0117] y3=σ(w3Ty2+b3+y2);   4
[0118] y4=σ(w4Ty3+b4+y3);   5
[0119] y5=σ(w5Ty4+b5+y4);   6
[0120] 其中“σ”表示激活函数,对应函数Relu:max{0,x};
[0121] “x”表示网络的原始输入;
[0122] “y”表示第0层卷积网络层的输出结果同时也是下一层卷积层的输入的一部分,“y1,y2,y3,y4,y5”含义与“y”相同,其中不同的数字表示处于不同的卷积层,卷积层序数从0开始计数,;
[0123] “wT”表示卷积层权重矩阵,即与当前卷积层的输入做矩阵叉乘;
[0124] “b”代表偏置参数。
[0125] 上述输入与输出结果的组合除了公式1其他每个公式可以对应图3;同时输入与输出结果的组合方式对应网络模型的不同连接方式,请参考图1。
[0126] 上述公式2、3、4对应Block1的数学表现形式;公式5、6对应Block2的数学表现形式。
[0127] 请参阅图2,其为设计的残差块结构,所述残差块结构用来提取点云物体的特征并将此残差块结构结构作为网络的共享部分;所述残差块结构为一个包含两个卷积层网络的Block示意图,其中,在示意图中n为输入的点云物体包含的点的个数,k为输出特征图个数,卷积层均使用1*1的卷积核且步长设置为1,Block的特点在于:
[0128] 1.相同Block内卷积层输出的特征图数相同,不同Block内卷积层输出的特征图数不同;且Block内卷积层输出的特征图个数会随着网络深度同步变大;
[0129] 2.网络层间的连接方式:同一网络层的输入与同一网络层的输出共同作为下一层网络层的输入,其数学公式表现形式为:
[0130] g[l]({x1,x2,x3,...xn})=g[l-1]({x1,x2,x3,...xn})+h[l-1]({x1,x2,x3,...xn}),
[0131] 其中,{x1,x2,x3,...xn}为网络的输入,g[l]()为网络第l层的输入,g[l-1]()为网络第(l-1)层的输入,h[l-1]()为网络第(l-1)层的输出,其中的“+”对应concatenation(线性融合操作)操作。
[0132] 通过此密集连接的方式能有效的提高特征的利用率与特征传播速率,本发明实施例通过以密集连接为基础,同时通过控制卷积层输出特征图个数来降低网络参数,从而达到缩小网络模型目的的同时还能保证模型预测性能效果的提升。
[0133] S23、将经过残差块Block2获取的特征通过最大池化层获取全局特征;
[0134] 具体地,将S22中Block2获取的特征通过步长为1,滑动窗口为[n,1](n为点的个数)的无填充的最大池化层(即图1中的max)获取全局特征即“y5”,张量的形状由[l,m,1,f]变为[l,1,1,f]对应取“y5”第1轴m个元素中的最大值
[0135] S24、将经过最大池化层获取的全局特征分别送入三个并行的多层感知机做坐标轴的预测类别得分;
[0136] 具体地,将S23中获取的全局特征分别送入三个并行的多层感知机(对应图1中的MLP)做最后的预测得分,所述三个多层感知机分别预测X轴或Y轴或Z轴的类别得分。从数学的角度看三个并行的多层感知机满足轮换对称性,对应数学公式为:
[0137] y6x=σ(y5×w6x+b6x);    7-1
[0138] y7x=σ(y6x×w7x+b7x);   7-2
[0139] y8x=(y7x×w8x+b8x);    7-3
[0140] y6y=σ(y5×w6y+b6y);    8-1
[0141] y7y=σ(y6y×w7y+b7y);   8-2
[0142] y8y=(y7y×w8y+b8y);    8-3
[0143] y6z=σ(y5×w6z+b6z);    9-1
[0144] y7z=σ(y6z×w7z+b7z);   9-2
[0145] y8z=(y7z×w8z+b8z);    9-3
[0146] 其中,“σ”表示激活函数,对应函数Relu:max{0,x};其他各相同位置参数含义与上述公式1-6相同;
[0147] 公式7-1、7-2、7-3表示x轴预测角度的全连接层连接方式的数学公式;
[0148] 公式8-1、8-2、8-3表示y轴预测角度的全连接层连接方式的数学公式;
[0149] 公式9-1、9-2、9-3表示z轴预测角度的全连接层连接方式的数学公式。
[0150] S25、使用分类器对分别经过所述多层感知机做坐标轴的预测类别得分后的特征做最后的类别预测;
[0151] 具体地,在S24的基础上使用交叉熵损失函数作为分类器,进行最后的类别预测,公式如下:
[0152]
[0153]
[0154] 公式10为softmax计算公式,用于计算网络的前向传播最终得分;
[0155] 公式11为损失函数,其中“b”代表batch size(批尺寸)。
[0156] S26、对经过所述三个并行分类器处理后得到的损失值进行等权重的求和,并将此和作为整体的多分类损失函数;
[0157] 具体地,在S25的基础上对经过所述三个并行分类器处理后得到的三个损失值进行等权重的求和,并将此和作为整体的多分类损失函数:loss=loss1+loss2+loss3;
[0158] 本实施例中,所述权重都为1,所述loss1、loss2、loss3分别对应X、Y、Z轴预测结果与真实标签通过交叉熵分类器处理所得到的一个标量值。
[0159] S27、使用适应性矩估计对多分类损失函数loss进行优化;
[0160] 具体地,使用Adam(适应性矩估计)对S26中的多分类损失函数loss进行优化。
[0161] S3:模型的训练,具体包括如下步骤:
[0162] S31、对模型进行监督训练,通过观察训练集与验证集的错误率变化趋势来判断决定是否提前结束网络训练;
[0163] 具体地,利用TensorFlow(表示张量流)框架对S2中设计的模型进行有监督的训练,并通过观察训练集与验证集的错误率变化趋势来判断网络处于欠拟合、正常工作、还是过拟合状态来人为决定是否提前结束网络训练。
[0164] 在本实施例中,模型中部分超参数为:最大迭代次数70;初始学习率0.001;学习率衰减率为0.7;学习率衰减步数为200000;动量初始值为0.9;采用Adam优化算法等。
[0165] S32、利用训练好的网络模型在测试集上进行评估,并获取评估结果;
[0166] 具体地,利用在S31步骤中训练好的网络模型在测试集上进行评估,并获取评估结果;具体操作为根据训练好的模型参数在测试集上跑一遍网络的前向传播过程,并将网络预测类别与真实标签作对比将评估结果写入文件。
[0167] S33、对评估结果进行分析,对于评估结果准确率低的模型有针对性的修改网络结构并进行重新训练模型,对于评估结果准确率高的模型重新分析模型的优点。
[0168] 具体地,结合TensorBoard可视化日志文件分析评估结果,对于评估结果准确率低的模型有针对性的修改网络结构并跳到S31重新训练模型;对于评估结果准确率高的模型重新分析模型的优点。
[0169] S4:模型的预测
[0170] 具体地,据训练好的模型参数,将需要测试的数据在网络模型上运行进行测试。包括步骤:
[0171] S41、收集需要预测的点云数据;
[0172] S42、将收集的数据格式转换为.h5格式,以适应网络的输入;
[0173] 具体地,通过S1步骤中的方法转换S41步骤中收集的数据格式为.h5格式,以适应网络的输入。
[0174] S43、根据训练好的模型参数,将需要预测的数据在训练好的模型上运行一遍,从而得到网络预测结果,并将网络预测结果作为真实的物体姿态信息。
[0175] 具体地,使用深度学习框架运行预测相关代码;根据训练好的模型参数将需要预测的数据在训练好的模型上跑一遍网络的前向传播过程,从而得到网络预测结果,并将网络的预测结果作为真实的物体姿态信息。
[0176] 本发明实施例基于深度学习的点云物体姿态估计方法,通过对需要解决的问题进行分析,将点云物体姿态估计问题建模为无区别的多分类问题;然后采用端到端的训练方式训练获取网络模型,再根据训练好的模型对点云物体姿态进行估计,对点云物体姿态的估计预测速度快且评估预测结果准确率高,采用本发明实施例所述方法对点云物体的姿态估计准确率高达到99.9%。
[0177] 实施例二:
[0178] 下面结合具体案例对上述实施例所述基于深度学习的点云物体姿态估计方法的应用进行详细说明。
[0179] S201、从ModelNet40中选择原始的以.off结尾的点云物体文件,并通过Antiprism代码将.off文件类型其转化为.obj文件类型。
[0180] S202、通过blender软件导入.obj文件数据,并通过代码将导入的数据进行-25度到25度的间隔1度旋转,考虑到X轴,Y轴,Z轴的独立性,产生51*51*51(51即为网络模型对每个轴旋转角度需要预测分类的类别数)共13万的不同旋转角度的数据文件。
[0181] 本实施例中,统一了稀疏点云与密集点云,对称物体与非对称物体的旋转数据产生方案。
[0182] S203、重新组织不同旋转角度的数据文件的数据格式使其与读取文件的代码相匹配并进行数据预处理。
[0183] S204、将重新组织的数据文件按7:1:2的比例划分为数据集,验证集,测试集。
[0184] S205、构建一个深层的卷积神经网络。
[0185] 所述构建一个深层的卷积神经网络方法即为采用实施例一中的网络模型设计方法的步骤,在此不再赘述。具体包括确定网络深度,网络层之间的连接方式,卷积核大小,每层卷积的特征图个数,步长的大小,权重参数的初始化策略,动量,学习率,迭代次数等超参数的设置,优化算法的选择与其参数配置等。根据输入数据与任务设计出在可接受性能范围内的网络结构,其核心算法如下:
[0186] g[l]({x1,x2,x3,...xn})=g[l-1]({x1,x2,x3,...xn})+h[l-1]({x1,x2,x3,...xn}),
[0187] {x1,x2,x3,...xn}为网络的输入,g[l]()为网络第l层的输入,g[l-1]()为网络第(l-1)层的输入,h[l-1]()为网络第(l-1)层的输出,其中的“+”对应concatenation(线性融合操作)操作。
[0188] 以此为基础设计的密集连接的残差块结构Block,在同一个残差块结构Block的每个卷积网络输出的特征图个数相同;在不同的残差块Block中每个卷积网络输出的特征图个数不同。且随着网络层数加深,靠后的残差块中每个卷积网络输出的特征图个数明显多于之前的残差块的卷积网络输出的特征图个数。残差块之间通过快捷连接相连,同时可以动态的设定每个残差块中卷积层的个数。
[0189] 本发明实施例通过以密集连接为基础同时通过控制卷积层输出特征图个数来降低网络参数,从而达到缩小网络模型目的的同时还能保证模型预测性能效果的提升。
[0190] 本发明实施例将姿态估计问题建模为并行的对称无区别对待的多分类问题,通过共享权重的多任务分类网络来解决。其中的无区别对待体现在损失函数的计算上:X轴,Y轴,Z轴的各自损失函数在总体的损失函数中所占比重相同。
[0191] S206、对模型进行监督训练,通过观察训练集与验证集的错误率变化趋势来判断决定是否提前结束网络训练;
[0192] 具体地,利用TensorFlow(表示张量流)深度学习框架进行网络训练,并通过观察训练集与验证集的错误率变化趋势来判断网络处于欠拟合、正常工作、还是过拟合状态来人为决定是否提前结束网络训练。
[0193] 在本实施例中,经测试训练的超参数设置如下:优化算法使用Adam(Adaptive Moment Estimate自适应矩估计),基础学习率为0.001,学习率衰减为0.7,衰减策略为按步骤衰减,设置的最大的epoch(迭代次数)为100。
[0194] S207、利用训练好的网络模型在测试集上进行评估,并获取评估结果;
[0195] 具体地,使用训练好的深层卷积网络模型对测试数据进行评估,输出对应形状的欧拉角与S14步骤中原始产生的训练标签进行对比来评估网络的最终性能;具体操作为根据训练好的模型参数在测试集上跑一遍网络的前向传播过程,并将网络预测类别与真实标签作对比将评估结果写入文件。
[0196] S208、对评估结果进行分析,对于评估结果准确率低的模型有针对性的修改网络结构并进行重新训练模型,对于评估结果准确率高的模型重新分析模型的优点。
[0197] S209、将需要预测的数据在训练好的模型上进行网络评估预测结果,并将网络评估预测结果作为真实的物体姿态信息。
[0198] 本发明实施例基于深度学习的点云物体姿态估计方法经试验验证在测试集上能达到99.9%的预测准确率,具有不错的泛华性能。
[0199] 实施例三:
[0200] 本发明实施例还提供一种基于深度学习的点云物体姿态估计装置,请参阅图8,所述装置包括相互进行数据交互的数据获取模块10,网络模型设计模块20、模型训练模块30以及模型预测模块40。
[0201] 所述数据获取模块10,用于获取需要学习的数据。
[0202] 所述数据获取模块10包括数据选择单元101、文件类型转换单元102、角度旋转保存单元103、文件整理单元104以及文件划分单元105。
[0203] 所述数据选择单元101,用于从数据集中选择点云物体文件;
[0204] 具体地,通过所述数据选择单元101从公开数据集ModelNet40(http://modelnet.cs.princeton.edu)中选取一个点云物体文件。
[0205] 所述文件类型转换单元102,用于将选取的点云物体文件.off文件类型转换为.obj文件类型。
[0206] 所述角度旋转保存单元103,用于将.obj文件作为X、Y、Z轴旋转角度都为0的数据文件导出,并重新以旋转角度为文件名(000.obj)进行保存,同时以旋转角度作为文件名命名的数据文件作为训练标签。
[0207] 所述文件整理单元104,用于将旋转后获取不同角度的大量数据文件进行洗牌并整理成.h5文件,以适应网络数据的输入格式。
[0208] 所述文件划分单元105,用于将获得的数据文件按照比例划分为训练集、验证集和测试集。
[0209] 本实施例中,所述文件划分单元105将数据文件按照7:1:2的比例划分为训练集、验证集和测试集。
[0210] 所述网络模型设计模块20,用于设计需要解决的问题的网络模型。
[0211] 所述网络模型设计模块20包括建模单元201、残差块设计单元202、全局特征获取单元203、类别预测单元204和优化单元205。
[0212] 所述建模单元201,用于对需要解决的问题进行分析,将点云物体姿态估计问题建模为无区别的多分类问题。
[0213] 所述残差块设计单元202,用于设计残差块结构来提取特征并将此特征提取结构作为网络的共享部分。
[0214] 所述残差块结构为一个包含两个卷积层网络的Block示意图,其中,在示意图中n为输入的点云物体包含的点的个数,k为输出特征图个数,卷积层都使用1*1的卷积核且步长设置为1,Block的特点在于:
[0215] 1.相同Block内卷积层输出的特征图数相同,不同Block内卷积层输出的特征图数不同;且Block内卷积层输出的特征图个数会随着网络深度同步变大;
[0216] 2.网络层间的连接方式:同一网络层的输入与同一网络层的输出共同作为下一层网络层的输入,其数学公式表现形式为:
[0217] g[l]({x1,x2,x3,...xn})=g[l-1]({x1,x2,x3,...xn})+h[l-1]({x1,x2,x3,...xn}),
[0218] 其中,{x1,x2,x3,...xn}为网络的输入,g[l]()为网络第l层的输入,g[l-1]()为网络第(l-1)层的输入,h[l-1]()为网络第(l-1)层的输出,其中的“+”对应concatenation(线性融合操作)操作。
[0219] 通过此密集连接的方式有能效的提高特征的利用率与特征传播速率,本发明实施例通过以密集连接为基础同时通过控制卷积层输出特征图个数来降低网络参数,从而达到缩小网络模型目的的同时还能保证模型预测性能效果的提升。
[0220] 所述全局特征获取单元203,用于将残缺块Block2获取的特征通过最大池化层获取全局特征。
[0221] 所述类别预测单元204,用于将经过最大池化层获取的全局特征分别送入三个并行的多层感知机做坐标轴的预测类别得分。
[0222] 具体地,将获取的全局特征分别送入三个并行的多层感知机(对应图1中的MLP)做最后的预测得分,所述三个多层感知机分别预测X轴或Y轴或Z轴的类别得分。从数学的角度看三个并行的多层感知机满足轮换对称性,对应数学公式为:
[0223] y6x=σ(y5×w6x+b6x);   7-1
[0224] y7x=σ(y6x×w7x+b7x);  7-2
[0225] y8x=(y7x×w8x+b8x);   7-3
[0226] y6y=σ(y5×w6y+b6y);   8-1
[0227] y7y=σ(y6y×w7y+b7y);  8-2
[0228] y8y=(y7y×w8y+b8y);   8-3
[0229] y6z=σ(y5×w6z+b6z);   9-1
[0230] y7z=σ(y6z×w7z+b7z);  9-2
[0231] y8z=(y7z×w8z+b8z);   9-3
[0232] 其中,“σ”表示激活函数,对应函数Relu:max{0,x};其他各相同位置参数含义与上述公式1-6相同;公式7-1、7-2、7-3表示x轴预测角度的全连接层连接方式的数学公式,公式8-1、8-2、8-3表示y轴预测角度的全连接层连接方式的数学公式,公式9-1、9-2、9-3表示z轴预测角度的全连接层连接方式的数学公式。
[0233] 所述优化单元205,用于使用适应性矩估计对多分类损失函数loss进行优化。
[0234] 所述模型训练模块30,用于根据设计的网络模型进行训练、评估及进行模型改进。
[0235] 所述模型训练模块30包括训练单元301、评估单元302以及分析改进单元303。
[0236] 所述训练单元301,用于对模型进行监督训练,通过观察训练集与验证集的错误率变化趋势来判断决定是否提前结束网络训练。
[0237] 所述评估单元302,用于利用训练好的网络模型在测试集上进行评估,并获取评估结果。
[0238] 所述分析改进单元303,用于对评估结果进行分析,对于评估结果准确率低的模型有针对性的修改网络结构并进行重新训练模型,对于评估结果准确率高的模型重新分析模型的优点。
[0239] 所述模型预测模块40,用于根据训练好的模型参数预测物体姿态信息。
[0240] 所述模型预测模块40,包括数据收集单元401、格式转换单元402以及姿态评估单元403。
[0241] 所述数据收集单元401,用于收集需要预测的点云数据;
[0242] 所述格式转换单元402,用于收集的数据格式转换为.h5格式,以适应网络的输入;
[0243] 所述姿态评估单元403,用于根据训练好的模型参数,将需要预测的数据在训练好的模型上运行一遍,从而得到网络预测结果,并将网络的预测结果作为真实的物体姿态信息。
[0244] 本发明实施例基于深度学习的点云物体姿态估计装置,通过对需要解决的问题进行分析,将点云物体姿态估计问题建模为无区别的多分类问题;然后采用端到端的训练方式训练获取网络模型,再根据训练好的模型对点云物体姿态进行估计,对点云物体姿态的预测速度快且评估预测结果准确率高,本发明实施例对点云物体的姿态估计准确率高达到99.9%。
[0245] 实施例四:
[0246] 根据本发明的一个实施例提供的一种基于深度学习的点云物体姿态估计设备,该设备包括处理器、计算机可读存储介质以及在所述计算机可读存储介质上存储的计算机程序,所述计算机程序被处理器执行时实现上述基于深度学习的点云物体姿态估计方法中的步骤,具体步骤如实施例一中描述所述,在此不再赘述。
[0247] 本实施例中的存储器可用于存储软件程序以及各种数据。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0248] 根据本实施例的一个示例,上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。该存储介质包括但不限于磁碟、优盘、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
[0249] 以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。