目标检测之yoloV4
相比较于yoloV3在主题框架上并没有大的改动,只是分别在数据增样,block,损失,激活函数,NMS上参考一些比较新的网络结构和trick做了相应的改进,结果精度上提升了10个点
主题架构
数据增强
数据增强作者使用了mosaic数据增强,这也是主要创新点。mosaic增强方法其实是借鉴了cutmix,只不过Mosaic是将多个图片进行随机缩放,裁剪堆叠成一张大图
同时对于特征层采用了doupBlock(如下图c所示),droupBlock和droupOut有点类似只不过他要求对特征层成片的失活,因为如果间隔的失活网络可能会通过失活网格的临近网格去学到失活网格的信息那么这样失活就没了意义如下图b
在使用droupBlock时浅层使用的多一点而深层使用的少一点因为深层的信息已经很少了
激活函数
激活函数使用了Mish激活函数,相比较于relu,他的非线性能力更强。而且不会想sigmoid那样容易梯度弥散
计算公式为:
损失函数
bbox损失用的是CIOU Loss可参见详细讲解
NMS
因为前向推理时已经不需要考虑形状的问题,所以yoloV4在NMS计算IOU时用的是DIOU Loss可参见详细讲解
模块
CSP:参考CSPNet,作者在yoloV4中加入了CSP模块,可以在提高计算速度的情况下不损失精度
SPP:其实在UltraLytics团队的yoloV3中也有加spp的版本。spp通过将不同尺寸的池化concate到一起来,以此来融合不同尺度的信息。
PAN:yoloV3中是最后一层特征图上采样和倒数第二层特征图concate,倒数第二层在重复最后一层的操作。
而在yoloV4中是最后一层特征图经过一次上采样然后和38*38的特征图concate之后再上采样再和76*76特征图concate。
而38*38输出特征图是由76*76输出特征图下采样之后和上一个后处理之后的特征图concate,以此类推
相比较于yoloV3,这样的特征融合更加彻底