YOLOv5 目标检测原理与实战


YOLO(You Only Look Once)系列是目前非常流行的实时目标检测算法,YOLOv5 是其最新版本之一,以速度快、准确度高和部署方便著称。下面简要介绍其原理和实战方法。

一、YOLOv5 原理简介

YOLOv5 属于单阶段检测器(single-stage detector),即只需一次前向传播即可完成目标定位和分类,区别于两阶段检测器(如 Faster R-CNN)。

  • 输入处理:将输入图像划分为固定网格(如 13×13、26×26 等)。
  • 边界框预测:每个网格预测多个边界框及其置信度。
  • 类别概率:每个边界框还会预测目标类别的概率分布。
  • 多尺度预测:采用不同尺度特征层进行预测,增强对大小目标的检测能力。
  • 非极大值抑制(NMS):去除重叠度高的重复检测框,保留最优结果。

二、环境准备

安装 PyTorch 和 YOLOv5 依赖:

1
2
pip install torch torchvision
pip install -U git+https://github.com/ultralytics/yolov5.git

三、加载预训练模型

1
2
3
import torch

model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)

四、自定义数据集训练

  1. 准备标注数据,格式为 YOLO 标注格式(每行:class x_center y_center width height,归一化坐标)。
  2. 配置数据集 yaml 文件,指定训练、验证路径和类别名。
  3. 运行训练命令:
1
python train.py --img 640 --batch 16 --epochs 50 --data your_dataset.yaml --weights yolov5s.pt

五、模型推理与测试

1
2
3
4
results = model('test.jpg')
results.print()
results.show()
results.save()

六、实战技巧

  • 数据增强:YOLOv5 内置丰富数据增强策略(翻转、裁剪、色彩变换等),提升模型泛化能力。
  • 多尺度训练:随机调整输入尺寸,使模型适应多种分辨率。
  • 模型轻量化:选择不同版本模型(yolov5s, yolov5m, yolov5l)权衡速度与精度。
  • 转ONNX或TensorRT:方便部署在移动端或嵌入式设备。

如果你想快速上手目标检测,YOLOv5 是不错的选择。