周院,杨庆庆,马强,薛博维,孔祥楠
中科星图空间技术有限公司,西安 710000
目标检测是计算机视觉中一项基本而又具有挑战的任务,其主要目的是准确定位图像中全部前景物体并识别它们的类别。经典的目标检测方法可分为双阶段方法(Girshick,2015;Ren等,2017;Azimi等,2019)和单阶段方法(Redmon等,2016;Liu等,2016; Lin等,2017;丁鹏,2019;史文旭 等,2020)。
现有的双阶段和单阶段目标检测算法大都借助锚框(anchor box)定位物体位置。例如,Faster R-CNN(faster region-based convolutional network)方法(Ren等,2017)需要在区域建议网络中使用锚框产生候选区域;经典的单阶段检测器YOLOv3(you only look once)(Redmon和Farhadi,2018)则在多个特征图尺度上通过3组锚框检索真实物体(赵永强 等,2020)。此外,比较经典的方法,如SSD(single shot multibox detector)(Liu,2016)、RetinaNet(Lin等,2017)等,也都是基于锚框的目标检测。
锚框的引入有助于提升目标检测精度,但也带来了如下问题:1)锚框的设置引入了额外的超参数,在不同数据集通常需要针对性地调整以取得最高的识别效果;2)锚框的匹配机制使得极端尺寸目标被匹配到的频率相对于大小适中的目标被匹配到的频率更低;3)大量的锚框多数为负样本,使得正负样本出现严重的不平衡问题。
无锚框检测算法是最近较新的研究方向。一般可分为两大类,一类是基于关键点的算法,典型代表为CornerNet(Law和Deng,2018),一类是基于密集预测的算法,主要代表有DenseBox(Huang等,2015)和FCOS(fully convolutional one-stage object detection)(Tian等,2020)。FCOS目标检测算法在特征图的每个像素上直接预测目标框和类别,通过预测目标框与像素中心点的上、下、左、右距离描述目标框边界。为检测相近位置不同大小的目标,FCOS使用特征金字塔结构(feature pyramid network)(Lin等,2016),在不同尺度的特征图上检测不同尺寸的目标,并加入中心度(centerness)制约因子大大减少了网络输出中的低质量目标框,使得其检测精度超越了单阶段基于锚框的目标检测算法(高鑫 等,2018)。
上述算法均是基于自然影像研发的目标检测方法,自然场景中物体几乎总是以正向朝上的方式呈现,且一幅图像中的物体数量非常有限。遥感影像与自然影像相比,有非常明显的特点:1)存在大量密集排列的小尺寸目标;2)目标物体没有统一的朝向,可能在各个方向上旋转;3)图像中前景物体数量庞大。针对遥感影像特点,有学者针对性地设计了目标检测流程(付琨 等,2019),或从不同数据源成像特点出发设计算法,例如王思雨等人(2017)、张跃等人(2018)研究了合成孔径雷达(synthetic aperture radar,SAR)影像下的目标检测方法。本文则以目标框标注方式为切入点构造适合于遥感目标检测的算法。
传统的目标框标注使用与坐标轴平行的矩形框,即正框表示物体位置。这种表示方法无法满足遥感影像目标识别需求,例如对于密集排列的近岸舰船目标,如果使用正框标注,则目标实例之间将存在大量重叠区域,其检测框内部将包含大量不属于该实例的前景物体(侯彪 等,2020;王彦情 等,2011)。
针对正框检测的不足,许多研究尝试在遥感影像上通过与目标实例朝向一致的倾斜目标框(简称斜框)检测提升算法表现(冯卫东 等,2013)。倾斜目标是指像素坐标下,矩形目标框的边不与水平或垂直轴平行,而是呈一定夹角的倾斜现象。斜框能够更紧致地贴合目标边界,基于斜框标注的检测框能够大大减少框内冗余信息。
近年来已经提出了多种基于斜框的目标检测算法,如Liu等人(2017)提出了带有区域生成网络的Faster R-CNN,Yang等人(2019)提出了专门针对密集小目标的斜框目标检测,Pan等人(2020) 提出了动态精细化网络(dynamic refinement network,DRN)(Pan等,2020),能根据目标的形状、方向和位置调整感受野,有效缓解目标和感受野之间的失调。Xu等人(2021)提出的滑动顶点方法在正框的边界上寻找斜框顶点,无锚框的遥感影像检测算法有张筱晗等人(2020)在CornerNet的基础上提出的通过中心点进行回归的方法。
综上,本文试图结合FCOS目标检测和滑动端点技术实现一种快速稳健的遥感目标识别方法,一方面解决滑动端点方法中出现的任意四边形和训练耗时长的问题;另一方面,摒弃角度参数预测,推理出最终的斜框结果,算法不仅很好地保持了无锚框检测的速度优势,还通过改进中心点预测提升了算法的检测精度。
网络整体结构由3部分组成,如图1所示,首先利用带有残差模块(deep residual networks, ResNet) (He等,2016)的骨干网络对输入影像进行特征提取,然后将提取到的特征输入第2部分的特征金字塔模块,通过该模块对不同尺度的特征信息进行融合,得到鲁棒的融合特征,最后将该特征送入检测分支进行目标类别和目标边框位置预测。其中,检测的第1个分支预测目标类别和中心度,第2个分支预测回归目标边框4个方向的距离,在回归四边距离的前提下,加入斜框部分,分别预测目标的邻边比率和正框与斜框的面积比率。
图1 模型整体框架Fig.1 The framework of overall model
特征提取网络使用ResNet系列,如ResNet50,整个特征提取网络分为4个卷积模块,每个卷积模块结构如图2所示,将若干个卷积模块堆叠起来,提取到不同粒度的特征信息,此外,残差网络巧妙的跳跃连接方式,能够有效避免由网络深度增加导致的网络梯度爆炸和梯度消失问题(唐玮 等,2019)。
图2 卷积模块示意图Fig.2 The structure of convolution block
ResNet50网络中共有4类卷积模块,每一类的卷积结构相同,特征图通道数不同,图2表示ResNet50网络的一个卷积模块的卷积结构图,每个方框代表一种操作。
目标检测任务中,常常由于不同尺度的目标难以检测,导致网络检测精度不理想,残差网络中,每类卷积模块之后,特征图都是不同尺度的,低层次的卷积模块提取到的特征包含更多的图像局部信息和低层次特征,如边缘、轮廓等,高层次的卷积模块提取到的特征通常是更高层的全局、抽象特征(李湘眷 等,2016)。在目标检测任务中,低层和高层特征都至关重要,因此在特征提取之后,取不同层级的残差提取特征图进行特征融合,整合不同层级的特征信息。在原始FCOS的基础上,改进了特征融合的方式,不仅仅是将多个尺度的特征图进行通道维度拼接,还增加了1×1卷积核的卷积操作和批量归一化操作,有效提升算法速度和精度,具体的多尺度特征融合结构如图3所示。
图3 多尺度特征融合结构Fig.3 The fusion structure of multi-scale feature((a) multi-scale feature extraction; (b) feature fusion)
图3(a)中,左边一列是残差网络,以ResNet50为例,网络共包含4类卷积模块(block),取后3类卷积模块输出分别进行1×1卷积,得到C3,C4,C5,接着将C5进行1×1卷积得到P5,P4由经过1×1卷积的C4和上采样之后的P5融合得到;同理得到P3。P6由P5经过步长为2的卷积得到,同理得到P7。图3(b)是以P3为例,展示了多尺度特征融合的方式,图中C3′代表经过1×1卷积的C3,P4′代表经过上采样的P4,先把C3′和P4′按照通道维度进行拼接,然后使用1×1卷积进行降维,再归一化得到P3。考虑到相邻层级之间的特征差异更平滑,因此只对相邻两层特征进行融合。融合拼接之后的特征图经过1×1卷积核的操作可以针对通道维度进行跨通道信息交互,降低特征通道维度,有效减少计算量,批量归一化操作可以加快网络收敛,控制梯度爆炸并防止梯度消失,避免网络过拟合。这种金字塔特征融合模块一方面可以保证特征空间分辨率不下降,另一方面也可以有效扩大感受野,提升网络鲁棒性。
回归检测分支的输出主要有两个分支:第1分支计算目标类别和中心度(ct),第2分支回归目标框参数(l,t,r,b,α1,α2,k)。改进的部分主要体现在第2分支上,(l,t,r,b)是前景点至目标框的左边、上边、右边和下边之间的距离,(α1,α2)表示两条邻边的斜框在正框边上的比率。k表示斜框面积与正框面积的比率,具体目标回归检测框优化分支如图4所示。
图4 回归检测分支结构Fig.4 The branch structure of regression detection
在第1分支上,通过卷积回归将特征图映射成c个通道的分类结果,c代表目标类别数,即映射成每类目标的分类结果。特征上的位置可以通过换算映射到输入图像位置,从而建立特征图上点的位置和输入图像上点的位置之间的关系,为计算特征图上每个点的分类提供基础。第1分支的另一个输出是中心度ct,用于衡量特征图上每个点与目标中心点之间的距离,目的是减少距离目标中心较远的预测框,约束预测框尽可能靠近目标中心点。计算为
(1)
改进的第2分支上,回归斜框的参数为(l,t,r,b,α1,α2,k),通过推理正框四边距离、斜框邻边比率和面积比率预测任意方向的倾斜目标框位置。
假设对于给定的目标,其倾斜目标框为O(图5中的蓝框),对应的正框为B(图5中的黑框),设vi,i∈{1,2,3,4}分别表示两种目标框在上边、右边、下边和左边的交点,其正框分别用4点坐标v′i,i∈{1,2,3,4}表示。正框通常也用(x,y,w,h)表示,其中(x,y)表示中心点坐标,w和h分别是宽度和高度(陈华杰 等,2021),额外变量(α1,α2)定义为
(2)
k=|O|/|B|
(3)
式中,|·|表示基数。接近水平目标的倾斜度系数k较大,趋近于1,目标框窄长(长宽比例大)且倾斜目标的倾斜度系数k趋近于0。因此,可以根据倾斜度因子k选择正框或斜框作为最终结果,有效避免了极端情况的检测误差。最后通过回归(l,t,r,b,α1,α2,k)来求出目标的倾斜框位置。
通过回归两个边的长度比,有效表征了正框每侧的相对滑动偏移量,与滑动点网络提出的斜框表示中的角度预测误差相比,这种表示对偏移预测误差的敏感性更小。通过限制正框四边的偏移量,可以方便地进行偏移量学习,同时也避免了直接回归定向目标的4个顶点时顺序标记点的混淆。为了进一步消除近水平目标的小角度倾斜,还引入了一种基于倾斜目标框与正框面积比的倾斜因子,该倾斜因子指导网络选择近水平目标的正框检测或倾斜目标的斜框检测。
图5 倾斜目标框参数说明图Fig.5 The parameters of oblique frame detection
训练过程中,网络损失函数由两个分支损失函数组成,第1个分支损失包含类别损失和中心度损失;第2个分支损失主要是四边距离损失和斜框预测损失。
训练中第1分支的类别和中心度的损失函数为
(4)
第2分支的四边距离损失函数为
(5)
与FCOS不同的是第2分支的斜框预测损失函数,为了计算预测斜框两邻边上的比率(α1,α2)和倾斜度系数k的损失,计算为
(6)
Lreg=λ1Lα+λ2Lk
(7)
(8)
(9)
因此,训练第2分支的总损失为
L′2=L2+L3
(10)
综上,训练过程中网络的总损失函数为
L=L1+L2+L3
(11)
本文提出的改进FCOS的倾斜目标检测方法在网络训练过程中,将像素点作为训练样本,并且尽可能多地选择正样本来训练探测器,通过特征提取网络得到特征图之后,进入分类和回归模块进行网络参数回归,最终得到预测的目标框位置(伍颖佳,2015)。最后,通过损失函数约束来优化网络参数,直至训练结束。
在模型的测试推理中,使用了逐像素回归策略,借助中心度来抑制低质量检测到的边界框,且不引入任何超参数,该中心度的主要作用是找到目标的中心点,离目标中心越近,中心度越大,反之越小,网络通过前向传播之后,将第1分支中推测得到的中心度的值与分类的输出值相乘,这样可以有效地过滤掉一批误检框,提高识别准确度。
网络推理得到的(l,t,r,b,α1,α2,k)参数,可以用来计算预测目标包围框的4点坐标。具体推理过程如下。
设特征图为Fi∈RH×W×C,s为特征图至该层的总步长,对于特征图Fi上的每个位置(x,y),可以通过下式将其映射回输入图像上的邻近位置(x0,y0)
(12)
根据推理得到的四边距离值(l,t,r,b)和式(12)得到的中心坐标联合计算,可以得到目标正框的左上角和右下角的坐标(xmin,ymin),(xmax,ymax)为
xmin=x0-l,ymin=y0-t
xmax=x0+r,ymax=y0+b
(13)
根据网络推理得到的(α1,α2)和式(13)得到的正框坐标联合计算,便得到斜框的4点坐标(p1,p2,p3,p4)为
w=xmax-xmin
h=ymax-ymin
s1=α1×w,s2=α2×h
p1=(x1,y1),x1=xmin+s1,y1=ymax
p2=(x2,y2),x2=xmax,y2=ymax-s2
p3=(x3,y4),x3=xmax-s1,y3=ymin
p4=(x4,y4),x4=xmin,y4=ymin+s2
(14)
对于推理得到的参数k,主要用于正框和斜框的选择,不是所有情况都选择推理出来的斜框。当参数k大于设定的阈值,则目标使用正框检测,如果小于阈值则直接用式(13)得到的正框作为推理结果,本文该阈值取0.8。
实验环境如下:服务器选择64位Linux的操作系统,搭载4块TeslaP100显卡(16 GB),CUDA版本选择10.0,cuDNN版本选择7.0,网络搭建基于Pytorch框架进行python语言编程。在实验中,超参设置为:训练中的迭代次数为50 000,初始学习率为0.01,batchsize为12。学习率调整采用warmup方式,在训练过程中,网络分别在38 000和46 000轮时变为原来学习率的10%,本文实验使用多尺度训练和预测。
本文采用平均准确率(mean average precision, mAP)作为算法评价指标。其中检测结果像素数与真值目标像素数交并比大于0.5,则认为正确,否则认为预测错误。采用AP作为评价指标即要求在获取较高的精确率时,也要获取较高的召回率,弥补了单一准确率或召回率评价方法的不足。mAP为所有类别的AP均值,具体计算为
(15)
式中,p(r)代表准确率,r代表召回率,q代表某个类别。mAP能很好地平衡准确率和召回率。
为了对比不同骨干网络的特征提取效果,本文分别采用ResNet50和ResNet101网络进行特征提取,并对比算法精度。在特征提取过程中,输入图像大小为1 024×1 024像素,测试结果如表1。
表1 不同特征提取网络检测结果对比Table 1 The detection results of different feature extraction networks
从表1中可以看出,在DOTA数据集上,本文方法在骨干网络ResNet101上比ResNet50的特征提取能力强,表明在本文实验数据集上,ResNet101残差网络的特征表征能力比ResNet50网络更好,但网络训练时长也随着网络层数加深而变长。
为了进一步验证本文斜框目标检测方法的效果,本文与其他经典斜框目标检测方法在相同数据集DOTA上进行效果对比,其中包括以SSD、YOLOv3为代表的单阶段目标检测(Redmon和Farhadi,2018),以R-DFPN(rotation dense feature pyramid network)(Yang等,2018)、RRPN(rotation region proposal network)(Ma等,2018)、SCRDet(Yang等,2019)等为代表的双阶段目标检测方法,还有最新的DRN无锚框目标检测方法。实验结果如表2所示。为评估算法速度,采用FPS(frames per second)作为效率指标。
表2 不同模型目标检测结果对比Table 2 The detection results of different models
从表2中可以明显看出,本文方法在DOTA数据集上表现突出,并且无锚框的斜框目标检测方法比基于锚框的目标检测方法有着明显优势。本文方法在基于FCOS正框检测的基础上,通过由2条邻边的滑动距离计算出另外两边的滑动距离,减少了回归参数,本文提出的改进FCOS斜框目标检测方法取得了最佳精度。表2中改进后的斜框FCOS的mAP达到73.22%,比原始正框FCOS在相同数据集和相同的特征提取网络情况下精度提升了33.02%,FPS比YOLOv3提升了38.82%,改进的FCOS算法FPS均高于其他单阶段方法和双阶段方法。结果说明改进后的斜框FCOS在保持了FCOS无锚框算法的速度特性的前提下,比原始正框FCOS精度提升明显。
M, s1, s2 |= φ ∧ ψ ,当且仅当, 存在s3且M, s1, s3 |= φ ,M, s3, s2 |= ψ
不同模型斜框目标检测算法的详细精度对比如表3所示。可以看到,每个类别的AP值不一定都是本文方法表现最优,但本文算法的mAP高于其他单阶段和双阶段的斜框目标检测算法,比R3Det在相同骨干网络情况下精度提升1.53%,在加载Resnet50骨干网络时,最优效果达到74.84%。
表3 DOTA数据集15类斜框目标检测精度对比Table 3 The Comparison of 15 types of oblique object detection accuracy on DOTA dataset /%
本文方法利用DOTA数据集进行训练,采用1/2样本做训练,1/6样本做验证,剩下1/3为测试集。图6为部分测试结果。
图6中,蓝色方框代表误识别目标,红色方框为漏提目标。其中不同角度、不同尺度、不同分辨率和不同场景的目标均能很好地识别,且识别框能紧致地贴合目标,与真实目标方向一致,尤其是在整齐密集排布的目标场景下,能达到较高的识别精度。但结果中,仍然有少量目标错提和漏提,尤其是在目标周边阴影区域容易产生误识别,对特殊目标容易发生漏提问题。
图6 改进后FCOS目标检测结果Fig.6 The results of improved FCOS on target detection
为比较原始正框FCOS与改进后的斜框FCOS算法在DOTA数据集上的表现,结果如图7所示。
图7 原始FCOS与改进后FCOS结果对比Fig.7 The comparison of the results of the original FCOS and the improved FCOS((a)original FCOS;(b)improved FCOS)
对密集排列的窄长型目标来说,原始FCOS检测结果冗余信息较多,且存在大量重叠目标框。本文方法表现良好,对密集排列的目标识别框排布较规则,能紧致地贴合真实目标,有效满足遥感影像对目标检测的要求,尤其对舰船、车辆等目标识别效果较好,重叠信息较少。
本文提出的一阶全卷积遥感影像倾斜目标检测方法,在原始FCOS算法的基础上,结合金字塔多尺度特征融合思想和目标边框滑动点思想对遥感影像进行目标斜框检测,使网络能够对任意朝向的物体进行建模,有效消除了正框标注下目标干扰和背景冗余问题,对遥感影像中密集排列目标具有良好的适应性。在当前最大的遥感斜框检测公开数据集上,对比了当前先进的单阶段和双阶段检测器,本文方法mAP达到74.84%,获得了较高的评价指标,证明了本文方法在斜框检测上的优越性。
本文的贡献主要在于:1)建立了高精度无锚框单阶段斜框目标检测器,在效率与精度两方面均具有良好的表现,以更简洁的方式描述了斜框目标;2)避免了有锚框检测算法中,需要针对特定数据进行锚框参数配置所可能导致的检测器性能下降;3)在当前公开的最大的斜框目标检测数据集DOTA上进行了广泛评测,验证了所提算法的性能。本文提出的斜框目标检测方法还存在较大的改进空间,将在如下几个方面继续开展研究:1)多尺度特征融合和特征筛选;2)改进样本选择策略,取得更好的正负样本平衡;3)优化斜框交并比损失函数,提升检测精度和稳定性。