APP下载

基于YOLOV4模型的果园樱桃实时检测研究

2022-11-28周品志裴悦琨张永飞

浙江农业学报 2022年11期
关键词:先验特征提取樱桃

周品志,裴悦琨,*,魏 冉,张永飞,谷 宇

(1.大连大学 辽宁省北斗高精度位置服务技术工程实验室,辽宁 大连 116622; 2.大连大学 大连市环境感知与智能控制重点实验室,辽宁 大连 116622)

随着人工智能技术的发展,将深度学习应用在农业领域已经成为了当前的趋势,促进了智慧农业的发展,提高了农业领域复杂问题的解决能力,从而提高了生产水平[1]。其中,自然环境下水果的生长监测及产量预测是现代农业生产中面临的重要问题,在水果生长阶段对其生长状态及时监测评估能够提前分配劳动力及设备进行采摘,能够有效地提高生产效率;同时,结合其他的环境监测数据如湿度、温度、光照强度等,能建立水果生长的环境模型,为水果产量的提高和标准化推广提供依据。要满足上述需求,先要借助计算机视觉来解决自然复杂环境下面临的目标难检测问题。基于此,许多学者已经提出了多种解决方法。

传统的水果监测方法大多基于水果的纹理和颜色特征对目标进行识别检测和分类,邹谜等[2]提出了一种基于颜色分量统计的特征匹配水果识别方法,提取树上水果颜色特征,作为后续识别时的特征匹配模板。颜申等[3]基于水果颜色特征,结合霍夫变换原理在自然环境下进行了无遮挡、遮挡和正常光线成熟橘类的识别。初广丽等[4]利用基于颜色的图像分割算法提取出果实以及单像素边缘跟踪算法提取果实边缘来识别水果,识别率达95%。Yu等[5]提出一种基于RGB-D的成熟荔枝识别方法,利用RGB-D相机采集彩色和深度图像,然后利用颜色和纹理特征训练随机森林分类模型,该系统的设计避免了由于光照不均而导致的判别错误。上述方法在一定程度上解决了识别过程中遮挡和光线问题,但对更复杂的环境来说,抗干扰能力还是较差。

近年来,深度学习在计算机视觉领域已经成为了一个重要的研究方向,深度卷积神经网络所具有的特征学习能力,在目标检测算法上取得了显著进展[6]。目标检测算法在农业水果采摘和分类领域中被广泛应用,并在多个领域展现了其优势[7-9]。当前目标检测网络结构分为一阶(one-stage)和二阶(two-stage)网络,一阶目标检测网络在保持精度的情况下能够进行快速检测,如唐熔钗等[10]利用YOLOV3对百香果进行实时检测,精度达到了97.5%以上,检测速度为38幅·s-1,但是只对单一成熟度进行检测。Schumann等[11]基于YOLOV3网络在不同生长时期对蓝莓3种不同成熟度的果实进行了检测,准确率达到了82.3%。二阶目标检测网络虽然检测精度高,但实时检测速度较慢,如朱旭等[12]使用Faster RCNN对不同成熟度的蓝莓冠层果实进行了分类,平均识别率高达94.67%,但识别速度较慢,仅为每幅0.25 s。Song等[13]提出了一个基于Faster RCNN机器人视觉系统,能够在不同的时间和光照条件下识别猕猴桃,精度达到了87.61%。

当前,针对果园樱桃定位分类的研究较少,利用快速高效识别定位算法,在复杂环境下精准识别分类樱桃是一个需要解决的难题。为此,本文以深度学习中YOLOV4网络为基础,在特征提取网络层融合CBAM注意力机制,结合k-means算法,改进算法结构,增强网络特征感知能力,使算法具有更强的特征提取能力,以解决复杂环境下樱桃目标难检测的问题。

1 YOLOV4模型

YOLOV4是一阶(one-stage)端到端的目标检测模型,如图1所示,在特征提取网络(BackBone)的第三个模块就开始融合多个特征图作为后续网络层分类和回归的依据,主干网络采用的是CSPDarknet53,它是由YOLOV3[14]的Darknet53结合CSPNet结构[15]而得到,其中Darknet53由多个残差块结构组成,如图2所示,残差结构由两条支路组成,其中右边的支路将上一层输出的特征x进行卷积操作,左边的支路将上一层的输出x恒等映射,并和右边的支路逐元素相加,在一定程度上解决了深层网络中模型梯度消失和梯度爆炸问题。随后通过SPP模块,经过大小为13×13、9×9、5×5和1×1的卷积核进行最大池化操作可以得到不同感受野的特征图,随后将他们进行多尺度融合并输出特征图,最后再经过PANet网络,将主干特征提取网络的最后3层(大小为52×52、26×26和13×13)的输出进行上采样特征融合,然后又进行下采样特征融合,这样能使网络学习不同卷积层的不同特征。

图1 YOLOV4网络结构Fig.1 YOLOV4 network structure

图2 残差块结构Fig.2 Residual block structure

YOLOV4模型使用了CIoU损失函数,如公式1所示,相比YOLOV3使用的DIoU损失函数,CIoU损失函数更加注重边界框回归的中心点距离、重叠面积和长宽比3个重要因素。CIoU损失在DIoU损失函数的惩罚项的基础上增加了边框的长宽比 ,用以控制预测框的宽高尽可能快地和真实框的宽高接近,若预测框宽高和真实框宽高接近,则此时ν为0,该惩罚项失效,如公式(2)-(4)。

(1)

(2)

(3)

(4)

其中,α为一个大于0的权衡参数,wgt和hgt表示真实框的宽和高,w和h表示预测框的宽和高,b和bgt为预测框和目标框的中心点,ρ为欧几里得距离。

2 改进的YOLOV4樱桃识别算法

通常情况下,更深的卷积神经网络能够学习到更高层次更抽象的特征,但是,对于应用在YOLOV4框架下的CSPDarknet53,在果园这种相当复杂的背景环境下,存在着大量的干扰因素,模型容易学习到与目标无关的细节特征,并且对于检测樱桃这种小目标而言仍然存在问题。针对上述问题,提出将BackBone的第三层输出特征变为第二层的输出特征,提高樱桃小目标的检测效果,并将注意力机制算法与特征提取网络相融合,增强卷积神经网络的局部特征感知和提取能力,提高物体最终判别的精度。

2.1 小目标识别改进

对于大小为416×416的输入图像,原始的CSPDarknet53网络利用BackBone的最后三层特征层(52×52、26×26和13×13)进行特征融合,可针对大中小不同尺度的目标进行检测,但是对于樱桃样本,存在着大量的小目标。为了检测不同尺度的目标,从YOLOV3网络开始,YOLO系列网络都基于FPN金字塔结构将特征提取网络的浅层特征和深层特征进行融合,浅层特征图分辨率高,感受野小,意味着包含了更多目标位置信息,有利于小目标的识别。相反,深层低分辨率特征图包含更高阶的语义特征,感受野大,有利于大目标的识别。针对本文樱桃检测目标较小难识别问题,将BackBone的第三层输出特征变为第二层的输出特征,尺寸大小从52×52变为了104×104,以增强小目标语义信息的获取。

2.2 增强樱桃特征提取

将BackBone的第三层输出特征层提前后,需要加强模型对目标的特征提取能力,使高分辨率的图像能够获得更多的目标特征信息,并且随着网络层数的不断加深,CSPDarknet53特征提取网络虽然能够学习到输入图像更抽象的特征,但是从输入图像中学习到的目标特征信息会越来越弱,并掺杂着与目标无关的细节干扰特征,最终可能导致部分特征丢失。为了让特征提取网络能够从输入图像以及深层的网络中提取到有用的目标特征,并增强网络对目标特征的感知和提取,本文引入CBAM注意力机制(convolutional block attention module,CBAM)模块[16],CBAM注意力机制结合了通道注意力和空间注意力,在通道维度和空间维度上增强了特征提取网络对樱桃目标特征的表达能力,将CBAM注意力机制算法与特征提取网络的Resblock Body相融合,提高模型的特征提取能力和感知能力,改进后的YOLOV4结构如图3所示。

图3 改进的YOLOV4网络结构Fig.3 Improved YOLOV4 network structure

图4为本文引入的CBAM注意力机制结构,左上角的通道模块将中间层特征图F(CxHxW)作为输入,经过最大池化(MaxPool)和平均池化(AvgPool)池化层,作用是聚合特征映射的空间信息。这里MaxPool在神经网络进行反向梯度传播时,会对特征图中响应最大的地方有梯度反馈,响应最大的部分能够进入下一层,并且能够突出前景,保留主要特征,AvgPool对特征图上每一个像素点都有反馈,能够突出背景,保留背景信息。然后再经过全连接共享网络MLP压缩了输入特征图的空间维数,将它们按元素对应相加并通过sigmoid激活函数,得到通道注意力特征图Mc(Cx1x1)(公式5),将Mc和特征图F按元素相乘,得到空间注意力模块的输入特征F′(公式6),F′在通道维度应进行了最大池化和平均池化,经过卷积操作降维为一个通道,经过sigmoid生成空间注意力特征图Ms(1xHxW)(公式7),并和F′按元素对应相乘得到最终特征F″(公式8),这里最大池化和平均池化是在通道上提取最大值和平均值,上述过程能够有效地突出输入图像中的樱桃目标区域。

图4 CBAM网络结构Fig.4 CBAM network structure

(5)

F′=Mc(F)⊗F;

(6)

(7)

F″=Ms(F′)⊗F′。

(8)

式中:⊗表示按元素相乘,σ为sigmoid激活函数,f7×7表示7×7大小的卷积运算,W0和W1表示权重大小。

2.3 k-means先验框优化

设置合理的先验框大小能够提高模型的精度,降低漏检现象的发生。早期YOLO系列网络使用的先验框是基于COCO公共数据集而来的,COCO数据集包含了大中小目标,对于常规检测任务具有通用性。在YOLOV4中,每个特征图的各个网格点都包含了3种不同尺寸的先验框,针对本文使用的樱桃数据集目标的大小情况以及改进方法的前提下,参考原来YOLOV4先验框的尺寸,对改进的YOLOV4的先验框尺寸做出优化。通过遍历分析VOC樱桃数据集xml标签文件下每个目标(左上、左下、右上和右下)坐标值,并运行k-means聚类算法,可分析出需要检测的樱桃的标注框分布及宽高比信息,标注框分布如图5所示,其中红色三角为聚类结果,绿色点为随机选取的1 000个标注框的大小。宽高比信息如图6所示,可看出樱桃的宽高比大多数在1∶1左右。所以对于樱桃检测,参考图5和图6,基于原始先验框尺寸,可以将anchor宽高比设置为1∶1、1.2∶1、0.8∶1左右。

图5 樱桃数据集标注框分布图Fig.5 The distribution map of the label box of the cherry data set

图6 樱桃数据集宽高比统计图Fig.6 The aspect ratio statistical graph of the cherry data set

k-means过程如下:

(1)寻找xml文件下所有目标box,获取每个目标的宽高;

(2)取出所有目标框,随机选取9个点当作初始聚类中心,计算其余所有框和聚类中心的距离,IoU用于评价两个框之间重合程度,限制在0~1之间,计算IoU(交并比)的公式为:

(9)

(3)根据(2)计算的距离,将所有框划分为9个区域,如果某个框距离某聚类中心最近,则这个框属于该聚类中心,然后对9个区域里所有的框取平均值,重新作为新的聚类中心;

(4)重复(2)(3),直到聚类中心不再改变。

通过上述步骤,最终可计算出适用樱桃数据集的先验框大小,13×13大小的特征层先验框尺寸为(89,90)、(156,159)、(313,326),26×26大小的特征层先验框尺寸为(50,61)、(62,45)、(70,101),104×104大小的特征层先验框尺寸为(12,16)、(19,23)、(20,25)。

图7 IoU交并比示例Fig.7 IoU cross-to-combination example

3 实验结果和分析

3.1 实验配置

本实验在Window10环境下完成,GPU是Geforce GTX 3080,显存为10 G,CPU为Intel(R) Core(TM) i9-10900K CPU 3.70 GHz,内存12 G,使用的编程语言为Python3.7,深度学习框架使用的是pytorch1.8,opencv-python4.5,编译器为pycharm。

模型的训练参数如表1所示,总共训练200次,分为两阶段训练,每阶段训练100次。Lr表示学习率,第一阶段训练的学习率为1×10-3,第二阶段的学习率为1×10-4。Batch size依据GPU显存大小设置为6。Optimizer是训练模型的优化器,设置为Adam。

表1 改进的YOLOV4模型训练参数

3.2 数据采集及处理

实验所用的数据集共有1 000张樱桃照片,于2021年3月在大连市金州区美早樱桃大棚种植基地采集完成,采集设备为数码相机,图像大小为3 008 pixel×2 000 pixel。采集的图片包括顺光、逆光和不同角度的拍摄,分为未成熟果、半成熟果和成熟果3个类别,如图8所示。

图8 不同成熟度的樱桃样本Fig.8 Cherry samples of different maturity

樱桃数据集在训练之前需要对识别的目标进行边界框标注,利用LabelImg软件生成xml文件供模型训练。全部数据集共有1 000张图片,随机将其中的900张划分为训练集,其余100张划分为测试集。

数据的丰富性影响着检测结果,本文使用mosaic数据增强方法,从训练集中随机选取4张照片对其随机进行大小缩放、左右翻转和色域变换(包括明对比度、饱和度和色调),每张图片都有自己对应的标签框,对其进行拼接后得到新的图片并且获得所有标签框,然后将拼接后的图片送入模型进行训练,这种方法在BN层能够同时计算4张图片的数据,很大程度能够丰富检测物体的背景,如图9所示。

3.3 目标检测评价标准

平均准确度均值mAP、F1分数和FPS是常用的评价指标,高精度和低损失才能保证模型效果优秀。AP(average precision)值就是精确率(precision)、查全率(recall)组成的P-R曲线下面积,mAP即(mean average precision)所有类别AP的平均值。F1分数(F1-score)是分类问题的一个衡量指标,常作为多分类问题的最终指标,它是精度和召回率的调和平均数,如公式10-13所示。FPS用来评估目标检测的速度,即每秒内可以处理的图片数量。

(10)

(11)

(12)

(13)

其中:TP—正样本被正确识别为正样本;FP—负样本被错误识别为正样本;FN—正样本被错误识别为负样本;classes—类别数。

3.4 消融实验分析

为了验证本文的改进方法中各个模块对模型检测性能的影响,设计了消融实验分析,在YOLOV4的基础上增加mosaic、CBAM、k-means模块,实验结果如表2所示。

表2 不同模块对模型性能的影响

图9 mosaic数据增强Fig.9 mosaic data enhancement

从表2可知,在添加了mosaic数据增强模块后,mAP提升了4.06百分点,F1分数提升了4百分点,并且对未成熟果、半成熟果和成熟果的AP均有提升。添加CBAM注意力机制模块后,mAP提升了1.52百分点,F1分数下降了1百分点,未成熟果的AP下降了0.81%,其他类别AP均有提升。使用了k-means算法后各个评价指标略有提升,但幅度不大。最后本文方法在融合上述算法模块后,模型的AP、mAP和F1分数均有提高,均在90%左右,验证了本文方法的有效性。

3.5 模型对比分析

为了进一步验证本文算法的有效性,本文先对改进的模型的收敛性进行验证,如图10所示。通过比较YOLOV4和改进的YOLOV4的损失曲线图可以看出,改进的YOLOV4在起始阶段损失值低于YOLOV4,随着迭代次数的增加其模型损失值迅速的收敛,并且随着迭代的不断进行平缓降低最终趋于稳定,总体损失值低于YOLOV4,由此可知改进的YOLOV4模型有更好的检测性能。图11是本文使用的模型对樱桃成熟度类别的P-R曲线图,每个类别中P-R曲线下方的面积就是表3中对应模型在该类别上的AP值,曲线越往右上角靠近,表示AP值越大,模型的效果越好,从图11中可知,改进的YOLOV4模型效果最优。

图10 损失函数变化Fig.10 Loss function changes

图11 未成熟果、半成熟果、成熟果对应模型的P-R曲线Fig.11 The P-R curve of the corresponding model of immature, semimature and mature fruits

本文改进的网络为一阶端到端的训练模型,类似的还有YOLOV3快速目标检测网络,在相同的实验配置下,利用划分的测试集,对改进的YOLOV4、YOLOV4、YOLOV3和Faster RCNN网络进行对比实验,以此来验证改进的网络模型的检测性能,部分检测结果如图12所示。通过比较图12的检测结果可看出,图12-b和-c中存在目标的漏检现象,对背景环境的抗干扰能力不强。图12-a虽然没有漏检,但是出现了误判现象,将半成熟果误判为未成熟果、成熟果误判为未成熟果,并且出现了检测框重叠现象(一个目标存在两个及以上检测框)。而改进的YOLOV4模型能够更加地关注樱桃目标区域特征,即使未成熟果和树叶的颜色相近,也能够准确识别无漏检,如图12-d。对于图12-e所示的背景更加复杂的情况(重叠遮挡、光线暗、逆光),改进的YOLOV4依旧能够精确地检测到樱桃目标。

图12 Faster RCNN、YOLOV3、YOLOV4、改进YOLOV4检测及复杂环境下部分结果对比Fig.12 Faster RCNN, YOLOV3, YOLOV4, improved YOLOV4 detection and comparison of some results in complex environments

针对同一批数据测试的对比结果如表3所示,从中可知,改进的YOLOV4网络的精度和准确率都显著优于其余网络,由于本文的改进方法在特征提取网络部分增加了网络结构,略微增加了计算量,导致检测速度略低于YOLOV4网络和YOLOV3网络,但是检测速度依旧达到了40.23幅·s-1,与YOLOV4相比,网络的精度提升了7.06百分点,F1分数提升了9.3百分点,特征提取能力和目标检测能力明显优于其余网络。在和其他网络保持相同的训练配置环境下,Faster RCNN的精度达到了70.70%,由于其候选框较多,在准精度不是很高的情况下依旧能够检测出目标,但容易误检和候选框重叠,如图12-a,并且其检测速度太慢,不满足本文检测任务实时性的要求。由上述结果可知,在当前复杂背景环境下,改进的YOLOV4更能满足真实果园下的樱桃目标实时性检测的要求。

表3 不同算法对比测试结果

4 结论

本文以CSPDarknet53网络为基础,引入CBAM注意力机制和调整特征提取网络特征层输出位置结构,优化先验框尺寸,加强了模型对樱桃目标特征的识别能力,以此提出了基于改进的YOLOV4的果园樱桃实时检测方法。首先进行数据采集并进行数据增强预处理,然后利用训练集训练改进的YOLOV4网络得到樱桃检测模型。实验表明,在复杂背景下,改进后的模型相比原模型对樱桃的检测精度和准确率上都有了提升,并且速度快,有效地优化了YOLOV4算法对真实果园中樱桃目标检测问题。在未来的工作中,将增加成熟度分类类别数,并扩充自然条件下更加复杂的背景环境数据集用以模型训练,进一步提高模型的樱桃实时检测性能。

猜你喜欢

先验特征提取樱桃
樱桃肉,让年味飘香
基于暗通道先验的单幅图像去雾算法研究与实现
先验想象力在范畴先验演绎中的定位研究
一种考虑先验信息可靠性的新算法
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
基于Daubechies(dbN)的飞行器音频特征提取
一树樱桃带雨红
吃不到的樱桃