目标检测复盘 -- 6. YOLOv4

Backbone

YOLOv4的骨干是CSPDarknet53
CSP结构的作用:1. 增强CNN的学习能力 2. 移出计算瓶颈 3. 减少内存开销
CSP首先将输入的特征层分成两个部分,这里以densenet为例,part2分支经过denseblock后,进过一个transition,然后和part1 concat后再经过transition模块。
CSP的两个分支是在通道方向上进行的一个均分操作,但是在YOLOv4中是采用卷积的方式来实现分离(如下图右半部分所示),v4中的transition使用的是1*1的卷积
目标检测复盘 -- 6. YOLOv4_第1张图片

SPP

Spatial Pyramid Pooling,分为三路做maxpooling 然后再做类似残差连接,SPP支持任意大小,不管多大都是划分成一样的网格做maxpooling,是resize或者裁剪的一种替换,SPP相当于是多尺度池化,让模型的鲁棒性更强;可以进行多尺度训练,提高模型的泛化能力,减低过拟合

目标检测复盘 -- 6. YOLOv4_第2张图片

PAN

图中P5-P2是FPN,FPN是图像特征从高层往底层的一个融合,再将特征由底层往高层进行一个融合,构成最终的PAN模块,PAN=FPN+底层到高层;原始PANnet中采用的是add的方法,这里采用了concat方法
目标检测复盘 -- 6. YOLOv4_第3张图片

整体结构

注意,在cspdarknet53中使用的激活函数是mish,但是在PAN中使用的激活函数是leaky,
目标检测复盘 -- 6. YOLOv4_第4张图片

优化策略

提高位置敏感性

存在的问题:当预测的xy就在左上角的时候,也就是 σ ( t x ) \sigma(t_x) σ(tx)趋向于0的时候,也就是x趋向于负无穷的时候,但是网络很难输出这么大的值,而且不利于网络收敛。所以针对这点进行了改进
目标检测复盘 -- 6. YOLOv4_第5张图片
添加了缩放因子,常见的scale取2,原始数据范围和带scale的范围如下图曲线所示
目标检测复盘 -- 6. YOLOv4_第6张图片

Mosaic数据增强

将4张图片拼接在一起,不同尺寸、不同比例,可以增强样本的多样性,提升模型能力

样本策略

在YOLOv3中,样本策略如下图所示,先左上角对齐,大于固定阈值的作为正样本,如果有多个模板都满足阈值要求,则都作为正样本送入网络,以增强正样本数量
目标检测复盘 -- 6. YOLOv4_第7张图片
在YOLOv4中,多考虑了gridcell的上方和左方的gridcell, 如下图所示,主要原因是xy的偏移量已经从0-1到了-0.5-1.5

目标检测复盘 -- 6. YOLOv4_第8张图片
可能的情况如下:
xy相较于原始的在-0.5-1.5都可以,这里好好理解下
目标检测复盘 -- 6. YOLOv4_第9张图片

Loss

使用CIOU loss
目标检测复盘 -- 6. YOLOv4_第10张图片

你可能感兴趣的:(ML/DL,自动驾驶相关,目标检测,YOLO,计算机视觉)