1. 引言
随着城市化进程的加速,城市河流作为城市生态系统的重要组成部分,对城市的气候调节、水源涵养以及居民的生活质量都有着深远的影响。准确地提取城市河流信息,对于城市规划、水资源管理以及生态环境保护等工作至关重要。
在传统方法中,常用的水体信息提取方法可以分为光谱指数法和影像分割法两大类[1]。其中光谱指数法较为具有代表性的有NDWI [2]、MNDWI [3]等指数,该方法分类速度快,适合进行大范围的水体特征提取,然而如何自适应选取阈值是利用光谱进行水体提取的一个难点,尤其是在高分辨率影像中,错分和误分现象大量存在。影像分割法主要包括基于聚类的、基于区域的和基于特征的影像分割方法。近年来,随着机器学习算法在遥感图像处理领域的广泛应用,水体信息提取领域有了新的发展。吴辉杰提出了基于决策树的浙江省河流水系遥感信息提取方法[4],能减少阴影对水体提取的影响;刘扬洋提出了基于模糊聚类的遥感图像河流区域提取方法[5],解决物类型复杂,边缘轮廓模糊情况下的噪声影响。但这些研究大多关注停留在像素级的水体提取与地物分类上,更关注水体像素本身是否被正确提取出来。
随着遥感影像分辨率的提升,水体提取边界更为准确,但由于影像细节更为丰富,尤其是在城市地区,提取结果中往往存在更多噪声,对提取结果的应用造成了更多的挑战。因此,众多学者开始研究对象级的水体提取,一方面致力于将误提取的噪声剔除,另一方面,还能对提取出的水体对象进行进一步的分类,服务于特定的行业需求。Huang等提出了一种新的像素–对象两级机器学习框架[6],先基于像素提取水体,再基于几何和纹理特征,使用决策树、随机森林等机器学习方法对水体类型进行分类,实现了对复杂城市地区水体的高精度提取和分类。Li等基于随机森林分类器的分类方法[7],将水体分为了河流、水库、湖泊、农业池塘、季节性湿地和稻田。李梦云提出了基于形状与水体淹没频率特征的地表水体分类方法[8],利用随机森林树作为对象级分类器,实现了研究区内10米空间分辨率的地表水体类型的精细化识别。上述方法基本采用了随机森林进行分类,其在抗过拟合、可解释性、效率上都具有较强优越性。然而在城市河流提取中,由于建筑、阴影的干扰,大量的提取对象都是小面积噪声,小部分的是水体;而在水体对象中,还广泛包括湖泊、水库、水池等其他水体对象,河流的对象的数量也占比较小,样本类别极度不平衡。XGBoost [9]在在处理样本不平衡方面,比随机森林更具优势,因此,本文提出基于对象级特征与XGBoost的城市河流提取方法,利用高分辨率影像,开展水体提取,根据河流的形状特点,构造水体对象样本空间构建,输入XGBoost算法进行训练,从而消除噪声,并从水体这个大类别中,将河流水体提取出来。
2. 算法原理
2.1. 总体思路
本文综合采用光谱特征和形状特征对遥感影像进行分割,提取河流水体。首先进行水体像素级特征提取,利用NDWI指数提取水体,并对提取结果进行后处理,去除城市河流水体中的船舶对水体形状造成的影响;接着将提取结果形成水体对象,再根据河流水体形状与湖泊、池塘等水体,以及建筑阴影等误提取对象的形状差异,形成水体对象级的形状特征;接着将提取出的水体对象作为样本集,对水体对象进行打标,并将各样本计算形成的特征作为特征空间,投入XGBoost算法进行训练;最后利用训练后的算法,实现水体的二次分类,完成河流水体的提取。具体思路见图1。
图1. 水体提取XGBoost算法构建总体思路
2.2. 水体像素级特征提取
1) NDWI指数水体提取
采用NDWI指数进行水体提取,其计算公式如式(1),其中
为近红外波段灰度值,
为红波段灰度值,
为绿波段灰度值。
(1)
NDWI指数提取难以避免误提取和漏提取现象,为保证水体尽可能完整地保留,采用经验阈值进行分割,使分割结果将较多地完整保留水体部分。
2) 图像后处理
为减少河流中船只对河流多边形特征的计算,对所有水体对象进行填洞接后处理。根据目前长江干流过闸的主要船舶尺寸[10]估算,船舶大小一般小于2119平方米,为尽可能消除水体内船舶形成的洞对水体形状特征计算造成的影响,将3000平方米以下的水体中的洞进行填补,能覆盖我国城市主流的船舶大小。
2.3. 水体对象级特征提取
提取出的水体对象包括河流、湖泊、城市水渠,以及其他误提取的地物,其形状特征具有明显差异。如河流水体与湖泊水体相比,河流水体呈现明显的线状地物特征,和湖泊水体则普遍呈现面状地物特征;城市水渠相比,河流走势相对蜿蜒,城市水渠则一般会根据城市规划,相对平直;与水池以及阴影、建筑等噪声相比,水池、阴影、建筑等,一般面积较小,相对聚集。为将河流水体与其他水体、误提取地物进行进一步分割,结合上述形状上的区别,构造水体对象级形状特征,量化水体对象形状的差异。
在提取出的水体对象基础上,获取最小外接矩形和最小外接圆,见图2,计算出水体对象的面积(
)、边界长(
),最小外接矩形的面积(
)、周长(
)、长度(
)、宽度(
),以及最小外接圆的半径(
)。
(a) 水体多边形与最小外接矩形 (b) 水体多边形与最小外接圆
图2. 特征多边形提取结果
进一步利用各参数之间的组合关系,综合反应对象的形状特点、边界平滑度、线条蜿蜒水平、面积大小等。本文参考常用形状指数[8],采用如下8个特征,见表1。
表1. 形状指数
特征名称 |
计算公式 |
特征计算描述 |
面积(Area) |
|
表示区域中包含的像素数乘以单个像素的面积。 |
边界长度(Border Length) |
|
表示几何图形的周长,如果几何图形包含多个其他几何图形,则边界长度为所有几何图形的周长之和。 |
形状指数(Shape index) |
|
表示几何图形的边界长度除以其面积的平方根。 |
边界指数(Boundary index) |
|
表示对象的边界长度与最小外接矩形之间的比值,描述影像对象的锯齿状况。 |
密度(Density) |
|
表示对象面积除以最小外接圆半径。 |
紧致度(Compactness) |
|
表示对象最小外接矩形面积除以对象面积。 |
长宽比(Length/Width) |
|
表示最小外接矩形长度与宽度的比值。 |
面积归一化(Normalization) |
|
表示对象面积减去最小对象面积的差,除以做大对象面积减去最小对象面积的差。 |
2.4. XGBoost算法构建
极限梯度提升(Extreme Gradient Boosting, XGBoost)算法[9]是由Chen等在梯度提升决策树(Gradient Boosting Decision Tree, GBDT)的基础之上提出的一种集成学习模型,其主要思路为每一步都添加一个新的决策树,用以计算前一轮模型的预测结果与真实值之间的残差,从而不断减小模型的预测误差[11]。XGBoost在传统的梯度提升算法基础上进行了目标函数的正则化处理、更高效的树结构学习算法以及对稀疏数据的处理等方面改进,使其在模型的准确性、效率和可扩展性方面显著提升。
XGBoost的目标函数如下:
(2)
其中
是损失函数,衡量预测值和真实值之间的差异;
是正则化项,用于控制模型的复杂度,防止过拟合。
(3)
是前t−1轮迭代模型对第i个样本的预测值,
是第t轮新添加的决策树对第i个样本的预测值。
(4)
其中,
是决策树叶子节点的数量,
是正则化参数,用于控制树的叶子节点数量,防止过拟合;
是正则化参数,用于约束叶子节点权重的大小,
是叶子节点的权重向量。
对目标函数进行泰勒展开近似,并求取最优权重,可获得目标函数为:
(5)
其中,
是损失函数在第t − 1轮模型预测值处的一阶导数,
是损失函数在第t − 1轮模型预测值处的二阶导数,
表示被分配到第j个叶子节点的样本集合。
在构建决策树时,XGBoost算法通过计算一阶导数
和二阶导数
,并构造增益Gain来评估分裂节点的好坏:
(6)
其中,
和
是左子节点的一阶导数和二阶导数,
和
是右子节点的一阶导数和二阶导数。
XGBoost算法提供了一套可调整的超参数,并设置了相对通用的默认值,使其在多数数据集上能获得较为平衡的基线性能,确保模型能够正常训练且不易严重过拟合。但本文中,针对河流对象样本和非河流对象样本数量极不平衡的情况,需对超参数进行调整,从而提高模型性能,处理类别不平衡问题,并增强训练稳定性,使其更适合城市河流对象提取的情况。
在精度评定方面,由于样本类别不均衡,往往容易出现总体上表现较好,但是少数类上表现较差的情况。本文中,河流样本为少数类,但正好是精度关注的重点,因此利用以下指标开展算法的精度分析,更能反映河流提取的精度:
1) 精确率(Precision):衡量预测为河流对象的准确性;
2) 召回率(Recall):衡量河流对象被正确识别的比例;
3) F1分数:精确率和召回率的调和平均数;
4) ROC-AUC分数:评估模型在不同阈值下的整体性能;
5) Kappa系数:模型分类结果和实际分类的一致性指标。
3. 实验与分析
3.1. 实验过程
为进一步验证算法在城市水体提取问题上的功能和性能,开展以下实验。实验的研究区域为武汉地区:该区域建筑和森林阴影与水体交错分布,同时道路桥梁对河流的截断、湖泊水库对河流分类的干扰也将会影响河流提取的效率,具有典型的城市水体特点;实验影像选择高分一号8米分辨率影像:一方面,其波段和分辨率设计具有代表性,能代表国产主流的高分辨率影像;另一方面,国产高分一号影像数据来源稳定可靠,配套文件齐全,数据质量高,可以较快完成预处理等工作。
按照算法开展过程,首先利用NDWI指数对图像的像素级特征进行提取与分割,使用经验阈值0.2分割影像,获得15,492个水体多边形,形成水体对象;以水体对象为基础,开展对象级特征的计算与提取,得到由面积(
)、边界长(
),最小外接矩形的面积(
)、周长(
)、长度(
)、宽度(
)、最小外接圆的半径(
)组成的水体对象样本集,并全部进行打标,河流对象标记为1,非河流对象标记为0,形成112个河流样本和15,382个非河流样本;在样本集中,随机选取40%的河流样本和40%的非河流样本形成训练集,其余样本集数据形成测试集,开展XGBoost分类器训练,通过调整超参数优化分类器,取值情况如表2所示。
表2. 超参数取值
超参数名称 |
含义 |
取值 |
取值原因 |
objective |
学习任务类型 |
binary:logistic |
区分河流对象和非河流对象,采用二分类逻辑回归 |
n_estimators |
决策树的数量(提升轮数) |
200 |
增加树的数量以提高模型表达能力,同时配合降低的learning_rate避免过拟合 |
learning_rate |
学习率/收缩步长 |
0.05 |
降低学习率使模型训练更稳定,有助于提高泛化能力 |
max_depth |
树的最大深度 |
5 |
适度减小树深度防止过拟合,同时保留足够的模型复杂度 |
min_child_weight |
叶子节点所需的最小样本权重和 |
2 |
增加最小叶子节点样本权重和,防止在小样本节点上过拟合 |
gamma |
分裂所需的最小损失减少 |
0.1 |
设置分裂最小损失减少阈值,控制模型复杂度 |
subsample |
训练样本采样比例 |
0.8 |
使用部分样本进行训练,增加随机性防止过拟合 |
colsample_bytree |
特征采样比例 |
0.8 |
使用部分特征进行训练,增强模型多样性 |
scale_pos_weight |
正类权重,用于不平衡数据 |
ratio_of_negative_to_positive**0.3 |
非河流样本与河流样本的数量比的0.3次方,动态计算的类别权重比 |
reg_alpha |
L1正则化项权重 |
0.01 |
添加轻微L1正则化,帮助特征选择 |
eg_lambda |
L2正则化项权重 |
0.5 |
调整L2正则化强度,控制模型复杂度 |
eval_metric |
评估指标列表 |
logloss, error, aucpr |
增加aucpr指标,更适合评估类别不平衡场景 |
最后,利用精确率(Precision)、召回率(Recall)、F1分数、ROC-AUC分数、Kappa指数对XGBoost算法的分类结果进行精度分析。
3.2. 实验结果
图3(a)影像为研究区域的近红外假彩色影像;使用NDWI指数对影像进行像素级水体提取,结果如图3(b)影像所示,水体基本能完整的提取出来,城市建筑和阴影也大量被当成了水体,其面积普遍较小,数量极大。计算水体对象的8个对象级特征,并带入XGBoost算法开展训练与分类,得到河流分类如图3(c)所示,其中蓝色为提取出的河流,黄色为噪声与湖泊。图4可见,建筑、阴影普遍形状面积较小、边界情况复杂、紧致度较高,本方法能有效将其与水体区分开;图5可见,湖泊形状通常形状面积较大,但是长宽比较小、紧致度较高、形状指数较小,也能表现出和河流多边形具有较大差异的特征。总体上,本方法能较好地将河流水体与其他水体、城市建筑和阴影等造成区分开来。
(a) 原始影像 (b) NDWI提取结果 (c) 本方法分类结果
图3. 实验区域算法运行总体情况
(a) 原始影像 (b) NDWI提取结果 (c) 本方法分类结果
图4. 河流及建筑、阴影提取结果细节对比
(a) 原始影像 (b) NDWI提取结果 (c) 本方法分类结果
图5. 河流、湖泊提取结果细节对比
3.3. 精度分析
进一步利用精确率(Precision)、召回率(Recall)、F1分数、ROC-AUC分数、Kappa指数验证XGBoost算法的分类结果,具体结果见表3。
表3. 精度分析表
指标 |
指标值(%) |
精确率(Precision) |
92.59 |
召回率(Recall) |
89.29 |
F1分数 |
90.91 |
ROC-AUC分数 |
99.94 |
Kappa指数 |
90.84 |
从精度指标可见,被分类为河流的对象中,92.59%实际确实是河流,所有实际的河流对象中,89.29%被正确分类出来,综合的调和平均数精度为90.91%,ROC-AUC分数和Kappa指数则分别达到99.94%和90.84%,因此利用本模型进行河流对象提取,总体精度达到90.91%。
4. 结论
本方法在利用NDWI指数对GF-1号影像进行像素级水体的基础上,对提取的水体对象计算对象级形状特征,并构造XGBoost算法的训练集与测试集,最后训练XGBoost算法,并进行河流提取。结果表明,本方法充分考虑了河流的光谱特征和形状特征,能有效消除建筑、阴影对水体提取的干扰,实现河流与其他水体的区分;考虑到河流对象样本和非河流样本不均衡的问题,通过对XGBoost算法超参数的调整,能有效提高河流提取精度,总体精度为90.91%。后续需要进一步总结形状特征指数,针对桥梁影响、形状蜿蜒且复杂的河流进行进一步的研究。
NOTES
作者简介:李珏(1992-),女,硕士,工程师,研究方向:水利遥感。Email: 616482420@qq.com