Scaled Yolov4

一、简介

本文提出了一种通过修改网络的深度,宽度,分辨率和网络结构的网络缩放方法。YOLOv4-large模型达到了当前state-of-the-art结果,在MS COCO 数据集上,Tesla V100上实现了55.4%AP(73.3%AP50)和15FPS,并且在使用TTA( test time augmentation)方法后YOLOv4达到了55.8%AP(73.2%AP50)。是当前已提出的方法中在MS COCO数据集上精度最高的模型。YOLOv4-tiny在RTX2080Ti上达到了22.0% AP (42.0% AP50),大约443FPS,在使用了TensorRT,batch size=4和FP16混合精度训练方法后,YOLOv4-tiny达到了1774FPS.

二、本文贡献

  1. 为小模型设计了一个功能强大的模型缩放方法,可以系统地平衡浅层CNN的计算成本和内存带宽。
  2. 为缩放一个大的目标检测器设计了一个简单而且有效的策略。
  3. 分析所有模型缩放因子之间的关系,并且基于最有利的部分进行模型缩放。
  4. 实验已经证实,FPN结构本质上是一劳永逸的结构。
  5. 使用上面的方法构建了YOLOv4-large和YOLOv4-tiny。

三、模型缩放原理

3.1模型缩放的一般原理

在设计高效的模型缩放方法时,我们主要的原理是当扩大/缩小规模时,我们要增加/减少 更低/更高的定量成本,则越好。接下来我们会去展示和分析几种不同的CNN模型,来理解当1)图片大小;2)网络层数;3)channel的数量 变化时的定量成本。我们选择的模型是,ResNet,ResNeXt,Darknet。
对于一个k层的CNN,base layer channel是b。下面是各个网络层的计算量情况:
ResNet layer: k∗{conv 1 × 1, b/4 – conv3 × 3, b/4 – conv 1 × 1, b}
ResNeXt layer:k∗{conv 1 × 1, b/2 – gconv 3 × 3/32, b/2 – conv 1 × 1, b}
Darknet layer:k∗{conv 1 × 1, b/2 – conv 3 × 3, b}
然后分别令缩放因子:图像大小,层数量,通道数量为α, β, 和 γ,当这些缩放因子变化,其FLOPs变化情况如Table1所示:
从表格中可以看出,缩放的大小,宽度和深度会使得计算成本增加,他们各自是平方,线性和平方的增长。CSPNet可以被用在多中CNN网络结构中,可以同时减少参数量和计算量。此外还可以提升准确率和减少推理时间。我们把它应用到ResNet,ResNeXt,Darknet中观察计算量的变化,如Table2所示:

从Table2中我们可以看到,使用CSP结构可以有效的减少计算量(FLOPs),在 ResNet, ResNeXt, 和 Darknet上分别减少了 23.5%, 46.7%,和50.0%,所以CSP模型是进行模型缩放的最优模型。

3.2为Low-End设备缩放Tiny模型

在低端设备设计模型不仅需要考虑模型的大小和计算量,还要考虑外围硬件设备资源的限制,包括内存带宽,内存访问开销(MACs)和DRAM traffic,这样必须让计算量少于O(whkb2)。轻量级模型的参数利用必须高效,才能实现用很少的计算量实现需要的准确率。在Table3中,我们分析了网络高效的参数利用,比如DenseNet 和OSANet的计算量。

对于一般的CNN网络来说,g,b和k之间的关系如下:k << g < b。所以,DenseNet的计算复杂度是O(whgbk),OSANet 是O(max(whbg, whkg2)).。这两个模型的计算复杂度小于ResNet系列,所以在设计模型时使用了OSANet的思想。
最小化/平衡特征图的大小:为了获得最好的计算速度上的平衡,本文提出了一个新的概念,重新安排了base layer的b channel和计算块生成的kg channel,并且把它们分成了2个路径,并且通道数是相同的,如table 4所示:(这里当前看的不是很明白,后面再补充)

当channel的数量是b+kg,如果想要把channel分成2个分支,最好的划分方式就是两条路径上的channel数量相等,即(b+kg)/2。如果考虑硬件的带宽τ,部考虑软件优化,则最好的取值就是ceil((b + kg)/2τ ) × τ 。
在卷积之后保持相同数量的channel:为了评估低端设备的计算开销,必须考虑功耗开销,而影响这个的最大的因素就是Memory access cost(MAC),对于卷积操作的MAC的计算方法如下:

这里h, w, Cin, Cout,和 K分别表示特征图的高和宽,输入和输出的通道数和卷积核的大小。通过上面的几何公式可以知道,当输入和输出通道数相等时(Cin = Cout),MAC取得最小值。
最小化卷积输入/输出(CIO):CIO是一个可以衡量DRAM IO状态的指示器。Table5列出了OSA,CSP和我们设计的CSPOSANet的CIO。当kg>b/2,我们提出的CSPOSANet可以获得最好的CIO。

3.3为高端GPUs缩放大模型

可以调整的缩放因子如table6所示:

Table7显示了感受野和几个参数之间的关系:

当输入图像的大小增加,如果想要对预大物体有一个好的预测效果,就必须增加网络的深度或者stage,在Table7中列出的几个参数当中,{sizeinput, #stage} 的组合产生的影响最大。所以当要扩展网络时,首先应该对输入的大小,stage进行组合缩放,然后再根据实时性的要求,进一步再深度和宽度上缩放网络。

四、Scaled-YOLOv4

4.1 CSP-ized YOLOv4

为了获得更好的速度/准确度的权衡,我们重新设计了YOLOv4-CSP。
**Backbone:**使用CSPDarknet53的stage可以减少whb2(9=4+3=4+5k=2)的计算量,但是CSPDarknet53比Darknet53只有在k>1时才有更好的计算优势。每个stage所包含的residual block数量分别是 1-2-8-8-4,为了取得速度和准确率更好的平衡,第一个stage就使用原始的residual层而不用CSP。

Neck:为了更有效的减少计算量,我们将PAN结构也CSP化,PAN结构的计算序列如图2(a)所示。其主要整合了来自不同特征金字塔的特征,然后穿过两组反向的Darknet残差层而没有远跳链接。在CSP化以后,该结构的新的计算序列如图2(b)所示。这个新的改变有效的减少了百分之40的计算量。
SPP:SPP模块最初是插入到Neck的第一个计算列表组的中间位置,我们也将SPP模块插入到 CSPPAN的第一个计算列表组的中间位置。

4.2 YOLOv4-tiny

Yolov4-tiny的的结构设计如下图所示:

我们会使用带有PCB结构的CSPOSANet来构建Yolov4的backbone,我们设g=b/2作为增长率并且最终增长到b/2+kg=2b。k=3。对于每个stage和neck部分channel数量的大小,我们和yolov3-tiny一样。

4.3. YOLOv4-large

这里设计了全部CSP化的模型YOLOv4-P5,并且将其缩放到了YOLOv4-P6 和 YOLOv4-P7。如下图所示:

我们旨在对输入的大小#stage进行复合缩放。并将每个阶段的深度尺度设置为2^dsi,其中 dsi为[1,3,15,15,7,7,7]。最后进一步使用推断时间作为约束来执行额外的宽度缩放。
实验表明,当宽度缩放因子为1时,YOLOv4-P6可以在30帧/秒的视频中达到实时性能。对于YOLOv4-P7来说,当宽度缩放因子等于1.25时,它可以在15fps的视频中达到实时性能。

Scaled Yolov4论文解读相关推荐

  1. YOLOv4论文解读

    论文原文: https://arxiv.org/pdf/2004.10934.pdf 代码实现: https://github.com/AlexeyAB/darknet 一.介绍 原文名称:<Y ...

  2. 论文解读:Attention is All you need

    论文解读:Attention is All you need 习翔宇 ​ 北京大学 软件工程博士在读 ​ 关注他 192 人赞同了该文章 Attention机制最早在视觉领域提出,2014年Googl ...

  3. YOLOv4论文阅读(附原文翻译)

    YOLOv4论文阅读(附原文翻译) 论文阅读 论文翻译 Abstract摘要 1.Introduction 引言 2.Related work相关工作 2.1.Object detection mod ...

  4. YOLOv7来临:论文解读附代码解析

    前言: 是一份关于YOLOv7的论文解读,首发于[GiantPandaCV]公众号,写的不是很好,望大佬们包涵! 2022年7月,YOLOv7来临, 论文链接:https://arxiv.org/ab ...

  5. 目标检测论文解读复现之六:基于YOLOv5的遥感图像舰船的检测方法

    目标检测论文解读复现 文章目录 目标检测论文解读复现 前言 一.摘要 二.网络模型及核心创新点 三.应用数据集 四.实验效果 五.实验结论 六.投稿期刊介绍 前言 此前出了目标改进算法专栏,但是对于应 ...

  6. CVPR2021 | 2D目标检测论文解读

    CVPR2021 | 2D目标检测论文解读 1. UP-DETR:--<UP-DETR: Unsupervised Pre-training for Object Detection with ...

  7. AlexNet论文解读以Pytorch实现(含论文训练细节)

    AlexNet论文解读以Pytorch实现 一.AlexNet背景 1.ILSVRC 2.GPU 二.AlexNet研究成果及意义 1.研究成果 2.研究意义 三.AlexNet网络结构 1.网络结构 ...

  8. 论文解读:Are Noisy Sentences Useless for Distant Supervised Relation Extraction?

    论文解读:Are Noisy Sentences Useless for Distant Supervised Relation Extraction? 注:本文章初次编辑为2020年9月2日,最新编 ...

  9. 自监督学习(Self-Supervised Learning)多篇论文解读(下)

    自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...

最新文章

  1. disconf 中文乱码
  2. ueditor集成实例php,Laravel框架集成UEditor编辑器的方法图文与实例详解
  3. 论文浅尝 - EMNLP2020 | ConceptBert:视觉问题回答的概念感知表示
  4. Tensorflow+gpu安装
  5. Oracle 19c 新特性:混合分区表Hybrid partitioned tables强体验
  6. 星爷001正式开始写blog啦
  7. python set去重 字典 计算求和_python字典set方法的特殊方法
  8. 读取内存数据,大航海家3的编辑器的一点思路
  9. 机器学习笔记(三十一):集成学习
  10. ug打开服务器文件保存不了,UG编程时突然提示保存不了,你该怎么办,看这里...
  11. 【1076】正常血压
  12. java课程设计 考试系统,java课程设计考试系统.
  13. yyyyMMdd/HHmmss转化
  14. 离线安装ceph集群(ceph-13.2.10)
  15. Python安装wheel文件
  16. NLTK使用教程(持续更新ing...)
  17. Linux压力测试工具—Siege命令
  18. poj 2579 Blurred Vision
  19. 卸载计算机应用程序的步骤,图文教您win10系统快速卸载应用程序的具体步骤
  20. 学习笔记(01):大数据视频_Hadoop视频教程(上)-大数据课程

热门文章

  1. 解决方法记录之华硕台式电脑无法开机,开机黑屏,只能显示鼠标,并20秒后自动关机
  2. 安徽大学软件工程C语言用书,安徽大学计算机考研院校初试科目及参考书汇总...
  3. 解决lombok.extern.slf4j.Slf4j等lombok包错误
  4. java五子棋需求分析文档,五子棋--需求分析.doc
  5. 为织梦文章管理系统首页添加栏目间广告
  6. 最全iOS 上架指南
  7. USB转串口线的使用方法
  8. hihoCoder 1015 (KMP模板题)
  9. 指定图片某块区域加超链接 (热点)
  10. Brief简约Emlog手机主题