当前位置: 首页 > news >正文

【GEO-AI】SAM-Geo库(segment-geospatial)入门教程

今年4月份,Meta公布了它图形分割模型Segment-Anything,简称SAM。当时就想着这个东西用在遥感影像分割上应该效果不错,奈何自己能力有限,没有办法上手实践。偶然间看到有介绍SAM-Geo工具包的文章,决定研究一番,现在的做的这些工作可能只是狗尾续貂,权当是记一下工作笔记了。

1. 简介

SAM-Geo是一个用于地理空间数据的Python 包,可在 PyPI 和 conda-forge 上使用。作者吴秋生是美国田纳西大学地理系老师,根据他在Bilibili主页上的介绍,研究方向主要包括地理信息科学和遥感,个人主页地址:https://wetlands.io。
SAM-Geo工具包主要用于简化SAM模型在地理空间数据上的应用,其想法来源于segment-anything-eo【github地址】。为方便后续学习,将相应的地址都放在这里,SAM-Geo的Github地址是https://github.com/opengeos/segment-geospatial,文档地址:https://samgeo.gishub.org。

2.安装

根据官网,可以使用PyPI、Conda、GitHub、Docker方式安装

  1. 最简单的当然是使用pip安装了
pip install segment-geospatial
  1. Conda(推荐新建环境)
conda create -n geo python
conda activate geo
conda install -c conda-forge mamba
mamba install -c conda-forge segment-geospatial

安装依赖

mamba install -c conda-forge groundingdino-py segment-anything-fast
  1. Github
pip install git+https://github.com/opengeos/segment-geospatial
  1. Docker
docker run -it -p 8888:8888 giswqs/segment-geospatial:latest

为了是GPU生效,需要运行下面的命令

docker run --rm -it --gpus=all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

如果报错nvidia-container-cli: initialization error: load library failed: libnvidia-ml.so.1: cannot open shared object file: no such file or directory: unknown.,在上面的命令前面加上sudo运行。
等GPU容器运行正常后,再运行docker run命令将SAM-Geom运行起来。

3.入门案例

官网的案例地址在https://samgeo.gishub.org/workshops/purdue/,我这边简单记录下自己的操作过程,水平有限,您可以移步官网查看更详细的介绍。
这边采用的conda虚拟环境,利用之前搭建的pytorch环境,可以参考PyTorch安装记录及Anaconda环境配置
下列代码运行在Jupyter Notebook中

  1. 安装依赖
pip install segment-geospatial groundingdino-py leafmap localtileserver
  1. 导入依赖
import leafmap
from samgeo import SamGeo
from samgeo.text_sam import LangSAM
  1. 创建交互式地图
m = leafmap.Map(center=[40.427495, -86.913638], zoom=18, height=700)
m.add_basemap("SATELLITE")
m

地图操作:平移或缩放到所需位置,然后用绘图工具在地图上创建多边形或矩形。

if m.user_roi_bounds() is not None:bbox = m.user_roi_bounds()
else:bbox = [-86.9167, 40.4262, -86.9105, 40.4289]
image = "image.tif"
leafmap.map_tiles_to_geotiff(output=image, bbox=bbox, zoom=18, source="Satellite", overwrite=True)

如果要使用自己的图像,可以将image的地址设置为本地图片的地址。

将图片展示在地图上:

m.layers[-1].visible = False  # turn off the basemap
m.add_raster(image, layer_name="Image")
m
  1. 初始化模型
sam = SamGeo(          model_type="vit_h",          checkpoint="sam_vit_h_4b8939.pth",          automatic=False,          sam_kwargs=None,          
)sam.set_image(image)
  1. 自动分类
sam.generate(image, output="masks.tif", foreground=True, unique=True)
sam.show_masks(cmap="binary_r")

展示分类

sam.show_anns(axis="off", alpha=1, output="annotations.tif")

相关文章:

【GEO-AI】SAM-Geo库(segment-geospatial)入门教程

今年4月份,Meta公布了它图形分割模型Segment-Anything,简称SAM。当时就想着这个东西用在遥感影像分割上应该效果不错,奈何自己能力有限,没有办法上手实践。偶然间看到有介绍SAM-Geo工具包的文章,决定研究一番&#xff…...

ESP32-Web-Server 实战编程-使用文件系统建立强大的 web 系统

ESP32-Web-Server 实战编程-使用文件系统建立强大的 web 系统 概述 在前述章节我们讲述了在网页端控制多个 GPIO 的案例。当程序开始变得复杂,让一些功能“自动起来”是一个好的选择。 在前面的示例中,我们需要在后端为每个前端代码的 URL 指定一个对…...

kubeadm快速搭建k8s高可用集群

1.安装及优化 1.1基本环境配置 1.环境介绍 (1).高可用集群规划 主机名ip地址说明k8s-master01192.168.2.96master节点k8s-master02192.168.2.97master节点k8s-master03192.168.2.98master节点k8s-node01192.168.2.99node节点k8s-node02192.168.2.100n…...

GoLong的学习之路,进阶,Redis

这个redis和上篇rabbitMQ一样,在之前我用Java从原理上进行了剖析,这里呢,我做项目的时候,也需要用到redis,所以这里也将去从怎么用的角度去写这篇文章。 文章目录 安装redis以及原理redis概念redis的应用场景有很多red…...

Linux重置MySql密码(简洁版)

关闭验证 /etc/my.cnf-->[mysqld]-->skip-grant-tables 重启MySql service mysql restart 登陆MySql mysql -u root 刷新权限 FLUSH PRIVILEGES; 更新密码 ALTER USER rootlocalhost IDENTIFIED BY 123456; 退出MySql exit 打开验证 /etc/my.cnf-->[mysqld]-->skip…...

Ubuntu部署jmeter与ant

为了整合接口自动化的持续集成工具,我将jmeter与ant都部署在了Jenkins容器中,并配置了build.xml 一、ubuntu部署jdk 1:先下载jdk-8u74-linux-x64.tar.gz,上传到服务器,这里上传文件用到了ubuntu 下的 lrzsz。 ubunt…...

如何使用 RestTemplate 进行 Spring Boot 微服务通信示例?

在 Spring Boot 微服务架构中,RestTemplate 是一个强大的工具,用于简化微服务之间的通信。下面是一个简单的示例,演示如何使用 RestTemplate 进行微服务之间的 HTTP 通信。 首先,确保你的 Spring Boot 项目中已经添加了 spring-b…...

新开普掌上校园服务管理平台service.action RCE漏洞复现 [附POC]

文章目录 新开普掌上校园服务管理平台service.action RCE漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 新开普掌上校园服务管理平台service.action RCE漏洞复现 [附POC] 0x01 前言 免责声明:请勿…...

滤波器、卷积核与内核的关系

上来先总结举例子解释 上来先总结 内核(kernel)是一个二维矩阵,长*宽;滤波器(filter)也叫卷积核,过滤器。是一个三维立方体,长 宽 深度, 其中深度便是由多少张内核构成…...

沉默是金,寡言为贵

​ 佛说:“人受一句话,佛受一柱香。”佛教的十善,其中有关口德就占了四样:恶口、妄语、两舌、绮语,可见口德是很重要的。言为心声,能说出真心的话,必然好听;假如说话言不由衷&#x…...

【网络奇遇之旅】:那年我与计算机网络的初相遇

🎥 屿小夏 : 个人主页 🔥个人专栏 : 计算机网络 🌄 莫道桑榆晚,为霞尚满天! 文章目录 一. 前言二. 计算机网络的定义三. 计算机网络的功能3.1 资源共享3.2 通信功能3.3 其他功能 四. 计算机网络…...

量化误差的测量

因为转换的精度有限,所以将模拟值数字化时会不可避免地出现量化误差。量化误差由转换器及其误差、噪声和非线性度决定。当输入信号和计数器时基有区别时就会产生量化误差。根据输入信号的相位和计数器时基的匹配程度,计数器有下列三种可能性:…...

8年测试工程师分享,我是怎么开展性能测试的(基础篇)

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…...

微服务API网关Spring Cloud Gateway实战

概述 微服务网关是为了给不同的微服务提供统一的前置功能;网关服务可以配置集群,以承载更多的流量;负载均衡与网关互相成就,一般使用负载均衡(例如 nginx)作为总入口,然后将流量分发到多个网关…...

uniapp打包ios有时间 uniapp打包次数

我们经常用的解决方案有,分包,将图片上传到服务器上,减少插件引入。但是还有一个方案好多刚入门uniapp的人都给忽略了,就是在源码视图中配置,开启分包优化。 1.分包 目前微信小程序可以分8个包,每个包的最大存储是2M,也就是说你文件总体的大小不能超过16M,每个包的大…...

【笔记+代码】JDK动态代理理解

代码地址 https://github.com/cmdch2017/JDKproxy.git/ 我的理解 我的理解是本身service-serviceImpl结构,新增一个代理对象proxy,代理对象去直接访问serviceImpl,在proxy进行事务的增强操作,所以代理对象实现了接口。如何实现…...

Java八股文面试全套真题【含答案】-Vue篇

以下是一些关于Vue的经典面试题以及它们的答案: 什么是Vue.js?它有什么特点? 答案:Vue.js是一个用于构建用户界面的渐进式框架。它的特点包括双向数据绑定、组件化、虚拟DOM等。什么是Vue.js?它有什么特点&#xff1f…...

介绍比特币上的 sCrypt 开发平台

最强大的基础设施和工具套件,可轻松构建和扩展您的 dApp 杀手级应用在哪里? 尽管比特币在小额支付、国际汇款和供应链管理等广泛用例中具有颠覆性潜力,但在推出 14 年后,我们还没有看到一款非常受欢迎并被主流采用的杀手级应用。 …...

什么是路由抖动?该如何控制

路由器在实现不间断的网络通信和连接方面发挥着重要作用,具有所需功能的持续可用的路由器可确保其相关子网的良好性能,由于网络严重依赖路由器的性能,因此确保您的路由器不会遇到任何问题非常重要。路由器遇到的一个严重的网络问题是路由抖动…...

2023SICTF-web-白猫-RCE

001 分析题目 题目名称&#xff1a; RCE 题目简介&#xff1a; 请bypass我&#xff01; 题目环境&#xff1a; http://210.44.151.51:10088/ 函数理解&#xff1a; #PHP str_replace() 函数 <!DOCTYPE html> <html> <body><?php echo str_replace("…...

专业解决方案:Windows 11 LTSC系统一键安装微软商店完整指南

专业解决方案&#xff1a;Windows 11 LTSC系统一键安装微软商店完整指南 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore Windows 11 LTSC系统以其卓越…...

iPhone上跑Transformer模型?手把手教你用EfficientFormer部署移动端AI应用

iPhone上部署EfficientFormer&#xff1a;移动端Transformer模型实战指南 当苹果在2023年发布会上演示Stable Diffusion在iPhone 15 Pro上实时运行时&#xff0c;整个科技圈都意识到&#xff1a;移动端AI推理的时代已经到来。作为移动开发者&#xff0c;你是否也想过在自己的Ap…...

Qwen2.5-VL-7B-Instruct效果对比:vs InternVL2、LLaVA-1.6在中文场景表现

Qwen2.5-VL-7B-Instruct效果对比&#xff1a;vs InternVL2、LLaVA-1.6在中文场景表现 1. 多模态视觉-语言模型概述 Qwen2.5-VL-7B-Instruct是阿里云推出的新一代多模态视觉-语言模型&#xff0c;专为中文场景优化设计。该模型能够同时理解图像和文本输入&#xff0c;并生成符…...

ShortURL MCP 集成指南

在今天的数字时代&#xff0c;短链接的生成和管理变得越来越重要。Ace Data Cloud 提供的 ShortURL MCP 服务器&#xff0c;利用 MCP (模型上下文协议)&#xff0c;允许 AI 模型&#xff08;如 Claude、GPT 等&#xff09;通过标准化接口调用外部工具&#xff0c;从而更加便利地…...

网盘直链下载助手:一键获取八大网盘真实下载地址的终极方案

网盘直链下载助手&#xff1a;一键获取八大网盘真实下载地址的终极方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 /…...

Hunyuan-OCR-WEBUI新手入门:3步搞定复杂文档文字识别

Hunyuan-OCR-WEBUI新手入门&#xff1a;3步搞定复杂文档文字识别 1. 引言&#xff1a;为什么选择Hunyuan-OCR-WEBUI&#xff1f; 在日常工作和学习中&#xff0c;我们经常会遇到需要从图片或PDF中提取文字的场景。无论是扫描的合同、手写的笔记&#xff0c;还是复杂的表格文档…...

AI头像生成器效果展示:支持‘敦煌飞天纹样+半透明纱衣+暖光侧逆光’复杂提示

AI头像生成器效果展示&#xff1a;支持敦煌飞天纹样半透明纱衣暖光侧逆光复杂提示 当传统艺术遇见AI技术&#xff0c;会碰撞出怎样的视觉奇迹&#xff1f; 1. 惊艳开场&#xff1a;从想象到现实的艺术跨越 你有没有遇到过这样的困扰&#xff1a;心中有一个绝美的头像创意&…...

璀璨星河在艺术教育落地:中小学美育课AI创作教学案例

璀璨星河在艺术教育落地&#xff1a;中小学美育课AI创作教学案例 1. 引言&#xff1a;当AI艺术遇见美育课堂 在传统的美术课堂上&#xff0c;老师常常面临这样的困境&#xff1a;学生艺术基础参差不齐&#xff0c;创作工具有限&#xff0c;很多有创意的想法难以实现。而今天&…...

别再复制粘贴了!深入理解STM32中IIR滤波器的差分方程与状态变量

从零构建STM32 IIR滤波器&#xff1a;差分方程、状态变量与C语言实现全解析 在嵌入式信号处理领域&#xff0c;IIR&#xff08;无限脉冲响应&#xff09;滤波器因其高效的计算特性和优异的频率选择性能&#xff0c;成为STM32等资源受限平台的理想选择。但许多开发者仅仅停留在&…...

SDMatte与CI/CD集成:实现模型服务的自动化部署与更新

SDMatte与CI/CD集成&#xff1a;实现模型服务的自动化部署与更新 1. 引言&#xff1a;当AI模型遇上DevOps 最近遇到一个挺有意思的场景&#xff1a;某设计团队在使用SDMatte进行图像背景去除时&#xff0c;每次模型更新都需要手动重新部署服务&#xff0c;导致新功能上线延迟…...