APP下载

基于YOLOv5的遥感图像小目标检测

2023-03-11李文博赵正旭

科技创新与应用 2023年6期
关键词:卷积模块图像

李文博,赵正旭

(青岛理工大学 机械与汽车工程学院,山东 青岛 266520)

计算机视觉(Computer Vision,CV)中,目标检测(Object Detection)技术的研究一直都是该领域热点研究方向。目标检测技术是指从复杂的背景中,基于目标几何和统计特征进行表达与分类,实现对检测目标的识别和位置确认,为后续的分析处理提供信息。其中,小目标检测精度和速度是该领域的热门研究方向[1]。

遥感图像的目标检测技术目前在农业、医学和军事等领域都有研究应用。随着深度学习技术的不断发展,相较手工提取特征的传统算法,因深度神经网络识别准确率高、速度快和特征自提取等优势被广泛应用到目标检测领域中来[2]。近些年,许多基于卷积神经网络的速度快、精度高的目标检测算法被提出,卷积神经网络可以对图像数据自主训练学习,更新参数,得到一个比较准确的模型[3],并在很多开源检测数据集的检测结果和性能表现都很出色[4-9]。目前流行的深度学习目标检测算法主要为two-stage和one-stage。Two-stage是先生成候选区域,再通过卷积神经网络对预测目标进行分类和定位,如Mask R-CNN[4]、FasterR-CNN[10]等。One-stage是直接利用卷积神经网络提取目标特征值,预测目标的分类与定位,较为代表性的为YOLO算法。第一类目标检测方法其优点是目标定位和检出率精度高,但是训练时间长、速度慢,达不到实时性要求。第二类目标检测方法其优点是速度快,能够实时对目标对象进行识别定位,但精度不高,特别是对小目标识别不准确。综合考虑,本文选用YOLO算法中最流行的YOLOv5作为基础,对DOTA数据集中的遥感图像中的舰船、车辆进行检测,采用GIOU_loss作为损失函数,能够准确检测出舰船、车辆等遥感图像中的小目标。

1 YOLOv5算法介绍

YOLO算法作为目标检测领域的一个经典算法,其中YOLOv1奠定了整个YOLO系列的基础,后面的YOLO算法是对其的不断改进创新。YOLOv1发布于2015年,是one-stage detection的开山之作,在此之前的目标检测都是采用two-stage的方法,虽然准确率较高,但是运行速度慢。由于YOLOv1存在定位不准确及与two-stage方法相比召回率低的缺点,作者于2017年提出了YOLOv2算法,从更准确、更快和更多识别3个角度对YOLOv1算法进行了改进,扩展到能够检测9 000种不同对象的检测识别,被称为YOLO9000。YOLOv3于2018年提出,总结了在YOLOv2的基础上做的一些尝试性改进。其中有2个值得一提的亮点,一个是使用了残差模型,另一个是使用了FPN架构实现多尺度检测[5,9]。YOLOv3在之前的基础上引入了残差块,并进一步加深了网络,改进之后的网络有53个卷积层,取名为Darknet-53。

YOLOv4是在YOLOv3的主干网络(Darknet-53)的基础上增加了Backbone结构,其中包含了5个CSP模块,可以有效增强网络的学习能力,降低成本。同时增加了Droblock模块,缓解过拟合现象。此外YOLOv4使用Mish激活函数,由于其函数曲线相对更平滑,相对Relu激活函数能更好地保证准确率,如图1所示。

图1 Mish激活函数

YOLOv5是在YOLOv4的基础上进行的一定程度上的优化。YOLOv5中新加入了Focus模块,主要用于切片操作,另外在YOLOv4中使用的CSP模块在YOLOv5的Backbone和Neck中都有应用。输入部分依然采用了YOLOv4中采用的Mosaic数据增强技术,另外对于锚框的设置采用了每次训练时自适应生成的方式,以及为了保持正常的长宽比,在填充增强环节自适应增添最少的黑边。预测部分采用GIOU_Loss损失函数和NMS非极大抑制。

YOLOv5共有4种模型,分别是YOLOv5-s、YOLOv5-m、YOLOv5-l和YOLOv5-x。4种模型网络的深度和宽度有所不同。经过同一数据集训练模型并推理预测结果比较,YOLOv5-s模型速度和性能最好,而YOLOv5-x模型的平均精度均值最佳[1,11]。

YOLOv5网络模型如图2所示,该模型包括Input(输入端)、Backbone(主干网络)、Neck(网络)和Prediction(预测端)4部分。

2 训练数据集

2.1 DOTA数据集介绍

DOTA图像是从中国资源卫星应用中心提供的谷歌地球,GF-2和JL-1卫星收集的,CycloMedia B.V.DOTA机构提供的航空图像,由RGB图像和灰度图像组成。RGB图像来自Google Earth和CycloMedia,而灰度图像来自GF-2和JL-1卫星图像的全色带。所有图像都以“jpg”格式存储。

2.2 数据集的来源

从DOTA数据集中选择2 000张图片,组合训练集和测试集。样本集中包含15个类别:飞机、船舶、港口、桥梁、大型车辆、小型车辆、直升机、环形交叉路口、足球场、游泳池、储罐、棒球场、网球场、篮球场和地面田径场。

部分样本集如图3所示。

图3 部分样本集

3 实验流程

3.1 实验环境与配置

3.1.1 基于YOLOv5算法的小目标检测的硬件配置

处理器:Intel Xeon Silver 4210 CPU@2.20 GHz。

内存:12 GB。

显卡:GeForce RTX 2080 Ti。

3.1.2 基于YOLOv5算法的小目标检测的软件环境

操作系统:Centos7。

实验平台:python 3.7,pytorch1.7.1。

3.2 超参数设置

本文基于YOLOv5算法,采用小批量随机梯度下降法(SGD)来训练小目标检测模型。在开始训练前,首先将YOLOv5模型的初始学习率设为0.01,动量参数设为0.937,权重衰减系数设为0.000 5,最大训练次数设为300,输入图片尺寸设为1 024 px×1024 px,batch_size设为16。

3.3 YOLOv5模型训练

本文使用DOTA数据集通过Input(输入端)进行输入,由于遥感图像数据集中要检测的目标尺寸较小,为了提升网络的训练效果,Input端对输入的图片进行预处理操作,并将其输入到YOLOv5网络中进行训练,分别经过Backbone(特征提取网络)、Neck(特征融合网络),得到训练好的模型,然后利用训练好的模型通过检测网络(Prediction预测端)进行预测,最后输出预测结果。小目标检测过程如图4所示。

图4 小目标检测过程

3.3.1 Input(输入端)

DOTA数据集通过Input(输入端)进行输入,在Input端会采用Mosaic数据增强、自适应锚框计算和统一图片尺寸大小等方法对要训练的数据进行预处理,从而减少黑边降低冗余信息,以此来提升遥感图像目标检测精度。

3.3.2 Backbone(特征提取网络)

Backbone包括Focus模块、CSP模块和SPP模块。YOLOv4中的Backbone中只有CSP模块,而YOLOv5中新增了Focus模块[5]。新增的Focus模块的作用主要是对图片进行切片操作,类似于下采样,其过程是逐步变化的。比如在Focus模块中输入图像为1 024 px×1 024 px×3 px,通过切片操作将图像变为512 px×512 px×12 px的特征图,再经过3×3的卷积操作,最终输出512 px×512 px×32 px的特征图。SPP是空间金字塔池化的简称,由卷积层、不同大小的池化层和卷积层构成,其先通过一个标准卷积模块将输入通道数减半,然后分别采用kernel-size为5、9、13的最大池化Maxpool(对于不同的核大小,padding是自适应的),再将3次最大池化的结果与未进行池化操作的数据进行Concat,提高感受野。

3.3.3 Neck(特征融合网络)

Neck的结构由FPN(自上而下)+PAN(自底向上结构的特征金字塔)结构组成,FPN结构采用上采样方法传递信息和融合信息,获取预测的特征图。YOLOv5网络结构中在FPN层后面,还添加了一个特征金字塔,自下向上,其中有2个PAN(路径聚合网络)结构,通过下采样操作,将低层与高层的特征信息进行融合,输出预测的特征图。

3.3.4 Prediction(预测端)

Prediction由非极大值抑制(NMS)和Bounding box损失函数2大部分组成。在Bounding box中,GIOULoss函数作为损失函数,通过NMS函数可以在预测结果处理阶段解决多余预测框问题或进行筛选,以此选择最优预测框。计算公式如下

式中:实线框A表示目标位置框线,虚线框B表示目标的预测框线,C作为包围A、B框线的最小包围框。IOU是输出框和真实框的交并比。

4 实验结果

YOLOv5的初始权值采用COCO数据集上训练好的yolov5s.pt,权值采用模型从源数据学到的迁移到目标数据集上,使得YOLOv5模型收敛,得到训练好的模型,其中YOLOv5模型训练耗时为6.609 h,得到的权值文件大小为14.8 MB,随着迭代次数增加,训练参数变化如图5所示。

图5 训练参数变化图

box_loss:推测为GIOU损失函数均值,其值越小方框越准。

obj_loss:推测为目标检测loss均值,其值越小目标检测越准。

cls_loss:推测为分类loss均值,其值越小分类越准。

实验使用卫星拍摄的遥感图像作为数据,原始图片中汽车、轮船是尺寸很小的目标物体,本文针对小目标检测任务训练的YOLOv5模型能够准确地识别出目标的类别。由表1可知,相较于YOLOv3,YOLOv5检测精度提高了8.93%。

表1 模型对比试验结果比较

5 结束语

目前遥感图像中存在对物体检测尺寸较小、检测不准确等问题,本文提出将YOLOv5算法应用到遥感图像目标检测中,首先对输入图片进行预处理,通过随机缩放、裁减和排列对图片进行拼接,增加小目标数量,提高网络鲁棒性丰富数据集。然后将图像进行卷积得到特征图,并送入主干网络中进行特征融合。GIOU_Loss做为损失函数,对遥感图像中的小目标进行检测。本文采用卫星拍摄的图片作为目标检测数据,根据结果展示表明,YOLOv5算法能有效检测识别出遥感图像中的小目标。

猜你喜欢

卷积模块图像
28通道收发处理模块设计
“选修3—3”模块的复习备考
基于3D-Winograd的快速卷积算法设计及FPGA实现
巧用图像中的点、线、面解题
有趣的图像诗
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
遥感图像几何纠正中GCP选取
集成水空中冷器的进气模块