杨健,杨啸治,熊串,刘力
摘 要:为了实现大棚环境中番茄的智能在线产量估算,提出了一种基于改进的YOLOv5(You Only Look Once v5)番茄识别算法,对自然生长状态下的番茄果实产量进行统计和估算。首先,使用可分离视觉转换器(Separable Vision Transformer,SepViT)替换骨干网络的最后一层,以增强骨干网络与全局信息之间的联系并提取番茄特征;其次,引入WIOU(Wise Intersection over Union)损失函数和Mish激活函数,以提高收敛速度和精度。试验结果表明,改进后的检测模型在平均精度(mean Average Precision,mAP)方面达到了99.5%,相较传统的YOLOv5模型提高了1.1个百分点,每张图像的处理时间为15 ms。此外,改进后的YOLOv5算法对密集和遮挡情况下的番茄果实识别效果更好。
关键词:大棚番茄;YOLOv5;注意力机制;损失函数
中图分类号:S641.2 文献标志码:A 文章编号:1673-2871(2024)06-061-08
An improved YOLOv5-based method for tomato fruit identification and yield estimation
YANG Jian, YANG Xiaozhi, XIONG Chuan, LIU Li
(School of Mechanical and Electrical Engineering, Chengdu University of Technology, Chengdu 610059, Sichuan, China)
Abstract: In pursuit of intelligent real-time yield estimation for tomatoes in greenhouse environments, we introduce an enhanced YOLOv5 tomato recognition algorithm aimed at the statistical assessment and estimation of tomato fruit yield in their natural growth conditions. Our approach involved two key enhancements: firstly, we substituted the final layer of the backbone network with a Separable Vision Transformer to augment the connectivity between the backbone network and global context, thereby facilitating tomato feature extraction; secondly, we incorporated the WIOU loss function and employ the Mish activation function to enhance convergence speed and accuracy. Experimental findings demonstrate that the improved detection model achieves a mAP score of 99.5%, reflecting 1.1 percentage points enhancement compared to the conventional YOLOv5 model, and the processing time for every image is 15ms. Furthermore, the improved YOLOv5 algorithm exhibits superior recognition performance for densely populated and occluded tomato fruits.
Key words: Greenhouse tomato; YOLOv5; Attention mechanism; Loss function
随着我国经济的发展,农业正在向现代化转型,温室大棚已成为现代农业的重要支撑,而大棚番茄种植也在全国范围内快速发展。准确估算大棚番茄的产量是种植规划和营销策略的重要组成部分,实时统计和预测番茄果实产量信息,并加以相应的生产控制,可以解决番茄产能波动和生产过程中的不连续性等问题。然而,大棚内的番茄茎叶和果实密集且相互重叠[1],限制了果实图像特征的识别,进而影响了番茄产量的准确估算。因此,实现准确获取番茄果实视觉信息是支持智能估产的重要前提。
传统的番茄识别方法通常是手动设计特征提取器来提取目标特征,如梯度直方图(Histogram of Oriented Gradient,HOG)、尺度不变特征变换(Scale-invariant feature transform,SIFT)和Haar-like特征等,这些特征再输入支持向量机(Support Vector Machine,SVM)、AdaBoost、随机森林(Random Forest,RF)等分类器进行分类和识别[2]。Liu等[3]应用伪色去除技术和SVM达到了94.41%的识别率,但在番茄遮挡和重叠等复杂情况下,效果不佳。李寒等[4]采用RGB-D相机拍摄图像,通过预处理得到水果轮廓,采用K均值聚类与自组织映射算法进行番茄识别,识别率达到了87.2%,但轮廓提取易受光照影响。Malik等[5]采用改进的HSV颜色空间算法和分水岭分割算法分离红色番茄,但识别率只有81.6%。而马翠花等[6]采用基于密度的局部自适应阈值分割算法提高番茄检测精度,对未成熟番茄的识别率只达到77.6%。这些传统方法泛化性差、计算复杂度高,难以提取出合理的特征。此外,它们往往没有考虑到大棚环境中的复杂影响因素,对各种特征的变化鲁棒性不足,难以满足实际需求。而近年来兴起的深度卷积神经网络为获取番茄果实视觉信息提供了更好的方法。
随着深度学习的不断发展,目前的目标检测算法可以分为两类。第一类是基于候选区域的two stage算法,例如R-CNN[7]、Fast R-CNN[8]和Faster R-CNN[9]等。这类算法通过两个步骤来进行计算:首先选择候选框,然后对候选框进行分类或回归。这种方法具有高鲁棒性和低识别错误率,但运算时间长,占用磁盘空间大,并且对图像信息进行了重复计算,不适合实时检测应用。第二类是基于网络模型的one stage算法,例如YOLO[10-11]和SSD[12]等。这类算法通过在图像上以不同尺度进行遍历抽样,并利用卷积神经网络提取特征后直接进行回归。这种方法的网络模型较为简单,识别速度快,特别适合实时检测应用[13]。其中,YOLO模型是Redmon等[10]于2017年提出的对象检测模型,与two stage算法相比,YOLO模型使用单个前馈网络直接预测边界框及其对应的类,作为一种基于回归的检测器,不仅支持快速实时识别,其精度也能够满足一般应用要求。
2018年,周云成等[14]提出了一种基于Fast R-CNN的双卷积链算法,对番茄果实识别的平均精度为63.99%。2021年,张文静等[15]将AlexNet作为Faster R-CNN的骨干网络,在50%的重叠度下,番茄检测的平均精度为83.9%,每幅图像的处理时间为245 ms。2020年,刘芳等[16]通过改进YOLO网络模型,可在复杂环境中有效地检测番茄果实,识别准确率达到97.13%。同年,Liu等[17]提出一种用于检测番茄果实的改进YOLOv3模型,在轻度遮挡条件下,番茄果实的识别准确率达到94.58%,但在遮挡严重时表现较差。2021年,成伟等[18]使用广义交并比(Generalized Intersection over Union[19],GIOU),作为改进YOLOv3算法的位置损失函数,在番茄果实检测方面的平均精度达到95.7%,每幅图像的平均处理时间为15 ms[19]。
综上所述,笔者针对大棚环境下番茄果实重叠、枝叶遮挡、光照不均等复杂情况,提出一种改进的YOLOv5目标检测算法。首先,使用可分离视觉转换器(SepViT)替换骨干网络的最后一层,以增强骨干网络与全局信息的联系和提取番茄的特征;其次,利用WIOU损失函数和Mish激活函数来同时提高收敛速度和精度,使得YOLOv5能够在大棚环境下获得对番茄果实较高的检测精度。
1 番茄图像数据集制作
在笔者研究中使用的番茄数据集部分是在四川省成都市拍摄的,部分是从参考文献中获得的。这些图像有效地反映了番茄生长的复杂性,如大小和光线的差异、番茄之间的遮挡以及枝叶的遮挡。在各种条件下,包括侧光、背光、阴影等,随机拍摄了1000余张番茄图像,图1所示为已建立的番茄数据集,拍摄时间为2022年7月,该番茄识别数据集已经在Zenodo上公开发布,可以在https://zenodo.org/record/8429227上获取。
为了增强原始图像数据,提高数据集的普适性和鲁棒性,笔者采用了空间级和像素级数据增强方法,且同时使用了这两类增强方法,如图2所示。空间级变换技术修改边界框和图像,而像素级变换技术修改图像,同时保持边界框不变。
2 基于改进YOLOv5的番茄识别模型
2.1 YOLOv5目标检测算法
YOLOv5是一种基于卷积神经网络(Convolutional Neural Networks,CNN)的无锚点对象检测算法,相比其他对象检测算法具有更高的效率和准确性,其原理如图3所示。
YOLOv5算法的基本原理是将输入的图片分成S×S个栅格化单元格。如果检测到的目标中心落入特定的单元格中,则该单元格负责检测目标,即自身有目标的概率为[Pobj=1]。然后,每个单元格预设生成B个先验边界框,每个边界框与真实值边界框的交并比为IOU。因此,图像中的目标位置和类别预测可以表示为[S×S×B×(4+1+C)]的张量,其中4表示先验边界框的坐标[(x,y)]和宽高[(w,h)],1表示置信度得分,总共有5个特征参数,C表示使用的数据集中目标的类别数。通过连续回归训练真实边界框,可以得到最终预测的目标位置、置信度和类别信息。最后,保留置信度最高的边界框,以筛选出最佳的识别结果[20]。
2.2 深度可分离视觉注意力机制
最近几年,视觉转换器(Vision Transformer,ViT)在各种计算机视觉任务中取得了巨大的成功,其性能在关键领域甚至超过了传统的卷积神经网络[21-22]。然而,这些性能提升通常是以增加计算复杂度和参数数量为代价的,而深度可分离视觉注意力机制可以通过平衡计算成本和准确性来提高模型的性能[23]。
笔者将骨干网络的最后一层替换为SepViT Block,以增强模型的特征提取能力,并优化与全局信息的联系。在SepViT Block中,Depthwise selfattention (DWA)和Pointwise selfattention(PWA)可以减少计算量,并实现窗口内的局部信息通信和全局信息交互。首先,输入的特征图划分为多个窗口,每个窗口被认为是特征图的一个输入通道,不同类型的信息被包含在每个窗口中;然后,对每个窗口及其像素标记执行DWA,这有助于融合通道的空间信息,类似于MobileNet[24-26]中的深度卷积。DWA的操作如下:
[DWA(f)=Attentionf?WQ,f?WK,f?WV] 。
其中[f]是特征标记,由窗口标记和像素标记组成,[WQ]、[WK]和[WV]代表常规自注意力任务中的query、key、value三个线性层,PWA类似于MobileNet中的pointwise convolution操作,不同之处在于pointwise convolution用于融合不同通道的信息,而PWA则是在窗口之间建立连接。完成DWA操作后,PWA建立窗口之间的关系,并通过Layer Normalization (LN)和Gelu激活函数生成注意力图。PWA的运行过程如下:
PWA(f,wt)=Attention{Gelu[LN(wt)]·WQ,Gelu[LN(wt)]·WK,f}。
其中[wt]代表窗口标记。
SepViT Block可以表示为:
[fn=Concat fn-1,wt];
[fn=DWA LNfn] ;
[fn,wt=Slice fn] ;
[fn=PWA fn,wt+fn-1] ;
[fn=MLP LNfn+fn] 。
其中[fn]表示SepViT块,[f.]n和[w·t]是特征映射和学习的窗口标记,Concat表示串联操作,Slice表示切片操作,图4为SepViT块的结构。
2.3 损失函数与激活函数
YOLOv5的损失函数由两部分组成:分类损失和边界框回归损失。边界框回归损失最经典的形式是IOU(Intersection over Union)[27]损失,YOLO系列中最常用的版本是CIOU(Complete Intersection over Union)[28]。CIOU通过预测框中心点欧氏距离和重叠率参数作为预测框偏差的偏差指标。
[CIOUij=JU-ρ2b,bgtc2-αν;α=v(1-IoU)+vν=4π2arctan ωgthgt-arctan ωh2 。]
其中([ωgt],[hgt])、([ω],[h])分别表示预测框和真实框的高与宽,[b]、[bgt]分别表示预测框和真实框的中心点,[ρ]表示两个中心点间的欧氏距离,[c]表示最小外接矩形框对角线距离,[α]表示权重函数,[v]表示真实框与预测框矩形对角线倾斜角的差方,如图5所示。
由于大棚内的复杂环境,训练数据不可避免地包含了低质量示例,从而降低模型的泛化性能。一个好的损失函数应该在anchor box和target box很好重合的情况下减弱几何因素的惩罚。因此,笔者选择了WIOU[29]替换CIOU,来提高模型的整体性能。
[LWIOU=RWIOULIOU];
[RWIOU=exp x-xgt2+y-ygt2W2g+H2g*] 。
式中[Wg]、[Hg]是最小封闭框的尺寸。为了防止[RWIOU]产生阻碍收敛的梯度,将[Wg]、[Hg]从计算图中分离出来(上标*表示该操作)。因为它有效地消除了阻碍收敛的因素,所以不需要引入纵横比等指标。
在YOLOv5中,原先使用ReLU作为激活函数,但ReLU在负值时会直接截断,导致梯度的损失。因此,笔者使用Mish[30]激活函数代替ReLU激活函数,并将其应用于训练和推理过程中。Mish是一种光滑且非单调的激活函数,其定义为:
[f(x)=xtanh [softplus(x)]=xtanh ln1+ex]
Mish激活函数的优势在于它没有上界,可以避免梯度饱和的问题。从图6中可以看出,当输入值为负时,Mish允许较小的负梯度流入,从而保证信息的流动性,同时稳定了网络梯度的流动,起到了强正则化的作用。此外,Mish函数是一个光滑函数,允许更多的信息深入神经网络中,因此,使用Mish函数可以提高网络的精确度和泛化能力。
3 结果与分析
3.1 番茄检测算法试验
试验的主要硬件平台为Dell Precision 3660 Tower工作站,搭载CPU为Intel 12500×3 GHz,显卡为NVIDIA RTX A4000,软件平台包括CUDA11.1、Python3.8.8和PyTorch1.8.0。在试验中,将数据集按照8∶1∶1的比例随机分为训练集、验证集和测试集,并使用SGD优化器进行模型训练。设置批处理大小为64,初始学习率为0.01,输入图像的大小为640×640,训练周期为900。
使用可视化工具TensorBoard记录训练过程中损失函数值和精度值的变化,图7和图8展示了损失函数和mAP的变化趋势。
在前200个迭代循环中,损失函数的值呈明显下降的趋势,随后下降速度减缓。经过600个迭代循环后,损失函数的值降至3附近,表明模型已经达到稳定收敛状态。在训练过程中,每隔10个迭代周期输出1次模型,并对测试集图像进行识别和处理。使用平均精度(mAP)作为评价指标,选择具有最高精度的模型作为最优模型。表1是与改进模型相比,使用相同训练过程的YOLOv5和改进模型的对比结果。
传统YOLOv5的mAP值为98.4%,改进后的YOLOv5为99.5%,提高了1.1个百分点,检测改进算法的效率与传统算法基本相同。可以看出,改进后的模型具有更高的准确度,能够更好地识别和定位番茄果实。
3.2 番茄产量估计试验
试验方法如下:(1)选择不同光线和尺度的视野,随机采集番茄植株图像,保证数据的多样性;(2)特意选择一些稀疏、密集和模糊果实的特殊图像样本,人工统计试验图像中红色和绿色果实的数量作为对照。(3)利用YOLOv5模型及改进后的YOLOv5模型对采集图像进行模式识别,对视野内的水果进行计数,并与人工计数结果进行对比,评价产量估算模型的准确性。
通过参考红色和绿色番茄的人工计数结果,笔者评估了YOLOv5和改进的YOLOv5对番茄的识别计数结果。对红番茄、绿番茄和总番茄的识别计数结果与人工计数进行比较,并以计算的比值作为红番茄、绿番茄和总番茄估产准确率的衡量指标。识别结果如图9、10所示,统计结果如表2所示。
可以看出,改进后的YOLOv5模型对密集红色番茄和绿色番茄的产量估算精度都有明显提高:密集红色番茄的估算精度提高了1.5个百分点,密集绿色番茄的估算精度提高了2.7个百分点。这表明改进后的YOLOv5模型在识别和估算密集的番茄群体时更为准确。且改进后的YOLOv5模型对遮挡红色番茄和绿色番茄的产量估算精度也有明显提高:遮挡红色番茄的估算精度提高了1.8个百分点,遮挡绿色番茄的估算精度提高了3.2个百分点。这意味着改进后的YOLOv5模型在处理遮挡情况下的番茄估算更为可靠。
4 讨论与结论
笔者提出了一种用于复杂环境下的改进YOLOv5算法,对自然生长条件下的番茄果实产量进行统计和估算。通过改进传统的YOLOv5模型的骨干网络和损失函数,构建了一种用于自然生长下番茄果实识别的模型。改进后的YOLOv5模型识别准确率得到提升,最终模型的mAP值为99.5%,比未改进的YOLOv5模型提高了1.1个百分点。改进后的YOLOv5模型对处于密集和遮挡条件下的番茄果实有更明显的识别效果和鲁棒性。密集条件下的红色番茄和绿色番茄的估算准确率分别为99.7%和99.1%,遮挡条件下的红色番茄和绿色番茄的估算准确率分别为99.2%和98.9%。通过应用笔者提出的番茄识别网络模型,能够有效解决传统图像检测方法在处理番茄果实重叠、枝叶遮挡和光照不均等复杂情况下定位检测精度低的问题,为后续研究提供了更有力的技术支持。
随着技术不断进步,未来的研究方向包括利用迁移学习和自监督学习来增强模型的泛化性能,实施目标跟踪以追踪番茄状态,进一步优化精细的番茄定位和计数,以及将番茄识别与农业决策支持系统紧密融合,以提供实时的农田管理建议。
参考文献
[1] 张俊宁,毕泽洋,闫英,等.基于注意力机制与改进YOLO的温室番茄快速识别[J].农业机械学报,2023,54(5):236-243.
[2] 孙皓泽,常天庆,王全东,等.一种基于分层多尺度卷积特征提取的坦克装甲目标图像检测方法[J].兵工学报,2017,38(9):1681-1691.
[3] LIU G X,MAO S Y,KIM J H.A mature-tomato detection algorithm using machine learning and color analysis[J].Sensors,2019,19(9):2023.
[4] 李寒,陶涵虓,崔立昊,等.基于SOM-K-means算法的番茄果实识别与定位方法[J].农业机械学报,2021,52(1):23-29.
[5] MALIK M H,ZHANG T,LI H,et al.Mature tomato fruit detection algorithm based on improved HSV and watershed algorithm[J].IFAC-Papers On Line,2018,51(17):431-436.
[6] 马翠花,张学平,李育涛,等.基于显著性检测与改进Hough变换方法识别未成熟番茄[J].农业工程学报,2016,32(14):219-226.
[7] GIRSHICK R,DONAHUE J,DARRELL T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C].IEEE Conference on Computer Vision and Pattern Recognition,2014.
[8] GIRSHICK R.Fast R-CNN[C].IEEE International Conference on Computer Vision,2015.
[9] REN S Q,HE K M,GIRSHICK R,et al.Faster R-CNN:Towards real-time object detection with region proposal networks[J].Advances in Neural Information Processing Systems,2015.
[10] REDMON J,FARHADI A.YOLO9000:Better,faster,stronger[C].IEEE Conference on Computer Vision and Pattern Recognition,2017.
[11] REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:Unified,real-time object detection [C].IEEE Conference on Computer Vision and Pattern Recognition,2016.
[12] LIU W,ANGUELOV D,ERHAN D,et al.Ssd:Single shot multibox detector[C].Computer Vision–ECCV 2016:14th European Conference,Amsterdam,The Netherlands,October 11-14,2016,Proceedings,Part I 14.Springer International Publishing,2016.
[13] 何斌,张亦博,龚健林,等.基于改进YOLO v5的夜间温室番茄果实快速识别[J].农业机械学报,2022,53(5):201-208.
[14] 周云成,许童羽,邓寒冰,等.基于双卷积链 Fast R-CNN 的番茄关键器官识别方法[J].沈阳农业大学学报,2018,49(1):65-74.
[15] 张文静,赵性祥,丁睿柔,等.基于Faster R-CNN算法的番茄识别检测方法[J].山东农业大学学报(自然科学版),2021,52(4):624-630.
[16] 刘芳,刘玉坤,林森,等.基于改进型YOLO的复杂环境下番茄果实快速识别方法[J].农业机械学报,2020,51(6):229-237.
[17] LIU G X,NOUAZE J C,TOUKO P L,et al.YOLO-Tomato:A robust algorithm fortomato detection based on YOLOv3[J].Sensors-Basel,2020,20(7):2145.
[18] 成伟,张文爱,冯青春,等.基于改进YOLOv3的温室番茄果实识别估产方法[J].中国农机化学报,2021,42(4):176-182.
[19] REZATOFIGHI H,TSOI N,GWAK J Y,et al.Generalized intersection over union:A metric and a loss for bounding box regression[C].IEEE/CVF Conference on Computer Vision and Pattern Recognition,2019:658-666.
[20] 成伟.基于深度学习的番茄植株多目标识别方法研究[D].太原:太原理工大学,2021.
[21] VASWANI A,SHAZEER N,PARMAR N,et al.Attention is all you need[C].Proceedings of the 31st Information Processing Systems,2017:6000-6010.
[22] DOSOVITSKIY A,BEYER L,KOLESNIKOV A,et al.An image is worth 16×16 words:Transformers for image recognition at scale[J].arXiv:2010.11929,2020.
[23] LI W,WANG X,XIA X,et al.Sepvit:Separable vision transformer[J].arXiv:2203.15380,2022.
[24] HOWARD A G,ZHU M L,CHEN B,et al.MobileNets:Efficient convolutional neural networks for mobile vision applications[J].arXiv:1704.04861,2017.
[25] SANDLER M,HOWARD A,ZHU M,et al.MobileNetv2:Inverted residuals and linear bottlenecks[C].IEEE/CVF Conference on Computer Vision and Pattern Recognition,2018:4510-4520.
[26] ANDREW H,MARK S,GRACE C,et al.Searching for mobilenetv3[C].Proceedings of the IEEE/CVF international conference on computer vision,2019:1314-1324.
[27] YU J H,JIANG Y N,WANG Z Y,et al.Unitbox:An advanced object detection network[C].Proceedings of the 24th ACM international conference on Multimedia,2016:516-520.
[28] ZHENG Z H,WANG P,REN D W,et al.Enhancing geometric factors in model learning and inference for object detection and instance segmentation[J].IEEE Transactions on Cybernetics,2021,52(8):8574-8586.
[29] TONG Z J,CHEN Y H,XU Z W,et al.Wise-IoU:Bounding box regression loss with dynamic focusing mechanism[J].arXiv:2301.10051,2023.
[30] MISRA D.Mish:A self regularized non-monotonic activation function[J].arXiv:1908.08681,2019.