常鹏飞,段云龙
(中国电子科技集团公司第二十七研究所,河南 郑州 450047)
随着卫星遥感技术及计算机视觉技术的发展和应用,遥感图像中的目标检测成为研究的热点[1-2]。利用遥感图像高效快速地检测出飞机等典型的高价值目标在模式识别、侦察探测等领域具有很高的应用价值,同时也是遥感智能处理领域的重点研究问题。
多年来,国内外许多学者对遥感图像中飞机检测技术进行了广泛而深入的研究,取得了一定的成果。Guang Shu利用颜色、纹理和亮度等低层特征构建显著图实现飞机粗定位,训练AdaBoost级联分类器,提取harr特征实现目标检测[3];李新德等人提出了利用DSmT进行多特征融合后用PNN进行分类的飞机目标识别方法[4];蔡红苹等人提出了一种基于目标轮廓与灰度特征的圆周频率滤波法来实现飞机目标的检测[5]。虽然上述传统算法在一定程度上解决了遥感图像中飞机目标检测的问题,但是这些传统算法依然存在特征难以设计选取、处理过程繁杂、识别精度低以及泛化能力差等不足。
近年来,随着深度学习方法的异军突起,基于深度学习的方法在推荐系统、智慧城市和计算机视觉等领域取得了令人瞩目的成绩,成为学术界和工业界研究的热点[6-8]。同时,深度学习方法在推动自然场景图像目标检测技术的发展过程中起到了重要作用。与传统方法相比,深度学习方法是一种端到端模型结构,可以学习到更丰富的语义信息和高层次的图像特征表征,免去了以往繁琐的数据预处理、特征提取和参数调优等过程,同时能较好地免除复杂背景的干扰,提高检测精度,具有较强的鲁棒性和泛化能力。与R-CNN[9],SPP[10],Fast R-CNN[11]等其他基于目标候选区的目标检测深度卷积神经网络模型相比,Faster R-CNN模型[12]在目标检测精度和检测速度上具有明显优势。2015年,Faster R-CNN模型在COCO目标检测比赛中取得第一名的优异成绩,并且在PASCAL VOC 2007和PASCAL VOC 2012上也有十分突出的表现。Faster R-CNN是目前最准确、快速的目标检测模型之一。
虽然深度卷积神经网络模型Faster R-CNN在自然场景图像目标检测任务中取得了优异的表现,但是由于缺乏公开且成熟的专门针对遥感图像飞机目标检测的数据集,导致将Faster R-CNN模型用于遥感图像飞机目标检测的应用研究相对较少。鉴于此,本文构建了全新的遥感图像飞机目标检测数据集Airplane-2018,并基于该数据集进行FasterR-CNN模型的迁移学习训练。实验结果表明,该方案可以较好地适应遥感图像飞机目标检测的应用研究。
R-CNN和Fast R-CNN等基于目标候选区的目标检测模型中,目标候选区提取步骤独立于整个深度网络单独存在,且难以融入GPU运算,成为限制检测速度的瓶颈。针对以上问题,Shaoqing Ren等人提出了Faster R-CNN模型,该算法引入区域生成网络(Region Proposal Networks,RPN)来进行目标候选区的提取。
Faster R-CNN模型主要由2个模块组成:RPN候选区生成模块和Fast R-CNN检测模块,如图1所示。具体又可以细分为4个单元:卷积层单元、区域生成网络单元、RoI池化单元以及分类和回归单元。
① 卷积层单元:包括一系列卷积和池化操作,用于提取图像的特征,卷积层单元的权值参数为RPN候选区生成模块和Fast R-CNN检测模块共享;
② 区域生成网络单元:生成目标候选区,用于后续的目标检测与识别;
③ RoI池化单元:综合卷积层特征和目标候选区的信息,将目标候选区在输入图像中的坐标映射到最后一层特征中,对特征图中对应区域进行池化操作,得到固定大小的池化结果;
④ 分类和回归单元:用于判断目标候选区的类别并预测其准确位置。
图1 Faster R-CNN模型框架
Faster R-CNN模型将目标候选区的提取、深度特征提取、目标检测和识别过程都融入到一个端到端的深度网络模型中。所有的过程都可以在GPU中运行,从而在不降低检测精度的情况下,大大提高了检测速度。
在遥感图像飞机目标检测的应用研究方面,目前缺乏公开且成熟的专门针对遥感图像飞机目标检测的数据集。因此,本文构建了遥感图像飞机目标检测数据集Airplane-2018。Airplane-2018数据集从Google Earth上人工截取不同国家机场的卫星图像,如图2所示。每幅影像大小在66×51个像素到 3 072×2 480个像素之间,分辨率在0.3~2 m之间。数据集构建过程中,为了增加数据集的多样性和适用性,尽量采集了来自不同传感器,且在不同时间、不同季节、不同光照强度和不同成像视角的图像。
图2 机场图像截取
深度学习训练过程中,为了防止过拟合现象,需要进行数据扩充[13]操作。常见的几种数据扩充方式有随机裁剪、旋转变化及色彩抖动等,过程如图3所示。经过数据扩充,获得数据集共计3 410幅图像,15 056个飞机样本。Airplane-2018数据集部分图像样例如图4所示。由图4中可以看出,数据集Airplane-2018数据集中图像场景较为复杂,飞机目标在整幅图像中所占比例小,且图中含有大量背景目标,如跑道、机库和登机楼等。
图3 数据扩充
图4 Airplane-2018数据集部分图像样例
本文使用开源软件LabelImg对图像中的飞机目标人工进行标注,使用矩形框框选飞机目标,生成的标注信息自动保存在XML文件中,如图5所示。
图5 飞机目标区域信息标签提取
标注信息中最重要的是
深度卷积神经网络之所以能在自然场景图像目标检测任务中具有较高的准确性和可靠性,得益于庞大的图像数据集作为支撑,如 ImageNet[14],COCO[15],VOC[16]图像数据集等。训练一个检测正确率高、泛化能力强的深度卷积神经网络模型,需要数据量充足的图像数据。虽然本文构建了遥感影像飞机目标检测数据集Airplane-2018,但是数据集的规模仍然较小。如果直接在Airplane-2018数据集上进行模型的训练学习,会因网络参数过多,导致训练不充分,产生过拟合现象,最终训练出来模型的泛化能力很差。因此,本文采用微调预训练模型的迁移学习[17-18]思路对模型进行训练学习。
本文选择使用在COCO数据集上预训练Faster R-CNN+Inception_ResNet_v2模型实现端到端的迁移学习,训练过程在TensorFlow[19]深度学习开源框架下进行,具体步骤如下:
① 将Airplane-2018数据集按照VOC 2012数据集文件夹结构进行划分调整,调整后的文件夹结构如图6所示;
图6 文件夹结构
② 利用TensorFlow数据集转化工具将数据集转换成tfrecord格式;
③ 下载在COCO预训练的Faster R-CNN +Inception_ResNet_v2模型,并对训练配置文件pipeline.config进行相应修改;
④ 训练模型:python train.py-train_dir airplane/train_dir/--pipeline_config_path airplane/pipeline.config。
网络模型训练的超参数设置如表1所示。
表1 网络超参数设置
参数项取值基础学习速率0.003动量0.9IoU阈值0.7最大候选区生成个数300
学习率初始设置为0.003,当模型收敛到一个平稳值时,将学习率改为原来的1/10,即0.000 3,如此重复3次。网络训练的误差收敛曲线如图7所示。
图7 loss收敛曲线
误差随着迭代的次数增加而逐渐减小,逐渐趋于收敛。
本文实验在Centos7.4操作系统下,以配置了型号为NVIDIA GeForce GTX 970的GPU显卡的机器为硬件平台,选择TensorFlow深度学习框架实现深度卷积神经网络。
在测试数据集上的实验效果如图8所示。由图8(a)可以看出,在图像背景较为复杂、飞机朝向不确定和飞机目标聚集等情况下,本文训练的检测模型依然有良好的检测表现,有较强的鲁棒性。但同时还存在漏警、虚警的情况,如图8(b)所示。在飞机目标过小且聚集的情况下,容易出现漏警的情况;在外形轮廓与飞机相似的情况下,容易出现虚警的情况,进一步降低虚警、漏警是下一步研究的重点。
图8 飞机目标检测结果
通过设置不同的置信度阈值,在测试集上可以获取多组不同阈值对应的查准率和查全率。根据多组数据,以查全率为横坐标,查准率为纵坐标,可以画出精度-召回曲线,如图9所示。
图9 精度-召回曲线
由图9中可以看出,AP值为0.903 8,在查全率达到95%的情况下,查准率可以达到85%。
本文主要探讨了深度卷积神经网络模型Faster R-CNN在遥感图像中对飞机目标检测的应用。首先构建了遥感图像飞机目标检测数据集Airplane-2018,并在此基础上,对Faster R-CNN模型采用微调预训练模型的迁移学习方法进行训练。实验结果表明,Faster R-CNN模型在采用微调预训练模型的迁移学习方法训练后,在遥感图像飞机目标检测上具有可行性且效果尚佳,在一定程度上满足遥感图像飞机目标检测的应用需求,同时进一步验证了迁移学习可以使深度卷积神经网络很好地适应小数据集的应用研究。
同时,需要注意的是,由于目前缺乏公开且成熟的专门针对遥感图像飞机目标检测的数据集,本文仅在自构建的Airplane-2018数据集上进行了实验,因此实验结果还存在一定的局限性。后续工作将对Airplane-2018数据集进一步扩充,并考虑将该数据集贡献给开源社区,以利于其他学者开展相关研究;同时继续深入开展相关研究,将Faster R-CNN模型拓展到油罐、舰船等其他目标的检测中,提高遥感图像的应用价值。