CenterNet-based遥感图像目标检测方法研究
2023-04-20黄佳琦范军芳李蓓蓓
黄佳琦,范军芳,李蓓蓓
(1 北京信息科技大学高动态导航技术北京市重点实验室,北京 100192;2 北京信息科技大学自动化学院,北京 100192;3 32381部队,北京 100072)
0 引言
近年来,随着遥感图像目标检测技术[1]的突破性进展,由飞机或卫星拍摄的遥感影像,具有丰富的目标信息,遥感影像的目标识别技术广泛应用于国防、国民经济、社会生活等领域。在军事战争中,飞行器上图像导引头对重要目标的检测,将遥感数据信息转化为目标情报,一方面能快速锁定攻击目标位置并进行精准打击[2];另一方面有利于战场形势剖析,从而进一步制定精准而及时的军事行动。因此遥感图像中目标的实时检测对社会稳定和国家安全具有重要的意义。
目标检测[3]作为计算机视觉的基本问题,主要任务是识别图片或视频中人们感兴趣的目标,获取目标的大小,并进行分类和定位,遥感目标检测是目标检测的重要应用之一。传统的遥感图像目标检测算法[4]是利用手工提取特征的方法,如模板匹配等,这类方法的特征鲁棒性差,只适用于背景单调、抽象特征明显的目标,实际应用环境下无法用于小而密集、尺度多变且成像质量较差的遥感图像目标的检测。然而,随着高性能图形处理器(graphics processing unit,GPU)的广泛应用,基于深度学习的目标检测模型成为遥感图像领域的研究热点。深度学习目标检测方法[5-7]可以提取同一目标的丰富特征,利用大量的数据,通过深度学习完成模型训练,应用训练后的优秀模型进行目标检测,使得算法泛化能力更强,更容易应用于实际场景。当前基于深度学习的遥感图像目标检测算法可以分为两大类:一类是双阶段(two-stage)检测算法,即基于候选区域(region proposal)的R-CNN系算法,包括R-CNN[8]、Fast R-CNN[9]、Faster R-CNN[10]和Mask R-CNN[11]等,这类算法需要先使用启发式方法(selective search)或候选区域生成网络(region proposal network)生成候选框,再通过卷积神经网络(CNN)在候选区域上做分类与回归;另一类是单阶段(one-stage)检测算法,以YOLO[12-17]和SSD[18]等为代表,是一种端到端的算法,不需要预先生成候选框,直接将目标框的定位问题转化为回归问题,进行特征提取、分类和定位回归并得到大小、类别和位置信息。综合比较这两类方法,不难看出,单阶段检测算法速度更快,更适用于在嵌入式平台上搭载,而双阶段较单阶段检测算法能更多的获取目标特征,检测精度更高。
上述算法模型都需要提前设定锚框的参数,如大小、数量等,要求预设锚框尽可能覆盖或匹配目标的尺寸,生成一系列锚框作为待检测的候选区域,再对这些候选框进行分类和定位回归。锚框的参数要根据具体任务进行调节,由于锚框是提前设定好的,参数量较大,不能依据训练过程自适应的调节参数,导致模型复杂度较高,计算量较大,一定程度上限制了该类算法的迁移和检测速度与精度的提升。一般将在图像中覆盖区域较小,像素值在几十像素甚至几像素之间,分辨率较低的物体界定为小目标[19],在目标较多的遥感图像中,锚框与小目标物体大小很难匹配,漏检、误检的目标数量增多,算法无法很好的检测出遥感图像中小目标物体。而无锚框(anchor-free)的算法不需要提前预设锚框,通过预测关键点或中心域和真实标签之间的置信度进行分类回归,对小而密集和成像质量较差的遥感图像目标检测的适用性更强。2018年Law等[20]提出了CornerNet,将网络对目标边界框的检测转换为左上角和右下角一对关键点的检测,但由于网络过度关注边缘和两个角点,缺乏内部关键信息的学习,导致误检率较高,因此CornerNet在遥感图像目标检测上精度提升并不明显。深度卷积单步法(FCOS)[21]则直接预测从目标框的边缘到目标中心的距离来进行目标检测,ExtremeNet[22]对目标框的4个顶点分别进行关键点预测,将预测结果进行几何枚举组合,再结合中心点预测以达到高质量的检测结果;CenterNet[23]则将目标检测变成了一个标准的关键点估计问题,不需要预设锚框,直接利用目标物体中心点的特征信息进行目标分类和边界回归。目标的中心点是通过提取热力图(heatmap)中的峰值来确定,然后高斯扩散得到目标的尺寸信息。CenterNet结构简洁,参数量相对较小,在coco数据集中得到了较好的检测精度和实时性的平衡,适用于在计算能力相对有限、无法处理复杂算法却有高实时性需求的嵌入式设备上搭载。而用于检测尺寸较小,成像质量较低的遥感图像目标时,往往面临精度不足的问题。因此需要改进CenterNet算法模型,克服遥感图像小目标检测的困难。
文中将CenterNet作为基础网络,在主干输出处引入通道注意力模块(ECA-NET)[24],削弱非关注点表达的同时,增强关注点的信息通道;阶段性调整学习率,采用学习率调整策略,加快网络收敛速度。此模型在保证检测速度的同时,提高了模型检测精度,满足了检测精度与实时性的平衡,在遥感图像目标检测领域具有实际的应用价值。
1 改进的CenterNet网络设计
1.1 CenterNet算法原理
CenterNet是一种典型的无锚框目标检测算法,采用关键点表示对象的边界框中心,通过热力图的峰值找到中心点,根据中心位置的图像特征回归得到对象大小、坐标方向、姿态信息等属性。主干网络有ResNet[25]、Hourglass[26]和DLA[27]3种框架,分别适用于不同的应用环境。首先将图像送入1个全卷积网络生成1个高分辨率特征图,然后将3个卷积运算应用于特征图,分别进行热力图预测,中心点预测和长宽预测,判断每个热点是否存在目标及其类别,得到目标中心距离热点偏移的情况,最后获得目标的尺寸预测结果,将目标检测问题转化成关键点预测问题,不仅算法思路简单,并且具有较高的精度和速度。
CenterNet目标检测器基于正确的关键点预测网络,准确估计物体中心,回归目标的大小,算法中每个目标只检测其中心点,不需要非极大抑制(NMS)来删除同一目标的重复检测框。算法快速、精确、简洁,应用于计算能力相对有限的嵌入式平台更加方便,满足平台算法简单且有高实时性的需求。但应用于遥感图像中,CenterNet算法仍存在缺点。在检测过程中,随着分辨率的降低,小目标物体的中心点信息会出现丢失或重合的现象,检测结果只能检测出其中的几个目标,造成目标漏检和检测精度低的情况。由此,需要改进CenterNet算法模型,提升遥感目标检测的精度,从而改善遥感图像目标检测的效果。
1.2 注意力机制ECA-NET
卷积神经网络中的注意力模块模仿了人类在视觉上感知事物时,需要观察和注意特定的部分,在众多的输入信息中集中于当前最为重要的信息,降低对其他信息的关注度,过滤掉无关信息,使检测网络能够更有效地提取特征,从而增强网络的检测性能。同时,注意力模块即插即用,可以加入到任何网络中。SE-Net(squeeze-and-excitation network)是一种通道注意力结构[28]。模块由一个总结每个特征图全部信息的挤压操作和一个缩放每个特征重要性的激发操作组成,这就是所谓的挤压和激发块。与参数的增加相比,模型的性能提高显著,而模型的复杂性和计算负担不会明显增加。ECA-Net(efficient channel attention)[24]是在SE-Net基础上提出的一种注意力机制,在保持SE-Net模块优势性能的前提下,避免SE-Net因压缩降维对学习通道之间的依赖关系产生的不利影响,有效捕捉跨通道交互,获得明显的性能增益。
ECA-Net探索了另一种获取局部跨通道交互的方法,既少量增加参数和计算量,又保证了模型的有效性,在嵌入式平台上应用更好。如图1所示,在不降低维度的情况下进行逐通道全局平均池化之后,ECA-Net通过考虑每个通道及其k个近邻来捕获本地跨通道交互。首先,执行大小为k的快速一维卷积来生成通道权重,其中k是本地跨通道交互的覆盖范围。为了避免交叉验证手动调整k,内核大小可以通过通道维度的非线性映射自适应地确定。假设k=5时表示临近的5个通道进行不降低维度的局部交叉通道交互,大大降低运行时间复杂度。实验结果表明,ECA-Net是模型复杂度低且有效的轻量级插件,能提高各种深度CNN架构的性能,包括广泛使用的ResNet网络,在目标检测任务中表现出良好的泛化能力。
图1 ECA-Net网络结构Fig.1 ECA-Net Network Structure
1.3 损失函数
改进的检测网络使用与原CenterNet算法相同的损失函数,主要由热力图损失Lk、中心点偏置损失Loff和宽高损失Lsize三部分组成。
热力图损失Lk[23]是具有focal-loss[29]的惩罚机制的函数,定义为:
(1)
(2)
(3)
将上述各类损失结合后得到总的损失Ldet[23],其表达式为:
Ldet=Lk+λoffLoff+λsizeLsize
(4)
式中,权重λoff、λsize分别取1、0.1。
2 CenterNet-based网络
由于实际的遥感图像是大视场高空拍摄的,导致背景相对复杂,目标相对尺寸较小、所占像素也较低,直接将其应用于遥感图像检测算法上效果不理想,如果要更好地适应遥感图像目标的检测,必须对CenterNet网络结构进行改进,提升检测精度。
如图2所示,针对遥感目标的检测兼顾准确率和速度的实际情况,以CenterNet算法为基础改进其网络模型。CenterNet主干网络有ResNet[25]、Hourglass[26]和DLA[27]三种框架,其中ResNet-50网络参数量小,实时性好,较易移植。通过实验与另外两种主干网络对比,ResNet-50在检测速度和准确性方面得到了较好的平衡,作为文中的主要研究对象。在主干网络ResNet-50特征层输出处引入ECA-Net,增强有用特征通道,抑制无用信息通道,提升模型的特征提取能力,并极大程度降低引入注意力机制后模型的复杂度,提高小目标的表征能力,从而提高遥感目标检测准确率。
图2 CenterNet-based模型Fig.2 CenterNet-based model
3 实验及结果分析
3.1 环境配置和数据集选取
根据实际应用场景需求使用自制遥感数据集,利用在公开的地图数据库中截取的各类飞机目标,如图3所示,根据不同场景将其分为50组,每组中依据不同高度和角度截取,形成1 000张图片,图像中亮度和对比度多样,且存在遮挡、阴影、畸变等干扰。集合均为1 440×1 000彩色图像,图像格式均为.jpg,采用9∶1的比例分配训练集、验证集。为了验证算法在各种应用场景下的检测性能,还随机抽取了由武汉大学制作的遥感影像公开数据集RSOD数据集[30]中的100张飞机目标图像如图5~图7所示加入到测试集中。
图3 遥感数据集Fig.3 Remote sensing datasets
实验基于PyTorch深度学习框架,在Anaconda上搭建Python=3.7,PyTorch 1.7.1的虚拟环境,在集成开发环境PyCharm中运行。部分训练参数配置如表1所示。
表1 部分训练参数Table 1 Training parameters configuration
在训练神经网络时,学习率(learning rate)深刻影响着神经网络的性能,是一个重要的超参数。学习率太小,收敛速度将严重下降,训练明显变慢;学习率太大,参数值将会在最优解上下振荡。优化器能够加速卷积神经网络的训练速度,合理选取优化器,在合适的学习率下,能够解决随着神经网络复杂程度的加深以及计算量的增加,导致在模型训练上的耗时增加问题。使用Adam优化器进行迭代训练,将输入图像统一缩放到分辨率为512×512。采用MultiStepLR结合StepLR的学习率调整策略,初始学习率设置为1.25×10-2,设置步长为1,等间隔衰减为原来的90%,在训练50个epoch后,将学习率降为1.25×10-3,再训练90个epoch,等间隔衰减为原来的90%,加快网络的收敛速度。
3.2 结果分析
实验评价指标由准确率RP、召回率RR、平均精度均值PmAP和每秒处理图像数NFPS来衡量。RP和RR计算公式为:
(5)
式中:PT表示目标为真实目标,检测结果为真实目标;PF表示目标不是真实目标,检测结果是真实目标;PFN表示目标为真实目标,检测结果为不是真实目标。精度均值PA为以准确率RP和召回率RR所围成的曲线面积值。PmAP为学习的所有类别精度均值的平均值。
NFPS定义为算法每秒处理的图片数。NFPS越大,每秒处理的图像数量越多,代表算法运行速度越快。其计算公式为:
(6)
式中:N为被测样本数;T为测试全部样本所需的时间。
在数据集上经过140轮训练,损失值基本达到稳定状态。训练过程中,模型损失和迭代次数之间的趋势变化对比如图4所示。
图4 Loss变化曲线图Fig.4 Loss variation curve
训练过程中损失函数随着训练轮次迭代次数的增加逐渐降低趋于0。可以看到在大约50个迭代次数之后,损失函数降低到1以下,验证了算法模型收敛的快速性。
采用PmAP、NFPS评价指标进行检测精度和检测速度的定量分析,与基础网络的对比实验结果如表2所示。
表2 模型结果对比Table 2 Comparison of model
从表2看出,改进后的模型在检测精度方面效果相对良好,相较ResNet-50基础网络提升13.26%,相较DLA-34提升5.54%。虽然与Hourglass-104主干网络模型相比还有差距,但Hourglass-104网络深度层为104,参数量很大,其速度远远不及其他模型。改进的模型由于加入了注意力模块,模型推理的计算量相应有所增加,但在明显提升精度的同时,仍然能够满足实时性需求,在检测精度和检测速度上取得了较好平衡。
为了进一步验证模型的有效性,基于遥感数据集,在相同的配置和训练、测试样本的条件下,对比双阶段算法Faster R-CNN,单阶段算法YOLOv3以及无预设锚框算法原CenterNet四种主流算法,得到对比结果如表3所示。
表3 不同算法对比结果Table 3 Comparison of method results
文中的CenterNet算法与原CenterNet算法相比,检测速度略有提升,PmAP提高了13.3%,减少了网络的漏检率,一定程度上提高了小目标的识别率。改进后算法精度较两阶段算法Faster R-CNN相应值低10.34%,而利用两阶段算法Faster R-CNN平均检测时间为0.129 s,改进后的CenterNet算法平均检测时间只需0.019 s,速度提升了一个数量级;与单阶段YOLOv3相比,检测精度提高了1.52%,检测速度提高了19.78 帧/s。
改进后算法检测精度和检测速度都取得了较好的效果,证明了改进后网络的有效性。算法对比效果如图5、图6和图7所示,从左到右、从上到下依次是Faster R-CNN、YOLOv3、原CenterNet和改进后的CenterNet算法在3种不同场景下的检测可视化结果。
图5 场景一的各算法检测效果可视化Fig.5 Visualization of the detection effect of each algorithm for scenario 1
图6 场景二中各算法检测效果可视化Fig.6 Visualization of the detection effect of each algorithm for scenario 2
图7 场景三各算法检测效果可视化Fig.7 Visualization of the detection effect of each algorithm for scenario 3
从场景一的可视化结果中可以看出,在目标尺寸对比明显且存在遮挡和重叠的场景下,极易发生漏检。Faster R-CNN算法虽然精度较高,但依然存在漏检与误检,漏检率为7.14%;YOLOv3漏检4个目标,原CenterNet漏检5个目标,并且都为小目标;而改进后的CenterNet算法检测的小目标(飞机)并无漏检情况,检测优势明显。
场景二的结果中,检测目标与背景相似度高,极易发生误检和漏检,Faster R-CNN算法则存在误检的情况;YOLOv3算法也有不同程度的漏检;改进前后的CenterNet均无漏检和误检的情况,但相比原算法,改进后的算法识别精度更高,效果更好。
场景三是小目标(飞机)停靠较为密集的情况,Faster R-CNN和YOLOv3算法均出现漏检;原CenterNet算法对重叠目标检测存在丢失的情况。相比较,改进的CenterNet算法检测效果明显得到改善,进一步显示了改进后的网络目标检测性能的提升,这得益于引入注意力机制对网络的优化。在网络中加入注意力机制后,对目标有更精确的定位,特别是使一些小目标保留住了重要特征,没有在中间被舍弃掉,大大降低了模型的漏检率。
4 结论
将改进的CenterNet算法应用到遥感图像目标检测中。为解决基于深度学习的遥感目标检测方法识别遥感图像中小且密集、成像不清晰的目标如飞机等精度和实时性不能兼顾的问题,提出了CenterNet-based目标检测方法。该方法以ResNet-50进行基础特征提取,使用注意力机制,削弱非关注点表达,同时增强关注点的信息通道,提高检测精度,阶段性调整学习策略,加快网络收敛速度。此方法较好平衡了遥感小目标检测的精度和速度。但还需进一步提高精度,确保在实际应用环境中的精准识别,因此改进网络结构在不降低检测速度的基础上提升检测精度是接下来的研究重点。