YOLOv6: 工业级目标检测

论文: YOLOv6 v3.0: A Full-Scale Reloading
作者: 美团视觉智能部
代码: github.com/meituan/YOLOv6


定位

为工业部署而生。在美团自动配送机器人中实际使用,专注硬件效率。


网络架构

整体结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
输入

┌──────────────────────────────┐
│ Backbone: EfficientRep │ 硬件感知CNN
│ ├─ RepBlock (S/M 模型) │
│ └─ CSPStackRep (M/L 模型) │
└──────────┬───────────────────┘

┌──────────────────────────────┐
│ Neck: Rep-PAN │ 增强PAN
│ ├─ RepBlock/CSPStackRep │
│ └─ BiC (双向连接) 模块 │
└──────────┬───────────────────┘

┌──────────────────────────────┐
│ Head: Efficient Decoupled │ 高效解耦Head
│ ├─ 分类分支 (1层3×3Conv) │
│ └─ 回归分支 (混合通道策略) │
└──────────────────────────────┘

EfficientRep Backbone

核心: 在训练时用多分支结构(RepVGG风格),推理时重参数化合并为单分支。

1
2
3
4
5
6
7
训练时 (多分支,表达力强):
Conv3×3 ──┐
Conv1×1 ──┼── Add → 输出
Identity ─┘

推理时 (重参数化 → 合并为单分支,速度快):
Conv3×3 → 输出

BiC (Bidirectional Connection) 模块

位置: Neck 中

作用: 增强定位信号的流动,几乎不增加延迟。

1
2
3
FPN方向: P5 → P4 → P3
↓ BiC
PAN方向: P3 → P4 → P5 (← BiC 增强传递)

关键创新

1. 高效解耦 Head

分类和回归分开处理,但通过混合通道策略减少计算。

Head 分支 结构 说明
分类分支 1×3×3 Conv 精简设计
回归分支 混合通道, 减少中间 3×3 层 重在效率

2. TAL 标签分配 (Task Alignment Learning)

解决分类和回归任务的不一致问题。好的分类框应该也是好的定位框。

$$\text{Alignment} = \text{Cls_Score}^\alpha \times \text{IoU}^\beta$$

用对齐度选择正样本 → 分类和回归协同优化。

3. 自我蒸馏 (Self-Distillation)

  • 训练时:用大模型指导小模型的辅助回归分支
  • 推理时:移除辅助分支,不增加推理时间

4. 损失函数

任务 损失函数
分类 VariFocal Loss
回归 SIoU + GIoU 组合

SIoU (SCYLLA-IoU)

在 CIoU 基础上引入角度代价
$$\Lambda = 1 - 2 \cdot \sin^2\left(\arcsin(x) - \frac{\pi}{4}\right)$$


性能对比

模型 输入尺寸 mAP (COCO) 延迟 (T4)
YOLOv6-N 416 30.8% 0.9ms
YOLOv6-S 640 43.3% 3.1ms
YOLOv6-M 640 49.5% 5.5ms
YOLOv6-L 640 52.8% 9.1ms

在 Tesla T4 GPU 上实现了极低的推理延迟。


相关链接

  • 📝 [[YOLO 系列总览]]
  • 📝 [[YOLOv5 详解]]
  • 📝 [[YOLOv7 详解]]