当前位置:首页>java>【代码数据】SAM3实战:文本驱动图像分割,环境搭建+测试全流程手把手教!

【代码数据】SAM3实战:文本驱动图像分割,环境搭建+测试全流程手把手教!

  • 2026-10-14 16:50:57
【代码数据】SAM3实战:文本驱动图像分割,环境搭建+测试全流程手把手教!

图像分割界又迎新王者!Meta 2025年11月开源的 SAM3(Segment Anything Model 3) 太顶了,不仅延续了前两代的强大分割能力,还新增文本提示功能,能听懂“bear”“汽车”这类关键词,直接精准分割图像中的目标,性能直接狂飙2倍!

但不少小伙伴反馈:权重下载难、环境搭建踩坑多、测试代码跑不通?别慌!这篇保姆级实战教程,从源码权重下载到图片分割测试,一步一步带你来操作,亲测有效!

模型亮点速览

SAM3作为新一代通用分割模型,核心优势拉满:

  • 支持多模态提示:文本、点、框、图像示例都能当提示,比如输入“dog”就能分割图中所有狗
  • 新增可提示概念分割(PCS):能一次性分割场景中某类概念的所有实例,比如“视频中所有猫”
  • 性能炸裂:H200 GPU处理100个检测对象仅需30毫秒,图像视频分割精度远超前代
  • 应用广泛:创意媒体编辑、智能家居预览、野生动物监测、3D重建都能用

一、源码&权重文件下载

想跑通模型,先把“粮草”备齐!

1. 源代码下载

直接从Meta官方Github仓库克隆:

git clone https://github.com/facebookresearch/sam3.git

2. 权重文件下载(关键踩坑点!)

模型权重文件 sam3.pt(3.2GB)是运行核心,但官方下载有坑:

  • 官方路径:https://huggingface.co/facebook/sam3(需申请,易被拒,不推荐!)
  • 推荐路径:https://pan.baidu.com/s/1DsGUiV3xvAVADLtEaVuDog?pwd=49wg
  • 备用路径:https://www.modelscope.cn/models/facebook/sam3/files
  • 放置位置:下载后直接放到根目录下即可

二、环境搭建:一步不踩坑

小编建议使用官方推荐环境配置,以下是经过小编测试过的配置情况。

1. 环境要求

  • Python:3.12 及以上
  • PyTorch:2.7 及以上
  • 显卡:Nvidia 显卡(必须支持 CUDA),CUDA 12.6 及以上

2. 详细搭建步骤

(1)创建并激活 conda 环境

打开终端,执行以下命令创建独立环境(避免依赖冲突):

# 创建sam3专属环境,指定Python版本conda create -n sam3 python=3.12# 激活环境(Windows/Linux通用)conda activate sam3

(2)安装 PyTorch(带 CUDA 支持)

根据自己的 CUDA 版本选择命令,以 CUDA 12.8 为例:

pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu128

(3)安装 SAM3 依赖包

进入克隆的 sam3 目录,执行本地安装:

cd sam3pip install -e .

(4)(可选)解决关键报错:缺少 triton 模块

如果在Linux下执行上述步骤,那么这一步可以省略;如果是在Windows上执行上述步骤,那么运行代码时,大概率会提示 No module named 'triton',直接安装以下包即可:

pip install triton triton-windows

至此,环境搭建完成!可以开始测试啦~

三、实战测试:图片分割手把手来

1. 完整测试代码

import matplotlib.pyplot as pltimport osfrom PIL import Imagefrom sam3.model_builder import build_sam3_image_modelfrom sam3.model.sam3_image_processor import Sam3Processorfrom sam3.visualization_utils import plot_resultsSAVE_DIR = "/root/autodl-tmp/sam3/results"CKPT_PATH = "/root/autodl-tmp/sam3/sam3.pt"IMAGE_PATH = "/root/autodl-tmp/sam3/download.jpg"PROMPT = "dog"OUTPUT_IMAGE_NAME = "download_inference.jpg"defmain():    os.makedirs(SAVE_DIR, exist_ok=True)    model = build_sam3_image_model(checkpoint_path=CKPT_PATH)    processor = Sam3Processor(model)    image = Image.open(IMAGE_PATH).convert("RGB")    state = processor.set_image(image)    processor.set_text_prompt(state=state, prompt=PROMPT)    plot_results(image, state)    vis_path = os.path.join(SAVE_DIR, OUTPUT_IMAGE_NAME)    plt.savefig(vis_path, dpi=300, bbox_inches="tight")    print(vis_path)    plt.close()if __name__ == "__main__":    main()

2. 测试效果

3. 代码关键说明

  • 图片路径:将 /root/autodl-tmp/sam3/...png 改为你的本地图片路径
  • 文本提示:修改 prompt 参数即可分割不同目标,比如 car、flower
  • 输出变量解释:
    • masks:分割掩码,与原图分辨率一致,不同目标用不同颜色标记
    • boxes:检测框坐标,每个框包含(左上角 x、左上角 y、右下角 x、右下角 y)
    • scores:目标置信度,数值越高越可靠

四、常见问题

  • 权重下载失败:放弃 Hugging Face 申请,直接用小编下载链接
  • CUDA 版本不匹配:安装 PyTorch 时选择与本地 CUDA 对应的 whl 包
  • 可视化无弹窗:在 plot_results 后手动添加 plt.show()

五、小结

SAM3 凭借文本提示的灵活交互和超高分割精度,直接把通用分割模型的实用性拉满!未来随着模型轻量化和推理加速技术的发展,SAM3 有望在移动端和实时场景中大展身手。赶紧跟着教程动手试试吧!

欢迎大家点赞、评论!

最新文章

随机文章