基于改进YOLOv4的遥感图像目标检测算法

2024-02-02 14:54樊永生
测试技术学报 2024年1期
关键词:锚框聚类函数

刘 敏,樊永生

(中北大学 计算机科学与技术学院,山西 太原 030051)

0 引言

遥感图像目标检测广泛应用于智能监控、城市规划、港口管理和军事侦察等。与自然场景图像不同,遥感图像通常是从鸟瞰图中捕获,这给检测任务带来了额外的挑战:如图像由复杂的背景和许多密集的物体组成、位置分布不平衡、范围广而目标较小等问题,使遥感图像难以检测识别。

早期的目标检测模型是由人工制作的特征提取器组成,如Viola-Jones 检测器[1]、方向梯度直方 图(Histogram of Oriented Gradient,HOG)[2]等,这些模型速度慢、准确率低,应用环境改变后效果不佳。卷积神经网络(CNNs)的提出改变了视觉感知。AlexNet 在2012 年ImageNet 大规模视觉识别挑战赛(ILSVRC)中的应用[3],激发了CNNs在计算机视觉中应用的进一步研究。如今,目标检测应用在自动驾驶、人脸识别等多领域[4]。

长期以来,各行各业的技术人员都试图通过计算机模拟遥感专家,进行遥感图像识别的复杂过程[5]。然而,他们未能实现足够高的信息提取精度和准确性。由于遥感图像的复杂性,最成功的遥感图像识别方法为视觉判读,而海量遥感数据与人类有限的识别能力之间的矛盾,制约了目前遥感服务于发展中社会潜力的发挥。

YOLOv4 算法由于其准确性和速度优势被广泛用于目标检测,有数据显示,YOLOv4 是YOLO 系列中最佳的目标检测框架。检测遥感图像的困难在于目标较小、背景复杂、分布密集,所以应该考虑其检测速度和泛用性,本文将基于深度学习的YOLOv4 检测算法应用于遥感目标的检测,通过对数据集进行重新聚类、重新选择激活函数并且对PANet 结构进行优化,改进对遥感图像中小目标的识别准确率和识别效率。

1 YOLOv4网络结构分析

1.1 YOLOv4网络结构

YOLOv4 算法主要由三部分组成:用于特征提取的Backbone 结构、用于提取特征语义表示的Neck 结构和用于预测的Head 结构,如图1 所示。主干采用CSPDarknet53 结构,并且应用SPP 的思想增加感受野,采用PANet 中的路径聚合模块作为Neck 部分。在主干网络中使用Mish 激活函数,之后的网络中使用的激活函数都是Leaky_relu激活函数。

图1 YOLOv4网络结构图Fig.1 Network structure diagram of YOLOv4

1.2 YOLOv4检测过程

YOLOv4 算法将输入图像大小调整为608×608×3,然后放入主干网络CSPDarknet53 结构中训练进行特征提取,得到3 个有效特征层,大小分别为76×76,38×38,19×19,再进入Neck进行处理,在SPP 模块中进行多尺度融合,3 张特征图就是YOLOv4算法的输出检测结果。

YOLOv4使用K-means聚类得到的先验框适用于自然界中一般图像的目标检测,但对遥感图像小目标的检测效果不佳,因此,本文对数据集重新聚类;遥感图像的背景复杂、分布密集,而YOLOv4在主干中使用的Mish函数属于静态激活函数,不能自适应不同的输入特征,所以本文把Mish函数改换为动态激活函数,自适应地学习激活函数的结构,决定是否激活神经元;遥感图像的目标较小,所以特征融合方法对本文至为重要。因此,本文对YOLOv4算法中的PANet进行改进,以加强浅层特征提取,提高对小目标的检测精度。

2 改进的YOLOv4

YOLOv4 算法是在Microsoft Common Objects in Context(MS COCO)数据集上训练来的,并不适用于遥感图像目标检测[6]。所以,根据遥感图像目标的特点,对YOLOv4 算法进行了以下改进,以提高遥感图像目标检测的能力。

1)采用K-means 方法对锚框数量和尺寸进行优化,以提升检测精度和速度;

2)将YOLOv4 算法干网络中的Mish 激活函数改为动态激活函数,自适应网络输入特征,以提高模型的泛化能力;

3)对YOLOv4的Neck部分的PANet结构进行改进,丰富浅层网络,提高对小目标的检测能力。

2.1 优化锚框

YOLOv4 使用的K-means 聚类算法,将所有样本分成K个聚类,以欧几里得距离计算,产生有效的数据挖掘结果[7]。距离计算为

式中:xn为边界框中心的标准水平轴;yn为边界框中心的标准数轴。不同的数据集和锚机制可能会对检测器性能产生很大影响。YOLOv4 算法中使用的锚框(anchor box)尺寸主要适用于大自然中一般目标,不适用于遥感图像目标检测。因此,本文对遥感图像目标重新聚类出合适的参数,提升检测精度和速度。

IoU(Intersection over Union)值是指先验框和真实框的重合区域[8],定义为

从式(2)中可以看出,当先验框和预测框重合度越高时,IoU值越大,说明模型预测越准确;当重合度越低时,模型性能越差。如图2 所示,将K的区间设置为1~9,锚框数目为3时是K的拐点,平衡了avg IoU和模型复杂度,因此,聚类中心的数量设置为3,并且在此基础上获得的增强边界框的大小分别为(11,11)、(10,51)、(56,10)。

图2 不同锚框数目所对应的Avg IoUFig.2 Avg IoU for different number of anchor frames

原始YOLOv4 算法为 3 个特征图分别分配3 个边界框,用于预测的尺度分别为52×52、26×26 和13×13。26×26 和13×13 是语义丰富信息的深层特征,具有更大的感受野。研究表明,有限的感受野很难检测到小目标[9]。因此,本研究丢弃了小尺度特征图,保留了52×52的特征图,这也降低了网络的复杂性。

2.2 设计激活函数

原YOLOv4 算法中使用的激活函数是Mish函数,属于静态激活函数,无法通过调整激活函数以适应不同输入特征来改善对复杂数据的处理。为了解决这个问题,本文引入了一个动态激活函数,通过网络自适应学习激活函数结构,决定是否激活神经元。

网络可以通过学习ε1和ε2自适应调整激活函数。平滑因子α控制是否激活神经元。

式中:W1和W2为2 个卷积层的参数。通过此方式形成新的激活层,替换原YOLOv4 算法主干网络中的激活层,可以自适应不同的输入特征,使在面对背景复杂、分布密集的遥感小目标时,可以更好分开正负样本,提高了模型泛化能力[10]。

2.3 PANet结构优化

缺乏浅层特征提取会导致小目标漏检并降低检测精度,因此,改进YOLOv4 算法中的PANet以保留浅层特征信息。深度语义丰富的特征可以增强浅层特征信息[11]。特征融合是多个不同特征信息的融合,既可以获得深层特征信息,也可以获得浅层特征信息。所以,特征融合方法在本文研究中至为重要。

图3 为YOLOv4算法中的PANet结构,包含了浅层特征信息和深层特征信息。然而,该结构对于小目标检测有一些缺陷,例如,26×26直接向上采样到104×104可能会丢失用于预测的信息,信道数量从256减少到128也可能丢失信息。

图3 YOLOv4的PANet结构Fig.3 PANet structure for YOLOv4

改进的PANet结构如图4 所示。直接将26×26上采样到104×104,在SPP之后,分别对具有512个通道的26×26、具有128 个通道的52×52 和具有128个通道的104×104的每个特征图进行特征融合。

图4 改进的PANet结构Fig.4 Improved PANet structure

3 实 验

3.1 实验环境设置

本实验所使用的实验环境如表1 所示。

表1 实验环境Tab.1 Experimental setting

3.2 数据集

为评估实验方法的有效性,本文使用2 个数据集进行实验。

1)DOTA 数据集:用于目标检测的大规模数据集,每个图像的大小约为4 k×4 k 像素,包含不同尺度、方向和形状的目标。完全注释的DOTA 数据集包含188 282 个实例,涉及15 个常见目标类别:飞机、棒球场(BD)、桥梁、场地跑道(GFT)、小型车辆(SV)、大型车辆(LV)、网球场(TC)、篮球场(BC)、储罐(ST)、足球场(SBF)、环形交叉路口(RA)、游泳池(SP)、以及港口和直升机(HC)。数据集随机选择一半的原始图像作为训练集,1/6作为验证集,1/3作为测试集[10]。根据高度将所有目标分为3 个部分:10~50 像素范围为小,50~300 像素范围为中,300 像素以上为大。因此,将高度范围为10~50 像素的目标定义为小对象。图5 为训练集和验证集中不同类别的小目标的占比。

图5 DATO数据集中不同类别的小目标占比Fig.5 Percentage of small targets in different categories in the DATO dataset

2)DIOR-R:它包含192 518个实例和23 463个图像,分辨率从0.5~30 m不等。DIOR-R共有20个常见类别,包括飞机、机场、棒球场、篮球场等。图像被分成训练和测试数据集,比例为9∶1。原始数据集使用数据增强方法进行了扩展,包括几何变换和马赛克方法。马赛克数据增强基于Cut-Mix理论。不同的是,在Cut-Mix中拼接了2幅图像,但马赛克使用了4幅图像。使用马赛克的优点是它丰富了图像数据集的背景[12]。首先,使用镜像和旋转将数据集扩展到原始大小的8倍;然后,使用马赛克方法合并图像。

为降低CO2在合成气中比例,CaO强化的CO2捕集技术也在化学链气化、制氢、重整等工艺中被研究[23-24]。通常利用CaO对含碳原料气化的粗燃气进行CO2捕集,提升H2产率[25-26]。CaO强化的直接固体原料化学链气化相关研究较少。

3.3 评价指标

本文使用真实数据(Ground Truth)和预测边界框(IOU)之间的平均精度(AP)和平均精度均值(mAP)、准确率(Precision)、召回率(Recall)来评估目标检测性能[13]。计算公式为

3.4 实验结果

根据上式验证优化的特征融合网络的结果,本研究在DIOR-R 数据集和DOTA 数据集上进行了实验。

表2 展示了本文方法和其他方法在DOTA数据集上的mAP比较,实验证明,本文方法在DOTA数据集上的mAP较其他方法都有所提高,证明了本文方法对于遥感小目标图像的有效性。

表2 本文方法和其他方法在DOTA数据集上的mAP比较Tab.2 Comparison of the mAP of the method in this paper with other methods on the DOTA dataset

表3 为YOLOv4 和本文方法在DIOR-R 数据集的性能比较。

表3 YOLOv4和改进YOLOv4比较Tab.3 Comparison of YOLOv4 and improved YOLOv4

如表3 所示,mAP从82.59% 增加到86.76%,根据之前的锚框的选择,改进的YOLOv4 的IoU 低于YOLOv4。改进的YOLOv4具有更好的性能,并且平衡了精度和速度。

表格中数据显示,本文方法在DOTA数据集的各个类别上都优于其他方法,证明本文方法的有效性。

3.5 消融实验

表4 消融实验结果对比Tab.4 Comparison of results of ablation experiments

方法1)和方法2)对比表明,K-means 对遥感图像小目标重新聚类,对锚框的数量和尺寸进行优化,有效提高了实验的精度和速度;方法1)和方法3)对比表明,使用动态激活函数自适应不同的输入特征,提高了YOLOv4 算法的性能;YOLOv4 和本文方法对比,mAP 提高了3.7%,检测速度达到了23.5 fps,对比结果证明了本文改进算法的合理性和有效性。

3.6 检测结果对比

实际检测效果对比如图6 所示。其中图6(a)为原版YOLOv4 的检测效果,图6(b)为本文改进后的YOLOv4的检测效果。

图6 改进前后的YOLOv4算法检测效果对比Fig.6 Comparison of detection effects before and after improving YOLOv4 algorithm

由图6 可以直观看出:原版的YOLOv4 算法对目标的检测效果不佳,改进后的YOLOv4 算法提高了特征提取能力,检测效果有了很大的提高。

4 结论

针对遥感图像小目标检测效果不佳的问题,对YOLOv4 算法的K-means 重新聚类,优化了锚框的数量和尺寸,提升检测的精度和速度;将激活函数改为了动态激活函数,自适应输入特征,提高了模型的泛化能力;同时,对PANet 结构进行改进,丰富了浅层网络,更好地提高对小目标的检测能力。实验结果表明,改进的YOLOv4 在检测遥感小目标时,在参数数量、检测精度方面优于原始的YOLOv4模型。

猜你喜欢
锚框聚类函数
基于YOLOv3锚框优化的侧扫声呐图像目标检测
锚框策略匹配的SSD飞机遥感图像目标检测
基于SSD算法的轻量化仪器表盘检测算法*
基于GA-RoI Transformer的遥感图像任意方向目标检测
二次函数
第3讲 “函数”复习精讲
二次函数
函数备考精讲
基于DBSACN聚类算法的XML文档聚类
基于高斯混合聚类的阵列干涉SAR三维成像