基于改进YOLO v3网络的夜间环境柑橘识别方法
2020-04-27熊俊涛郑镇辉梁嘉恩刘柏林孙宝霞
熊俊涛 郑镇辉 梁嘉恩 钟 灼 刘柏林 孙宝霞
(1.华南农业大学数学与信息学院, 广州 510642; 2.广东机电职业技术学院, 广州 510515)
0 引言
我国为世界上重要的水果生产国之一, 截至2017年, 我国柑橘产量3 816.78万t, 占世界柑橘产量的四分之一。采摘是水果生产过程中劳动力投入最大的作业环节, 柑橘采摘劳动量占整个生产过程工作量的50%~70%, 而所处环境的复杂性导致水果采摘仍然以人工作业为主[1]。随着控制技术和计算机的发展,水果采摘机器人得以快速发展,并投入农业生产[2],对推动农业自动化、智能化生产具有极其重要的价值和意义。目前,大部分采摘机器人都是白天作业,如能充分利用夜间时间进行采摘作业,将提高全天平均生产效率[3]。在野外复杂环境下,果实精准识别与定位是采摘机器人高效完成采摘任务的先决条件,其中识别精度决定了采摘机器人对采摘位置定位的精确性,对成功采摘至关重要。
LU等[4]提出的水果识别方法需要在白天提供人工照明的条件下才有稳定的识别准确率,识别算法受到光照因素影响。LINKER等[5]开发并验证了一种用于估算自然光照下果园彩色图像中苹果数量的算法,其检测正确率达85%以上,但白天光照造成大量的假阳性检测,对检测算法影响巨大。近年来,一些研究者对夜间水果识别进行了探索,XIONG等[6]利用RGB颜色空间的R分量图结合改进的C-V水平集模型,实现了夜间绿色葡萄的识别,其算法识别正确率为92%。项荣等[7]利用夜间主动照明在重叠区域内形成的阴影,采用基于重叠边缘距离就近法实现了夜间双果重叠番茄的前后位置关系判断及未被遮挡番茄的识别,算法识别正确率在83.3%以上。PAYNE等[8]利用密集像素分割方法,提取超级像素中SIFT算子,结合使用支持向量机(SVM)和基于颜色和椭圆形状的模型,实现了夜间树木冠层图像中芒果的分割和检测,算法检测正确率达84%以上。
可见,夜间采摘在提供稳定的人工光照条件下,减弱了白天不同时间段光强不同和光照不均匀对水果识别的影响,提高了水果的识别正确率,这为夜间采摘机器人的投入应用提供了技术支撑[9]。夜间水果识别研究存在以下难点:夜间小体积果实、重叠果实的识别率较低;夜间识别方法步骤复杂,采用多阶段人工特征提取方法,不适合大样本数据集,识别效果有待进一步提升;目前,夜间水果识别方法效率不高。此外,一些研究表明,采用的检测方法受限于温度、设备成本、拍摄角度等因素,导致果实检测成本和复杂性升高[10-14]。
本文提出通过深度学习方式对柑橘类果实进行检测识别。目前,目标检测领域的深度学习方法主要分为两类:一是基于区域生成网络(Region proposal network,RPN)的检测方法,该方法先由算法生成一系列作为样本的候选框,再通过卷积神经网络(CNN)进行样本分类;二是基于回归的检测方法,该方法不用产生候选框,直接将目标边框定位的问题转化为回归问题处理。前者在检测准确率和定位精度上占有优势,后者在算法速度上占有优势。为了进一步提高后者的检测精度,研究者常常通过深层CNN[15-16]等网络来提取更抽象、更高维的特征,以获得更优的检测效果。但深层CNN往往导致更高的计算复杂度,同时存在浅层信息随着卷积操作而丢失和梯度消失的问题[17]。Dense Net是GAO等[18]提出的一种高效卷积神经网络,通过建立前面所有层与后面层的密集连接,使得后面层融合了前面所有层的信息,在高层特征中保留各级底层特征,实现了特征重用,有效解决了网络深度和梯度消失问题,进一步提高了模型检测的分类精度[19]。
对树上目标果实识别的精准性和实时性是影响采摘机器人高效作业的重要因素,为实现野外夜间复杂环境下成熟柑橘的精确、快速识别和高效采摘,本文对YOLO v3深度卷积神经网络进行改进,借鉴残差网络和密集连接网络,提出Des-YOLO v3网络结构,有效减少模型参数,同时保证浅层特征不丢失,进一步实现网络多层特征的复用和融合,以提高对小目标和重叠遮挡果实识别的鲁棒性。
1 材料与方法
1.1 图像采集
图像采集于广东省广州市华南农业大学的柑橘园,拍摄相机为Kinect V2,夜间柑橘图像采集示意图如图1所示。对果园柑橘进行不同角度的拍摄,图像尺寸为1 920像素×1 080像素,彩色图像保存为png格式,共拍摄了2 000幅图像,并筛选出清晰的、具有代表性的、遮挡和完整的柑橘图像1 600幅。遮挡图像是指柑橘面积遮挡超过1/3,遮挡图像为749幅,完整图像为851幅,其中1 200幅作为训练集,剩余400幅作为测试集。这些图像于20:00—22:30之间拍摄,当晚没有月光,柑橘园中除了环形光源系统外无其他光源,环形光源品牌为鹰视科技,外径为100 mm,内径为40 mm,高为22 mm,输入电压为12 V,其中光源系统最大光照强度为35 000 lx,光源放大图如图2所示,相机放大图如图3所示。
图1 夜间柑橘图像采集示意图Fig.1 Image acquisition of mature citrus at nighttime
图2 环形光源放大图Fig.2 Enlarged view of circular light source
图3 相机放大图Fig.3 Local enlarged image of camera
1.2 YOLO v3网络
相对于其它目标检测与识别方法(如R-CNN系列),YOLO v3网络基于回归的方法来提取特征,无需生成大量的候选窗口,而直接采用单个神经网络对输入的图像进行目标预测和分类, 实现了端到端的物体检测。该算法在保证准确率较高的情况下,可快速预测并分类目标,更加适合现场应用环境。
如图4所示,YOLO v3网络将输入图像按特征图尺寸划分成S×S(S=7)的网格, 如果一个物体的中心落在某个单元格内,则由该单元格负责检测该物体。单元格会输出多个预测框和每个预测框的置信度,抛弃置信度低的预测框并通过非极大值抑制算法最终定位柑橘位置。其中预测框包含参数c、x、y、w、h,(x,y)为候选框的中心坐标,w、h为候选框的宽度和高度,c(c=1)为类型。
图4 YOLO v3检测网络Fig.4 YOLO v3 detection network
1.3 改进YOLO v3网络
YOLO v3网络是目标检测算法YOLO系列的第3个版本,该网络在VOC2007数据集上具有较高的检测精度和速度,检测性能优异,优于Faster R-CNN、SSD和YOLO等算法。但在进行夜间成熟柑橘识别试验中发现,YOLO v3网络存在小目标漏检的缺点,检测精度有待提高。同时该网络采用DarkNet53作为backbone网络,该框架性能强大但网络层数太多,导致运算量较大。针对以上缺点,本文借鉴残差网络和密集连接网络思想 ,提出了Des-YOLO v3网络结构,进一步提高了算法性能、缩小了运算成本。
1.3.1残差网络
网络深度对于网络的性能至关重要,深层网络可以提取到高效特征进行识别,但网络的性能 (准确率) 会随着网络深度的增加迅速达到饱和, 甚至开始迅速下降,称其为退化问题。为了解决网络退化问题并能够训练上千层的网络,何凯明等于2015年提出了残差网络(ResNet)模型,其核心为残差单元, 如图5所示。
图5 残差网络基本模块Fig.5 Basic module of residual network
图5中x为网络输入,G(x)为期望输出,ResNet只是学习输出和输入的差G(x)-x, 即残差F(x)。通过执行恒等映射,后面的层可通过支路x直接学习残差, 并且反向传播更易将梯度回传。当网络达到最优,该模块将被置0,由恒等映射向下方传递特征同时保持网络能一直处于最优状态,而不受层数过多的影响。残差单元可定义为
yk=f(xk+F(xk,wk))
(1)
其中
f=max(0,x)
式中xk、yk——第k个残差单元的输入和输出
f——激活函数,一般为修正线性单元(Rectified linear unit,ReLU)
wk——卷积核[20]
1.3.2密集连接网络
为了有效减少模型参数,同时尽可能在高层特征中保留各级底层特征 (包括原始图像信息) ,进一步实现网络多层特征的复用和融合, 本文借鉴了密集连接网络(Dense Net)的思想。
如图6所示,密集连接网络由密集连接块(Dense Block)和转换层(Transition Layer)两种基本结构组成。在密集连接块1中,模块的层间变换可表示为
xk=Hk([x0,x1,…,xk-1])
(2)
式中x0——密集连接块的输入特征图
xk——第k层的输出
Hk——层间变换函数
[x0,x1,…,xk-1]表示从输入层到第k-1层网络特征图的连接。Hk包含6个连续非线性变换,依次为BN、ReLU、Conv (1, 1)、BN、ReLU、Conv (3, 3)[21]。
图6 密集网络结构图Fig.6 Dense network structure diagram
1.3.3Des-YOLO v3网络
在保证算法的实时性同时,应尽可能满足并提高采摘机器人对树上目标果实识别的精准性。相比YOLO v3_Tiny的轻量和高速,YOLO v3_DarkNet53网络则是在保证实时性的基础上追求更高的性能。因此本文选取具有较高检测精度和速度的DarkNet53作为YOLO v3的基础网络。通过借鉴残差网络和密集连接网络,在YOLO v3深度卷积神经网络的基础上进行多次改进和试验验证,提出了Des-YOLO v3网络,其网络参数如表1所示。
如表1所示,Des-YOLO v3网络对输入图像进行1次密集连接卷积和3次残差卷积提取特征,与原框架DarkNet53相比,Des-YOLO v3浅层网络采用密集连接卷积块,浅层特征可以更好更快地传达到深层卷积,实现网络多层特征的复用和融合,进一步改善了整个网络的信息传递效率和梯度传递效率,有利于回归预测中上采样与浅层特征的结合以进行目标检测。在特征提取网络的后半部分,Des-YOLO v3网络保持采用残差网络,通过3组残差块加深特征提取网络结构,提高模型对图像深层特征的选择与提取能力。最后Des-YOLO v3网络使用类似FPN网络的尺度金字塔结构,通过2次上采样并与网络上层中相同尺寸的特征图谱拼接,进行3次回归预测,实现对不同尺寸目标的多尺度检测。此外,Des-YOLO v3网络在保证模型具有较高预测准确率的基础上缩减了网络的卷积层数量,减小了模型尺寸和计算量。
表1 Des-YOLO v3网络参数Tab.1 Network parameters of Des-YOLO v3
Des-YOLO v3网络架构如图7所示。CBR是Des-YOLO v3网络的基本组件,包括卷积、批量归一化 (Batch normalization, BN)、ReLU (Leaky ReLU)操作;Dense为密集连接块,其中包含2个卷积操作,该模块将卷积操作前后的特征图进行拼接,实现网络多层特征的复用和融合;Res Block为残差块,其中Res_unit*n表示含有n个残差单元,使用残差结构可以让网络结构更深,获得高维特征以提高预测准确率。
图7 Des-YOLO v3 架构图Fig.7 Des-YOLO v3 architecture diagram
2 试验结果与分析
2.1 试验配置与识别效果
试验采用DarkNet53深度学习框架,计算机配置为Intel Core i7-8700HQ CPU,3.20 GHz×12,显卡为GeForce GTX 1080,操作系统为Ubuntu16.04LTS,NVIDIA 430.26驱动,CUDA 8.0.61版本,CUDNN神经网络加速库版本为5.1.1,训练设置如下:
(1)参数设置:每次迭代训练的样本数为64,共16批次,进行50 000次迭代;动量因子设为0.9;衰减系数设为0.000 5;学习率调整策略采用steps,初始学习率设为0.001,当网络迭代40 000次和45 000次时,学习率依次降低为0.000 1和0.000 01。
(2)训练策略:在训练过程中, 采用多尺度训练策略,同时通过调整饱和度、曝光量以及色调等方式来生成更多训练样本, 提高网络对不同分辨率图像的鲁棒性和准确率。
图8为Des-YOLO v3网络在训练时的平均损失值随迭代次数的变化曲线,从图中可以看到,当网络迭代超过24 000次后,损失值基本趋于平稳,下降到0.24左右。从参数收敛情况来看, 网络训练结果理想。
图8 损失值变化曲线Fig.8 Loss changing graph
Des-YOLO v3网络对测试集中各种环境下的柑橘果实进行识别的效果如图9所示。
2.2 柑橘识别试验和结果分析
本研究设计并进行了夜间成熟柑橘识别试验,由于在实际柑橘图像中果实对象的信息往往不同,相应地算法检测效果会受到不同程度的影响,如在果实稀疏完整的图像中,果实对象比较完整清晰,识别难度低;而在果实重叠遮挡图像中,有可能存在果实过小、粘连、相互遮挡或被果树枝叶遮挡等情况,增加了果实检测的难度[22]。因此在本节中,设计了YOLO v3和Des-YOLO v3的对比识别试验,将原始测试集分为果实稀疏完整和果实遮挡2个梯度,目的是对比分析2种识别网络在以上两种情况下的检测性能。试验采用精确率 (precision)、召回率(recall)和F1值作为评价标准,计算公式为
图9 Des-YOLO v3网络检测效果图Fig.9 Des-YOLO v3detection results
(3)
(4)
(5)
式中TP——真正例数FP——假正例数
FN——假负例数
F1——查准率与查全率的调和平均数
P——精确率R——召回率
柑橘识别试验将400幅原始测试图像分成2个梯度,每个梯度包括200幅图像作为数据集。分别使用YOLO v3网络和Des-YOLO v3网络对两个梯度的数据集进行检测,图10为两种网络P、R关系曲线,图11为2种网络的识别效果图。
图10 YOLO v3网络与Des-YOLO v3网络的P、R关系曲线对比Fig.10 Comparison of P and R curves for YOLO v3 network and Des-YOLO v3 network
图11 识别效果对比Fig.11 Comparison diagrams of detection effect
从图10和图11可以看出,Des-YOLO v3网络整体性能明显优于YOLO v3网络。Des-YOLO v3网络通过应用密集连接模块与残差模块,进一步提高网络对图像深层高效特征的提取能力,同时加强网络多层特征的复用和融合,很好地克服了YOLO v3网络漏检小柑橘目标的缺点。此外,与YOLO v3网络相比,Des-YOLO v3网络在果实密集遮挡较为严重的情况下可以分别识别并框出每个柑橘,具有更优的鲁棒性和准确率。
表2为YOLO v3网络和Des-YOLO v3网络的性能对比结果。从表中可知,对于3种柑橘状态,Des-YOLO v3网络的精确率、召回率以及F1值均高于YOLO v3网络。结果表明,本文算法具有更优的检测效果。检测错误的主要原因可能是:①部分柑橘果实半径太小。②某些图像光照太暗难以识别。③多个果实靠得太近容易被识别成一个区域。
表2 YOLO v3网络与Des-YOLO v3网络在不同柑橘场景下性能对比Tab.2 YOLO v3 and Des-YOLO v3 performance comparison under different citrus scenarios
为了更直观地验证本文方法的效果,考虑不同网络在不同光线强度、果实密集度遮挡等因素下性能不同,随机抽取两幅测试图像,分别使用YOLO v3_DarkNet53、Des-YOLO v3、Faster R-CNN 3种网络进行测试,试验结果如图12所示。
图12 不同算法识别效果对比Fig.12 Comparison effects among different algorithms
图12表明,测试图像1中有14个目标柑橘,Faster R-CNN算法识别出11个,把遮挡的3个柑橘识别成1个;YOLO v3_DarkNet53识别出12个,但在遮挡处仍未能成功识别;而Des-YOLO v3的识别效果最佳,识别出14个目标。测试图像2中有多个目标柑橘,从图12b、12d可以看出,Faster R-CNN和YOLO v3_DarkNet53均存在果实漏检情况,而图12f表明Des-YOLO v3成功识别出所有柑橘目标。两组测试均说明了Des-YOLO v3算法性能更优。
表3为本文网络与其他网络的性能对比。Des-YOLO v3网络更小,识别速度更快;相比于YOLO v3_DarkNet53,mAP提高了2.27个百分点。Des-YOLO v3网络与Faster R-CNN网络相比,少了生成候选区域这一步,所以mAP比Faster R-CNN低了0.5个百分点,但是Des-YOLO v3网络的速度为53 f/s,明显快于Fater R-CNN,可用于果园采摘机器人的定位检测。结果表明, Des-YOLO v3网络进一步缩减了网络规模,提高了识别精度和速度。
3 结论
(1)针对采摘机器人在果园夜间复杂环境下果实识别准确率较低的问题,提出了一种多尺度卷积神经网络Des-YOLO v3网络,实现对成熟柑橘的识别与检测,最终在测试集上的mAP为90.75%,与YOLO v3_DarkNet53网络相比,提高了2.27个百分点。
表3 Des-YOLO v3与其他CNN网络性能对比Tab.3 Comparison of Des-YOLO v3 and other algorithm network performance
(2)为了验证本文算法的有效性和可行性,设计了不同柑橘场景下改进前后识别网络的性能对比试验。结果表明,Des-YOLO v3网络在原始测试集上精确率达97.67%,召回率达97.46%,F1值达0.976,3个指标均高于YOLO v3网络,表明本文算法具有更优的检测识别效果。
(3)Des-YOLO v3网络借鉴残差网络和密集连接网络,加强对小目标果实的识别和对遮挡重叠目标的鲁棒性,并且有效缩减了原有网络的卷积层数量,显著提高了果实检测精度和速度,为水果采摘机器人提供了新的视觉识别思路。