袋岖荤 发表于 2025-6-1 18:23:29

YOLOv5 配置与训练笔记

自用备份,Windows 端 YOLOv5 配置和训练为主,代码为核心,记录踩坑和关键点。
环境准备


[*]系统:Windows 10/11
[*]Python:3.9(其他版本容易崩)
[*]GPU(可选):NVIDIA + CUDA 11.8(CPU 也能跑,慢点)
[*]FFmpeg:解压后放根目录(视数据集需求)
下载与安装

直接去 YOLOv5 项目页,点“Code”按钮,选“Download ZIP”。解压到 D:\YOLOv5(路径自定)。
进目录,双击 detect.py 检查环境,或者手动装:

[*]Python 3.9:
python --version# 确认 3.9.x
[*]建虚拟环境:
python -m venv venv
venv\Scripts\activate
[*]装依赖:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
[*]PyTorch:

[*]GPU:pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
[*]CPU:pip install torch torchvision torchaudio
[*]检查:python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

数据集准备


[*]打标工具:用 labelImg

[*]安装:pip install labelImg
[*]运行:labelImg
[*]注意:保存格式选 YOLO,生成 .txt,每行 class x_center y_center width height(归一化)。

[*]目录结构:D:\YOLOv5\data\
images\
    train\
    val\
labels\
    train\
    val\
[*]配置 data.yaml:train: D:/YOLOv5/data/images/train
val: D:/YOLOv5/data/images/val
nc: 2
names: ['cat', 'dog']
[*]注意:训练集每类至少 50-100 张,验证集 10-20%,太少过拟合。
训练


[*]跑训练:python train.py --img 640 --batch 16 --epochs 50 --data data/data.yaml --weights yolov5s.pt

[*]参数:--img 图片大小,--batch 批次,--epochs 轮数,--weights 预训练模型。

[*]输出:runs\train\exp\weights\best.pt(最佳权重),runs\train\exp\results.txt(日志)。
TensorBoard 配置


[*]安装:pip install tensorboard
[*]运行:tensorboard --logdir runs/train
[*]浏览器打开:http://localhost:6006,看 loss、mAP 等曲线。
[*]注意:训练时日志默认存 runs/train,多实验会分 exp, exp2。
推理


[*]命令行推理:python detect.py --weights runs/train/exp/weights/best.pt --img 640 --conf 0.25 --source data/images/test

[*]--source 常用:

[*]data/images/test:文件夹
[*]image.jpg:单图
[*]video.mp4:视频
[*]0:摄像头


[*]结果:runs\detect\exp。
WebUI 配置(Gradio)


[*]安装:pip install gradio
[*]新建 webui.py(放 D:\YOLOv5 下):import torch
import gradio as gr

model = torch.hub.load("./", "custom", path="./runs/train/exp/weights/best.pt", source="local")

title = "基于Gradio的YOLOv5演示项目"
desc = "这是一个基于Gradio的YOLOv5演示项目"

gr.Interface(inputs=,
             outputs=["image"],
             title=title,
             description=desc,
             fn=lambda img: model(img).render()
             ).launch()
[*]运行:python webui.py
[*]浏览器打开弹出的地址(默认 http://127.0.0.1:7860),上传图片,显示检测结果。
[*]注意:权重路径改成自己的(比如 runs/train/exp/weights/best.pt)。
属性介绍


[*]模型变体:

[*]yolov5s:快,低精度
[*]yolov5m:平衡
[*]yolov5l:高精度,显存多
[*]yolov5x:最强,慢

[*]超参数(data/hyp.scratch.yaml):

[*]lr0:学习率,默认 0.01
[*]momentum:动量,默认 0.937
[*]box:框损失,默认 0.05

[*]数据增强:默认开 mosaic。
注意

<ul>显存不足:调小 --batch 或用 yolov5s。
推理慢:加 --half 半精度。
标签错:检查 data.yaml 和 .txt 一致。
数据集小:每类
页: [1]
查看完整版本: YOLOv5 配置与训练笔记