QGIS+Paddle:深度学习遥感建筑提取插件

13 篇文章 2 订阅
6 篇文章 2 订阅

QGIS+Paddle:深度学习遥感建筑提取插件

test

记录

1. 环境配置

QGIS的安装和开发环境的配置网上都有不少资源,但是在配置paddlepaddle-gpu环境的时候还是遇到两个坑,解决方案可以参考:

2. 设想

实现时的想法是获取当前活动图层,如果这个图层是栅格,就读取,然后转为ndarray格式,预处理一下转为tensor。此时加载模型参数,这里目前就随便跑了一个UNet的模型,在AI Studio随便训练了下参数(文件夹中)。然后得到的结果反向处理得到二值图像,保存为tif加载到图层上,然后转为矢量。

3. 实现

  1. 实现的时候第一步就遇到了问题,参考网上不多的文档,没有发现怎么从QgsRasterLayer转为ndarray,他每次貌似只能一个点一个点的访问。最开始参考了这位老哥的这篇博客,自己完善了转换,看这里。感觉这样很慢,不知道还有其他办法没,不过总算能用了。目前采用另一方法,参考这里
  2. 遇到的第二个问题就是预测完成后从ndarray保存栅格。查了半天也没找到怎么办,最后觉得曲线救国。将mask用opencv提取边界,并对边界处理后批量转为wkt,再从wkt中建立MultiPolygon的几何数据,最后将这个数据显示在界面上。
  3. 然后遇到的问题是坐标不对,显示出来的MultiPolygon与原始的数据重叠不到一起去。在参考这位老哥这位老哥后,经过探索尝试,使用变换解决了。

代码

github项目地址:https://github.com/geoyee/buildseg
其中主要代码在plugin/buildseg/buildSeg.py和plugin/buildseg/utils/中,其他基本都是QGIS的插件模板。

utils
   ├----- __init__.py
   ├----- boundary.py  # 边界提取
   ├----- convert.py  # 栅格转ndarray与坐标转换
   ├----- infer.py  # 深度学习预测
   └----- qgser.py  # 显示、wkt、获得转换矩阵等qgis操作

如何玩一玩这种没有打包发布的插件,可以参考这里

后续

目前这个项目只是学习的练手项目,还有非常多问题(如图像大小固定256*256,等),只为了后续能将一些其他的深度学习能力建设到QGIS的插件中,让深度学习更好的服务GIS。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值