基于Densenet-SVM的遥感图像场景分类网络研究
2024-01-05周易
周 易
(绵阳职业技术学院,四川 绵阳 621000)
采用卫星遥感技术可以获得大量的遥感场景图像[1]。为了更好使用这类图像,需要对图像进行分类处理[2]。实际上,分类是处理遥感图像的一个必要过程,该过程可以通过机器学习和深度学习技术实现。此外,特征提取一直是利用遥感图像提供信息的有效方法,在许多重要应用中不可或缺。
Li等人[3]采用深度特征提取和采样特征融合来减轻细节丢失和模糊边缘的影响,并提出一种多级特征聚合网络,用于土地覆盖的语义分割。胡威[4]将遥感场景图像区域的场景特征定义为局部特征,并提出一种基于模式挖掘的特征叠加型卷积方法,从而有效发掘其中的视觉元素。Algarni[5]等人提出一种利用CNN转移学习进行特征提取和利用深度森林方法进行分类的HRRS(High-Resolution Remote Sensing,HRRS)场景分类方法,此方法从最后一个卷积层中提取深层特征,并通过集成学习训练深层森林模型。汪西莉[6]等人提出一种增强的特征金字塔网络,以提取多尺度和多层次的特征,所采用的一个两分支深度特征融合的神经网络,可在多个级别上有效地聚合特征,虽然该方法在遥感场景中都表现良好,但在具体的遥感场景分类上,还存在一些不足,如所采用的二阶池化方法不能对参数进行排序并自动学习。然而,这些工作仅侧重于利用单个层的特征进行分类。对于使用多个层进行特征提取,Akila[7]等人引入一个远程场景理解框架,预训练的VGG-Net模型被提出作为深层特征提取器,该方法选择全连接层作为单独的特征描述符,然后将它们组合起来构建最终表示。为了提取更具代表性的特征,汪西莉[8]等人采用加权空间金字塔匹配协作表示分类方法。在另一项研究中,Zhang[9]等人预训练卷积网络的多层特征。然而上述特征描述符是由单个网络获得的,与多个网络相比,单个网络的特征提取能力有限,而且这些特征是从不同的网络层中提取的,导致信息冗余。
DenseNet使用顶部分类器通过特征连接监督所有层,增强每层特征和梯度,该方法的每个隐藏层特征的有效性得到增强或验证。由此,本文提出一种基于Densenet-SVM的遥感图像场景分类网络,能够对遥感图像场景实现有效的分类。
1 研究基础
1.1 基础网络结构
DenseNet是ResNet的进一步创新[10-11],这两个神经网络都基于类似的思想,即建立不同层之间的“桥梁”。然而DenseNet的结构更简单、更有效,参数更少。与ResNet相比,ResNet中的每个层只连接到前一个层,而DenseNet中每个层直接连接到所有前面的层,并且每个层都可以从损失函数中获取梯度;这种操作可以优化整个网络的信息流和梯度,易于训练,在小数据集上表现更好,DenseNet的结构可以实现更好的特征重用并减少参数数量。此外,DenseNet层比其他深度学习网络(如CNN和ResNet)的网络层更窄,通过使用较少的特征映射进行学习可以减少冗余。
1.2 自监督学习模型
遥感图像与传统光学图像不同,直接使用ImageNet预训练网络作为遥感图像的特征提取器不合适,从头开始训练一个表现良好的深度网络通常需要大量标记样本,在遥感图像中通常很难获得这些样本。此外,如何从海量无标签样本中挖掘有价值的信息是值得研究的,自监督学习模型[12]旨在在没有监督的情况下从数据本身中学习有效的表示,它非常适合将遥感图像转换为更富有表现力的遥感图像嵌入空间,而不需要任何标签。
2 改进方法
2.1 特征提取
DenseNet是ResNet的一种变体,可以更好地解决梯度消失问题,与ResNet相比,DenseNet加强了特征的传播,并充分利用了每个块中不同级别的特征;同时,与ResNet相比,它可以显著减少相同层数的参数数量,这个骨干网可以用来提取多种不同尺度的特征,而且这种密集连接的结构进一步跨越这些不同尺度的特征进行交叉链接,在遥感场景图像中表示多尺度对象的复杂语义关系方面,表现优于传统的CNN[13]。CNN已经显示出对于场景分类的显著特征表示能力。然而,遥感场景数据集具有很少的图像数量,而且一些传统的CNN方法具有大量的参数和浅层网络层,一方面,由于训练数据很小,常常存在过度拟合[14];另一方面,浅层网络层导致高级信息的提取受限。此外,深层网络通过获取更高级别的特征映射产生更具鲁棒性和区分能力的特征,从而更容易识别潜在和固有特征。然而深层网络容易出现梯度消失等问题,部分抵消了网络深度的效果,许多研究者通过共享一个关键特征来解决这些问题:从前面的层次到后面的层次创建短路径。DenseNet构建更深层次的密集连接网络并解决上述问题,最重要的架构——密集块层,被设计用于确保网络各层之间的最大信息流动,在这种结构中,每个层使用所有先前层的输入,并将其对应的特征映射传递到所有后续层中。
2.2 特征映射
在DenseNet的构建过程中,每个层的特征图大小应保持一致,以实现不同层之间的连接,因此,采用“DenseBlock+Transition”结构将网络分成几个密集连接单元,每个单元中的卷积操作使特征图保持一致,然后通过下采样操作将其连接到下一个单元。本文中的DenseNet结构包含41层,并可调整DenseBlock结构和其他参数。具体来说,首先使用Conv2D(24,3×3)——批归一化——ReLU提取滑坡的高维特征。将DenseBlock和Transition模块添加到DenseNet中可以进一步减少特征图和网络参数的数量。每当处理完一个DenseBlock时,会输出k个特征图,称为增长率,通常将k设置为一个小值。然而,随着层数的增加,输入到下一层的特征图通常很大,这会导致训练效率低下和内存溢出等问题,因此,在本文中向DenseBlock中添加1×1 Conv2D以进一步压缩特征并提高学习效率。本文中使用了三个DenseBlock,其中包含六个稠密连接层与两个Transition结构交替,此外,为了提取滑坡因素的深度特征,从浅到深,将每个密集块的膨胀率设置为5、2和1。最后采用全局池化和稠密层,所构建的框架通过学习较少的训练参数来增强特征重用,从而能够学习到更完整的高维滑坡特征。DenseNet的数据输入形式与CNN相同,是一个19×19的补丁,如图1所示。
2.3 样本分类
接下来的步骤是基于支持向量网络(Suppor t Vector Machines,SVM)方法完成分类,训练分类器对通过DenseNet处理后的特征和σ°值进行分类。SVM使用核技巧进行非线性分类,核函数可以将数据转换成更高维度的空间,以使得当类别标签与属性之间的关系为非线性时,可以进行非线性的分离。常见的选择是高斯核函数,在本文的研究中,使用径向基函数核(RBF核),发现它在各种应用中都能很好地工作。本文中使用scikit-learn开源实现SVM分类方法,scikit-learn中的SVM模型可实现基于SVM的遥感图像场景分类;基本上,SVM使用低级方法训练模型,只能解决二分类问题,在多类别分类的情况下,LIBSVM通过逐个拟合所有二进制子分类器并通过投票机制找到正确的类别,实现“一对一”技术。
3 实验与分析
3.1 实验数据集
AID(Aerial Image Data set,AID)是一个广泛使用的基准数据集,用于测试场景分类方法的有效性,这是第一个从可用高分辨率遥感影像中生成的地面真实数据集,所有这些影像都是从航空正射影像中提取的,包含16个典型的土地利用类别,即密集住宅、高速公路、港口、飞机场、中密宅区、森林、海滩、稀疏住宅、棒球内场、储罐、河流、跑道、移动房屋、停车场、十字路口、高尔夫球场。对于每个类别,有100张256×256的图像,分辨率为30厘米,包含三个RGB通道。在AID中对不同类别进行分类是一项具有挑战性的任务,由于每个类别的图像数量有限,并且存在一些类别之间非常相似,如中等和住宅密集区域、稀疏住宅和松球场容易导致错误分类。将每个类别80%的图像用于训练,其余的图像用于测试。
3.2 实验设置
为了准确评估所提出的方法,本文中保持与以前实验相同的训练-测试比例。对于AID,训练-测试比例分别为20%和50%,考虑用每个数据集的两种不同的训练-测试比例来全面评估基于Densenet-SVM的遥感图像场景分类网络,在这项工作中,使用Pytorch框架实现所提出的方法,网络参数和设置如下:将所有图像调整为288×288像素作为输入,然后将批次大小设置为16,并使用具有动态学习率功能的随机梯度下降法作为优化算法,训练轮数的数目持续到网络收敛;实验在一台计算机上执行,配备有双路Intel Xeon E5-2620 v4处理器、两个1080Ti GPU和128 GB内存。
3.3 准确性评估
使用总体精度(Overall Accuracy,OA)和混淆矩阵评估基于Densenet-SVM的遥感图像场景分类网络的性能,OA被定义为正确分类的图像总数除以测试集中的图像数量,这表明在预测实际图像方面的分类性能。在混淆矩阵中,每列代表预测实例,每行代表类别数据的实际属性,因此,混淆矩阵可以直接显示每个类别的分布,并可用于简单分析不同类别之间的误分类。为了减少随机性的影响以获得可靠结果,本文中通过随机划分数据集进行十次实验,对十次重复的整体精度进行均值和标准偏差作为最终性能。表1为AID下的部分常见的采用本文中方法与文献[5]中方法的分类结果准确率对比。
表1 AID下的部分常见的采用本文中方法与文献[5]方法的分类结果准确率对比
3.4 混淆矩阵
图2是基于Densenet-SVM的遥感图像场景分类网络在20%训练数据集的条件下,表现最佳混淆矩阵的结果。其中,有10个类别的分类准确度大于98%,其中“中密宅区”和“海滩”的分类准确性相对较低,分别为96.8%和97.1%,这是由于这两类场景易与其他场景混淆;本文中提出的模型可以很好地区分每个类别,因此,说明了方法的有效性和稳定性。
图2 混淆矩阵的结果
4 结束语
遥感图像场景分类为环境预测、灾难抢险和地表地貌分类提供了理论基础,本文首先分析了基础网络结构和自监督学习模型,基本的卷积神经网络模型包含5个层次:输入层、卷积层、池化层、全连接层和输出层;自监督学习模型旨在在没有监督的情况下从数据本身中学习有效的表示,它非常适合将遥感图像转换为更富有表现力的遥感图像嵌入空间,而不需要任何标签。
基于此,本文给出了基于Densenet-SVM的遥感图像场景分类网络,其特征提取模块采用DenseNet结构,该结构加强了特征的传播,并充分利用了每个块中不同级别的特征。同时,与ResNet相比,它可以显著减少相同层数的参数数量。在这种结构中,每个层使用所有先前层的输入,并将其对应的特征映射传递到所有后续层中,在特征映射模块中。本文使用了三个DenseBlock,其中包含6个稠密连接层与两个Transition结构交替。最后,训练支持向量网络分类器,对通过DenseNet处理后的特征和σ°值完成样本分类。
将所有图像调整为288×288像素作为输入,然后将批次大小设置为16,并使用具有动态学习率功能的随机梯度下降法作为优化算法,在AID数据集中完成实验与分析。为了减少随机性带来的影响以获得可靠结果,本研究通过随机划分数据集进行十次实验,对十次重复的整体精度进行均值和标准偏差作为最终性能。此外,通过混淆矩阵可说明,本文提出的模型可以很好地区分每个类别,实验结果论证了基于Densenet-SVM的遥感图像场景分类网络的有效性和稳定性。