Meta的分割一切模型SAM( Segment Anything )测试

news2024/11/17 15:35:22

Meta不久前开源发布了一款图像处理模型,即分割一切模型:Segment Anything Model,简称 SAM,号称要从任意一张图片中分割万物,源码地址为:

https://github.com/facebookresearch/segment-anything

打开后看到目录结构大概这样:
在这里插入图片描述
一般一个开源项目中都会有项目介绍和示例代码。本示例中的文件 README.md 即为项目概况介绍,主要说明了使用 SAM 模型需要的 python 环境安装方法,和 SAM 的使用方法。notebooks 文件夹内是几个 jupyter notebook 格式的 python 示例代码。

运行示例代码步骤如下:
1、按照 README.md 文件所述,逐步安装所有依赖库。记得 python 要安装3.8,3.9, 3.10 其中的一个,目前不建议安装 3.11,因为会和最新的 pytorch 不兼容。
2、安装 jupyter。
3、下载模型文件到本地:点击 README.md 文件中的模型下载链接,即可下载指定的模型:
在这里插入图片描述
模型总共有三个,其中 vit-h 最大,有越 2G ,fit-l 为 1.2G, vit-b 最小为 366M。我测试了 最小的 vit-b。

4、运行 jupyter notebook ,打开示例文件 automatic_mask_generator_example.ipynb,修改以下两行:
在这里插入图片描述
即模型文件路径和 设备类型( 使用 cpu 还是 gpu, 如果是gpu则设置为 cuda, 是 cpu 的话设为 cpu 即可 )。

5、将 automatic_mask_generator_example.ipynb 文件内的所有代码运行一遍,会自动从网上下载一个图片进行原图显示和 mask 处理,最后会得出 图片处理的 mask 结果:
在这里插入图片描述

总结:

1、SAM 模型确实很强大,唯一缺点可能是运行比较消耗资源,如果是普通 cpu,运行起来会非常慢。我的 cpu 是 Intel® Core™ i7-7500U CPU @ 2.70GHz 2.90 GHz,内存是 8G,笔记本为华为 MateBook X,用的是最小的模型,mask 处理用了足足有至少半分钟,或者更久。等了一会儿发现还没结果,就只好先去洗澡。洗完澡发现结果出来了。。土豪们可以用 GPU 尝试,相信一定快很多。
2、实际操练难点可能在于环境的搭建,晚点介绍环境安装。如果安装过程中发现某些步骤不成功,可以尝试跳过该步骤继续下一步,最后仍然尝试运行脚本,可能也可以。

祝大家进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/463588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssm+java企业公司产品分销商管理系统

一、 二、经营管理: ①分销商每月提交自己进多少货物(从总部进购了多少“鹊巢”的商品给自己负责区的大型商超)——对应的种类一共进多少货物;该种类中具体的产品又进了多少货物具体到(参考三产品管理模块)…

RelativeLayout相对布局

一、官方地址&#xff1a; https://developer.android.google.cn/reference/kotlin/android/widget/RelativeLayout?hlen 二、概述 相对布局&#xff08;RelativeLayout&#xff09;是一种根据父容器和兄弟控件作为参照来确定控件位置的布局方式 三、基本格式 <RelativeLay…

Nacos注册中心的使用

文章目录 Nacos注册中心1. 服务注册到nacos1&#xff09;引入依赖2&#xff09;配置nacos地址3&#xff09;重启 2.服务分级存储模型2.1.给user-service配置集群2.2.同集群优先的负载均衡 3.权重配置 Nacos注册中心 国内公司一般都推崇阿里巴巴的技术&#xff0c;比如注册中心…

Docker安装Redis(普通安装+在线安装+离线安装)

文章目录 Redis概述一、磁盘安装1.1 安装环境1.2 安装步骤1.3 服务器启停命令 二、docker安装1.在线安装2.离线安装 总结 Redis概述 Redis&#xff0c;英文全称是Remote Dictionary Server&#xff08;远程字典服务&#xff09;&#xff0c;是一个开源的使用ANSI C语言编写、支…

ext-1:PDK工具包编译出例程

1、TI的单独StarterWare不更新后&#xff0c;后续维护和更新的是 PROCESSOR-SDK-AM335X 软件开发套件 &#xff08;PDK&#xff09;&#xff0c;对比以前的&#xff0c;里面没有例程&#xff0c;所以下载安装完需要自己编译出example例程。 因为编译出example例程中间会出现很…

设计模式--适配器模式

目录 基本介绍 工作原理 类适配模式 介绍 应用实例介绍 类适配器模式注意事项和细节 对象适配模式 介绍 对象适配器模式注意事项和细节 接口适配器模式 介绍 适配器模式的注意事项和细节 基本介绍 (1) 适配器模式(Adapter Pattern) 将某个类的接口转换成客户端期望的…

从JDK源码级别彻底剖析JVM类加载机制

loadClass的类加载过程 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载 ● 加载&#xff1a;在硬盘上查找并通过IO读入字节码文件&#xff0c;使用到类时才会加载&#xff0c;例如调用类的main()方法&#xff0c;new对象等等&am…

如何选择最适合你的数据库解决方案:PostgreSQL VS MySQL 技术选型对比

文章目录 PostgreSQL与MySQL技术选型对比什么是 WordPress 数据库&#xff1f;什么是 PostgreSQL&#xff1f;历史主要特点高度可靠灵活性可扩展性复制用例什么是 MySQL&#xff1f;历史主要特点使用方便高灵活性可靠性和安全性高性能可扩展开源许可证用例PostgreSQL 与 MySQL&…

状态模式——随遇而安

● 状态模式介绍 状态模式中的行为是由状态来决定的&#xff0c;不用的状态下有不同的行为。状态模式和策略模式结构几乎完全一样&#xff0c;但它们的目的、本质却完全不一样就。状态模式的行为是平行的、不可替代的&#xff0c;策略模式的行为是彼此孤立、可相互替换的。用一…

【UE】一个简易的游戏计时器

效果 步骤 1. 打开“ThirdPersonGameMode” 创建两个整型变量&#xff0c;分别命名为“Seconds”、“Minutes” 在事件图表中添加如下节点&#xff0c;实现“Seconds”每秒加1 继续添加如下节点&#xff1a; 当秒数大于60时&#xff0c;就让分钟数1&#xff0c;然后将秒数重新…

P1045 [NOIP2003 普及组] 麦森数

题目描述 形如 2&#xfffd;−12P−1 的素数称为麦森数&#xff0c;这时 &#xfffd;P 一定也是个素数。但反过来不一定&#xff0c;即如果 &#xfffd;P 是个素数&#xff0c;2&#xfffd;−12P−1 不一定也是素数。到 1998 年底&#xff0c;人们已找到了 37 个麦森数。最…

AI数字人技术在高中历史课堂上的应用

引言 介绍AI数字人技术的概念和特点介绍AI数字人技术在教育领域的价值和意义提出本文的主题和目的&#xff1a;探讨AI数字人技术在高中历史课堂上的应用 AI数字人技术在高中历史课堂上的应用方式 介绍AI数字人技术可以通过还原历史人物说话视频&#xff0c;利用历史人物籍贯…

HJHD-91晃电保护器 新款35mm卡轨安装 josef约瑟

名称&#xff1a;晃电保护器品牌&#xff1a;JOSEF约瑟型号&#xff1a;HJHD-91额定电压&#xff1a;110、220VAC触点容量&#xff1a;250V/5A动作时间&#xff1a;不大于20ms功率消耗&#xff1a;不大于5W/5VA HJHD系列晃电保护器 HJHD-91晃电保护器 抗晃电继电器 1.特点和用途…

压力测试工具Jmeter入门

文章目录 一、JMeter概述1、JMeter简介2、JMeter的作用 二、JMeter下载三、JMeter测试1.创建线程组2、配置元件3、为线程添加监听器4、查看报告 一、JMeter概述 1、JMeter简介 Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具&#xff0c;用于对软件做压力测试。 …

Nginx安装删除

1.卸载Nginx ps -ef|grep nginx 查询Nginx 进程pid kill -9 7035 kill -9 7036 查找根下所有名字包含nginx的文件 find / -name nginx 执行命令 rm -rf *删除nignx安装的相关文件 下面开始安装,安装方式很多,可以选择官网下载后拖进linux 官网nginx: download 官网下载…

Mysql-JSON

一、根据JSON字段检索内容 语法: 使用 字段->$.json属性进行查询条件使用json_extract函数查询&#xff0c;json_extract(字段,"$.json属性")根据json数组查询&#xff0c;用JSON_CONTAINS(字段,JSON_OBJECT(json属性, "内容")) 二、检索查询 1.json…

Python之画一朵玫瑰花

效果&#xff1a; 步骤&#xff1a; 导入turtle库和time库设置画布大小和起始位置绘制红色花瓣&#xff0c;使用begin_fill()函数开始填充&#xff0c;fillcolor()函数设置填充颜色&#xff0c;circle()函数绘制圆形&#xff0c;fd()函数绘制直线&#xff0c;left()和right()函…

【Linux】环境变量和进程优先级

目录 环境变量 什么是环境变量 系统结构 系统接口 深度解析 命令行参数 进程优先级 优先级查看 优先级修改 进程间的概念 环境变量 什么是环境变量 &#x1f36e;平时在使用 Linux 的时候&#xff0c;总会使用 ls 、pwd 这类的命令&#xff0c;我们也都知道这些命令…

C语言从入门到精通第14天(C语言预处理)

C语言预处理 预处理概述宏定义条件编译 预处理概述 在前面我们已经对C语言的基础语法知识有所了解了&#xff0c;每次进行程序的编写之前&#xff0c;我们会使用#include命令去导入我们的库函数&#xff0c;而这种以#号开头的命令称为预处理命令。 C语言提供了多种预处理功能…

MATLAB离散时间信号的实现和时域基本运算(九)

1、实验目的&#xff1a; 1&#xff09;了解时域离散信号的特点&#xff1b; 2&#xff09;掌握MATLAB在时域内产生常用离散时间信号的方法&#xff1b; 3&#xff09;熟悉离散时间信号的时域基本运算&#xff1b; 4&#xff09;掌握离散时间信号的绘图命令。 2、实验内容&…