基于YOLOv5的水果品质检测与分类方法研究
2023-09-15罗家梅
罗家梅,王 敏,2
(1.赣南师范大学 数学与计算机科学学院;2.江西省数值模拟与仿真技术重点实验室,江西 赣州 341000)
0 引言
目前,水果产业已经成为我国继粮食、蔬菜之后的第三大农业种植产业,是国内外市场前景广阔且具有较强国际竞争力的优势产业。人工智能技术支持下的水果品质检测与分类技术对于水果生产、加工、运输和销售具有重要意义,尤其是在快节奏的“互联网+”环境下,水果品质检测与分类方法的性能和速度直接影响水果产业的经济效益和市场竞争力。最早的水果品质检测与分类工作依赖人工,容易受到人的情绪、疲劳程度以及身体状况等因素影响,而且每个人的分类标准有所差异,从而导致高成本、低效率的弊端。随后,机械检测分类方法逐渐替代人工检测[1],但该方法会对水果造成一定程度的损伤,导致其保质期缩短甚至腐烂,直接影响经济效益。因此,目前学者们开始尝试使用以机器视觉和机器学习为代表的人工智能技术研究水果品质检测与分类方法。传统智能检测方法是基于特征设计与分类实现的,特征设计主要是提取颜色[2]、形状[3]和纹理[4]等特征,经典分类方法包括支持向量机[5]、人工神经网络[6]、最邻近分类[7]等。然而这些方案都是通过从大量数据中获取有用特征并建立有效模型来处理问题,受限于算法自身的局限性,在复杂场景下同时检测水果品质和种类的鲁棒性差,难以满足实时检测要求。
基于深度学习的水果检测方法分为基于候选区域的目标检测方法和基于回归的目标检测方法两类。基于候选区域的目标检测方法亦称为两阶段方法,典型网络模型包括Fast R-CNN(Fast Region-based Convolutional Neural Network)、Mask-RCNN(Mask Region-based Convolutional Neural Network)等。基于回归的目标检测方法也被称为一阶段方法,该类方法能在一个网络中同时进行回归和分类操作,减少了计算量并提升了检测速度,典型网络模型包括YOLO(You Only Look Once)、SSD(Single Shot MultiBox Detector)等。融合深度学习技术的水果品质检测与分类方法较传统机器学习方法具有一定优势,但检测性能和速度仍有提升空间。
1 相关研究
为达到高效、精确且非接触的检测目的,自20 世纪70年代起,国内外学者将机器视觉技术应用于水果分类研究中,并取得了一定成果。例如,Zeeshan 等[2]提出使用计算机视觉和支持向量机对18 类水果进行分类,通过提取颜色、纹理和形状特征创建特征空间,然后结合支持向量分类器进行分类,最终分类准确率达到了87.06%;Yue 等[3]以烟台苹果为研究对象构建分类检测系统,利用Canny 边缘算法提取苹果的外轮廓,通过几何计算提取大小特征,同时采用圆形法提取水果形状特征,分类准确率达到92.33%,但该方法存在一定的机械损失;艾妮[4]以机器视觉技术为基础构建水果自动分拣系统,通过提取中心关键点的方法对目标水果进行定位,最终该系统对于形状规则的苹果和橘子分类准确率可达92%,但对于形状不规则的水果难以取得良好分类效果;Bekkanti 等[5]提出利用Sobel边缘检测和支持向量机对患病水果进行自动检测,对患病水果和非患病水果的分类准确率达到92%;Huang 等[6]使用人工神经网络探索土壤和叶片中矿物质养分对枇杷果实品质的影响,同时进行了敏感性分析以确定果实质量,所建立的人工网络预测模型通过优化矿物元素含量来提高枇杷果实品质;饶剑等[7]设计了一套由成像系统、照明设备、传送装置和数据处理中心等组成的类球形水果外形尺寸在线检测系统,将类球形水果的表面缺陷特征参量作为重要检测指标,并以此进行分级判定,最终平均识别率达94.4%。然而,以上方法性能依赖于水果表面特征设计和分类方法的选取,存在两方面问题:一是特征提取需要人工设计,工作量较大;二是同时进行特征提取和分类的传统机器学习方法对系统性能较高。
近年来,深度学习技术在水果品质检测与分级分类中的应用越来越广泛。例如,Mai 等[8]将多分类器融合策略合并到Faster R-CNN 网络模型中对两个小型水果数据集进行检测,使用相关系数衡量分类器的多样性,并引入一种具有分类器相关性的损失函数训练区域提议网络,取得了较好的检测效果,但由于该方法需要边界框注释,检测效率较低;Liu 等[9]采用R-FCN(Region-based Fully Convolutional Networks)方法识别复杂背景下的水果目标,通过降低提取候选区域的时间提高了检测速度,但检测精度存在一定提升空间;王红君等[10]采用改进YOLOv3 模型检测复杂环境中的苹果、桃子、香橙、梨,最终平均精度达到92.27%,检测速度为45 帧/s;王卓等[11]提出一种以YOLOv4 为基础的轻量化苹果实时检测方法YOLOv4-CA,通过引入深度可分离卷积和坐标注意力机制,在降低网络计算复杂度的同时提高了抗背景干扰能力,最终平均检测精度为92.23%,在嵌入式平台的检测速度为改进前模型的3倍;涂淑琴等[12]提出基于残差网络[13]和特征金字塔网络(Feature Pyramid Network,FPN)[14]的FasterR-CNN 检测算法,对无遮挡、遮挡、重叠和有背景4 种情况下的百香果进行自动检测,最终得到平均检测精确率为87.98%;黄豪杰等[15]针对自然环境下目标水果检测率不高和检测模型泛化性不强等问题,提出一种基于深度学习的SSD 改进模型,其以苹果、橙子、荔枝作为研究对象,以自然环境为研究背景,得到由SSD 改进的SSD300 和SSD512 模型平均检测精度分别为83.05%、84.24%。然而,以上研究仅针对类球形水果展开,对非类球形水果品质检测与分类的研究有待加强。
从以上分析可知,基于传统深度学习技术的水果检测方法仍有提升空间。YOLOv5 具有检测精度较高、速度快和易部署等优势[16],为此提出基于YOLOv5 目标检测算法的水果品质检测与分类方法,以期为为实际农业场景下的水果品质检测提供新思路。
2 YOLOv5模型
YOLO 是一种广泛应用于工业[17-18]、交通[19-21]、医疗[22]和农业[23-25]等领域的目标检测网络模型,其于2016年由Joseph Redmon 等[26]首次提出,随后相继提出YOLOv2、YOLOv3[27]、YOLOv4[28]、YOLOv5[12]版本。YOLOv5在YOLOv4 的基础上进行了参数优化调整,检测速度有所提升。例如YOLOv5 在Tesla P100 加速器上可实现140 帧/s 的快速检测,能够满足工业生产线实时检测要求。按照模型大小不同,YOLOv5 推出了s、m、l和x4 个不同网络深度和宽度的网络模型,其中YOLOv5s 网络是YOLOv5 系列中深度最小、特征图宽度最小的模型。为满足水果表面质量检测速度要求,本文采用计算速度最快的YOLOv5s模型。
如图1所示,YOLOv5s算法网络模型主要分为输入端、骨干端、颈部端、头部端4 个模块。输入端的主要功能是对输入图像进行预处理,包括Mosaic 数据增强、自适应锚框计算、自适应图像缩放3 个模块,其中Mosaic 数据增强以4 张图像为输入,通过随机缩放、随机裁剪、随机排布的方式进行拼接;自适应锚框计算对训练输出中的预测框与真实框进行距离计算,通过反向迭代达到更新网络参数的目的;自适应图像缩放则利用等比缩放或黑边填充方法得到统一图像,从而提高目标检测速度。骨干端由 Focus、Conv、BottleneckCSPn、空间金字塔池化(Spatial Pyramid Pooling,SPP)等模块组成,其是网络的主干部分。该模块采用Focus 结构对图片进行切片操作,将其切分为4 张互补的图片,最后进行卷积运算。BottleneckCSPn 由3个卷积层和N 个Bottleneck 模块Concat 组成,如果带有False 参数则未使用Bottleneck 模块,而是采用Conv+BN+Leaky_Relu+Conv,其中Bottleneck 先是1×1 的卷积层,再是3×3 的卷积层,最后通过残差结构与初始输入相加,主要目的是减少参数数量,从而减少计算量,且在降维之后可以更加有效、直观地进行数据训练和特征提取。在特征生成部分则沿用之前的SPP 结构,主要作用是增加特征的多样性,防止过拟合现象出现,同时加快网络收敛速度。颈部端网络采用路径聚合网络(Path-Aggregation Network,PANet)进行特征融合,即在FPN 自顶向下的基础上添加一个自底向上的信息流通路径,有利于提高特征提取能力。头部端输出端采用GIOU 函数作为边界框的损失函数,在目标检测后处理过程中使用非极大值抑制(Non Maximum Suppression,NMS)对多目标框进行筛选,增强了多目标和遮挡目标的检测能力。
Fig.1 Network structure of YOLOv5s图1 YOLOv5s网络结构
3 数据集构建
通过现场拍摄和网络爬虫方法进行图像采集,为保证分类效果,照片覆盖4 类不同品质、不同形状和纹理的水果。数据集具体构建步骤为:
(1)数据采集。实验数据集由网络数据和现场数据两部分组成,其中网络数据由爬虫工具从互联网获取的苹果、橘子、香蕉和梨4 种果实形状不同的水果图像组成;现场数据则由相机或手机在果园和超市等地点拍摄得到。需要注意的是,现场图像数据是在不同光照条件、角度和背景环境拍摄得到的,因此最后需从数据集中剔除像素不清晰以及果实存在严重遮挡的图像。
(2)数据标注。使用LabelImg 软件对图像数据进行标注,并以PascalVOC 格式保存为XML 文件,文件名与图像名保持一致。图2给出了苹果的标注示例。
Fig.2 Apple annotation example图2 苹果标注示例
(3)数据分割。通过上述两个步骤得到2 190 张图像,按照8∶1∶1的比例将其划分为训练集、验证集和测试集。
4 实验方法
4.1 实验环境与参数设置
实验计算机配有i7-7820X CPU、Geforce GTX 1080 Ti显卡和128 GB 内存,操作系统为Windows Server 2019,采用PyTorch 1.10 深度学习框架。实验使用随机梯度下降(Stochastic Gradient Descent,SGD)[29]优化器训练网络,修改目标种类参数nc(number of classes)为8,同时分别命名为apple、damaged_apple、orange、damaged_orange、pear、damaged_pear、banana、damaged_banana。数据集配置文件ab.yaml 中设置好数据集路径,输入图像尺寸为900×900,迭代次数(epochs)为300,批处理大小(batch size)为8,动量因子为 0.937,权重衰减系数为0.000 5。选用自动锚点检测,采用Mosaic 数据增强策略,初始学习率为0.001。
4.2 评价指标
使用精确率(Precision)和召回率(Recall)作为水果分类评价指标,表示为:
式中:TP为被判为正类的正类(正确检测),FP为被判为正类的负类(错误检测),FN为被判为负类的正类。使用IoU 设为0.5 时的平均精度均值(mAP_0.5)、同IoU 阈值(从0.5 到0.95,步长0.05)的平均mAP(mAP_0.5:0.95)、精确率、召回率作为模型评价指标。平均精度(AP)表示 Precision-Recall 曲线下面积,对该图片每一类的平均精度求均值即得mAP,计算公式为:
式中:N 为该图片不同类别的总和。
5 实验结果与分析
5.1 网络模型训练结果
在以上参数环境下进行模型训练,对训练结果进行可视化绘图,模型精确率、召回率、mAP_0.5、mAP_0.5:0.95如图3 所示。可以看出,当迭代次数小于200 时,精确率、召回率、mAP_0.5 和mAP_0.5:0.95 均随迭代次数的增加快速上升。当迭代次数大于200 时,各项性能指标逐渐趋向平稳,模型精确率和召回率均稳定在90%以上,平均精度均值为95.3%,模型在训练阶段性能较为理想。
Fig.3 Model training results图3 模型训练结果
5.2 性能比较
选 择YOLOv3、YOLOv3-spp、YOLOv3-tiny 和YOLOv4-tiny 4 种网络模型作为比较模型,与本文模型在相同计算机环境下的同一个数据集中进行实验,结果如表1 所示。可以看出,本文提出的YOLOv5s 方案平均检测精度值达到95.3%,与YOLOv3、YOLOv3-spp、YOLOv3-tiny 和YOLOv4-tiny 相比分别提高了3.7%、0.2%、13.1%和8.73%。YOLOv5s 在damaged_apple、damaged_orange、pear 和damaged_banana 4 个类别上的表现最优;YOLOv3-spp 在apple、orange 和banana 3 个类别上的表现最优,YOLOv3 在damaged_pear 类别上的表现最优。这是由于YOLOv3 和YOLOv3-spp 两个网络模型使用了更大的特征提取模块,而YOLOv5s是一个轻量化网络模型。
Table 1 Training results comparison of different models表1 不同模型实验结果比较(%)
表2 给出了相同计算环境下不同模型的训练时间、推理时间和大小,可以看出YOLOv5s 模型的训练时间、推理时间和网络参数大小均明显优于其他模型。综上所述,YOLOv5s 模型的平均检测精度和检测速度均有较大优势,满足实时检测需求。
Table 2 Comparison of training time,inference time,and size of each model表2 各模型训练时间、推理时间和大小比较
5.3 测试结果
分别使用训练好的YOLOv5s 和YOLOv3、YOLOv3-spp、YOLOv3-tiny、YOLOv4-tiny 网络模型对非训练水果图像进行测试,输出结果包括水果种类、好坏、边界框及相应的置信度,部分测试结果如图4 所示。可以看出,YOLOv5s模型对所有水果图像的检测置信度均高于0.9,平均检测时间为10.5 ms。虽然YOLOv3 和YOLOv3-spp 测试结果的置信度大多比YOLOv5 高,但其推理时间分别为29.4 ms 和27.9 ms,是YOLOv5s检测时间的2.5倍以上,难以满足实时检测需求。YOLOv3-tiny 和YOLOv4-tiny 是轻量化后的网络模型,由于其定位精度较差以及容易出现漏检、误检情况,检测置信度较低,其中YOLOv3-tiny 对banana 和damaged_banana 检测的置信度均低于0.5。
6 结语
本文针对传统深度学习技术对水果种类与品质检测精确度和速度有待提高的问题,提出基于轻量级模型YOLOv5s 的目标检测算法,同时自行构建了4 种不同类型水果的数据集。实验结果表明,YOLOv5s 在检测性能、训练时间、推理时间和网络参数大小等方面均优于传统检测方法,可以对不同品种的水果进行准确识别与定位,且具有占用内存小、推理时间短的特点,有望将其部署到智能终端,从而实现水果的实时在线检测。未来将继续完善不同类型水果的检测数据集,并优化网络结构以进一步提高水果分类准确率及品质检测精度。