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】按钮,实现语义分割,结果如下:

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

相关推荐
_冷眸_2 小时前
用 OpenAI SDK 统一调用 Claude、Gemini、DeepSeek:聊聊 AI API 聚合网关的实践
人工智能·ai·llm·agent
欢醉3 小时前
Hermes Agent安装踩坑复盘
ai·hermes
曦尧3 小时前
Taste-Skill:为 AI 生成界面注入“审美基因“的前端技能框架
ai·自动化
wumingxiaoyao16 小时前
从 0 开始学 AI:第 2 课,AI、机器学习、深度学习和大模型是什么关系?
人工智能·深度学习·机器学习·ai·大模型·llm
leonshi18 小时前
Embedchain 是什么?用最简单的话讲清楚一个"AI 知识问答工具框架"
ai·rag
带刺的坐椅19 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·ai·llm·agent·solon-ai
weigangwin20 小时前
LlamaIndex 第一次试用:别先写 RAG Demo,先验上下文合同
python·ai·agent·rag·检索·llamaindex·观测性
Ricky_Theseus21 小时前
路由模式:智能分发 + 垂直 Agent
ai
XLYcmy1 天前
核内调度问题的分层优化:缓存管理与性能均衡策略 模型评价 模型缺点与改进方向
缓存·ai·启发式算法·图神经网络·遗传算法·数模·模拟退火
wumingxiaoyao1 天前
从 0 开始学 AI:第 4 课,CPU、GPU、显存和算力基础
人工智能·ai·cpu·gpu·显存