基于神经网络的遥感图像语义分割方法 下载: 1677次
1 引言
近年来,随着科学技术的发展进步,人类探索宇宙空间的能力得到了大幅提高,越来越多的卫星被送入到绕地球运行的轨道[1]。遥感卫星可以拍摄高分辨率的地球遥感图像。遥感图像中蕴含丰富的地理信息。如何对遥感图像进行目标识别和语义信息提取,逐渐成为图像分析领域的热点研究内容之一[2]。其中,语义分割研究被广泛应用于无人驾驶[3]、医疗影像分析等任务中。语义分割[4]是对图像中的目标进行像素级别的分割,为不同类别目标的所有组成的像素进行对应类别的颜色标注,本质上是对图像中的不同类别目标进行分类。在遥感图像中,语义分割指的是对图像的地表物体目标(包括河流、土地、建筑物等)进行分类和颜色标注。这对于很多目标识别任务来说,都是一项重要的基础工作。然而,像素级别的分类方法往往对噪声非常敏感,如果缺少目标的语义信息,很难获取目标的分类信息。地表包含的目标类型多样,容易受噪声、季节、光照等因素的影响,这给高分辨率遥感图像的目标分类任务带来了很大困难[5]。
学者们尝试了很多方法对高分辨率遥感图像进行目标分类。Blanzieri等[6]采用支持向量机(SVM)的方法进行遥感图像目标物分类;Kluckner等[7]采用非监督聚类算法对遥感图像中的房屋进行分割;Chen等[8]改进传统的边缘检测方法,使遥感图像中的小物体也能被分割出来。但是,由于遥感图像包含丰富的光谱信息,传统的特征提取方法并不能取得很好的分割效果。从模式识别的角度来看,典型特征的选取是提高识别精度的瓶颈[9]。只使用一组特定的特征无法对所有类型的地面物体进行准确分类。所以,采用学习方法对相应数据集中的特征进行自动学习分类,相比人工设计特征,可以更有效地提高目标分类精度[10]。
神经网络研究方法由于Hinton等[11]提出深度学习理论而备受关注。深度学习的基本动机是建立一个深度神经网络来模拟人类大脑的学习和分析机制。与传统的机器学习算法相比,深度学习更加强调从庞大的数据中通过多层神经元组织自动学习特征。典型的深度学习结构包括递归神经网络(RNN)[12]、深度信念网络(DBN)[13]、卷积神经网络(CNN)[14]等。CNN在图像分类、目标识别等计算机视觉任务上都取得了显著的效果,并且在ImageNet、PASCAL VOC等领域内权威数据集的竞赛中取得了优异成绩[15]。2012年,Krizhevsky等[16]研究设计了一种7层CNN的模型(被命名为AlexNet),赢得了ILSVRC(ImageNet Large Scale Visual Recognition Challenge)竞赛的冠军。也有许多学者基于CNN的方法并针对遥感图像进行语义分析研究。Nguyen等[17]提出了一种5层的网络结构,完成了遥感图像的目标分类工作;Hu等[18]利用一种预训练的CNN模型对不同的遥感图像场景进行分类;Mnih[19]提出了一种基于CNN的航空图像大尺度上下文特征学习结构,但效果仍待提升。由于高分辨率图像的像素量巨大,因此要实现逐像素的分类十分困难,当前的像素级目标分类精度并不理想。
为了提升遥感图像的语义分割效果,本文设计了一种双通道不同尺度特征提取融合的全卷积神经网络(FCN)结构,并对高分辨率卫星遥感图像进行语义分割,以保证在提取整体特征的同时不丢失目标的细节特征。通过将图像目标的整体与细节特征相结合,提升了目标分类的准确率。同时,在池化层中采用最大池化索引解码的池化方式,来保留目标的边缘等细节信息,从而有效提高网络的识别效果。利用ResNet18(Residual Neural Network)[20]预训练模型,结合ResNet18预训练得到的神经网络权重参数来获取遥感图像的特征图,并将其与文中双通道获得的特征图再次融合,增强了特征的表达能力,在保证整体网络结构训练效果的同时,大幅缩短了网络训练时间。
2 相关工作
得益于计算机硬件的发展,在图像多目标分类相关研究中,神经网络方法得到了蓬勃发展,其间出现了CNN、FCN、SegNet、ResNet、空洞卷积[21]等一系列优秀的网络结构和方法。
2.1 CNN基本方法
CNN是当前目标分类和目标检测领域采用最多的方法。传统的CNN模型在网络层的最后部分都会加上若干个全连接层,用于目标类别的划分。FCN最早由Shelhamer等[22]在2017年提出,如
2.2 ResNet网络结构
ResNet(Residual Network)网络结构由He等[20]在2016年提出,此论文获评2016年CVPR会议(Conference on Computer Vision and Pattern Recognition)最佳论文,对应的模型在ILSVRC2015比赛中夺得冠军。ResNet网络结构的参数比VGGNet[23]更少,进一步简化了网络的结构。
从传统意义上来讲,网络的深度对图像最后的分类和识别效果有很大影响[24],所以常规的想法是网络设计得越深越好;但是当网络堆叠很深时,效果却会变差。通过分析效果变差的原因,发现梯度消失是产生此问题的主要因素。ResNet可以很好地解决网络层深度增加时梯度消失的问题。
式中:y为残差映射与恒等映射相加的神经元输出;x为输入的神经元参数;F(x)为残差映射的神经元参数。
恒等映射从字面意思理解就是指其本身,也就是(1)式中的x(即神经元中的参数);而残差映射指的是差,即y-x,所以残差指的就是F(x)。理论上,对于“随着网络加深,准确率下降”的问题,ResNet提供了上述两种选择方式。如果网络已经到达最优,继续加深网络,残差映射将逐渐变为0,只剩下恒等映射,这样理论上网络一直处于最优状态,网络的性能也就不会随着深度增加而降低了。
Note: “/2” represents halving the number of convolution channels.
2.3 SegNet网络结构
SegNet网络最初由Badrinarayanan等[25]在2017年的CVPR会议上提出。这个网络展示了一种编解码结构的深度全卷积神经网络结构,可用于图像中逐个像素的语义分割。网络整体可概括为一个编码网络和一个对应的解码网络,并跟随一个像素级别的分类层。此网络结构提出了带位置索引的最大池化方法,即在进行最大池化操作时,实现了对原来特征图中关键信息的位置保留,而保留的位置信息在上采样过程中加以利用。这样做可以使得网络在对原图进行特征提取时能够提取到更加有用的特征信息,最终实现更好的语义分割效果。该网络结构同样只有卷积层和池化层,比全连接网络的参数少很多,加速了网络训练的过程,节省了计算资源,但是分割效果仍有待提高。
3 本文方法
在相关研究与测试的基础上,针对高分辨率卫星遥感图像,提出一种双通道不同尺度特征提取融合的FCN结构,即在双通道中实现不同尺度的图像特征提取,并分别实现各自通道的训练,在实现最终分类目的之前,将双通道提取的图像特征加以融合,同时结合预训练模型提取的特征图,保证整个网络结构的精确性和稳健性,最后利用分类函数实现图像中各类目标的准确分类。
所提的网络主体结构如
在这两个模块的基础上,网络中同时采取了SegNet中带有位置索引的最大池化方法和批标准化加速层方法。通过加入这些优化策略,整体模型在小样本训练集上即可实现较高精度的分类。最后,采用Softmax分类函数实现对图像中不同像素对应类别的划分。
3.1 双通道不同尺度特征提取
如
两个通道输入的遥感图像大小分别为N×N和N/2×N/2(实际训练中,图像输入大小N取值为224)。在网络训练过程中,第一个通道对输入大小为N×N的图像进行处理,此通道主要对整张图像的全局特征进行提取;第二个通道为整张图像随机取样所得到的大小为N/2×N/2的图像,加入这一通道的目的主要是补充第一通道在特征提取过程中所遗漏的一些细节信息,使整体网络结构在提取图像特征时更加准确、全面。
N/2×N/2的通道主要作用是对提取特征中的细节作补充,整个过程与N×N通道类似,下采样最终得到7×7×512的特征图。不同之处在于,此通道是随机提取的N×N特征图的一部分。随机提取保证了在图像特征提取网络的反复训练中能够充分提取图像的细节特征,以提高整体训练的准确性。
采用的激活函数为Relu激活函数,即修正线性单元,表达式为
式中:f(x)为隐层神经元的输出。
Relu激活函数使神经网络中的神经元具有稀疏激活性,可以起到单侧抑制的作用,即把所有负值变为0,而正值不变。对于线性函数而言,ReLu的表达能力更强;而对于非线性函数而言,Relu由于非负区间的梯度为常数,因此不存在梯度消失问题,可使得模型的收敛速度维持在一个稳定状态。
下采样过程中,每个通道同时包含4个池化层,如
3.2 双通道不同尺度特征联合
在分别得到不同尺度的图像特征之后,进行特征联合。特征联合部分如
3.3 位置索引最大池化
所设计的双通道卷积网络,每个独立通道采用的都是下采样加上采样的结构设计,整体网络可以实现图像的像素级分类。下采样操作用于实现对遥感图像的特征提取,上采样操作时将下采样提取的特征图还原至原输入图像大小并实现像素分类。
在设计池化层时,采用带有位置索引的最大池化方法。该池化方法可以在下采样过程中保存图像特征关键信息的位置,并将保存下来的位置信息在上采样时加以利用,从而使得下采样得到的特征图按位置还原。相比于普通大反卷积上采样,该方法可以更好地保留图像目标区域的细节特征,实现更好的语义分割效果。经过最大池化索引上采样后,两个通道分别获得224×224×64和112×112×64的特征图。
3.4 批标准化层
设计两个独立通道的FCN结构,且每个通道的网络结构较为复杂,导致网络训练速度较慢。为此,特地加入BN的网络优化策略。在训练深度神经网络时,前一层参数的变化会导致每层的输入分布在训练过程中发生变化。通常情况下,要求较低的学习率和详细的参数初始化会导致训练过程减慢。批标准化利用数据标准化的方式,将神经网络每层的输入标准化为方差为1、均值为0的正态分布,从而加速神经网络的收敛。
在网络训练过程中处理多个特征图,求取每批次特征图所有神经元的均值和方差。在实验中,针对多个图像进行小批次标准化操作以加速网络训练过程。引入批标准化处理后,网络训练速度明显加快,有效缩短了训练时间。学习率也不再受限于很小的范围,对提高网络的分类性能也十分有益。
3.5 引入ResNet18预训练参数
从CNN的发展历史来看,神经网络模型的层数和复杂度发生了巨大变化。随着模型层数和复杂度的增加,模型在相应数据集上的错误率也随之降低。为了提高遥感图像目标分类结果的准确率、解决数据量不充分所带来的过拟合问题,采取迁移学习方式,加入ResNet18的预训练权重参数,即将处理后的数据图像送入预训练好的ResNet18权重参数中进行特征向量的提取,然后再将提取的图像特征与所设计的双通道FCN提取的特征图进行拼接,最终得到增强后的联合表达的特征图。
3.6 网络训练过程
CNN训练过程主要包含正向传播和反向传播两个过程:正向传播中,给定输入,输入经过所设计的FCN结构进行加权求和与激活,响应值在最后的网络层中输出;反向传播时,根据正向传播得到的输出值求得与真实值的误差,之后将此误差值通过反向传递来调节神经元之间的连接权值,通过反复调整最终获得误差最小条件下的网络模型。
所提模型采用Softmax分类器,损失函数设定为交叉熵损失,并采用正则化项进行校正,以进一步防止过拟合现象的发生。设n为样本类别数,经过Softmax函数后输出的向量为Y∈R1×n。其中,R1×n为1×n的向量空间;Y=(y1,y2,y3,…,yn),为1×n的向量,yi代表向量中第i个元素的预测值。则损失函数表达式为
式中:第一项为交叉熵损失表达式,其中,y'i为相应的真实值;第二项为权值的L2正则项,Wi为正则化项卷积核参数,λ为正则项的系数,由各权值的衰减系数之积决定。
4 实验过程及结果分析
4.1 数据集及预处理
数据集选用佳格天地科技公司开源的遥感卫星高分辨率影像数据集,对数据集进行人工目视标记。数据集由高分辨遥感图像组成,每张图像包含的地表目标像素点数量为107。图像中的地表目标分为5类:1)植被(vegetation),包括草地、林地和农用耕地等绿植,在标签图中记为1;2)建筑物(building),各类建筑物均归为此类,标签为2;2)水体(water),包含湖泊、河流等,标签为3;4)道路(road),即常见的各种通行道路,标签为4;5)其他类(others),除上述4类地表目标外,均归为其他类,并标记为0。数据集中地表物类别的多样性和差异性均得到了保证,能够确保网络学习到的模型具有较好的泛化性能。
图 8. 数据集部分图像及其对应的可视化标签
Fig. 8. Partial images of data sets and corresponding visual labels
该数据集所包含的图像均为大尺寸高分辨率卫星遥感图像,而深度CNN的参数量巨大,对计算机的性能要求很高,像该数据集这样的图像并不能对其进行直接处理,需要先将其切割成小尺寸图像。将此数据集中的高分辨率图像切割成224 pixel×224 pixel的小尺寸图像,从图像左上角开始,进行步长为224 pixel×224 pixel的滑动切割。切割后的图像及其对应的可视化标签如
图 9. 切割后的部分数据集图像及其可视化标记展示
Fig. 9. Partial data set images and their visual mark display after cutting
深度CNN神经元之间的权重参数数量巨大,对训练样本的数量具有较高要求。为此,采用一些方法对现有样本进行扩充:对前面切割得到的小尺寸图像,分别进行翻转变换,顺时针旋转90、180°、270°。这些方法可以使样本的数据量得到很好的扩充,从而有效防止过拟合现象的发生。部分变换后的图像如
4.2 实验设置
实验环境配置:CPU为Intel(R)Core(TM)i7-9700K处理器,显卡为两块NVIDA GeForce GTX1080Ti显卡,内存总容量为32 GB。运行的所有CNN模型均在Pytorch框架下进行。
实验中,采用随机梯度下降优化算法对设计的神经网络结构进行迭代求解,epoch设置为60,初始学习率设置为0.001。在训练过程中,逐步调整学习率随损失值的变化,既能保证学习速度不会太慢,又能保证在训练的后面可以找到全局最优解。通过与损失函数比较,反复进行正向传播和反向传播,当满足误差阈值或者迭代次数时停止训练,即可得参数最优的网络模型。
图 10. 部分原图像及经过翻转、旋转后的图像展示
Fig. 10. Partial original images and display of flipped and rotated images
4.3 实验结果与分析
为了更好地表明所提的FCN结构的性能优势,分别利用FCN发展历史中几个优异的网络结构对高分辨率遥感图像进行训练与测试,并与所提算法进行比较。对比结构主要包括FCN-8s模型、SegNet模型、Unet[26]模型,这些模型由不同专家在CVPR会议上提出,是现在语义分割领域中性能较为突出的算法结构,被广泛地应用在无人驾驶、医疗影像分析等语义分割任务中。
将前述模型获得的实验结果与所提模型得到的实验结果进行比对,部分可视化实验结果如
图 11. 不同分类算法对遥感图像的可视化分类结果
Fig. 11. Visual classification results of remote sensing images by different classification algorithms
从
为了更好地体现所设计的双通道加ResNet18预训练通道的结构优势,同时进行单独的通道1、通道1+2和整体结构的实验对比,结果如
图 12. 通道1、通道1+2、整体结构三种情况的可视化分类结果
Fig. 12. Visual classification results of channel 1, channel 1+2, and overall structure
从
分类结果的混淆矩阵是一种直观地评价分类算法性能的指标,混淆矩阵中列出所有目标类别及每个类别目标分类正确及错误的数量,以此为基础,可以得到样本中各类别、总体的准确率。总体的准确率由所有被正确分类的样本数除以样本总数得到,准确率越高,说明分类算法的效果越好。
表 1. 所提算法的分类结果混淆矩阵
Table 1. Obfuscation matrix of classification results of proposed algorithmpixel
|
为了进一步分析不同神经网络结构的算法性能,统计了以上测试模型对测试集的像素分类结果,并计算了每个模型中各类别的分类准确率和总体准确率(OA),结果如
式中:T代表样本总数;aii代表混淆矩阵对角线上的数目,即被正确分类的样本数;gi代表第i个类别样本的实际样本总数;pi代表被分类为第i类的样本总数。
表 2. 不同算法的分类准确率和RKappa
Table 2. Classification accuracy and RKappa of different algorithms
|
从
同时,计算上述算法的卷积核参数总量、单次前向传播时间、模型达到稳定的训练时间,并进行进一步对比分析(
从
表 3. 不同算法的卷积核参数、单次前向传播时间和训练时间
Table 3. Convolution kernel parameters, single forward propagation time, and training time of different algorithms
|
5 结论
为了能够取得更好的高分辨率遥感图像语义分割效果,设计了双通道不同尺度特征提取融合的CNN结构,同时加入了许多小的优化策略,使得算法能够在小规模数据集上取得良好的语义分割效果,总体准确率达到了90.68%,RKappa为0.8595。与FCN-8s、Unet、SegNet等网络模型,及单通道、双通道的对比实验显示,所提方法具有优异的语义分割性能,训练速度也更快。但是从实验结果也可看出,所提方法对于图像中某些极其细微的区域,分割结果不佳,在今后的研究中,还应对此进行进一步探索。同时,也要研究更加快速稳定的网络模型,以切实投入到科学应用之中。
[1] WangY, Xing LN. Remote sensing satellite networking technology and remote sensing system: a survey[C]∥2015 12th IEEE International Conference on Electronic Measurement & Instruments (ICEMI), July 16-18, 2015, Qingdao, China. New York: IEEE, 2015: 1251- 1256.
[2] 赵宇宸, 何欣, 冯文田, 等. 同轴偏视场共孔径面阵成像光学系统设计[J]. 红外与激光工程, 2018, 47(7): 0718004.
[3] 安喆, 徐熙平, 杨进华, 等. 结合图像语义分割的增强现实型平视显示系统设计与研究[J]. 光学学报, 2018, 38(7): 0710004.
[4] MeletisP, DubbelmanG. Training of convolutional networks on multiple heterogeneous datasets for street scene semantic segmentation[C]∥2018 IEEE Intelligent Vehicles Symposium (IV), June 26-30, 2018, Changshu, China. New York: IEEE, 2018: 1045- 1050.
[5] Paisitkriangkrai S. Shen C H, van den Hengel A. Pedestrian detection with spatially pooled features and structured ensemble learning[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 38(6): 1243-1257.
[6] BlanzieriE, MelganiF. An adaptive SVM nearest neighbor classifier for remotely sensed imagery[C]∥2006 IEEE International Symposium on Geoscience and Remote Sensing, July 31-August 4, 2006, Denver, CO, USA. New York: IEEE, 2006: 3914- 3917.
[7] KlucknerS, BischH. Image-based building classifiation and 3D modeling with super-pixel[C]∥ISPRS Technical Commission Ⅲ Symposium on Photogrammetry Computer Vision and Image Analysis, September 1-3, 2010, Paris, France. [S.l.: s.n.], 2010: 233- 238.
[14] LeCun Y, Bottou L, Bengio Y, et al. . Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.
[15] Xie YT, RichmondD. Pre-training on grayscale ImageNet improves medical image classification[M] ∥Leal-Taixé L, Roth S. Computer vision-ECCV 2018 Workshops. Lecture notes in computer science. Cham: Springer, 2019, 11134: 476- 484.
[16] KrizhevskyA, SutskeverI, Hinton GE. ImageNet classification with deep convolutional neural networks[C]∥Neural Information Processing Systems, December 3-6, 2012, Lake Tahoe, Nevada, United States. Canada: NIPS, 2012.
[17] NguyenT, HanJ, Park DC. Satellite image classification using convolutional learning[C]. AIP Conference Proceedings, 2013, 1558( 1): 2237- 2240.
[19] MnihV. Machine learning for aerial image labeling[M]. Canada: University of Toronto, 2013: 12- 16.
[20] He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA. New York: IEEE, 2016: 770- 778.
[21] YuF, KoltunV, FunkhouserT. Dilated residual networks[C]∥2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 21-26, 2017, Honolulu, HI, USA. New York: IEEE, 2017: 636- 644.
[22] Shelhamer E, Long J, Darrell T. Fully convolutional networks for semantic segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(4): 640-651.
[23] SimonyanK, Zisserman A. Very deep convolutional networks for large-scale image recognition[J/OL]. ( 2015-04-10)[2019-07-08]. https:∥arxiv.org/abs/1409. 1556.
[26] RonnebergerO, FischerP, BroxT. U-Net: convolutional networks for biomedical image segmentation[M] ∥Navab N, Hornegger J, Wells W, et al. Medical image computing and computer-assisted intervention- MICCAI 2015. Lecture notes in computer science. Cham: Springer, 2015, 9351: 234- 241.
Article Outline
王恩德, 齐凯, 李学鹏, 彭良玉. 基于神经网络的遥感图像语义分割方法[J]. 光学学报, 2019, 39(12): 1210001. Ende Wang, Kai Qi, Xuepeng Li, Liangyu Peng. Semantic Segmentation of Remote Sensing Image Based on Neural Network[J]. Acta Optica Sinica, 2019, 39(12): 1210001.