FastSAM初体验,比SAM快50倍

news2024/11/26 11:49:47

 一、FastSAM介绍

1.简介

       由美国Meta公司提出的能够“分割一切”的视觉基础大模型SAM引起了较大影响,为探索通用视觉大模型提供了一个新的方向。

       2023年6月22日,中科院自动化所的研究团队针对“分割一切”任务,提出了FastSAM方法。中科院自动化所团队提出的FastSAM,对“分割一切”这一通用视觉任务的算法设计范式进行了重新思考,设计了“全实例分割+基于指令的掩码输出”两阶段算法。

       FastSAM通过引入人工先验的结构设计,大幅降低了原Transformer结构在该通用感知任务上的计算冗余,实现了50倍加速,这一“快速”的特点,有利于视觉基础大模型的行业落地,有利于工业化应用落地。

项目地址:GitHub - CASIA-IVA-Lab/FastSAM: Fast Segment Anything

2.设计方法

FastSAM在每个阶段进行了任务和方法协同的方法设计:

(1)第一阶段,利用图像中大多数物体只占据图像局部区域的特点,采用天然具备局部连接特点的卷积算子进行全实例分割网络构建。该结构相较Transformer结构更加紧致,计算成本更低,但依旧保持对物体或图像区域的表示和判别能力。

(2)第二阶段,采用物理空间匹配和图文对齐空间匹配的策略进行基于指令的掩码输出。基于上一阶段的全实例分割掩码:对于基于位置点指令,将该点的位置所关联的最优分割区域进行输出,支持多点模式、背景点抑制;对于基于位置框的指令,将包围框匹配到的最大IoU的分割掩码进行输出;对于文本指令,利用图文对齐网络CLIP将掩码图像区域与文本指令映射到同一个空间,进行相似性计算,进而输出最相似区域。

基于此方法结构,FastSAM在SAM团队开源的SA-1B数据集上随机挑选了2%的图片进行训练就取得了和SAM可匹配的效果,并且速度相较最常用的32×32指令版本的SAM提升了50倍,实现了实时的“分割一切”。

二、环境部署

1.安装 conda

wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh --no-check-certificate
bash Anaconda3-2022.10-Linux-x86_64.sh

输入 yes 表示同意,确认安装的路径,一般直接回车安装在默认的 /home/你的名字/anaconda3,很快就安装完毕。输入 yes 来确认使用 conda init 来启动,如果现在输入 conda,会显示找不到命令,需要启动已经修改环境变量,输入以下命令(以后都不用再 source 了,因为启动 Ubuntu 会自动 source)

source ~/.bashrc

这时候会发现出现了 (base)。

2.安装FastSAM环境

conda create -n FastSAM python=3.9
conda activate FastSAM

cd FastSAM
pip install -r requirements.txt

pip install git+https://github.com/openai/CLIP.git

模型下载:链接:https://pan.baidu.com/s/1PF6i5jzlxM7-4Sc3-fDFSw 密码:iuh1

放在./weights/下,修改为FastSAM.pt 。

三、测试运行

python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg

 

python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg  --text_prompt "the yellow dog"

 

from fastsam import FastSAM, FastSAMPrompt

model = FastSAM('./weights/FastSAM.pt')
IMAGE_PATH = './images/dogs.jpg'
DEVICE = 'cpu'
everything_results = model(IMAGE_PATH, device=DEVICE, retina_masks=True, imgsz=1024, conf=0.4, iou=0.9,)
prompt_process = FastSAMPrompt(IMAGE_PATH, everything_results, device=DEVICE)

# everything prompt
ann = prompt_process.everything_prompt()

# bbox default shape [0,0,0,0] -> [x1,y1,x2,y2]
ann = prompt_process.box_prompt(bbox=[200, 200, 300, 300])

# text prompt
ann = prompt_process.text_prompt(text='a photo of a dog')

# point prompt
# points default [[0,0]] [[x1,y1],[x2,y2]]
# point_label default [0] [1,0] 0:background, 1:foreground
ann = prompt_process.point_prompt(points=[[620, 360]], pointlabel=[1])

prompt_process.plot(annotations=ann,output_path='./output/dog.jpg',)

 

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

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

相关文章

Boost开发指南-4.3optional

optional 在实际的软件开发过程中我们经常会遇到“无效值”的情况,例如函数并不是总能返回有效值,很多时候函数正确执行了,但结果却不是合理的值。如果用数学语言来解释,就是返回值位于函数解空间之外。 求一个数的倒数&#xf…

Twitter霸屏:掌握社交流量密码

Twitter群推王发现,Twitter以其简短而有力的信息传递方式而著名,其中字符限制仅有280个。这意味着在Twitter的世界中,迅速高效的沟通至关重要。拥有约321亿月活跃用户的Twitter,成为塑造资源品牌知名度的强大平台。如今&#xff0…

PHP智能人才招聘网站mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP智能人才招聘网站 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 下载地址 https://download.csdn.net/download/qq_41221322/88199392 视频演示 PH…

Alpine Ridge控制器使其具备多种使用模式 - 英特尔发布雷电3接口:竟和USB Type-C统一了

同时又因为这建立在Type-C的基础上,雷电3也将利用现有的标准Type-C线缆引入有源支持。当使用Type-C的线缆时,雷电的速度就降到了20Gbps全双工——这与普通的Type-C的带宽相同——这是为了成本牺牲了一些带宽。可以比较一下,Type-C线的成本只有…

基于Kubeadm部署k8s集群:下篇

继续上篇内容 目录 7、安装flannel 8、节点管理命令 三、安装Dashboard UI 1、部署Dashboard 2、开放端口设置 3、权限配置 7、安装flannel Master 节点NotReady 的原因就是因为没有使用任何的网络插件,此时Node 和Master的连接还不正常。目前最流行的Kuber…

【内网穿透】实现无公网IP远程连接Linux服务器并安装部署MongoDB数据库

【内网穿透】实现无公网IP远程连接Linux服务器并安装部署MongoDB数据库 ​ 憧憬Blog主页 在强者的眼中,没有最好,只有更好。 全栈开发领域优质创作者,阿里云专家博主 文章目录 【内网穿透】实现无公网IP远程连接Linux服务器并安装部署MongoDB…

智慧工地源码,Spring Cloud+ Vue+UniApp开发,微服务架构

智慧工地源码,智慧工地云平台源码 智慧工地APP源码 智慧工地的核心是数字化,它通过传感器、监控设备、智能终端等技术手段,实现对工地各个环节的实时数据采集和传输,如环境温度、湿度、噪音等数据信息,将数据汇集到云…

扎实推动产学研深入合作,携手共谋高质量发展新篇

近日,华南理工大学自动化学院胡跃明教授等一行4人莅临科东软件,双方就“产学研融合”进行会谈交流。在科东软件总经理余世清等人的陪同下,华工胡教授一行参观了科东软件展厅,对科东软件自主研发的Intewell工业实时操作系统及其在智…

xxx酒业有限责任公司突发环境事件应急预案WORD

导读:原文《xxx酒业有限责任公司突发环境事件应急预案word》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 目 录 1 总则 1.1 编制目的 1.2 编制…

JavaFx异常: Not on FX application thread; currentThread = Timer-0

我的定时器任务中有两个控件: FXML TextArea Display; FXML Label Label_Display; 执行下方代码会抛出:Exception in thread "Timer-0" java.lang.IllegalStateException: Not on FX application thread; currentThread Timer-0 Timer_tas…

企业信息查询,一站式数据服务

企业信息查询对销售人员是具有非常重要的意义,通过查询客户的基本信息,将这些转化为筛选客户的标准,这一过程可以理解为拓客。市面上这么多常见查询方法,如:搜索引擎查询(百度、搜狗等)、企业黄…

数字万用表测量基础知识--使用DMM测量电压

概览 DMM(即数字万用表)是一种电气测试和测量仪器,可测量直流和交流信号的电压、电流和电阻。本文介绍如何正确使用和理解数字万用表(DMM)。 使用DMM测量电压 实际上,每个DMM都具有直流和交流测量功能。电压测试通常用于测试和验…

命名实体识别方法:W2NER

一、介绍 代码:https://github.com/ljynlp/W2NER 论文:Unified Named Entity Recognition as Word-Word Relation Classification(武汉大学) 在平铺实体、重叠实体、非连续实体的数据集上,取得了SOTA的效果 建模方式:word-word的关系分类(中文:字-字的关系分类) …

编程中的宝藏:二分查找

二分查找 假设你需要在电话簿中找到一个以字母 “K” 开头的名字(虽然现在谁还在用电话簿呢!)。你可以从头开始翻页,直到进入以 “K” 打头的部分。然而,更明智的方法是从中间开始,因为你知道以 “K” 打头…

【深度学习】多粒度、多尺度、多源融合和多模态融合的区别

多粒度(multiresolution)和多尺度(multiscale) 多粒度(multiresolution)和多尺度(multiscale)都是指在不同的空间或时间尺度上对数据或信号进行分析和处理。其中 多尺度&#xff1…

代码审计-Thinkphp框架审计前置知识点

代码审计必备知识点: 1、代码审计开始前准备: 环境搭建使用,工具插件安装使用,掌握各种漏洞原理及利用,代码开发类知识点。 2、代码审计前信息收集: 审计目标的程序名,版本,当前环境(系统,中间件…

接口测试实战,Jmeter正则提取响应数据-详细整理,一篇打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 在测试时&#xf…

Linux 编译CEF源码详细记录

Linux CEF(Chromium Embedded Framework)源码下载编译 背景 由于CEF默认的二进制分发包不支持音视频播放,需要自行编译源码,将ffmpeg开关打开才能支持。这里介绍的是Linux平台下的CEF源码下载编译过程。 Windows平台参考&#…

营收、净利同比微增,喜临门品牌升级“临门一脚”?

8月8日晚,喜临门发布2023上半年业绩报告。根据财报,2023年上半年,喜临门营业收入约38.05亿元,同比增加5.53%;归属于上市公司股东的净利润约2.22亿元,同比增加1.2%。 如果仅从这份财报看,喜临门…

高忆管理:“T+0”或带来市场波动

据了解,各地区对日内“T0”买卖,制定了不同的约束和监督办法。如美国不同账户类型监管、日本的特别涨跌停准则和日内单次“T0”、印度组织投资者禁入和特别保证金准则、中国台湾从信用账户到现股账户逐渐放开“T0”准则等。 上海高忆私募基金&#xff08…