赵 莎 郑文武
(衡阳师范学院城市与旅游学院,湖南 衡阳421002)
伴随着航天事业的快速发展,遥感图像获取方式越来越多样化,遥感影像分类作为遥感应用中重要的信息处理手段,从影像中解读出不同地物信息应用于决策规划中显得尤其重要。使用传统的遥感影像监督分类方法训练样本的光谱特征或纹理特征的一致性进行分类,因为对训练样本的依赖性较强,已远不能满足对海量数据的快速分类要求。同时由于技术限制目前仍存在异物同谱,同物异谱现象。尤其是处理房屋分类时,由于房屋与道路空间联系紧密,光谱特征相似,反射特性相近,若直接根据光谱特性来从遥感图像中提取两者地物信息,则图像的分类精度明显下降。因此,如何克服以上问题从大量遥感图像数据中快速提取出有用信息进行遥感自动分类并提高影像分类精度,是遥感图像应用领域的一个研究热点。传统的模式下,在对遥感影像分类处理过程中,需要耗费大量的精力才能获取有用的监督信息,影像分类往往假设数据样本足够大,对遥感影像数据处理时有一定局限性。为了解决了上述问题,本文利用机器学习方法,探索在非监督分类模式下的基于遥感的房屋自动提取技术。
在对图像进行预处理过程中将无关或次要特征信息进行删减,然后对样本集进行分类分为训练数据集和测试数据集,将遥感影像通过计算梯度直方图量化为特征向量,通过用少量的特征向量代替全部的特征向量,通过少量训练数据对模型进行训练,通过机器学习算法测试出合理的参数,得到一个适合系统性能满足要求的模型,再对测试影像进行测试。这种方法有三个优点:一是训练时间的大大减少;二是原始样本数据要去数量减少;三是训练过程降低了所需空间内存,优化了设备速度。通过这种方式来使模型达到最优化,满足快速自动提取地物,进行影像分类的目的。
图1 房屋影像a
图2 房屋影像b
图3 直方图a
图4 直方图b
本研究选取了华南地区,珠三角区域的建制镇,房屋类型多样,分布特点不一,影像地物丰富,有丰富的房屋样本信息,作为房屋提取的基本影像较为合理。并且以华南地区作为实验数据进行遥感影像房屋自动提取,可以为进一步的城市扩张研究,建设用地动态监测,提供技术支撑。获取影像数据后进行的主要预处理工作包括辐射定标,大气校正,几何校正。对预处理后的高分辨率遥感影像进行裁剪,选取不同高度,不同纹理,不同稀疏程度的典型房屋样本区域,裁剪后影像通过ArcGIS 转化为图片格式。
选取影像房屋集中区域进行裁剪导出后,构建训练样本集,样本集中包含四十幅房屋数据。因为房屋提取的关键是自身的纹理特征,为减少计算,其他特征应尽量避免,构建数据集过程中选取的样本一定要有充分的房屋地物,尽量避免其他地物。通过以上操作去除了其他噪声数据,可有效的提高训练效率,加快自动提取的速度。选取了位于十字路口的房屋数据(见图1),纹理特征丰富,建筑结构各异,其中左边为规则的砖构房屋,高度不超过六层,住宅用途的自建房,是建制镇中的常见房屋类型。右侧为白色棚房,建筑材料为反射性质较强的铝制板,一般用作商服用途,也作为常见房屋类型之一。图2 为工厂类型的房屋特征,房屋形状规则,分布在硬底化地面,房屋的颜色和纹理特征各不相同。机器学习过程中样本质量和样本大小会影响模型性能,需提供质量较高和数量尽可能多的样本数。
模型训练前需要先把数据预处理阶段得到的图片数据集利用机器学习软件包sklearn 中的方法train_test_split 分为训练数据集和测试数据集。接着使用训练数据集Xtrain 和类别目标索引Ytrain 来进行模型训练。在sklearn.feature_selection 模块中的类可以用来对样本集进行特征选择和降维,这将会提高估计器的准确度或者增强它们在高维数据集上的性能。将单个像素作为特征值,通过在水平和竖直方向上分别乘以[-1,0,1],[1,0,-1]T 之后,计算梯度大小和方向。用单个像素中2π/bin 为组距,统计bin 特征的个数,生成直方图,由block 窗口大小乘以单个像素的特征数,再乘以block 窗口的个数,得到梯度特征直方图。利用PCA 算法进行特征降维处理,根据效果选择合适的参数,对训练数据集和测试数据集进行特征提取。以图1,图2 为例,将图片输入scikit-learn 中,计算直方图,结果如上图3,图4 所示。符合观察到的图2 影像整体分布情况,图片色调单一,道路区域和棚房区域为主的色调占主要部分。图3,背景干扰信息较多,色彩丰富,主要的变化区域房屋边界区域。
使用GridSearchCV 来选择一个最佳的SVC 模型参数,然后使用最佳参数对模型进行训练。因为GridSearchCV 使用矩阵式搜索法,对每组参数组合进行一次训练,找到最合适的模型参数。而后使用这一模型对测试样本进行预测,clf 对象就会包含训练出的模型的相关参数,可以使用这个模型来进行预测。图5为南方农村自建房屋,排列规则,房屋分布密集,影像色调单一,是典型的房屋纯净度较高的图片,由图7 可看出提取效果较好,能提取出明显的房屋边界。图6 提取效果相比之下,质量较差,未能将房屋与周围其他地物明显分开,边界信息模糊。分析可知纯净房屋窗口的提取效果远超非纯净房屋窗口,背景干扰因素对模型准确性有极大影响。根据模型提取房屋时对阴影信息敏感,能区分出阴影区域,但对于投射到房屋本身上的阴影也做了相同处理。
我们通过设置n-jobs=4 来启动四个线程并发执行,同时设置verbose=2 来输出一些过程信息。并且使用confusion-matrix输出预测准确性信息。从输出的对角线的数据可以得知大部分预测数据基本正确。再使用classification-report 输出分类报告,查看测准率,召回率及F1 Score。实验中使用了39 个图片样本,测准率和召回率平均达到了0.75 以上。
图5 输入房屋图像c
图6 输入房屋图d
图7 输出房屋图像c
图8 输出房屋图d
本文提出了一种遥感影像自动识别房屋的机器学习方法,对影像进行规则裁剪获取房屋影像,构建图片数据集,利用机器学习算法,实现房屋的自动提取。主要得到如下结论:
4.1 与基于光谱特征和面向对象进行遥感影像分类的传统方法相比,本文选择人工选择裁剪后的纯净房屋区域影像作为研究对象,构建数据集进行识别,避免了其他地物的干扰。研究表明,选择的房屋区域纯净度和样本容量的大小是分类精度的关键。同时因为PCA 算法的加入对高维度的特征向量进行了降维操作,避免了过高的特征维度造成的过拟合情况,减少了计算量,加快了自动提取效率。
4.2 所提出的房屋提取方法可同时处理批量数据,并且一次训练出的模型可进行保存后多次使用,减少了反复训练的数据需要和训练时间,因此适用于大量遥感数据的自动化分类处理。在得到图片数据集后进行特征提取和模型构建,通过机器学习方法进行房屋自动识别,提高了影像地物提取的自动化程度。
4.3 相较于传统的遥感影像提取方式,机器学习的参与使遥感地物提取实现了智能化,只需输入数据无需软件操作,无需参数设置,直接得到提取后影像图片,使影像分类的操作更便捷。在软件方面,sklearn 包含了图片的多种处理方式,如图像增强,卷积运算直接调用即可,减少了数据数据导入导出步骤,同时分步的代码块,可实时获取任意阶段数据,大大节省了数据存储空间。