采用轻量级网络MobileNetV2的酿酒葡萄检测模型

2021-11-25 13:20李国进黄晓洁李修华艾矫燕
农业工程学报 2021年17期
关键词:网络结构卷积葡萄

李国进,黄晓洁,李修华,艾矫燕

(广西大学电气工程学院,南宁 530004)

0 引 言

采收是水果产业中的一个重要环节,但目前中国的果实采摘作业基本依靠人工完成,需要耗费大量的劳动力,造成果园生产成本较高[1]。要实现水果采摘作业自动化,首要解决的问题是对果实目标快速、精确识别与定位。高效的果实目标检测方法是实现果实产量估计、精准农业和自动化采摘的关键技术之一。基于传统机器学习或当代深度学习的果实检测模型很少充分考虑到目标检测的实时性,不能很好地满足葡萄采摘机器人快速识别与定位葡萄果实的需求。因此,利用计算机视觉快速、准确地检测果园场景下的葡萄,研发葡萄采摘机器人具有较大的应用价值与重要的现实意义。

近年来,国内外许多研究者提出了不同的目标识别与定位算法,完成对果园场景下的葡萄检测任务[2-6]。马本学等[7]运用不同颜色空间、阈值分割法及形态学运算识别不同颜色和光照强度下的葡萄,在晴天顺光、晴天逆光与夜间3种条件下,绿色葡萄的识别率分别为93.3%、86.7%和96.7%,紫色葡萄的识别率分别为90.0%、83.3%和96.7%,但该方法未考虑到阴雨天气条件下的葡萄识别。Rodrigo等[8]采用定向梯度直方图作为形状描述子,利用局部二进制模式获取纹理信息,最后通过支持向量分类器对葡萄进行分类,葡萄检测的准确率为88.61%,召回率为80.34%,但该方法的泛化性不高。罗陆锋等[9]提出一种基于改进K-means聚类图像分割、轮廓分析与几何约束建模相结合的双串叠贴葡萄目标识别算法,对叠贴葡萄识别的成功率达88.89%,算法处理每张图像的时间在0.59~0.68 s之间,识别速度较慢。Thiago等[10]采用掩码区域卷积神经网络(Mask Regions with Convolutional Neural Network,Mask R-CNN)算法完成对田间葡萄的实例分割,在交并比(Intersection over Union,IoU)阈值为0.5的条件下,获得的F1分数为0.847,但该算法要求对数据集图像中的葡萄以像素点为单位进行标注,标注工作十分耗时,且实时性一般。此外,基于深度学习的其他各类果实的目标检测算法依次被提出[11-13]。Tian等[14]采用密集网络改进YOLOv3算法的低分辨率特征提取卷积层,用于检测不同生长阶段的苹果,获得的F1分数为81.7%,每幅图像的平均检测时间为0.304 s,检测速度较低。闫建伟等[15]将Faster R-CNN算法中的感兴趣区域池化改进为感兴趣区域校准的区域特征聚集方式,算法对11类刺梨果实检测的F1分数为87.50%~94.99%,平均速度为0.2 s/幅,未达到实时检测速度。

上述果实检测方法未能很好地平衡检测精度与速度,因而适用性不强。为了保证检测方法具有较高精度的同时,还具备更高的实时检测速度,实现葡萄果实高效的机器采摘,本研究提出了基于轻量级网络MobileNetV2的酿酒葡萄检测模型,该模型对YOLOv3算法的骨干网络、多尺度检测模块和YOLO损失函数进行改进,在检测葡萄的速度和精度上拥有较高的性价比,可应用于田间酿酒葡萄果实机器采摘的快速视觉检测。

1 材料与方法

1.1 葡萄图像数据集

本研究采用公开的田间酿酒葡萄实例分割数据集(Wine Grape Instance Segmentation Dataset,WGISD)[16]作为试验对象。该数据集由300幅葡萄图像和300个用矩形框标注了4 432串葡萄的标注文件构成。其图像拍摄于2017年4月27日和2018年4月27日,在巴西圣保罗的瓜斯帕里酒庄内的葡萄园采集。葡萄品种分别为霞多丽、品丽珠、赤霞珠、长相思和席拉。使用Canon EOS REBEL T3i DSLR型相机(日本)和Motorola Z2 Play型智能手机(巴西)距离葡萄1~2 m进行拍摄,前者拍摄了240幅包含5个品种的分辨率为2 048×1 365像素的葡萄图像,后者拍摄了60幅只包含除了席拉以外4种类别的葡萄图像,分辨率为2 048×1 536像素。WGISD数据集的基本信息如表1所示。部分葡萄数据集图像如图1所示,其中包含了不同天气条件下和不同颜色的葡萄。

表1 葡萄数据集基本信息Table 1 General information about the grape dataset

1.2 轻量化葡萄检测网络构建

对于果实类的目标检测算法,应综合考虑算法检测目标的准确性和实时性,以满足采摘机器人进行高效采摘作业的需求。为了更加快速、准确地检测出田间的葡萄,实现葡萄果实高效的机器采摘,降低人工采摘作业造成的高成本,本研究提出WGDM葡萄检测模型。该模型首先采用在图像识别上具有模型小、速度快和精度高的轻量级网络MobileNetV2[17]作为骨干网络进行特征提取,在基本不影响检测精度的同时可大幅度提高检测速度、减小目标检测模型和浮点运算量,并参照Res2Net[18]和文献[19-20]提出的损失函数的思想分别对多尺度检测模块和损失函数进行改进,进一步提高目标检测的准确性。

1.2.1 骨干网络的选择

本研究采用MobileNetV2网络作为改进的骨干网络,完成对葡萄图像的目标特征快速提取任务。MobileNetV2网络是基于MobileNetV1网络[21]的改进,其继续沿用了MobileNetV1网络中的深度可分离卷积(Depthwise Separable Convolutions,DSC),并引入包含线性瓶颈块的倒残差模块,有效提高了应用在移动端的图像分类和检测任务的精度。

深度可分离卷积由深度卷积(Depthwise Convolution,DWConv)操作和逐点卷积(Pointwise Convolution,PWConv)操作组成。前者是在输入的每个通道维度上执行单个卷积核大小为3×3的卷积操作,后者通过执行卷积核大小为1×1的标准卷积操作组合所有输入通道维度上的特征而构建改进的特征。标准卷积的计算量与DSC相差k2倍(k为卷积核大小)。MobileNetV2网络使用k=3(即3×3 DSC),因此在不牺牲精度的条件下,其计算量仅为标准卷积的1/9~1/8。

对低维度卷积层做修正线性单元(Rectified Linear Unit,ReLU)激活函数运算,很容易造成特征信息的丢失;而在高维度卷积层进行ReLU激活函数运算,可以减少信息的丢失。因此,MobileNetV2网络在瓶颈块的低维度卷积层中不使用激活函数,即采用线性瓶颈层,在其他层采用MobileNetV1网络中提出的更适合量化网络的ReLU6激活函数,防止非线性层破坏太多的特征信息。

MobileNetV2网络的瓶颈块结构如图2所示,其中的倒残差模块主要用于促进多层特征信息的有效传递,增强网络的特征提取能力。倒残差模块的输入首先经过卷积核大小为1×1的卷积进行通道扩张,然后使用卷积核大小为3×3的深度卷积提取特征,最后通过线性瓶颈层中卷积核大小为1×1的逐点卷积,将通道维度进行压缩。当MobileNetV2网络中使用的瓶颈块数>1时,瓶颈块中包含倒残差模块,否则不含倒残差模块。

MobileNetV2网络的具体参数如表2所示。其中,步长在瓶颈块中指第一个深度卷积层使用的步长,其他未定义情况下使用的步长为1。

?

1.2.2 多尺度检测模块改进

为了更有效地进一步提取小目标的葡萄特征,本研究借鉴Res2Net模块的思想[18],并将Res2Net模块的快捷连接修改为串联拼接,以获取更多的葡萄特征,由此得到的M-Res2Net模块用于替换多尺度检测模块中的部分卷积层,加强网络的多尺度特征提取能力,从而提高小目标识别的精度。Res2Net模块、M-Res2Net模块分别如图3a、3b所示,其中Conv1×1的通道维度为C,Conv3×3的通道维度为C/4。在M-Res2Net模块中,输入特征图X0经过Conv1×1操作后被分为通道维度(即特征图个数)相等的4组特征图X1、X2、X3和X4;X1输入到Conv3×3操作进行特征提取得到特征图Y1,而Y1和X2同时输入到另一个Conv3×3操作后输出特征图Y2;以此类推,可得到特征图Y3;最后将特征图Y1、Y2、Y3、Y4(即X4)和输入X0进行串联拼接后输出。M-Res2Net模块的输出特征图Y含有2C个特征图,特征图个数是Res2Net模块输出的2倍,因而特征信息更丰富。

1.2.3 定位损失函数改进

由于目标检测任务需要解决目标的分类和定位问题,所以在网络的训练过程中,必须平衡分类损失和定位损失。针对WGDM模型训练中出现定位损失函数相对分类损失函数较大并且定位不准确的问题,在YOLO损失函数[22]中,采用平衡损失函数[19]作为改进的定位损失函数,在分类和定位之间实现更加平衡的训练,从而提高目标定位的准确性。平衡损失函数Lbl1定义如式(1)所示:

式中x为预测边界框坐标与真实标记边界框坐标的差值。

为缩小模型性能在训练与测试阶段产生的差距,在定位损失函数中除了使用平衡损失外,增加IoU损失函数,促进模型检测准确率的提升。IoU、IoU损失函数LIoU和改进的定位损失函数LNloc定义如式(2)~(4)所示:

式中b1和b2分别为用于定位目标的2个矩形边界框。

1.2.4 WGDM网络结构

WGDM网络将YOLOv3算法[23]中的DarkNet53网络替换为MobileNetV2网络,并在多尺度检测模块中,将3组卷积核大小为1×1、3×3的卷积层改为M-Res2Net模块。原始的YOLOv3网络结构和本研究提出的WGDM网络结构如图4所示。在WGDM网络中,输入图像经过MobileNetV2网络进行特征提取后,输出32个分辨率为76×76像素、96个分辨率为38×38像素和320个分辨率为19×19像素3种尺度的特征图;在改进的多尺度检测模块中通过3组M-Res2Net模块、一系列Conv1×1、Conv3×3操作、2倍上采样和串联拼接等操作,实现相邻尺度的特征融合和多尺度预测。

YOLO检测过程包括模型训练和测试阶段。在训练阶段,WGDM模型将网络输出的预测框信息与输入的真实标记框信息建立损失函数,并通过训练极小化损失函数。在测试阶段,模型对输入的每张测试集图像进行预测,输出包含目标类别和位置的预测框信息,完成对田间葡萄的目标识别与定位任务。

1.3 试验平台与模型参数设置

本试验采用Python 3.7.4环境下的PaddlePaddle 1.8.4深度学习开发框架,计算机配置为Intel Xeon(R) Gold 6271C CPU、英伟达Tesla V100显卡、2.6 GHz主频和32 GB内存。使用的操作系统为Ubuntu16.04.10,NVIDIA 418.67驱动,CUDA 10.1版本。

在模型训练阶段,使用的9个锚框大小分别为25×29、33×41、29×59、53×47、41×65、42×87、59×79、55×117和80×140像素,设定网络中的动量优化器的动量大小为0.9,衰减系数为0.000 5,训练迭代次数为9 000次,初始学习率为0.001,使用余弦学习率策略更新学习率,目标类别数为1,每个迭代训练输入的样本数(即批次大小)为16,并从多尺度集{320,352……608}中随机选择一个尺度作为输入图像的大小进行训练。在测试阶段,输入图像的分辨率为608×608像素,批次大小为8,IoU阈值为0.5,类别分数阈值为0.133。

1.4 模型评价指标

本试验采用目标检测中常用的F1分数[24]、平均精度(Average Precision,AP)、浮点运算量[25](Floating-point operations,FLOPs)、每幅图像的平均检测时间和网络结构大小作为模型的评价指标。其中,F1分数为平衡准确率(Precision,P,正确预测框在所有预测框中所占的比例)与召回率(Recall,R,正确预测框在所有真实标记框中所占的比例)的度量函数。准确率P、召回率R和F1分数的计算如式(5)~(7)所示:

式中TP表示模型预测正确的预测框数量;PT表示所有预测框数量;GT表示所有真实标记框数量。

AP的计算方式与准确率和召回率有关。根据每一个不同的R值(包括0和1),选取其大于或等于该R值时所对应的最大P值,得到P-R曲线,然后通过式(8)近似计算P-R曲线下的面积作为AP值[26]。

式中N表示数值不相等的召回率个数;Ri表示第i个召回率。

2 结果与分析

2.1 WGDM葡萄检测消融研究试验结果

消融研究试验是为验证各种改进策略对目标检测模型产生的有效性而采取的一系列试验。为展示模型采用每个改进方法的有效性,本研究以递增的方式利用测试集的58幅葡萄图像进行验证,结果如表3所示。其中,模型A表示原始YOLOv3算法;模型B表示在原始YOLOv3算法中采用轻量级网络MobileNetV2替换DarkNet53网络作为骨干网络;模型C表示在方法B的基础上,在多尺度检测模块中采用了Res2Net模块;模型D表示在模型B的基础上,在YOLOv3算法的多尺度检测模块中采用了M-Res2Net模块;本研究提出的WGDM模型在模型D的基础上,采用平衡损失和IoU损失函数作为改进的定位损失函数。与模型A相比,模型B虽然检测葡萄的F1分数降低了0.006 3,但是平均精度提高了0.73个百分点,浮点运算量和网络结构分别为模型A的27.34%和36.60%,平均检测一幅葡萄图像的时间反为模型A的48.15%。模型C模型的浮点运算量、网络结构、平均检测时间达到了最小,分别为9.55×109、41 MB和6.06 ms,但平均精度与模型A、B相差较大;模型D通过采用本研究提出的M-Res2Net模块获取更多的葡萄特征,与模型C相比,虽然浮点运算量和网络结构大小分别增加了5.9×108和3 MB,但F1分数和平均精度分别提高了0.010 7和2.57个百分点。本研究提出的WGDM模型浮点运算量和网络结构较小,平均精度仅比方法D低了0.42个百分点,而召回率和F1分数达到最高,分别为84.82%和0.856 3,表明其更好地平衡了检测精度、浮点运算量、网络结构大小和检测速度。

表3 不同模型消融研究试验结果Table 3 Ablation study of different models

2.2 不同模型检测葡萄结果

在测试阶段,采用本研究提出的WGDM模型利用葡萄测试集的图像进行测试,其中检测葡萄目标的可视化过程如图5所示,不同自然场景葡萄串检测的部分结果如图6所示。由图5可知,MobileNetV2网络对输入的葡萄图像进行了初步的特征提取,输出的3种不同尺寸的特征图只包含了局部的特征识别信息;而随着改进的多尺度检测模块的进一步特征提取,网络获取了包括葡萄位置的全局特征信息,最终经过YOLO层预测输出带有类别和位置信息的葡萄图像;说明了提出的WGDM模型能够有效检测出葡萄目标。

由图6可知,本研究提出的WGDM模型对于不同天气、不同光照、颜色和形状等条件下的葡萄图像,均具有较准确的识别和定位效果。

为验证本研究模型的可行性和有效性,在相同的试验条件下,采用SSD[27]、YOLOv3、YOLOv4[28]和Faster R-CNN[29]4种不同模型对葡萄数据集进行训练与测试,其检测性能与本研究模型WGDM的比较如表4所示。由于模型的浮点运算量(即FLOPs)与输入图像分辨率相关,根据输入图像分辨率的最大值(800×800像素)和最小值(1 333×1 333像素),可计算出Faster R-CNN模型的浮点运算量范围为66.14×109~185.11×109。由表4可知,YOLOv3模型检测葡萄的准确率最高,为88.15%;SSD模型的召回率最低,只有79.94%;YOLOv4模型的召回率最高,为85.53%,准确率却最低,为77.75%;而本研究提出的WGDM模型获得的F1分数最高,达到了0.856 3,说明了本研究模型更好地平衡了检测的准确率与召回率。另外,SSD模型的平均精度仅有73.05%,模型浮点运算量较大,而其检测速度较快,网络结构较小;YOLOv3模型的平均精度较高,为80.10%,但其网络结构最大,同YOLOv4模型一样为235 MB;YOLOv4和Faster R-CNN模型的平均精度和检测速度较低,其复杂的网络结构可能不适用于单一类别的葡萄目标检测,并且Faster R-CNN模型平均每幅图像的检测时间为164.49 ms,检测速度最慢;本研究提出的WGDM模型的平均精度为81.20%,检测一幅图像的平均耗时为6.29 ms,比SSD、YOLOv3、YOLOv4分别减少了4.91、7.75、14.84和158.20 ms,说明其检测的实时性更佳,并且浮点运算量仅有10.14×109,网络结构大小只有44 MB。与其他4种主流的目标检测模型相比,本研究提出的WGDM模型在检测的精度、速度、浮点运算量与网络结构大小方面都具有更大的优势,能够满足对葡萄果实的高效检测任务。

表4 不同检测模型性能对比Table 4 Performance comparison of with different detection models

SSD、YOLOv3、YOLOv4、Faster R-CNN和本研究的WGDM几种模型对于文件名为CFR_1666.jpg的图像(简称图像1)和文件名为SVB_1959.jpg的图像(简称图像2)的检测结果如表5所示。由表5可知,在图像1和图像2两幅图像中,YOLOv3模型能正确检测出的葡萄数量最少,为29串;YOLOv4模型没有漏检葡萄,但其错误检测出的葡萄数量最多,为10串;本研究提出的WGDM模型虽然漏检了一串葡萄,但能正确检测出的葡萄数量最多,达到了32串,并且没有错误检测葡萄,说明其检测葡萄目标效果更好。

表5 不同模型葡萄图像检测结果对比Table 5 Detection results of grape images with different models

3 结 论

1)本研究针对果园场景下的葡萄,提出了一种基于轻量级网络的酿酒葡萄检测模型(Wine Grape Detection Model,WGDM)。采用目标识别速度快、精度高的MobileNetV2网络完成对葡萄图像的特征提取,加强多层特征信息的有效传递和减小模型计算量,增大了目标检测速度;在多尺度检测模块中将部分卷积层改为M-Res2Net模块,使模型获取更多的葡萄特征,并在定位损失函数中使用平衡损失函数和交并比(Intersection over Union,IoU)损失函数,在保持高速度检测的同时,提高了目标识别精度。

2)提出的WGDM模型最终在酿酒葡萄测试集上获得81.20%的平均精度,F1分数为0.856 3,平均每幅葡萄图像的检测时间仅需6.29 ms,浮点运算量仅有10.14×109,网络结构大小为44 MB,均优于单发检测器(Single Shot Detector,SSD)、YOLOv3、YOLOv4和快速区域卷积神经网络(Faster Regions with Convolutional Neural Network,Faster R-CNN)模型。

本研究提出的WGDM模型对于重叠面积超过一半的葡萄串的定位还不够理想,今后将深入研究如何提高严重重叠的小目标检测性能。

猜你喜欢
网络结构卷积葡萄
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
葡萄熟了
快递网络结构研究进展
当葡萄成熟时
基于AutoML的保护区物种识别①
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
带通信配网故障指示器故障监测方法及安装分析
非常规突发事件跨组织合作网络结构演化机理研究