YOLOv7 实例分割训练实战:分割数据格式、训练与预测可视化
这篇教程根据我复现 YOLOv7 实例分割流程时整理,重点演示 YOLOv7 seg 环境、预训练推理、自定义分割数据训练和结果展示。
本文整理自我的学习和项目复现过程,尽量按实操顺序保留 notebook 的关键步骤,同时把数据集获取方式调整为适合中文教程发布的写法。
本文会重点跑通以下流程:
- 安装 YOLOv7 seg 环境
- 运行预训练分割模型
- 从数据集后台获取 YOLOv7 分割数据
- 训练自定义分割模型
- 评估并展示预测 mask
如果你正在系统学习目标检测、实例分割、OCR、多目标跟踪或视觉大模型,建议收藏本文;配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住,可以在评论区说明具体报错。
📚 文章目录
⚙️ 环境准备
先检查 GPU 与基础运行环境。建议优先使用 Colab GPU 或本地 NVIDIA GPU 环境。
!nvidia-smi
🧩 安装 YOLOv7
下面按 notebook 原流程继续执行。
import os
HOME = os.getcwd()
print(HOME)
# clone YOLOv7 repository
%cd {HOME}
!git clone https://github.com/WongKinYiu/yolov7
# navigate to yolov7 directory and checkout u7 branch of YOLOv7 - this is hash of lates commit from u7 branch as of 12/21/2022
%cd {HOME}/yolov7
!git checkout 44f30af0daccb1a3baecc5d80eae22948516c579
%cd {HOME}/yolov7/seg
!pip install --upgrade pip
!pip install -r requirements.txt
🔍 预训练分割推理
先用预训练分割模型跑通示例图,确认分割链路正常。
# download COCO starting checkpoint to yolov7/seg directory
%cd {HOME}/yolov7/seg
!wget https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7-seg.pt
WEIGHTS_PATH = f"{HOME}/yolov7/seg/yolov7-seg.pt"
# download example image to yolov7/seg directory
%cd {HOME}/yolov7/seg
!wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=1sPYHUcIW48sJ67kh5MHOI3GfoXlYNOfJ' -O dog.jpeg
IMAGE_PATH = f"{HOME}/yolov7/seg/dog.jpeg"
%cd {HOME}/yolov7/seg
!python segment/predict.py --weights $WEIGHTS_PATH --source $IMAGE_PATH --name coco
RESULT_IMAGE_PATH = f"{HOME}/yolov7/seg/runs/predict-seg/coco/dog.jpeg"
from IPython.display import Image, display
display(Image(filename=RESULT_IMAGE_PATH))

📦 从数据集后台获取分割数据
下面按 notebook 原流程继续执行。
from getpass import getpass
# 如果需要访问私有数据集,请在运行时输入对应密钥。
DATA_API_KEY = getpass("Enter data API key secret value: ")
from types import SimpleNamespace
# 从数据集后台下载 YOLOv7 分割 格式数据集后,修改 DATASET_DIR 指向解压目录。
DATASET_DIR = "/content/dataset" # 修改为数据集后台导出的数据集目录
dataset = SimpleNamespace(location=DATASET_DIR, version="1", name="custom-dataset")
🏋️ 自定义训练
开始训练前重点检查数据路径和类别数量。
%cd {HOME}/yolov7/seg
!python segment/train.py --batch 16 \
--epochs 10 \
--data {dataset.location}/data.yaml \
--weights $WEIGHTS_PATH \
--device 0 \
--name custom
from IPython.display import Image, display
display(Image(filename=f"{HOME}/yolov7/seg/runs/train-seg/custom/val_batch0_labels.jpg"))

📏 评估模型
下面按 notebook 原流程继续执行。
%cd {HOME}/yolov7/seg
!python segment/predict.py \
--weights {HOME}/yolov7/seg/runs/train-seg/custom/weights/best.pt \
--conf 0.25 \
--source {dataset.location}/test/images
import glob
from IPython.display import Image, display
for imageName in glob.glob('/content/yolov7/seg/runs/predict-seg/exp/*.jpg')[:2]:
display(Image(filename=imageName))
print("\n")


📌 小结
这篇教程完整整理了 YOLOv7 实例分割训练 的核心复现流程。实际操作时,建议先确认 GPU、依赖版本、数据集路径和模型权重路径,再逐段运行 notebook。
后续我会继续按源项目顺序整理同系列中的目标检测、实例分割、OCR、多目标跟踪和视觉大模型教程。
383

被折叠的 条评论
为什么被折叠?



