YOLOv8 自定义目标检测训练实战:预训练推理、数据集训练与部署

YOLOv8 自定义目标检测训练实战:预训练推理、数据集训练与部署

YOLOv8 自定义目标检测训练实战:预训练推理、数据集训练与部署


这篇教程根据我复现 YOLOv8 自定义目标检测训练流程时整理,重点演示如何跑通预训练模型推理、获取自定义数据集、训练模型并做在线部署。

YOLOv8 是很多目标检测项目的起点,流程直观、文档也成熟。本文适合作为自定义检测任务的快速上手模板。

本文会重点跑通以下流程:

  • 安装 YOLOv8 依赖并关闭统计同步
  • 运行预训练模型检测示例图
  • 从数据集后台获取 YOLO 格式数据集
  • 训练自定义模型并查看曲线
  • 验证、推理并按自己的流程部署

如果你正在系统学习目标检测、实例分割、OCR、多目标跟踪或视觉大模型,建议收藏本文;配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住,可以在评论区说明具体报错。

📚 文章目录

  • YOLOv8 自定义目标检测训练实战:预训练推理、数据集训练与部署
    • ⚙️ 环境准备
    • 🔍 预训练模型推理
    • 📦 从数据集后台获取 YOLO 数据集
    • 🏋️ 自定义训练
    • 📏 训练结果查看
    • 🧪 验证与推理
    • 📤 部署说明
    • ☁️ 云端推理示例
    • 📌 小结
    • 📚 同系列教程汇总

⚙️ 环境准备

先检查运行环境并安装依赖。建议优先使用带 NVIDIA GPU 的环境,避免推理和训练阶段显存不足。

!nvidia-smi
importos HOME=os.getcwd()print(HOME)
# Pip install method (recommended)!pip install ultralytics==8.2.103-qfromIPythonimportdisplay display.clear_output()# prevent ultralytics from tracking your activity!yolo settings sync=Falseimportultralytics ultralytics.checks()
fromultralyticsimportYOLOfromIPython.displayimportdisplay,Image

🔍 预训练模型推理

先在示例图上跑一遍预训练模型,确认检测流程正常。

%cd{HOME}!yolo task=detect mode=predict model=yolov8n.pt conf=0.25source='https://media..com/notebooks/examples/dog.jpeg'save=True
%cd{HOME}Image(filename='runs/detect/predict/dog.jpeg',height=600)

model=YOLO(f'{HOME}/yolov8n.pt')results=model.predict(source='https://media..com/notebooks/examples/dog.jpeg',conf=0.25)
results[0].boxes.xyxy
results[0].boxes.conf
results[0].boxes.cls

📦 从数据集后台获取 YOLO 数据集

从数据集后台导出 YOLO 格式数据集后,训练阶段直接引用data.yaml

!mkdir-p{HOME}/datasets%cd{HOME}/datasets !pip install==1.1.48--quietfromtypesimportSimpleNamespace# 从数据集后台下载 YOLO 格式数据集后,修改 DATASET_DIR 指向解压目录。DATASET_DIR="/content/dataset"# 修改为数据集后台导出的数据集目录dataset=SimpleNamespace(location=DATASET_DIR)

🏋️ 自定义训练

训练阶段先把数据、模型和超参数都对齐,再启动训练。

📏 训练结果查看

训练结束后先看曲线和验证结果,确认没有明显异常。

%cd{HOME}!yolo task=detect mode=train model=yolov8s.pt data={dataset.location}/data.yaml epochs=25imgsz=800plots=True
%cd{HOME}Image(filename=f'{HOME}/runs/detect/train/confusion_matrix.png',width=600)

%cd{HOME}Image(filename=f'{HOME}/runs/detect/train/results.png',width=600)

%cd{HOME}Image(filename=f'{HOME}/runs/detect/train/val_batch0_pred.jpg',width=600)

🧪 验证与推理

训练完成后,用测试集和本地推理再检查一遍。

%cd{HOME}!yolo task=detect mode=val model={HOME}/runs/detect/train/weights/best.pt data={dataset.location}/data.yaml
%cd{HOME}!yolo task=detect mode=predict model={HOME}/runs/detect/train/weights/best.pt conf=0.25source={dataset.location}/test/images save=True
importglobfromIPython.displayimportImage,display# Define the base path where the folders are locatedbase_path='/content/runs/detect/'# List all directories that start with 'predict' in the base pathsubfolders=[os.path.join(base_path,d)fordinos.listdir(base_path)ifos.path.isdir(os.path.join(base_path,d))andd.startswith('predict')]# Find the latest folder by modification timelatest_folder=max(subfolders,key=os.path.getmtime)image_paths=glob.glob(f'{latest_folder}/*.jpg')[:3]# Display each imageforimage_pathinimage_paths:display(Image(filename=image_path,width=600))print("\n")


📤 部署说明

Notebook 原流程包含在线部署。这里保留部署入口说明,便于接入你自己的发布流程。

project.version(dataset.version).deploy(model_type="yolov8",model_path=f"{HOME}/runs/detect/train/")

☁️ 云端推理示例

云端推理适合部署后的快速验证,这里保留调用示例。

# Run inference on your model on a persistent, auto-scaling, cloud API# Load modelmodel=project.version(dataset.version).modelassertmodel,"Model deployment is still loading"# Choose a random test imageimportos,random test_set_loc=dataset.location+"/test/images/"random_test_image=random.choice(os.listdir(test_set_loc))print("running inference on "+random_test_image)pred=model.predict(test_set_loc+random_test_image,confidence=40,overlap=30).json()pred

📌 小结

YOLOv8 的复现门槛低,但路径和数据集版本经常是问题点。建议先确认预训练推理没问题,再切训练数据。

这一类 notebook 建议按“先环境、再数据、再单样例、最后批量推理”的顺序复现。遇到报错时,优先检查 GPU、依赖版本、数据集目录和模型权重路径。

后续我会继续按源项目顺序整理同系列中的目标检测、实例分割、OCR、多目标跟踪和视觉大模型教程。

📚 同系列教程汇总

  • Google Gemini 3.5 Flash 零样本目标检测教程:从提示词到可视化结果

  • GLM-OCR 文档识别实战教程:从验证码、公式到车牌 OCR

  • RF-DETR + ByteTrack 多目标跟踪实战教程:从命令行到 Python 视频轨迹可视化

  • SAM 3 图像分割实战教程:文本、框和点提示的多种分割方式

  • YOLOv8 自定义目标检测训练实战:预训练推理、数据集训练与部署