Kara0807的个人博客分享 http://blog.sciencenet.cn/u/Kara0807

博文

结合深度学习与生物特征识别在冷链拣选中的算法研究

已有 2059 次阅读 2019-7-3 09:12 |系统分类:论文交流|文章来源:转载

 结合深度学习与生物特征识别在冷链拣选中的算法研究

陈妮亚,阮佳阳,黄金苗,杨伟

 

 

【摘   要】机器人对食品的抓取、拣选是工业自动化中的一个常见问题,但是食品通常形状不规则、特征多变,导致快速、稳定的视觉分析与定位较为困难。提出了一种结合深度学习与生物特征识别的目标点定位方法,首先使用深度学习模型对目标点进行粗定位,之后在粗定位点的邻域中,利用生物特征进行微调,得到精准的目标点坐标。所设计的方法在常见食品——虾的数据上进行了模型训练与性能验证。首先将虾的图像进行预处理后输入深度学习模型得到粗定位点,之后对虾的位姿进行归一化并提取轮廓线,基于对搜索域内的轮廓拟合与特征点检测以精确定位目标点。实验结果证明了该方法的有效性:在包含1000张实测样本的测试集上,整体方案的识别率达到97%,可初步满足实际工业应用的要求。

 

【关键词】机器视觉;食品拣选;深度学习;特征识别

 

【引用格式】陈妮亚,阮佳阳,黄金苗,杨伟结合深度学习与生物特征识别在冷链拣选中的算法研究,智能科学与技术学报,20191(1): 88-95.

 

1.引言

 

机器人对食品的实时抓取、拣选是工业自动化中的一个常见问题,需要实时、精确的图像识别技术。但是,食品常常存在形状不规则、特征多变等问题,导致目前的技术手段在实现快速、稳定的视觉分析及目标点定位时较为困难[1-2]。例如,目前在工厂的自动剥虾生产线上,尚余一个关键环节未实现自动化——对于虾身的抓取与精确放置,仍然完全由人工进行操作——极大地限制了生产线的速度、精度、稳定性与生产效率[3-4]

若能在此环节中使用工业机器人代替人工对虾身进行识别与分拣,即可使得整条生产线全自动化,大幅提高生产效率与稳定性。基于摄像头实时拍摄的图像,工业机器人可自动识别流水线上的虾身的关节点位置,从而对虾进行精确的定位、抓取与放置。但在实验室测试中发现,由于该类目标的尺寸、形状、纹理多变,目前的商业软件与通用技术很难实现高精度的实时目标识别。

幸运的是,近年来人工智能及图像处理领域的科研进展,为解决此类问题提供了新的思路[5]。最近得到广泛应用的深度学习算法在图像分类及识别任务中有着出色的表现,如GoogleNet[6]VGG Net[7]RCNN[8]fast-RCNN[9]等。但是,深度学习算法在较复杂的图像数据、精度要求较高的识别任务上往往性能不够高,如果直接使用,很难同时满足工业上的实时性要求与通常超过95%的精度要求。

更为传统的目标点检测的图像处理算法,通常包括特征点提取、角点检测、轮廓线提取等。较为经典的特征提取与角点检测方法如SIFT[10-11]Harris角点检测[12-13]等,可以在很多应用场景下准确地提取图像中的特征点。但是,由于此类方法运算量大、常给出海量候选点,并不适用于食品的快速抓取点检测。而现有的轮廓线提取方法,如Snake模型等也并不适用此类问题,因为常需要人的介入,而且运算速度较慢[14-15]

本文提出了一种结合深度学习算法与生物特征识别的方法,用于识别食品的特征点。该方法结合了深度学习与传统图像处理算法的优点,实现了对目标点的实时、准确的检测。首先,基于深度学习算法训练模型,输出对目标点的粗定位结果,此结果的精度往往不够高,但误差可控制在一定范围内。之后再使用此粗定位结果生成一个搜索范围,并在该搜索范围内利用生物特征进行精确定位。基于实测的虾数据集进行模型训练与验证,可知该方法能够有效地识别目标点,精度高达97.2%,初步满足实际工业应用的要求。

本文结构如下:第2节介绍在冷链拣选中对虾的关节点识别的具体问题及本文方法;第3节具体说明了基于深度学习方法的目标点粗定位方法;第4节描述了如何生成搜索域与基于生物特征进行精确定位;实验数据及验证结果在第5节中给出;第6节为总结与结论。

 

2.问题描述与算法简介

 

在自动化流水线上,常常需要对食物的某些特征点进行识别,以便于机器人进行抓取、放置等操作。虾身的关节识别便是其中的一个典型问题。 如图1所示,在工厂的剥虾流水线上持续地运送着许多已截去虾头部分的虾身,而机器人需要将一只只虾快速拣起并放置在准确的位置上,使得从虾尾数起的第二关节点恰好位于刀口上,以便于流水线的下一步机械动作。本步骤是自动剥虾流水线上的关键环节,而目前自动化方案仍在研究阶段,故在实际工厂的产线上这一环节只能依靠人工操作去完成。可想而知,人工有着精度不高、速度较低、稳定性无法保证等缺点,更何况此工作本身极其枯燥无味、浪费人力与时间。

如图1所示,在自动化方案中,核心是视觉系统与机器人的配合动作。视觉系统单元对流水线上移动的虾身进行实时拍摄,同时内置算法识别出目标点位置,并引导机器人进行抓取与放置,从而替代人工操作,实现整条生产线的全自动化。


 1.jpg

1  冷链拣选中的虾关节点识别问题

 

在实际工业应用中,对于此环节的自动化方案有着较高的性能要求:对于长度为9~10 cm的虾身,识别目标关节点的误差不大于3 mm的成功率高于97%。同时,对于每张图片的算法处理时间应小于200 ms。而问题在于,由于虾的形态有着天然的多变性,此识别任务尽管对人来说十分简单,但对于传统的图像特征提取算法来说则较为困难。如图2所示,虾的形态各异,尺寸大小不同,同时纹理、颜色等特征也有着不同程度的差别,故单一的图像处理方法只能准确识别部分样本的关节点,而很难达到工业应用的高精度要求。


 2.jpg

2  形态各异的虾

 

在此前的研究中,笔者测试了一些基于经典图像处理算法的方案来识别目标点。其基本原理如图3所示,即利用关节处的纹理特征及凹陷特征来识别目标点。但是,此类方法的实际识别成功率仅能达到85%左右,很难继续提升,而且此类方法的顽健性较差。由于虾的图片上存在一些难以剔除的噪声,以及拍摄导致的不连续点,可能使得一些样本的定位误差极大,会造成机器人误操作毁坏食材,这在工厂应用中是难以接受的。故一个好的解决方案不仅能满足工业应用的精度要求,同时还需要将识别失败样本的误差控制在稳定范围内,便于工厂的后续处理。


 3.jpg

3  虾关节处的凹陷及纹理特征

 

本文提出了一种结合深度学习与生物特征识别的方法,以期达到工业应用的性能要求,其基本原理如图4所示。


 4.jpg

4  基于深度学习与生物特征的目标点识别方法

 

如图4所示,由于实际视觉系统的拍摄条件有限,虾的原始图片中存在一定的噪声干扰。故在输入深度学习网络前,首先对虾的原始图片进行去噪、剪裁等预处理,并将图片缩放至统一的尺寸;之后深度学习网络输出对目标点的粗定位结果,此结果的误差虽不能满足直接应用的要求,但通常能稳定在一定范围内,故可依此在粗定位点周边生成搜索域;在搜索域中再根据虾关节处的轮廓凹陷特征,精准定位目标点。粗定位方法的详细介绍见第3节,精确定位方法见第4节。

3.基于深度学习的粗定位方法

 

近年来,深度学习算法由于其在视觉、语音、文本等多个领域的出色表现,得到了飞速的发展和应用[16-17]。其中,卷积神经网络(convolutional neural networkCNN)作为一类经典的深度学习算法,在图像处理问题上展现了尤为卓越的性能。典型的卷积神经网络的核心思想是权值共享与局部连接,通常包含多个卷积层、池化层、全连接层以及Softmax分类层,通过有监督学习从样本中学习特征。其中卷积层对多个输入通道进行卷积求和,池化层进行下采样,层层递进中提取原始图像中的重要特征,输入分类器得到分类结果。CNN的详细原理参见文献[18],本文不再赘述。
 

较为经典的CNN模型包括AlexNet[18]VGG Net[7]ResNetresidual neural network[19]等,均在图像分类任务中表现出色。其中,VGGvisual geometry group)网络分类性能优秀、网络复杂度适中、运算速度较快,且在多个迁移学习任务中性能较好[20],故在本文中被选为对目标点进行粗定位的基准模型。经典的VGG网络包括VGG-16VGG-19网络,二者综合性能相似。由于VGG-16层数略少,便于快速计算,本文中最终选用VGG-16模型,通过微调其网络结构,并进行参数的迁移学习,得到适用于虾数据库、识别目标点的粗定位模型。

VGG-16网络通过大量3×3卷积核的组合与堆叠,提取出输入图像的细微特征。多个3×3卷积核的连续使用,可以获得与5×57×7卷积核相同的感受野,同时大大降低参数数量与计算复杂度,并具有较好的顽健性。VGG-16的具体网络结构如图5所示。


 5.jpg

5  VGG-16 网络架构

 

从图5可知,VGG-16卷积神经网络的深度为16层(13个卷积层+3个全连接层),故命名为VGG-16。首先,输入层为1224像素×224像素×3向量的图像,通过多个采用3×3滤波器的卷积层,其中常用连续2个或者3个滤波器堆叠,可获得更大的感受野。卷积层的滑动步长为1,并利用边界填充以保持图像维度不变;在池化层中,VGG-16网络采用2×2池化窗口,步长为2,用于减小卷积后的图像尺寸,并保证模型的平移不变性;全连接层包含3层,其通道数分别为409640961000个;最后的Softmax分类器可对1000个类别进行分类输出。

在虾的目标点粗定位模型中,需输出粗定位点在图像中的xy坐标值。因此,基于VGG-16网络将输出层改为224类,并分别建立模型训练输入图像与目标点xy坐标之间的关系,则输出的类别即可表示一个在224×224图像中的坐标点位置。可知,该模型包括卷积层、池化层、全连接层、Softmax分类层等4种结构,其中前3种结构与VGG-16相同,仅有分类层由原先的1000类标签置换为224类。模型的激活函数为ReLu函数。

基于包含百万幅量级图像的ImageNet数据库[20]VGG-16已拥有大量训练后的参数与权重,具备较强的深度特征学习能力,可有效提取图像的曲线、边缘、轮廓等特征。为了减少网络训练时间、提高训练效率、降低训练样本数量,本文利用已训练好的VGG-16网络作为预训练模型,通过迁移学习的方式调整部分参数[21-22],得到识别虾的关节点的粗定位模型。具体参数迁移方式如图6所示。 


 

 6.jpg

6  基于深度学习的迁移模型

 

如图6所示,关节点粗定位模型中的卷积层与池化层直接使用基于ImageNet数据集训练得到的VGG-16网络的参数,而全连接层的参数则由本文采集的虾数据集重新训练得到。具体流程如下。

1)选取原始训练样本

在虾数据集中包含不同姿态、尺寸、纹理等特征的虾身图片样本。随机从虾数据集中抽取一定比例的图片,作为原始训练样本。由于在流水线上虾的位置与姿态是随机的,为了在训练集中包含尽可能多的信息,基于原始图片,本文生成了不同角度的虾的数据,组成最终的训练集。具体来说,对于每一张原始训练样本,将图片中的虾每隔旋转一次,并进行放缩,从而生成144360÷5×2)个训练样本。

2)对虾的原始图片进行预处理

受实际拍摄条件所限,工业视觉系统得到的图片常常存在着大量的噪声,既可能出现周边的大块噪声,也存在散落在虾身附近的极细微散点噪声。因此,首先需要对原始图片进行去噪处理。本文通过剪裁虾身去除周边大块噪声,并进行高斯滤波去除散点噪声。去噪后,再对图片进行缩放,使得输入图像标准化,并符合基于VGG的粗定位网络的输入尺寸定义。

3)构建虾关节点的粗定位模型

基于VGG-16网络模型,构建卷积层、池化层与全连接层,用224类的Softmax分类器替换原有的1000类标签的分类层。

4)微调迁移学习

利用已训练好的VGG-16网络参数,迁移至所构建的虾关节点的粗定位模型,以确定后者的卷积层和池化层参数。

5)模型训练

冻结粗定位模型的卷积层和池化层的参数,仅对全连接层与Softmax层作训练。首先定义损失函数,随机初始化参数,设定学习速率和训练时间等,基于虾训练集进行训练与参数优化。

6)模型测试

从虾图像库中抽取余下的原始图片,作为测试样本集进行模型测试,以验证模型的精确度和速度。

 

4.基于生物特征识别的精确定位

 

在第3节中,基于深度学习的模型可给出粗定位点,将此定位点映射回原始图片,并根据此点位置提取邻域可生成搜索范围。由于粗定位点与目标点的误差在一定范围内,设定合理的阈值,可使得搜索范围包含实际目标点。由虾的生物特征可知,在关节点的轮廓处,会存在一个明显的凹陷,故此凹陷特征可用于精确定位目标关节点。

如图7所示,为了精确地提取轮廓线,便于后续处理,首先统一虾的姿态:对图片进行旋转使得虾身能放平摆正,并翻转使得虾背部在下方。如图8与图9所示,对放平后的虾身进行轮廓线提取,并根据粗定位点的位置确定搜索范围。基于对验证集样本的分析,99%以上的样本的粗定位误差小于5~6 mm,因此对粗定位点取6 mm领域作为搜索区域。


 7.jpg

7  精确定位流程

 8.jpg

8  粗定位点及搜索区域示意

9.jpg 

9  姿态调整后的虾轮廓线提取

 

在理想情况下,只需要对轮廓线上的凹陷点计算二次导数最大值的位置即可进行定位,但实际上,此方法并不可行。因为虾的轮廓线并不平滑,并且经常出现一些小的噪点导致导数值偏差较大。在实验中发现,即使对轮廓线进行多种平滑、去噪声等处理,效果依然欠佳。

本文设计的方法是利用轮廓线的整体特征。通过观察虾的轮廓可得知,在非关节点处,虾轮廓线整体是较为平滑的,故可以用线性函数精确地拟合,而在关节点处则恰好相反。因此,对于搜索区域内的虾轮廓线上的每一点,都可以对其及相邻的30个像素点进行直线拟合,并计算拟合精度,如图10所示。如果该点为非关节点,则拟合精度较高;如果该点为关节点则拟合精度明显偏低。最终,在搜索区域内拟合精度最低的点将被确定为目标关节点。使用此方法可以成功地消除噪声点及曲线不平滑的影响,准确定位目标点。


 10.jpg

10  基于寻找非平滑区域的精确定位

 

11中给出了两个基于生物特征进行精确定位的实测样本。可以看出,绿色的粗定位点与真实关节点有着明显偏移,甚至可能并不在轮廓线上,但都相距不远。所以基于粗定位点生成的搜索域通常可能包含目标点。而经过轮廓线提取与拟合后,精确定位得到的红色点则与真实目标点几乎重合,验证了整体算法的可行性。

 11.jpg

11  精确定位的实测样本

 

5.实验验证与讨论

为了训练模型以及定量地验证算法的性能,在搭建的测试平台上拍摄了3065张虾的图片,作为训练及测试样本。在实验中,2065张照片被用于训练与验证基于深度学习的粗定位模型,剩余1000张用于测试整体算法性能。

12中显示了使用深度学习模型对测试集的1000张实拍样本进行粗定位的精度,可以看出,对于89%的测试样本,粗定位可实现不大于3 mm误差的定位,并不能直接满足工业应用的要求。但是,对于99%的测试样本,定位误差均不大于5 mm。因此,可以看出,仅使用深度学习模型虽然不能直接解决问题,但可以稳定地生成粗定位点,确定目标点的所在范围。


 12.jpg

12  基于深度学习的粗定位误差分布

 

通过粗定位点确定搜索范围,之后在搜索域内提取虾的轮廓特征,并进行拟合、精确定位,最终得到的点与目标点的位置误差,如图13所示。可以看出,此时误差相比粗定位误差大幅减小,其中97.2%的点满足不大于3 mm误差的要求,同时平均误差仅为1.3 mm。因此,结合深度学习的粗定位与生物特征的微调方案,可初步满足工业应用的需求。


 13.jpg

13  基于生物特征的精确定位的误差分布

 

本文也一一分析了误差超出阈值的样本,总结得知,误定位一般有3类情况:1)粗定位误差过大导致搜索范围错误;2)未滤除的非典型噪声干扰轮廓线提取与精确定位;3)虾身缺失导致识别到其他关节点。其中,第一类情况常见于形态过异的虾,如图14a)所示,虾身过于蜷曲且首尾相连,与训练样本差异较大,导致深度学习模型输出的粗定位点有较大误差。此类问题有望通过增加训练样本解决。第二类情况如图14b)所示,虾身附近偶尔有离散的虾须等,对精确定位环节形成了噪声干扰,需要更有针对性的预处理程序去除噪声。而第三类虾身缺失的情况,可能有两种原因:虾身位置超出拍摄视野;前序工序中误截虾尾等。此时粗定位模型往往将虾整体当作小尺寸样本,从而使得输出的定位点比实际目标点位置更加远离尾部,导致定位到其他关节处,具体参见图14c),此类情况难以通过算法手段避免。

由于工业流水线对机器人的抓取速度有较高的要求,本文设计的算法将对一张图片的处理时间控制在200 ms内,包含整个流程——从原始图片输入至精确定位点输出的处理时间,可满足工业应用对运算时间的要求。


  14.jpg

14  3类典型的误检样本


6.结束语

针对工业自动化中使用机器人进行食物自动拣选的目标点识别问题,本文提出了一种结合深度学习与生物特征识别的方法。首选基于深度学习算法进行迁移学习,在目标数据库上训练得到可粗定位目标点的模型,并根据此点确定目标点所在的搜索域。之后在搜索范围内根据生物特征精确定位目标点。
 

本文所提出的方法在虾的实测数据上进行了建模与测试,实验结果证明,深度学习模型较难直接给出精确的目标点位置,但可以提供与目标点较接近的粗定位点,从而得到能涵盖目标点的搜索域。之后利用生物特征识别,基于轮廓线提取与拟合,可以在此搜索域内精准地定位目标点。
 

在包含1000个实拍样本的测试集上,本文提出的混合模型达到97.2%的目标点识别精度,算法平均执行时间小于200 ms,已能初步满足工业应用的要求。 





 



https://wap.sciencenet.cn/blog-951291-1187863.html

上一篇:基于UWB定位技术的多移动机器人编队控制
下一篇:平行装卸:迈向智慧物流的智能技术

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2022-5-29 07:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部