1. 引言
花生是豆科植物的一种,是优质食用油的主要种类之一,其内含有多种蛋白质、维生素和人体必需的氨基酸成分等 [1] 。花生中富含的各种营养物质极大促进人们身心健康地发展。在当前国际花生出口市场竞争激烈的情况下,花生生产、加工和质量控制显得更加重要。农作物种子作为农业生产的根基,种子检测技术不仅能在确保种子质量上发挥关键作用还能保护农业从业者的权益 [2] 。传统的种子检测方法是传统人工检测,根据人眼观察种子的形状、大小、色泽、质地、表面的光泽、饱满程度以及种子外观各部位的特征等对种子进行人工检测。这种方法不仅十分消耗人力物力并且带有很多人为主观性 [3] 。虽然深度学习在农业中的应用研究相对其它领域起步较晚,但有着广泛的应用和重要意义。该技术在对象的无损检测中,能在不直接触碰检测对象的条件下从图像数据中得到大量参数和信息,在动物、植物、农产品等生命体的检测和质量综合评估上具备适用性。
目前国内外许多学者利用深度学习技术在智慧农业的研究中取得了很大的发展。彭文等 [4] 使用深度卷积神经网络技术成功对水稻田间的杂草进行识别。薛月菊等人 [5] 使用了YOLOv2技术,对位于有干扰环境中未成熟芒果进行了识别检测。成伟等 [6] 选择YOLOv3技术来识别种植在大棚中的西红柿。研究人员利用卷积神经网络进行农作物种子质量检测,获得了很好的效果 [7] [8] 。范晓飞等 [9] 采用了YOLOv4模型对玉米种子品质进行了检测。Kundu等 [10] 采用了YOLOv5模型对包括小米、健康玉米、患病玉米种子图像的数据集进行了分拣和质量测试。
因此将深度学习技术应用到农业中的种子质量检测,保证优质产品的特性继承,达到提高农作物产量。同时基于深度学习的YOLOv5算法检测能够有效获取优质的花生种子、保障农业生产的安全,促进农业生产持续优质、高效、稳产,进而实现农业生产模式的发展。这种智能化和自动化的方式也能够减轻农民的工作负担,增加他们的经济收入,进而促进社会稳定与和谐。
2. 数据处理与分析
数据获取是深度学习领域一项必不可少的技能。数据获取方式多种多样,具体而言有以下几种:
1) 找与任务相关的公开数据集。
2) 利用外包平台进行数据获取。
3) 可以根据需要自己使用摄像头采集。
4) 利用网络爬虫技术获取。
由于花生种子数据集在网络上没有公开,仅凭网上搜寻的花生种子图片数量远远不够,故本项目选择第三种方式手动制作数据集。本文主要以红皮花生为样本,自制了一个花生种子数据集。为模拟真实工厂环境,我们以白底为背景,并用手机摄像头拍摄了不同角度、不同密度和不同光照环境下的花生照片,采集的图像使用软件预设的分辨率为640 * 480。最终获得符合实验条件2000张花生种子的图像,每一张图像中包含的花生种子数量不一。
我们用目标检测标签制作器labelImg对采集到的花生图像进行人工标注,如图1所示,使用矩形框标注目标,生成包含标注信息的xml文档,该文档为HTML代码格式,分别记录了目标图像的高和宽、类别和位置信息。标注分为4个类别,分别是intact (完好的)、broken (破损的)和shrunk (缩水的),moldy (发霉的),如图2所示。
Figure 1. labelImg annotation interface
图1. labelImg标注界面
数据集制作完成后,将这2000张包含标记信息的花生种子图像分别分成训练集和测试集。
生成训练集和测试集文件:
执行python脚本:python prepare_data.py。
我们在VOCdevkit/VOC2007目录下观察到生成了文件夹YOLOLabels;在VOCdevkit目录下生成了images和labels文件夹;在yolov5下生成了两个文件:yolov5_train.txt和yolov5_val.txt。
标签下文件是图像文件夹中每个图像的yolo格式注释文件,这些文件是从注释XML注释文件转换而来的YOLOLabels中存在的文件是images文件夹中各个图像的yolo格式的标注文件,这些文件是从annotations的xml标注文件转换来的;images文件夹下有train和val文件夹,分别放置训练集和测试集图片;labels文件夹有train和val文件夹,两个文件分别存放训练集和测试集标签(yolo格式);yolov5_train.txt和yolov5_val.txt分别给出了训练图片文件和测试图片文件的列表,含有每张图片的路径和文件名。
3. 算法结构与改进的算法结构
3.1. YOLOv5检测算法
YOLOv5目标检测模型是YOLO系列的第5个版本,它识别精度高,推理速度快,避免了两阶段系列中候选区域的重计算。它的核心思想就是利用整张图作为网络的输入,在输出层回归预选框的位置和类别。YOLOv5包括4种结构相似的网络模型,分别命名为YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x [11] 。YOLOv5s属于其中网络深度和宽度最小的模型,其余模型的网络宽度和深度在它的基础上依次增加 [12] 。我们在本文中采用YOLOv5s网络为基础模型。
图3为YOLOv5网络结构。它在YOLOv4的基础上做了进一步的改进,检测性能方面得到了提升。YOLOv5的基本框架可以分为4个部分 [13] :Input、Backbone、Neck和Head。
(a) Input:这里使用了Mosaic数据增强、自适应锚框计算与自适应图片缩放。Mosaic方法通过拼接数据增强来丰富数据集。
(b) Backbone:骨干网络通过CSPDarknet53结构进行特征提取。它由CBS、C3、SPFF等模块组成 [14] 。
(c) Neck:使用FPN和路径聚合网络(PANet)来聚合该阶段的图像特征。
(d) Head:输出检测头由三个检测层组成进行预测。
3.2. 改进的YOLOv5网络结构
本研究对YOLOv5体系结构进行了改进,如图4所示。这些改进包括:1) 初始特征提取主干部分,我们选择了ShuffleNetV2 [15] 对YOLOv5网络进行轻量化。它可以减少参数量和计算负担,并在不降低精度的情况下进一步提高模型的计算效率。2) 为了提升网络的特征提取能力并减轻不重要的信息对模型训练的干扰。本文针对颈部部分,在其中增添了ECA-Net机制 [16] 。该模块具备自适应提取关键特征信息的能力,而且避免了降维。
Figure 4. Improved YOLOv5 overall structure
图4. 改进的YOLOv5整体结构
3.2.1. ShuffleNetV2架构
图5为ShuffleNetV2架构。块(a)中,输入的特征图被切分成两组。其中左侧保持不变,右侧包括了3次卷积运算,它们的步距都是1。右侧分支在中间阶段利用了3 × 3的深度可分离卷积,其余阶段为1 × 1普通卷积。经过卷积操作之后,利用Concat操作合并两部分的通道信息。最终将拼接后的特征进行通道混洗以促进各个组之间的信息交流。块(b)为下采样模块,它未像块(a)一样存在通道分割操作。除此之外,两路均利用了深度卷积,步长均为2。最后在此结构中,特征图大小缩小一倍,通道数翻倍。
Figure 5. ShuffleNetV2 architecture
图5. ShuffleNetV2架构
3.2.2. 添加ECA注意力机制
为了提升花生种子的检测精度,我们选择轻量级通道注意力ECA模块实现其增加特征提取能力,它的结构如图6所示。它通过全局平均池化将全局信息嵌入到每个通道中,之后执行具有自适应选择卷积核大小的一维卷积来获取花生种子特征的通道信息,然后使用Sigmoid激活函数进行归一化,接下来它利用归一化的通道信息与原始的花生种子特征图相乘获得关键特征。
4. 实验与分析
4.1. 搭建实验环境
实验在Intel(R) Core(TM) i-7200U CPU @2.50GHz,Windows10 64位操作系统,Python 3.9运行环境下对数据集进行检测,根据实验配置及网络结构搭建环境,完成环境配置,其中本文将总迭代次数设置为40。
4.2. 实验评估指标
平均精度均值(mAP)是目标检测算法中最重要的评估指标,衡量了检测算法的精度,所以本文采用目标检测算法中的mAP值对YOLOv5s算法的性能进行评估,平均精度均值mAP的计算表达式为:
(1)
式中,P为精确度,R为召回率,计算公式如下:
(2)
(3)
其中,TP为真阳性样本数量;FP为假阳性样本数量;FN为假阴性样本数量;N为样本中种类数量。另外,本文为了评估所提方法的检测速度,我们选择了每秒帧率(Frame Per Second, FPS)进行评估。
4.3. 实验结果
本文方法实验结果如图7、图8所示。图7展示了自制花生种子数据集中部分图片检测结果,图8为mAP曲线图。观察图中预测框的置信度和mAP得出本文方法能取得较好的检测效果。
Figure 7. Partial image detection results
图7. 部分图片检测结果
Figure 8. Improved YOLOv5 mAP curve graph
图8. 改进后YOLOv5 mAP曲线图
不同模型对比实验
为了进一步评估本文算法在花生种子质量检测中的有效性,我们在相同的实验环境下将该模型与其他流行的深度学习算法如YOLOv4和原YOLOv5s算法进行了比较,实验结果如表1所示。我们观察到本文方法在mAP和FPS方面更有优势。与原有的YOLOv5和YOLOv4模型相比,改进方法mAP分别提了2.7和4.1%。改进后的方法让模型的检测速度得到了提高,该方法FPS为62帧/s,较原YOLOv5网络提升了27.4%。综上所述,本文改进后的YOLOv5算法不仅可以确保检测速度、还具有更好的检测精度,更好的满足花生种子质量检测的要求。
Table 1. Comparison of experimental results from different models
表1. 不同模型实验结果对比
5. 总结
本研究针对传统种子检测存在的不足,提出了一种基于改进的YOLOv5的检测模型。该模型结合了轻量级的ShuffleNetV2骨干网络和ECA注意力机制。在自制花生种子数据集上的实验结果表明本文提出的模型在检测精度和检测速度上都表现优越。该模型mAP的值为91.3%,与YOLOv4和原YOLOv5相比分别提升了2.7%和4.1%,同时保持了高达63帧/s的检测速度。该研究为花生种子的质量检测提供了一个既快速又高精度的有效方法、并且为促进农业生产持续优质、高效、稳产提供研究基础。未来,我们计划进一步优化模型,并将其应用于其他农作物种子的检测中。
基金项目
贵大人基合(2016) 15号;贵州省自然科学基金项目(黔科合基础-ZK [2023]一般055)。
NOTES
*通讯作者。