基于YOLOT网络的小目标检测
作者: 王恒,李鹏飞
摘要:当前以大数据、深度学习、算力为基础的目标检测在智能农业、人脸识别、安防监控、行人检测、车辆检测等领域有着广泛的应用。特别是农业中的蔬果发育及采摘、病虫杂草识别、产量预测等应用都将有力地支撑着智能农业蓬勃的发展。但是农业中小型瓜果蔬菜等小目标在采集的图像中所占像素太少、覆盖区域不足、携带信息少等问题导致识别率不高,出现漏检、误检等错误。文章提出一个基于YOLOv5改进的卷积神经网络YOLOT。第一:YOLOT改进了YOLOv5网络并添加了注意力机制在Backbone中,提高了其对小目标特征提取的有效度。第二:针对小目标浅层信息与深层信息相差较大,改进了特征金字塔,使其准确率有了明显提高。第三:针对小目标占比像素过少,优化了锚框。综合上述改进以及实验对比,笔者提出的YOLOT网络对农业中小型目标的检测率明显优于YOLOv5检测算法。
关键词:农业;YOLOv5;小目标;注意力机制;特征金字塔
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2021)32-0022-04
1引言
随着我国制造强国战略的提出,在“创新驱动、质量为先、绿色发展、结构优化、人才为本”的基本方针指导下,农业生产迎来了一场高新技术变革,精细化农业已成为现代农业发展的主流[1]。传统农作物生长环境的检测[2-4]、农作物识别与采摘、产量预测[5]等基本依靠人力进行,而人力自身的限制性比如自身经验的丰富度、专业知识的应用等,导致了成本过于高昂且时效性低、误差大。然而随着计算机领域中人工智能不断发展,越来越多的深度学习技术应用在农业领域[6],人力的影响因素大幅度下降,逐渐形成了现在的智能农业。
基于深度学习[7]的目标检测[8-9]是人工智能领域的核心问题之一,通过遥感、无人机、摄像头、红外线等设备生成的数据,采用深度学习中的卷积神经网络(CNN)从大量的图片、视频媒体数据中自动的、有规律的、有目标的学习高级语义特征,从而在复杂环境中锁定指定目标。它是结合了目标定位、目标识别两项任务的计算机视觉任务。这一技术可以及时辨别杂草、有害生物、实时监测作物的生长状况、作物的产量等,强有力地支撑了智能农业迅速的发展。
传统目标检测步骤主要由数据信息预处理(旋转、剪裁、拼接、去色等)、预设大小的锚框滑动、语义信息特征提取、目标特征选择、目标特征分类、最后处理六部分组成,但是由于其没有针对性、算法复杂度高、鲁棒性差以及当时硬件算力等原因,使得检测效果达不到实际需求,使得其发展受到限制。即使Hinton在2006年提出了深度学习[10],但直到2012年卷积神经网络Alex-Net[11]才在图像分类检测上取得了史无前例的重大的突破。
2 目标检测
2006年发展至今,基于深度学习的目标检测算法实现效果已远远超出传统目标检测算法。现在的深度学习目标检测算法大致可以分为两大类,一类为基于分类的二阶段检测算法,另一类是基于回归的一阶段检测算法。
二阶段目标检测算法是基于分类的一个思想。二阶段算法直接用卷积神经网络(CNN)对每个不同大小的滑动窗口产生的候选区进行物体存在判断,判断目标是否存在此滑动窗口。二阶段目标检测算法研究的重点是如何增加网络对目标特征的提取能力以及分类能力。二阶段算法代表有R-CNN[12-15]、Faster R-CNN[16-19]等。但是因为目标的大小以及位置不明确,所以这一类算法需要使用多尺度窗口遍历整个图片,从而会生成大量冗余的候选框。虽然后期对此类二阶段算法进行了多种如多尺度输入、多尺度检测、FPN(特征金字塔)[20]等优化,然而模型的训练速度、检测速度依然很慢,不容易部署应用在实际工程中。
在不断的探索与积累中,一阶段算法应运而生,这一类算法直接将卷积神经网络作为回归器,把输入的一整张数据图像作为待检测的候选区,输入卷积神经网络,并且将目标在待检测图像中的相对位置信息进行输出。一阶段代表算法有YOLO系列[21-24]、SSD[25]等。这类算法训练参数的设置大多数依靠经验和实践,缺乏理论支撑。
不论一阶段还是二阶段算法,对于小目标[26]的识别率都很低。总结主要有以下几个原因:
1)卷积神经网络的步长可能大于目标,导致小目标的特征提取不足或者完全没有提取,无法将小目标传递至下一层网络。
2)网络先验框设置不足。网络中通常会设置几组先验框,一组先验框又包含了几种尺寸的先验框,这就会只有一小部分先验框与真实的小目标重叠,进而导致正负样本极大不平衡。
3)在进行数据预处理时,会对图像大小进行调整,这会进一步降低小目标覆盖区域、降低其携带的语义信息。
4)交并比阈值设置不合理。小目标候选边界框(Bounding Box)与正确框(Ground Truth)之间的交并比较小,IOU的设置直接影响正负样本的选取。
本文依据农业中小型瓜果蔬菜目标的特点,为了达到更好的应用效果,以收割后的麦茬这种小目标为实验对象,制作了小目标数据集。这一数据集也补充了农业中对于小目标数据集不足的问题。设计了基于YOLOv5网络的检测识别算法YOLOT如图1所示。
首先,在YOLOv5的主干网络(Backbone)中添加了通道注意力以及空间注意力,使神经网络专注于图片中麦茬这种小目标,可以更好地提取目标特征。针对浅层与高层语义信息差异大以及高级语义信息与低级语义信息的融合问题,特征金字塔中位置信息的传输不准确问题,改进了特征金字塔并且添加了注意力模块。经过大量的实验,得到了最适合小目标的锚框以及IOU阈值。最后,为了验证YOLOT算法的优越性,笔者分别对比了YOLOv3算法、YOLOv5算法,并且做了消融实验,进一步验证各个优化部分的有效性。
3 YOLOT
3.1注意力机制
图片是目标检测常用的一种低信息密度的数据格式,所以,卷积神经网络进行目标特征提取时,不可避免地会提取许多无用的冗余信息,进而可能会影响检测效果。为了使卷积神经网络更专注于检测目标,越来越多的神经网络开始引入注意力机制[27]。注意力机制使得卷积神经网络集中注意图片的某一个局部,不平等地对待总体输入, 进一步加强网络的特征提取能力。
卷积神经网络中常用的两种注意力机制是通道注意力[28]与空间注意力机制[29]。通道注意力机制如图2所示。首先,将特征图进行基于H和W的最大池化以及平均池化。然后将池化后的输出分别经过全连接层[30]进行逐元素相乘的加和操作,最后经过激活函数Softmax[31]生成通道注意力特征图与输入特征图进行逐元素相乘。通道注意力机制可以表达为:
[MCF=бMLPAvgPoolF+MLPMaxPoolF]
[=б(W1(W0(FCavg))+W1(W0(FCmax)))]
通道注意力机制是将特征图在空间维度上进行压缩,得到一个一维矢量后再进行下一步处理。在空间维度上进行压缩时,不仅考虑了平均值池化还考虑了最大值池化。平均值池化和最大值池化可用来聚合特征映射的空间信息。对于每张图像通道注意力将图像中各个区域的语义信息进行关注度优先级排序,优先级高的语义信息更重要,反之则对于给定目标来说并不重要。平均值池化对特征图上的语义信息进行映射权重计算,这样在梯度反向传播计算时,只有特征图中权重最大的语义信息存在梯度反馈。空间注意力机制如图3所示,对通道进行压缩,在通道维度分别进行了平均值池化和最大值池化。最大值池值化提取次数依据高宽而定,最后将前面提取的特征图合并得到二维通道的特征图。
空间注意力机制可以表示为:
[Ms(F) = б(f7*7([AvgPool(F);MaxPool(F)]))]
[= б(f7*7([Fsavg;Fsmax]))]
其中,σ为sigmoid操作,7*7表示卷积核大小。
空间注意力模块(SAM)将输入的每个通道特征进行相同的空间加权处理,忽视了通道之间的信息交互,而通道注意力模块(SEM)则忽视了空间的信息交互,顺着这两个方向深度挖掘内部关键信息,筛选出重要信息,剔除不相关信息,提升小目标的检测精度和泛化性能。
本文YOLOT引入了结合通道与空间的注意力机制CBAM如图4所示。
CBAM注意力机制不仅捕获跨通道的信息,还可以感知位置敏感信息,这就使得YOLOT能够更准确地识别锁定目标位置。
3.2特征金字塔
特征金字塔(FPN)是根据古埃及金字塔形状启发设计而成的特征提取器,目的是提高检测物体的精度与识别速度。它替代了如Faster-R-CNN中的特征提取器,可以生成更高质量的、更多语义信息的特征图。特征图金字塔主要解决物体检测多尺度、高级语义信息、低级语义信息结合问题。图像经过Backbone的卷积核下采样后,得到的特征图(Feature Map),图像的空间分辨率减少,空间信息丢失。但是高级语义信息将被更多地检测到。为了解决图像下采样时目标位置信息丢失问题,这时会进行两次上采样,生成具有相同分辨率的特征图,然后将图片按照指定维度进行融合连接。这种融合不仅增加了目标的位置信息,还将高级语义与低级语义信息融合,进一步增加了小目标检测率。虽然特征金字能够提高目标的检测率,但是对于麦茬这种小目标还是远远不够。从下面的消融实验中可以明显看出,YOLOv5网络对于麦茬的识别率一般,所以在YOLOT网络中针对这一现象,尝试在特征金字塔中加入CBAM注意力机制,进一步提高小目标的位置及语义信息的权重关注度。这一方法的有效性在实验结果的对比中,可以得到有力的支持,如图5所示。
YOLOT使用了三层特征金字塔,与之对应的也有三组九种不一样的锚框。在引言中提到,三组九种不同大小的锚框在不同特征层进行目标定位识别时,锚框大小也会对小目标的识别率产生一定的影响。针对这个问题,YOLOT重新设计了锚框大小。图6所示,黄色为YOLOT采用锚框(5,7),绿色蓝色为YOLOv5原设计锚框(30,61)、(62,45)、(59,119)、(116,90)、(156,198)。
4数据集
利用索尼ILCE-7M2进行麦茬数据的采集,经过筛选整理随机选出100张图像。如图7所示,一个白框覆盖面积为1m2,即数据集中每张图像所代表的是1m2内所有的麦茬。使用Labelimg标记麦茬目标,每张图像标记所有麦茬、识别标签效果如图7所示。
规定目标占图像比小于0.001的为小目标,小目标占总标记数比大于90%的图像为合格图像,经统计符合此规定的图像占95%。为进一步增强网络的泛化能力,拍摄时选取不同背景色,不同麦茬排列方式如图8所示。
5实验结果及实验环境
为了证明网络的各项改进点对模型的性能提升有贡献,本文在统一的实验环境下进行了对比实验。实验环境为Windows10操作系统、RTX2080TI、RTX3080显卡、PyTorch深度学习框架、数据集为自制麦茬数据,图片分辨率为640*640,训练批大小为20,初始学习率为0.01,所有参照模型均按照此参数训练1000个epoch。对比实验采用精度(precision)、召回率(recall)、平均精度(map)对各个模型进行对比。
P=[TPTP+FP]R=[TPTP+FN]AP=[01PRdR]mAP=[ikAPik]
其中,TP(True Positive)代表原本为正样本且被检测为正样本的目标,FP(False Positive)代表原本为负样本但被检测为正样本的目标,FN(False Negative)代表原本为正样本但被检测为负样本的目标,P为精确率,R为召回率[32]。K代表待检测目标的类别数,AP 是计算某一类 P-R 曲线下的面积,mAP 则是计算所有类别 P-R 曲线下面积的平均值。