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 可视化-本文