蒋 毅,耿宇鹏,张俊华,王嘉庆,宋颖超
1(云南大学 信息学院,昆明 650500)
2(云南大学 生态学与环境学院,昆明 650091)
紫茎泽兰作为一种世界性恶性杂草,在20世纪40年代从中缅边境传入中国[1],大约以每年10-30 公里的速度向北和东扩散.紫茎泽兰的入侵性和生态适应性极其强大,能通过化感物质的释放抑制周围其它植物的生长,快速发展成为单优群落[2].排斥群落里其它植物生长与演替,破坏生物多样性,影响林业景观,危害畜牧业发展,造成巨大的经济损失[3].紫茎泽兰入侵牧地3年便能够使牧草丧失放牧能力,家畜误食容易导致其中毒死亡[4].紫茎泽兰在我国的入侵形式十分严峻,需采取有效的防治措施来减缓甚至消除紫茎泽兰的入侵.现在常用的防治方法有人工防除、化学防除和生物防除,紫茎泽兰检测作为这些防治方法的重要阶段,而紫茎泽兰检测作为防治效果反馈的重要阶段,紫茎泽兰检测的有效性显得至关重要.
复杂背景下的紫茎泽兰检测属于目标检测问题,传统目标检测方法的滑动窗口区域选择策略没有针对性,时间复杂度高,鲁棒性差,精度低.基于深度学习的目标检测方法能够自动提取特征从而有效解决特征提取模板针对性不强的问题[5],已经获得越来越多学者的青睐.第一个基于深度学习的目标检测算法R-CNN[6]被Girshick 等提出,在VOC07 数据集上平均精度的均值(mean Average Precision,mAP)由原来的34.3%提升到66%.Girshick 和Ren 等分别提出了Fast R-CNN[7]和Faster R-CNN[8]算法,mAP 值提高大约6%,检测系统的运行速度高达5 fps,相较于R-CNN 提高了10 倍之多.随后,Liu 等提出了SSD[9]检测算法,Redmon 等提出了YOLO 的一系列算法:YOLOv1[10]、YOLOv2[11]、YOLOv3[12].其中,YOLOv3 检测效果更好,在COCO数据集上mAP 为57.9%,时间为51 ms,相较于其它目标检测算法,在保证精度的同时具有更快的速度.
YOLOv3 的高效性,得到越来越多学者的喜爱,并将其应用到各个领域.如李睿等[13]将其用于手腕骨骨龄评价;李斌等[14]将其用于无人机检测;林俊等[15]将其用于安全帽检测等,由此可见YOLOv3 算法的受关注程度.
迁移学习是一种运用已有知识对不同但相似的领域问题进行求解的机器学习方法[16],与传统的机器学习方法相比,迁移学习能解决训练样本不足问题、满足数据集测试集服从不同分布情况、将训练得到的模型在不同的任务之间进行迁移和共享[17].迁移学习与深度学习的结合,保证了深度学习模型精度,同时还发挥了迁移学习快速分类的优势,且降低了训练样本和硬件设备的要求.近年来深度迁移学习方法已经应用到自然语言和图像处理等方面,并取得了不错的成果.
本文采用基于YOLOv3 的迁移学习方法将深度学习模型YOLOv3 迁移到紫茎泽兰数据上,对迁移的YOLOv3 模型微调,并更新损失函数中各类损失的权重.实验结果表明,在紫茎泽兰检测任务中,测试的平均精度(Average precision,AP)相较于YOLOv3 提高了17%,能够满足复杂条件下的紫茎泽兰检测任务.
YOLOv3 使用的网络结构为Darknet53,一共有53 个卷积层.YOLOv3 的网络结构如图1所示.
图1 YOLOv3 网络结构图
Darknet53 网络中包含大量3×3 和1×1 的卷积层,这些卷积层通过取代原来的池化层的方式来避免特征信息的丢失.除此外,YOLOv3 根据残差学习的思想,在网络中加入了大量的残差块,避免网络层数加深带来的在训练过程中产生的梯度爆炸现象.YOLOv3 网络最后一层采用多个独立的逻辑斯谛回归分类器进行分类,实现多目标分类问题.
在卷积神经网络中,浅层的特征具有丰富的细节和定位信息,如纹理、颜色、形状等,深层的特征具有丰富的语义信息.对于位置预测需要浅层特征信息,而类别预测需要深层特征信息,YOLOv3 采用多个尺度特征融合的思想来进行预测,对特征图进行降采样和上采样操作,实现多尺度特征图的位置和类别预测,提高目标检测准确率.多尺度特征预测过程为:输入一张图片,经过一系列卷积操作,卷积网络在79 层后,经过卷积操作得到一种尺度的预测结果,用于检测相对输入图像32 倍下采样的特征图.为了实现细粒度的预测,第79 层的特征图通过卷积作上采样,然后与61 层特征图融合,得到第91 层较细粒度的特征图,同样经过几次卷积操作后得到相对输入图像16 倍下采样的特征图.最后,第91 层特征图通过卷积作上采样,并与第36 层特征图融合,得到相对输入图像8 倍下采样的特征图.这3 种融合得到的特征图进行卷积操作后用于位置和类别的预测.
YOLOv3 算法通过K 均值聚类方法对数据集中的目标框进行聚类,得到9 种不同大小的锚点框,然后将他们均分到3 种尺度的特征图上,用于不同尺度的特征图的提取.
YOLOv3 的网络结构、聚类方法以及多尺度特征预测使其在检测准确度和检测速度上取得较好的效果,且相较于其他的目标检测方法效果更佳,在COCO 数据集下与其他网络的性能对比如表1所示.
表1 YOLOv3 与其他网络性能对比
迁移学习方法能够实现相似或相关领域间的复用和迁移,使传统的零基础学习变成有积累学习,能够降低模型训练开销,提高深度学习效果.本文提出的基于YOLOv3 的迁移学习方法属于基于网络的深度迁移学习方法,将深度学习模型YOLOv3 迁移到紫茎泽兰数据集上,对迁移学习训练模型微调,采用K 均值聚类算法进行维度聚类,确定目标框参数.通过维度聚类获得的9 组先验框维度分别为(100,108),(144,141),(162,209),(212,164),(242,237),(260,335),(338,271),(373,378),(399,413).将这9 组先验框维度分别均分到3 种尺度的特征图上,分配上,13×13 特征图上有最大的感受野,应用较大的先验框,中等特征图应用中等先验框,较大的52×52 特征图上应用较小的先验框,此分配能够获取更多的目标边缘信息.
损失函数是模型预测值与真实值之间的误差,是决定网络效果的重要参数之一.YOLOv3 的损失函数包括边界框损失、置信度损失和分类损失,损失值越小说明模型的鲁棒性越好,损失函数如式(1)~式(3).
(1)目标框损失
(2)置信度损失
(3)分类损失
式中,s为图像的划分系数,n为每个网络中所预测的边界框个数,C为总分类数,p为类别概率,c=0,1,···,C为类别序号,xi、yi分别为第i个格中的边界框中心点横、纵坐标,wi、hi分别为第i个格中的边界框的宽度和高度.
YOLOv3 损失函数中的3 类损失每一类损失对网络的影响均不同,为寻求最优的损失函数来增强YOLOv3 迁移学习方法在紫茎泽兰数据集上的适应性,在训练过程中需要不断改变损失函数中各类损失的权重,并通过测试的AP 值来验证边界框损失、置信度损失和分类损失对紫茎泽兰数据集的影响,从而找到最佳的损失函数.
实验数据采集地在云南,图片因拍摄角度、时间、地点不同而具有不同的角度、不同的曝光率和背景,属于一类复杂背景的图像数据集,这样的数据集用来训练模型更具有代表性,鲁棒性更强.为避免错误、重复和模糊图片,对数据集进行筛选,根据VOC 和COCO 数据集的图像标注方法使用Lableimg 工具对图像进行人工标注,产生训练所需要的XML 文件.本实验训练集有11 931 张,按照9:1 的比例分成训练集和验证集;测试集有670 张,为了验证方法的有效性,测试集里边除了复杂背景的紫茎泽兰图片外,还有一些其它的植物图片.部分训练集和测试集图片如图2、图3.
图2 部分训练集样本
图3 部分测试集样本
图2中4 幅子图均为紫茎泽兰图像,图3(b)、图3(c)为紫茎泽兰图像,图3(a)和图3(d)为其它种类的植物叶片图像.
紫茎泽兰的检测精度越高,误检和漏检的可能性越小,且检测精度能够直观地看出网络检测结果的有效性,紫茎泽兰属于单目标检测,AP 作为单类目标检测算法的标准评价指标,能够验证改进的YOLOv3 模型的有效性和可靠性.AP 的定义为:以紫茎泽兰的召回率为横坐标,准确率为纵坐标,绘制出一条P-R 曲线,曲线下的面积即为AP.准确率和召回率的定义如下:
准确率:
召回率:
在式(4)和式(5)中,TP代表识别出紫茎泽兰的数量,FP代表将其它植物识别成紫茎泽兰的数量,FN则代表没有识别出紫茎泽兰的数量.
损失函数作为网络模型的重要组成部分,对网络的性能具有巨大的影响,本文为了增强基于YOLOv3的迁移模型的适应性,对YOLOv3 网络的损失函数做出调整,主要对损失函数的各类损失权重进行更新,更新各类损失权重得到的测试精度如图4所示.
图4 更新权重后的测试精度
图4中,图中横坐标中的5 个值分别代表分类损失的权重,纵坐标表示AP.横坐标数字1 所在的第一个纵列表示固定置信度损失权重和分类损失权重,不断增大坐标框损失权重,从中可以看出,增大坐标框损失权重对测试精度的影响较小,最高增长量不到5%;从整体上看,当逐渐增大置信度损失权重和分类损失权重时,测试精度呈现出上升趋势,当置信度损失权重和分类损失权重均为均为4 时测试精度达到了最大值67.22%,当两者权重继续增大时测试精度开始呈现出下降趋势.通过对比分析可得坐标框损失、置信度损失、分类损失的权重分别为1、4、4 倍.
以误检率(FP)和识别出的紫茎泽兰个数(TP)作为评价指标,实验结果如表2所示.
紫茎泽兰测试集图片标注目标一共有2033 个,由表2可以看出,本文所提出的基于YOLOv3 的迁移学习方法相较于Faster R-CNN,无论是误检个数还是正确识别个数都要比Faster R-CNN 算法好得多,更新损失权重后的误检个数虽然略有提高,但是正确识别出的个数大大增加,说明了基于YOLOv3 的迁移学习算法以及权重更新在紫茎泽兰数据集检测上的有效性.
表2 TP、FP对比
以AP 和检测一张图片的时间作为检测效果评价指标,结果如表3所示.
表3 检测精度对比
从实验结果可以看出,YOLOv3 目标检测算法的鲁棒性更好,使用范围更广.改进的YOLOv3 算法的AP 值最高,且检测速度比Faster R-CNN 算法快约90 倍.张帅等[18]使用分层卷积深度学习系统对植物叶片进行识别,其单一背景下的图片识别率高达91.11%,但复杂背景下的图片识别率为34.38%.由此可见,在紫茎泽兰这一类复杂背景下的数据集下,基于YOLOv3的迁移模型能够同时兼顾检测准确率和检测速度,能够较好的完成紫茎泽兰的检测任务.
紫茎泽兰入侵已严重影响我国生态环境的多样性以及农林业畜牧业的发展,现已采取了很多防治措施,紫茎泽兰检测作为防治措施的关键步骤,实现紫茎泽兰的有效检测至关重要.而本文提出的基于YOLOv3模型的迁移学习方法的紫茎泽兰检测,是目标检测算法的一种拓展应用,在复杂背景下AP 值相比原YOLOv3模型提高了17%,已基本能够满足紫茎泽兰检测任务.