SAM-2.1 自定义分割微调实战:从自定义数据集到自动掩码生成

发布时间:2026/9/11 9:23:19

SAM-2.1 自定义分割微调实战:从自定义数据集到自动掩码生成 SAM-2.1 自定义分割微调实战从自定义数据集到自动掩码生成这篇教程是我根据 SAM-2.1 自定义数据集微调和自动 mask 生成流程整理出来的。重点演示如何下载 SAM2 格式数据集配置 SAM-2.1 训练脚本训练后对比微调模型和基础模型的分割效果。SAM-2.1 的训练流程依赖官方仓库、配置文件和 checkpoint。这个 notebook 适合作为完整项目复现模板尤其适合希望把 SAM-2.1 迁移到特定零件、工业目标或业务数据集的场景。本文会重点跑通以下流程下载 SAM2 格式数据集克隆并安装 SAM2 官方仓库修正数据集文件名以适配训练配置启动 SAM-2.1 单 GPU 微调对比微调模型和基础模型的自动 mask 结果如果你正在系统学习多模态微调、目标检测、OCR 或图像分割建议收藏本文配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住可以在评论区说明具体报错。 文章目录SAM-2.1 自定义分割微调实战从自定义数据集到自动掩码生成 下载 SAM-2.1 与数据集 修改数据集文件名️ 开始训练 SAM-2.1 可视化微调模型结果 小结 同系列教程汇总 下载 SAM-2.1 与数据集先从数据集后台获取 car parts 数据集再克隆 SAM2 官方仓库和训练配置。注意原 notebook 中直接写了 API key发布前建议替换为自己的密钥或 Colab Secrets。fromtypesimportSimpleNamespace# 从数据集后台下载并解压数据集后修改 DATASET_DIR 指向数据集目录。DATASET_DIR/content/dataset# 修改为数据集后台导出的数据集目录datasetSimpleNamespace(locationDATASET_DIR)!git clone https://github.com/facebookresearch/sam2.git!wget-O/content/sam2/sam2/configs/train.yamlhttps://drive.usercontent.google.com/download?id11cmbxPPsYqFyWq87tmLgBAQ6OZgEhPG3%cd./sam2/!pip install-e.[dev]-q!cd./checkpoints./download_ckpts.sh 修改数据集文件名SAM-2.1 训练对文件名格式有要求这一步把 自定义数据集导出的文件名改成兼容形式。# 将 自定义数据集文件名改成 SAM 2.1 兼容格式。# 也可以通过调整 sam2/sam2/configs/train.yaml 来避免这一步。importosimportre FOLDER/content/data/trainforfilenameinos.listdir(FOLDER):# Replace all except last dot with underscorenew_filenamefilename.replace(.,_,filename.count(.)-1)ifnotre.search(r_\d\.\w$,new_filename):# Add an int to the end of base namenew_filenamenew_filename.replace(.,_1.)os.rename(os.path.join(FOLDER,filename),os.path.join(FOLDER,new_filename))️ 开始训练 SAM-2.1使用官方训练脚本和配置文件启动单 GPU 训练并可通过 TensorBoard 查看训练曲线。!python training/train.py-cconfigs/train.yaml--use-cluster0--num-gpus1%load_ext tensorboard%tensorboard--bind_all--logdir./sam2_logs/ 可视化微调模型结果加载微调 checkpoint 和基础 checkpoint在验证集图片上生成 mask 并并排对比。!pip install supervision-qimporttorchfromsam2.build_samimportbuild_sam2fromsam2.automatic_mask_generatorimportSAM2AutomaticMaskGeneratorimportsupervisionassvimportosimportrandomfromPILimportImageimportnumpyasnp# 在整个 notebook 中使用 bfloat16# from Meta notebooktorch.autocast(cuda,dtypetorch.bfloat16).__enter__()iftorch.cuda.get_device_properties(0).major8:torch.backends.cuda.matmul.allow_tf32Truetorch.backends.cudnn.allow_tf32Truecheckpoint/content/sam2/sam2_logs/configs/train.yaml/checkpoints/checkpoint.ptmodel_cfgconfigs/sam2.1/sam2.1_hiera_b.yamlsam2build_sam2(model_cfg,checkpoint,devicecuda)mask_generatorSAM2AutomaticMaskGenerator(sam2)checkpoint_base/content/sam2/checkpoints/sam2.1_hiera_base_plus.ptmodel_cfg_baseconfigs/sam2.1/sam2.1_hiera_b.yamlsam2_basebuild_sam2(model_cfg_base,checkpoint_base,devicecuda)mask_generator_baseSAM2AutomaticMaskGenerator(sam2_base)validation_setos.listdir(/content/data/valid)# choose random with .json extensionimagerandom.choice([imgforimginvalidation_setifimg.endswith(.jpg)])imageos.path.join(/content/data/valid,image)opened_imagenp.array(Image.open(image).convert(RGB))resultmask_generator.generate(opened_image)detectionssv.Detections.from_sam(sam_resultresult)mask_annotatorsv.MaskAnnotator(color_lookupsv.ColorLookup.INDEX)annotated_imageopened_image.copy()annotated_imagemask_annotator.annotate(annotated_image,detectionsdetections)base_annotatorsv.MaskAnnotator(color_lookupsv.ColorLookup.INDEX)base_resultmask_generator_base.generate(opened_image)base_detectionssv.Detections.from_sam(sam_resultbase_result)base_annotated_imageopened_image.copy()base_annotated_imagebase_annotator.annotate(base_annotated_image,detectionsbase_detections)sv.plot_images_grid(images[annotated_image,base_annotated_image],titles[Fine-Tuned SAM-2.1,Base SAM-2.1],grid_size(1,2)) 小结这篇教程完整整理了Fine-Tune SAM-2.1的核心复现流程。实际操作时建议先确认 GPU、依赖版本、数据集路径和模型权限再逐段运行 notebook。下载 SAM2 格式数据集克隆并安装 SAM2 官方仓库修正数据集文件名以适配训练配置启动 SAM-2.1 单 GPU 微调对比微调模型和基础模型的自动 mask 结果后续我会继续按源项目顺序整理 项目教程 中的目标检测、实例分割、OCR、多目标跟踪和视觉大模型教程。 同系列教程汇总Google Gemini 3.5 Flash 零样本目标检测教程从提示词到可视化结果GLM-OCR 文档识别实战教程从验证码、公式到车牌 OCRRF-DETR ByteTrack 多目标跟踪实战教程从命令行到 Python 视频轨迹可视化SAM 3 图像分割实战教程文本、框和点提示的多种分割方式SAM 3 视频分割实战教程用文本提示分割并跟踪视频中的目标SAM-2.1 自定义分割微调实战从自定义数据集到自动掩码生成-本文
延伸阅读

更多相关文章

2026/9/10 10:13:51

终极字体资源库:15款专业字体一站式获取指南

终极字体资源库:15款专业字体一站式获取指南 【免费下载链接】fonts My favorite fonts: SF Pro Text, Pingfang SC, Avenir Next, Roboto, Uber and more. 项目地址: https://gitcode.com/gh_mirrors/font/fonts 还在为设计项目寻找合适的字体而烦恼吗&…

2026/9/11 9:20:51

3款开源Web版数据库ER图工具实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 9:20:51

Jetson Orin Nano 2如何重新定义入门级边缘AI开发板

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 9:20:51

YOLO多版本融合大模型的电子元器件智能检测平台实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 9:20:51

告别Postman依赖:接口测试工具全场景选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 9:20:51

C语言数据存储原理与内存管理详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/11 9:15:49

Java SE大富翁游戏源码:Swing实战与注释驱动教学

简介:这是一份面向Java初学者与移动应用开发入门者的经典游戏项目源码,完整实现了J2ME平台下的大富翁手机游戏,涵盖游戏逻辑、界面交互与资源管理全流程。压缩包共89个文件,包含16个核心Java源文件(含详细中文注释&…

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码