GeoAI教程:用U-Net、Grounding DINO等提取建筑轮廓
本教程构建了一套完整的地理空间AI工作流,用于从美国国家农业影像计划(NAIP)高分辨率航拍影像中自动提取建筑轮廓。流程涵盖环境配置、数据下载与质检、U-Net模型训练与滑动窗口推理,并对比了零样本分割模型(Grounding DINO+SAM)及预训练Mask R-CNN的性能。
构建端到端GeoAI建筑提取工作流
本教程系统性地设计并实现了面向地理空间AI(GeoAI)的建筑足迹(building footprint)提取全流程,目标是从美国农业部主导的国家农业影像计划(NAIP)提供的高分辨率航拍影像中,自动生成结构化建筑多边形矢量数据。整个流程覆盖数据准备、模型训练、推理部署与结果后处理四大阶段,强调可复现性与模块化设计。
环境配置与数据准备
教程首先配置地理空间深度学习运行环境,安装核心库包括`geoai-py`、`segmentation-models-pytorch`和`buildingregulariser`。环境验证环节检查PyTorch版本及CUDA可用性,并自动识别GPU设备(如Colab中的T4)。随后定义统一配置字典(CFG),明确切片尺寸(512×512)、步长(256)、编码器(ResNet-34)、训练轮次(12)、学习率(1e-3)等关键参数。工作目录创建后,脚本自动从Hugging Face数据集下载三组公开样本:训练用RGB航拍影像(`naip_rgb_train.tif`)、对应建筑矢量标签(`naip_train_buildings.geojson`)及独立测试影像(`naip_test.tif`)。
数据质检与空间属性分析
下载完成后,教程执行严格的数据质检:调用`geoai.get_raster_info()`解析影像元数据,输出坐标参考系(CRS)、分辨率、波段数、地理范围等;通过`geoai.get_raster_stats()`统计各波段像素值分布;使用`geoai.get_vector_info()`检查矢量文件图层结构与字段信息;并加载GeoDataFrame展示前3条建筑要素记录,确认其数量(共1,287栋训练建筑)及空间参考一致性。可视化模块`geoai.view_vector()`叠加矢量轮廓于原始影像上,直观验证标签与影像的空间对齐精度。
U-Net语义分割模型训练与推理
基于质检后的数据,教程构建U-Net架构(ResNet-34编码器+ImageNet预训练权重),以3通道RGB影像为输入、2类(建筑/非建筑)为输出进行端到端训练。训练过程监控损失曲线与指标变化,验证集分割效果经IoU与F1分数量化评估。推理阶段采用滑动窗口策略处理整景未见影像,避免内存溢出并保障边界完整性。预测生成的二值掩膜(binary mask)随后被转换为几何多边形——通过`buildingregulariser`库执行拓扑清理、轮廓简化与直角化正则化,提升矢量结果的制图规范性与下游可用性。
多模型对比与扩展验证
教程进一步拓展技术边界:启用零样本分割能力,组合Grounding DINO(文本引导定位)与Segment Anything Model(SAM)实现无需训练的建筑掩膜生成,并与前述U-Net结果比对;同时调用预训练的Mask R-CNN实例分割模型作为强基线参照。所有方法均在相同测试影像上运行,确保评估公平性。最后,工作流被迁移至真实场景——接入微软行星计算机(Microsoft Planetary Computer)提供的NAIP影像与Overture Maps发布的开放建筑矢量数据,验证其在跨区域、跨数据源条件下的泛化能力与工程鲁棒性。
编者观点:该教程为中国遥感AI落地提供可复用的技术范式,尤其适用于自然资源调查、城市更新监测等需高频更新矢量底图的政务与商业场景,凸显多模型协同与开源数据栈的价值。
本文为企业智脑(优秘智能)编译整理自公开资讯,信息与观点以原文为准,仅供参考。阅读原文(MarkTechPost) →