YOLOv5 自定义目标检测训练实战:训练曲线、验证样本与批量推理
这篇教程根据我复现 YOLOv5 自定义目标检测流程时整理,重点演示数据集准备、模型训练、训练曲线查看和测试集推理。
本文整理自我的学习和项目复现过程,尽量按实操顺序保留 notebook 的关键步骤,同时把数据集获取方式调整为适合中文教程发布的写法。
本文会重点跑通以下流程:
- 安装 YOLOv5 环境
- 从数据集后台获取检测数据
- 训练 YOLOv5s 模型
- 查看训练曲线和增强样本
- 用 best.pt 批量推理
如果你正在系统学习目标检测、实例分割、OCR、多目标跟踪或视觉大模型,建议收藏本文;配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住,可以在评论区说明具体报错。
📚 文章目录
- YOLOv5 自定义目标检测训练实战:训练曲线、验证样本与批量推理
- ⚙️ 环境准备
- 🧩 安装 YOLOv5
- 📦 从数据集后台获取数据
- 🏋️ 训练检测模型
- 📊 训练结果查看
- 🧪 推理与展示
- 📤 部署说明
- 📌 小结
- 📚 同系列教程汇总
⚙️ 环境准备
先检查 GPU 与基础运行环境。建议优先使用 Colab GPU 或本地 NVIDIA GPU 环境。
!nvidia-smi🧩 安装 YOLOv5
克隆 YOLOv5 仓库并安装依赖。
# clone YOLOv5 repository%cd/content !git clone https://github.com/ultralytics/yolov5# install dependencies as necessary!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'))📦 从数据集后台获取数据
下面按 notebook 原流程继续执行。
fromtypesimportSimpleNamespace# 从数据集后台下载 YOLO 检测 格式数据集后,修改 DATASET_DIR 指向解压目录。DATASET_DIR="/content/dataset"# 修改为数据集后台导出的数据集目录dataset=SimpleNamespace(location=DATASET_DIR,version="1",name="custom-dataset")🏋️ 训练检测模型
下面按 notebook 原流程继续执行。
# train yolov5s on custom data for 25 epochs# time its performance%%time%cd/content/yolov5/!python train.py \--img416\--batch16\--epochs25\--data{dataset.location}/data.yaml \--weights yolov5s.pt \--name yolov5s_results \--cache📊 训练结果查看
训练后查看曲线、验证 batch 和增强样本,排查数据问题。
fromutils.plotsimportplot_results# plot results.txt as results.pngImage(filename='/content/yolov5/runs/train/yolov5s_results/results.png',width=1000)Image(filename='/content/yolov5/runs/train/yolov5s_results/val_batch0_labels.jpg',width=900)# print out an augmented training exampleprint("GROUND TRUTH AUGMENTED TRAINING DATA:")Image(filename='/content/yolov5/runs/train/yolov5s_results/train_batch0.jpg',width=900)🧪 推理与展示
使用训练好的权重在测试集上做推理并展示结果。
# trained weights are saved by default in our weights folder%ls runs/%ls runs/train/yolov5s_results/weights%cd/content/yolov5/!python detect.py--weights runs/train/yolov5s_results/weights/best.pt--img416--conf0.35--source{dataset.location}/test/images/importglobfromIPython.displayimportImage,displayforimageNameinglob.glob('/content/yolov5/runs/detect/exp/*.jpg')[:10]:#assuming JPGdisplay(Image(filename=imageName))📤 部署说明
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 自定义目标检测训练实战:训练曲线、验证样本与批量推理-本文