基于YOLO v2的莲蓬快速识别研究

2018-10-20 05:52黄小杭梁智豪何子俊黄晨华李湘勤
现代农业科技 2018年13期
关键词:目标检测莲蓬识别

黄小杭 梁智豪 何子俊 黄晨华 李湘勤

摘要 受莲蓬形状外观和生长环境影响,传统计算机视觉算法识别莲蓬存在效率与精度不佳的问题。本文研究采用YOLO v2算法进行莲蓬识别的方式,通过扩充莲蓬检测数据集、K-means维度聚类、深度可分离卷积网络结构和多分辨率图像对模型微调等方法实现提高识别精度、鲁棒性与识别速度。对比Darknet-19、Tiny Darknet与DS Tiny Darknet算法,结果表明,本文研究的识别方式可以达到102.1 fps的识别速率,可实现在复杂环境下对莲蓬的快速识别,满足莲蓬采摘机器人在采摘过程中对实时视觉信息的需求。

关键词 莲蓬;识别;YOLO v2;深度学习;目标检测;模型加速

中图分类号 TP181 文献标识码 A 文章编号 1007-5739(2018)13-0164-04

Research on Lotus Quick Recognition Based on YOLO v2

HUANG Xiao-hang LIANG Zhi-hao HE Zi-jun HUANG Chen-hua LI Xiang-qin *

(School of Physics and Mechanical & Electrical Engineering,Shaoguan University,Shaoguan Guangdong 512005)

Abstract Affected by the shape and growth environment of lotus,the traditional computer vision algorithm has the problems of poor efficiency and precision.In this paper,the scheme of using YOLO v2 algorithm to recognize the lotus was proposed.Through expanding lotus detection data set,K-means dimension clustering,depthwise separable convolution network,multi-scale classified network fine-tuning and other methods to improve the recognition accuracy,robustness and recognition speed.Contrasting the actual performance of Darknet-19,Tiny Darknet and DS Tiny Darknet with the YOLO v2 algorithm,the results showed that the scheme could achieve the recognition rate of 102.1 fps,realize the quick recognition of the lotus in a complex environment,so as to meet the realtime vision demand for picking robot in picking process.

Key words lotus;recognition;YOLO v2;deep learning;object detection;model acceleration

莲蓬是一种特种水生经济作物,具有生产区域性强、种植面积广、生命周期长、营养价值丰富、经济价值高的特点。经过几千年的不断培育与发展,我国已成为莲子、莲藕生产和出口大国,其市场需求量大,前景广阔,经济效益可观[1-3]。

莲蓬的采摘期一般集中在6—10月,其中7—8月收采量最高,为了获得高营养价值的莲子,需要在莲子生长最盛时期进行采摘。目前,国内莲蓬的采摘依然依赖于人工,据调查人工收获费用占生产成本的50%~70%[4]。人工采摘效率低下,無法满足市场对于莲蓬时令性和新鲜度的要求。实现莲蓬的采摘自动化,对于解决莲蓬采摘作业中人工采摘工作强度大、采摘难度大和采摘效率低下等问题,以及降低人工成本、提高采摘品质、增强莲蓬的市场竞争力均具有十分重要的意义。

莲蓬的检测、定位以及跟踪是莲蓬采摘机器人视觉系统中的重要任务。莲蓬是一种水生植物,新鲜莲蓬呈嫩绿色,莲叶呈翠绿色,莲花颜色偏红或白色,莲蓬与莲叶颜色差异不明显,与莲花形状相似、颜色差异明显。除此之外,莲蓬生长环境(图1)中存在着水面、山峦、天空等背景元素,且在风力的影响下,莲蓬存在着不规律的摆动现象。受以上因素的影响,利用基于RGB分量识别的方法[5]具有一定的困难。

在现有的莲蓬识别方法中,文献[6]采用了PCNN分割与形态学相结合的方法预处理图像,提取图像的颜色与形状特征并根据特征向量的特点利用PCA算法进行降维,再运用K-means聚类方法获得识别模型。莲蓬识别准确率可达88.17%,然而其图像预处理需要1~3 s,识别时长0.131 s,且模型训练较复杂。莲蓬识别任务可看成是具一般性的目标检测任务,在卷积神经网络出现之前,DPM(Deformable Parts Model)[7]是一种经典的目标检测算法,其核心思想是采用支持向量机(SVM)[8]算法对滑动窗口的HOG[9]特征进行分类,在行人检测[10]等目标检测任务上DPM具有较好的检测效果。近年来,以卷积神经网络(Convolutional Neural Network,CNN)为核心的深度学习的图像识别算法凭借其在复杂图像特征提取上的优势[11],在目标检测领域取得了革命性进展。2014年,Ross Girshick等[12]在CVPR大会上提出了R-CNN目标检测网络,R-CNN利用选择性搜索(Selective Search)的方法代替了滑动窗口,在VOC 2012的数据集上将目标检测的平均准确率(mean average precision,mAP)提升了30%。2015年,Ross Girshick[13]和Shaoqing Ren等[14]相继提出了Fast R-CNN和Faster R-CNN,Faster R-CNN引入了Region Proposal Network(RPN),使候选区域的提取速度和精度获得了大幅度提升,检测帧速率达5 fps。而在2016年,Joseph Redmon等[15]提出了YOLO模型,将目标检测帧速率提高到了45 fps。之后,Joseph Redmon等[16]再次提出了YOLO v2,相较于前代YOLO,其mAP和检测速度均得到了显著提高。从VOC 2007数据集的模型检测测试结果来看,YOLO v2的检测速度为67 fps,mAP可达到76.8%,在目标检测领域表现出色,该模型与其他目标检测模型在VOC 2007数据集上测试数据对比如表1所示。

本文将莲蓬识别与定位问题转化成目标检测问题,提出一种基于YOLO v2的莲蓬快速检测方法,实现莲蓬的实时检测。结合莲蓬种植地实地考察和互联网资源,收集大量的莲蓬图片,并进一步筛选制作成莲蓬检测数据集,通过对数据集增加扰动而对数据集进行扩充。为了减少模型计算量、提高检测速率,结合深度可分离网络结构提出DS Tiny Dar-knet作为莲蓬的特征提取网络。通过对预选区域的维度聚类,多分辨率预训练,提高了检测模型的检测精度。选取了Darknet-19、Tiny Darknet和本文改进的基于YOLO v2的检测模型,通过试验对比分析各分类模型在莲蓬检测任务中的效果。

1 检测方法

1.1 YOLO v2检测模型的特点

YOLO v2是一个基于卷积神经网络的目标检测模型,仅通过单个卷积神经网络即可以预测图像中若干个目标的位置、尺寸、类别及其置信度。YOLO v2在每一个卷积层增加了分批数据标准化的操作,这种操作可以允许在训练一开始使用较高的学习率,加速模型收敛,并有效防止过拟合,提高了模型的范化能力。在候选区域的提取上引入了预选区域的概念,尽管预选区域的引入使模型的mAP降低,却大幅提高了召回率。由于采用了卷积层代替了全连接层,输入图像的尺寸可以随时改变,因而可以通过多尺度训练的方法提高YOLO v2应对不同尺寸图片时的检测鲁棒性。

1.2 莲蓬检测过程

在莲蓬检测的过程中选取合适的候选区域,并对这些候选区域进行预测,最后对预测结果筛选,得到置信度较高的预测框。其中,目标的置信度公式如下:

Conf(Object)=Pr(Object)×IOU(Pred, Truth)

式中,Pr(Object)表示预测框是否存在目标物体(存在目标物体则为1,不存在为0),IOU(Pred, Truth)表示真实框与预测框交并比。

IOU(Pred, Truth)=

本文莲蓬检测模型基于YOLO v2,采用了类似于RPN[14](Region Proposal Network)的网络结构,利用卷积层预测框相对于预选区域的偏移量和置信度,从而获得莲蓬目标的位置和概率。与Faster R-CNN的RPN网络不同的是,本文模型采用sigmoid函数对预测偏移量进行约束,防止预测框与预选区域初始位置距离较远,导致模型需要很长的时间确定目标位置。

利用采样因子为32的卷积层对输入特征图进行降采样,使输入网络为416×416网络输出得到13×13的卷积特征图,对应原图中分为13×13个预测空间位置(cell),每个cell的中心位置作为预选区域的起始位置,并在其中放置若干个不同形状大小的预选区域作为候选区域。

每个预测框有5个参数,即tx、ty、tw、th、to。这5个参数的预测公式如下:

bx=σ(tx)+cx,by=σ(ty)+cy

bw=pw e,bh=phe

Conf(Object)=σ(to)

式中,cx、cy为cell的中心坐标,pw、ph为预选区域的初始尺寸,σ为sigmoid函数。

在得到每个预测框的置信度后,通过设置阈值,去掉低分的预测框,然后对剩下的BoundingBox进行非极大抑制(Non Maximum Suppression,NMS)处理,得到多组高分Boun-dingBox,输出目标位置参数。

1.3 分类模型

莲蓬检测模型是以莲蓬图像分类网络作为基础特征提取网络,在此基础上对候选区域进行判断,从而完成目标检测任务[17]。因此,优化分类模型是提高检测网络效率的重要手段。

YOLO v2是以Darknet-19[18]作为基础分类模型。Darknet-19包含19个卷积层和5个最大池化层,在网络最后采用了全局平均池化(average pooling),采用了类似Inception Net[19]的结构,使用了大量3×3卷积层,并在卷积层之间插入1×1卷积层压缩特征。

Tiny Darknet[18]是一个轻量级的分类网络,其网络结构如图2所示。Tiny Darknet仅由8层卷积层、6层最大池化层和全局平均池化层组成。一次前向传播仅需8.1亿次计算,而Darknet-19一次前向传播则需要55.8亿次计算。尽管Tiny Darknet在计算量上远远低于Darknet-19,但是由于其网络深度有限,其mAP却相对Darknet-19更低些。对于莲蓬检测这种单一目标的检测任务来说,其精度已经可以满足基本需求,但其在速度上还有优化的空间。因此,后文以Tiny Darknet和深度可分离卷积网络结构为基础,提出了以DS Tiny Darknet作为莲蓬的特征提取网络。

2 模型改进与优化

2.1 基于深度可分离结构的特征提取网络

为了降低莲蓬识别的计算量,满足莲蓬采摘场合对检测实时性的要求,必须对模型的运算量再做一定的优化。因此,本文借鉴了Xception[20]模型结构,在Tiny Darknet的基础上提出了DS Tiny Darknet特征提取网络。DS Tiny Darknet主要采用了深度可分离网络(Depthwise Separable Convolution)[20]的网络结构。设Dk为卷积核尺寸,M是输入通道数,N是输出通道数,输入输出的特征图尺寸为Dif和Dof,网络结构变换图如图3所示。

可以看出,标准卷积操作(图3左)的计算复杂度为Dk×Dk×M×N×Dif×Dif,计算复杂度随M和N的增加而急剧增加,在Tiny Darknet和Darknet-19等采用金字塔结构的分类网络中,随着网络深度增加,输入输出通道数都成倍增加,计算复杂度大幅增加。深度可分离卷积网络(图3右)由通道分离卷积层(Depthwise Convolution)和逐点卷积层(Pointwise Convolution)组成。首先对每个通道使用单个卷积核進行卷积操作,然后再用逐点卷积层中1×1的卷积核对depthwise层输出的所有单通道的feature map进行线性叠加。在每层之间都使用了Batch Normalization操作和Leaky-ReLU激活函数。Depthwise Separable Convolution 的计算复杂度为:

Dk×Dk×M×Dif×Dif+M×N×Dif×Dif

深度可分离卷积与标准卷积相比,可减少计算量:

Tiny Darknet只使用了3×3的卷积核,进行上述深度可分离卷积操作后,构成DS Tiny Darknet。其计算复杂度可减少约为原来的1/9,准确率也只有微小的下降。结合检测模型,构成DS Tiny-YOLO。经过深度可分离卷积网络结构的优化后,模型识别速度得到了大幅度提升。

2.2 莲蓬候选区域参数的聚类

YOLO v2虽然在VOC数据集上均取得了较好的检测效果,但是其预选区域是根据VOC数据集的特点聚类的,部分预选区域长宽比过大,与莲蓬形状特征差距较大,对莲蓬定位的精度较差,不适合莲蓬检测任务。对此,本文通过对莲蓬数据集聚类得到合适的预选区域。数据集的标记框參数有5个,分别是class、x、y、w、h。其中,class为目标类别索引,x和y是标记框的中心坐标,w和h是标记框的宽度和高度。卷积神经网络具有平移不变性,因而只需要通过K-means对 w和h聚类即可。在距离度量上,本文采用IOU代替标准K-means中的欧氏距离:

d(box,centroid)=1-IOU(Pred, Truth)

且令x,y为0,使标记框都在同一位置上,方便对比不同标记框之间的相似度,而不受标记框位置的影响。

在莲蓬检测目标中,本文采用了K-means++的算法进行聚类获得预选区域。对于聚类中k的选取,采用误差平方和(Sum of the Squared Error,SSE)作为判别依据,当聚类个数达到一定值时,再增加聚类个数SSE的变化也很小,因而SSE函数的拐点横坐标即可认为是最优的k。采用K-means++的聚类过程中,SSE的曲线如图4所示。可以看出,k达到5时,SSE的变化趋势减小。当k=5时,K-means聚类得出的值再分别乘上每个cell的尺寸(grid size)即可得到预选区域的参数,因为输入尺寸为416×416,输出尺寸为13×13,则grid size为416/13=32,最终得到的预选区域的参数分别为(0.003,0.007)、(0.037,0.067)、(0.142,0.136)、(0.305,0.255)、(0.419,0.540),聚类分布如图5所示。

2.3 模型的预训练

模型的预训练是网络训练过程的重要环节,直接决定了训练的收敛速度和模型的检测效果。对DS Tiny Darknet特征提取网络采用VOC 2007+2012数据集作为预训练数据进行训练。由于网络结构限制,输入的图像均会被统一成相同大小,对此,在得到预训练模型后,本文对预训练模型作如下调整处理。一是选取一部分低分辨率(224×224)莲蓬分类数据集对预训练模型微调(fine-tuning),使之适应莲蓬外形特征;二是配置预训练模型的输入图像尺寸为448×448,在莲蓬数据集上训练10个循环,使分类网络适应较高分辨率下莲蓬特征。

在经过上述预训练微调过程后,将预训练分类网络应用于检测算法,可有效提高YOLO v2模型检测的准确率。

3 效果检测试验

3.1 试验平台

本试验是在PC端上完成,PC配置为CPU Intel Core i5-7300、显卡GTX1060、内存8G,训练和测试框架均为Darknet。

3.2 莲蓬训练集制作与扩充

在试验中,采用了从网络上和实地拍摄收集的莲蓬图片作为莲蓬识别模型的数据样本,如图6所示,共计354张。其中,每张图片均包含若干个莲蓬,共有652个人工标记的莲蓬样本。

为了提高模型应对不同光照和方向模糊条件的下检测鲁棒性,需要对原数据集进行扩充。本文设置了4种饱和度、3种曝光度、3种色调、2种不同参数的方向模糊共计72种组合,可在原数据集上生成25 488张图片,另外在模型中设置了7种不同的输入尺寸,每训练10个批(Batchs)随机更换1次尺寸,以适应不同大小的莲蓬。经上述操作,丰富了训练数据集,同时也可防止过拟合。

3.3 试验对比

在试验中,从莲蓬种植地录制的若干视频文件中截取了100张图片并标注,作为本次对比试验的测试集。分别使用YOLO v2、Tiny Darknet和DS Tiny Darknet与YOLO v2配合进行目标检测效果试验对比。

3.4 结果分析

通过试验分析,得出了3种分类模型的平均准确率、召回率(Recall)和识别帧率,测试结果如表2所示,DS Tiny Da-rknet的检测效果如图7所示。

YOLO v2+DS Tiny Darknet模型的检测速度是YOLO v2+Darknet-19的5.8倍,是YOLO v2+Tiny Darknet的3.2倍,模型运行速度得到了显著提高,基本满足了莲蓬的快速检测需求。从表2还可以看出,YOLO v2+Darknet-19的平均准确率和召回率均最高,YOLO v2+Tiny Darknet与YOLO v2+DS Tiny Darknet在平均准确率和召回率上与YOLO v2+Darknet-19差距较大。相比于YOLO v2+Tiny Darknet,YOLO v2+DS Tiny Darknet仅准确率稍有降低。故YOLO v2+DS Tiny Darknet在检测准确率上略有不足,但其检测速度和检测质量已经可以为莲蓬采摘任务提供实时的视觉信息。

4 结论与讨论

针对莲蓬识别的任务,本文研究基于YOLO v2的莲蓬识别方式,利用对莲蓬候选区域聚类、预训练和深度可分离网络结构对模型加速等改进措施,制作、扩充了莲蓬图像数据集,使模型对复杂场景下莲蓬识别的鲁棒性获得增强,并且识别速度也得到提高,从而满足莲蓬快速识别的需求。最后,本研究还讨论了改进模型与Darknet-19和Tiny Darknet的试验对比,结果表明,改进模型在速度上更胜一筹。识别效率的提高在实际应用中可节约计算设备成本,提高多设备并行协作的能力,对降低莲蓬自动识别设备成本、提高识别效率具有重要借鉴意义。

5 参考文献

[1] 吴芳彤,肖贵平.莲子的营养保健价值及其开发应用[J].亚热带农业研究,2012,8(4):274-278.

[2] 鲁运江.莲子的营养价值与食疗保健[J].蔬菜,2001(6):36.

[3] 潘林娜,梁华俤,郭桂玲.莲子的营养价值与加工工艺[J].食品工业科技,1993(1):29-32.

[4] 鲁运江.我国子莲生产现状、问题及发展对策[J].蔬菜,2001(4):4-6.

[5] PARRISH E A,GOKSEL A K.Pictorial pattern recognition applied to fruit harvesting[J]. Trans Asae, 1977, 20(5): 822-827.

[6] 唐书萍.基于机器视觉的莲蓬识别关键技术研究[D].镇江:江苏大学,2016.

[7] FELZENSZWALB P F,GIRSHICK R B,Mcallester D,et al. Object det-ection with discriminatively trained part-based models[J].IEEE Trans on Pattern Analysis and Machine Intelligence,2010,32(9):1627-1645.

[8] CORTES C,VAPNIK V.Support-Vector Networks[J].Machine Learning,1995,20(3):273-297.

[9] DALAL N,TRIGGS B.Histograms of oriented gradients for human det-ection[J].IEEE Computer Society Conference on Computer Vision & Pat-tern Recognition,2005,1(12):886-893.

[10] 陈芝垚. 基于DPM的行人检测和行人特征提取算法研究[D].成都:电子科技大学,2016.

[11] LECUN Y,BENGIO Y,HINTON G.Deep learning[J].Nature,2015,521(7553):436-444.

[12] GIRSHICK R,DONAHUE J,DARRELL T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition.Columbus,2014:580-587.

[13] GIRSHICK R.Fast R-CNN.[EB/OL].[2018-02-21].https://blog.csdn.net/xiaqunfeng123/article/details/78716060.

[14] REN S,HE K,GIRSHICK R,et al.Faster r-cnn:Towards real-time ob-ject detection with region proposal networks[J].IEEE Trans Pattern Anal Mach Intell,2017,39(6):1137-1149.

[15] REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:Uni-fied,real-time object detection[EB/OL].[2018-02-21].https://arxiv.org/

abs/1506.02640. 2016:779-788.

[16] REDMON J,FARHADI A.YOLO9000:Better,Faster,Stronger[EB/OL].[2018-02-21].https://blog.csdn.net/zizi7/article/details/75020156.

[17] 張素洁,赵怀慈.最优聚类个数和初始聚类中心点选取算法研究[J].计算机应用研究,2017,34(6):1617-1620.

[18] REDMON J.Darknet:Open source neural networks in c[EB/OL].[2018-02-21].http://pjreddie.com/darknet/,2013-2016.

[19] SZEGEDY C,IOFFE S,VANHOUCKE V,et al.Inception-v4,Inception-ResNet and the impact of residual connections on learning[EB/OL].[2018-02-21].https://blog.csdn.net/kangroger/article/details/69488642.

[20] CHOLLET F.Xception:Deep learning with depthwise separable conv-olutions[EB/OL].[2018-02-21].https://www.computer.org/csdl/procee-dings/cvpr/2017/0457/00/0457b800-abs.html.

猜你喜欢
目标检测莲蓬识别
小莲蓬
采摘莲蓬
狐狸的莲蓬
视频中目标检测算法研究
行为识别中的人体运动目标检测方法
移动机器人图像目标识别
家乡的莲蓬
论犯罪危险人格的识别
基于P3电位的目标检测研究