基于超像素与多尺度残差U-Net相结合的遥感图像飞机检测方法
2022-08-19婷张善文徐
张 婷张善文徐 聪
(西京学院 电子信息学院,西安 710123)
1 引 言
遥感图像(Remote Sensing Images,RSI)飞机目标检测一直是一个重要且具有挑战性的课题。 近年来,涌现出了许多遥感图像飞机目标检测方法。文献[1,2]综述了遥感图像目标检测算法和技术,比较了不同方法的优缺点,并展望了该领域的发展趋势。 文献[3]结合聚合通道特征和精心设计的特征,提出了一种基于多尺度滑动窗口框架的飞机检测方法。 文献[4]设计了一种基于中心提案区域和不变特征的飞机检测方法,该方法首先提取每个RSI 中的目标区域,然后利用旋转不变特征训练集成学习分类器,最后利用此分类器从RSIs 中将飞机图像识别出来。 文献[5]通过参数迁移得到卷积神经网络(Convolutional Neural Networks,CNN)卷积层的参数,提取遥感图像训练集的深度特征,最后训练可变形网络模型。 文献[6]针对遥感影像中飞机大小、方向、角度及环境的多样性,提出一种基于残差网络的飞机目标检测方法。 针对飞机密集区域或背景复杂区域的检测精度低问题,文献[7]提出一种端到端的深度 CNN (Convolutional Neural Networks,CNN),实现遥感图像中大小不同的飞机图像检测。 文献[8]针对遥感图像中不同大小目标检测准确率低的问题,通过在YOLOv3-Tiny 模型中增加1 ×1 卷积,提出一种基于优化的YOLOv3-Tiny的遥感图像飞机检测方法。 文献[9]提出一种基于深度CNN 和深度信念网(Deep Belief Net,DBN)的飞机目标检测方法。 文献[10]针对传统遥感图像飞机检测方法存在漏警、虚警等问题,提出一种多尺度遥感图像飞机自动检测方法,实现了不同尺度飞机自动检测任务。 文献[11]提出一种基于迁移学习和几何特征约束的级联CNN 框架,实现了大面积RSI 飞机检测,以相对较少的样本实现了较高的检测精度。 文献[12]提出一种端到端的飞机检测方法。 该方法将所有计算封装在一个网络中,使用简单高效。 文献[13]提出一种基于显著性和CNN相结合的RSI 飞机检测方法。 文献[14]利用级联策略构建了一种有效的飞机检测框架。 文献[15]构建了一种基于CNN 的有效飞机检测框架,用于检测超大复杂场景中的多尺度目标,用于检测各种多尺度飞机。 文献[16]利用数据增强、迁移学习、深度CNN 和有限的训练样本,提出了一种端到端的飞机检测方法。 文献[17]提出了一种基于深度CNN的飞机目标检测方法,利用采集的数据集进行端到端微调训练检测模型,实现了飞机的自动检测和定位。 文献[18]提出一种小样本光学遥感图像飞机检测算法,用于检测大小不同的弱小飞机目标。 文献[19]提出一种基于多尺度CNN 特征融合的多尺度飞机检测算法,利用深度CNN 子网络提取定向目标的特征图。 文献[20]提出一种基于角点聚类和CNN 的飞机检测方法,并与选择搜索(SS) +CNN、边缘盒+CNN 和面向梯度直方图(HOG) +支持向量机(SVM)三种方法进行实验对比。
研究人员通过增加CNN 模型的深度和卷积层的卷积核数量以提高模型的准确率,但易引起过拟合、梯度消失和消耗计算资源等问题。 U-Net 是一种简单且被广泛应用的U 型对称的卷积模型,在图像检测和语义分割等方面取得了成功应用。文献[24]从下采样和上采样操作、编码和解码模块、跳跃连接模块以及残差连接、多尺度卷积、注意力机制、数据增强和模型优化策略等多方面综述了U-Net 的改进和优化模型。 多尺度卷积网络采用大小不同的卷积核提取多尺度卷积特征,增强网络检测和识别大小不同目标的性能,降低网络计算复杂度。 文献[26]针对复杂场景区域的小尺度飞机目标检测准确率低问题,提出一种基于多尺度CNN 的飞机目标检测框架。 Inception 是一种多尺度卷积网络模块,能够提取目标的多尺度特征,能够引入U-Net,提高模型的准确率,减少计算量。超像素是由一些位置相邻且特征相似的像素点组成的像素子集,广泛应用于图像预处理,极大减少图像局部冗余信息和噪声,降低后续目标检测和图像分割的复杂度和运算量。 文献[28]提出一种基于超像素的CNN 方法,并应用于道路图像分割,分割准确率高。 充分利用多尺度卷积、Inception、U-Net、残差网络、残差连接和超像素分割的优点,提出一种结合超像素与MSRU-Net 的遥感图像飞机检测方法,并进行实验验证。
2 多尺度残差U-Net
在多尺度卷积Inception、U-Net 和残差网络的基础上,构建一个改进的多尺度残差(MSRU-Net),其网络架构如图1(a)所示。
MSRU-Net 由编码模型、解码模块、池化、转置卷积和通道拼接组成,其中编码模块和解码模块用于特征提取,池化用于下采样,转置卷积用于上采样,通道拼接用于整合编码特征和对应的解码特征。 多尺度残差模块结构如图1(b)所示,其中经过多尺度残差模块后卷积层的通道数加倍,特征图的空间尺寸保持不变;经过2 ×2 最大池化层后卷积特征图的空间尺寸减半,通道数保持不变;1 ×1 卷积将特征层通道数最终降为2。 通道拼接模型如图1(c)所示,由卷积和残差卷积组成,用于减小编码特征与解码特征之间存在的语义间隔,经过通道后的特征层空间尺寸、通道数保持不变。 MSRU-Net的结构及其参数说明如表1所示。
图1 多尺度残差U-Net (MSRU-Net)Fig.1 Multi-scale residual U-Net (MSRU-Net)
表1 MSRU-Net 结构及其参数说明Tab.1 MSRU-Net structure and its parameter description
3 遥感图像飞机检测方法
将超像素与MSRU-Net 相结合应用于遥感图像飞机检测,其过程如图2所示,其中箭头表示数据流。
根据图2所示,遥感图像飞机检测过程如下:
图2 基于超像素与MSRU-Net 的遥感图像飞机检测过程框图Fig.2 Block diagram of aircraft detection process in RSIs based on superpixels and MSRU-Net
步骤1:利用超像素聚类算法(Simple Linear Iterative Cluster,SLIC)将遥感图像网格化并分配标签,得到每幅原始图像的超像素图像,其处理过程如下:
2)计算滤波后图像的任意2 个不同的像素点p(x,y)和p(x,y)之间的混合距离,表示聚类像素点的相似度,如式(1)所示。
式中,C,C——p和p的空间相似度和颜色相似度;g,g——两个像素点p和p的像素灰度值。
4)由式(1)计算每个像素点与个种子点的混合距离,再将与该像素最近的种子标签赋予该像素;
5)合并种子点相邻像素中具有相同标签的像素点,再将合并区域内的所有像素作为新种子点;
6)返回步骤4)和步骤5),迭代直到每个超像素的聚类中心不再发生变化为止;
7)利用最近邻策略将分割产生的孤立点划分到相邻的超像素中,得到每幅原始图像的超像素图像。
步骤2:计算每幅超像素图像的所有超像素的灰度平均值,再将灰度平均值重新赋值给超像素中每个像素点,生成一个视觉概要图;
步骤3:构建MSRU-Net 模型。 如图1(a)所示MSRU-Net 由5 个编码模块、4 个解码模块、1 个注意力机制模块和4 个通道组成,包括编码模型和解码模块、池化、转置卷积、级联等操作;
步骤4:将得到的视觉概要图作为训练集训练MSRU-Net,使用随机梯度下降法对MSRU-Net 的参数进行更新,完成模型训练。 模型的训练参数包含卷积核维度、池化核维度、学习率与训练次数。
最后,利用训练好的MSRU-Net 模型对遥感图像飞机进行检测。
4 实验与分析
为了验证基于超像素与MSRU-Net 相结合的飞机检测方法,在EORSSD 数据集的飞机图像子集上进行实验,并与3 种遥感图像飞机检测方法进行比较:Saliency and CNN (SCNN)、Markov random field-FCN (M-FCN)、多尺度融合特征卷积神经网络(MSCNN),所有模型都在EORSSD 数据集上进行训练。 所有方法的实验环境和条件为:python 3.7.3, Ubuntu 16.04, Tensorflow 1.14.0,NVIDIA TitanX GPU 上实现的,内存配置为12gb;批量大小为32,学习率为0.000 1,动量为0.9,权值衰减为0.000 5,CapsNet 的超级参数分别设置为0.000 5和0.5,训练迭代总数为3 000 次,训练优化器是Adam 优化器。
EORSSD 数据集(https:/ /github.com/rmcong/EORSSD-dataset)包含2000 幅遥感图像,其中包括258 张飞机RSIs,其中大多数飞机图像包含一个或多个小尺寸、任意位置和角度、不同分辨率、背景模糊的飞机,如图3(a)所示。 由于原始飞机RSIs 的分辨率不同,从973 ×760 到242 ×239,将每幅图像的大小调整为128 ×128,以减少计算时间和GPU内存。 利用LabelMe Matlab 工具箱对飞机RSIs 进行标注。 在训练MSRU-Net 时,EORSSD 的飞机RSIs 数量相对较少。 为了增加图像的多样性,减少过度拟合问题,改善飞机检测方法的能力,每个原始飞机图像由旋转(90,180,270)和随机裁剪及加噪声方法,将每幅图像扩展为10 幅图像,共得到2 580 幅遥感飞机图像。 在本节中,将所有扩展飞机RSIs 构建一个飞机RSI 子集,进行飞机检测实验。 对每幅图像进行超像素分割,对于不同超像素数的分割图像如图3(b)所示。
从图3可以看出,超像素数越多,得到的分割图像越清晰,而过少的超像素数的分割图像可能丢失小目标图像,但太多的超像素数就不能体现超像素的优势。 超像素数为2 000 时得到的分割图像与原始图像的相似性为0.99,由此,文中所有实验选择超像素数为2 000,得到的分割图像作为基于深度学习模型的输入图像。
图3 超像素图像分割示意图Fig.3 Superpixel image segmentation
利用4 -折交差验证法对遥感飞机图像检测。SCNN,M-FCN,MSCNN 和MSRU-Net 的训练过程中关于迭代次数的损失值如图4所示。 从图4中可以发现,在1 500 次迭代之前,所有模型的损失都迅速减小,MSCNN 和MSRU-Net 的收敛性优于SCNN 和M-FCN,而MSRU-Net 在训练过程中收敛速度较快,在1 700 次迭代后收敛效果好。 当整个训练完成时,MSRU-Net 的损失最小,实验表明该方法具有较好的飞机检测能力。
由图4可以看出,当迭代次数为3 000 时,各个模型均收敛。 为了公平起见,在后面的实验中,选择迭代次数为3 000 时的模型作为训练好的模型,用于飞机图像检测。 4 种不同模型的飞机检测结果如图5所示。 4 种方法相对于标注飞机图像的飞机检测平均准确率如表2所示。
图4 训练过程中关于迭代次数的损失值曲线图Fig.4 The loss value of the number of iterations during the training process
由图5和表2得出结论,文中提出的MSRU-Net优于其他3 个网络,准确率达到91.20 %,其次是MSCNN,检测性能较好,准确率为87.53 %。 其主要原因是MSCNN 和MSRU-Net 具有多维特征提取的能力。 MSRU-Net 优于MSCNN 的原因是MSRU-Net 结合了多尺度卷积、U-Net、残差连接和超像素的优点。 SCNN 和M-FCN 不适合提取多尺度飞机检测。 MSRU-Net 的训练时间最少,其原因是MSRU-Net 利用了残差连接和超像素,加速了模型收敛。
图5 基于四种不同模型的飞机检测结果示意图Fig.5 Aircraft detection results based on four different models
表2 4 种方法相对于标注飞机图像的检测平均准确率和模型的训练时间Tab.2 The average detection accuracy of the four methods relative to the labeled aircraft images and the training time of the model
5 结束语
针对传统遥感图像飞机检测方法对小尺寸飞机图像的检测效果不理想的问题,构建一种基于超像素和多尺度残差U-Net(MSRU-Net)的遥感图像飞机检测方法。 首先利用超像素算法分割遥感飞机图像,构造像素组级别的超像素,较单个像素点处理极大降低了时间复杂度;然后通过多尺度残差U-Net(MSRU-Net)提取不同尺度特征图,通过级联模型,将编码特征与对应的解码特征相融合,增加飞机检测的细节信息,提高较小飞机图像的检测准确率。 实验验证了所提出的遥感图像飞机检测方法的有效性,准确检测率为91.20 %。