Meta AI的Segment Anything Model (SAM)用于地理空间数据。
项目描述
segment-geospatial
一个用于使用Segment Anything Model (SAM)分割地理空间数据的Python包
简介
segment-geospatial包受到segment-anything-eo存储库的启发,该存储库由Aliaksandr Hancharenka编写。为了便于使用Segment Anything Model (SAM)进行地理空间数据,我开发了segment-anything-py和segment-geospatial Python包,这些包现在可在PyPI和conda-forge上找到。我的主要目标是简化利用SAM进行地理空间数据分析的过程,使用户能够以最小的编码工作量实现这一点。我已经从segment-anything-eo存储库改编了segment-geospatial的源代码,原始版本归功于Aliaksandr Hancharenka。
- 免费软件:MIT许可证
- 文档:https://samgeo.gishub.org
引用
- 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). 遥感应用中的分割任何模型(SAM):从零到一跳。 国际应用地球观测与地理信息杂志,124,103540。 https://doi.org/10.1016/j.jag.2023.103540
功能
- 从瓦片地图服务(TMS)服务器下载地图瓦片并创建GeoTIFF文件
- 使用分割任何模型(SAM)和 HQ-SAM 对GeoTIFF文件进行分割
- 使用文本提示分割遥感影像
- 交互式创建前景和背景标记
- 从矢量数据集中加载现有标记
- 将分割结果保存为常用矢量格式(GeoPackage,Shapefile,GeoJSON)
- 将输入提示保存为GeoJSON文件
- 在交互式地图上可视化分割结果
- 从时间序列遥感影像中分割对象
安装
从PyPI安装
segment-geospatial 在 PyPI 上可用。要安装 segment-geospatial,请在您的终端中运行以下命令
pip install segment-geospatial
从conda-forge安装
segment-geospatial 同样可在 conda-forge 上找到。如果您已经在计算机上安装了 Anaconda 或 Miniconda,可以使用以下命令安装 segment-geospatial。建议为 segment-geospatial 创建一个新的 conda 环境。以下命令将创建一个名为 geo
的新 conda 环境,并安装 segment-geospatial 及其依赖项
conda create -n geo python
conda activate geo
conda install -c conda-forge mamba
mamba install -c conda-forge segment-geospatial
如果您的系统有GPU,但上述命令没有安装pytorch的GPU版本,您可以使用以下命令强制安装pytorch的GPU版本
mamba install -c conda-forge segment-geospatial "pytorch=*=cuda*"
Samgeo-geospatial有一些可选依赖项,默认的conda环境不包括。要安装这些依赖项,请运行以下命令
mamba install -c conda-forge groundingdino-py segment-anything-fast
示例
- 分割遥感影像
- 自动生成对象掩码
- 使用输入提示分割遥感影像
- 使用框提示分割遥感影像
- 使用文本提示分割遥感影像
- 使用文本提示进行批量分割
- 使用ArcGIS Pro与segment-geospatial结合使用
- 使用文本提示分割游泳池
- 从Maxar Open Data Program分割卫星影像
演示
- 自动掩码生成器
- 使用输入提示进行交互式分割
- 从现有文件中获取输入提示
- 使用文本提示进行交互式分割
教程
视频教程可在我的 YouTube频道 上找到。
- 自动掩码生成
- 在ArcGIS Pro中使用SAM
- 使用文本提示进行交互式分割
在桌面GIS中使用SAM
- QGIS:查看 Geometric Attributes插件。归功于 Bjorn Nyberg。
- ArcGIS:查看 Segment Anything Model (SAM)工具箱 和 使用ArcGIS解锁深度学习应用之力的资源。归功于 Esri。
计算资源
分割任何模型(SAM)计算密集,建议使用强大的GPU处理大型数据集。建议使用至少具有8GB GPU内存的GPU。您可以使用Google Colab提供的免费GPU资源。或者,您可以申请 AWS Cloud Credit for Research,该服务为学术研究提供云信用额度。如果您在 Greater China地区,可以在此申请AWS Cloud Credit 此处。
法律声明
本仓库及其内容仅用于教育目的。用户使用提供的信息和代码时,应自行承担使用API和模型的风险,并同意遵守任何适用的法律法规。有意从任何底图下载大量图像瓦片的用户,请在操作前联系底图提供商以获取许可。未经授权使用底图或其任何组件可能违反版权法或其他适用的法律法规。
贡献
有关更多信息,请参阅贡献指南。
致谢
本项目部分基于美国国家航空航天局(NASA)的资助,资助编号为80NSSC22K1742,该资助通过2020年开源工具、框架和库项目发放。
本项目还得到亚马逊网络服务(AWS)的支持。此外,本包的实现得益于以下开源项目。感谢这些项目的开发者。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
segment_geospatial-0.11.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8ce07c12b2a6de1de61c1d6cc5b2eaf4f5e9122e8c7bc010ea248cc3ed86738d |
|
MD5 | 8b16d7fec714bbc5fadb33a6b09c1c03 |
|
BLAKE2b-256 | 96679b5a546f6bdee926127df5d5906b9a084b74b2daa88256951e0c645da100 |
segment_geospatial-0.11.2-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b6d516979fbdd23ee7d70429d9d9349bd13bfa91b9d492aaa30165f91b871cd4 |
|
MD5 | 421c2fda10947c8408c4f938f63c4fe9 |
|
BLAKE2b-256 | a1b5eab2fe3d42620cff4f2765a600f5fa328471f77c2481d258982b7b4f97c5 |