耿 文,孙 涵
(1.南京航空航天大学 计算机科学与技术学院/人工智能学院,江苏 南京 211106;2.南京航空航天大学 模式分析与机器智能工信部重点实验室,江苏 南京 211106)
目前,无人机已经被广泛应用于商业和娱乐等领域,它在带来极大便利的同时,也在威胁着个人隐私,甚至会威胁到民航的安全,因此对于无人机的检测变得越来越重要。
目前的无人机检测技术都是建立在通用目标检测算法基础之上的。起初,通用目标检测算法采用滑动窗口的方式来预测目标的位置。随着深度学习的崛起,这种自动从数据中学习特征表示的方式被广泛应用到目标检测中。R-CNN[1]和Fast R-CNN[2]通过区域建议生成来提取感兴趣目标区域。之后,基于anchor的RPN[3]很快取代了区域建议生成这种方式。由此,anchor被广泛应用于各种目标检测应用中。目前主流的目标检测算法,比如Faster R-CNN[3]、SSD[4]和YOLOv2[5]都依赖于一组预先定义的anchor。
尽管这些基于anchor的目标检测算法取得了优异的成绩,但是仍然存在着一些问题:
(1)像文献[3,6]中的目标检测算法的性能与anchor的尺寸、长宽比和数量有着直接的关系。如果预先定义的anchor参数不合适,这会极大地影响目标检测算法的性能。
(2)anchor的尺度和长宽比是固定的,因此目标检测算法在处理形状变换比较大的目标时依旧会遇到困难,特别是对于小目标。预先定义的anchor还限制了目标检测算法的泛化能力[7]。
(3)基于anchor的目标检测算法一般会采用密集anchor的方式来获得比较高的召回率。比如特征金字塔网络(FPN[8])有超过18万个anchor,在训练过程中,大部分的anchor都被标记为负样本,这会加重正负样本的不平衡性。
(4)在训练时,需要计算所有anchor与真实框的IoU得分,过多的anchor会显著增加计算量和内存占用。
为了解决以上问题,最直接的办法就是抛弃这些预先定义的anchor,采用anchor free的方法来检测目标。一阶段目标检测算法YOLOv1[9]是最早的anchor free检测方法,它是在每个网格上直接预测两个候选边界框的参数。目前,越来越多的anchor free检测方法被提出。CornerNet[10]预测的是两组角点(左上角和右下角)。ExtremeNet[11]是通过预测极值点和中心点来检测目标的。FSAF[12]添加了两个卷积层,这两个卷积层分别负责anchor free方法的目标分类和边界框回归。FCOS[13]为了剔除远离目标中心的低质量检测框,提出了中心度分支。
起初,R-CNN[1]和Fast R-CNN[2]通过区域建议生成方法来提取感兴趣目标区域。接着,基于anchor的Region Proposal Network[3](RPN)很快取代了区域建议生成方法。由此,anchor被广泛应用于各种目标检测框架中。
目前基于anchor的检测器主要分为两类:两阶段和一阶段。两阶段的目标检测方法主要有Faster R-CNN[3]、SPP-Net[14]和HyperNet[15]。这些方法首先生成一系列的目标候选边界框,然后使用卷积神经网络去分类这些目标。一阶段的目标检测方法主要有SSD[4]和YOLOv2[5]。与两阶段目标检测方法相比较,一阶段目标检测方法直接将目标定位问题转化为目标回归问题。
为了改善anchor的能力,目前也有许多成功的尝试。MetaAnchor[7]可以从任意预先定义的anchor中动态生成anchor函数。Guided-Anchoring[16]联合预测目标中心位置以及不同位置上可能存在的目标尺度和长宽比,以此来动态地检测目标。
解决anchor产生的问题最直接的办法其实是抛弃这些预先定义的anchor,采用anchor free的方法。一阶段目标检测器YOLOv1[9]是最早的anchor free检测方法。后来,anchor free的目标检测算法逐渐分为两类:基于关键点的和基于密集采样的。基于关键点的方法主要有CornerNet[10]和ExtremeNet[11]。基于密集采样的方法主要有FSAF[12]和FCOS[13]。
最初对于小目标的检测大都使用传统方法。文献[17]利用目标的高频特性来检测小目标;文献[18]是基于卡尔曼滤波的小目标检测与追踪;文献[19]中使用Difference of Gaussian(DoG)算法检测小目标,然后使用卡尔曼滤波与粒子滤波结合的方式来追踪小目标。
随着深度学习的大热,基于深度学习的小目标检测算法得到了广泛应用。2017年,陈江昀基于卷积神经网络CNN和超像素算法提出了一种新型的面向微小目标的检测方法[20]。2018年,郭之先提出了一种改进的Faster R-CNN检测算法[21]用来检测交通场景中的小目标。
关于无人机检测的算法可以分为传统的方法和基于深度学习的方法。传统方法中,文献[22]利用卡尔曼模型来动态地检测和跟踪无人机。文献[23]从无人机目标的移动性、空间性、振动性这三个方面建立了无人机检测系统。
基于深度学习的方法中,文献[24]结合CNN和运动补偿来检测视频中的飞行目标。文献[25]提出了一种基于卷积神经网络(CNNs)的学习网络,实现了无人机目标的检测。文献[26]提出了两种基于SSD的无人机检测方法,一种方法利用ResNet网络进行特征提取来检测无人机,另一种方法是直接将SSD检测到的无人机目标图像送入到AlexNet网络中进行微调。文献[27]针对固定相机和运动相机,设计了两种不同的方法来检测视频中的小型无人机。
受FSAF和FCOS的启发,该文提出了一种anchor free的无人机检测方法。
首先,针对地对空拍摄的无人机目标大部分都是小尺度的情况,主干网络要选取适合提取小目标特征的网络,该文选取HRNet[28]作为主干网络。HRNet网络可以得到目标丰富的高分辨率特征表示,这对于网络的分类和回归是有益的。对应的,neck网络由FPN变为了HRNet[28]作者提出的HRFPN,使得金字塔特征图在下采样的过程中保留更多的细粒度信息。
接着,采用逐像素的方式来预测感兴趣区域,采用soft-NMS方法对边界框进行排名。最后,对于置信度损失和回归损失,分别采用Focal Loss损失和Smooth L1损失。Focal Loss损失关注困难样本和平衡正负样本数量。
如图1所示,该网络模型主要包括三个部分:主干网络、HRFPN和head。
图1 网络结构
对于主干网络,放弃了常用的ResNet和ResNeXt,采用高分辨率网络HRNet。HRNet由四个阶段的子网络组成,第一阶段子网络输出高分辨率特征图,然后每新增一个阶段,该阶段子网络的输出特征图分辨率会降低2倍。为了得到目标丰富的高分辨率表示特征,该网络将多分辨率子网并行连接,然后进行多次的多尺度融合,这样使得每一个高分辨率到低分辨率的表示特征都从其他并行表示中反复接收信息。因此,预测的特征图会更加具有细粒度的特征,在空间上的表示也更加精确。HRFPN代替传统的FPN,用来构建一个多层次的特征金字塔图。首先低分辨率的特征表示进行双线性上采样,然后将这些特征表示堆叠起来,最后通过多层次的平均池化进行下采样获得多层金字塔特征图。head模块包括分类和回归分支。该模块主要是在感兴趣区域采用逐像素预测的方法来进行目标分类和回归。
一般anchor free的目标检测方法需要对特征图从左到右从上到下进行扫描,然后每个像素点都预测一个分类结果和回归边界框的偏移量。对这些像素点划分正负样本的时候,一般的方法是如果像素点落在目标区域内,该像素点就是正样本,否则为负样本,但是考虑到目标真实边界框边缘的像素点都远离目标中心,如果将这些像素点作为正样本,对网络模型的训练会造成困难。尤其对于小目标来讲,它的边缘点与背景像素更为接近,这无疑增加了小目标检测的困难度。综上考虑,将目标真实边界框中的边缘附件的像素点作为负样本,将落在目标中心附件的像素点作为正样本,如图2所示。
图2 目标区域的正负样本划分
该文借鉴了Kong Tao、Sun Fuchun和Liu Huaping等人提出的“Object Fovea”思想,通过参数δ1来调节目标的宽和高,将真实边界框的区域向目标中心收缩一些,收缩后的边界框内的像素点作为正样本;通过参数δ2再次调节边界框的宽和高,将边界框向外扩展一些,扩展后的边界框边缘的像素点作为负样本,处于两个边界框之间内的像素点作为忽略样本,不参与网络分类和回归。忽略样本区域的存在增加了正负样本之间的判别度,从而提高了网络的性能。该文使用(x1,y1,x2,y2)表示目标的真实边界框,也就是目标左上角和右下角的位置。目标边界框的缩放公式如下所示:
(1)
由于该文采用了逐像素预测目标的方法,虽然能很好地提升网络召回率,但是在逐像素预测的过程中会产生许多低质量的预测边界框。虽然用目标的中心区域作为正样本区域已经丢弃了一些远离目标中心的低质量边界框,但是,正样本区域的边缘区域依旧还是会存在一些低质量的边界框。基于此,该文借鉴了FCOS的centerness概念,提出利用中心度来衰减远离目标中心的训练像素点的置信度。中心度越大,表明像素点越靠近目标中心,反之,像素点离目标中心越远。这样中心度就可以抑制检测到的低质量的边界框,并且中心度策略不会引入任何超参数。中心度计算公式如下:
(2)
其中,(tx1,ty1,tx2,ty2)是由式(3)计算出来的边界框回归的偏移量。网络训练时,中心度采用二元交叉熵损失(binary cross entropy)来约束中心度取值的范围。中心度取值的范围为(0,1)。中心度策略就是在每层预测特征图上添加一个网络分支,该网络分支与分类并行,这就相当于给网络模型添加了一个中心度损失。中心度损失会保证预测的边界框尽可能地靠近目标中心。在训练的过程中,约束中心度的值,使其接近于0。这样在测试网络模型的过程中,soft-NMS就可以更好地滤除远离目标中心的低质量边界框,从而提高网络模型检测性能。
对目标区域进行正负样本划分后,采用多尺度策略,利用HRFPN网络生成的多层金字塔特征图来检测不同尺度的目标。每个特征图要预测的目标都有一个正样本区域(感兴趣区域),对每个正样本区域进行逐像素预测。如图3所示,预测由两个分支网络负责,一个分支网络负责分类,另一个分支网络负责边界框回归。
图3 目标分类和回归示意
负责边界框回归的分支网络,将感兴趣区域内的像素坐标(x,y)映射到原始图上的坐标,然后计算映射后的坐标与其所属目标样本的真实边界框的偏移量。偏移量计算公式如下:
(3)
其中,2l是第l层金字塔特征图的stride值,s应该选择与目标边框面积最接近的尺度。通过调整s,可以控制每个特征图上覆盖目标的尺度范围。(tx1,ty1,tx2,ty2)的直观含义可以参考图4,这里(tx1,ty1,tx2,ty2)不再是简单地衡量与边界框四周的距离值,而是衡量与边界框四周的偏移程度,使用log函数来计算这种偏移程度。
图4 偏移量直观含义
训练损失包括置信损失和定位损失,损失定义如下:
(4)
置信损失Lcls采用的是Focal loss,定位损失Lloc采用的是Smooth L1损失。Npos是正样本的数量,c={0,1}是来匹配预测的框与类别p的真实边界框,如果c=1,预测框是正样本,否则为负样本。λ在实验中为1用来平衡定位损失Lloc的权重。l代表预测框的参数,g是标记框的参数。定位损失展开如下:
(5)
文中的anchor free的方法采用的是逐像素预测边界框,将像素的位置(x,y)作为训练样本,直接对每个位置的目标边界框进行归一化处理。采用计算像素位置(x,y)与真实框(x1,y1,x2,y2)(左上角与右上角位置)的偏移量(tx1,ty1,tx2,ty2)的方法。偏移量计算如式(3)。
无人机数据采集与标注是进行实验的基础。如图5所示,这些无人机图像的采集主要有三个方面,一个是自己采集的被监控摄像头捕捉到的图像,另外两个是从文献[29-30]收集到的图像。总共9名学生花了近两个月的时间来标记和重新标记这些无人机图像,从而创建了一个包括32 237张图像的无人机数据集。从图5中可以看出,无人机(矩形标记框包围的目标)的尺寸太小,人眼根本无法发现。因此,无人机检测是一项具有挑战性的任务。笔者设计的无人机数据集共有32 237张图像,其中26 237张图像作为训练集,1 000张图像作为验证集,5 000张图像作为测试集。
(a)自己采集的图像
(b)文献[29]中的图像
(c)文献[30]中的图像
使用无人机数据集的训练集来训练网络。在Py-
torch框架下,使用一块1080的NVIDIA GPU进行实验。实验中,使用训练好的FCOS网络模型作为预训练模型来训练该文提出的网络,然后在训练集上微调网络模型。为了定量和定性地分析比较网络,所有网络的基本参数设置如下:迭代次数为20 epochs,动量为0.9,权重衰减为0.000 1。网络训练的初始学习率为10-3。当网络迭代到5 epochs、10 epochs和15 epochs时,学习率变为10-4、10-5和10-6。
3.3.1 消融实验
文中方法是基于FCOS网络的,然后对基础网络FCOS采取了以下几种策略:(1)基础网络使用中心区域思想回归边界框;(2)主干网络由传统的ResNet和ResNeXt变为HRNet;(3)neck网络也由传统的FPN变为HRFPN;(4)测试网络模型时,由NMS策略变为soft-NMS策略。为了充分说明这几种策略对网络是有益的,该文进行了消融实验,实验结果如表1和表2所示。
可以发现采用soft-NMS策略后,AP提升了大约1.8个精度,AP50提升了大约0.7个精度,AP75提升了3.6个精度。对于AR的各个指标,除了ARmax=1没有提升,其他均提升了大约5个精度。这个结果充分证明了检测算法采用soft-NMS策略的有效性。
对于HRNet网络,分别与FPN和HRFPN网络组合使用,发现使用FPN后,网络性能反而下降了,而使用HRFPN后,网络性能指均有所提高。AP提升了大约2.5个精度,AP50提升了0.6个精度,AP75提升了0.6个精度,ARmax=1提升了4.8个精度,ARmax=10提升了1.1个精度,ARmax=100也提升了0.8个精度。这些充分证明了HRNet和HRFPN组合使用的有效性。
HRNet和HRFPN组合使用后,使用中心区域思想回归边界框,整体检测性能有所提升,其中5个检测指标有提升,只有AP50没有提升,略微下降了一些。AP和AR这6个指标中,AP提升了大约0.8个精度,AP50稍微下降了0.4个精度,AP75提升了6.2个精度,ARmax=1提升了4.8个精度,ARmax=10提升了1.1个精度,ARmax=100也提升了0.8个精度。这些充分证明,使用中心区域思想回归边界框是非常有效的。
表1 关于AP的消融实验
表2 关于AR的消融实验
表3 目标检测算法在无人机数据集上的AP结果
表4 目标检测算法在无人机数据集上的AR结果
3.3.2 实验对比
为了充分说明文中方法的优越性,对基于anchor的经典目标检测算法以及anchor free的目标检测算法也在无人机数据集上进行了实验,实验结果如表3和表4所示。
基于anchor的目标检测方法,对经典的两阶段目标检测算法Faster R-CNN、Cascade R-CNN和一阶段目标检测算法SSD进行了复现。对于anchor free的目标检测算法,对FSAF和FCOS进行了复现。测试时,这些目标检测算法均采用了soft-NMS策略。从表3和表4中可以发现,文中方法的表现是最优异的,仅仅是AP50的结果略低于基于ResNet-r101-FPN的FCOS算法。对于AP、AP75、ARmax=1、ARmax=10和ARmax=100,文中方法相比于对应的第二名的算法分别提高了1.6、1.1、1.4、1.6和2.1个精度,这些结果充分证明了文中方法的优越性。
提出了一种anchor free的无人机检测方法,该方法完全避免了与anchor相关的计算和超参数。针对无人机大部分都是小目标的情况,提出使用HRNet网络作为主干网络来获得具有丰富细粒度信息的特征。相应的,HRFPN代替传统的FPN来生成多层金字塔特征图。相比较于其他基于anchor和anchor free的目标检测方法,该方法对于无人机检测获得了更好的表现,具体表现为:相比较于基于anchor的目标检测器,该方法更加具有鲁棒性,可以自适应地预测目标边界框,相比较于其他的anchor free的目标检测器,该方法获得了更好的精确率和召回率。另外,该方法也可以用来检测其他小目标,而不仅仅是无人机。