1. 引言
从高分辨率遥感影像中快速、准确提取建筑物的位置、轮廓等信息,在地震灾害评估、城市三维建模和规划管理、智慧城市建设等领域有着重要价值[1]。目前该项工作依然以人力为主,而由于高分辨率遥感影像地物特征丰富、光谱复杂、且存在多种遮挡现象,传统分类算法无法达到较高的精度。浅层机器学习算法如SVM、BP神经网络等,虽然可以在一定程度上提高建筑物提取的精度,但对于复杂样本,依然存在不足。近些年来,深度学习技术的兴起,给高分辨率遥感影像中的建筑物信息提取提供了新的思路。
深度学习由对神经网络的研究发展而来,目前在计算机视觉等领域取得了显著的成就。在2012年ILSVRC大赛中,Alex Krizhevsky等人使用的深度学习模型,在Classfication和Localization竞赛中以较大优势战胜了使用浅层算法(如SVM等)的队伍,展现出了深度学习在影像处理领域的发展前景,目前,深度学习在图像场景分类、目标检测、语义分割等方面都体现出了巨大的优势。在遥感图像处理领域,深度学习技术也有一定的发展和应用,Nataliia Kussul [2]等人提出了一种多级的深度学习模型用于土地利用分类,并指出了其算法相对于多层感知机和随机森林算法的优势;Atharva Sharma [3]等人提出了基于面片的卷积神经网络方法,其精度优于基于像素的神经网络方法,但他们的方法没有使用高分辨率的遥感影像,在图像处理方法上有一定的区别;夏梦[4]等提出结合了深度学习和条件随机场,且在输入图像中增加了平均值等4个纹理信息,得到了比SVM分类器更好的提取效果,但其网络结果中,输出层地物位置信息没有得到足够的保留;Nicolas Audeber [5]等人在全卷积网络思想上加以改进,提出了可以使用多种波段数据的网络结构,输入样本除红、绿、蓝三通道外,还可以是DSM、NDVI等数据,使用ISPRS (International Socitey for Photogrammetry and Remote Sensing)的高分辨率竞赛数据,取得了很高的精度,但实际应用中,往往难以同时快速获得高分辨率的DSM等数据,在灾害快速应急等方面会体现出不足,但也可以从中看出,当影像的分辨率较高时,对于建筑物的边缘提取效果更好。
由于神经网络结构和计算机硬件条件的限制,基于卷积神经网络的遥感影像分类、分割等研究中,普遍采用了分块的方法,具体表现为滑动窗口或图像裁切等操作,分块后每个训练样本尺寸限定在一定范围内,如128 × 128像素、500 × 500像素等,因此,影像自身的空间分辨率需要与这些分块的尺寸相适应,以达到最优的提取效果。
本文主要以DeepLab V2 [6]卷积神经网络为基础,研究较高空间分辨率影像数据的建筑物信息提取。首先通过影像插值,得到比原始影像更高空间分辨率的数据,再把这些数据输入到网络中,分析在一定分块尺寸下,影像自身分辨率改变对提取结果的影响。另外,在网络输出结果的基础上,通过矢量简化算法进行进一步的优化,以增强提取效果。
2. 研究方法
2.1. 影像分辨率增强与数据预处理
首先将影像分辨率进行增强,再进行深度卷积神经网络的训练,主要考虑以下两个问题:
深度学习技术可以提取影像的深层次信息,但具体网络结构中,由于存在池化层等操作,影像的尺度有一个逐渐减小的过程。
由于卷积神经网络本身结构和硬件条件的限制,训练样本的尺寸大小受到一定限制,只能在很小的范围内变动,因此当输入影像的空间分辨率不同时,每个样本所对应的实际区域大小也不同,进而对模型效果产生影响。
数据处理的整体流程如图1。
Figure 1. Data processing flow chart
图1. 数据处理流程图
使用分辨率增强算法,直接对原始影像进行插值操作,为了不损失原始信息,采用最近邻插值,如图2,在改变提升影像尺寸的同时尽量少地对原始影像进行修改,使得深度学习系统能够得到更原始的影像信息,具体对影像的特征提取工作在深度卷积神经网络中自动进行,不需要在前期进行过多的影像处理工作。
Figure 2. Resolution enhancement
图2. 分辨率增强
对训练数据进行规范化处理,以符合卷积神经网络的数据输入需求,对于训练的影像数据,可以直接进行分辨率增强和后续操作,而对于标记数据,其对应像素值为网络输出的标准label数据,即对应类别值,因此应首先进行灰度处理,将原始标记数据二值化,转为单通道灰度数据,像素值1表示建筑物,像素值0表示非建筑区。
由于硬件条件等限制,深度学习输入影像尺寸不宜太大,因此采用分块的方法,对影像进行分割处理,得到500 × 500大小的训练样本和测试样本。为了保证分块后的影像不丢失坐标等空间信息,在分块的同时记录每幅影像的坐标位置。
2.2. DeepLab神经网络算法
与其他浅层机器学习模型如SVM相比,卷积神经网络(CNN)不需要在分类前期对数据进行较复杂的特征选取工作,而是通过深度的网络结构,自动提取影像中的特征信息,是一种“端到端”的思想,尽量使用最原始的影像数据,直接从中学习到有价值的信息,而不需要人为进行复杂的信息特征提取,因此,这也是深度学习技术作为人工智能发展热点的一个原因[7]。
采用DeepLab网络进行提取研究,DeepLab神经网络结构是在全卷积网络,即FCN (Fully Convolutional Networks) [8]思想上的改进。传统的卷积神经网络中包含全连接层,该层的使用计算过程中数据的维度发生了变化,丢失了细节和空间的信息,FCN网络使用卷积层代替全连接层[8],如图3,空间信息得以保留,通过反卷积(Deconvolution)等方法,恢复提取目标物的位置信息。
Figure 3. Convolutional layer instead of fully connected schematic diagram
图3. 卷积层替代全连接层示意
通过FCN可以直接获得逐像素的分类图像,但由于过多池化层的使用,空间信息丢失过多,得到的结果边缘信息误差较大。本文采用的DeepLab算法延续了全卷积算法的整体思路,并在以下几个方面进行了改进。
1) 去除重复的池化和下采样操作。在深度学习中,经常采用微调网络(fine-tune)的方法,即使用其他地方训练好的参数,通过微调来实现对网络参数的优化。该方法可以使模型快速收敛,对最终的精度也有很大的改善。在传统的全卷积网络中,池化和下采样层使得图像特征的分辨率大大降低,而如果不进行相应操作,就改变了原有网络结构,从而不能使用经典模型如VGG、ResNet网络等模型的训练参数进行微调。因此,为解决此矛盾,引入带孔卷积的思路。如图4,原始的卷积核大小为3 × 3,感受野也为3 × 3的区域,而通过图中的带孔卷积,卷积核大小依然是3 × 3,但却有7 × 7大小的感受野。因此,缩短卷积核移动的步长,然后使用带孔卷积的方法,可使得网络结构依然符合经典模型,从而可以使用微调的方法提高网络的性能,同时,每次卷积都可以包含更大范围的信息,使得结果信息提取效果更加精确。
Figure 4. Porous convolution
图4. 带孔卷积
2) 针对研究目标的尺度问题,使用构建动态空间金字塔ASPP的方法,相同类型的地物往往存在不同的尺度,怎么设计一种网络能够在物体尺度不同时完成分割任务呢?之前的做法是,在不同特征层上提取尺度特征,最后再融合到输出层,但是这种方式会增加计算负担。DeepLab网络通过建立动态空间金字塔ASPP,采用不同空洞率的卷积核,产生了尺度不同的感受野(见图5)。在同一层,采用不同空洞率的卷积核,提取出的不同尺度的特征会沿着网络一层一层,最终传导到输出层,通过互补的有效视野来实现在多个尺度上对物体信息进行提取,该方法的多尺度是建立在影像原有尺度的基础上,可以认为对尺度进行了不同尺度的缩小。而本文提出的增强分辨率的方法,是对尺度的一种放大,这样,两种方法结合,即可从更多的尺度空间上完成对信息的提取。
Figure 5. Dynamic spatial pyramid ASPP
图5. 动态空间金字塔ASPP
(a) 一个1 × 1卷积层,以及三个3 × 3的空洞卷积,对于output_stride = 16,其rate为(6, 12, 18),若output_stride = 8,rate加倍(这些卷积层的输出channel数均为256,并且含有BN层);
(b) 一个全局平均池化层得到image-level特征,然后送入1 × 1卷积层(输出256个channel),并双线性插值到原始大小;
(c) 将(a)和(b)得到的4个不同尺度的特征在channel维度concat在一起,然后送入1x1的卷积进行融合并得到256-channel的新特征。
3) 采用条件随机场(CRF)对网络的输出结果进行优化。条件随机场(CRF)是马尔科夫随机场的一种特殊的形式,是一个概率图模型。在条件随机场中,有两部分随机变量,一般记为X和Y。X为观察变量,Y为目标变量,也成为隐含变量。由贝叶斯公式:
(1)
式中的
即为图模型的联合概率分布。
在DeepLab网络中,采用的是CRF在图像分割问题中的具体表现形式,即Dense-CRF[9],能量函数为:
(2)
(3)
式中
是像素的标记值,
、
表示像素的位置,
、
表示像素值,
,其中
是在像素
处通过深层卷积神经网络得到的标记值的概率。当
时
,否则
,超参数
、
、
用来控制高斯核的尺度。由公式可以看出,当两个像素的距离和像素值都很接近时,特征就会很强。
通过Dense-CRF,神经网络的提取效果得以增强,尤其是信息的边缘信息得以更好地恢复。在建筑物的提取过程中,这一操作可以保留建筑物更多的边缘信息,因此该方法在建筑物提取的过程中,可以发挥更大的作用。
DeepLab神经网络的损失值采用交叉熵损失函数,交叉熵是信息论中的一个重要概念,主要用来评估两个概率分布间的差异信息,首先通过Softmax将网络处理结果转化为概率值:
(4)
之后通过交叉熵损失函数,计算损失值。
(5)
训练过程中,不断调整参数的大小,以减少损失值的大小,从而使网络得以优化。而交叉熵损失函数相对于传统的二次损失函数,可以加快参数
和
的调整速度,从而加快网络的训练速度。
2.3. 建筑提取效果优化
自然界中的建筑一般有明显的几何特征,棱角比较分明,虽然在网络中,加入了Dense-CRF的操作,但提取出的建筑物依然过于平滑,缺乏应有的棱角。而在实际需求中,经常会需要建筑物比较规则的轮廓信息,因此卷积神经网络得到的输出结果不能完全符合对建筑物提取的预期效果,由此考虑对建筑物边缘进行优化处理。
首先将DeepLab网络输出的图像由栅格格式转为矢量格式,以方便使用矢量的相关算法来进行简化建筑物的操作。对于接近90˚的角,直接转变为90˚,设置简化容差t,根据简化容差,对于孤立出来的区域,计算缩进或突出的大小,进行相应的填充或截断,当建筑物的整体尺寸小于t时,整个矢量图就变为了一个矩形。在简化过程中,逐渐减少折点的数量,同时保证简化前后建筑物的面积大体相同,简化过程如图6所示。
Figure 6. Edge of the Simplified building
图6. 简化建筑物边缘
在简化矢量的同时,进行拓扑检查,主要去除处理后的建筑物重叠问题。经过矢量的简化操作,得到的结果可以更加符合对建筑物提取的要求。
3. 研究结果及分析
3.1. 分析评价方案
除了一些众所周知的英文缩写,如IP、CPU、FDA,所有的英文缩写在文中第一次出现时都应该给出其全称。文章标题中尽量避免使用生僻的英文缩写。
选用深度学习中常用的像素精度和IOU (交并比)来进行提取算法的分析评价。
(1) 像素精度
像素精度指的是提取目标物与真实值之间逐像素的精度,通过像素精度值,可以从整体上获得对信息提取结果的评估。
(6)
像素精度表示的是分类正确的像素占整体像素的比值,从整体上对模型的分类效果进行评估。
(2) IOU
IOU表示了提取结果和真实值的重叠度,在深度学习的目标检测和语义分割中应用广泛,该方法是一种更为全面、合理的提取精度评估方法,不仅考虑到了每个像素提取的精度,还把每个提取目标视为一个整体进行提取分析,其分析结果更符合建筑物提取的要求。
(7)
式中,
表示提取结果和真实值的交集,
表示真实值,
表示提取结果。通过计算该指标,可以很好的体现出建筑物提取的精度。
3.2. 实验与结果分析
3.2.1. Deep Lab网络设置
选用Deep Lab v2网络进行实验研究,设置训练次数选用50000次,初始学习率分别设置为2.5 × 10−3、2.5 × 10−4、2.5 × 10−5,使用Windows系统,通过Tensorflow框架进行分析,硬件使用GTX 1060 6G显卡。选用数据集为美国马萨诸塞州建筑物公开数据集[10],影像分辨率为1 m。
3.2.2. 影像分辨率增强实验结果与分析
影像分辨率增强选用训练集的136张影像进行训练,并使用测试集的10张影像进行测试,经过影像分辨率增强,分别得到1 m、0.5 m和0.25 m分辨率的影像。在1 m分辨率的影像中,训练集处理后获得1224个训练样本,90个测试样本;在0.5 m分辨率的影像中,训练集处理后获得4896个训练样本,360个测试样本;在0.25 m分辨率的影像中,训练集处理后获得19584个训练样本,1440个测试样本。
首先通过实验,选择最佳学习率。
实验选用两种预训练模型,一种是ResNet-101模型,是ResNet网络在COCO数据集(微软的团队整理的一个可以用来图像分类、分割等处理的数据集)上的训练参数模型,另一种是Deeplab_ResNet模型,是DeepLab网络在COCO数据集上的训练参数模型。表1是使用ResNet-101模型的训练结果。
Table 1. ResNet Network processing results
表1. ResNet网络处理结果
学习率(m) |
预处理模型 |
像素精度 |
Mean IOU |
1 |
ResNet-101 |
0.834 |
0.665 |
0.5 |
ResNet-101 |
0.919 |
0.763 |
0.25 |
ResNet-101 |
- |
- |
而使用Deeplab_ResNet模型的网络训练结果见表2。
Table 2. Deeplab_Network processing results
表2. Deeplab网络处理结果
学习率(m) |
预处理模型 |
像素精度 |
Mean IOU |
1 |
Deeplab_ResNet |
0.856 |
0.694 |
0.5 |
Deeplab_ResNet |
0.924 |
0.776 |
0.25 |
Deeplab_ResNet |
0.917 |
0.769 |
下面,我们将Deeplab_ResNet和ResNet-101两种网络的处理结果放在表3中进行对比。
Table 3. Two Networks processing results comparation
表3. 两种网络处理结果的比较
分辨率(m) |
预处理模型 |
像素精度 |
Mean IOU |
1 |
Deeplab_ResNet |
0.856 |
0.694 |
1 |
ResNet-101 |
0.834 |
0.665 |
0.5 |
Deeplab_ResNet |
0.924 |
0.776 |
0.5 |
ResNet-101 |
0.919 |
0.763 |
0.25 |
Deeplab_ResNet |
0.917 |
0.769 |
0.25 |
ResNet-101 |
- |
- |
通过表3可以看出在0.5 m分辨率的处理结果中,像素精度和Mean IOU均优于1 m分辨率下的网络模型,因此可以得出通过分辨率增强的算法可以提高对建筑物梯度的精度。但在0.25 m分辨率的影像中,提取结果并没有得到很大提高,以Deeplab_ResNet网络为预训练模型的结果虽然优于原始数据结果,但低于0.5 m分辨率结果,而以ResNet-101网络为预训练模型的实验,更是因为训练过程中出现loss的空值而无法继续。可以看出,由于0.25 m影像在原始影像分辨率增强后分辨率扩大了四倍,而网络数据单个样本数据均为500 × 500大小,受到网络结构和硬件条件的共同限制,该尺寸大小无法随着影像分辨率增强而进行相应修改。因此,每张单个训练数据的上表示的空间范围就相应的缩小,其直接结果是每个训练样本中,不能包含某建筑区的比较完整的信息。同时,虽然分辨率扩大了四倍,但由于没有其它时期或数据源的数据加以融合,其表达的信息量并没有相应提高,表现为一种更模糊的效果,使得网络训练精度降低。
对于不同尺度的建筑物,网络都能提取得到很好的效果,图7中所示两个基于Deeplab_Resnet的0.5 m分辨率的预测结果,两个图像中建筑物面积存在明显差异,可以发现,模型对于面积较大的建筑物边缘提取效果更好。原因是对于小的建筑物,在卷积网络进行池化等操作过程中,小建筑物的尺度被缩放得很小,信息丢失过多,后期上采样的精度不如面积较大的目标。由此,也可以看出增强分辨率方法的意义,虽然增强分辨率方法没有扩充很多原始数据的有效信息,但由于研究建筑区像素尺寸的扩大,使得在卷积神经网络的下采样和上采样过程都可以保留更多的信息,从而提高最终建筑物提取的精度。
Figure 7. Classification prediction chart
图7. 分类预测图
3.2.3. 数据后期优化结果
首先将网络输出的栅格数据转为矢量数据,再进行优化操作。优化数据同样选取在上述分析中获得最高精度的基于Deeplab_ResNet的0.5 m分辨率的预测结果,简化容差设置为200,得到效果如图8。
原图 预测图 优化结果图
Figure 8. Building extraction optimization results
图8. 建筑物提取优化结果
通过后期处理,简化了建筑边缘,使结果更加符合建筑物提取效果,可以看出,该方法可以初步勾绘出建筑物边缘,且大部分符合人工勾绘结果。但也可以看出,部分建筑物提取的方向存在问题,由于部分网络预测数据在边缘信息上依然存在误差,因此在简化边缘时,建筑四个角点的选择存在偏差。实际情况中,相邻建筑物在建筑边缘上保持大体平行或垂直,因此,如果考虑和周围建筑物的几何关系,可能更好地提升建筑物的优化效果。另外,存在影像连在一起的情况,这是由于建筑物距离很近,网络输出结果没有分开,如果需要,还要进行进一步的处理。
4. 总结与讨论
以DeepLab v2深度学习网络为基础,引入其空洞卷积、金字塔池、条件随机场等网络优化方法,且通过插值算法,提升原始影像的分辨率,再进行建筑物提取处理,实验结果表明,经过分辨率增强的深度学习方法,可以明显提高建筑物提取效果。常用的高分辨率影像数据如高分二号、IKNOWS等,与本文研究数据空间分辨率相近,更适合通过该方法提高建筑物提取的精度,对于提取结果的后期处理,使用了简化建筑物的算法,可以使得到的结果为比较简洁的矢量形式,结果更加符合客观实际以及对建筑物信息提取的需求,简化之后的部分建筑矢量方向存在问题,考虑在以后通过几何关系进一步优化。
本文提出的基于DeepLabV2 ASPP的深度学习模型结构能够在保证模型精度的同时,减少计算量,从而提高效率。空洞卷积的使用使得模型能够捕获更广泛的上下文信息,而增加的卷积率则在保持较小感受野的同时增加了模型的表征能力。本论文提出的模型结构具有多尺度特征提取、高效的特征融合策略、适用于多种输出步长的灵活性等几个特点,通过调整输出步长和卷积率,模型能够适应不同的输入图像大小和复杂度,提高了模型的适用性和鲁棒性。在图像分类、目标检测等视觉任务中展现出良好的性能。