院老虎,翟柯嘉,张泽鹏,宋 瑞
(沈阳航空航天大学 航宇宇航学院,辽宁 沈阳 110136)
目标检测作为计算机视觉领域的研究热点之一,已广泛应用于自动驾驶[1-2]、人脸识别[3-4]和其他领域[5-6]。随着空间遥感技术的不断发展,人们获得了大量的空间遥感图像数据,遥感图像与常规图像相比不仅存在着环境背景复杂、目标物尺度多样和目标物种类复杂等缺点,而且易受云、雾等干扰信息的影响。如何快速准确地处理复杂环境下的遥感数据,检测出图像中目标的类别和位置等信息是当前研究的热点和难点。飞机在国家的军用和民用方面扮演着重要的角色,对于雾天飞机遥感图像目标检测的研究意义更为重大。
近年来,随着大数据和人工智能的迅速发展,大量优秀的目标检测算法被提出。在2014年,Girshick等[7]提出了R-CNN(Regions with Convolutional Neural Network Features)算法,基于迁移学习的方式将CNNs引入目标检测领域,进行了对常规数据集的目标检测任务,随后在2015年,Ren等[8]提出了Faster R-CNN算法,这类算法使用候选区域方法创建感兴趣区域,候选区域采用卷积神经网络RPN(Region Proposal Network)推荐,不再使用之前的Selective Search算法,其在PASCAL VOC2007[9]数据集上的平均检测精度提高到了73.2%。2016年,Redmon等[10]提出了无区域建议的YOLO(You Only Look Once)方法,网络包含了2个全连接层和24个卷积层,该算法是将测试图像划分成很多个网格,在每个网格位置上预测n个边界框,这种预测方法检测速度得到提高,但对邻近目标的检测效果较差,检测精度低于Fast R-CNN及Faster R-CNN方法。这些目标检测算法被国内外研究学者广泛应用于遥感图像目标检测领域和去雾领域。
Cao等[11]基于RCNN模型[12]进行飞机检测,使用Selective search算法[13]提取候选区域,并采用深层CNN进行分类,从而提取出较符合图像本质的特征。Sun等[14]基于Saliency Map方法削减了候选区域的数量,通过弹性变换和透视变换方法扩展了数据集。Wu等[15]利用BING-CNN的方式实现了对飞机目标的快速识别,在检测精度优于HOG-SVM、DBN等模型的同时,平均检测速度也得到了提高。Li等[16]基于预训练的VGG-16网络,对比了FCN、Faster R-CNN和The proposed method三种模型的性能,采用的The proposed method实现了94.55%的检测精确率,平均检测速度提高3 fps。Wang等[17]提出针对飞机目标检测的ATRPN R-CNN(Aircraft Targets Region Proposal Network),使用ResNet-50网络提取区域特征,随后特征进入ATRPN候选框,使用ROI池化层生成特定长度向量以计算目标的置信度和候选框的位置。这些方法均在原始算法的基础上提出了自己的改进方法来提高检测的精确率和速度。
国内针对雾天遥感图像的研究也逐渐兴起。周明非等[18]结合FCN[19]与CNN,提出弱监督深度神经网络(Weakly Supervised Deep Neural Network,WS-DNN),使用弱监督FCN融合滑窗法提取候选区域,通过预训练方式获取更深的CNN模型进行分类,提高了检测精度。侯伟宁[20]将深度学习引入到遥感图像去雾和舰船的目标检测任务上去,建立对偶式生成对抗网络完成去雾,对感兴趣区域采样进行舰船目标检测。汪昱东等[21]提出了一种改进的雾天图像行人和车辆检测算法,在检测网络中引入雾浓度判别模块,实现了行人和车辆在雾天图像中的检测。郭青山[22]使用Dehaze Net对图像进行去雾,对航拍车辆基于卷积神经网络SSD进行了检测。李文斌等[23]提出了基于卷积神经网络遥感图像飞机目标检测模型DC-DNN,该模型具有较好的检测性能和泛化能力。
以上研究方法存在以下不足:(1)去雾处理过程复杂、繁琐、耗费时间;(2)缺乏雾天环境下飞机目标检测的数据集,易造成过拟合和欠拟合现象。针对以上不足,本文利用暗通道先验算法复原原理对常规飞机目标图像进行雾气模拟,生成了两种不同雾气状态程度的雾天图像,建立了一个专用于雾天状态下飞机目标检测的数据集,保证雾天数据充足,提高了网络特征的提取质量。为了评估雾气模拟方法的效果,使用暗通道先验算法[24]和多尺度Retinex(Retina and Cortex)算法[25]进行验证,观察去雾图像与原始图像的区别,以此证明模拟雾气图像数据的可信度。基于Faster R-CNN网络模型直接对雾气图像进行训练,探究雾气模拟数据对检测精度的影响。
本文提出了一种结合暗通道先验算法和Faster R-CNN模型的雾天条件下飞机目标检测方法,以实现雾天条件下飞机目标的检测任务。本文整体流程如图1所示。先使用雾气模拟方法获得飞机目标雾气模拟图像,创建了雾气图像数据集;通过暗通道先验算法及多尺度Retinex算法对雾气模拟图像进行去雾处理,证明雾气模拟图像数据的可信度;最后基于Faster R-CNN网络模型对雾气模拟图像数据集以及未添加雾气模拟图像的数据集进行训练,检测雾气模拟数据集对网络模型的影响效果。
图1 目标检测流程
暗通道先验算法是基于图像复原原理对遥感图像进行去雾预处理的。图像复原指的是借助某些先验知识,使用数学公式将图像退化过程的物理模型表示出来,恢复其原来的内容或质量。暗通道是指在一些区域里的一些像素会有至少一个最低值的颜色通道,这个区域内的光强度值极小。暗通道的定义如下:
其中,Jc是图像的一个颜色通道,Ω(x)表示以图像坐标x为中心的局部窗口(模块)。暗通道先验算法的理论基础是大气散射模型[26],国际上广泛采用的大气散射模型数学表达式如式(3)所示,用于描述雾霾的形成。
其中,I(x)是有雾图像,J(x)是去雾图像,t(x)是透射率,A是大气光强度。
全局大气光值A的计算,通过获取真实雾天图像的暗通道图像,对图像像素进行统计,选择像素中最亮的部分,将其与原始雾天图像一一对应,选取最大灰度图的像素点值作为大气光值。
大气透射率预估值计算公式如下:
其中,w表示去雾水平的参数,本研究设置w的值为0.95[24]。
对于图像的雾气模拟操作,首先收集一些不同程度的真实雾天图像,部分真实雾天图像如图2所示,应用式(4)计算其透射率t~(x),假设空气中的介质是均匀的,则透射率t(x)取决于场景到相机的距离l(x)
图2 真实雾天图像
其中,β表示衰减系数,通过改变β的大小可调节雾气的浓度,本文对轻雾图像的β区间设定为0.1至0.2,浓雾图像为0.2至0.3。随后调整无雾图像的全局大气光值,范围为150至255。由于每张图片的像素分布均不同,设定固定的全局大气光值,效果会较差。因此对每张图像尝试不同的透射率以及全局大气光值,使用式(3)去生成两种不同程度的雾气状态:轻雾和浓雾。图3展示了雾气模拟方法制作的一组示例图片,其中,图3(a)至图3(c)分别为原始图像、轻雾图像和浓雾图像。
图3 雾气模拟图像
Faster R-CNN目标检测算法,不再使用传统的滑动窗口和selective search算法,而是直接使用RPN(Region Proposal Network)生成检验框,对于检验框的生成速度做了极大提升。近几年国内外学者常用的目标检测算法的识别时间以及平均精确率趋势,对比结果如图4所示,其横轴表示识别时间,纵轴MAP表示每个类的AP(Average Precision)值的平均值。为了验证雾气模拟图像的加入对检测结果的影响,本文选取了常用的Faster R-CNN目标检测算法进行检测验证,Faster R-CNN具体结构如图5所示。
图4 各算法MAP和识别时间
图5 Faster R-CNN结构
对于训练网络的选取,由于本文目前旨在研究雾气模拟图像的加入对检测结果的影响,因此本文选取经典的VGG-16网络,后续研究会着重对特征提取网络做出对比优化。本文使用VGG-16网络的3个全连接层和13个卷积层,图像特征提取放在卷积层和池化层,分类放在全连接层。此VGG-16模型具有网络层数多、特征提取效果佳、分类效果好的特点,能够较好地完成遥感图像中的分类任务。该网络结构表示为C-C-P-C-C-P-C-C-C-P-C-C-C-P-CC-C-P-FC-FC-Dr-FC,其中C、P、Dr、FC分别代表卷积层、池化层、删除层和全连接层。其详细各层参数见表1,结构图如图6所示。
表1 VGG-16网络参数
图6 VGG-16网络结构
本文采用国内两所大学分别收集的数据集(西北工业大学收集的NWPU VHR-10[27]数据集和武汉大学团队制作的RSOD-Dataset[28]数据集),从两个数据集中随机选取500张飞机目标图像作为数据集的一部分。
对于网络模型性能的检测,使用了两个不同的数据集。
(1)数据集1:对500张原始图像(未添加雾气模拟的图像)旋转三次,每次90°,一共得到了2 000张不同角度的图像(0°,90°,180°和270°)。随后使用随机裁剪的方式扩展1 000张图像。数据集1一共有3 000张图片。
(2)数据集2:该数据集拥有1 000张1.1节方法制作的雾气模拟图像和2 000张不同角度的原始图像(与数据集1的角度分布相同)。
为了降低误检测率、误识别率,提高网络模型的泛化能力,对每个数据集扩充了3 000张均采集于机场背景地面负样本。本文数据集按照7∶3的比例划分,随机抽取4 200张图像作为训练数据,1 800张图片作为测试数据。
数据集2相对于数据集1增加了雾气模拟方法制作的飞机目标雾气模拟图像,保证了网络模型对于雾气状态下飞机目标的训练数据充足,可提高Faster R-CNN网络特征的提取质量,使得网络对飞机目标雾气图像有更好的训练,有益于提升雾天飞机目标的检测识别效果。
为了证实所提雾气模拟方法的有效性,采用暗通道先验算法和多尺度Retinex算法两种不同的去雾算法对雾气模拟图像进行去雾,把去雾后的图像与原始图像进行对比验证。图7是使用暗通道先验算法去雾的验证对比结果。由于本文使用暗通道先验算法图像复原原理模拟雾气,因此再次使用该算法进行去雾时,发现去雾图像和原始图像仅存在亮度区别,亮度不同则是由于修改了原始图像的全局大气光值导致。图8展示了使用多尺度Retinex算法的验证对比结果,显示去雾图像与原始图像无差别。通过两种算法将去雾后的模拟图像和真实图像对比验证后发现效果一致,证明了飞机目标雾气模拟生成结果的可信度。
图7 暗通道先验算法对比结果
图8 多尺度Retinex算法对比结果
对比目前常用的目标检测方法,发现Faster R-CNN的平均精确率优于其他算法,且Faster RCNN将特征提取、proposal提取、Bounding Box Regression、Classification整合到了一个网络中,提升了目标检测速度,其检测精度较高,更适合本文研究。因此,本文基于1.2节所提的Faster RCNN检测框架进行检测,观测所提数据集的创建对不同雾气浓度环境下飞机目标检测精度的提升效果。
图9、10分别展示了数据集1原始图像正确的检测结果和雾天图像错误的检测结果;图10中的前4张图片均为错误的目标也就是误报,其中有十字形状的物体、机场连廊等目标,这些目标均在一定程度上与飞机的某个部位形状相似。后两张图片目标正确,但是预测框与真实目标大小不符,因此也标记为错误。
图9 数据集1部分原始图像正确检测结果
图10 数据集1雾天图像的误检效果
本文网络模型在对新建立的专用于雾天状态下飞机目标检测的数据集训练检测时,直接对雾天图像进行了训练,摒弃了以往雾天条件下目标检测复杂、繁琐、耗费时间的去雾处理过程,有效优化了雾天状态下飞机目标难以检测的问题。
在测试数据不变的情况下,数据集1训练的网络检测误报的雾天图像在数据集2训练的网络中的检测结果如图11所示,未存在误检、误报情况。由于数据集2加入了雾天模拟图像,Faster R-CNN检测网络对雾天图像做了更深刻的学习训练,有效减少了对于雾天环境下飞机目标误报、漏报的情况。数据集2在对于雾天图像飞机目标检测方面有较大提升。
图11 数据集2雾天图像检测结果
为了评估网络的训练效果,本文从检测精度角度考虑,使用VOC2017的评价标准,评估参数如表2所示。
表2 评估参数
精确率表示的是预测结果的检测中真正是检测目标的比例,它表示的是在对目标类别的判定能力上检测模型的表现。精确率计算公式为
召回率表示的是包含目标的图像成功被检测出来的比例,它是对检测识别目标在检测模型上检测能力的衡量,召回率计算公式为
平均精确率计算公式则为
本文对两个数据集进行训练检测来分别计算其平均精确率,结果如表3所示。
表3 平均精确率结果 %
表3中数据集1对原始图像的检测平均精确率为83.4%,轻雾状态时仍然有52.7%的平均精确率,在浓雾时为28.9%。数据集2比数据集1多了雾天模拟图像,因此对雾天图像的识别性能更为优秀,在轻雾时检测平均精确率从52.7%提高到了57.9%,浓雾时则从28.9%提高到了32.4%。由于数据集2的常规图像数量较少(仅有2 000张,而数据集1有3 000张),因此对常规图像的识别性能则略有下降。
本文解决了雾天飞机目标遥感图像数据不足、去雾处理复杂繁琐的问题,使用暗通道先验算法对常规飞机目标遥感图像进行雾气生成,创建了雾天遥感图像数据集。通过提取不同程度的模拟雾天图像,使用两种去雾算法去雾后,模拟图像并未出现失真等问题。模拟图像去雾后和原始图像没有差别,证实了雾天模拟数据集的可信度。
基于Faster R-CNN检测实验结果显示雾天模拟图像数据集训练的网络提高了对于雾天图像的识别性能。轻雾图像的平均识别精确率提高5.2%,浓雾图像提高3.5%。该数据集创建方法可用于飞机目标遥感图像去雾领域及雾天遥感图像飞机目标检测更深层次的研究。本文研究的目标类别只有飞机一种且仅使用Faster R-CNN检测算法验证数据集的可信度,后续的工作会增加目标物的类别,使用多种改进目标检测模型算法,对目标检测速度及精度做出提升,使其可应用于日常生活中雾天目标的检测。