全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

SAM2 万物分割模型的开发与训练

最近更新时间:2025-09-05 15:39:40

背景介绍

SAM2Segment Anything Model 2)是 Meta 公司推出的开源万物分割大模型,在计算机视觉、具身智能等领域有广泛的应用。本文将介绍如何使用星流平台完成一个 SAM2 模型的开发与训练。

前置准备

下载数据集

SAM2开源代码链接:https://github.com/facebookresearch/sam2/tree/main

注意:原始数据集中存在隐藏文件,需要全部删除后才能保证训练的正常进行

上传数据至对象存储(KS3)/文件系统(KPFS)

此处以 KS3 为例。

  • 进入金山云控制台--对象存储

  • 上传数据集至存储空间中

存储空间 -- aicptest-qh -- 内容管理 -- 上传文件

SAM2训练项目数据集被上传在MOSE_release文件夹中

创建存储配置

  • 回到星流训推平台,新建存储配置

选择存储类型为KS3 -- 填写AK/SK,选择KS3实例

KS3路径:上传数据文件的路径

挂载路径:拉起任务时数据挂载的路径

配置完成后点击确认存储配置新建成功

刷新页面,在存储配置中看到新建的配置即为创建成功

模型开发

新建开发任务

  • 在星流训推平台选择开发任务并新建

  • 进入新建开发任务页面后填写开发任务基本信息

  • 配置初始的开发环境,选择使用的镜像类型。SAM2需要使用torch>=2.5.1的环境,这里选择pytorch2.6.0镜像作为基础镜像

  • 存储配置&输出挂载

本次开发任务可以不需要挂载,后续配置中源码通过git clone下载到环境中

对于其他任务,如果有在开发环境中调用项目代码/数据的需求可以在此处挂载对应的代码

  • 选择可用的资源池与队列。本次开发任务使用单卡开发,GPU数量设定为1

  • 以上配置完成后,确认新建任务

  • 创建成功后可以在主页看到如下显示运行中的实例

进入开发环境

  • 点击连接

  • 选择IDE(以Jupyter Notebook为例)

  • 进入Terminal

  • 在 terminal 中,依次执行下列操作:

注意:开源代码中有一些路径的硬编码默认读取 root 路径的文件,为了最大程度降低拉起训练的复杂度(尽量不修改源码&防止读取文件路径混淆),将源码文件放到 root 中

下载依赖:

cd ~ #进入/root目录
source activate base  #进入 conda base环境
apt update && apt install git -y  #下载git
git clone https://github.com/facebookresearch/sam2 #下载sam2项目代码
cd sam2 #进入项目目录
pip install -e .  
pip install -e ".[dev]" #下载依赖

下载 checkpoints:

apt update && apt install -y curl 
cd checkpoints
./download_ckpts.sh

这组命令会下载四个checkpoints文件到checkpoints文件夹(download_ckpts.sh

要实现所有的训练、推理任务可能会用到所有四组checkpoints,因此建议一次性全部下载。

本次的训练任务可以注释掉其余三个CMD任务,只下载第三个checkpoints(红框内)。

  • 备选方案:

如果不想在终端下载 checkpoints,也可以使用以下的下载链接下载文件到本地,将 checkpoints 文件挂载到开发环境中,然后 cp 到 /root/sam2/checkpoints文件夹下

SAM2 任务中提供了四组检查点,拉起训练任务需要用到的检查点文件是以下四个

  1. sam2.1_hiera_tiny.pt

  2. sam2.1_hiera_small.pt

  3. sam2.1_hiera_base_plus.pt

  4. sam2.1_hiera_large.pt

训练任务拉起需要用到的检查点文件是sam2.1_hiera_base_plus.pt (如果只跑训练任务也可以只上传这一个)

  • 配置config文件:

SAM2项目中与训练启动有关的config文件路径为:

sam2/configs/sam2.1_training/sam2.1_hiera_b+_MOSE_finetune.yaml

通过路径找到sam2.1_hiera_b+_MOSE_finetune.yaml 并编辑(目录如下):

  • 编辑dataset片段:

  • 将红框内信息按照下述代码块补全:

注意:训练数据存储配置的挂载路径是 /mnt/data/

dataset:
  # PATHS to Dataset
  img_folder: /mnt/data/train/JPEGImages # PATH to MOSE JPEGImages folder
  gt_folder: /mnt/data/train/Annotations # PATH to MOSE Annotations folder
  file_list_txt: null # training/assets/MOSE_sample_train_list.txt # Optional PATH to filelist containing a subset of videos to be used for training
  multiplier: 2

以上三个步骤均成功执行则SAM2训练项目的环境配置完成。

保存镜像

  • 退出开发环境,返回主界面,选择保存镜像

  • 填写镜像信息(自定义),点击确定导出镜像

看到刚才保存的镜像状态是可用,则表示自定义镜像保存成功了

模型训练

新建训练任务

  • 填写基本信息

  • 选择刚才保存的自定义镜像

  • 输入启动命令

cd /root/sam2
python training/train.py \
    -c configs/sam2.1_training/sam2.1_hiera_b+_MOSE_finetune.yaml \
    --use-cluster 0 \
    --num-gpus 1
  • 存储配置-对象存储KS3-选择存储配置

  • 选择可用的资源池和队列。单节点训练,将worker设置为0

配置完成后点击确认,完成训练任务创建

查看训练结果

  • 在训练任务界面看到任务状态为运行中即顺利拉起了训练

  • 点击任务名称,进入任务

日志 -- 查看训练任务拉起日志(如右侧红框所示,训练任务顺利拉起)

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈