yolov4论文_YOLOv4论文详细解读
激活函数:ReLU,leakage-ReLU,parameter-ReLU,ReLU6,SELU,Swish或Mish
边界框回归损失函数:MSE,IoU,GIoU,DIoU
数据增强:CutOut,MixUp,CutMix
正则化方法:DropOut,DropPath,Spacial DropOut或DropBlock
通过计算均值和方差的网络激活函数归一化:批次归一化(BN),跨GPU批量归一化(CGBN或SyncBN),过滤器响应归一化(FRN)或交叉迭代批量归一化(CBN)
跳过连接:残差连接,加权残差连接,多输入加权残差连接或跨阶段部分连接(CSP)
至于训练用的激活函数,由于PReLU和SELU更难以训练,并且ReLU6是专门为量化网络设计的,因此方案从候选列表中删除了上述激活函数。在重新量化方法中,发布DropBlock的人已将其方法与其他方法进行了详细的比较,并且其正则化方法胜过其他方法许多。因此,YOLOv4方案毫不犹豫地选择了DropBlock作为正则化方法。至于归一化方法的选择,由于方案专注于仅使用一个GPU的训练策略,因此不考虑syncBN。额外的提升为了使设计的检测器更适合在单个GPU上进行训练,方案进行了以下附加设计和改进:
引入了一种新的数据增强方法,即自我对抗训练(SAT)
在应用遗传算法时选择最佳超参数
我们修改了一些现有方法,使方案的设计适合进行有效的训练和检测,例如修改后的SAM,修改后的PAN和交叉小批量归一化(CmBN)
马赛克代表一种新的数据增强方法,该方法混合了4个训练图像,而 CutMix 只有两个输入图像。这样就可以检测到超出其正常背景的对象。
此外,批量归一化从每层上的4张不同图像计算激活统计信息,这大大减少了对大的mini-batch size的需求。
自对抗训练(SAT)也代表了一项新的数据增强技术,该技术执行2个前向和反向传播。在第一阶段,神经网络会更改原始图像,而不是网络权重。这样,神经网络通过改变原始图像,从而创造了一种图像上没有想要目标的假象,对其自身执行了对抗攻击。在第二阶段,训练神经网络以正常方式检测此修改图像上的目标。CmBN是CBN修改版本,定义为Cross mini-Batch Normalization(CmBN)。这仅收集单个batch中的mini-batches之间的统计信息。
方案还将SAM从空间注意改为点注意,并将PAN的快捷连接替换为串联。
YOLOv4的细节YOLOv4的组成:
骨架网络: CSPDarknet53
颈部: SPP, PAN
头部: YOLOv3
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,优化的超参数,随机的训练形状
Bag of Specials (BoS) for detector: Mish激活函数,SPP模块,SAM模块,路径聚合模块(PAN), DIoU-NMS
实验方案测试了不同训练改进技术对ImageNet(ILSVRC 2012 val)数据集上分类器准确性的影响,然后对MS COCO(test-dev 2017)数据集上检测器的准确性进行了影响。在ImageNet图像分类实验中,默认的超参数如下:训练步骤为8,000,000;批量大小和最小批量大小分别为128和32;采用多项式衰减学习率调度策略,初始学习率为0.1。预热步骤为1000;动量和重量偏差分别设置为0.9和0.005。方案所有的BoS实验都使用与默认设置相同的超参数,并且在BoF实验中,方案添加了额外的50%训练步骤。在BoF实验中,方案验证了MixUp,CutMix,Mosaic,模糊数据增强和标签平滑正则化方法。在BoS实验中, 方案比较了LReLU,Swish和Mish激活功能的效果。所有实验均使用1080 Ti或2080 Ti GPU进行训练。在MS COCO目标检测实验中,默认超参数如下:训练步骤为500,500;训练步骤为500,500。采用步阶衰减学习率调度策略,初始学习率为0.01,分别在40万步和45万步上乘以系数0.1。动量和重量衰减分别设置为0.9和0.0005。所有架构均使用单个GPU以64的批处理大小执行多尺度训练,而最小批处理大小为8或4则取决于架构和GPU内存限制。除了使用遗传算法进行超参数搜索实验外,所有其他实验均使用默认设置。遗传算法使用YOLOv3-SPP训练GIoU损失,并搜索300个epoch的最小5k集。对于遗传算法实验,方案采用搜索学习率0.00261,动量0.949,IoU阈值来分配ground truth 0.213,并使用损失归一化器0.07。方案已经验证了许多BoF,包括消除网格敏感性,分子数据增强,IoU阈值,遗传算法,类标签平滑,交叉小批量归一化,自对抗训练,余弦退火调度程序,动态小批量大小,DropBlock,优化锚点,不同类型的IoU损失。方案还对各种BoS进行了实验,包括Mish,SPP,SAM,RFB,BiFPN和高斯YOLO。对于所有实验,方案仅使用一个GPU进行训练,因此未使用可优化多个GPU的诸如syncBN之类的技术。结果与其他最先进的目标检测器获得的结果比较如图所示。YOLOv4位于Pareto最优曲线上,在速度和准确性方面均优于最快,最精确的检测器。由于不同的方法使用不同架构的GPU进行推理时间验证,因此在Maxwell,Pascal和Volta架构的通用GPU上运行YOLOv4,并将它们与其他最新方法进行比较。结论该论文中的YOLOv4方案提供了一种最先进的检测器,其速度(FPS)和准确度(MS COCO AP50 … 95和AP50)比所有可用的替代检测器都要高。所描述的检测器可以训练并在具有8-16 GB-VRAM的常规GPU上使用,这使得它的广泛使用成为可能。单阶段基于锚的检测器的原始概念已经证明了其可行性。方案已经验证了大量新的方法,并选择使用这些方法以提高分类器和检测器的准确性。这些功能可以用作未来研究和开发的最佳实践。接下来是YOLOv4网络的整体架构介绍一张图,整体感受一下yolov4网络结构该图是白勇老师所绘制的YOLOv4网络架构图Cross Stage Partial(CSP)可以增强CNN的学习能力,能够在轻量化的同时保持准确性、降低计算瓶颈、降低内存成本。CSPNet论文详见:https://arxiv.org/pdf/1911.11929.pdfDarknet53的结构如图所示,共有5个大残差块,每个大残差块所包含的小残差单元个数为1、2、8、8、4。CSPDarknet53是在Darknet53的每个大残差块上加上CSP,对应layer 0~layer 104。Darknet53分块1加上CSP后的结果,对应layer 0~layer 10。其中,layer [0, 1, 5, 6, 7]与分块1完全一样,而 layer [2, 4, 8, 9, 10]属于CSP部分。Darknet53分块2加上CSP后的结果,对应layer 11~layer 23。其中,layer [11, 15~20]对应分块2(注意:残差单元中的3×3卷积核的深度改变了,由Darknet53分块2中的128改为64,请看layer 16 和 layer 19),其余 layer属于CSP部分。Darknet53分块3加上CSP后的结果,对应layer 24~layer 54。其中,layer [24, 27~51]对应分块3(注意:残差单元中的3×3卷积核的深度改变了,由Darknet53分块3中的256改为128,请看layer 29等),其余 layer属于CSP部分。Darknet53分块4加上CSP后的结果,对应layer 55~layer 85。其中,layer [55, 58~82]对应分块4(注意:残差单元中的3×3卷积核的深度改变了,由Darknet53分块4中的512改为256,请看layer 60等),其余 layer属于CSP部分。Darknet53分块5加上CSP后的结果,对应layer 86~layer 104。其中,layer [86, 89~101]对应分块5(注意:残差单元中的3×3卷积核的深度改变了,由Darknet53分块5中的1024改为512,请看layer 91等),其余 layer属于CSP部分。SPP全称为Spatial Pyramid Pooling ,即,空间金字塔池化,SPP论文详见这里:https://arxiv.org/pdf/1406.4729.pdf,网络结构如图所示。SPP网络用在YOLOv4中的目的是增加网络的感受野。实现是对layer107进行 5×5 、 9×9 、 13×13 的最大池化,分别得到layer 108,layer 110和layer 112,完成池化后,将layer 107,layer 108,layer 110和layer 112进行concatenete,连接成一个特征图layer 114并通过 1×1降维到512个通道。SAM(spatial attention module)模块如Figure4所示。这部分主要是基于RPN特征得到一个权重矩阵,因为RPN参数训练时有一个前背景分类的监督信息,因此这个权重矩阵可以用来表达特征图上前景和背景的区域差异,将该权重矩阵和原来的特征图相乘后就得到调整后的特征图,这样基于调整后的特征图执行RoI特征提取就能达到强调前景特征,弱化背景特征的目的。Figure6给出了是否增加SAM模块对特征图的影响,可以看到增加SAM后目标区域的特征值相比非目标区域的特征值要更大一些,这样提取到的RoI特征中目标特征占比也越大,达到强化目标特征,弱化背景特征的目的。PANet 的论文详见这里https://arxiv.org/pdf/1803.01534.pdf,网络结构如图所示,与FPN相比,PANet 在UpSample之后又加了DownSample的操作。PANet上采样对应的layer为layer 105到layer 128。PANet实现示意图PANet实现示意图PANet实现示意图YOLOv3的Head实现示意图最后,我们来看一下部分代码的实际实现我们以这一份复现代码为例可以看到其中的yolov4具体代码实现,由大量的残差卷积模块、SPP等组成以及Mish激活函数的实现然后我们来看一些官方代码实现这里是用到的相关激活函数的函数体同样,是mish激活函数的实现,只不过官方代码中加入了3种代码实现,最终采样的是其中的mish_yashas2的实现。这里展示的是模型结构配置的定义,该配置定义在这个cfg文件里。其C++代码的SAM实现做了并行计算的优化,这里将前向计算的一些串行的for循环代码通过编译器预处理指令转换为了并行的计算SAM的反向计算也进行了相同的处理最后谢谢大家,如果有什么不懂的欢迎提出来一起讨论研究。
往期精彩
ASRT上线测试Demo啦
[论文分享]迁移学习实现基于预算的语音识别
计算机的内功真的很重要吗?
[论文分享]FastSpeech: 快速鲁棒可控的语音合成
教你如何使用ASRT部署中文语音识别API服务器
教你如何使用ASRT训练中文语音识别模型
·END·
AI柠檬博客
分享AI技术文章
关注前沿科技
QQ交流群: 867888133
微信号:ailemon_me
博客网址:https://blog.ailemon.me
点击下方“”即可阅读博客原文,并参与评论和互动。
点在看,让柠檬菌知道你在看~
yolov4论文_YOLOv4论文详细解读相关推荐
- TinyBERT论文及代码详细解读
简介 TinyBERT是知识蒸馏的一种模型,于2020年由华为和华中科技大学来拟合提出. 常见的模型压缩技术主要分为: 量化 权重减枝 知识蒸馏 为了加快推理速度并减小模型大小,同时又保持精度,Tin ...
- 元学习之《On First-Order Meta-Learning Algorithms》论文详细解读
元学习系列文章 optimization based meta-learning <Model-Agnostic Meta-Learning for Fast Adaptation of Dee ...
- 经典神经网络论文超详细解读(三)——GoogLeNet InceptionV1学习笔记(翻译+精读+代码复现)
前言 在上一期中介绍了VGG,VGG在2014年ImageNet 中获得了定位任务第1名和分类任务第2名的好成绩,而今天要介绍的就是同年分类任务的第一名--GoogLeNet . 作为2014年Ima ...
- PSGAN——姿态稳健型可感知空间式生成对抗网络论文详细解读与整理
PSGAN--姿态稳健型可感知空间式生成对抗网络论文详细解读与整理 1.摘要 2.什么是PSGAN? 3.主要贡献 4.整体模块 5.目标函数 6.实验结果--部分化妆和插值化妆 7.定量比较 8.参 ...
- 经典神经网络论文超详细解读(八)——ResNeXt学习笔记(翻译+精读+代码复现)
前言 今天我们一起来学习何恺明大神的又一经典之作: ResNeXt(<Aggregated Residual Transformations for Deep Neural Networks&g ...
- 博通语法纠错技术方案入选ACL2022,论文详细解读
语法纠错团队成功入选ACL 2022的中文纠错模型CRASpell和CNEG | 导语 语法纠错是一项基础的NLP任务,在机器翻译.语音识别.自动问答等任务中具有重要的作用.我们针对中文语法纠错进行了 ...
- BoT-SORT: Robust Associations Multi-Pedestrian Tracking 论文详细解读
BoT-SORT: Robust Associations Multi-Pedestrian Tracking 论文详细解读 文章目录 BoT-SORT: Robust Associations Mu ...
- 【YOLO系列】YOLOv1论文超详细解读(翻译 +学习笔记)
前言 从这篇开始,我们将进入YOLO的学习.YOLO是目前比较流行的目标检测算法,速度快且结构简单,其他的目标检测算法如RCNN系列,以后有时间的话再介绍. 本文主要介绍的是YOLOV1,这是由以Jo ...
- 经典神经网络论文超详细解读(二)——VGGNet学习笔记(翻译+精读)
前言 上一篇我们介绍了经典神经网络的开山力作--AlexNet:经典神经网络论文超详细解读(一)--AlexNet学习笔记(翻译+精读) 在文章最后提及了深度对网络结果很重要.今天我们要读的这篇VGG ...
最新文章
- Lyft估值目标近200亿美元 有望成今年来美国最大IPO
- iOS 隐藏导航栏整个视图上移闪屏问题
- 原来这就是Java代码生成器的原理啊,太简单了
- psfaddtable - 添加一个Unicode字符表到控制台字体中
- 【控制】《自动控制原理》胡寿松老师-第6章-线性系统的校正方法
- SQLite 删除表(http://www.w3cschool.cc/sqlite/sqlite-drop-table.html)
- 命令行command更新android sdk + gradle设置代理
- catia如何整列加工_”模具加工“最全面的诠释,你真的都懂了吗?
- Loj#2880-「JOISC 2014 Day3」稻草人【CDQ分治,单调栈,二分】
- phaser java_【Java并发编程实战】-----“J.U.C”:Phaser
- C# Winform 窗体美化(六、双层窗体)
- Python BeautifuSoup4 爬表格
- java无法输出_这个java程序为什么不能输出结果?
- 使用google analytics(分析)监测百度竞价关键词效果(网址构建工具)
- SRGAN——使用与超分辨率重建的GAN
- 关闭windows自动更新小妙招
- 【申博攻略】一.北交计算机学院学术型博士“申请-考核”攻略(招生简章篇)
- 百度地图 控件——路网地图和影像地图切换
- ASUS ZenBook Duo 14 UX481电脑 Hackintosh 黑苹果efi引导文件
- html json是什么文件,JSON是什么?
热门文章
- ELK学习11_ELK Stack交流群问题汇总一
- TCP三次握手四次挥手 TCP/UDP区别
- CSS3的box-sizing:向外撑content-box向内挤border-box 外撑的padding算自己的盒子会变大 内挤的padding会缩小自己
- Go的testing包数据类型M/T/B/PB
- Yii的各种query
- 小红帽linux操作教程_【免费】Linux从入门到精通教程!
- c语言再大文件内搜索,C语言中大型磁盘文件的二进制搜索
- maven静态资源导出(Ctrl+C+V)
- ajax获取网页新闻,基于Ajax的新闻网页动态数据的抓取方法及系统
- nginx注册为windows系统服务