qgis-samgeo

前言

本章以QGIS为例,实操samgeo插件在QGIS中的应用。SamGeo是一款基于Segment Anything Model(SAM)的QGIS遥感图像分割插件。SamGeo支持SAM1、SAM2、SAM3模型;提供文本输入、点标记(前景/背景标记)、框选三种交互形式;支持结果输出为矢量(GeoPaclage/Shapefile)或栅格(GeoTIFF)


目录

  • 1 SamGeo QGIS Plugin安装
  • 2 模型加载
  • 3 交互提示遥感影像分割

1SamGeo QGIS Plugin安装

插件下载地址:

html 复制代码
https://github.com/opengeos/qgis-samgeo-plugin.git

或可直接在插件管理器安装SamGeo插件,首先勾选显示实验性质的插件,接着在All目录中找到SamGeo插件进行安装,如下图所示:

插件已在笔者本地安装,因此上图右下角显示为Reinstall Expermental Plugin。

插件安装后,会在菜单栏、工具栏中出现关于SamGeo相关的工具:

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| | |
| 菜单栏 | 工具栏 |

接着点击右侧SamGeo Segementation按钮,在右侧会弹出SamGeo Segementation对应的Dock窗口。初始状态下会提示安装SamGeo分割所需要的环境,当SamGeo环境一键式安装后则展现处所有的功能面板,包含Model、Text、Interactive、Batch、Output五个功能Tab页,如下图所示:

本此尝试以官方提供的数据为例,https://github.com/opengeos/datasets/releases,下载其中places下的wa_building_image.tif与wa_building_centroids.geojson文件。

2 模型加载

进入到SamGeo Segmentation界面【Model】页,选择SamGeo3(SAM3)模型,【Device】选择auto,可在显存不足时,将模型加载到CPU端,同时【Input Layer】相选择某个已加载到主视口区域的影像。

值得注意的是,由于网络原因和Huggingface上Meta/Sam3的访问限制,【Load Model】往往会失败,此时可以将模型从ModelScope上下载到本地,下载地址如下:

bash 复制代码
  https://www.modelscope.cn/models/facebook/sam3

模型下载到本地后,需设置如下环境变量。使SamGeo插件能够通过环境变量找到模型位置:

3 交互提示遥感影像分割

模型加载后, 接着可通过交互提示的方式实现遥感影像分割,交互提示包含文本输入、点标记(前景/背景那个表及)、框选三种形式。

3.1 文本输入

进入到SamGeo Segmentation界面【Text】页,提示框输入buildings,接着点击【Segment by Text】可分割出房屋:

|----------------------------------------------------------------------------|
| |
| 输入提示词 |
| |
| 得到分割结果 |

​3.2 点选

进入到SamGeo Segmentation界面【Interactive】页,通过点击【Add Foreground Points】按钮添加前景点,点击【Add Background Points】添加背景点,点击【Clear Points】可清除已添加的点,点击【Segment by Points】可实现按已有添加的点进行语义分割。

以如下操作流程为例:首先点击【Add Foreground Points】,然后在主视图区点击一处房屋的点,接着点击【Add Background Points】,然后在主视图区点击一处道路点,节点点击【Segment by Points】按钮,效果如下图所示:

|----------------------------------------------------------------------------|
| |
| 其中绿色点为Foreground Point,而红色点为Background Point |

3.3 框选

【Interactive】页还在在框选功能,点击【Draw Box】按钮,接着点击【Segment by Box】按钮,实现语义分割,结果如下:

|----------------------------------------------------------------------------|
| |
| 其中淡蓝色框为手动框选的框 |

相关推荐
Java.慈祥6 小时前
Claude 配置学习
ai·ai编程
rongcj7 小时前
开源之争,撕裂硅谷
ai
咖啡星人k7 小时前
【无标题】
前端·ai·github
GISer_Jing9 小时前
前端转全栈须知后端知识
前端·后端·ai·前端框架
JaydenAI10 小时前
[A2A协议与实现-08]基于MAF的A2A Server设计与实现
ai·agent·a2a·maf
尘埃落定wf11 小时前
Graph Engineering:从循环工程到图编排,让多 Agent 协作像流水线一样丝滑
ai
wu85877345711 小时前
从 Prompt 到 Loop:拆解 AI 工程化四范式的演进逻辑与落地边界
人工智能·ai·prompt·aigc·ai编程
老猿AI洞察11 小时前
三万Token的底牌:Claude Opus 5提示词泄露,揭开AI“灵魂“的每一道锁
人工智能·ai