FastSAM极速体验:5分钟上手图像分割新范式
【免费下载链接】FastSAM Fast Segment Anything 项目地址: https://gitcode.com/gh_mirrors/fa/FastSAM
图像分割技术正迎来效率革命!传统图像分割工具要么需要大量标注数据,要么运行速度缓慢难以实用。Fast Segment Anything(FastSAM)作为新一代图像分割模型,仅用2%的SA-1B数据集训练,却实现了与SAM(Segment Anything Model)相当的性能,同时将运行速度提升了50倍。本文将带你在5分钟内完成从环境搭建到实际应用的全流程,轻松掌握这一图像分割新范式。
环境准备:3步完成安装配置
1. 获取项目代码
首先通过Git克隆项目仓库到本地:
git clone https://gitcode.com/gh_mirrors/fa/FastSAM
2. 创建虚拟环境
使用conda创建并激活专用虚拟环境,避免依赖冲突:
conda create -n FastSAM python=3.9
conda activate FastSAM
3. 安装依赖包
进入项目目录并安装所需依赖:
cd FastSAM
pip install -r requirements.txt
pip install git+https://github.com/openai/CLIP.git # 文本提示功能所需
模型下载与基础配置
下载预训练模型
FastSAM提供两种模型版本供选择:
- FastSAM(默认):基于YOLOv8x的模型,性能更强
- FastSAM-s:基于YOLOv8s的轻量模型,速度更快
建议初学者先下载默认模型,将其保存到项目根目录下的weights文件夹中(需手动创建该文件夹)。
目录结构概览
项目主要文件结构如下:
- 核心代码:fastsam/
- 推理脚本:Inference.py
- Web界面:app_gradio.py
- 示例图片:images/、examples/
- 输出目录:output/
极速体验:4种分割模式实战
1. 全能模式(Everything Mode)
无需任何提示,自动分割图像中所有物体,是快速了解图像内容的理想选择:
python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg
运行后,结果将保存到output目录。该模式下FastSAM会对图像进行全面分割,识别出所有可见物体。
2. 点提示模式(Point Prompt)
通过指定图像中的点及其类别(前景/背景),精确分割目标物体。例如要分割图像中的黄色狗:
python Inference.py --model_path ./weights/FastSAM.pt \
--img_path ./images/dogs.jpg \
--point_prompt "[[520,360],[620,300]]" \
--point_label "[1,0]"
其中point_prompt指定点坐标,point_label指定点类型(1表示前景,0表示背景)。你可以使用多个点来更精确地定义目标区域:
python Inference.py --model_path ./weights/FastSAM.pt \
--img_path ./images/dogs.jpg \
--point_prompt "[[520,360],[620,300],[520,300],[620,360]]" \
--point_label "[1,0,1,0]"
3. 框提示模式(Box Prompt)
通过指定边界框(x,y,w,h)来分割特定区域的物体:
python Inference.py --model_path ./weights/FastSAM.pt \
--img_path ./images/dogs.jpg \
--box_prompt "[[570,200,230,400]]"
边界框参数说明:[x坐标, y坐标, 宽度, 高度],其中(x,y)是框的左上角坐标。
4. 文本提示模式(Text Prompt)
最具创新性的功能,直接使用自然语言描述要分割的物体:
python Inference.py --model_path ./weights/FastSAM.pt \
--img_path ./images/cat.jpg \
--text_prompt "the cat" \
--withContours True
此模式需要CLIP支持,能够根据文本描述精准定位并分割目标物体。
进阶技巧:提升分割质量与效率
边缘优化与可视化
使用--withContours参数可以绘制分割 mask 的边缘,--better_quality参数则能生成更平滑的边缘:
python Inference.py --model_path ./weights/FastSAM.pt \
--img_path ./images/dogs.jpg \
--point_prompt "[[620,360]]" \
--point_label "[1]" \
--withContours True \
--better_quality True
调整输入尺寸
通过--imgsz参数调整输入图像尺寸,平衡速度与精度:
python Inference.py --model_path ./weights/FastSAM.pt \
--img_path ./images/dogs.jpg \
--imgsz 720
较小的尺寸(如640)速度更快,较大的尺寸(如1024)精度更高。
Web交互界面
对于更喜欢图形界面的用户,FastSAM提供了Gradio Web界面:
python app_gradio.py
运行后在浏览器中访问本地地址(通常是http://127.0.0.1:7860),即可通过直观的界面进行交互分割。
性能对比与实际应用场景
速度与性能优势
FastSAM在保持高分割质量的同时,展现出惊人的速度优势。在NVIDIA GeForce RTX 3090上的测试显示,无论输入提示数量多少,FastSAM的推理时间稳定在40ms左右,而SAM-B(小模型)需要110ms以上,SAM-H(大模型)则需要446ms以上。
内存占用方面,FastSAM仅需2608MB GPU内存,远低于SAM-H的7060MB和SAM-B的4670MB,使得在普通PC上运行成为可能。
实际应用案例
FastSAM的高效特性使其在多个领域具有广泛应用前景:
自然图像分割
能够精准分割复杂场景中的多个物体,为图像编辑、内容分析提供基础。
异常检测
通过分割技术快速定位图像中的异常区域,应用于工业质检等场景。
建筑提取
从遥感图像中精确提取建筑物轮廓,助力城市规划与地图更新。
总结与后续学习
通过本文的5分钟教程,你已经掌握了FastSAM的基本安装与使用方法。从命令行工具到Web界面,从点/框提示到文本引导,FastSAM提供了灵活多样的交互方式,满足不同场景下的图像分割需求。
进阶学习资源
- 详细使用指南:MORE_USAGES.md
- API文档:fastsam/predict.py
- 训练与验证:官方提供的Training and Validation Code
FastSAM作为图像分割领域的突破性技术,正在不断进化。无论是开发者还是研究人员,都可以基于此构建更复杂的计算机视觉应用。现在就动手尝试,体验图像分割的极速新范式吧!
提示:所有分割结果默认保存在output/目录下,你可以直接查看或进一步处理这些结果图像。
【免费下载链接】FastSAM Fast Segment Anything 项目地址: https://gitcode.com/gh_mirrors/fa/FastSAM
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考














