GeoAI教程教你用U‑Net、Grounding DINO与SAM提取NAIP影像建筑轮廓

0 阅读6分钟应用

背景与意义

随着高分辨率遥感影像的广泛获取,建筑足迹提取已成为城市测绘、灾害评估和智能交通等场景的基础任务。传统手工绘制成本高、时效差,而基于深度学习的 GeoAI 工作流能够实现批量、精准的自动化提取。本文以 NAIP 影像为例,展示了从数据准备、模型训练到后处理的完整步骤,并对比不同模型的优劣,为实际项目落地提供参考。

环境配置与数据准备

  • 运行平台:Google Colab(支持 T4 GPU)或本地 Python 环境。
  • 核心依赖geoai-pysegmentation-models-pytorchbuildingregularisertorchrasteriogeopandas
  • 数据来源
    • NAIP RGB 影像(naip_rgb_train.tifnaip_test.tif
    • 建筑矢量标签(naip_train_buildings.geojson
    • 通过 HuggingFace 数据集链接一键下载,自动校验文件大小。

小技巧:在 Colab 中运行 torch.cuda.is_available() 可确认 GPU 是否被正确识别,若未检测到 GPU,请在 Runtime → Change runtime type 中选择硬件加速器。

模型训练与评估

配置参数

{
  "tile_size": 512,
  "stride": 256,
  "architecture": "unet",
  "encoder": "resnet34",
  "epochs": 12,
  "batch_size": 8,
  "lr": 1e-3
}

训练流程

  1. 切片:使用 geoai.export_geotiff_tiles 将原始影像按 512×512 像素、256 像素步幅切分为训练/验证样本,自动生成对应的掩模。
  2. 模型构建:调用 geoai.train_segmentation_model,采用 ResNet‑34 预训练权重初始化编码器,实现语义分割(建筑 vs 背景)。
  3. 监控指标:训练结束后读取 training_history.pth,绘制 IoU、Loss 曲线,最佳模型在第 7 轮达到验证 IoU 0.78

像素级评估

使用 geoai.calc_segmentation_metrics 对训练集进行交叉验证,得到 IoU=0.78、F1=0.82,说明模型对建筑像素的捕获能力较强。

零样本分割与实例对比

Grounding DINO + SAM

通过 GroundedSAM 类加载 IDEA-Research/grounding-dino-tiny 检测器和 facebook/sam-vit-base 分割器,给定文本提示 ["building", "house", "rooftop"],在单张 1024×1024 切片上实现零样本分割。结果显示约 150 个建筑候选,多数轮廓较为粗糙,需要后处理。

预训练 Mask R‑CNN

加载官方提供的 building_footprints_usa.pth 权重,直接对整幅 NAIP 影像进行实例分割。得到约 180 个建筑实例,轮廓更为精细且每个实例均带置信度。

对比要点

  • 精度:Mask R‑CNN 在建筑边界上更贴合真实形状;Zero‑shot 方法在复杂屋顶上常出现漏检。
  • 成本:Zero‑shot 免训练,仅需数分钟即可得到结果;Mask R‑CNN 需要先完成 U‑Net 训练,整体耗时更高。
  • 适用场景:若项目对快速原型或少量样本敏感,推荐 Grounding DINO+SAM;若追求高质量实例并具备标注数据,仍建议自研 U‑Net 或直接使用 Mask R‑CNN。

后处理与矢量化

  1. 噪声清除:利用 geoai.region_groups 移除面积小于 50 px 的孤立区域。
  2. 栅格转矢量geoai.raster_to_vector 将清洗后的掩模转为 GeoJSON 多边形。
  3. 正交化 & 正则化:分别调用 geoai.orthogonalizegeoai.regularization,得到角度误差 ≤12°、简化容差 0.4 m 的建筑足迹。
  4. 属性计算:使用 geoai.add_geometric_properties 为每个多边形添加面积、周长、长宽比等属性,便于后续统计分析。

结论与展望

本文示范了一个可复用的 GeoAI 工作流:从原始 NAIP 影像出发,经过切片、U‑Net 语义分割、零样本/预训练实例分割、后处理到矢量化,最终得到结构化的建筑足迹数据。该流程兼容多波段(RGB+NIR)影像、支持多类地表覆盖的扩展训练,也可迁移至其他遥感平台(如 Sentinel‑2、PlanetScope)。未来可进一步结合大模型(Prithvi、SAM‑v2)实现跨尺度、跨地区的统一检测,或将生成的建筑库用于城市三维建模与空间决策。


本文代码与完整 notebook 已同步至 https://opengeoai.org,欢迎下载复现。

本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。