基于深度学习的工件识别定位和姿态估计系统和方法与流程

文档序号:16432218发布日期:2018-12-28 20:13阅读:403来源:国知局
基于深度学习的工件识别定位和姿态估计系统和方法与流程

本发明涉及一种工件识别定位和姿态估计系统和方法,特别涉及一种基于深度学习的工件识别定位和姿态估计系统和方法,属于目标识别检测领域。

背景技术

随着科技的进步,越来越多的工业机器人被应用于生产领域,以替换人类进行重复性的生产活动。工业机器人是面向工业领域的多关节机械手或多自由度的机器装置,它能自动执行工作,是靠自身动力和控制能力来实现各种功能的一种机器。它可以接受人类指挥,也可以按照预先编排的程序运行,现代的工业机器人还可以根据人工智能技术制定的原则纲领行动。

为了提高工业机器人的自动化程度,需要工业机器人能对生产中的工件进行智能的识别定位和姿态估计,这样工业机器人可以根据不同工件的不同姿态自适应的调整运动轨迹和抓取角度来对工件进行分拣。

近年来深度学习算法在计算机视觉的各个领域都取得了巨大突破,尤其在目标检测、识别分类领域各种优秀的深度学习算法大量涌现。例如googlenet、vgg、fasterr-cnn、yolo等。因此将强大的深度学习算法运用于工件检测、识别定位领域能有效提高算法的可靠性,增加检测定位精度和维度,从而提高工业机器人的自动化程度,大大增强实际生产效能。然而,现有技术中在工件检测上还存在一定的缺陷,如对同一生产线上的不同种类工件的分类识别、位置确定、以及单个工件的空间姿态估计无法同时给出满意的检测结果。



技术实现要素:

本发明的主要目的在于旨在提出一种基于深度学习的工件识别定位和姿态估计系统及方法,以克服现有技术的不足。

为实现前述发明目的,本发明实施例提供了一种基于深度学习的工件识别定位和姿态估计系统可以包括:

网络建设模块,其至少用于基于yolo深度学习网络进行工件识别定位和姿态估计网络设计,所述工件识别定位和姿态估计网络设计包括在全连接层后增加一个输出项目,所述输出项目用于获取角度信息;

数据采集模块,其至少用于构建训练集,构建过程包括采集不同姿态的工件图片作为训练样本,并对所述训练样本进行角度信息标注以及分类信息标注和位置信息标注;

模型训练模块,其至少用于根据数据采集模块构建的训练集对所述工件识别定位和姿态估计网络进行训练,当损失值达到预设阈值时,训练结束并获得工件识别定位和姿态估计模型;

工件识别定位和姿态估计模块,其至少用于根据所述工件识别定位和姿态估计模型对工件实物图片进行识别定位和姿态估计。

优选地,所述模型训练模块还包括损失值计算子模块,用于对当前进行训练的工件识别定位和姿态估计网络的损失值进行计算,所述损失值计算采用同时融合工件分类误差、工件位置坐标误差和工件姿态误差的损失函数。

本发明实施例还提供了一种基于深度学习的工件识别定位和姿态估计方法,其可以包括:

s1.基于yolo深度学习网络进行工件识别定位和姿态估计网络设计,包括在全连接层后增加一个输出项目,用于获得角度信息;

s2.采集不同姿态的工件图片作为训练样本以进行构建训练集,包括对所述训练样本进行角度信息标注以及分类信息标注和位置信息标注;

s3.使用步骤s2构建的训练集对所述工件识别定位和姿态估计网络进行训练;当损失值达到预设阈值时,训练结束并获得工件识别定位和姿态估计模型;

s4.调用所述工件识别定位和姿态估计模型对工件实物图片进行识别定位和姿态估计。

优选地,所述角度信息标注包括:

选取某个工件姿态作为基准,设置为绕x、y、z轴均为(0°,0°,0°),分别设定绕x、y、z轴旋转的角度间隔,取训练样本图片绕x、y、z轴旋转的角度所在间隔区间的中间值进行标注。

优选地,所述分类信息标注和位置信息标注包括:分类信息以数字标注,以区分不同类别;工件的边界框通过求其最小外接矩形得出。

优选地,所述损失值采用同时融合工件分类误差、工件位置坐标误差和工件姿态误差的损失函数进行计算。

优选地,步骤s3中对所述工件识别定位和姿态估计网络进行训练的过程具体包括:

s31.对未更改网络结构前的yolo深度学习网络进行训练,采用梯度下降优化器优化变量,反复训练直至损失值达到预设阈值,获取更新后的权重;

s32.将步骤s31训练后的权重载入修改过的工件识别定位和姿态估计网络中,采用梯度下降优化器优化预测角度相关的变量,反复训练直至损失值达到预设阈值。

优选地,训练样本图片分别绕x轴、y轴旋转的角度在[-15°,14°]范围内,绕z轴旋转角度在[0°,90°]范围内。

优选地,训练样本图片绕x、y轴旋转时,所述角度间隔设定为5°;训练样本图片绕z轴旋转时,所述角度间隔设定为10°。

优选地,所述损失函数包括角度误差损失函数、坐标误差函数、iou误差损失函数、分类误差损失函数;

角度误差损失函数公式为:

其中ax、ay、az分别为网络预测的绕x、y、z轴旋转的角度值,分别为对应的标注值,表示物体中心落在网格i中;

坐标误差损失函数公式为:

iou误差损失函数公式为:

分类误差损失函数公式为:

其中x,y,w,h,c,p均为网络预测值,均为标注值,表示物体中心落在网格i中,分别表示物体中心是否落入第i个网格的第j个预测框内;

所述损失函数为:l=lalc+liou+lcls。

进一步的,所述基于深度学习的工件识别定位和姿态估计方法是基于所述的基于深度学习的工件识别定位和姿态估计系统实现的。

与现有技术相比,本发明的优点包括:利用本发明提供的技术方案,使得不同种类工件的分类识别、位置确定、以及单个工件的空间姿态估计可以同时进行检测,大大提高了产线自动化效率。

附图说明

图1是本发明一典型实施案例中一种基于深度学习的工件识别定位和姿态估计方法的流程图;

图2是本发明一典型实施案例中一种基于yolo深度学习网络改进的工件识别定位和姿态估计网络示意图。

具体实施方式

鉴于现有技术中的不足,本案发明人经长期研究和大量实践,得以提出本发明的技术方案。如下将对该技术方案、其实施过程及原理等作进一步的解释说明。

本发明实施例提供了一种基于深度学习的工件识别定位和姿态估计系统,其包括:

网络建设模块,其至少用于基于yolo深度学习网络进行工件识别定位和姿态估计网络设计,所述工件识别定位和姿态估计网络设计包括在全连接层后增加一个输出项目,所述输出项目用于获取角度信息;

数据采集模块,其至少用于构建训练集,构建过程包括采集不同姿态的工件图片作为训练样本,并对所述训练样本进行角度信息标注以及分类信息标注和位置信息标注;

模型训练模块,其至少用于根据数据采集模块构建的训练集对所述工件识别定位和姿态估计网络进行训练,当损失值达到预设阈值时,训练结束并获得工件识别定位和姿态估计模型;

工件识别定位和姿态估计模块,其至少用于根据所述工件识别定位和姿态估计模型对工件实物图片进行识别定位和姿态估计。

进一步的,所述网络建设模块、数据采集模块、模型训练模块以及工件识别定位和姿态估计模块依次连接设置形成所述基于深度学习的工件识别定位和姿态估计系统。

进一步地,所述模型训练模块还包括损失值计算子模块,用于对当前进行训练的工件识别定位和姿态估计网络的损失值进行计算,所述损失值计算采用同时融合工件分类误差、工件位置坐标误差和工件姿态误差的损失函数。

请参阅图1,本发明实施例还提供了一种基于深度学习的工件识别定位和姿态估计方法,其可以包括以下步骤:

步骤101,基于yolo深度学习网络进行工件识别定位和姿态估计网络设计;

基于yolo深度学习网络进行改进,增加输出角度信息。

步骤102,针对不同姿态的工件训练样本图片进行采集和标注;

针对不同姿态的工件图片进行采集,并进行角度信息标注以及分类信息标注和位置信息标注。

步骤103,使用步骤102构建的训练集训练工件识别定位和姿态估计模型;

训练过程中采用同时融合工件分类误差、工件位置坐标误差和工件姿态误差的损失函数。

步骤104,调用所述工件识别定位和姿态估计模型对工件实物图片进行识别定位和姿态估计。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

在一些较为具体的实施方案中,一种工件识别定位和姿态估计方法可以包括如下步骤:

一、基于yolo深度学习网络的工件识别定位和姿态估计网络设计

请参阅图2,图2是本发明一典型实施案例中一种基于yolo深度学习网络改进后的工件识别定位和姿态估计网络,根据原yolo深度学习网络,可以得出工件的分类情况与位置信息,而本发明实施例中除了要得到工件的类别、位置信息之外,还要得到工件的姿态即角度信息,故需在原网络的基础上进行改进,得出角度值,更改后的网络结构如图2所示。从图2可知,改进后的yolo网络基本保留了原始网络结构,用于计算分类与位置信息,改进之处包括在全连接层后增加一个输出项目,即在输出为4096维向量的全连接层上再使用一个全连接层,用于得出角度信息,输出大小为7*7*3,其中3为输出的3个角度,即为anglex、angley、anglez。

二、针对不同姿态的工件进行训练图像采集和标注

假设本次测试的工件有三种,其形状大小皆不相同,并且不具备高度的对称性。对于产线生产的工件,通常不会将几种工件混在一起来加大分拣难度,根据实际应用场景,本实施例中仅考虑一种工件的情况。以第一种工件为例,为了得出其姿态信息,在制作训练集时,需要对其各个姿态的图片进行采集,以某一个姿态为基准设置为绕x、y、z轴均为(0°,0°,0°)。作为一种优选方式,可以通过opengl对图像三维cad模型图片进行绕x、y、z轴旋转的操作

在本发明一典型实施案例中,我们取一部分姿态做训练与测试,用以类比其它姿态的测试情况。绕x轴、y轴旋转的角度分别在[-15°,14°]范围之内,绕z轴旋转角度在[0°,90°]范围之内。图片绕x、y轴旋转时,设置角度间隔为5°,取图片绕x、y轴旋转的角度所在的间隔区间的中间值进行标注;由于绕z轴旋转,可看作是在平面内的旋转,对工件姿态变化不大,将角度间隔设置为10°,取图片绕z轴旋转的角度所在的间隔区间的中间值进行标注。例如对于工件绕x、y轴旋转在6°到10°间,绕z轴旋转在11°到20°间的工件,角度统一标注为(8,8,15),将这个姿态范围内的工件,认为是同一种姿态,旋转角度都为(8,8,15)。

在本发明一典型实施案例中,对于一种姿态采集了250张训练图片,训练集图片采集完成后,就需要对图片进行标注工作,将训练图片的分类信息以及需要训练的目标框出来,分类信息标注为1,代表第1类,工件的边界框可以通过求其最小外接矩形得出,将xmin、xmax、ymin、ymax四个值以相同的格式写入annotation文件中。

三、设计同时融合工件分类误差、工件位置坐标误差和工件姿态误差的损失函数

由于引入了角度回归网络,在原损失函数的基础上,还需加入角度误差损失函数,公式如下:

其中ax、ay、az分别为网络预测的绕x、y、z轴旋转的角度值,分别为对应的标注值,表示物体中心落在网格i中。

除了角度损失函数,损失函数还包括:坐标误差损失函数、iou误差损失函数、分类误差损失函数。公式分别如下:

坐标误差损失函数:

iou误差损失函数:

类别误差损失函数:

其中x,y,w,h,c,p均为网络预测值,均为标注值,表示物体中心落在网格i中,分别表示物体中心是否落入第i个网格的第j个预测框内。

对于整个工件识别定位和姿态估计网络,其总损失值为:

l=la+lc+liou+lcls

四、使用采集的训练图像训练工件识别定位和姿态估计模型

由于网络添加了角度回归层,同时训练优化网络所有变量,会导致损失函数很难收敛,因此可以采取分两步训练的方式;首先对未更改网络结构前的yolo网络进行训练,leamingrate初始值为0.01,batchsize为30,周期为11,采用梯度下降优化器优化变量,通过反复训练最终得出不含角度测试的较为准确的测试结果。

完成第一步的训练与测试后,将训练好的权重载入修改过的工件识别定位和姿态估计网络网络中,重新训练,仍然采用梯度下降优化器优化变量,但只优化新增的预测角度相关的变量。batchsize仍然为30,learningrate初始值为0.01,并且由0.01逐渐变化至0.0001,周期为11,反复训练。

五、调用模型对工件进行识别、定位和姿态估计

对于测试集,采用相机拍摄的工件实物图做测试,大小与测试图片有一定差异,工件表面受光照影响、生锈等情况也与训练图片有所不同,但其角度范围仍然是在绕x轴与y轴旋转-15°到14°,绕z轴旋转0°到90°范围内,每种工件1600张,共4800张,具体每种工件的训练与测试结果对比如表1所示,由表1的统计结果可知,无论是训练还是测试,分类结果都表现优异;而x、y方向边界框的误差都很低,测试集结果误差在1mm左右;训练集中绕x、y、z轴的旋转角度误差分别平均为4.038°、4.334°、8.464°时,损失值无法再降低;而造成该结果的原因是,训练集中将x、y轴的旋转角度以5°为间隔区间取中间值标注,将z轴按10°为间隔区间取中间值标注,其自身误差分别是5°、5°和10°;并且受到工件表面生锈、光照、工件大小的影响,可能导致测试集的误差有所增大,造成与训练集的差异,但误差仍然在可以接受的正常范围,对测试结果影响不大。

表1为使用3种工件测试样例训练与测试结果统计

采用本发明提供的基于深度学习的工件识别定位和姿态估计系统,对同一生产线上的不同种类工件的分类识别、位置确定、以及单个工件的空间姿态估计可同时给出检测结果,有助于工业机器人可以根据不同工件的不同姿态自适应的调整运动轨迹和抓取角度来对工件进行分拣等自动化操作,可大大提高产线的生产效率。

应当理解,上述实施例仅为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

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