
全景分割模型 速度提升50倍且性能可比SAM
FastSAM是一款基于CNN的高效全景分割模型。仅使用SAM数据集2%的数据,就实现了与SAM相当的性能,同时运行速度提升50倍。支持一切模式、文本提示、框选和点选等多种交互方式。在边缘检测、目标检测等下游任务中,FastSAM展现出优异的零样本迁移能力,为计算机视觉研究开辟新方向。
[📕论文] [🤗HuggingFace演示] [Colab演示] [Replicate演示和API] [] [OpenXLab演示模型库] [引用] [视频演示]

**快速分割任意物体模型(FastSAM)**是一个CNN分割任意物体模型,仅使用SAM作者发布的SA-1B数据集的2%进行训练。FastSAM在运行速度提高50倍的同时,实现了与SAM方法相当的性能。

🍇 更新
2024/6/25 边缘锯齿问题已略有改善#231,该策略也同步到了ultralytics项目#13939,#13912。huggingface演示已更新。2023/11/28 推荐:语义FastSAM,为FastSAM添加了语义类别标签。感谢KBH00的这一宝贵贡献。2023/09/11 发布训练和验证代码。2023/08/17 发布OpenXLab演示。感谢OpenXLab团队的帮助。2023/07/06 添加到Ultralytics (YOLOv8)模型库。感谢Ultralytics的帮助🌹。2023/06/29 在HuggingFace Space支持文本模式。非常感谢gaoxinge的帮助🌹。2023/06/29 发布FastSAM_Awesome_TensorRT。非常感谢ChuRuaNh0提供FastSAM的TensorRT模型🌹。2023/06/26 发布FastSAM Replicate在线演示。非常感谢Chenxi提供这个很棒的演示🌹。2023/06/26 在HuggingFace Space支持点模式。更好更快的交互即将推出!2023/06/24 非常感谢Grounding-SAM在Grounded-FastSAM中结合Grounding-DINO与FastSAM🌹。在本地克隆仓库:
git clone https://github.com/CASIA-IVA-Lab/FastSAM.git
创建conda环境。代码需要python>=3.7,以及pytorch>=1.7和torchvision>=0.8。请按照这里的说明安装PyTorch和TorchVision依赖。强烈建议安装支持CUDA的PyTorch和TorchVision。
conda create -n FastSAM python=3.9 conda activate FastSAM
安装包:
cd FastSAM pip install -r requirements.txt
安装CLIP(如果要测试文本提示则需要):
pip install git+https://github.com/openai/CLIP.git
首先下载模型检查点。
然后,你可以运行脚本尝试everything模式和三种提示模式。
# Everything模式 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"
# 框提示 (xywh) python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg --box_prompt "[[570,200,230,400]]"
# 点提示 python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg --point_prompt "[[520,360],[620,300]]" --point_label "[1,0]"
你可以使用以下代码生成所有掩码并可视化结果。
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提示 ann = prompt_process.everything_prompt() prompt_process.plot(annotations=ann,output_path='./output/dog.jpg',)
对于点/框/文本模式提示,使用:
# bbox默认形状 [0,0,0,0] -> [x1,y1,x2,y2]
ann = prompt_process.box_prompt(bboxes=[[200, 200, 300, 300]])
# 文本提示
ann = prompt_process.text_prompt(text='a photo of a dog')
# 点提示
# points默认 [[0,0]] [[x1,y1],[x2,y2]]
# point_label默认 [0] [1,0] 0:背景, 1:前景
ann = prompt_process.point_prompt(points=[[620, 360]], pointlabel=[1])
prompt_process.plot(annotations=ann,output_path='./output/dog.jpg',)
你也欢迎尝试我们的Colab演示:FastSAM_example.ipynb。
我们为不同目的提供了各种选项,详情请见MORE_USAGES.md。
从头开始训练或验证:训练和验证代码。
# 在"./weights/FastSAM.pt"下载预训练模型
python app_gradio.py


有两个版本的模型可用,大小不同。点击下面的链接下载相应模型类型的检查点。
default或FastSAM:基于YOLOv8x的分割任意物体模型 | 百度网盘 (密码: 0000)。FastSAM-s:基于YOLOv8s的分割任意物体模型。所有结果均在单台NVIDIA GeForce RTX 3090上测试。
不同点提示数量下的运行速度(毫秒)。
| 方法 | 参数量 | 1 | 10 | 100 | E(16x16) | E(32x32*) | E(64x64) |
|---|---|---|---|---|---|---|---|
| SAM-H | 0.6G | 446 | 464 | 627 | 852 | 2099 | 6972 |
| SAM-B | 136M | 110 | 125 | 230 | 432 | 1383 | 5417 |
| FastSAM | 68M | 40 | 40 | 40 | 40 | 40 | 40 |
| 数据集 | 方法 | GPU内存 (MB) |
|---|---|---|
| COCO 2017 | FastSAM | 2608 |
| COCO 2017 | SAM-H | 7060 |
| COCO 2017 | SAM-B | 4670 |
在BSDB500数据集上测试。
| 方法 | 年份 | ODS | OIS | AP | R50 |
|---|---|---|---|---|---|
| HED | 2015 | .788 | .808 | .840 | .923 |
| SAM | 2023 | .768 | .786 | .794 | .928 |
| FastSAM | 2023 | .750 | .790 | .793 | .903 |
| 方法 | AR10 | AR100 | AR1000 | AUC |
|---|---|---|---|---|
| SAM-H E64 | 15.5 | 45.6 | 67.7 | 32.1 |
| SAM-H E32 | 18.5 | 49.5 | 62.5 | 33.7 |
| SAM-B E32 | 11.4 | 39.6 | 59.1 | 27.3 |
| FastSAM | 15.7 | 47.3 | 63.7 | 32.2 |
边界框 AR@1000
| 方法 | 全部 | 小 | 中 | 大 |
|---|---|---|---|---|
| ViTDet-H | 65.0 | 53.2 | 83.3 | 91.2 |
| 零样本迁移方法 | ||||
| SAM-H E64 | 52.1 | 36.6 | 75.1 | 88.2 |
| SAM-H E32 | 50.3 | 33.1 | 76.2 | 89.8 |
| SAM-B E32 | 45.0 | 29.3 | 68.7 | 80.6 |
| FastSAM | 57.1 | 44.3 | 77.1 | 85.3 |
| 方法 | AP | APS | APM | APL |
|---|---|---|---|---|
| ViTDet-H | .510 | .320 | .543 | .689 |
| SAM | .465 | .308 | .510 | .617 |
| FastSAM | .379 | .239 | .434 | .500 |
几个分割结果:


几个下游任务的结果,展示有效性。



该模型采用Apache 2.0许可证。
没有这些优秀的人的贡献,我们的项目是不可能实现的!感谢所有为这个项目做出贡献的人。
<a href="https://github.com/CASIA-IVA-Lab/FastSAM/graphs/contributors"> <img src="https://contrib.rocks/image?repo=CASIA-IVA-Lab/FastSAM" /> </a>如果您发现这个项目对您的研究有用,请考虑引用以下BibTeX条目。
@misc{zhao2023fast,
title={Fast Segment Anything},
author={Xu Zhao and Wenchao Ding and Yongqi An and Yinglong Du and Tao Yu and Min Li and Ming Tang and Jinqiao Wang},
year={2023},
eprint={2306.12156},
archivePrefix={arXiv},
primaryClass={cs.CV}
}


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置 海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美 剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答, 小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。


像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号