FastSAM极速体验:5分钟上手图像分割新范式

FastSAM极速体验:5分钟上手图像分割新范式

【免费下载链接】FastSAM Fast Segment Anything 【免费下载链接】FastSAM 项目地址: 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文件夹中(需手动创建该文件夹)。

目录结构概览

项目主要文件结构如下:

极速体验: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),即可通过直观的界面进行交互分割。

Gradio界面-全能模式 Gradio界面-点提示模式

性能对比与实际应用场景

速度与性能优势

FastSAM在保持高分割质量的同时,展现出惊人的速度优势。在NVIDIA GeForce RTX 3090上的测试显示,无论输入提示数量多少,FastSAM的推理时间稳定在40ms左右,而SAM-B(小模型)需要110ms以上,SAM-H(大模型)则需要446ms以上。

FastSAM速度对比

内存占用方面,FastSAM仅需2608MB GPU内存,远低于SAM-H的7060MB和SAM-B的4670MB,使得在普通PC上运行成为可能。

实际应用案例

FastSAM的高效特性使其在多个领域具有广泛应用前景:

自然图像分割

能够精准分割复杂场景中的多个物体,为图像编辑、内容分析提供基础。

自然图像分割示例

异常检测

通过分割技术快速定位图像中的异常区域,应用于工业质检等场景。

异常检测应用

建筑提取

从遥感图像中精确提取建筑物轮廓,助力城市规划与地图更新。

建筑提取应用

总结与后续学习

通过本文的5分钟教程,你已经掌握了FastSAM的基本安装与使用方法。从命令行工具到Web界面,从点/框提示到文本引导,FastSAM提供了灵活多样的交互方式,满足不同场景下的图像分割需求。

进阶学习资源

FastSAM作为图像分割领域的突破性技术,正在不断进化。无论是开发者还是研究人员,都可以基于此构建更复杂的计算机视觉应用。现在就动手尝试,体验图像分割的极速新范式吧!

提示:所有分割结果默认保存在output/目录下,你可以直接查看或进一步处理这些结果图像。

【免费下载链接】FastSAM Fast Segment Anything 【免费下载链接】FastSAM 项目地址: https://gitcode.com/gh_mirrors/fa/FastSAM

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值