YOLOv5 详解
YOLOv5: PyTorch 工程化的里程碑
代码: github.com/ultralytics/yolov5
作者: Ultralytics (Glenn Jocher)
特点: ❌ 无正式论文,但代码、文档、生态最完善
历史意义
v5 没有革命性创新,但它通过 PyTorch 重写 + 极致工程化 + 完善生态,让 YOLO 真正走入大众。
1 | v4: darknet(C 语言) → 研究者友好但部署难 |
网络架构
整体结构 (与 v4 相似但更优化)
1 | 输入 640×640×3 |
核心组件详解
1. Focus 层
1 | 输入 640×640×3 |
原理: 将空间信息压缩到通道维度,减少信息丢失。类似 Passthrough 层但更高效。
2. C3 模块 (CSP Bottleneck with 3 Convs)
1 | 输入 ──┬──→ Conv → Bottleneck×N → Conv ──┐ |
= CSPNet 的简化高效实现。核心公式:C3 = 3×Conv + N×Bottleneck + CSP
3. SPPF (Spatial Pyramid Pooling - Fast)
1 | 输入 → Conv |
v4 SPP 是并行多尺度池化,SPPF 改用串行:效果相同但快得多(因为逐级复用)。
模型变体系列
| 变体 | 参数量 | 速度 | 适用场景 |
|---|---|---|---|
| yolov5n | 1.9M | 极快 | 移动端/边缘 |
| yolov5s | 7.2M | 很快 | 轻量级嵌入 |
| yolov5m | 21.2M | 快 | 通用场景 |
| yolov5l | 46.5M | 中 | 高精度需求 |
| yolov5x | 86.7M | 慢 | 极致精度 |
通过 depth_multiple 和 width_multiple 缩放控制模型大小。
工程亮点
数据增强全家桶
| 增强 | 说明 |
|---|---|
| Mosaic (4图拼1) | 继承 v4 |
| Copy-Paste | 从其他图粘贴实例 |
| Random Affine | 旋转、缩放、平移、剪切 |
| MixUp | 两图加权混合 |
| HSV 增强 | 色调、饱和度、明度扰动 |
训练策略
- 自动锚框计算: 训练前自动聚类计算最佳锚框
- Warmup + Cosine 调度: 学习率预热 + 余弦衰减
- EMA: 指数移动平均更新权重
- 多尺度训练: 同 v2 思路
- 超参数进化: 遗传算法自动调参
推理优化
- TTA (Test Time Augmentation):测试时增强
- 多模型集成
- 多种导出格式 (ONNX, TensorRT, CoreML, TFLite…)
训练细节 (From Scratch)
📦 参考: [[30.resources/yolo-master/docs/Pytorch_YoLo_From_Scratch/v5/YOLOv5.ipynb|YOLOv5 Notebook]]
| 模块 | 实现 |
|---|---|
| ConBNSiLU | Conv2D + BN + SiLU 激活 → 基础构建块 |
| Bottleneck1 | 1×1降维 → 3×3 → add(输入),用于Backbone |
| Bottleneck2 | 1×1降维 → 3×3 (无残差),用于Neck |
| SPPF | 串行金字塔快速池化 |
| C3 | CSP + 3×Conv + N×Bottleneck |
⚠️ Notebook 中损失函数和 train/test 代码尚待完善。
v5 vs v8 选型
| YOLOv5 | YOLOv8 | |
|---|---|---|
| Anchor | Anchor-Based | Anchor-Free |
| Head | 耦合Head | 解耦Head |
| 推出时间 | 2020 | 2023 |
| 维护 | 维护中 | 主力维护 ✅ |
新项目优先 v8/v11,老项目 v5 依然稳定可用。
相关链接
- 📝 [[YOLO 系列总览]]
- 📝 [[YOLOv4 详解]]
- 📝 [[YOLO 核心概念]]
- 📦 [[30.resources/yolo-master/docs/Pytorch_YoLo_From_Scratch/v5/README|v5 From Scratch]]
- 📦 [[30.resources/yolo-master/docs/Hands_on_YoLo_with_ultralytics/README|Ultralytics 实操]]
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 TeachCraft Blog!
评论