APP下载

基于全卷积神经网络的多源高分辨率遥感道路提取

2018-08-27张永宏夏广浩葛涛涛王剑庚

计算机应用 2018年7期
关键词:高分辨率边缘卷积

张永宏,夏广浩,阚 希,何 静,葛涛涛,王剑庚

(1.南京信息工程大学 信息与控制学院,南京210044; 2.南京信息工程大学 大气科学学院,南京 210044)(*通信作者电子邮箱287141243@qq.com)

0 引言

随着大数据时代的来临,各种遥感探测卫星陆续发射升空,获取遥感影像变得容易起来,对遥感影像中感兴趣的目标进行提取就成了研究的热点。道路是现代交通体系的主体,具有重要的地理、政治、经济意义[1]。从高分辨遥感图像中对道路进行提取在地图绘制、灾后重建方面有着广泛的应用。

从高分辨率遥感影像中对道路进行识别和提取经过近些年的发展,目前提出了多种方法。Poullis等[2]结合了Gabor滤波器、张量投票和最优化分割思想对多种数据中的道路进行提取,但对道路相似的背景区域进行分割时效果不好,且道路边缘提取得不够精细;蔡红玥等[3]利用面向对象方法提取道路基元,并采用数学形态学等方法进行优化,这种方法没有考虑图像的纹理信息,只是利用形状特征进行简单提取,普适性较低;沈照庆等[4]提出基于一对多算法的多种道路支持向量机(Support Vector Machine, SVM)一次性高精度提取的多分类策略,该方法对小样本道路的识别效果更加明显,但是较为耗时;王建华等[5]提出加入空间纹理信息的遥感图像道路提取方法,该方法比不加入空间纹理信息提取精度提高了约5%,但道路边界提取效果一般;Li等[6]先利用卷积神经网络(Convolutional Neural Network, CNN)对道路区域进行预测,然后通过改进的线积分卷积算法对原始图片进行平滑处理,最后再结合一些图像处理操作将道路网络提取出来,该方法提取的道路精度更高,但效率较低; Xia等[7]利用深度卷积网络(Deep Convolutional Neural Network, DCNN)对道路网络进行提取,该方法可以提取出不同级别的道路,但训练用时较多。

从上述遥感影像道路提取方法的发展可以看出,传统方法通过提取底层的视觉特征,如:颜色特征、纹理特征、形状特征来进行道路识别。由于传统方法提取的道路特征较为单一,导致其提取精度较低且只能对单张影像进行处理,而深度学习方法能够有效地提高道路提取精度和提取速度。深度学习是一种具有多个隐藏层的人工神经网络,它由Hinton[8]提出,通过大量隐藏层对数据进行拟合,在图像识别、语音分析领域有着广泛的应用。LeCun等[9]提出的卷积神经网络在图像识别及语音分析领域有着广泛的应用,但传统的CNN算法在进行目标提取时耗时较长,而Long等[10]提出的全卷积网络(Fully Convolutional neural Network, FCN)在CNN的基础上进行改进,并将其应用到了图像语义分割领域,即对一张图片上的所有像素点进行分类,以此对一张图片上的目标进行提取。深度学习的方法以它的高正确率、高普适性及高效性,正在代替和超越半自动道路提取方法在高分辨率遥感影像道路提取领域的应用。本文利用基于FCN的多源高分辨率遥感道路提取模型,对高分辨率遥感图像中的道路进行提取。实验结果表明,该方法提取精度提升明显,且具有较快的处理速度。

1 相关工作

1.1 CNN模型

卷积神经网络是人工神经网络的一种,它通过权值共享降低了网络模型的复杂度,减少了权值的数量,该优势在网络输入是多维图像时表现得尤为明显。在CNN中,图像作为层级结构最低层的输入,信息依次传输到不同的层,通过这种多层的学习可以自动发现数据中的复杂结构,避免了传统算法中复杂的特征提取过程,其在图像分类[11-14]、目标检测[15-16]等问题上有着极为广泛的应用。

因本文的分类任务较为简单,只需要将包含道路的图片筛选出来,故采用经典的LeNet-5来对包含道路的图片进行分类筛选,LeNet-5结构如图1所示。

图1 LeNet- 5结构图

典型的LeNet- 5模型由四个关键部分组成,分别为局部连接、权值共享、下采样以及多层卷积。卷积神经网络包括了一个由卷积层和下采样层组成的特征提取器。在卷积层中,一个神经元只与部分邻层神经元连接,卷积核通过一组权值和邻层特征图的某个局部作卷积运算,即局部连接;然后,将加权值传递给一个非线性激活函数,如sigmoid函数或者ReLU函数;同一个特征平面的所有单元共享权值,即共享卷积核,权值共享可以有效减少网络各层间的连接,同时降低过拟合的风险;下采样又叫作池化(Pooling),通过下采样操作能够减少模型参数,减少运行时间,常见的两种下采样为均值下采样(mean pooling)和最大值下采样(max pooling)。而由于单层卷积学到的特征往往是局部特征,在实际应用中大多采用多层卷积来进行全局特征学习。

1.2 Canny边缘检测

Canny算子是一种基于最优化思想的边缘检测算子,它试图在抑制噪声和准确定位之间寻求一种最佳的折中方案。用Canny算子进行边缘检测的主要步骤如下:

1)利用高斯滤波器平滑图像。N维空间正态分布高斯公式如式(1)所示:

(1)

其中:r为模糊半径;σ是正态分布的标准差。高斯滤波即根据待滤波像素点及其邻域点的灰度值,按照一定的参数规则进行加权平均,该方法可以有效地去除图像中的高频噪声,同时更好地保留边缘信息;

2)计算滤波后图像梯度的幅度和方向。常见的梯度算子有Roberts算子、Sobel算子、Prewitt算子,本文实现Canny算法所采用的梯度算子比较简单,表达式如式(2)所示:

(2)

其x向、y向的一阶偏导数矩阵、梯度幅值及梯度方向的数学表达式如式(3)~(6)所示:

P[i,j]=

(3)

Q[i,j]=

(4)

(5)

Θ[i,j]=arctan(Q[i,j]/P[i,j])

(6)

3)对梯度幅度应用非极大值抑制;其过程是找出图像梯度中的局部极大值点,把其他非局部极大值点置零,以得到细化的边缘。通过对梯度幅值进行非极大值抑制来找出梯度的局部极大值点,将其他非局部极大值点置零来得到细化的边缘。

4)用双阈值算法检测和连接边缘;选用两个阈值T1和T2(T1>T2),T1用来找到每一条线段,T2用来在这些线段的两个方向上延伸寻找边缘的断裂处,并连接这些边缘。通过两个阈值T1和T2来进行边缘处理,T1的作用是寻找每一条线段,T2的作用是延伸每条线段,使得线段连续起来。

1.3 精度评估方法

本文采用语义分割常用的三种度量方式来评估不同算法在此次实验上的表现,即:

1)像素精度(Pixel Accuracy, PA)。PA是语义分割最简单的度量,为标记正确的像素占总像素的比例:

(7)

2)均像素精度(Mean Pixel Accuracy, MPA)。MPA是PA的一种简单提升,即计算每个类内被正确分类像素数的比例,之后求所有类的平均值。

(8)

3)均交并比(Mean Intersection over Union, MIoU)。MIoU为语义分割的标准度量,其计算真实值(ground truth)和预测值(predicted segmentation)的交集、并集之比,之后求平均值。

(9)

2 全卷积神经网络道路提取算法

对于高分辨率遥感图像道路提取任务,基于FCN的多源高分辨率遥感道路提取流程如图2所示。为了提高模型的普适性,本文选用两种高分辨率卫星图像作为输入源,首先,对高分二号和World View图像进行分割,调整成合适的尺寸来适应网络结构。为了提高FCN对于道路的提取速度,本文先采用CNN对分割出的图像进行分类筛选,剔除掉非道路区域图像来减少FCN对非道路图像的处理时间。为了增加输入特征的多样性,本文采用Canny边缘检测算子对筛选出的道路图片进行处理,将检测出的边缘特征图像结合RGB和灰度图像一起放入FCN中进行训练,之后用训练好的模型对道路进行提取。

2.1 FCN模型

FCN在现有的网络上进行微调,如AlexNet[9],GoogleNet[10]以及VGGNet(Visual Geometry Group Net)[11],使得微调后的网络模型可以对图像进行像素级分类。全卷积神经网络与卷积神经网络相比,在结构上有了一些变化,主要体现在卷积层后的网络结构上。传统的卷积神经网络在卷积层之后通常连接的是几层全连接层(fully connected layers),全连接层将卷积层产生的特征图(feature map)映射成固定长度的特征向量,最后以概率值的方式输出图像的分类结果。而Long等[10]将传统CNN中的全连接层改为反卷积层,采用反卷积层对不同卷积层输出的特征图进行上采样,使图像恢复到原始输入图像大小,且每个像素都有一个预测结果。相较于CNN而言,FCN模型的输出结果由单一的分类概率变成了与原图尺寸一致的语义分割图,分割图中的每个像素对应其所属类别。FCN的网络结构如图3所示。

图2 道路提取流程

图3 FCN网络结构示意图

2.1.1 上采样

在全卷积网络模型中,下采样层缩小了输入图像的尺寸,要想得到一张与输入图像大小一致的图像,则需要将热图(heat map)扩大相应的倍数,这个扩大的过程在FCN模型中叫作上采样(Upsampling)。上采样中最为核心的步骤叫作反卷积(Deconvolution),反卷积的作用与卷积恰恰相反,以卷积核大小为4×4的卷积层为例,输入大小为5×5,卷积步长为1,卷积输出为2×2,而反卷积则与之相反,使得2×2的输入还原成5×5的输出。卷积与反卷积示意图如图4所示。

图4 卷积与反卷积示意图

2.1.2 多尺度特征融合

FCN中有5个2×2的下采样层,图像经过每个下采样层后分辨率都会降低,故最后一层卷积层输出的特征图分辨率会很低,细节特征不明显,若直接对特征图进行32倍上采样,则获得的图像精度不高,而且边缘比较粗糙。Long等[10]提出了多尺度特征融合的FCN结构,结合不同下采样层输出的特征图进行融合,使得模型在细节处理上能力更强。FCN有5个下采样层,每个下采样层之前有若干个卷积层,最后一层的输出图像为热图(heat map)。FCN有三种不同的特征融合方式,直接将热图进行32倍上采样的方法叫作FCN- 32s;将热图进行2倍上采样,与第四层下采样层输出的特征图进行融合,再进行16倍上采样的方法叫作FCN- 16s;将FCN- 16s的特征图进行2倍上采样,与第三次池化层输出的特征图进行融合,再进行8倍上采样的方法叫作FCN- 8s,图5为FCN多尺度特征融合示意图。

2.2 基于FCN的多源道路提取

本文基于FCN的多源遥感道路提取方法的多源性在于:1)多数据源,本文采用高分二号和World View高分辨率遥感数据作为训练集,模型通过处理这两种不同卫星源的数据可以学习到不同卫星源数据的特征,使得该模型普适性更高;2)多特征输入源,训练集中的图片有四类,在原有的RGB图以及道路标签图的基础上,新增了经过Canny算子检测的道路边缘信息图和灰度图,将这四类图片一同作为训练的输入数据,为道路提取提供了更丰富的特征信息。

图5 多尺度特征融合示意图

本文的FCN模型基于VGG- 19 Nets进行改进,共19层,前16层为卷积层,后3层为反卷积层。选择ReLu作为模型的激活函数,其数学表达式如式(10)所示:

h(x)=max(0,x)

(10)

相较于sigmoid和tanh激活函数,ReLu可以很好地解决反向传播中梯度消失的问题,并且可以减少参数之间的依存关系,缓解过拟合问题的发生;损失函数(loss function)用来评估模型预测值和标签值的差别,损失函数的值越小,模型的效果就越好,模型的训练过程就相当于损失函数求最优解的过程,本文采用softmax交叉熵函数作为模型的损失函数,其数学表达式如式(11)所示:

(11)

其中:wij表示第i个神经元的第j个权重;b为偏置;zi表示该网络的第i个输出;ai表示softmax的输出值,即对应了每个像素点的预测值;yi表示真实的分类结果,即每个像素点的标签值。训练过程中加入了Dropout,目的是使模型在每次训练时随机让某些隐藏层节点不工作,这种方法可以有效地减少每次训练迭代中参数的个数,防止过拟合现象的发生。

模型在预测时,同时读入RGB、灰度图和边缘检测图,三个卷积通道分别对RGB、灰度图和边缘检测图进行特征采样,在卷积通道的末端输出三张热图,将这三张热图进行加权叠加,合并成一张热图后输入到反卷积通道,采用FCN- 8s的特征融合方式,对热图和下采样图进行特征融合,之后通过上采样输出一张结果图。模型预测示意图如图6所示。

3 实验结果与分析

本次实验采取Windows下的tensorflow机器学习框架,使用Anaconda软件进行程序编写,实验平台的配置如下:CPU为Inter Xeon E5-2650 3.5 GHz,GPU为Nvidia Titan X 12 GB。

3.1 实验数据

在深度学习的分类算法中,训练集的质量直接决定了训练出来模型的好坏。本文为了增强模型的普适性及鲁棒性,故采用了两种高分辨率遥感卫星数据,即高分二号数据和World View数据。高分二号遥感图像由西藏高分中心提供,共33景图像,分为4 m多光谱图像和1 m全色图像;World View遥感图像为下载所得,共30景,分为1.8 m多光谱图像和0.5 m全色图像。本次实验区域选择西藏日喀则地区,目的是为了减少云层对实验的干扰。训练集分为原始图像(包括RGB、Gary及边缘特征图像)和与之对应的标签图像。根据手动划分的矢量文件制作标签图像,令道路的灰度值为120,其他区域灰度值为0。为了节省内存并适应网络结构,将训练图片裁剪成100×100的图片进行训练,本次实验共选取12 000对原始图像和标签图像,其中训练集为10 000对,验证集为2 000对,且训练集和测试集不重复,图7为训练集数据。

图6 模型预测示意图

图7 训练集数据

3.2 实验结果与分析

为了验证多卫星源输入对训练结果的影响,本文将对比单个高分卫星图像作为输入和两种卫星图像一起投入网络作训练的效果,分3种制作训练集方法,即:1)方法1:训练集全部采用高分二号图像;2)方法2:训练集全部采用World View图像;3)方法3:高分二号和World View图像以1:1的比例制作训练集。不同输入比例的训练收敛速度对比如图8所示。

图8 不同数据比例训练收敛速度对比

从图8中可以看出,方法1、方法2只采用一种高分辨率图像作为训练集时,训练迭代次数较多,这是因为单种数据源的特征信息较少,模型需要大量的迭代计算来获得更多的图像特征;在这三种方法中,方法3的迭代效率明显高于方法1和方法2,这是由于加入了适当比例分辨率较低的图像作为补充,模型可以同时对两种不同分辨率图像进行特征提取,故本文将采用方法3的训练集制作方式来进行模型的训练。

本次实验模型基于FCN- 8s,为验证该方法在高分辨率遥感影像道路提取上的效果,将其与传统的分水岭算法、支持向量机算法进行对比,然后再与深度学习中FCN的3个变种FCN- 8s、FCN- 16s、FCN- 32s进行对比。最终的分类结果对比如图9所示。从图9中可以看出:传统方法中,SVM算法提取出的道路网络更接近于标签图片,但SVM算法和分水岭算法都会误将与道路颜色相近的空地识别成道路;FCN的三种方法中,FCN- 8s取得了较好的分割效果,但道路的边缘信息提取得不够准确,而由于特征融合的效果不好,FCN- 16s和FCN- 32s道路提取的效果较差;本文方法在FCN- 8s的基础上加入了Canny边缘检测信息,结果显示,该方法能够有效优化道路边缘细节,且道路网络提取完整。

图9 不同方法分类结果对比

将本文提出的基于FCN的多源遥感道路提取方法与其他几种具有代表性的道路提取方法进行比较,如基于模式识别的SVM算法、基于数学形态学的分水岭算法和传统的FCN算法,结果如表1所示。数据分析显示,本文方法取得了88.5%的道路提取精度,较传统的分水岭算法和SVM算法提升了超过20个百分点,且处理速度上大幅领先;而FCN的三个变种FCN- 32s、FCN- 16s、FCN- 8s中表现最好的是FCN- 8s,达到了74.7%的道路提取精度,但处理速度在这三种方法中最慢;本文方法在FCN- 8s模型上进行改进,在道路提取精度上较FCN- 8s提升了约14个百分点,道路提取速度也提升了30%左右。总体看来,本文基于FCN的多源遥感道路提取方法在道路提取精度和处理速度上都得到了明显的提升。

表1 不同方法道路提取精度和测试用时对比

4 结语

针对半自动道路提取方法存在着提取精度较低、提取速度较慢的问题,提出了一种基于全卷积神经网络的道路提取方法。该方法的优点在其精确、快速的道路提取能力。与此同时,该方法还有许多问题值得进一步研究,如:1)如何将提取单一的道路信息扩展到提取更多的地物信息;2)怎样加入更多特征信息图片来进一步提升该方法的准确率。

猜你喜欢

高分辨率边缘卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
探讨高分辨率CT在肺部小结节诊断中的应用价值
高分辨率合成孔径雷达图像解译系统
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
一张图看懂边缘计算
关于为“一带一路”提供高分辨率遥感星座的设想
高分辨率对地观测系统
在边缘寻找自我