本文仅为笔者个人浅显的理解,如各位发现有误的地方欢迎指正。

一、概述

YOLO v4中,作者做了很多实验,把近年比较火的一些方法加入YOLO中,最终取得了速度和精度的提升。通过了解YOLO v4,我们就可以知道最近几年有哪些方法被提出来,整篇论文更像是一篇综述。

YOLO v4中使用的方法

加权残差连接(WRC)跨阶段部分连接(CSP)交叉小批量归一化(CMBN)自动对抗训练(SAT)MISH激活镶嵌数据增强CmBNDROPBOLD正则化CIOU损失目标检测算法比较

目标检测性能最强的算法 2021最强目标检测算法_计算机视觉

通过上图可以看出,在MSCOCO数据集上,YOLO v4和其它比较先进的目标检测算法比较,从速度和精度综合来看,明显优于其它算法。

目标检测器

目标检测性能最强的算法 2021最强目标检测算法_数据_02

一阶段、二阶段目标检测器的区别

YOLO v4中Neek使用的是PANet

目标检测主要分为以下三个支系(multi-stage系已被淘汰):

目标检测性能最强的算法 2021最强目标检测算法_数据_03

二、Bag of freebies

只增加训练成本,但是能显著提高精度的一些方法

数据增强

光度畸变:调整亮度、对比度、色调、饱和度和噪声几何畸变:随机缩放、剪切、翻转、旋转风格迁移模拟遮挡

随机擦除,填充随机或互补的0值随机或均匀的选择图像中的多个矩形区域,并将其全部替换为0Feature map(特征图上进行数据增强)

DropOutDropConnectDropBlock结合多图像一起进行数据增强

MixUpCutMix图像风格迁移

使用图像风格迁移进行数据增强

BBox

YOLO v4使用了CIoU(Complete-IoU)作为Box回归函数,CIoU可以在BBox回归问题上获得更好的收敛速度和精度。

目标检测性能最强的算法 2021最强目标检测算法_目标检测性能最强的算法_04

先计算两个框的最小闭包区域面积Ac(同时包含预测框和真实框的最小框的面积),再计算出IoU,再计算闭包区域中不属于两个框的区域占闭包区域的比重,最后用IoU减去这个比重得到GIoU。

三、Bag of specials

只增加少量预测成本,但是能显著提高精度的一些方法

扩充接收域

SPPASPPRFB注意力机制

Squeeze-and-Excitation(SE) 可让ResNet50在分类任务上提高1%精度,但会增加10%的GPU推理时间Spatial Attention(SAM) 可让ResNet50在分类任务上提高0.5%精度,且不会增加GPU推理时间所以YOLO v4使用了Spatial Attention(SAM)这种方法

特征集成

早期:skip connetion、hyper-column融合不同特征金字塔的轻量级模型:SFAM、ASFF、BiFPN、SFAM激活函数

ReLU解决了tann和sigmoid的梯度消失问题 LReLU,PReLU,ReLU6,SELU,Swish,hard-Swish,Mish,其中Swish和Mish都是连续可微的激活函数

后处理方法

NMSSoft-NMS:解决对象遮挡问题DloU NMS:将中心点距离的信息添加到BBox筛选过程中YOLO v4用到的方法

Mish activation、CSP、MiWRC、SPP-block、SAM、PAN、DloU-MNS

四、网络结构的选择

目标检测性能最强的算法 2021最强目标检测算法_计算机视觉_05

神经网络用于图像分类的参数

backbone:CSPDarknet53additional module:SPPneck:PANethead:YOLOv3(anchor based)五、比较

目标检测性能最强的算法 2021最强目标检测算法_计算机视觉_06

各种目标检测模型和YOLOv4比较