YOLOv5 实例分割训练实战:Mask 推理、训练曲线与自定义预测
这篇教程根据我复现 YOLOv5 实例分割流程时整理,重点演示预训练分割推理、自定义分割数据训练、验证和预测结果展示。
本文整理自我的学习和项目复现过程,尽量按实操顺序保留 notebook 的关键步骤,同时把数据集获取方式调整为适合中文教程发布的写法。
本文会重点跑通以下流程:
- 安装 YOLOv5 分割环境
- 运行预训练分割推理
- 从数据集后台获取分割数据
- 训练自定义分割模型
- 验证并做单图预测
如果你正在系统学习目标检测、实例分割、OCR、多目标跟踪或视觉大模型,建议收藏本文;配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住,可以在评论区说明具体报错。
📚 文章目录
- YOLOv5 实例分割训练实战:Mask 推理、训练曲线与自定义预测
- ⚙️ 环境准备
- 🧩 安装 YOLOv5
- 🔍 预训练分割推理
- 📦 从数据集后台获取分割数据
- 🏋️ 自定义训练
- 📏 验证模型
- 🧪 自定义推理
- 📤 部署说明
- 📌 小结
- 📚 同系列教程汇总
⚙️ 环境准备
先检查 GPU 与基础运行环境。建议优先使用 Colab GPU 或本地 NVIDIA GPU 环境。
!nvidia-smi🧩 安装 YOLOv5
克隆 YOLOv5 仓库并安装依赖。
# save the working directory path for later useimportos HOME=os.getcwd()print(HOME)# clone YOLOv5 repository%cd/content !git clone https://github.com/ultralytics/yolov5# install dependencies as necessary%cd/content/yolov5 !pip install-r requirements.txt !pip uninstall wandb-qy# deprecated dependencyimporttorchfromIPython.displayimportImage,clear_output# to display images# clear_output()print('Setup complete. Using torch %s %s'%(torch.__version__,torch.cuda.get_device_properties(0)iftorch.cuda.is_available()else'CPU'))🔍 预训练分割推理
先用预训练分割模型跑通示例图,确认分割链路正常。
# infer using segment/predict.py%cd{HOME}/yolov5 !python segment/predict.py--weights yolov5s-seg.pt--source data/images/bus.jpg--name test-inference Image(filename=f"{HOME}/yolov5/runs/predict-seg/test-inference/bus.jpg",width=600)PATH_TO_IMAGE=f"{HOME}/zebra.jpg"!curl https://i.imgur.com/EbOBS5l.jpg-o{PATH_TO_IMAGE}#Infer using segment/predict.py%cd{HOME}/yolov5 !python segment/predict.py--weights yolov5s-seg.pt--source{PATH_TO_IMAGE}--name coco Image(filename=f"{HOME}/yolov5/runs/predict-seg/coco/zebra.jpg",width=600)📦 从数据集后台获取分割数据
下面按 notebook 原流程继续执行。
fromtypesimportSimpleNamespace# 从数据集后台下载 YOLO 分割 格式数据集后,修改 DATASET_DIR 指向解压目录。DATASET_DIR="/content/dataset"# 修改为数据集后台导出的数据集目录dataset=SimpleNamespace(location=DATASET_DIR,version="1",name="custom-dataset")🏋️ 自定义训练
开始训练前重点检查数据路径和类别数量。
%cd{HOME}/yolov5 !python segment/train.py \--img320\--batch128\--epochs30\--data{dataset.location}/data.yaml \--weights yolov5s-seg.pt \--name custom-dataset \--cacheImage(filename=f'{HOME}/yolov5/runs/train-seg/custom-dataset/results.png',width=1200)📏 验证模型
训练完成后先跑验证,确认指标和输出目录。
%cd{HOME}/yolov5 !python segment/val.py \--weights{HOME}/yolov5/runs/train-seg/custom-dataset/weights/best.pt \--data{dataset.location}/data.yaml \--img320\--name custom-dataset🧪 自定义推理
下面按 notebook 原流程继续执行。
importosifos.path.exists(os.path.join(dataset.location,"test")):split_path=os.path.join(dataset.location,"test","images")else:split_path=os.path.join(dataset.location,"valid","images")example_image_name=os.listdir(split_path)[3]example_image_path=os.path.join(split_path,example_image_name)%cd{HOME}/yolov5 !python segment/predict.py \--img320\--weights{HOME}/yolov5/runs/train-seg/custom-dataset/weights/best.pt \--source{example_image_path}\--name custom-dataset Image(filename=f"{HOME}/yolov5/runs/predict-seg/custom-dataset5/{example_image_name}",width=600)📤 部署说明
Notebook 原流程包含在线部署。这里保留本地模型路径,方便接入自己的部署流程。
# 可选:将训练得到的模型目录接入自己的部署流程。MODEL_DIR="./runs"MODEL_DIR# 可选:部署完成后,可在这里接入自己的在线推理服务进行测试。# 可选:这里可以接入主动学习或批量推理流程。# 可选:这里可以接入主动学习或批量推理流程。# 可选:这里可以接入主动学习或批量推理流程。📌 小结
这篇教程完整整理了YOLOv5 实例分割训练的核心复现流程。实际操作时,建议先确认 GPU、依赖版本、数据集路径和模型权重路径,再逐段运行 notebook。
后续我会继续按源项目顺序整理同系列中的目标检测、实例分割、OCR、多目标跟踪和视觉大模型教程。
📚 同系列教程汇总
Google Gemini 3.5 Flash 零样本目标检测教程:从提示词到可视化结果
GLM-OCR 文档识别实战教程:从验证码、公式到车牌 OCR
RF-DETR + ByteTrack 多目标跟踪实战教程:从命令行到 Python 视频轨迹可视化
SAM 3 图像分割实战教程:文本、框和点提示的多种分割方式
SAM 3 视频分割实战教程:用文本提示分割并跟踪视频中的目标
YOLOv5 实例分割训练实战:Mask 推理、训练曲线与自定义预测-本文