程效猛,郑 浩,眭海刚,冯文卿
(1. 武汉大学测绘遥感信息工程国家重点实验室,湖北 武汉 430079; 2. 装备项目管理中心,北京 100034)
道路是一种极其重要的人工地物,是地形图和GIS系统的主要组成数据之一[1]。近年来,高分辨率遥感影像越来越得到人们的关注,从高分影像数据中进行道路的检测与识别已成为重要的研究课题[2]。如果能自动地从遥感影像中提取道路网,将会简化城市地物目标的分类和测量过程[3]。利用已有的矢量数据来获取先验信息,替代人工干预,对于提高遥感影像中道路提取的稳定性和可靠性将会有很大帮助。
矢量路网数据辅助下的道路提取方法是国内外道路提取的研究热点,已吸引一批学者展开相关研究。Mailard和Cavayas首先提出了地图匹配法用来更新数据库,根据旧的道路寻找新的道路[4]。吴晓燕等在已有矢量下建立缓冲区,在缓冲区内部检测道路点和道路段,但是对于新增道路的提取需要人工干预[5]。丁磊等从矢量数据获取可信的训练样本,利用朴素贝叶斯方法对影像进行分类[6]。Cao利用OSM路网数据来辅助提取复杂场景下的道路中线,根据影像的色调和饱和度特征进行聚类来区分道路与背景地物[7]。总结来看,这些算法的不足之处在于,利用分类方法提取出的道路位置不是十分准确,在场景较为复杂的区域会出现错分、断裂等现象,导致道路网整体提取精度不高,并且有时需要引入人工干预。
本文采用OSM道路网数据作为引导矢量,提出一种利用高分辨率遥感影像进行道路自动提取的方法。首先采用灰度形态学滤波的方式对影像进行预处理,通过OSM路网提供的先验信息对模糊C均值(fuzzy C-means,FCM)算法进行改进,并将输入的遥感影像粗分为3类;接着以粗分类结果作为分类特征,通过OSM矢量路网自动获取道路样本,利用支持向量机(support vector machine,SVM)对粗分类结果进行精分类,并采用粒子群优化(particle swarm optimization,PSO)算法对SVM进行最优参数的选取,以提高分类精度;最后对二值化分类结果进行形态学处理,得到精确的道路网信息。
高分辨率遥感影像中含有很丰富的地物细节,非目标噪声繁多,在进行目标地物特征提取时,首先要对影像进行预处理。形态学能够利用结构元素探测图像中目标的结构信息,抗噪声能力比较强[8]。本文应用灰度形态学的膨胀、腐蚀及开闭操作方式对遥感影像进行去噪和增强处理。
针对SVM在分类过程中无法获取高精度道路网的问题[9],本文首先利用FCM对遥感影像进行粗分类,以扩大不同类别之间的距离,然后采用SVM进行精细分类,降低分类的误判率。但是FCM算法聚类效果往往受到初始聚类中心的影响,收敛结果易陷入局部极小值的问题,为此笔者提出了一种改进的FCM聚类算法。
通过OSM矢量路网提供的先验信息给出了一种简洁快速的初始聚类中心选取规则。本文利用FCM将遥感影像粗分为3类,需要选取3个初始聚类中心。首先将矢量路网节点所在位置的像素点作为第1类样本,计算出中心点位置,作为第1类的聚类中心;接着利用矢量路网生成道路缓冲区,覆盖道路区域,选取道路区域附近的相同数量背景点作为第2类样本,计算出中心点位置,作为第2类的聚类中心;最后在远离第1类和第2类样本点的区域选取相同数量的像素点作为第3类样本点,计算出中心点位置,作为第3类的聚类中心。聚类中心计算公式如下
(1)
式中,ICi为第i类的聚类中心;sj为样本点;p为样本个数。
本文选取影像灰度的均值和方差作为影像聚类的特征,充分利用一阶和二阶统计特征进行了有效的特征提取[10]。
本文利用OSM矢量路网节点选取SVM分类所需要的正负样本点。FCM聚类将影像粗分为3类,确定了道路的大致范围。因此在选取正样本点时,只需将落在道路区域矢量节点位置的像素点作为正样本点即可,这样可以排除无效的样本点。
根据经验认为远离道路矢量所在位置的区域为背景地物。因此以OSM矢量路网为中心做缓冲区,覆盖道路区域,将过渡区域外的范围视为背景地物,在背景地物中选取负样本点,如图1所示。
图1 负样本采集
利用OSM矢量路网信息能够自动获取足够多的样本点,为后续的SVM分类提供可靠的样本支撑。
SVM是进行遥感影像分类和地物目标信息提取的常用方法。它能很好地解决分类样本容量小、非线性、高维数等在分类中遇到的较为困难的问题,具有较强的泛化能力[11],然而支持向量机的参数选择的恰当与否会对数据的训练和收敛性带来很大的影响。PSO不仅具有全局寻优能力,而且具有高效的收敛性和较强的局部寻优能力[12]。本文以径向基函数(RBF)作为核函数,利用PSO方法,探讨如何寻找SVM分类器最佳参数。
(2)
(3)
使用粒子群算法对SVM的参数进行优化选择,主要过程如图2所示。
图2 PSO寻找SVM最优参数流程
利用OSM矢量路网提供的先验信息去除房屋等建筑物对分类后图像的影响。首先根据Canny算子求取地物边缘,然后将边缘像素点的8邻域作为边缘点,增大边缘线的宽度,得到边缘轮廓图。接着利用边缘轮廓图对二值道路图进行掩膜,消除其他地物与道路的连接[13]。然后利用OSM矢量路网生成道路成缓冲区,根据新旧路网相互连接的假设,与矢量路网道路缓冲区相接的为道路区域,与道路区域已断开的房屋等建筑物区域为非道路区域。当去除房屋等建筑物的非道路图斑后,利用闭运算连接断开的道路段,通过背景填充的方法填充孤立的孔洞,使整个道路区域变得完整。采用形态学腐蚀和膨胀运算,形成整个道路网。
为验证本文方法的有效性和普适性,利用Matlab实现了本文所提出的道路提取算法,采用Google Earth影像数据进行试验,所选两个地区的道路分布和光谱辐射信息具有较大差异,并与直接采用FCM算法和传统的SVM算法进行了比较。选取了2016年安徽省两个不同区域的影像作为试验区域,分辨率均为1 m,大小分别为1816×1648像素和1234×1090像素,并从官网下载了每个区域对应的OSM矢量路网作为引导矢量。利用本文算法分别对两幅影像进行处理,得到的试验结果如图3、图4 所示。
图3 试验1区域
试验1区包含较多的建筑物区域和空地,同谱异物带来很强的干扰,并且存在较多宽度不同的道路。从SVM分类结果来看,本文算法对不同宽度的道路有较强的适应性,能够将大部分道路提取出来,后处理的过程中除了少数区域外,能够去除建筑物干扰,并且保留了宽度较小的道路。试验2区有大量的房屋和其他建筑物,对道路提取形成了很强的干扰。但是从分类结果来看,本文算法对道路和背景有很好的区分性,具有较强的抗干扰能力,能够区分密集建筑物区域中的道路,经过形态学后处理,可以得到准确、完整的道路网。
直接使用FCM算法及传统的SVM算法进行对比试验,对上述试验2区域的影像进行处理,得到的道路分类结果如图5、图6所示。
图4 试验2区域
图5 FCM分类结果
图6 传统SVM分类结果
从分类结果中可以看到,使用FCM算法对试验区进行分类后,分类结果中仍然存在大量的干扰,无法将具有明显光谱差异的建筑物与道路区分开来,并且房屋与道路之间有很强的黏滞现象,分类效果不明显。直接使用传统SVM方法效果比FCM分类效果要好,去除了大部分的干扰物,但是从试验2区来看,对于复杂区域,传统的SVM容易存在错分和漏分的现象,分类精度不高。
为了对试验结果进行定量化评估,选取了完整性(Completeness)、正确性(Correctness)、质量(Quality)的定量评价结果[14-15],得到的精度评价结果见表1。从表1中的试验结果精度对比中可以看出,本文算法对于不同场景的道路提取具有良好的稳健性,并且为全自动提取,提高了效率。
表1 定量评价 (%)
针对目前遥感影像分类的道路提取方法存在道路位置定位不准确,容易出现错分、漏分的现象及自动化程度低的问题,本文提出了一种基于OSM矢量路网的全自动道路提取方法。利用OSM提供的先验信息改进分类算法,提出的SVM结合FCM策略能够很好地提高道路网提取的精度,并且提升了道路提取的自动化程度。通过算法对比及精确评价证明本文所提出算法的精确性和有效性。但是本文算法未能完全解决道路遮挡问题和同谱异物现象带来的干扰,试验结果中仍存在信息丢失和误提取等问题,需在下一步研究中进行改善。