SAM大模型实践(六)

ops/2024/12/26 10:59:23/

今天试了一下geo-SAM快速版本fast-sam,项目参考地址如下:

https://samgeo.gishub.org/examples/fast_sam/icon-default.png?t=O83Ahttps://samgeo.gishub.org/examples/fast_sam/具体代码如下:

python"># %pip install segment-geospatial segment-anything-fast
# 在conda prompt 里面输入上面代码,即可安装fast-semimport leafmap
from samgeo import tms_to_geotiff
from samgeo.fast_sam import SamGeo
#
m = leafmap.Map(center=[-22.17615, -51.253043], zoom=18, height="800px")
m.add_basemap("SATELLITE")
m
#
bbox = m.user_roi_bounds()
if bbox is None:bbox = [-51.2565, -22.1777, -51.2512, -22.175]
#
image = "Image.tif"
tms_to_geotiff(output=image, bbox=bbox, zoom=19, source="Satellite", overwrite=True)
#
from samgeo.fast_sam import SamGeosam = SamGeo(model="FastSAM-x.pt")
#
sam.set_image("Image.tif")
# 
sam.everything_prompt(output="mask.tif")
#
sam.raster_to_vector("mask.tif", "mask.geojson")

输入的卫星影像:

分割效果:

运行时间确实比普通的sam快很多,当然会牺牲一些精度,但是有一些场景确实需要快,精度够用即可。

希望这篇博客对你有用,欢迎大家留言交流。


http://www.ppmy.cn/ops/145107.html

相关文章

【Java基础面试题025】什么是Java的Integer缓存池?

回答重点 Java的Integer缓存池(Integer Cache)是为了提升性能和节省内存。根据实践发现大部分的数据操作都集中在值比较小的范围,因此缓存这些对象可以减少内存分配和垃圾回收的负担,提升性能 在 -128到127范围内的Integer对象会…

常见网络攻击场景常被用于测试系统安全性

常见网络攻击场景常被用于测试系统安全性 在区块链系统中,以下网络攻击场景常被用于测试系统安全性: 51% 攻击 攻击原理:当一个或一组攻击者控制了超过全网 50%的算力时,就有可能操纵区块链的账本记录。在工作量证明(PoW)机制下,攻击者可以通过算力优势,实现对新区块的…

聊一聊 C#线程池 的线程动态注入

一:背景 1. 讲故事 上一篇我们用 Thread.Sleep 的方式演示了线程池饥饿场景下的动态线程注入,可以观察到大概 1s 产生 1~2 个新线程,很显然这样的增长速度扛不住上游请求对线程池的DDOS攻击,导致线程池队列越来越大,但…

[OpenGL]使用TransformFeedback实现粒子效果

一、简介 本文介绍了如何使用 OpenGL 中的 Transform Feedback 实现粒子效果,最终可以实现下图的效果: 本文的粒子系统实现参考了modern-opengl-tutorial, ogldev-tutorial28 和 粒子系统–喷泉 [OpenGL-Transformfeedback]。 二、使用 TransformFeed…

浏览器http缓存问题

一、什么是浏览器缓存 浏览器将请求过的资源(html、js、css、img)等,根据缓存机制,拷贝一份副本存储在浏览器的内存或者磁盘上。如果下一次请求的url相同时则根据缓存机制决定是读取内存或者磁盘上的数据还是去服务器请求资源文件…

【汇编】关于函数调用过程的若干问题

1. 为什么需要bp指针? 因为bp是栈帧的起始地址,函数内的局部栈变量,采用相对bp的内存寻址。不能相对于sp,sp是一直在变的。 2. 函数调用过程? 函数开始,先压栈bp,保存父函数栈底指针bp&#…

[Router]路由器常用的后台判断网络ping 可靠公共 IP 地址整理

接受ICMP公共DNS地址 接受 ICMP 的公有 IPv4 和 IPv6 端点的集合,如果使用 ping 方法,则可以使用来跟踪接口的连接状态。这些是具有高可用性的,通常可以可靠地用作确认网络连接的终端节点。或者,您也可以使用 ISP 的 DNS 解析器&a…

C语言结构体位定义(位段)的实际作用深入分析

1、结构体位段格式 struct struct_name {type [member_name] : width; };一般定义结构体,成员都是int、char等类型,占用的空间大小是固定的在成员名称后用冒号来指定位宽,可以指定每个成员所占用空间,并且也不用受结构体成员起始…