2. 集美大学 计算机工程学院,福建 厦门 361005
2. Computer Engineering College, Jimei University, Xiamen 361005, China
遥感图像是人类获取空间信息的一种重要方式,在军事和民用领域都有着很大的潜在应用价值,如机场管理、空中交通管制等。飞机检测是遥感图像领域的一类经典问题,已经被研究了许多年。但是由于这些图像中的飞机具有旋转角度多样性和尺度多样性等特点,直到今天,该问题仍未被很好地解决。
近年来,深度学习的热潮使得深度卷积神经网络在图像分类、目标检测、目标识别等计算机视觉任务上取得了非常好的效果。主流的基于深度学习的检测方法(Faster R-CNN[1]、YOLO[2-4]、SSD[5]、RetinaNet[6]等) 已经在自然场景的图像数据集(MS COCO[7]、PASCAL VOC[8])上达到了相当惊人的性能表现。一种简单的策略是将这些检测算法直接迁移到遥感数据集上。尽管这种策略能够取得不错的效果,但是仍然存在2个缺点:1)主流检测网络是针对多类别检测任务设计的,这使得它们的主干网络必须足够复杂才能应对特征多样性,而针对单一类别检测任务,网络中的大量参数都是冗余的;2)遥感图像和自然场景图像之间的差异被忽略了。在自然场景下,大部分的消费级摄像头会受限于角度问题而只能拍摄到飞机的侧面图像,而在遥感图像中,飞机只存在尺度和旋转角度的差异,我们可以清楚地观察到飞机的结构特征,这使得对飞机的检测变得更加容易。
基于以上两点,提出了一种简单但有效的飞机检测方法:首先,通过第1阶段产生若干个候选窗口;然后,在第2阶段进行更精准的分类和边框回归。本文方法属于两阶段检测器,而使用的网络结构相比于Faster R-CNN更加简单,故命名为RCNN-Lite。相比于主流的检测方法,RCNN-Lite在保持较高检测精度的同时将速度提升了2~3倍。同时,RCNN-Lite的参数量仅有9.4万个,占用存储空间约为2.1 MB,可以轻易地部署到各种嵌入式设备中。
为验证RCNN-Lite的有效性和可靠性,构建了一个新的数据集——AMOYAirplane。数据集包括9 372个飞机实例。除此之外,还为1 583个飞机实例提供了5关键点标注。
1 相关工作目标检测任务可以看作由3个部分组成:候选区域提取、图像分类和边框回归。早期,滑动窗口是候选区域提取的主流策略,并结合HOG[9]、SIFT[10]等手工设计的特征进行特征提取,最后由SVM[11]等算法给出分类结果。这种策略虽然非常直观易懂,但缺点也十分明显:为了不漏检,滑动窗口需要尽可能地穷举所有位置,时间复杂度高。
为了解决滑动窗口的计算复杂问题,出现了以Selective Search[12]为代表的基于图像纹理、颜色、边缘等信息的候选区域提取方法。这种方法在保持高召回率的同时极大地减少了候选区域的数量。深度学习兴起之后,Girshick等[13]将Selective Search和卷积神经网络结合起来,提出了RCNN,大幅提升了目标检测的精度,开启了目标检测的深度学习时代。Fast RCNN[14]通过在最后一层特征图上提取区域特征的策略,极大地降低了算法的时间复杂度。此时,Selective Search方法成了算法流程中最耗时的部分。Faster RCNN使用了锚框的策略,提出了基于卷积神经网络的区域候选网络(region proposal networks,RPN),并使得检测算法成为了端到端的框架。
RCNN系列方法采用了“候选区域提取–每个区域单独分类”的思想,因此被称为“两阶段”检测算法。由于在每个阶段中都会有分类和回归,因此两阶段算法在检测精度上非常优秀,但在检测速度上无法达到实时的要求。Redmon等[2]将检测问题视作一个回归任务,提出了YOLO,该方法抛弃了候选区域提取,直接得出检测结果,又被称为“一阶段”算法。一阶段检测算法在速度上非常快,但是检测精度不足。Lin等[6]认为问题在于一阶段算法在训练时的正负样本比例极度不均衡,简单的负样本在总样本中的比例非常大,提出了Focal Loss并应用到RetinaNet中改善训练,实现了速度与精度的平衡。
遥感图像目标检测与识别一直是遥感图像领域的重点任务。进入21世纪以来,随着大量高空间分辨率、短重访周期的成像卫星的出现,遥感图像的数据量大大增加,极大地推动了该领域的发展。遥感图像与自然场景图像相比,有着图像分辨率高、覆盖区域广、目标多为人造刚体等特征。因此,早期在对遥感图像进行目标检测时,通常需要针对遥感图像的特点引入相应的先验信息。以飞机检测为例,飞机在遥感图像中属于小目标,不易检测,但机场和跑道是遥感图像里比较明显的区域。An等[15]采用了两阶段检测的思想,通过先检测机场区域来减少候选区域的数量,再对飞机进行更精细的检测。而Li等[16]则针对飞机是具有轴对称结构的刚体的特点,在使用视觉显著性计算生成候选区域的基础上使用对称性检测来确定飞机的位置。深度学习出现之后,由于卷积神经网络具有强大的提取特征能力,将主流的深度学习目标检测算法迁移到遥感图像检测任务中并进行适当的微调成为了主要策略。如Hsieh等[17]在RPN的基础上提出了具有空间布局结构的LPN,有效地减少了候选区域生成的数量并提高了生成质量;Liu等[18]利用多角度的先验框提出了DRBox方法,在检测目标的同时还估计了目标的旋转角度;Yang等[19]提出了一种将全卷积网络(fully convolutional network,FCN)和马尔可夫随机场结合起来的飞机检测框架。
2 数据集尽管对飞机检测已经研究了很多年,但是目前大多数的遥感图像数据集都是针对通用目标的,如NWPU-VHR10[20-22]包含了10类目标,而DOTA[23]包含了15类目标,这些数据集中仅有一小部分可以用于飞机检测任务。以DOTA为例,该数据集中包含了2 806张图像,但只有197张图像包含飞机实例,其余图像在飞机检测任务中不起作用。
我们建立了一个名为AMOYAirplane的新的飞机遥感图像数据集。数据集包括了中国96个主要机场的场景,共包含9 372个飞机实例,每个实例都是用矩形框进行标注。每个标注由左上、右下两个顶点的坐标值构成。数据集既包含了低分辨率图像,又包括了高分辨率图像,共1 639张图片,其中1 248张用于训练,391张用于测试。除此之外,还为其中1 583个飞机实例提供了五关键点标注,这可以用于对飞机的进一步研究,如旋转角度估计任务。数据集的详细对比内容见表1。图1给出了一些AMOYAirplane数据集的示例。
![]() |
表 1 数据集对比 Tab.1 Comparison between datasets |
![]() |
Download:
|
图 1 AMOYAirplane数据集示例 Fig. 1 Samples in AMOYAirplane dataset |
本文提出了一种级联的飞机检测方法。该方法由两阶段组成,每个阶段都是一个非常简单的卷积神经网络,如图2所示。第1阶段通过产生若干个候选区域来粗略地定位,然后用非极大值抑制(NMS)来去除有较高重叠度的窗口。剩下的窗口会在第2阶段中进行更精细的分类和边框回归,然后再次进行非极大值抑制并输出最终结果。和MTCNN[24]类似,本文把这2个网络分别叫作P-Net和R-Net。2个网络的具体结构如图3所示。
![]() |
Download:
|
图 2 RCNN-Lite模型结构 Fig. 2 Model structure of RCNN-Lite |
![]() |
Download:
|
图 3 网络结构 Fig. 3 Network structure |
P-Net 该网络负责对目标进行粗略定位。为了使网络能够应对不同尺寸的输入图像,P-Net采用了全卷积神经网络的设计,并且由于只包含4个卷积层,网络的参数量也非常小。
给定一张图片,推理时首先需要对图像建立图像金字塔,金字塔的每一层都会作为P-Net的输入并得到相应的特征图。由图3可知,一个12像素×12像素的区域经过3层卷积后尺寸变为1×1。因此,一张输入为H×W的图片经过3层卷积后得到大小为
最后,对每一层输出的候选框取并集然后再次进行NMS来抑制重复的检测。由于P-Net所生成的锚框数量非常大(一张800像素
R-Net 上一个阶段输出的所有候选区域将会作为R-Net的输入,同样经过分类和边框回归2个分支输出结果,得到置信度和偏移量,筛除置信度较低的边框并根据偏移量调整边框,最终通过NMS输出检测结果。
由于R-Net含有全连接层,其输入图像大小必须是固定的,因此必须在输入前将窗口全部调整至24像素
在每个阶段的训练中都要考虑分类和边框回归2个任务。
分类 对于飞机检测,该任务是一个二分类问题,因此本文使用交叉熵损失函数,对每个样本
${L_i}^{\det } = - ({y_i}^{\det }\log {p_i} + (1 - {y_i}^{\det })(1 - \log {p_i}))$ |
式中:
边框回归 在大多数情况下,直接使用目标边框的坐标值进行训练会使得网络难以收敛。R-CNN中使用了边框回归的方法,通过学习预测框和真实框之间的偏移量减少定位误差,同时不容易受到目标尺度的影响。本文方法也采用了这种策略。给定正样本
${{{t}}_i}^{\rm{box}} = {({\rm{d}}{x_i},{\rm{d}}{y_i},{\rm{d}}{w_i},{\rm{d}}{h_i})^{\rm{T}}}$ |
${\rm{d}}{x_i} = ({x_i} - {\hat x_i})/{\hat w_i}$ |
${\rm{d}}{y_i} = ({y_i} - {\hat y_i})/{\hat h_i}$ |
${\rm{d}}{w_i} = \ln ({w_i}/{\hat w_i})$ |
${\rm{d}}{h_i} = ({h_i} - {\hat h_i})/{\hat h_i}$ |
式中:
${L_i}^{\rm{box}} = {\left\| {{{{t}}_i}^{\rm{box}} - {{\hat {{t}}}_i}^{\rm{box}}} \right\|^2}$ |
多任务训练 每个阶段的总损失函数为
${\rm{Loss}} = \frac{1}{N}\sum\limits_{i = 1}^N {\sum\limits_j {{\lambda _i}{L_i}^j} } $ |
式中:
在线困难样本挖掘(online hard example mining, OHEM) Zhang等[24]在MTCNN中提出一种OHEM方法:将同一批样本按损失值的大小进行排序,只将损失最大的70%样本进行回传计算梯度。这样做的原因是样本的损失越小,对参数更新的贡献就越小。而考虑到损失最大的样本有可能是异常点的情况(可能是数据集的标签错误、边框坐标错误或者其他情况),因此对该方法进行了修改:不仅抛弃损失最小的30%样本,还抛弃了损失最高的2%的样本,仅用剩下的样本损失进行反向传播。
4 实验结果及分析 4.1 实现细节在训练过程中,P-Net的输入样本来自于在训练集图像上的随机裁剪,所有样本会按照与真实边框的IoU被分成3类:IoU大于0.65的是正样本,低于0.3的是负样本,在0.4~0.65的则被视为部分样本,其余的则不参与训练。3种样本的比例控制在1∶1∶3左右,在计算损失函数时,分类任务只使用正样本和负样本,边框回归任务则只使用正样本和部分样本。P-Net训练完成后,在训练集上进行检测,得到的所有候选区域按照同样的方法划分成正、负和部分样本。在使用P-Net生成R-Net训练样本时,为了保证样本数量足够,取消了P-Net的第2次NMS。
在所有实验中,全部采用随机梯度下降法进行参数更新,P-Net和R-Net均迭代7万次,采用了热身策略更新学习率:在最初的1 000次迭代中,学习率线性增加到0.005,随后才开始正式训练。在迭代至4万和6万次时,学习率衰减十分之一。
4.2 实验结果基于深度学习的目标检测方法可大致分为两类:两阶段检测方法和一阶段检测方法。本文分别选择了两种方法的代表:Faster R-CNN[1]和RetinaNet[6]。Faster R-CNN[1]是目前非常流行的两阶段检测算法,最初该算法使用VGG16作为主干网络,目前主流的主干网络通常采用ResNet+FPN结构。而RetinaNet[6]则是一阶段算法中速度和精度都比较均衡的检测器。在所有的实验中,Faster R-CNN和RetinaNet中所有的超参数均使用默认参数。
4.2.1 测试集结果我们用准确率–召回率曲线和ROC曲线来验证本文的方法,如图4所示,详细比较见表2。可以看到,在mAP上,本文方法超过了一阶段检测算法RetinaNet和以VGG16为主干网络的Faster R-CNN算法,仅比以ResNet-50+FPN为主干网络的Faster R-CNN略低2%左右。但从模型占用存储空间来看,Faster R-CNN和RetinaNet都占用了数百兆的空间,这使得它们很难直接部署到一些嵌入式设备中,而RCNN-Lite仅需2.1 MB,占用空间极小。
![]() |
Download:
|
图 4 测试集上的准确率-召回率曲线和ROC曲线 Fig. 4 PR curve and ROC curve on test set |
![]() |
表 2 检测精度对比 Tab.2 Accuracy comparison between different methods |
本文同时测试了模型检测速度。作为对照,Faster R-CNN和RetinaNet均使用ResNet-50+FPN作为主干网络。测试集图片主要包括了3种不同的分辨率:256×256、1 000×900和4 800×2 800。表3给出了模型在不同分辨率输入下的检测速度。为公平起见,所有模型运行都在一张Titan X (Pascal) 显卡上。可以看出,本文的方法在各种分辨率的输入上都是检测速度最快的,并且领先其他2种方法2~3倍。
![]() |
表 3 检测速度对比 Tab.3 Speed comparison between different methods |
RPN是Faster R-CNN中使用的候选区域生成的方法。表4以召回率为指标,比较了P-Net和RPN提取候选区域的能力。可以看出,在生成候选区域数量较少时,P-Net和RPN的效果基本一致。而生成候选区域数量较多时,P-Net领先了1.33%。可以认为这是由于P-Net使用了更多的锚框(约32.2万个),且可以产生更多种尺度不同的候选区域,因此能更有效地定位到实例所在的区域。
![]() |
表 4 P-Net和RPN的对比 Tab.4 Comparison between P-Net and RPN |
为了验证OHEM方法的有效性,比较了不使用OHEM、使用MTCNN中的OHEM方法以及使用本文中的OHEM这3种情况下的模型检测效果,结果如表5所示。可以看出,OHEM可以使网络在训练期间更关注不容易被正确分类的样本,而本文提出的改进可以让模型在训练过程中忽略某些异常点,进一步提高性能。
![]() |
表 5 不同OHEM的效果 Tab.5 Comparison between different OHEM methods |
在后处理阶段,通常需要采用非极大值抑制的方法去除冗余窗口,表6给出了采用常规的NMS和Soft-NMS对检测结果的影响。其中,高斯加权使用的方差σ=0.5。可以看出,采用Soft-NMS相比常规NMS可以获得一定的提升,而线性加权和高斯加权两种不同方式带来的差异非常小,可以忽略。
![]() |
表 6 不同NMS的效果 Tab.6 Comparison between different NMS methods |
表7比较了在分类和回归两类任务中,不同损失函数的影响。在分类任务中,使用交叉熵损失和Focal Loss的效果基本相同,这是由于Focal Loss主要是为了解决训练期间正负样本数量极度不均衡而提出的,而在P-Net和R-Net的训练样本生成过程中,我们已经将正负样本的比例控制在1∶3左右,因此Focal Loss没有带来性能提升。而在边框回归任务中,使用L2损失得到了最佳性能。
![]() |
表 7 损失函数的影响 Tab.7 Comparison between different loss function |
飞机检测任务是目前遥感图像领域的一个重要研究方向。针对目前的检测算法依赖复杂主干网络的问题,本文提出了一种级联两个简单神经网络来解决飞机检测任务的模型,在检测精度上接近了目前主流方法的水平,而本方法的模型参数量远少于主流方法,在检测速度上也取得了一定的领先。此外,还制作了一个新的遥感图像数据集,该数据集针对飞机检测任务标注了超过9 000个飞机实例,能够较好地验证检测算法的有效性。
[1] |
REN S, HE K, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks [C]//Proceedings of the 28th International Conference on Neural Information Processing System. Montreal, Canada, 2015: 91−99.
(![]() |
[2] |
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//Proceedi ngs of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA, 2015: 779−788.
(![]() |
[3] |
REDMON J, FARHADI A. YOLO9000: better, faster, strong-er[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, USA. 2017: 6517−6525.
(![]() |
[4] |
REDMON J, FARHADI A. YOLOv3: an incremental im-provement[J]. arXiv preprint arXiv: 1804.02767, 2018.
(![]() |
[5] |
LIU W, ANGUELOY D, ERHAN D, et al. SSD: single shot multibox detector[C]//Proceedings of the 14th European Conference on Computer Vision. Amsterdam, The Netherlands, 2015: 21−37.
(![]() |
[6] |
LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[C]//Proceedings of the IEEE International Conference on Computer Vision. Venice, Italy, 2017: 2999−3007.
(![]() |
[7] |
LIN T Y, MAIRE M, MAIRE M, et al. Microsoft COCO: common objects in context[C]// Proceedings of the 14th European Conference on Computer Vision. Zurich, Switzerland, 2014: 740−755.
(![]() |
[8] |
EVERINGHAM M, GOOL L J V. The PASCAL visual object classes challenge[J]. International journal of computer vision, 2010, 88(2): 303-338. DOI:10.1007/s11263-009-0275-4 (![]() |
[9] |
DALAL N, TRIGGS B. Histograms of oriented gradients for human detection[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. San Diego, USA, 2005: 886−893.
(![]() |
[10] |
LOWE D G. Distinctive image features from scale-invariant keypoints[J]. International journal of computer vision, 2004, 60(2): 91-110. DOI:10.1023/B:VISI.0000029664.99615.94 (![]() |
[11] |
CORTES C, VAPNIK V. Support-vector networks[J]. Machine learning, 1995, 20(3): 273-297. (![]() |
[12] |
UIJLINGS J, SANDE K, GEVERS T, et al. Selective search for object recognition[J]. International journal of computer vision, 2013, 104(2): 154-171. DOI:10.1007/s11263-013-0620-5 (![]() |
[13] |
GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Columbus, USA, 2014: 580−587.
(![]() |
[14] |
GIRSHICK R. Fast R-CNN[C]//Proceedings of the IEEE International Conference on Computer Vision. Santiago, Chile, 2015: 1440–1448.
(![]() |
[15] |
AN Z, SHI Z, TENG X, et al. An automated airplane detection system for large panchromatic image with high spatial resolution[J]. Optik, 2014, 125(12): 2768-2775. DOI:10.1016/j.ijleo.2013.12.003 (![]() |
[16] |
LI W, XIANG S, WANG H, et al. Robust airplane detection in satellite images[C]//Proceedings of International Conference on Image Processing. Brussels, Belgium, 2011: 2821−2824.
(![]() |
[17] |
HSIEH M R, LIN Y L, HSU W H. Drone-based object counting by spatially regularized regional proposal[C]// Proceedings of the IEEE International Conference on Computer Vision. Venice, Italy, 2017: 4165−4173.
(![]() |
[18] |
LIU L, PAN Z, LEI B. Learning a rotation invariant detector with rotatable bounding box[J]. arXiv preprint arXiv: 1711.09405, 2017.
(![]() |
[19] |
YANG Y, ZHUANG Y, BI F, et al. M-FCN: effective fully convolutional network-based airplane detection Frame-work[J]. IEEE geoscience and remoting sensing letters, 2017, 14(8): 1293-1297. DOI:10.1109/LGRS.2017.2708722 (![]() |
[20] |
CHENG G, HAN J, ZHOU P, et al. Multi-class geospatial object detection and geographic image classification based on collection of part detectors[J]. ISPRS journal of photogrammetry and remote sensing, 2014, 98(1): 119-132. (![]() |
[21] |
CHENG G, HAN J. A Survey on object detection in optical remote sensing images[J]. ISPRS Journal of photogrammetry and remote sensing, 2016, 117: 11-28. DOI:10.1016/j.isprsjprs.2016.03.014 (![]() |
[22] |
CHENG G, ZHOU P, HAN J. Learning rotation-invariant convolutional neural networks for object detection in VHR optical remote sensing images[J]. IEEE transactions on geoscience and remote sensing, 2016, 54(12): 7405-7415. DOI:10.1109/TGRS.2016.2601622 (![]() |
[23] |
XIA G S, BAI X, DING J, et al. DOTA: A large-scale dataset for object detection in aerial images[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City, USA, 2018: 3974−3983.
(![]() |
[24] |
ZHANG K, ZHANG Z, LI Z, et al. Joint face detection and alignment using multitask cascaded convolutional net-works[J]. IEEE signal processing letters, 2016, 23(10): 1499-1503. DOI:10.1109/LSP.2016.2603342 (![]() |
[25] |
HE K, GKIOXARI G, DOLLÁR P, et al. Mask R-CNN[C] //Proceedings of the IEEE International Conference on Computer Vision. Venice, Italy, 2017: 2980−2988.
(![]() |