1. YOLOv5结构
backbone:增加了Focus层
在YOLOv5某些版本中开头是Focus层。Focus重要的是切片操作,如下图所示,4x4x3的图像切片后变成2x2x12的特征图。但YOLOv5的v6.0版本后将Focus模块换成了6×6大小的卷积层,这种6×6的卷积操作和Focus层是等效的,但在有时6×6的卷积操作更加高效。
Focus层
Neck:SPPF、New CSP-PAN
SPPF
将YOLOv4的SPP结构替换成了SPPF结构。虽然最终的结果是一致的,但是SPPF比SPP速度快了一倍。
New CSP-PAN:将之前YOLOv4的PAN结构中的ConvSet集合都变成了CSP结构。
Head
与YOLOv3,YOLOv4是一样的。
2. 损失函数
与YOLOv4的损失函数一样:分类损失和置信度损失函数用了二分交叉熵(BCE)损失,定位损失用的是 。
增加的一点是:
为了平衡目标的不同尺度,对置信度损失针对不同大小的目标,采用权重来权衡。
其他Tricks
1. YOLOv5的Anchor修正
YOLOv5的(x,y)采用了YOLOv4的2.3 Eliminate grid sesitivity的公式,设置。
(h,w)在YOLOv2、YOLOv3、YOLOv4都没有发生改变,仍然是
但在YOLOv5中做了小小的改动:作者认为原来的公式没有对宽高做限制,可能出现梯度爆炸。因此用函数加以约束:
e指数函数和sigmoid函数的对比
2. 数据增强
3. 训练技巧
这边参考文章csdn-太阳花的小绿豆