segment-geospatial

GitHub
4k 424 中等 1 次阅读 今天MIT开发框架图像
AI 解读 由 AI 自动生成,仅供参考

segment-geospatial(简称 SamGeo)是一款专为地理空间数据分析打造的 Python 工具包,旨在让研究人员和开发者能轻松利用 Meta 发布的“分割一切模型”(SAM)处理卫星影像与地图数据。传统遥感图像分割往往需要复杂的代码编写或专业标注,而 segment-geospatial 极大简化了这一流程,用户仅需少量代码甚至通过文本提示,即可自动识别并提取地物特征。

该工具支持从地图服务下载瓦片并生成 GeoTIFF 文件,能够结合 SAM 及高精度 HQ-SAM 模型进行图像分割。其独特亮点在于灵活的交互方式:用户既可以通过文字描述指定目标,也能在交互式地图上手动标记前景与背景,或直接加载现有的矢量数据作为参考。分割结果可无缝导出为 GeoPackage、Shapefile 等通用地理格式,并支持时间序列影像分析及 REST API 部署。此外,它还提供了 QGIS 插件版本,方便非编程背景的用户直接在桌面软件中操作。无论是从事地球科学研究的学者、开发地理信息应用的工程师,还是需要快速提取地物要素的设计师,segment-geospatial 都能提供高效、低门槛的智能化解决方案。

使用场景

某省级农业监测中心的技术团队正急需从最新的高分辨率卫星影像中,快速提取全省数千个分散的温室大棚轮廓,以评估设施农业的种植规模。

没有 segment-geospatial 时

  • 人工成本极高:分析师不得不依赖人工在 GIS 软件中逐个勾绘大棚边界,面对海量图斑,耗时数周且极易疲劳出错。
  • 传统算法泛化差:尝试使用传统的阈值分割或边缘检测算法,但因光照变化、阴影遮挡及大棚材质多样,导致提取结果破碎,需大量后期修补。
  • 开发门槛高:若想引入深度学习模型,团队需自行编写复杂的代码来适配地理坐标系、处理大幅面 GeoTIFF 切片以及协调 SAM 模型的推理流程。
  • 数据格式转换繁琐:模型输出的普通掩膜图像缺乏地理信息,必须额外编写脚本才能将其转换为带有坐标信息的 Shapefile 或 GeoJSON 供业务系统使用。

使用 segment-geospatial 后

  • 自动化高效提取:利用 segment-geospatial 集成的 SAM 模型,仅需几行 Python 代码即可批量自动识别并分割影像中的大棚,将数周的工作量压缩至几小时。
  • 零样本适应性强:借助 SAM 强大的泛化能力,无需针对特定区域重新训练模型,即可精准应对不同形状、颜色及复杂背景下的温室大棚提取任务。
  • 地理空间原生支持:工具直接读取带坐标的 GeoTIFF 影像,自动处理地图瓦片下载与拼接,并在推理过程中完美保留地理参考信息,消除了坐标对齐的痛点。
  • 一键成果输出:分割结果可直接保存为标准的 GeoPackage 或 GeoJSON 矢量格式,无缝对接现有的农业管理数据库与可视化平台,无需任何格式转换中间件。

segment-geospatial 通过将前沿的视觉大模型与地理空间数据处理流程深度融合,让非 AI 专家也能轻松实现高精度、自动化的遥感地物提取。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU
  • 非绝对必需但强烈推荐用于处理大数据集
  • 建议至少 8GB 显存的 NVIDIA GPU
  • Windows 安装 SAM 3 时需 CUDA 12.1
内存

未说明

依赖
notes推荐使用 pixi 进行安装以获得最可靠的依赖解析,特别是在 Windows 或涉及复杂依赖(如 PyTorch/CUDA)时。若使用 conda,建议在无 GPU 版本自动安装时手动强制安装 CUDA 版本的 PyTorch。在 Windows 上安装 SAM 3 较为复杂,需特定步骤。处理大规模数据需要强大的计算资源,可利用 Google Colab 免费 GPU 或申请 AWS 研究云积分。下载大量底图图块前需获得提供商许可以避免法律风险。
python3.12 (Windows SAM 3 示例), 其他版本未明确限制但需兼容 PyTorch
torch
torchvision
segment-anything
groundingdino-py (可选,用于文本提示)
segment-anything-fast (可选,用于 Fast SAM)
fastapi (可选,用于 API)
uvicorn (可选,用于 API)
triton-windows (仅 Windows)
segment-geospatial hero image

快速开始

SamGeo

image image image image Docker Pulls PyPI Downloads Conda Recipe Conda Downloads DOI QGIS

logo

一个用于使用 Segment Anything Model (SAM) 对地理空间数据进行分割的 Python 包

简介

SamGeo 包的灵感来源于由 Aliaksandr Hancharenka 编写的 segment-anything-eo 仓库。SamGeo 的主要目标是简化用户利用 SAM 进行地理空间数据分析的过程,使用户只需少量代码即可实现这一目标。SamGeo 的源代码改编自 segment-anything-eo 仓库,其原始版本的功劳归于 Aliaksandr Hancharenka。

引用

  • Wu, Q., & Osco, L. (2023). samgeo: A Python package for segmenting geospatial data with the Segment Anything Model (SAM). Journal of Open Source Software, 8(89), 5663. https://doi.org/10.21105/joss.05663
  • Osco, L. P., Wu, Q., de Lemos, E. L., Gonçalves, W. N., Ramos, A. P. M., Li, J., & Junior, J. M. (2023). The Segment Anything Model (SAM) for remote sensing applications: From zero to one shot. International Journal of Applied Earth Observation and Geoinformation, 124, 103540. https://doi.org/10.1016/j.jag.2023.103540

特性

  • 从 Tile Map Service (TMS) 服务器下载地图瓦片并创建 GeoTIFF 文件
  • 使用 Segment Anything Model (SAM) 和 HQ-SAM 对 GeoTIFF 文件进行分割
  • 使用文本提示对遥感影像进行分割
  • 交互式地创建前景和背景标记
  • 从矢量数据集中加载现有标记
  • 将分割结果保存为常见的矢量格式(GeoPackage、Shapefile、GeoJSON)
  • 将输入提示保存为 GeoJSON 文件
  • 在交互式地图上可视化分割结果
  • 对时序遥感影像中的对象进行分割
  • 提供 REST API,通过 HTTP 提供分割服务(参见 API 文档

QGIS 插件

SamGeo 也作为 QGIS 插件 提供。请观看这段 简短的视频演示完整的视频教程,了解如何使用该插件。

安装

使用 pixi 安装(推荐)

为了获得最可靠的安装体验,尤其是在 Windows 系统上或处理 PyTorch/CUDA 和 SAM 3 等复杂依赖时,我们建议使用 pixi。Pixi 比 conda/mamba 提供更快、更可靠的依赖解析,并避免常见的 numpy 版本冲突。有关详细说明,请参阅 完整的 pixi 安装指南

使用 pixi 的快速入门:

# 在 Linux/macOS 上安装 pixi
curl -fsSL https://pixi.sh/install.sh | sh

# 或在 Windows 上(PowerShell)
powershell -ExecutionPolicy Bypass -c "irm -useb https://pixi.sh/install.ps1 | iex"

# 创建一个新的 pixi 项目
pixi init geo
cd geo

# 根据您的配置编辑 pixi.toml(参见 GPU/CPU 示例文档)
# 然后安装
pixi install

# 启动 Jupyter Lab
pixi run jupyter lab

从 PyPI 安装

segment-geospatial 已在 PyPI 上发布,可以通过多种方式安装,以便更精细地控制其依赖项。这有助于减小 CI 环境中的包大小,因为并非每次都会使用所有模型。

根据您需要使用的工具,您可以选择:

  • segment-geospatialsegment-geospatial[samgeo]:仅安装运行 SAMGeo 所需的最低依赖项
  • segment-geospatial[samgeo2]:安装运行 SAMGeo 2 的依赖项
  • segment-geospatial[samgeo3]:安装运行 SAMGeo 3 的依赖项
  • segment-geospatial[fast]:安装运行 Fast SAM 的依赖项
  • segment-geospatial[hq]:安装运行 HQ-SAM 的依赖项
  • segment-geospatial[text]:安装 Grounding DINO,以便将 SAMGeo 1 和 2 与文本提示结合使用
  • segment-geospatial[fer]:安装运行特征边缘重建算法所需的依赖项
  • segment-geospatial[api]:安装 FastAPI 和 Uvicorn,以将分割作为 REST API 提供

此外,还定义了以下两个可选导入:

  • segment-geospatial[all]:安装运行所有 SAMGeo 模型所需的依赖项
  • segment-geospatial[extra]:安装运行所有 SAMGeo 模型以及其他实用程序所需的依赖项,例如 Jupyter 笔记本支持、leafmap 等。

只需运行以下命令即可为每个用例安装相应的依赖项:

pip install "segment-geospatial[samgeo3]" # 或上述其他任何选项

要详细了解每种选择包含哪些软件包,请参阅 pyproject.toml

从 conda-forge 安装

segment-geospatial 也在 conda-forge 上提供。如果你的计算机上已经安装了 AnacondaMiniconda,你可以使用以下命令来安装 segment-geospatial。建议为 segment-geospatial 创建一个新的 conda 环境。以下命令将创建一个名为 geo 的新 conda 环境,并安装 segment-geospatial 及其依赖项:

conda create -n geo python
conda activate geo
conda install -c conda-forge segment-geospatial

如果你的系统配备了 GPU,但上述命令并未安装 GPU 版本的 PyTorch,你可以通过以下命令强制安装 GPU 版本的 PyTorch:

conda install -c conda-forge segment-geospatial "pytorch=*=cuda*"

segment-geospatial 有一些可选依赖项,默认的 conda 环境中并不包含这些依赖。要安装这些依赖,请运行以下命令:

conda install -c conda-forge groundingdino-py segment-anything-fast

在 Windows 上安装 SAM 3

在 Windows 上安装 SAM 3 会稍微复杂一些。请在 Windows 上运行以下命令来安装 SamGeo:

conda create -n geo python=3.12
conda activate geo
conda install pytorch torchvision pytorch-cuda=12.1 -c pytorch -c nvidia
pip install "segment-geospatial[samgeo3]"
pip install triton-windows ipykernel jupyterlab

示例

演示

  • 自动掩码生成器

  • 使用输入提示的交互式分割

  • 使用现有文件中的提示

  • 使用文本提示的交互式分割

教程

我的 YouTube 频道 上提供了视频教程。

  • 自动掩码生成

Alt text

  • 在 ArcGIS Pro 中使用 SAM

Alt text

  • 使用文本提示的交互式分割

Alt text

将 SAM 与桌面 GIS 结合使用

计算资源

Segment Anything Model 对计算资源的需求较高,处理大型数据集时建议使用性能强大的 GPU。推荐使用至少配备 8 GB 显存的 GPU。你也可以利用 Google Colab 提供的免费 GPU 资源。此外,你还可以申请 AWS 研究云积分,该计划为学术研究提供云积分支持。如果你位于大中华地区,可以在此处申请 AWS 研究云积分:AWS 教育云研究积分

法律声明

本仓库及其内容仅用于教育目的。用户在使用所提供的信息和代码时,即表示已知悉并同意自行承担使用相关 API 和模型的风险,并遵守所有适用的法律法规。建议有意从任何底图下载大量图像瓦片的用户,在操作前先联系底图提供商以获得许可。未经授权使用底图或其任何组成部分,可能构成对版权法或其他适用法律法规的违反。

贡献

有关更多信息,请参阅 贡献指南

致谢

本项目部分得到了美国国家航空航天局(NASA)的支持,资助编号为 80NSSC22K1742,该资助通过 2020 年开源工具、框架和库计划 提供。本项目还得到了亚马逊网络服务(AWS)的支持。此外,本软件包的实现也离不开以下开源项目,特此向这些项目的开发者致谢。

版本历史

v1.3.22026/03/23
v1.3.12026/03/18
v1.3.02026/03/18
v1.2.32026/03/02
v1.2.22026/02/06
v1.2.12025/12/23
v1.2.02025/12/21
v1.1.02025/12/13
v1.0.32025/12/13
v1.0.22025/12/12
v1.0.12025/12/10
v1.0.02025/12/09
v0.16.02025/12/08
v0.15.22025/12/05
v0.15.12025/12/03
v0.15.02025/12/03
v0.14.12025/12/02
v0.14.02025/12/02
v0.13.02025/09/22
v0.12.62025/04/17

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2周前
Agent开发框架图像

n8n

n8n 是一款面向技术团队的公平代码(fair-code)工作流自动化平台,旨在让用户在享受低代码快速构建便利的同时,保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点,帮助用户轻松连接 400 多种应用与服务,实现复杂业务流程的自动化。 n8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”:既可以通过直观的可视化界面拖拽节点搭建流程,也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外,n8n 原生集成了基于 LangChain 的 AI 能力,支持用户利用自有数据和模型构建智能体工作流。在部署方面,n8n 提供极高的自由度,支持完全自托管以保障数据隐私和控制权,也提供云端服务选项。凭借活跃的社区生态和数百个现成模板,n8n 让构建强大且可控的自动化系统变得简单高效。

184.7k|★★☆☆☆|今天
数据工具开发框架Agent

AutoGPT

AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台,核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点,让用户只需设定目标,AI 即可自主规划步骤、调用工具并持续运行直至完成任务。 无论是开发者、研究人员,还是希望提升工作效率的普通用户,都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体;研究人员能基于开源架构探索多智能体协作机制;而非技术背景用户也可直接选用预置的智能体模板,立即投入实际工作场景。 AutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑,每个块负责单一动作,灵活且易于调试。同时,平台支持本地自托管与云端部署两种模式,兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本,即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛,让人人都能成为 AI 的创造者与受益者。

183.6k|★★★☆☆|今天
Agent语言模型插件

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

161.1k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|2天前
开发框架图像Agent