一种面向遥感目标检测的改进YOLOv4算法

2021-02-28 06:49沈阳理工大学黄海新唐学多
电子世界 2021年22期
关键词:损失飞机精度

沈阳理工大学 黄海新 唐学多

随着遥感影像获取技术的不断发展,遥感飞机的机型及位置检测成为检测重点。然而,由于其复杂的背景,不同的空间分辨率,姿态和光照变化复杂,导致检测精度不高。此外,本研究中遥感飞机的类内和类间方差都较大,给机型的识别增加了难度。为了提高算法对遥感影像目标的检测精度,本文提出一种基于YOLv4和Triple Loss的目标检测算法,首先运用Sobel算子和Mosaic对数据集扩充和增强;其次,用Triple Loss代替原有的分类损失函数来提高分类精度,最后通过实验验证本算法的有效性和准确性。结果表明本算法在MTARSI数据集上检测率mAP达到90.07%,与其他先进的机型识别算法对比,本文算法有效提升了遥感飞机的检测准确率。

随着遥感技术的不断发展,遥感影像已经成为一种重要的数据来源。飞机不仅是军事领域的战略目标,也是民用领域的重要运输工具,因此,飞机的机型识别和检测在及时分析战场态势和制定军事决策方面起着重要作用。但是由于遥感影像高分辨率的获取,单张图片中包含的信息也越来越多,依靠现有的自动解释的分类方法已经难以适应实际需要。而且,尽管飞机的功能和用途有着明显区别,但是却具有极其相似的外观,遥感影像具有的背景复杂,小目标、多尺度等特点也增加了检测难度,因此,快速、准确的识别飞机类型仍然具有很大的挑战。YOLOv4的出现使目标检测任务出现了一个飞跃,实现了速度和精度的完美提升,为了保证检测精度和实时性,本文采用YOLOv4作为检测网络结构。如图1所示。

图1 YOLOv4网络结构

1 基本原理

1.1 YOLOv4算法检测流程

为实现对遥感飞机目标的实时高效检测,本文基于YOLOv4建立检测网络框架。YOLO系列算法是基于CNN的端到端的原理实现目标检测,其检测过程分为特征提取,定位目标和损失计算三个部分。其中,特征提取网络为CSPDarket53,定位目标包括对目标的分类和位置回归,损失计算则包括分类损失、边界框回归损失和置信度损失。如图2所示,与只有一个检测层的YOLOv1和YOLOv2不同,YOLOv4与YOLOv3相同,使用三个不同尺度的特图,实现了多尺度目标检测,且使用了比YOLOv3中Darknet53效果更好的CspDarknet53作为特征提取网络。

图2 遥感飞机图像扩增流程图

1.2 数据增强及扩增

在深度学习中,为了获取一个好的训练模型和提高模型的泛化能力,高质量的样本是必不可少的。但是实际中,样本数量和质量往往都不够好,数据增强及扩增成为了改善或者解决这一问题的关键方法。本算法使用Mosaic进行数据增强,基于Sobel算子的图像分割技术进行数据扩增。

MTARSI数据集中的B-2轰炸机和KC-10加油机是非常罕见的,很难被卫星遥感捕获,这将阻碍MTARSI数据集的采集和构建。针对这一问题,一种基于Sobel算子的分割算法被提出用来解决此问题,该方法的流程图如图3所示,首先运用Sobel算子将图片中的图像从背景中分离出来,然后从不包含任何飞机的相关遥感图像(如飞机跑道、草坪等)中随机选择不同的背景图像。最后将分割出的飞机图像进行镜像和旋转操作,再和选定的背景结合,实现对罕见数据的扩增。提取的图像和背景图像具有相同的空间分辨率,且由相同的遥感传感器获取,避免了数据的失真。

图3 三元组分类损失函数原理

1.3 Triple Loss

由于本论文样本数据集具有明显的类内多样性,为了减少对损失的影响,在训练中需要尽可能的学习训练hard样本,所以,选取三元组损失函数作为分类损失函数,其基本思想就即通过学习来最大化anchor与负样本的距离,最小化anchor与正样本之间的距离。

2 实验与分析

本章首先介绍实验所用数据集,再介绍实验环境设置,并在YOLOv4 网络中进行训练测试最后将实验效果与其他主流算法做对比,得出检测效果更好的结论。

2.1 数据集

本实验数据集为来自谷歌地球卫星图像的多类型飞机遥感图像(MTARSI),包含20种类型、覆盖36个机场的飞机图片,数据扩增至9385张图片。所有图片均采用labelImg进行标注,随机选取2000张作为测试集,7385张为训练集图片。

2.2 实验设置

实验采用YOLOv4算法的CSPDarknet53网络作为实验特征提取网络,采用随机梯度下降法优化损失函数,采用交叉迷你批标准化(CmBN)有效避免模型在迭代过程中陷入最小值的问题,来加快训练的收敛性,激活函数结合使用修正线性单元(Leakey ReLU)和Mish。超参数设置如下:批数和小批数为64、16,动量衰减和重量衰减分别设为0.9、0.005,采用多项式衰减策略调整学习率,初始学习率为0.001。实验环境:使用Darknet+CUDA10.2的深度学习框架,显存为16G的GTX1660显卡,每次在GPU上并行训练4图像。

2.3 实验结果及对比

实验对输入图像采用多尺度训练,并在五种神经网络(DenseNet、GoogelNet、VGG、ResNet以及EfficientNet)上进行性能比较,本算法以90.07%的分类准确率取胜。且与传统基于特征的方法相比,基于神经网络的方法能够提取出更深层次的特征,具有更好的泛化能力和图像表征能力,因此具有更高的检测精度,检测性能也远远好于传统分类方法。该算法的在测试集上的检测结果如图4所示,可以看出,无论是在分类还是位置定位,本算法都有较好的检测效果。

图4 测试集验证结果

2.4 实验分析

本训练实验中,当迭代次数约为40000次时损失收敛至0.31,在测试集上验证结果,得到了较好的检测效果,由此可见,本文基于YOLOv4与Triple-Loss的算法能够增强遥感目标的检测能力。

针对遥感飞机影像中存在的分类及检测精度不高的问题,提出了基于YOLOv4和Triple Loss的检测算法。该算法首先选取YOLOv4作为检测的主干模型,其次使用Mosaic和Sobel算子方法进行数据扩增及增强,并引入Triple Loss分类损失函数思想,最后在MTARSI数据集上验证算法的有效性。实验结果表明,该算法在复杂的遥感影像目标检测中检测效果较好,且实现了在不损失速度的情况下提高了检测精度。

猜你喜欢
损失飞机精度
飞机失踪
胖胖损失了多少元
“拼座飞机”迎风飞扬
玉米抽穗前倒伏怎么办?怎么减少损失?
基于DSPIC33F微处理器的采集精度的提高
乘坐飞机
神奇飞机变变变
GPS/GLONASS/BDS组合PPP精度分析
一般自由碰撞的最大动能损失
损失