李子茂,李嘉晖,尹帆,帖军,吴钱宝
(1. 中南民族大学计算机科学学院,武汉市,430074;2. 农业区块链与智能管理湖北省工程研究中心,武汉市,430074;3. 湖北省制造企业智能管理工程技术研究中心,武汉市,430074)
柑橘是世界贸易第一的水果,产量和种植面积均居水果之首[1]。中国作为柑橘的主要原产地之一,栽培历史悠久,柑橘资源丰富,由于拥有广阔的柑橘种植区域和有利于柑橘生长发育的良好自然环境条件,已成为全球柑橘栽培强国[2]。然而,迄今为止,中国柑橘生产和采集工作仍由人工主导、生产自动化水平并不高,生产过程中往往会存在劳动力不足、采集效率低等问题。
随着深度学习的兴起,智慧农业和农业自动化越来越受重视,使用深度学习进行目标检测已经成为当下的研究热点,利用计算机视觉技术实现自然环境下的密集柑橘检测,对尺寸小、数目多、颜色与环境相近、有遮挡重叠的柑橘进行精确的识别与定位成为实现柑橘早期估产的一个重要前提,同时也为采摘机器人提供有效的技术支持。
目前,基于深度学习的目标检测算法大致可以分为两种,一种是基于区域建议(Region Proposal)的:如R-CNN[3]、Fast R-CNN[4]、Faster R-CNN[5]、Mask R-CNN[6]等系列算法,主要采用区域建议网络(Region Proposal Network)产生候选区域,进行分类回归;一种是基于端到端(End-to-End)的:如YOLO系列[7-10]、SSD[11]等算法,将目标检测视为单个回归问题,通过卷积神经网络同时预测多个目标的类别和位置,其中以YOLO系列算法为代表,在小目标检测中有良好效果,得到了广泛应用。
在单类别农作物目标检测方面,诸多学者提出了不同研究思路。Liang等[12]提出一种在夜间环境检测荔枝果实、果茎的方法,在YOLO v3的基础上根据荔枝果实的边界框确定果茎的ROI区域,实现夜间自然环境中的荔枝果实、果茎检测。李文婧等[13]提出一种基于改进YOLOv4的植物叶茎交点目标检测方法,选取4个不同尺度的锚框来获取更多植物叶茎的交点信息,使得网络在算法训练过程中更易于拟合植物叶茎交点目标,实现植物根茎叶交点识别。Tian等[14]提出一种基于果园复杂环境不同生长阶段的苹果检测方法,为提升苹果特征提取能力,引入DenseNet网络替换原始YOLOv3的Darknet主干网络,使模型可更准确检测不同生长阶段的苹果。熊俊涛等[15]提出一种改进YOLOv3夜间环境柑橘识别算法,为实现算法多层特征复用及融合,引入了密集连接网络和残差网络,提高算法对柑橘图像深层特征的提取与选择能力。刘东等[16]提出一种基于颜色特征的麦穗检测方法,通过采用彩色直方图均衡麦穗特征,对麦穗进行骨架交点检测与计数。以上方法均具有一定的鲁棒性和泛化性,但在实际果园环境中,柑橘果株果实密集、尺寸小、数目多,存在一定程度果实粘连、遮挡或重叠等情况,如果仅将用于其他类别农作物或与背景区分度较高的作物检测方法用于小而密集且背景与颜色相近的绿色柑橘检测,漏检误检情况会特别严重。
因此,本文针对实际果园密集柑橘检测存在的问题,提出一种适用于密集柑橘检测的DS-YOLO(Deformable Convolution SimAM YOLO)算法。为使特征提取网络能自适应地提取柑橘的形状和位置特征,以增强模型对尺寸变化较大、严重重叠遮挡的密集柑橘的检测能力,算法引入可形变卷积(Deformable Convolution)网络来代替原YOLOv4中CSPDarkNet53网络中部分残差模块残差单元的卷积层。此外,为增强模型对于密集柑橘的特征提取能力,在提取到的柑橘特征上加入SimAM注意力机制,为提高自然环境下小而密集柑橘的检测精度,在特征融合模块中,采用 K-means 方法重新匹配Anchor坐标,增加104×104的检测尺度。
为更好进行密集柑橘的检测研究,试验样本采集于桂林市灵川县九屋镇,采集对象为自然环境下自然生长的柑橘图像。在拍摄图像时,为最大限度模拟自然场景,选择在晴天、阴天以及不同角度对柑橘植株进行拍摄,采集距离为1.0~2.0 m,不同环境下的柑橘样本图像共计2 365张,每张图像包含50个及以上柑橘,图像分辨率为4 032像素×3 024像素。
为提高DS-YOLO算法泛化能力,保证密集柑橘样本图像的多样性,对采集到的柑橘图像进行数据增强操作,包括裁剪、翻转、亮度调整等操作。通过对采集到的密集柑橘图片进行整理和分类,按照8∶2比例将柑橘图像数据集划分为训练集和测试集,使用LabelImg图像标注工具对图像中的柑橘进行标记,分别标注出柑橘的位置和类别,图片标注效果如图1所示,部分图片进行裁剪、翻转、亮度调整等操作如图2所示。柑橘图像样本不同情况分布如表1所示。
图1 图片标注
(a) 原始图片
(b) 裁剪
(c) 旋转
(d) 饱和度
(e) 对比度
(f) 亮度
表1 密集柑橘数据集分布Tab. 1 Distribution of dense citrus datasets
本文针对现阶段自然果园环境中的密集柑橘检测存在的问题,在原YOLOv4模型的基础上,构建了 DS-YOLO 密集柑橘检测算法。DS-YOLO算法总体结构如图3所示,分别由D-CSPDarkNet53、PANet、Head三个部分组成。
1) D-CSPDarkNet53即特征提取网络,主要包括CBM、DCSP、CBL及SPP结构。其中CBM结构包含1个卷积(Convolution)、1个BN(Batch Normalization)层和1个Mish激活函数层,CBL结构则与CBM结构类似,激活函数为Leaky relu,DCSP结构由CBM、DCBM(卷积替换为可形变卷积)以及一系列D-ResUnit残差单元(部分卷积替换为可形变卷积)组成,SPP(Spatial Pyramid Pooling)为空间金字塔池化,通过采用1×1、5×5、9×9、13×13四种不同大小的池化核进行最大池化,增大算法中输入特征图的感受野。DS-YOLO算法输入图片分辨率为416像素×416像素,在每个特征图输出前,引入可形变卷积(Deformable Convolution)网络代替原始YOLOv4中CSPDarkNet53中残差模块残差单元的卷积层,使特征提取网络能自适应地提取自然环境下密集柑橘的形状和位置特征。在SPP(Spatial Pyramid Pooling)[17]结构中,把所获得的柑橘新特征图和进入网络前的柑橘特征图进行堆叠、卷积再输出到路径聚合网络PANet(Path Aggregation Network)[18]中。
图3 DS-YOLO总体结构
2) 在路径聚合网络PANet中,将13×13尺寸的柑橘特征图融合SimAM注意力机制,通过对柑橘特征的重新拟合和分配,进一步增加较小尺寸柑橘的占比或权重,从而提高DS-YOLO算法对柑橘特征的提取能力。由于本文使用的数据集为密集柑橘数据集,尺寸较小,而在原YOLOv4算法中,仅使用3个检测尺度进行目标预测,针对密集柑橘容易造成漏检。因此,本文在原YOLOv4的基础上,增加了104×104尺寸的特征图,通过采用K-means聚类算法估计出最适合于本数据集的12个Anchor,分别对应4个检测尺度,拥有较小检测尺度的柑橘特征图负责检测尺度较大的柑橘目标,而拥有较大检测尺度的柑橘特征图负责检测较小尺寸的柑橘目标。整个模型在改进以后共使用4个检测尺度进行检测,通过在更深层次的网络中获取柑橘特征,增强在密集柑橘目标下DS-YOLO算法多尺度学习的能力。
3) 最后为Head层,13×13的柑橘特征图进行一系列上采样操作,分别与26×26、52×52、104×104的柑橘特征图堆叠后进行卷积和下采样操作,充分融合4种不同尺度柑橘特征图的特征,输出13×13、26×26、52×52、104×104四个YOLO检测头。每个检测头包含3组候选框参数,每组候选框参数包含1个置信度参数、1个类别参数和4个调整长宽坐标偏移量的参数。通过这些参数,DS-YOLO算法将生成最终预测框。
一般情况下,由于光照条件、相机视点不同,室外果园采集到的柑橘图像尺寸多变,柑橘与柑橘、柑橘与叶片之间存在严重重叠、遮挡,导致柑橘形状信息丢失,这为柑橘精准识别带来了极大困难。因此,本文针对柑橘重叠、遮挡问题,在D-CSPDarkNet53网络的DCSP模块中,引入更多具有偏移学习能力的可形变卷积层,使得卷积采样点可以根据柑橘图像改变感受野形状和尺寸。基于可形变卷积的DCBM模块结构如图4所示。
图4 基于可形变卷积的DCBM模块
传统卷积为规则卷积,只能进行固定大小采样,而可形变卷积(Deformable Convolution)为使感受野可以随着遮挡、重叠柑橘形状和尺寸的不同而改变,在传统卷积的基础上为卷积核中的每个采样点增加了一个二维偏移量{Δpn|n=1,…,N},N=|R|。
可形变卷积计算如式(1)所示。
(1)
式中:X——输入特征图;
R——大小为3×3的卷积核;
pn——卷积核中的第n个点;
w(pn)——pn点对应权重;
p0——输入输出特征图上的p0点;
Δpn——可形变卷积采样点的二维偏移量;
X′——输出特征图。
在DCSP模块中,为使可形变卷积能够在更大范围的特征层上控制采样,减少采样点形变所引入的叶片无关背景干扰信息,保证柑橘特征的准确提取,在原有可形变卷积的基础上为卷积核中的每个采样点添加一个权重系数,Δwn∈[0,1],计算如式(2)所示。
(2)
由于采样点发生了形变,所以提取到的偏移量Δpn通常是小数,不能直接得到像素值的坐标,因此需要通过双线性插值方法来计算卷积后的输入特征图X。
(3)
式中:p——可形变卷积偏移后的位置,p=p0+pn+Δpn;
q——特征图中所有的点的位置;
G(.,.)——二维双线性插值核函数,即采样点对应权重。
在原始YOLOv4的路径聚合网络PANet中,添加SimAM注意力机制。SimAM注意力机制结合通道维度和空间维度,定义了统一通道维度和空间维度的三维注意力权重,使得DS-YOLO算法更加关注密集柑橘的深层特征空间信息。
(4)
式中:λ——正则项;
C——通道数;
M——每个通道神经元个数,M=H×W;
i——神经元索引;
(5)
其中,Sigmoid激活函数是为了限制E值过大。SimAM整体结构图如图5所示,输入特征图在经过SimAM注意力机制后,通过Sigmoid函数进行了权值归一化,将所求的神经元权值和原始特征图的特征相乘,从而获得最终输出特征图。
图5 SimAM注意力机制
本文试验环境采用64位Linux操作系统,硬件配置为Intel(R)Xeon(R)CPU E5-2630 v4(2.20 GHZ 10核)处理器、NVIDIA Tesla p40显卡,内存为16 GB,使用Python3.6、Pytorch1.2.0、CUDA11.2实现模型的搭建及训练工作,所有试验的训练和测试图片分辨率设置为416像素×416像素,训练过程为100个epoch,Batchsize设为8,学习率初始值设置为0.001。
本文针对单种类的目标检测,使用平均准确率mAP(Mean Average Precision)、精确率(Precision)、召回率(Recall)、F1分数作为评价指标衡量算法性能,其中mAP为主要评价指标。
(6)
(7)
(8)
(9)
式中:TP——DS-YOLO算法成功识别出来的柑橘目标中被正确识别的数量;
TN——DS-YOLO算法未识别出来的柑橘目标中被正确识别的数量;
FP——DS-YOLO算法未识别出来的柑橘目标中被错误识别的数量;
FN——DS-YOLO算法成功识别出来的柑橘目标中被错误识别的数量。
为验证本文所提出的DS-YOLO算法的优越性,将该算法与目前在目标检测中常用的多种深度学习网络进行对比,包括Faster RCNN、SSD、YOLOX等。试验利用本文自制的密集柑橘数据集进行训练,训练超参相同,不同网络模型密集柑橘检测效果如表2所示。
表2 不同网络模型密集柑橘检测效果对比Tab. 2 Comparison of dense citrus detection results with different network models
由表2可知,在密集柑橘数据集上,本文所提出的DS-YOLO模型的平均准确率为86.86%、精确率为92.90%、召回率为76.07%、F1分数为0.84,相比于Faster RCNN、YOLOv4、YOLOX网络模型,mAP值分别提升23.97%、8.75%、4.1%,均优于其他检测算法。但由于本文所提出的DS-YOLO模型引入了可形变卷积模块及增加了新的检测尺度,检测速度相较于其他模型有所下降。模型训练完成后,使用未进行数据预处理的密集柑橘测试集进行效果验证,由于柑橘较小,为有效观察模型检测结果,本文截取了各类算法检测结果图像的一部分,DS-YOLO算法实际检测效果如图6所示,结果显示,在相同训练超参下,本文提出的DS-YOLO算法能更准确对密集场景下的柑橘进行检测定位,而原YOLOv4算法则存在一定程度的漏检误检,验证了DS-YOLO算法可提高自然环境下密集柑橘的检测精度。
更进一步的,为验证本文提出的DS-YOLO密集柑橘算法中各改进模块对自然环境下密集柑橘的检测效果影响,将改进后的DS-YOLO算法与改进前的YOLOv4算法进行试验对比,模型训练过程对比曲线如图7所示,具体试验内容及检测结果如表3所示。其中,“√”表示使用了对应方法,Deformable conv表示算法引入可形变卷积网络,SimAM表示算法引入SimAM注意力,FPN+表示算法进行多尺度结构改进。
从表3可以看出,相较于原YOLOv4算法,引入可形变卷积后算法平均准确率提高了7.04个百分点。为更好分析DS-YOLO算法特征提取网络的特征提取效果,如图8所示。对DS-YOLO算法改进前的CSPDarkNet53特征提取网络和改进后D-CSPDarkNet53特征提取网络所获取的特征图进行可视化,发现引入可形变卷积后的D-CSPDarkNet53网络所提取的柑橘图像特征更为抽象,并更为关注高级语义特征,进而证明了可形变卷积在密集柑橘检测中的有效性,说明引入可形变卷积,可以提高DS-YOLO算法对密集柑橘的特征获取能力。
(a) 原始图片
(b) SSD
(d) YOLOv4
(e) DS-YOLO
图7 训练过程模型准确率对比曲线
在此基础上,算法采用改进后的多尺度检测结构并融合SimAM注意力机制,算法整体平均准确率在可形变卷积基础上提升了1.71个百分点。为验证改进后多尺度结构与SimAM注意力对DS-YOLO算法具有积极影响,对改进后四个检测尺度所提取的特征信息进行可视化,由于本文试验采用的柑橘图像,柑橘较小,因而对原始图像进行了裁剪操作。可视化结果如图9所示。
表3 基于YOLOv4网络模型改进后效果对比Tab. 3 Comparison of the improved effects based on YOLOv4 network model
(a) 原始图片
(b) CSPDarkNet53特征图
(c) D-CSPDarkNet53特征图
(a) 原始图片
(b) 26×26尺寸热力图
(c) 52×52尺寸热力图
(d) 104×104尺寸热力图
根据图9(b)中26×26检测尺度的可视化结果,可以明显发现,原YOLOv4的13×13、26×26尺寸的检测头更适用于检测大尺寸柑橘及中等尺寸柑橘,小尺寸柑橘检测效果较差。本文所使用的色度图模式为COLORMAP_JET,颜色越蓝表示灰度值越低,颜色越红表示灰度值越高,算法越关注,图9(c)和图9(d)中52×52、104×104检测尺度则更关注小尺寸柑橘及极小尺寸柑橘。试验表明,DS-YOLO算法对密集柑橘检测精度的提升具有积极影响。
本文针对自然环境下果园柑橘密集、目标小、数目多、易遮挡重叠等特点,提出一种DS-YOLO密集柑橘检测算法实现自然环境下的密集柑橘检测,并通过试验验证提出算法的有效性。
1) 为使特征提取网络能自适应地提取自然环境下密集柑橘的形状和位置特征,在原始YOLOv4算法的CSPDarkNet53模块中引入可形变卷积(Deformable Convolution)网络,用于代替部分残差模块残差单元的卷积层,提高算法对密集、遮挡柑橘的特征提取能力。
2) 在路径聚合网络中,添加SimAM注意力机制,并在原YOLOv4的基础上,增加104×104尺寸的特征图,通过K-means聚类算法估计出最适用于密集柑橘数据集的Anchor,并且通过对柑橘特征的重新拟合和分配,进一步增加较小尺寸柑橘的占比或权重,从而提高模型对柑橘特征的提取能力。
3) 改进后的DS-YOLO算法平均准确率为86.86%、精确率为92.9%、召回率为76.07%、F1分数为0.84,相较于原YOLOv4算法平均准确率提高了8.75%,具有一定的鲁棒性和泛化性,相比于Faster RCNN、YOLOX等网络模型,本文所提出的DS-YOLO算法平均准确率分别提升了23.97%、4.1%,为柑橘早期估产及采摘机器人运作提供了新的研究思路。
改进后的DS-YOLO算法,能够提升自然环境下遮挡、重叠柑橘的检测精度,但在精度提升的同时,模型检测速度也有所下降,因此,在未来工作中,仍需考虑如何对DS-YOLO算法进行进一步优化,使用更轻量网络的同时保证检测精度,提高其泛化能力,为自然环境下密集水果识别提供新的检测方法。