1. 引言
现如今,人工智能技术已经渗透到我们的日常生活中,其在农业采摘领域的应用也越来越广泛 [1] [2] 。在采摘辣椒的行业中,传统的人工采摘效率低且成本高,因此,实现辣椒的自动采摘、保证辣椒果实的及时采摘、并降低采摘成本,已经成为该行业发展的必然趋势。对于实现自动采摘辣椒果实,辣椒信息的智能感知和定位技术是关键所在 [3] [4] 。因此,为了提高辣椒自动采摘效率,必须实现辣椒果实目标的快速、准确的识别和定位。
自然生长环境下辣椒通常会存在重叠遮挡现象,此类果实的识别是自动采摘辣椒的重要问题 [5] [6] 。重叠遮挡生长状态下的辣椒果实识别方法不同于无遮挡形态果实以及其他生长状态下的果实,因此,能够自动识别有无重叠遮挡状态下的辣椒果实成为关键。
近年来,目标检测和定位技术发展迅速,在各个领域都有这些技术的参与,其中在农业领域也取得了显著的成果,这为辣椒果实地识别与定位提供了研究基础。目标检测算法可分为传统的检测算法和基于深度学习的算法。然而,传统目标检测算法在处理复杂多变的背景时,其检测效果容易受到较大的影响。因此,研究者们一直在不断改进这一方法。Whittaker等 [7] 为了检测番茄,使用Sobel算子检测果实的边缘,并利用Hough变换计算番茄的中心坐标。该方法能够很好地识别重叠的番茄,但是处理时间较长,识别效率较低。Gongal等 [8] 为了实现对苹果的自动化检测,结合了HSI和RGB颜色空间,对苹果图像进行了处理。利用Otsu阈值分割和Hough变换对苹果进行了分割识别,平均识别精度为78.9。该方法不适用于数量较多、环境较复杂的辣椒。随着深度学习卷积神经网络技术的不断发展,目标识别检测相较于传统方法展现出更高的优越性 [9] ,目前的卷积神经网络主要分为两大类,一种是端到端的方法 [10] ,主要有YOLO、SSD、RetinaNet,另一种是基于区域建议的方法 [11] [12] [13] ,主要有Fast RCNN、Faster RCNN、Mask RCNN。
在本文中,为解决辣椒果实生长密集、在识别过程中可能会遇到漏检或错检的问题,构建了CM-YOLO模型。
2. CM-YOLO模型结构
2.1. YOLOv5模型
YOLO [14] [15] 系列网络模型是最为经典的one-stage算法,在目标检测的网络里面,它是在工业领域使用最多的网络模型。YOLOv5网络模型在继承了原有YOLO网络模型优点的基础上,具有更优的检测精度和更快的推理速度。模型的整体结构如图1所示。YOLOv5网络结构由输入端(Input)、Backbone、Neck、Head组件组成。各部分完成的主要功能,所述如下:
(1) Input:YOLOv5采用了YOLOv4中的Mosaic数据增强方法来丰富数据集,降低硬件需求,从而减少了GPU的使用。此外,自适应锚框计算功能被嵌入到整个训练代码中,可以根据需要自行调节开关,同时也实现了自适应图片缩放,这有助于提高目标检测的推理速度。
(2) Backbone:Focus模块将输入的图片数据分成四份,每一份数据相当于进行了2倍下采样,然后将这四份数据进行拼接,得到一个尺寸缩小一半的新特征图。最后,通过卷积操作将信息进行融合,并改变特征图的通道数。这种方法的优点是能够最大程度地减少信息损失和计算量,同时增加了难样本和数据的多样性。
(3) Neck:在YOLOv5网络模型中,颈部网络主要负责对主干网络提取的特征进行增强处理,以提高后续预测的精度。原始的FPN结构采用自顶向下的特征融合方式来处理目标检测领域中的多尺度变化问题,已经在许多模型中得到了广泛应用。但是,如果仅使用FPN结构来融合上下文信息,则无法实现上层信息与底层信息的交流。因此,在FPN的基础上,YOLOv5网络还加入了PAN结构,引入了一条自下而上的信息流,充分实现了网络上下信息流的融合,从而提高了网络的检测能力。
(4) Head:YOLOv5采用损失函数CIOU-Loss,可以将一些遮挡重叠的目标准确识别出来。
2.2. CM-YOLO模型架构
为了实现微小目标的有效检测,我们对YOLOv5模型进行了改进,增加了小目标检测层的YOLOv5模型如图2所示。我们利用P2层提取更丰富的底层特征信息,并与主干网络的同尺度特征融合,得到了三个输入特征的融合结果。此外,我们还增加了一个底层特征检测头 [16] ,它能够更加敏感地检测微小目标。虽然该检测头增加了模型的计算量和内存开销,但有效提高了我们对密集生长的辣椒果实的检测能力,并缓解了尺度方差的负面影响。该检测头分辨率为160 × 160像素,相当于在主干网络中只进行了2次下采样。另外,我们的P2层检测头与原始的三个检测头一起使用,可以进一步提高检测效果。这些检测头针对不同的特征图生成,可以有效地覆盖不同尺度的目标。通过将它们结合起来,我们能够在不影响速度的情况下提高检测的精度和鲁棒性。
总之,我们的改进方案在不增加过多计算量和内存开销的情况下,有效地提高了模型对微小目标的检测能力。这对于像辣椒这样密集生长的农作物的自动化检测非常重要,也为后续的研究提供了有力的基础。
Figure 2. YOLOv5 model with added small target detection layer
图2. 增加小目标检测层的YOLOv5模型
2.3. 添加CBAM注意力机制模块
为了改善辣椒果实的识别效果,我们选择在特征融合网络中应用融合通道注意力和空间注意力的CBAM模块 [17] [18] 。这种卷积注意力模块能够帮助网络模型更好地关注辣椒果实的关键信息,特别是在自然场景下的辣椒生长环境比较复杂,且辣椒图像的前景和背景较为相似的情况下。我们将CBAM模块融合到原始YOLOv5的C3模块后,如图3所示。这样做可以增强特征融合网络的性能,并提高对辣椒果实的识别能力。
Figure 3. YOLOv5 model fused with CBAM
图3. 融合CBAM的YOLOv5模型
CBAM是一种简单而有效的轻量级注意力模块,可以轻松地集成到CNN架构中,并进行端到端的训练。通过在给定特征映射上逐步生成通道和空间维度的注意力映射,并将这些映射与输入特征映射相乘,CBAM注意力模块可以自适应地细化特征。CBAM注意力模块的结构如图4所示。当遇到目标尺寸较小、特征不显著且数量较少的情况时,将CBAM注意力模块嵌入主干网络中可以增强网络对目标特征的提取能力,同时改善颈部网络中特征融合部分的性能。在目标检测任务中,CBAM注意力模块可以有效地协助模型提取关注区域,从而提高检测性能。
Figure 4. CBAM module structure diagram
图4. CBAM模块结构图
3. 实验评估
3.1. 数据集
实验中数据集一部分来自Zhang [19] 等构建的辣椒数据集,一部分为我们采集的辣椒图像,以露地栽培模式下的二荆条辣椒为研究对象,露地栽培模式下,辣椒树行距约10 cm,株距约40 cm。辣椒处于绿熟成长期,为了正确反映辣椒生长姿态及环境的复杂性,采集了晴天和阴天的辣椒图像。拍摄阶段包括上午、中午和下午。收集了2000张图像,这些图像在不同光照和角度条件下采集,其中包括:无遮挡和无重叠的辣椒图像、果实部分重叠的辣椒图像、叶片遮挡的辣椒图像、枝干遮挡的辣椒图像以及叶片和枝干混合遮挡的辣椒图像。采集设备为手机自带摄像头,对比度、饱和度和锐度设置为标准模式。包括以下条件:被叶子、树枝遮挡的辣椒,混合遮挡的辣椒与重叠的辣椒、自然光角度、背光角度和侧光角度等。此外,在图像采集中还考虑了云、阴影、高光、弱光、反射等环境因素。俯视图片785张(正光462张,背光323张),平视图片1215张(正光871张,背光344张),数据集部分原始图像如图5所示。
Figure 5. Original images of some datasets
图5. 部分数据集原始图像
3.2. 结果分析
本实验训练过程在Ubuntu18.0、CUDA11.0环境下进行,GPU配置:NVIDIA GeForce RTX 3090,24GB显存,调用GPU进行训练。所有实验训练参数设置:输入图片大小为640 × 640,优化器采用带动量的SGD优化器,初始学习率设置为0.001、批大小为16,共训练200轮。检测结果如图6所示:
(a) 原始YOLOv5s模型 (b) CM-YOLO模型
Figure 6. Comparison of detection results between original YOLOv5s and CM-YOLO
图6. 原始YOLOv5s与CM-YOLO的检测结果比较
由测试结果可知,经过改进的网络识别准确度获得较大提高,从图(a)和图(b)两张图片中可以看出,改进后的CM-YOLO网络的Map比原始YOLOv5s网络有所提升,如在有叶子遮挡的情况下,原始YOLOv5s网络识别目标框的Map为0.52,如图6(a)所示,CM-YOLO模型的Map为0.82,如图6(b)所示。因此CM-YOLO网络目标识别框的位置更加精准。
通过实验结果比较原始YOLOv5s模型与CM-YOLO模型对于辣椒果实目标检测识别的效果,从准确率Precision,平均精度(mAP),召回率Recall对算法进行比较,比较结果如表1所示,具体地。
(1)
(2)
TP表示实际为正样本且被分类器正确预测为正样本的样本数量,FP表示实际为负样本但被分类器错误地预测为正样本的样本数量,FN表示实际为正样本但被分类器错误地预测为负样本的样本数量。Precision表示分类器正确预测为正样本的样本数量占分类器预测为正样本的所有样本数量的比例,Recall表示分类器正确预测为正样本的样本数量占所有实际为正样本的样本数量的比例。
Table 1. Comparison of test results
表1. 检测结果比较
由表1可以看出,基于CM-YOLO的辣椒检测平均精度和召回率更高,能够较好地完成辣椒检测任务。图7是原始YOLOv5模型与CM-YOLO模型特征可视化对比,由图7可以看出,CM-YOLO模型提取的辣椒线条更加明显。
(a) CM-YOLO特征可视化 (b) 原始YOLOv5s特征可视化
Figure 7. Comparison of feature visualization between the original YOLOv5 model and the CM-YOLO model
图7. 原始YOLOv5模型与CM-YOLO模型特征可视化对比
4. 结论
针对自然环境下,辣椒果实生长比较密集,原始YOLOv5算法对实现有遮挡及密集生长的辣椒果实检测性能较差的问题,进行了两个方面的改进:首先,利用YOLOv5的P2层提取更丰富的底层特征信息,并与主干网络的同尺度特征融合,得到了三个输入特征的融合结果,并且增加了一个底层特征检测头,更加敏感地检测辣椒果实目标。其次,将CBAM模块融合到原始YOLOv5的C3模块后,增强特征融合网络的性能,并提高对辣椒果实的识别能力。通过实验验证,该模型对自然场景下的辣椒果实检测性能良好,为实现辣椒果实的目标检测提供了良好的技术支持。
NOTES
*通讯作者。