发布时间:2026/9/8 7:36:34
YOLO11 自定义实例分割训练实战:从预训练分割到 Mask 可视化 YOLO11 自定义实例分割训练实战从预训练分割到 Mask 可视化这篇教程根据我复现 YOLO11 实例分割训练流程时整理重点演示如何用预训练分割模型做基线推理再切换到自定义分割数据集完成训练、验证和 mask 可视化。目标检测只需要框实例分割还要像素级 mask。本文会保留 notebook 中的核心流程帮助你快速检查数据、训练输出和最终分割结果。本文会重点跑通以下流程安装 YOLO11 分割训练依赖运行 YOLO11-seg 预训练模型推理查看 boxes、类别、置信度和 masks从数据集后台获取 YOLO 分割格式数据集训练实例分割模型并可视化 mask 结果如果你正在系统学习目标检测、实例分割、OCR、多目标跟踪或视觉大模型建议收藏本文配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住可以在评论区说明具体报错。 文章目录YOLO11 自定义实例分割训练实战从预训练分割到 Mask 可视化⚙️ 环境准备 安装 YOLO11 分割依赖 使用预训练分割模型推理️ 微调 YOLO11 实例分割模型 验证微调模型 使用自定义分割模型推理 导出或部署说明 小结 同系列教程汇总⚙️ 环境准备先检查运行环境并安装依赖。建议在 Colab 或带 NVIDIA GPU 的环境中运行避免训练或视频推理阶段显存不足。!nvidia-smiimportos HOMEos.getcwd()print(HOME) 安装 YOLO11 分割依赖实例分割同样使用 Ultralytics但数据集需要包含分割标注。%pip installultralytics8.3.40supervision# 关闭 Ultralytics 运行统计同步!yolo settings syncFalseimportultralytics ultralytics.checks() 使用预训练分割模型推理下面按 notebook 原流程继续执行。# 请从数据集后台下载示例图片上传到 {HOME}/data/dog.jpeg或替换为自己的图片路径。!mkdir-p{HOME}/data EXAMPLE_IMAGEf{HOME}/data/dog.jpeg!yolo taskdetect modepredict modelyolo11l-seg.pt conf0.25source{EXAMPLE_IMAGE}saveTruefromIPython.displayimportImageasIPyImage IPyImage(filenamef{HOME}/runs/segment/predict/dog.jpeg,width600)fromultralyticsimportYOLOfromPILimportImage modelYOLO(yolo11l-seg.pt)imageImage.open(EXAMPLE_IMAGE)resultmodel.predict(image,conf0.25)[0]result.boxes.xyxyresult.boxes.confresult.boxes.clsresult.masks.dataimportsupervisionassv detectionssv.Detections.from_ultralytics(result)mask_annotatorsv.MaskAnnotator()label_annotatorsv.LabelAnnotator(text_colorsv.Color.BLACK,text_positionsv.Position.CENTER)annotated_imageimage.copy()annotated_imagemask_annotator.annotate(annotated_image,detectionsdetections)annotated_imagelabel_annotator.annotate(annotated_image,detectionsdetections)sv.plot_image(annotated_image,size(10,10))️ 微调 YOLO11 实例分割模型训练实例分割模型时确保data.yaml指向分割数据集并检查 train/valid/test 目录是否完整。!mkdir-p{HOME}/datasets%cd{HOME}/datasetsfromtypesimportSimpleNamespace# 从数据集后台下载 YOLO 分割格式 数据集后修改 DATASET_DIR 指向解压目录。DATASET_DIRf{HOME}/datasets/custom-dataset# 修改为数据集后台导出的数据集目录datasetSimpleNamespace(locationDATASET_DIR,version1)%cd{HOME}!yolo taskdetect modetrain modelyolo11s-seg.pt data{dataset.location}/data.yaml epochs10imgsz640plotsTrue!ls{HOME}/runs/segment/train/fromIPython.displayimportImageasIPyImage IPyImage(filenamef{HOME}/runs/segment/train/confusion_matrix.png,width600)fromIPython.displayimportImageasIPyImage IPyImage(filenamef{HOME}/runs/segment/train/results.png,width600)fromIPython.displayimportImageasIPyImage IPyImage(filenamef{HOME}/runs/segment/train/val_batch0_pred.jpg,width600) 验证微调模型训练结束后使用best.pt在验证集上计算指标重点关注 mAP、召回率和误检情况。!yolo taskdetect modeval model{HOME}/runs/segment/train/weights/best.pt data{dataset.location}/data.yaml 使用自定义分割模型推理下面按 notebook 原流程继续执行。!yolo taskdetect modepredict model{HOME}/runs/segment/train/weights/best.pt conf0.25source{dataset.location}/test/images saveTrueimportglobimportosfromIPython.displayimportImageasIPyImage,display latest_foldermax(glob.glob(f{HOME}/runs/segment/predict*/),keyos.path.getmtime)forimginglob.glob(f{latest_folder}/*.jpg)[:3]:display(IPyImage(filenameimg,width600))print(\n)!ls runs/segment/predictimportglobimportosfromIPython.displayimportImageasIPyImage,display latest_foldermax(glob.glob(f{HOME}/runs/segment/predict/),keyos.path.getmtime)forimginglob.glob(f{latest_folder}/*.jpg)[17:18]:print(img)display(IPyImage(filenameimg,width600))print(\n)# 查看你希望单独测试的图片是否存在请将路径替换为数据集后台导出的测试图片路径。!ls{dataset.location}/test/images/example.jpgfromultralyticsimportYOLOfromPILimportImage modelYOLO(f{HOME}/runs/segment/train/weights/best.pt)TEST_IMAGEf{dataset.location}/test/images/example.jpg# 替换为数据集后台导出的测试图片imageImage.open(TEST_IMAGE)resultmodel.predict(image,conf0.25)[0]importsupervisionassv detectionssv.Detections.from_ultralytics(result)mask_annotatorsv.MaskAnnotator()label_annotatorsv.LabelAnnotator(text_colorsv.Color.BLACK,text_positionsv.Position.CENTER)annotated_imageimage.copy()mask_annotator.annotate(annotated_image,detectionsdetections)label_annotator.annotate(annotated_image,detectionsdetections)sv.plot_image(annotated_image,size(10,10)) 导出或部署说明Notebook 原流程包含在线部署演示。这里保留一个本地模型路径占位方便后续接入你自己的部署流程。# 可选将训练得到的 best.pt 按自己的部署流程发布。MODEL_DIRf{HOME}/runs/segment/train/MODEL_DIR# 可选如果后续需要接入自己的在线推理服务可在这里安装对应 SDK。importos,random,cv2importsupervisionassvimportIPythonfromultralyticsimportYOLO modelYOLO(f{HOME}/runs/segment/train/weights/best.pt)test_set_locdataset.location/test/images/test_imagesos.listdir(test_set_loc)# 随机抽取最多 4 张测试图片做本地分割推理。forimg_nameinrandom.sample(test_images,min(4,len(test_images))):print(Running inference on img_name)imagecv2.imread(os.path.join(test_set_loc,img_name))resultsmodel.predict(image,conf0.4)[0]detectionssv.Detections.from_ultralytics(results)mask_annotatorsv.MaskAnnotator()label_annotatorsv.LabelAnnotator()annotated_imagemask_annotator.annotate(sceneimage,detectionsdetections)annotated_imagelabel_annotator.annotate(sceneannotated_image,detectionsdetections)_,retcv2.imencode(.jpg,annotated_image)iIPython.display.Image(dataret)IPython.display.display(i) 小结实例分割训练和目标检测流程很像但更依赖 mask 标注质量。训练完成后建议重点检查 val_batch 预测图和测试集 mask 覆盖是否符合预期。这一类 notebook 建议按“先环境、再数据、再单样例、最后批量推理”的顺序复现。遇到报错时优先检查 GPU、依赖版本、数据集目录和模型权重路径。后续我会继续按源项目顺序整理同系列中的目标检测、实例分割、OCR、多目标跟踪和视觉大模型教程。 同系列教程汇总Google Gemini 3.5 Flash 零样本目标检测教程从提示词到可视化结果GLM-OCR 文档识别实战教程从验证码、公式到车牌 OCRRF-DETR ByteTrack 多目标跟踪实战教程从命令行到 Python 视频轨迹可视化SAM 3 图像分割实战教程文本、框和点提示的多种分割方式SAM 3 视频分割实战教程用文本提示分割并跟踪视频中的目标YOLO11 自定义实例分割训练实战从预训练分割到 Mask 可视化-本文

相关新闻

2026/9/8 7:36:17

STM32与TB6593FNG的直流电机控制方案设计与优化

1. 项目背景与核心需求在工业自动化和嵌入式系统开发领域,直流电机控制一直是个经典而重要的课题。最近我在一个自动化分拣设备项目中遇到了一个棘手问题:标准直流电机驱动方案在动态响应和调速精度上无法满足需求。经过多方比较,最终选择了T…

2026/9/3 5:41:07

TB6593FNG与PIC18F67K40的直流电机控制方案

1. 项目背景与核心器件选型在工业自动化和小型机器人领域,直流电机控制一直是基础但关键的技术环节。这次我们要探讨的是基于TB6593FNG全桥驱动芯片和PIC18F67K40微控制器的定制化解决方案——这个组合在中小功率直流电机控制中展现出独特的优势。TB6593FNG是东芝推…

2026/9/8 7:32:26

断点调试读LLM模型源码:从张量形状到深度理解

正文开始。你是否有过这样的经历:论文里把 Transformer 的结构图看得清清楚楚,注意力公式也能默写,可一旦clone下开源大模型的代码,马上陷入“头文件地狱”。一个forward函数能折叠七八层父类调用,self.model后面接了十…

2026/9/8 7:32:26

从BIOS到UEFI与EDK2:开源固件生态全解读

1. 从 BIOS 到 UEFI:固件世界的分水岭先交代一下背景。我入行那会儿,PC 固件的主流还是 BIOS,也就是 Basic Input Output System。那时候调一台服务器的启动问题,最常见的手段就是拔插内存、扣电池、清 CMOS,然后盯着 …

2026/9/8 7:32:26

DMA原理详解与嵌入式实战:串口接收、ADC采样与疑难排障

调试串口、碰过 ADC 采样的人,对 DMA 这三个字母应该都不陌生,但大多数人最早的理解也就停留在“把数据搬来搬去,不用 CPU 管”这个层面。我第一次被 DMA 救场,是在一个既跑着 Modbus 轮询、又得实时采集四路 ADC 的项目里&#x…

2026/9/8 7:32:26

PyTorch逐算子性能基准测试:从profiler到独立benchmark的实践

做性能分析这几年,我越来越觉得模型层面的benchmark是“看起来会,实际很难做透”的一件事。用PyTorch profiler拉一轮forward,看到的是每个op在总耗时里的占比,但真要回答“这个op单独跑到底有多快”、“换成融合版能提升多少”、…

2026/9/8 7:27:26

827.最大人工岛

链接:827. 最大人工岛 - 力扣(LeetCode) 题解: 1、grid[i][j] 1 的节点,visited里面存储的访问,相同的岛屿标记为相同的tag 2、counts记录的tag2count,这个岛屿的数量是多大 3、grid[i][j]…

2026/9/8 7:15:10

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

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

2026/9/8 7:15:15

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

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

2026/9/8 7:15:10

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

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

2026/9/8 0:01:49

踩多轮坑才跑通|OpenClaw 3.1.0 双平台本地 AI 自动化搭建实操实录

🔹 工具简述 OpenClaw 是一款备受开发者与办公人群青睐的开源本地智能工具,凭借离线本地运行、可视化图形面板、全流程自主任务处理三大核心特点,积累了众多忠实用户。与普通对话类 AI 产品不同,它能够直接调用电脑的软硬件操作权…

2026/9/8 0:01:50

拒绝复杂命令行,Hermes Agent 一键包快速解锁智能办公能力

🔍前言 不少想要体验 Hermes Agent 办公能力的使用者,往往会被复杂的环境配置拦住使用脚步。手动下载匹配依赖、反复调整系统目录、处理命令行持续报错、修复权限异常、补全丢失核心文件等一系列操作,对普通使用者而言门槛较高,很…

2026/9/7 16:23:03

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

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

2026/9/7 22:46:00

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

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

2026/9/7 22:45:59

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

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