/robosat_geoc

从天地图或谷歌遥感影像WMTS服务中训练、预测建筑物轮廓,fork from robosat/robosat.pink

Primary LanguagePythonMIT LicenseMIT

RoboSat_geoc

从标准WMTS影像中提取建筑物的深度学习框架

RoboSat_Geoc buildings segmentation from Imagery

简介:

RoboSat.geocmapbox/robosatRobosat.pink fork 而来。

利用深度学习工具,可以很方便的使用标准 WMTS 影像对建筑物轮廓提取进行训练和预测。

目的:

  • Mapbox/Robosat 是非常不错的建筑物提取工具,Robosat.pink 对其做了重构和改造,使其易用性得到了提升。
  • Robosat.geocRobosat.pink 的基础上,做了自动化和工程化改造,并可以结合 rs_buildings_extraction ,使用可视化界面和接口的方式进行训练和预测,很方便的用于生产环境。

主要功能:

  • 继承了RoboSat.pink 的所有功能:
    • 提供了命令行工具,可以很方便的进行批处理
    • 遵循了 WMTS 服务标准,方便遥感影像数据的准备
    • 内置了最先进的计算机视觉模型,并可以自行拓展
    • 支持 RGB 和多波段影像,并允许数据融合
    • 提供了 Web 界面工具,可以轻松的显示、对比、选择训练结果
    • 高性能
    • 很轻松的能够拓展
    • 等等
  • 将深度学习训练标注(label) 数据以 PostGIS 的方式存储,对 GISer 极其友好
  • 提供了 WMTS 瓦片服务代理工具,可将天地图、谷歌影像等作为影像数据源(Robosat 不支持类似 http://this_is_host?x={x}&y={y}&z={z} 形式的 URL,仅支持类似 http://this_is_host/z/x/y
  • RoboSat.pink 做了自动化改造,无需手动逐个输入命令行,一键式训练或预测
  • 简化调试方式,仅需提供待训练或预测的范围(extent
  • 自动化训练限定为 PostgreSQL + PostGIS 数据源作为深度学习标注

说明文档:

训练数据准备:

  • 安装 PostgreSQL + PostGIS,创建数据库,添加 PostGIS 扩展 create extension postgis;
  • 使用 shp2pgsql 等工具将已有的建筑物轮廓数据导入 PostGIS 作为深度学习标注数据,或者使用 QGIS 等工具连接 PostGIS 并加载遥感影像底图进行绘制建筑物轮廓

如何安装:

如何运行:

  • 设置已有的建筑物轮廓标注数据
    • 设置 PostGIS 连接: robosat_pink/geoc/config.py 中的 POSTGRESQL
    • 设置已有建筑物轮廓数据表:robosat_pink/geoc/config.py 中的 BUILDING_TABLE
  • 后台运行 WMTS 代理工具:python xyz_proxy.py &
  • 设置训练或预测范围:./test.py 中的 extent
  • 开始训练或预测:python test.py

Windows 中如何开发:

  • 使用 VSCode:
    • 使用 Remote-WSL 拓展连接 WSL 的 Ubuntu,连接该项目文件夹进行开发
  • 使用 PyCharm:

如何作为 Packages:

  • 构建:python setup.py build
  • 安装:python setup.py install
  • 在工程中调用:from robosat_pink.geoc import RSPtrain & from robosat_pink.geoc import RSPpredict
  • Shapely安装:pip install shapely==1.7.0 -U pip install shapely==1.6.4.post2 -U

RoboSat.pink 使用教程

必读教程:

Tools:

  • rsp cover Generate a tiles covering, in csv format: X,Y,Z
  • rsp download Downloads tiles from a remote server (XYZ, WMS, or TMS)
  • rsp extract Extracts GeoJSON features from OpenStreetMap .pbf
  • rsp rasterize Rasterize vector features (GeoJSON or PostGIS), to raster tiles
  • rsp subset Filter images in a slippy map dir using a csv tiles cover
  • rsp tile Tile raster coverage
  • rsp train Trains a model on a dataset
  • rsp export Export a model to ONNX or Torch JIT
  • rsp predict Predict masks, from given inputs and an already trained model
  • rsp compare Compute composite images and/or metrics to compare several XYZ dirs
  • rsp vectorize Extract simplified GeoJSON features from segmentation masks
  • rsp info Print RoboSat.pink version informations

模型优化

  • 利用 robosat.merge 和 features 对预测结果进行规范化,参数调整包括:
  • merge:
    • threshold=1(融合阈值,单位:像素)
  • features:
    • denoise=10(除噪,对要素预处理,单位:像素)
    • grow=20(填坑,作用类似除噪,单位:像素)
    • simplify=0.01(新要素与原要素的简化比)
  • 优化效果:

    RoboSat_Geoc buildings segmentation from Imagery

本项目作者:

欢迎 Issues

欢迎提一个 Issue