自用备份,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
- 安装:
- 运行:
- 注意:保存格式选 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 配置
- 安装:
- 运行:
- 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)
- 安装:
- 新建 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=[gr.Image()],
- outputs=["image"],
- title=title,
- description=desc,
- fn=lambda img: model(img).render()[0]
- ).launch()
复制代码 - 运行:
- 浏览器打开弹出的地址(默认 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 一致。
数据集小:每类 |