改进的轻量级YOLO在苹果物候期自动观测中的研究
2021-12-23王志伟胡桃花李雪鹏杨晓峰李海芳
许 增,王志伟,胡桃花,李雪鹏,杨晓峰,李海芳+
(1.太原理工大学 信息与计算机学院,山西 太原 030600;2.山西省气象局 山西省气候中心, 山西 太原 030006;3.山西省朔州市气象局 气象服务中心,山西 朔州 036000)
0 引 言
我国的苹果产量位居世界首位,出口量达90%,具有重要的产业地位。幼果期、果实膨大期、果实成熟期是苹果整个物候期当中的关键时期,苹果的产量和品质与此期间的物候观测和科学管理息息相关。
而物候期的自动观测,可以客观地判别作物所处物候期阶段,及时有效地开展农事活动和精准管理,提高农事管理效率,减少人为主观引起的观测资料的绝对性,以取得少投入、多产出、保护农业资源的突破,具有重要的应用价值。
随着机器学习的发展,计算机视觉技术以及深度学习技术在农业中得到了广泛的应用[1]。苹果物候期自动化观测也开始步入新的阶段。李宏利等[2]以3点确定圆算法为中心,配合图像中树枝树叶部分的分割、果实边缘的检测及去除图像的噪声等技术,以使处理速度满足实时要求,并使成熟期苹果定位结果准确。夏雪等[3,4]设计了基于自适应G-B色差图,并结合迭代阈值分割法(ITS)探测出幼果期苹果图像兴趣区。并且提出了一种融合K-means算法、关键角点检测算法和距离最小二乘算法实现了成熟苹果双果重叠目标侦测方法;赵德安等[5]提出了基于深度神经网络YOLOv3算法,实现了未成熟期、套袋期、成熟期的机器人采摘苹果定位。Tian等[6]提出了一种改进的YOLO-V3模型,利用密集连接的方法处理低分辨率的特征层,实现了幼果期、膨大期、成熟期的苹果检测估产及生长阶段判别双任务。但上述研究中,多数主要集中在不同时期的苹果采摘定位、检测估产等,在速度、精度之间的权衡更偏向于精度,而针对物候期识别轻任务,本文选用了可用于嵌入式实时监测设备的轻量级模型Tiny-YOLOv3作为本文的主干网络,虽然Tiny-YOLOv3模型检测速度快,但其检测识别精度较低。因此,本文引入ResNet和DenseNet方法对Tiny-YOLOv3的主干网络进行适度深化并对低分辨率层进行特征复用和融合,利用所设计的物候期测试集,验证了改进模型的性能。
1 数据集
1.1 图像采集与增强
本文的数据来源于中国山西临猗农田试验站,参考农业气象观测规范,制定适宜本地的苹果物候期观测标准,于2019年3月(萌芽期)开始,采集至2019年11月(叶脱落期)结束,表1为部分物候期观测标准。使用了3888×5184像素分辨率的田间实时监测设备在不同物候期进行图像采集。采集时间段设定为每天上午8点~11点,下午12点~15点,下午16点~19点。
表1 苹果部分物候期观测标准
其中在幼果期、果实膨大期、果实成熟期3个物候期,分别采集到4200张物候期图像。在每个物候期,随机选取一半的物候期图像用于训练集。
由于户外光照的角度和强度变化很大,神经网络能否处理不同复杂环境下采集的图像取决于训练数据集的完整性。为增强训练数据集的丰富性,对采集到的图像进行角度、色彩、曝光度、图像清晰度处理,如图1所示。将6300张图像增强为50 400张图像,生成训练数据集。剩下的6300张图像作为测试数据集,验证改进的Minor-YOLOv3-dense模型的检测性能。
图1 图像增强方法
1.2 图像标注与建立数据集
本文使用的Minor-YOLOv3-dense模型通过读取txt文本获得训练图像的存储位置、目标在图像中的标注像素位置和目标的类别。这个txt文件通过读取一个使用VOC格式的数据集生成。因此,通过LabelImage软件将场景中采集到的图片以VOC的形式制成数据集。LabelImage是一个图像标注工具,它将图像中标注的目标类信息和位置信息保存为xml格式的文件,以便进行训练。图2显示了标注图像的过程。完成的数据集见表2。
图2 LabelImage标记工具
表2 数据增强后训练集
2 方 法
2.1 Tiny-YOLOv3
自2016年以来,陆续发布了YOLOv1[7]、YOLOv2[8]、YOLOv3[9]等不同版本,逐步提高了通用框架的准确性。YOLOv3不仅具有较高的检测识别精度和速度,而且对小目标的检测识别性能也很好。但是对于嵌入式实时监测设备,YOLOv3模型的体系结构过于复杂,需要更多的处理能力,且占用大量内存,对硬件设备要求较高。与此同时,YOLOv3模型更新了轻量级版本Tiny-YOLOv3,如图3所示,将特征金字塔网络[10],与全卷积网络结合起来。但在 应对物候期观测的复杂环境时,Tiny-YOLOv3网络仅由7个卷积层和6个池化层交替组成前馈网络,有些过于简单,导致物候期观测性能不佳。
2.2 网络结构改进
针对多样的物候期特征,适度深化网络可以更好地提取物候期特征,但网络的参数也会不断增长,这将大大增加计算量,占用内存资源。在计算量过大的情况下,ResNet[11]提出增加1×1个卷积层来实现信息的跨通道整合和交互,减少网络参数,同时,在特征尺寸不变的前提下,大幅提升非线性特性,加强了网络的表达能力。
为了提高实时检测识别的平均精度,本文借鉴了ResNet中的方法,以保持实时性并提升平均精度为出发点,提出一种参数数量较少、运算复杂度相对较低的卷积神经网络作为特征提取网络,称之为Minor-YOLOv3。如图4所示,在原Tiny-YOLOv3的Conv-4和Conv-6增加了2个卷积层,并在过渡模块中使用1×1的卷积核进一步降低维数。
2.3 Dense
Huang等[12]受到残差网络的启发,重新设计稠密块,建立了每层与全部后置层间的连接,进而每层输入都拥有了全部前置层的特征图,实现了特征的复用,缓解了梯度消失。l层拼接全部前置层x0,x1,…,xl-1特征的公式如下
xl=Hl[x0,x1,…,xl-1]
(1)
基于前文所提出的Minor-YOLOv3网络,将其低分辨率传输层替换为DenseNet,以此巩固特征的传输,促使特征反复利用和融会,如图5所示。其中,传输函数Hl包括批量归一化、线性整流函数以及卷积。Hl提供了全部前置层的非线性变换。xi由64个特征层构成,每层的分辨率为13×13。H1首先对x0实行BN-ReLU-Conv(1×1)非线性计算,然后对其输出实行BN-ReLU-Conv(3×3)计算。H2对[x0,x1]产生的特征映射实行同样的操作。拼接结果x2与[x0,x1]为[x0,x1,x2],当作H3的输入。拼接结果x3与[x0,x1,x2]为[x0,x1,x2,x3],再当作H4的输入。最后,特征层[x0,x1,x2,x3,x4]连续往前传输。
图3 Tiny-YOLOv3网络结构
图4 Tiny-YOLOv3和Minor-YOLOv3的网络参数
图5 Minor-YOLOv3-dense网络结构
在训练过程中,当图像的特征被传输到低分辨率层时,DenseNet中的后一层特征将接收到它所有前置层中的特征,从而减少了特征损失。这样,低分辨率的卷积层之间可以重复利用和融合特征,进而提高特征使用率以及使用效果。
最后,本文提出的Minor-YOLOv3-dense模型可以预测26×26、13×13两个不同尺度的边界框。它可以精准定位目标,并对检测到的目标进行分类,以提供苹果物候期的实时观测。
3 实验与结果分析
本研究中使用的Minor-YOLOv3-dense网络基于PyTorch框架。并在NVIDIA GeForce RTX 2080Ti服务器上进行了训练和测试。编程语言为Python,GPU加速库为CUDA9.0和CUDNN7.0。网络初始化参数见表3。
表3 网络初始化参数
本文针对改进后的Tiny-YOLOv3模型,利用测试图像(6300张)进行了一系列实验,验证了算法的性能。
3.1 评价指标
3.1.1 mAP
mAP(mean average precision)是多个类别的平均AP值,在目标检测中作为衡量检测识别精度的指标。AP(average precision)是平均精度。该值是由精准率P和召回率R计算得出。精确率、召回率以及mAP的计算如下所示
(2)
(3)
(4)
3.1.2 Loss
损失函数是评价模型性能的一个标准。Tiny-YOLO中的损失函数定义如下
Loss=lbox+lobj+lcls
(5)
目标框位置误差lbox定义如下
(6)
目标置信度误差lobj定义如下
(7)
目标分类误差lcls定义如下
(8)
3.1.3 速度
速度也是目标检测算法一个重要评价指标,这对于田间实时监测设备是非常重要的。本文使用了两个速度指标,第一个是每秒帧数(FPS);第二个是识别一张图像所需时长,单位为ms。
3.2 改进后模型的检测识别效果
为了验证本文提出的模型的改进性能,3个物候期图像作为训练集,两次改进后的模型同Tiny-YOLOv3进行比较,以此来说明本文网络改进的提升效果,如表4所示。Tiny-YOLOv3、Minor-YOLOv3-dense在训练过程中的损失及mAP,如图6所示。
表4 两次模型改进效果
图6 Minor-YOLOv3-dense与原模型的 Loss、mAP曲线对比
从以上结果可以看出,Minor-YOLOv3-dense在训练过程中比Tiny-YOLOv3收敛速度更快,收敛效果更好,Tiny-YOLOv3的最终损失约为2.52,而Minor-YOLOv3-dense的最终损失约为1.54,比原模型的损失约低0.98,且更加稳定平滑。Minor-YOLOv3和Minor-YOLOv3-dense的mAP值分别为78.03和80.26,比原模型高出3.33和5.56。这说明Minor-YOLOv3-dense模型的检测识别性能优于Tiny-YOLOv3模型。但同时随着改进效果的提升,检测速度均有所下降。
为了更好地观测边界框,分别使用1、2和3标注幼果期、膨大期和成熟期。图7为3个物候期检测识别效果对比。图7(a)为Tiny-YOLOv3模型在3个物候期的检测识别效果,卷曲的叶面易被误判为幼果期、膨大期,发红的枝干、土壤易被误判为成熟期,幼果期与膨大期间易混淆识别,可见其容易产生了较大的误检误判。改进后的Minor-YOLOv3-dense模型检测识别效果如图7(b)所示,其可以精准定位并识别物候期类别。
图7 改进前后检测识别效果对比
此外,在本文的数据集上测试了其它几种较为先进的模型,其mAP值、FPS、平均检测时间,如表5所示。
表5 与其它模型的对比分析结果
从以上结果可以看出,Minor-YOLOv3-dense模型的平均精度均值均明显高于前两种轻量级模型,与YOLOv3-dense模型基本相同。Minor-YOLOv3-dense的平均检测速度比YOLOv3-dense快了近11倍,但与Tiny-YOLOv2、Tiny-YOLOv3模型相比较,略有所下降,但仍符合实际工作环境下的实时性要求。综上,在物候期观测单任务中,Minor-YOLOv3-dense模型的检测识别精度较高,且符合实时性要求,体现了Minor-YOLOv3-dense网络在苹果关键物候期观测中的优越性。
3.3 数据类别的影响
为了比较数据类别对检测识别性能提升的影响,本文分别使用Tiny-YOLOv3、Minor-YOLOv3-dense模型训练各个物候期图像。不同模型下3个物候期的AP值见表6。
表6 不同物候期的改进效果
从以上结果可以看出,3个物候期的检测识别分别提升了3.39、5.77以及7.52,由于幼果期果实体积较小,颜色与树叶相近,所以幼果期的检测识别效果提升不如膨大期和成熟期,而成熟期颜色变化较大,更容易被检测识别,说明该模型性能提升受到形态大小,以及颜色特征的影响。
3.4 数据增强方法的影响
使用角度、色彩、曝光和清晰度处理来增强图像。为了验证4种处理方法对训练模型的影响,依次去掉一种增强后的数据集,得到对应mAP。结果见表7。曝光、模糊问题图像检测识别效果如图8所示。
表7 不同训练集的检测识别效果
图8 曝光、模糊问题图像检测识别效果
从实验结果可以看出,角度处理对训练模型的影响有限,去除角度处理数据集后的训练模型的性能略低于完整数据集。色彩处理对提高检测识别有很大的帮助,去掉色彩处理数据集会降低平均精度均值。曝光处理有利于模型适应户外光照变化,去除曝光处理数据集后的训练模型的检测识别效果比完整数据集训练的模型检测识别效果差。模糊处理有利于提高模型的鲁棒性,与未经模糊处理的数据集相比,经过完整数据集训练的模型具有更高的平均精度均值。
4 结束语
本研究将ResNet以及DenseNet方法应用于苹果物候期的实时观测,对现有的Tiny-YOLOv3检测模型进行了改进。这个模型可以用来实时检测识别幼果期、膨大期和成熟期。本文提出的Minor-YOLOv3-dense模型借鉴ResNet方法对Tiny-YOLOv3主干网络适度深化,并使用DenseNet方法增强特征传播,促进特征的复用和融合,减少了特征损失,提高了网络的性能。实验结果表明,与其它几种较为先进的算法相比,本文提出的Minor-YOLOv3-dense模型具有较好的检测识别精度和实时性,并且能较好处理曝光、模糊问题图像。
以上工作验证了Minor-YOLOv3-dense用于苹果物候期实时精准识别的可行性和高效性,未来工作将集中于完善各种复杂环境下的数据采集工作,提升现有模型,并进一步实现各个物候期始期、盛期、末期的实时精准识别。