YOLOV4阅读笔记

摘要
目前已经有许多方法可以提高卷积神经网络(CNN)的准确性,但需要在大型数据集上对这些方法的组合进行实际测试,并对结果进行理论证明。某些方法只针对某些模型、某些问题、或者仅在小型数据集上有效;而某些方法(例如批归一化和残差连接)适用于大多数模型,任务和数据集。我们假设此类通用功能包括加权残差连接(WRC),交叉阶段部分连接(CSP),交叉小批量标准化(CmBN),自对抗训练(SAT)和Mish激活。我们使用的新方法包括:WRC,CSP,CmBN,SAT,Mish激活,马赛克数据增强,CmBN,DropBlock正则化和CIoU损失,并结合其中的几项来达到最先进的结果:在MS COCO数据集上,基于Tesla V100 GPU,实现实时速度约为65 FPS,精度为43.5%AP(65.7%AP50)的检测。
1.主要成果
作者设计YOLO的目的之初就是设计一个快速而高效的目标检测器。该文的贡献主要有以下几点:
1.开发了一种高效的和强大的目标检测模型。它使每个人都可以使用1080 Ti或2080 Ti GPU训练超快速和准确的目标检测器。
2.在检测器训练期间,验证了最先进的我们称之为Bag-of-Freebies和Bag-of-Specials(参见下文)的方法的影响。
3.修改了最先进的方法,使它们更有效,更适合单GPU训练,包括CBN,PAN,SAM等。
2.方法
作者在现有实时网络的基础上提出了两种观点:
a.对于GPU而言,在组卷积中采用小数量的groups(1-8),比如CSPResNeXt50/CSPDarknet53
b.对于VPU而言,采用组卷积而不采用SE模块。
(1)网络结构的选择
网络结构选择是为了在输入分辨率、网络层数、参数量、输出滤波器数之间寻求折中。作者研究表明:CSPResNeXt50在分类方面优于CSPDarkNet53,而在检测方面反而表现要差。
网络主要结构确定了后,下一个目标是选择额外的模块以提升感受野、更好的特征汇聚模块(如FPN、PAN、ASFF、BiFPN)。对于分类而言最好的模型可能并不适合于检测,相反,检测模型需要具有以下特性:
a.更高的输入分辨率,为了更好的检测小目标;
b.更多的层,为了具有更大的感受野;
c.更多的参数,更大的模型可以同时检测不同大小的目标。
总之,选择具有更大感受野,更大参数的模型作为backbone。在CSPDarkNet53基础上,作者添加了SPP模块,因其可以提升模型的感受野、分离更重要的上下文信息、不会导致模型推理速度的下降;与此同时,作者还采用PANet中的不同backbone级的参数汇聚方法替代FPN。
最终的模型为:CSPDarkNet53+SPP+PANet(path-aggregationneck)+YOLOv3-head = YOLOv4.
(2)Tricks选择
为更好的训练目标检测模型,CNN模型通常具有以下模块:
Activations:ReLU、Leaky-ReLU、PReLU、ReLU6、SELU、Swish orMish
Boundingbox regression Loss:MSE、IoU、GIoU、CIoU、DIoU
DataAugmentation:CutOut、MixUp、CutMix
Regularization:DropOut、DropPath、SpatialDropOut、DropBlock
Normalization:BN、SyncBn、FRN、CBN
Skip-connections:Residual connections, weighted residual connections, Cross stage
partial connections
作者从上述模块中选择如下:激活函数方面选择Mish;正则化方面选择DropBlock;由于聚焦在单GPU,故而未考虑SyncBN。
(3)其他改进方法
引入一种新的数据增广方法:Mosaic与自对抗训练;
通过GA算法选择最优超参数;
对现有方法进行改进以更适合高效训练和推理:改进SAM、改进PAN,CmB

3.总体网络组成
YOLOv4的组成:
骨架网络: CSPDarknet53 [81]
颈部: SPP [25], PAN [49]
头部: YOLOv3 [63]
YOLO v4使用了:
Bag of Freebies (BoF) for backbone: CutMix和马赛克数据增强,DropBlock正则化,,类标签平滑
Bag of Specials (BoS) for backbone: Mish激活函数,跨阶段部分连接(CSP),多输入加权残差连接 (MiWRC)
Bag of Freebies (BoF) for detector: CIoU损失函数, CmBN, DropBlock正则化,马赛克数据增强,自对抗训练(SAT),Eliminate grid sensitivity,为每个真实标签使用多个锚点,,Cosine annealing scheduler [52],优化的超参数,随机的训练形状
Bag of Specials (BoS) for detector: Mish激活函数,SPP模块,SAM模块,路径聚合模块(PAN), DIoU-NMS
4.结论
我们提供最先进的检测器,其速度(FPS)和准确度(MS COCO AP50 … 95和AP50)比所有可用的替代检测器都高。所描述的检测器可以在具有8-16GB-VRAM的常规GPU上进行训练和使用,这使得它的广泛使用成为可能。一阶段基于锚的探测器的原始概念已证明其可行性。我们已经验证了大量特征,并选择使用其中的一些特征以提高分类器和检测器的准确性。这些功能可以用作将来研究和开发的最佳实践。
核心中的核心:作者将Weighted-Residual-Connections(WRC), Cross-Stage-Partial-connections(CSP), Cross mini-Batch Normalization(CmBN), Self-adversarial-training(SAT),Mish-activation Mosaic data augmentation, DropBlock, CIoU等组合得到了爆炸性的YOLOv4,可以吊打一切的YOLOv4.在MS-COCO数据上:43.5%@AP(65.7%@AP50)同时可以达到65fps@TeslaV100.

你可能感兴趣的:(YOLOV4阅读笔记)