论文精度:基于地理分区与分层对象提取的喀斯特山区土地利用精细制图研究

发布时间:2026/6/13 10:19:00
论文精度:基于地理分区与分层对象提取的喀斯特山区土地利用精细制图研究 基于地理分区与分层对象提取的喀斯特山区土地利用精细制图研究一、研究背景与意义喀斯特山区是由石灰岩、白云岩等可溶性碳酸盐岩发育形成的独特地质系统具有复杂的三维空间结构和独特的水文地质过程。全球约25%的无冰陆地面积被喀斯特地貌覆盖超过20%的人口依赖喀斯特地区的水源。在中国喀斯特地貌总面积达344.4万平方公里其中华南喀斯特区以贵州为中心是世界三大喀斯特集中分布区之一。然而喀斯特山区土壤形成缓慢、土层贫瘠加之雨热同期、暴雨集中以及人类农业活动的持续干扰导致严重的水土流失和石漠化加速。该区域面临生态脆弱、人地矛盾突出、荒漠化严重等多重挑战。与此同时喀斯特山区多云多雨、地块破碎等独特地理条件使得高质量卫星影像数据稀缺像元混合问题严重。在这样的背景下如何利用高分辨率遥感影像结合地理分区与深度学习技术实现喀斯特山区的精细土地利用制图成为当前生态监测与资源管理的关键科学问题。本研究正是针对这一需求提出了一套融合地理分区策略、分层对象提取机制与深度学习网络HBGNet的创新方法并在贵州北盘江流域的花江段进行了实验验证。二、研究区域与数据2.1 研究区概况研究区位于贵州省北盘江流域的花江段跨越关岭县与贞丰县东经105.15°–105.56°北纬25.07°–26.05°。该区处于云贵高原向广西丘陵的过渡斜坡带喀斯特地貌发育强烈。西北部的关岭县为陡峭的断块山地东南部的贞丰县形成阶梯状台地结构垂直高差超过1600米包含溶蚀丘陵、峰丛洼地、喀斯特峡谷等多种地貌形态。在长期的人类活动与喀斯特过程相互作用下研究区形成了高度异质性的土地利用系统。深切的河谷和多级台地造成了“破碎-梯田”二元结构具体表现为台地顶部集中分布林地与果园坡面嵌入旱作梯田河谷沿线形成条状耕作区以及散落的村庄聚落。这种地形约束下的土地利用模式为高分辨率遥感影像的精细制图提供了极具挑战性的实验场地。2.2 数据集本研究采用Google Earth Pro获取的2020–2022年旱季无云高分辨率遥感影像空间分辨率≤1米作为核心数据源。经过正射校正、辐射归一化和地形阴影补偿等预处理消除了喀斯特剧烈地形起伏带来的像素位移和辐射失真生成了兼具几何精度和光谱保真度的标准化影像。同时构建了多源地理数据空间约束系统从OpenStreetMap提取路网建立交通走廊利用30米分辨率SRTM DEM数据进行水文分析勾勒北盘江水系框架从DEM数据中提取地形起伏度、坡度变率、流域边界等地形指标引入国家地理普查数据获取粗粒度土地利用信息。通过空间叠加分析将研究区划分为若干地理子区域将复杂山地转化为可计算单元并引入先验知识约束。三、研究方法与实验3.1 总体思路受地质构造、地形地貌影响喀斯特山区土地利用对象分布天然破碎空间结构具有显著异质性这给遥感影像解译带来极大不确定性。为此本研究提出“地理分区分层对象提取”框架流程分为三个阶段地理分区从粗到细实现多尺度空间分区为后续对象提取建立先验约束分层对象提取针对不同土地利用类型的视觉差异构建分层提取方案并利用深度学习网络HBGNet实现各对象的自动提取后处理与空间分析整合提取结果进行矢量化、拓扑检查、影像形态学处理生成精细土地利用图并计算景观格局指数。3.2 地理分区地理分区是地质研究中表达区域分异规律的基本方法旨在捕捉和量化地理现象的内在空间依赖性和异质性特征。本研究将复杂山地系统分层划分为三个层级广域空间、自然分区和功能分区。广域空间即整个研究区域。自然分区初步降低喀斯特山区的空间异质性为功能分区划定提供约束同时有助于样本集的代表性构建。具体采用多年生长季平均NDVI及其变异系数进行空间聚类实现自然分区。功能分区在自然分区基础上叠加行政边界、主要河流和路网划分出建设区、生态区和农业区。建设区是人工居住与基础设施主要区域生态区以林草、河流湖泊为主农业区则以耕地和果园为主。分区完成后进一步提取线性控制要素路网、水系网、地形网将自然分区细化为内部均质的子区域。最终结合土地利用产品与土地调查数据划定农业区、林草区、不透水面区、水体区和其他区。3.3 分层对象提取受生物视觉认知系统的启发本研究采用分层策略进行地物提取即将某一类对象作为正样本其他类作为负样本逐类提取或成对提取。根据影像认知与目标需求提取对象包括两类线状要素道路、水系和六类面状要素建筑、水体、耕地、果园、林草地、其他。考虑到道路和水系具有较高的时空稳定性直接基于基础地理数据进行拓扑验证与人工修正。对于六类面状要素采用逐类提取的分层策略。通过对目标对象的形态与空间分布规律进行系统分析见下表建立了“建筑→水体→耕地→果园→林草地→其他”的提取顺序。其依据如下建筑形状规则、空间聚集显著优先提取水体呈现均质蓝绿色光谱与其他地物差异明显次优先农业区中耕地边界清晰、内部纹理均匀再次优先果园具有颗粒状纹理和明确边界再次林草地因植被覆盖复杂、边界模糊靠后提取剩余类型裸地、荒地等归为“其他”。提取顺序土地利用类型影像特征1建筑形状规则、空间聚集城市为大块独立单体乡村为密集连续小块2水体均质纹理蓝绿色调形态和大小多样3耕地边界清晰、纹理均匀邻接类别有限4果园颗粒状纹理边界明确5林草地植被覆盖复杂形状多样边界模糊6其他裸地、荒地等3.4 HBGNet模型本研究采用分层语义边界引导网络HBGNet实现对象提取。该网络联合学习低层边界信息与高层语义信息相比传统语义分割网络具有三大优势局部-全局上下文聚合模块整合局部与全局空间信息增强特征对象感知特别适用于山地丘陵等复杂地形边界引导模块提取空间显式的边界特征引导和约束多级语义特征减少提取对象的边界模糊多粒度特征融合模块增强多粒度语义信息表示提升小尺寸对象如破碎耕地的提取能力。损失函数由三部分组成掩膜预测损失二元交叉熵、边缘预测损失负对数似然、距离预测损失均方误差。3.5 后处理与分析提取结果后处理包括影像形态学处理消除孤立像素和小斑块填充小空洞矢量化与拓扑检查使用Douglas-Peucker算法去除冗余节点人工检查拓扑错误分层合并通过顺序掩膜与擦除操作避免不同对象图层间的冲突。最终生成精细土地利用图并计算斑块密度、平均斑块面积、景观形状指数等景观格局指标揭示喀斯特山区的空间异质性。3.6 实验设置基于高分辨率影像和野外调查数据通过人工目视解译构建真值数据集经多组解译员交叉验证样本位置精度达95.2%。所有样本标准化为500×500像素以充分捕捉典型喀斯特地貌如裸岩、裂隙植被的类内光谱-纹理变异性。采用随机水平/垂直翻转、±30°旋转、HSV色彩空间扰动等数据增强策略将原始样本量扩大5倍最终获得50×5个训练-验证样本。实验基于PyTorch 1.7框架硬件配置为NVIDIA GeForce RTX 3080 GPU10 GB显存和Intel i7-9300 CPUCUDA 12.0加速。训练参数batch size 32150个epoch余弦退火学习率调度最低学习率1e-6。四、实验结果与分析4.1 精度评估采用总体精度、Kappa系数、平均交并比、F1分数等指标进行评估。研究区选取8个1000×1000像素的样本区进行人工标注。结果如下表所示土地利用类型OAKappaF1mIoU ± SD耕地0.9180.8310.9010.819±0.627果园0.9810.9170.9270.864±0.639水体0.9920.9290.9330.874±0.363建筑0.9850.7580.7650.620±0.437林草地0.8880.6900.7600.613±0.531其他0.8650.4350.5020.335±0.836总体0.8150.7500.7980.688±0.572水体的识别性能最高主要由于其独特的光谱反射特征和清晰的空间边界。果园因人工种植形成的规则行状排列呈现明显的点状或网格状纹理易于区分。耕地一般具有明确的块状或条状边界和相对均匀的内部纹理提取精度较高但在作物生长早期或休耕期其光谱特征与裸地等相似降低了模型判别能力。建筑的总体精度较高但存在明显的漏检问题特别是山区的小型或低矮建筑易被误分类为裸地或道路。林草地的精度相对较低除与耕地、果园混淆外其内部植被类型多样类内光谱变异性大。4.2 空间结构分析研究共提取了890,832个土地利用对象分为六大类。林草地面积最大占总面积的54.55%呈带状分布主要集中在南部和北部山区平均海拔1037米平均坡度24.39°不适合农业和建设活动形成了重要的生态屏障。耕地是第二大类型占15.62%主要分布在北部和中部的平坦区域平均坡度13°在山区则以小斑块散落分布。果园仅占3.54%主要位于耕地与林草地的生态过渡带集中在中缓坡丘陵空间连续性较低。建筑主要为农村居民点呈现双核空间分布模式位于耕地内部或边缘以及主要交通走廊沿线。水体以位于两县交界处的北盘江支流为主中部和北部有少量分散小水体无大型连续水域。景观格局指数分析表明林草地斑块密度最低3.37平均斑块面积最大0.29646 km²但景观形状指数较高4.32边界复杂边缘效应明显。建筑斑块密度最高4025.97平均斑块面积最小0.00025 km²呈现高度破碎化反映散居村落和小型设施。耕地斑块密度1580.29平均斑块面积0.00063 km²破碎化程度高阻碍规模化农业生产和机械化操作。水体、果园、道路的斑块密度也较高表明这些地类以大量相对小斑块存在。建筑、水体、耕地、果园的LSI较低1.09–1.33形状相对简单规则体现了人类规划建设的影响。五、讨论5.1 方法有效性对比定性评估显示HBGNet在几何保真度、边界完整性和空间一致性上明显优于U-Net和DeepLabV3等传统架构。在复杂喀斯特景观中HBGNet能有效识别并保留不同地物的精细形状特征提取结果边界清晰完整而传统模型因对异质性纹理和不规则形状的适应性有限容易出现边界模糊和断裂。分层提取框架进一步减少了类间混淆。与单一多类模型相比分层策略优先提取高置信度对象如建筑再逐步解决模糊对象确保了主导特征被充分捕捉避免邻近对象的干扰。这种顺序精化使得地物层次逻辑有序、拓扑一致。尤其是在果园提取上分层模型成功识别出规则排列的果园地块同时排除了林草地冠层结构混乱和耕地纹理相对均质的干扰。定量对比表明分层策略独立模型逐类提取在总体精度、Kappa、F1、mIoU上分别比单一多类模型提升了0.028、0.075、0.053、0.085具有统计显著性。地理分区策略结合土地利用先验知识有效抑制了提取错误和拓扑不一致。在栅格转矢量过程中先验知识解决了线性要素如道路或破碎林地被相邻耕地多边形错误包围的歧义实现了7.2%误分类对象的集体消除。然而地理分区依赖于专家知识可能引入主观性未来可设计基于多源数据和定量准则的半自动或自动分区技术。5.2 制图成果的价值本研究提供的高分辨率、高精度土地利用图以及微地形单元特征和动态变化信息显著提升了基础地面数据的质量。这不仅为研究喀斯特地区高度异质性的生态功能空间提供了基础数据还增强了生态价值核算系统包括水源涵养、土壤保持、碳汇等功能的空间表征能力。通过数字化喀斯特地区的“三维”结构可以精确刻画峰丛洼地、溶蚀裂隙、天坑等微地形单元使生态价值评估模型能基于实际地表条件进行计算。地理与自然分区的整合作为技术途径可以解决喀斯特地区高异质性带来的生态价值评估适宜性问题对不同分区单元应用差异化参数避免传统方法参数化导致的系统误差。在本研究区地理分区技术使得碳酸盐岩纯度、裂隙发育程度、溶蚀强度等先验知识能够融入制图过程从而精确量化同种植被类型在不同喀斯特条件下的生态功能差异使评估结果更符合喀斯特山区的区域特征。此外基于对象的精细制图能够识别传统方法难以区分的细微生态功能单元如石漠化治理区内的残存植被斑块、植被早期恢复区、小尺度土地利用单元等。在后续生态价值评估中可以在具体对象单元级别进行计算使结果反映喀斯特地区独特的空间分异模式为县域或流域尺度的微观生态评估与精准治理决策提供直接支持。5.3 局限性与未来展望本研究仍存在若干局限性研究区域仅限于贵州省特定区域方法的泛化能力尚需在其他喀斯特山区如西南其他地区、地中海或加勒比地区验证。地理分区标准和分层提取顺序依赖专家知识可能引入不确定性未来可开发半自动/自动分区技术。HBGNet模型复杂度较高混合网络完全获取多尺度信息可能影响在异质性区域的扩展性轻量化替代方案值得探索。本研究使用静态高分辨率影像2020–2022引入多时相分析有助于更好地理解土地利用变化与生态动态。未来工作将聚焦于轻量化架构的模型适应性、扩展验证至异质性区域以及整合多时相或多传感器数据以增强动态监测能力。六、结论本研究提出了一种融合地理分区、分层对象提取与深度学习网络HBGNet的喀斯特山区土地利用精细制图方法。通过将研究区划分为计算上受约束的子区域并分层提取建筑、水体、耕地、果园、林草地等不同地理对象显著提升了对象判别能力和边界勾勒精度。在北盘江流域关岭县与贞丰县的实验验证中方法取得了总体精度0.815、Kappa系数0.750、F1分数0.798、平均交并比0.688的优异性能。研究共识别和绘制了890,832个对象其中林草地占据主导其次为耕地。不同土地利用类型的空间分布模式差异明显林草地呈大面积连续分布耕地则呈现显著的散碎-聚集混合格局反映了海拔等自然因素与人类活动可达性等人为因素的共同影响。本研究不仅为研究区建立了综合数据库为后续研究提供了关键先验信息也为其他生态脆弱的喀斯特地区的精细土地利用制图提供了有价值的方法模板。尽管存在依赖专家知识、模型复杂度高等局限但通过未来轻量化架构、跨区域验证和多时相数据融合该方法有望在更广泛的喀斯特山区生态监测与资源管理中发挥重要作用。关键词喀斯特山区精细土地利用制图高分辨率遥感地理分区分层对象提取HBGNet深度学习代码二、HBGNet 模型土地利用精细制图2.1 边界引导模块Boundary Guided ModuleclassBoundaryGuidedModule(nn.Module):边界引导模块提取显式边界特征并约束语义特征def__init__(self,in_channels):super(BoundaryGuidedModule,self).__init__()self.boundary_convnn.Sequential(nn.Conv2d(in_channels,64,kernel_size3,padding1),nn.BatchNorm2d(64),nn.ReLU(inplaceTrue),nn.Conv2d(64,1,kernel_size1))self.sigmoidnn.Sigmoid()defforward(self,semantic_feat):# semantic_feat: [B, C, H, W]boundary_mapself.boundary_conv(semantic_feat)boundary_mapself.sigmoid(boundary_map)# 边界概率图# 用边界图加权语义特征guided_featsemantic_feat*boundary_mapreturnguided_feat,boundary_map2.2 局部-全局上下文聚合模块classLGCA(nn.Module):Local-Global Context Aggregationdef__init__(self,in_channels,reduction16):super(LGCA,self).__init__()self.local_convnn.Conv2d(in_channels,in_channels,kernel_size3,padding1)self.global_poolnn.AdaptiveAvgPool2d(1)self.global_fcnn.Sequential(nn.Linear(in_channels,in_channels//reduction),nn.ReLU(inplaceTrue),nn.Linear(in_channels//reduction,in_channels),nn.Sigmoid())self.normnn.BatchNorm2d(in_channels)defforward(self,x):localself.local_conv(x)B,C,_,_x.shape global_weightsself.global_pool(x).view(B,C)global_weightsself.global_fc(global_weights).view(B,C,1,1)outlocal*global_weightsreturnself.norm(outx)2.3 多粒度特征融合模块MGFMclassMGFM(nn.Module):Multi-Grained Feature Fusion Moduledef__init__(self,channels):super(MGFM,self).__init__()self.conv1nn.Conv2d(channels,channels,kernel_size1)self.conv3nn.Conv2d(channels,channels,kernel_size3,padding1)self.conv5nn.Conv2d(channels,channels,kernel_size5,padding2)self.fusionnn.Conv2d(channels*3,channels,kernel_size1)defforward(self,x):f1self.conv1(x)f3self.conv3(x)f5self.conv5(x)fusedtorch.cat([f1,f3,f5],dim1)returnself.fusion(fused)2.4 完整 HBGNet 结构简化版classHBGNet(nn.Module):Hierarchical Semantic Boundary-Guided Networkdef__init__(self,num_classes6,in_channels3):super(HBGNet,self).__init__()# 编码器使用预训练的ResNet34作为骨干这里简化self.encodernn.Sequential(nn.Conv2d(in_channels,64,7,stride2,padding3),nn.BatchNorm2d(64),nn.ReLU(),nn.MaxPool2d(3,stride2,padding1),self._make_layer(64,64,2),self._make_layer(64,128,2,stride2),self._make_layer(128,256,2,stride2),self._make_layer(256,512,2,stride2),)# 边界引导模块self.bgmBoundaryGuidedModule(512)# LGCA和MGFMself.lgcaLGCA(512)self.mgfmMGFM(512)# 解码器self.decodernn.Sequential(nn.Conv2d(512,256,3,padding1),nn.Upsample(scale_factor2,modebilinear),nn.Conv2d(256,128,3,padding1),nn.Upsample(scale_factor2,modebilinear),nn.Conv2d(128,64,3,padding1),nn.Upsample(scale_factor2,modebilinear),nn.Conv2d(64,num_classes,1))def_make_layer(self,in_ch,out_ch,blocks,stride1):layers[nn.Conv2d(in_ch,out_ch,3,stridestride,padding1),nn.BatchNorm2d(out_ch),nn.ReLU()]for_inrange(blocks-1):layers.append(nn.Conv2d(out_ch,out_ch,3,padding1))layers.append(nn.BatchNorm2d(out_ch))layers.append(nn.ReLU())returnnn.Sequential(*layers)defforward(self,x):featself.encoder(x)guided_feat,boundaryself.bgm(feat)guided_featself.lgca(guided_feat)guided_featself.mgfm(guided_feat)outself.decoder(guided_feat)returnout,boundary三、地理分区与分层提取辅助代码3.1 基于NDVI的地理分区importnumpyasnpfromsklearn.clusterimportKMeansfromosgeoimportgdaldefgeographical_zoning(ndvi_array,n_clusters3): 基于多年生长季NDVI均值和变异系数进行功能分区 ndvi_array: 多时相NDVI [time, H, W] 返回: 分区标签数组 [H, W] mean_ndvinp.mean(ndvi_array,axis0)cv_ndvinp.std(ndvi_array,axis0)/(mean_ndvi1e-6)featuresnp.stack([mean_ndvi,cv_ndvi],axis-1)# [H, W, 2]h,wfeatures.shape[:2]features_flatfeatures.reshape(-1,2)kmeansKMeans(n_clustersn_clusters,random_state42,n_init10)labels_flatkmeans.fit_predict(features_flat)labelslabels_flat.reshape(h,w)returnlabels3.2 分层提取顺序执行框架defstratified_extraction(image,models,class_order): 按顺序逐类提取对象后提取的对象避开已提取区域 image: 原始影像 [C, H, W] numpy models: dict, 键为类别名值为训练好的HBGNet模型实例 class_order: list, 提取顺序 [building,water,cropland,...] 返回: 全部分类结果叠加的语义分割图 resultnp.zeros(image.shape[1:],dtypenp.int32)mask_usednp.zeros_like(result,dtypebool)forclsinclass_order:modelmodels[cls]# 模型预测当前类别概率withtorch.no_grad():pred,_model(torch.from_numpy(image).float().unsqueeze(0))pred_classtorch.argmax(pred,dim1).squeeze(0).cpu().numpy()# 仅在当前未被占用的区域中提取current_mask(pred_class1)(~mask_used)result[current_mask]class_order.index(cls)1# 赋值类别IDmask_usedmask_used|current_maskreturnresult四、精度评估与可视化4.1 计算mIoU、OA、Kappa等指标fromsklearn.metricsimportconfusion_matrix,cohen_kappa_scoredefevaluate_segmentation(pred,label,num_classes):计算OA、Kappa、F1、mIoUpred_flatpred.flatten()label_flatlabel.flatten()cmconfusion_matrix(label_flat,pred_flat,labelsrange(num_classes))# OAoanp.trace(cm)/np.sum(cm)# Kappakappacohen_kappa_score(label_flat,pred_flat)# Precision, Recall, F1 per classprecisionnp.diag(cm)/(np.sum(cm,axis0)1e-6)recallnp.diag(cm)/(np.sum(cm,axis1)1e-6)f12*precision*recall/(precisionrecall1e-6)# IoU per classintersectionnp.diag(cm)unionnp.sum(cm,axis0)np.sum(cm,axis1)-intersection iouintersection/(union1e-6)miounp.mean(iou)return{OA:oa,Kappa:kappa,mIoU:miou,F1_per_class:f1,IoU_per_class:iou}4.2 可视化比较importmatplotlib.pyplotaspltdefplot_comparison(images,titles,colormaptab20):fig,axesplt.subplots(1,len(images),figsize(15,5))forax,img,titleinzip(axes,images,titles):ax.imshow(img,cmapcolormap)ax.set_title(title)ax.axis(off)plt.tight_layout()plt.show()五、模型训练简例deftrain_one_epoch(model,dataloader,optimizer,criterion,device):model.train()total_loss0forimgs,masksindataloader:imgs,masksimgs.to(device),masks.to(device)optimizer.zero_grad()outputsmodel(imgs)ifisinstance(outputs,tuple):# HBGNet返回(out, boundary)outputsoutputs[0]losscriterion(outputs,masks)loss.backward()optimizer.step()total_lossloss.item()returntotal_loss/len(dataloader)# 使用示例假设数据加载器已准备好# device torch.device(cuda)# model SegGCN(num_classes5, in_channels23).to(device)# optimizer torch.optim.Adam(model.parameters(), lr1e-3)# criterion nn.CrossEntropyLoss()# for epoch in range(150):# loss train_one_epoch(model, train_loader, optimizer, criterion, device)# print(fEpoch {epoch}: loss{loss:.4f})以上代码涵盖了论文中关键模型的核心实现、地理分区、分层提取策略以及评估方法。实际使用时需要根据具体的数据格式和硬件环境进行调整。这些代码可作为研究复现或工程应用的起点。