APP下载

基于DATE-FCOS的空中目标检测研究

2024-02-29陈钊阳王玉玫

计算机测量与控制 2024年2期
关键词:损失卷积精度

陈钊阳,王玉玫

(华北计算技术研究所,北京 100083)

0 引言

近年来,我国围绕“全面加强军事空天发展:优先发展战略性空间和高新技术,增强网络空间和电磁空间力量,全面提高航空航天、防空导弹力量的能力”做出重要部署,旨在提升国家空天实力,维护国家安全和领土领空安全,促进国家经济和科技发展,并为全球空间治理贡献中国方案。随着国内外无人机相关技术飞速发展,无人机的应用涉及多个领域,包括军事应用。高空无人机对航空图像中目标的检测是当前研究的热点之一,高效、准确地探测在军事和民用领域具有很高的价值。然而,由于高空环境和光照条件较为特殊,高空图像采集系统获取的图像存在较多的噪点,并且存在阴影衰落,使图像变得粗糙模糊[1],因此空中目标检测精度较低,难度较大。

而空中目标大致可分为3类:1)空中季节性迁徙的鸟类,大型的鸟类迁徙高度可达3 000~6 300 m,而天鹅等大型种飞行高度可达9 000 m,跨越珠穆朗玛峰;2)小型飞行器,主要包括探空气球、空飘气球、轻型和超轻型运动飞机、轻型直升机、滑翔机、无人机、航模、动力伞、动力三角翼、小型飞艇等;3)大型飞行器,主要有军用和民用的运输机和直升机、客机、轰炸机和侦察机等[2]。研究的主要重点当然还是各类的大型飞行器,飞行器,尤其是飞机有几个方面使目标识别与众不同。首先,飞机设计跨越了超过一百年,包括数千种不同的型号、数百种不同的品牌和航空公司;其次,飞机的设计因尺寸(从小型无人机到大型运输机)、目的地(私人、民用、军用)、用途(运输机、航母、训练、运动、战斗机等)、推进力(滑翔机、螺旋桨、喷气式飞机)和包括技术在内的许多其他因素而异。飞机的结构随着其设计(机翼、起落架、每个起落架的轮子、发动机等的数量)而变化;最后,任何公开的飞机模型都可以被不同的公司重新使用,这会导致外观(涂装)的进一步变化。根据识别任务的不同,这些可以被视为噪声或要提取的有用信息。

早期目标检测主要是依靠基于人工特征提取的机器学习方法。这些方法通过色彩、轮廓、纹理等特征来刻画物体[3],尽管具有方法简单、实时性好等优点,但时间冗余度高,基于手工设计的特征鲁棒性、泛化性较差,仅适用于专门面向的特定任务,并且严重受到设备的硬件性能和周围环境的影响,进行高精度的检测任务较为困难,容易造成大量的检测结果误差,难以实施于实际的工程应用之中。然而,随着人工智能的发展和其在计算机视觉领域的研究不断地深入,深度学习(DL,deep learning)[4-6]的许多方法开始逐渐应用于目标检测领域,并且由于其优异的表现在学术界得到了广泛研究和应用。从目标检测算法的结构上来说可以主要分为两大类:一类是两阶段检测算法,主要以 Faster R-CNN[7]、Mask R-CNN[8]等R-CNN系列算法为代表,该算法是第一个提出“先选取候选框,再通过分类器对候选框内的物体进行分类”的方法。它的主要组成部分包括区域提取网络(RPN)、特征提取网络(Backbone)、RoI-Pooling以及分类和回归网络。两阶段目标检测算法在准确率上有着很大的优势,在实际应用中也得到了广泛的应用;另一类是一阶段检测算法,主要代表有YOLO(You Only Look Once)[9],FCOS(Fully Convolutional One-Stage Object Detection)[10],SSD(Single Shot Detection)[11],直接通过神经网络计算输出检测对象的预选框和标签。

王伟臣以Faster R-CNN目标检测算法作为研究基础,并对Faster R-CNN提出了两点改进。首先是在原始Faster R-CNN算法的主干网络中生成特征金字塔,充分利用不同层级的特征图来对小尺度目标进行有效的特征提取;另一方面,提出了一种改进的Anchor匹配规则,改进的匹配规则能够使所有的真实目标框在Anchor匹配过程中匹配到比原始匹配规则更多的Anchor[12]。算法有效地提升了检测的精度,但依旧有着检测速度不理想的问题。薛建伟等人提出了一种利用YOLOv3对空中飞行器进行识别追踪的方法[13],一阶段的检测算法在检测速度上有着巨大的优势,该方法提升了对目标的追踪精度和实时性,但在识别精度方面并无明显提升。王耀领等人提出了利用改进的条件生成网络生成高质量飞行器图像样本[14],用以提高模型的泛化能力以此来提升模型的识别精度,但难以应对现实中空中目标所处的复杂环境。兰旭婷等人提出了以Resnet50为基础特征提取的SSD300网络模型,加入注意力机制CBAM模块和特征融合FPN模块,采用Soft-NMS策略选取最终预测框,对遥感图像飞机目标更加有效地进行检测[15],该方法通过注意力机制提升了模型的性能,但对于模型的特征提取能力没有提升,对于飞机目标中相同目标不同角度识别困难的情况效果并不是很理想。

DATE-FCOS作为在FCOS基础上改进的anchor-free模型,不仅有着FCOS低计算量的同时保持高准确性的优点,并且在提升了模型性能的同时简化了模型的训练过程。对于空中目标检测的特点,本文将以DATE-FCOS(Dual Assignment for End-to-End Fully Convolutional One-Stage Object Detection)为基准检测框架。并针对空中目标检测存在的目标尺度变换以及目标检测精度不足的问题,在原有算法框架的基础上进行改进,并且进行消融实验论证改进的有效性,最后与目前常见检测算法进行实验对比。

1 模型介绍

1.1 FCOS模型

为了弥补anchor-base的模型在目标检测领域的几点缺陷:

1)检测结果对于anchor的尺寸、比例和数量等超参数是非常敏感的。不同的anchor设置之间存在着较大的 AP的差距;

2)anchor的尺寸和比例是固定的,因此不能很好地应对过大或者过小的目标。

3)为了获取更高的recall,anchor-based检测器通常采取密集采样的方式,大量的anchor box在于gt box计算IoU时也造成了巨大的算力消耗,需要较高的算力和时间成本。

因此提出了anchor-free的FCOS。整体框架,基本上与RetinaNet一致,由backbone + neck + head组成。

对于CNN backbone的第i层特征图上每个像素(x,y),我们可以把它映射到原输入图像。在映射后的该点直接回归目标框,而不是把这个点看成目标框的中心点生成不同尺寸的anchor,从而避免了生成大量的anchor。FCOS相当于把每个点看出训练的样本。对于每个(x,y),如果它落在gt的框里面,并且类别和gt的框的类别是一样的,那么就看成正样本(c*),反之则是负样本(c*=0)。并且使用点到gt框四边的距离作为训练的回归条件。

经典的anchor-free检测器YOLOv1[16],由于只检测离中心点近的目标,导致召回率比较低,而多级FPN[17]的加入则有效提高了回归率。

为了抑制这些低质量检测到的边界框,而不引入更多的超参数。FCOS添加了一个单层分支,与归回分支并行,以预测位置的“中心度”。中心度描述了从该位置到该位置负责的对象中心的归一化距离。

1.2 DATE-FCOS模型

一阶卷积目标检测模型,如FCOS和RetinaNet[18],因其简单性而被广泛熟知并采用。尽管他们取得了成功,但一对多分配(o2m)策略使他们依赖于非最大值抑制(NMS)来消除重复的预测。这样的过程使它们对NMS的每个参数都很敏感,并可能导致陷入局部最优解。这个问题促使研究人员消除NMS,以实现端到端的完全卷积目标检测。OneNet[19]认识到具有分类成本的一对一匹配(o2o)策略是端到端检测的关键。具体而言,通过考虑分类成本,仅为GT分配一个预测,可以防止其产生冗余预测。在DATE-FCOS中重新审视了这两种分配方法,发现将一对多分配带回端到端全卷积检测器有助于模型收敛,提出了双任务分配(DATE,dual assignment for end-to-end)的方法:在FCOS模型的基础之上进行了改进,在训练过程中构造了两个分支:一对多和一对一分配的分支,在回归子网和分类子网都使用两种分支来提供更多的监督信号来加快一对一指派分支的收敛[20],而在进行模型推理时只使用具有一对一分配策略的分支,这不会带来额外的检测开销,并且能显著提高检测性能。DATE-FCOS模型结构如图1所示。

图1 DATE-FCOS模型结构

2 模型改进工作

2.1 可变卷积

在计算机视觉领域,同一物体在不同场景,角度中未知的几何变换是检测和识别领域的一大挑战。而对于空中目标这样的情况十分常见,同一目标在不同的角度收集到的图像差异较大,尤其是像飞机这样形状复杂的目标,在不同的角度更容易出现形态的变化,从而提升检测的难度。而通常的处理方法有:

1)通过充足的数据增强,扩充足够多的样本去增强模型适应尺度变换的能力。

2)设置一些针对几何变换不变的特征或者算法,比如SIFT[21]和sliding Windows。

两种方法都有着各自的缺陷。第一种方法因为样本的局限性使得模型的泛化能力比较低,无法泛化到一般场景中;第二种方法则因为手工设计的不变特征和算法对于过于复杂的变换是很难甚至无法设计的[22]。所以Deformable Conv(可变形卷积),被提出以处理这个问题。

它是基于在模块中对空间采样的位置信息做进一步位移调整使采样网格能够自由变形。该位移可以通过模块附加的卷积层从前面得到的特征层中学习,并不需要额外的监督信号。它们为偏移学习只添加了少量的参数和计算,因此属于轻量级的模块[23]。可变卷积模块可以很便捷地在常见的卷积神经网络中替换原有的卷积核,并且能很容易进行标准反向传播端到端的训练。

传统卷积的输出为:

(1)

其中:x为输入,K为卷积核的大小,wk为权重系数。p为输入的位置,pk为卷积核中的点相对偏移。而可变卷积的输出为:

(2)

我们采用了最新的可形变卷积--DCN v2[24],它在前一代DCN v1的基础上加入了权重系数Δmk∈[0,1],以此来降低在改变感受野形状的同时引入的无关背景干扰,并且在模型骨干网络Resnet50的stage3,stage4和stage5的多个3×3卷积层使用。Δpk和Δmk的初始值分别为0和1。改进后的网络结构如图2所示。

图2 卷积块注意力模块

图3 改进模型网络结构

2.2 增加通道与空间注意力机制模块

卷积神经网络(CNNs)在视觉任务中表现出出色的性能主要是基于其丰富的表示能力。数据经过神经网络中每个不同的卷积核都会产生不同的通道信息,对于经典的神经网络,特征层会默认每个通道上所提取的信息所占的比重是相同的。而对于任何公开的飞机模型都可以被不同的公司使用,并添加更多的设计和进行不同的改装。例如,战斗机外挂弹仓,航空公司对客机进行涂装等等。对于不同的目标类型,不同的特征信息重要程度也是不同的。

因此为了进一步提高细胞神经网络对于目标的表示能力,提升模型对于飞行器目标物体的关注识别。我们在模型中加入了一种简单而高效的卷积块注意力模块(CBAM,convolutional block attention module)[25]——通道注意力模块(Channel Attention Module)和空间注意力模块(Spatial Attention Module),如图2所示。本文在进行FPN结构之后的特征检测层上分别加入双通道注意力模块CBAM,通道注意模块可以帮助模型更好地集中检测所需要的信息,而空间注意力模块可以使模型忽略与检测目标无关的边界信息减少干扰,从而提高网络的特征表达能力。

给定其中一个特征图F∈RC×H×W作为模块的输入,CBAM依次推断出一个1维的通道注意力图Mc∈RC×1×1和一个2维的空间注意力图Ms∈R1×H×W。整个注意力过程可以表述为:

F′=Mc(F)⊗F

(3)

F″=Ms(F′)⊗F′

(4)

其中:⊗为矩阵的逐元素乘法。

(5)

其中:σ为sigmoid函数,W1,W0为共享的权重。

(6)

2.3 加入损失

在原始的DATE-FCOS中损失由两个部分组成,分别是一对一分支损失和一对多分支损失。

一对一分支损失:

(7)

一对多分支损失:

(8)

(9)

LGIoU=1-GIoU

(10)

先求出两个框的最小凸集C(即包含A,B的最小框),再计算出IoU(交并比),再计算闭包区域中不属于两个框的区域占闭包区域的比重,最后用IoU减去这个比重得到GIoU。最后可以得到GIoU的损失函数。

GIoU解决了IoU在两个框不相交时损失函数不可导、无法学习的问题,并且反映出了两个框在相交面积相同时的相交情况,但依然存在不足。好的目标框回归损失应该考虑3个重要的几何因素:重叠面积,中心点距离,长宽比。由此提出了CIoU(Complete Intersection over Union)[27],其收敛的精度更高,并且考虑到了全部以上3个因素。

(11)

其中:d为两个框中心点的欧式距离,L为最小凸集C的对角线长度,αv是惩罚项,通过该项因子将宽高比因素考虑到回归损失中,α是权重函数,而v用来度量长宽比的相似性。

定义为:

(12)

(13)

CIoU损失函数可以直接最小化两个目标框的距离,因此比GIoU损失函数收敛快得多。并且对于包含两个框在水平方向或垂直方向上这种情况,CIoU损失可以使回归非常快,而GIoU损失几乎退化为IoU损失。

3 实验结果分析

3.1 实验使用数据集

实验所用数据集为FGVC-aircraft(Fine-Grained Visual Classification of Aircraft)[28],是经典的飞机模型视觉分类的公开基准数据集。

该数据集共有100个目标类别,包括涂装改装后的不同机型数据,共有70多个飞机家族总共100个不同型号的飞机。数据集包含了10 000张的不同飞机图片。数据集按照 1∶2的比例划分,即训练集6 666张,测试集3 334张。

3.2 模型训练

实验运行环境为,CPU为Corei7-12 700 K,GPU为NVIDIAGeForceRTX-3 060等。系统环境为Ubuntu16.04,CUDA11.7,python 3.10,pytorch 1.13.1,模型框架为基于pytorch框架的mmdetection目标检测框架[29]。

本实验在训练过程中采用AdamW(Adam with Decoupled Weight Decay)[30]优化器进行损失优化。初始学习率设为0.004,每500个iteration输出一次日志记录,为了加快训练学习过程的速度,设置学习动量为0.930,权重衰减系数为0.001,以避免数据过拟合的情况出现。Warmup设置为前5个epoch线性增长0.01当训练epoch到8次时,学习率衰减到10倍,当epoch=12次,学习率衰减到100倍。最初实验的batch-size设为16,经过多次调参修改,最终batch-size为8时模型的最终损失最小。

模型训练中的损失曲线如图4和图5所示。

图4 一对多分支损失

图5 一对一分支损失

可以看到在训练的损失虽然有波动,但一直在下降。在12 000步后,模型的两个分支的损失都开始趋于稳定。

在模型训练开始训练后,我们使用召回率(Recall,R)、mAP0.5和mAP0.5:0.95作为模型性能的评价指标。

其中,mAP0.5表示IoU阈值为0.5时所有目标类别的平均检测精度,mAP0.5:0.95表示以步长0.05,计算IoU从0.5到0.95总共10个IoU阈值下的平均检测精度,通常情况下IoU阈值越高对于算法的回归能力要求更高。P、R以及mAP的计算方法如下:

其中:TP指被模型预测为正的正样本,FP指被模型预测为正的负样本,FN指被模型预测为负的正样本,mAP为所有类别的平均精度,n为检测目标总类别数。

3.3 消融实验

为进一步论证上述提出的改进检测算法性能,本文对改进点逐一进行对比分析,在模块消融实验中,采用相同的测试集和学习率配置参数,实验结果如表1所示。

表1 模块消融实验结果

mAP表示mAP0.5:0.95精度的数据,mAP.5表示mAP0.5精度的数据,R表示模型的回归率。

可以看出可变卷积和CBAM两项改进均对准确率有着较大的提升,两项准确率数据都有着较高的提升;mAP0.5:0.95提升了11.3%和10.6%,R提升了4.9%和3.6%。

CIoU的加入虽然对于模型的准确率没有明显的提升,但加快了训练的回归速率,并且提升了模型接近10%回归率,增幅达到12.8%。

如图6所示,将改进后的模型与原模型在FGVC-aircraft数据集下的检测结果进行对比,左侧为原模型检测结果,右侧为改进后模型检测效果。可以看出改进后的模型对于目标在图像中的标注更加准确,且准确率更高,对空中飞行器的特征检测能力更强。

图6 改进前后检测对比图

改进后的模型0.5:0.95达到了77.8%,.5达到了79.8%,准确率提升至原模型的1.11倍。说明相关改进对于模型对于空中飞行器的检测性能确实具有有效提升。

3.4 对比实验

为综合分析改进后的DATE_FCOS模型算法的检测性能,本文选择与YOLO、FCOS、RetinaNet几种经典目标检测算法,采用相同的测试集进行实验对比以mAP、FPS作为评价指标,实验结果如表2所示。

表2 对比实验结果

根据表2数据分析可知,本文算法mAP为77.8%,比原始网络DATE-FCOS提高9.13个百分点,在检测速度上差距并不明显,这主要是因为一系列的优化改进结果;而作为经典一阶段目标检测算法YOLOv3和FCOS则检测能力远不如改进后的DATE-FCOS算法,此外mAP也比本文低了超过10个百分点,本文算法在检测速度上略低,但精度最高,这主要是加入多层可形变卷积层和CBAM模块,引入CIoU回归损失共同作用的结果。

图7为改进后模型的混淆矩阵。图中纵轴代表的是标签,横轴代表预测结果。由此可知对角线上的方格代表每个类别预测正确,每个方格内的值代表行为出现的频率,频率越高颜色越明亮。从混淆矩阵可以看出模型具有较好的准确性和泛化性。

4 结束语

为解决空中目标尺度变换和检测精度低的问题,本文在DATE-FCOS基准框架下,做出针对性改进。首先在Resnet主干网络中加入多个可形变卷积层,提取更多尺度特征信息,提升网络的特征提取能力,之后在多级FPN结构后加入CBAM模块提升模型的表示能力,最后修改模型的损失函数为CIoU,可提供更加准确的边界框回归方向,加快训练收敛速度,提升模型的回归率。

实验结果表明改进DATE-FCOS算法在使用相同的空中目标数据集的情况下模型的检测性能更加优秀,并且从实验得到的客观数据分析看来,改进后算法在mAP方面较原始算法提高显著,涨幅达到11%。同时通过对比,算法性能也优于其他常见检测算法,改进DATE-FCOS算法具有更好的泛化性和鲁棒性,因此能够满足空中环境中目标的检测。但是仍存在个别特殊类别,例如完全背光只有轮廓特征的检测目标,对其识别效果较差,后续将继续优化网络提高对少数特殊目标的检测精度。

猜你喜欢

损失卷积精度
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
从滤波器理解卷积
玉米抽穗前倒伏怎么办?怎么减少损失?
基于DSPIC33F微处理器的采集精度的提高
基于傅里叶域卷积表示的目标跟踪算法
GPS/GLONASS/BDS组合PPP精度分析
一般自由碰撞的最大动能损失
损失
改进的Goldschmidt双精度浮点除法器