内容简介:加入极市专业CV交流群,与同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注◎作者系
加入极市专业CV交流群,与 1 0000+来自港科大、北大、清华、中科院、CMU、腾讯、百度 等名校名企视觉开发者互动交流!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 , 回复 加群, 立刻申请入群~
◎作者系 极市原 创作者计划 特约作者Happy
欢迎大家联系极市小编(微信ID:fengcall19)加入极市原创作者行列
早上刷到YOLOv4之时,非常不敢相信这是真的!
paper: https://arxiv.org/pdf/2004.10934.pdf ,
code:https://github.com/AlexeyAB/darknet
核心中的核心:作者将 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.
Contribution
作者设计YOLO的目的之初就是设计一个 快速而高效的目标检测器 。该文的贡献主要有以下几点:
-
设计了一种快速而强有力的目标检测器,它使得任何人仅需一个1080Ti或者2080Ti即可训练这样超快且精确的目标检测器你;
-
(不会翻译直接上英文)We verify the influence of SOTA bag-of-freebies and bag-of-specials methods of object detection during detector training
-
作者对SOTA方法进行改进(含CBN、PAN,SAM)以使其更适合单GPU训练
Method
作者在现有实时网络的基础上提出了两种观点:
-
对于GPU而言,在组卷积中采用小数量的groups(1-8),比如CSPResNeXt50/CSPDarknet53;
-
对于VPU而言,采用组卷积而不采用SE模块。
网路结构选择
网络结构选择是为了在输入分辨率、网络层数、参数量、输出滤波器数之间寻求折中。作者研究表明: CSPResNeXt50在分类方面优于CSPDarkNet53,而在检测方面反而表现要差 。
网络主要结构确定了后,下一个目标是选择额外的模块以提升感受野、更好的特征汇聚模块(如FPN、PAN、ASFF、BiFPN)。对于分类而言最好的模型可能并不适合于检测,相反,检测模型需要具有以下特性:
-
更高的输入分辨率,为了更好的检测小目标;
-
更多的层,为了具有更大的感受野;
-
更多的参数,更大的模型可以同时检测不同大小的目标。
一句话就是: 选择具有更大感受野、更大参数的模型作为backbone 。下图给出了不同backbone的上述信息对比。从中可以看到:CSPResNeXt50仅仅包含16个卷积层,其感受野为425x425,包含20.6M参数;而CSPDarkNet53包含29个卷积层,725x725的感受野,27.6M参数。这从理论与实验角度表明: CSPDarkNet53更适合作为检测模型的Backbone 。
在CSPDarkNet53基础上,作者添加了SPP模块,因其可以提升模型的感受野、分离更重要的上下文信息、不会导致模型推理速度的下降;与此同时,作者还采用PANet中的不同backbone级的参数汇聚方法替代FPN。
最终的模型为: CSPDarkNet53+SPP+PANet(path-aggregation neck)+YOLOv3-head = YOLOv4 .
Tricks选择
为更好的训练目标检测模型,CNN模型通常具有以下模块:
-
Activations:ReLU、Leaky-ReLU、PReLU、ReLU6、SELU、Swish or Mish
-
Bounding box regression Loss:MSE、IoU、GIoU、CIoU、DIoU
-
Data Augmentation:CutOut、MixUp、CutMix
-
Regularization:DropOut、DropPath、Spatial DropOut、DropBlock
-
Normalization:BN、SyncBn、FRN、CBN
-
Skip-connections:Residual connections, weighted residual connections, Cross stage partial connections
作者从上述模块中选择如下:激活函数方面选择Mish;正则化方面选择DropBlock;由于聚焦在单GPU,故而未考虑SyncBN。
其他改进策略
为使得所涉及的检测器更适合于 单GPU ,作者还进行了其他几项额外设计与改进:
-
引入一种新的数据增广方法:Mosaic与自对抗训练;
-
通过GA算法选择最优超参数;
-
对现有方法进行改进以更适合高效训练和推理:改进SAM、改进PAN,CmBN。
YOLOv4
总而言之,YOLOv4包含以下信息:
-
Backbone:CSPDarkNet53
-
Neck:SPP,PAN
-
Head:YOLOv3
-
Tricks(backbone):CutMix、Mosaic、DropBlock、Label Smoothing
-
Modified(backbone): Mish、CSP、MiWRC
-
Tricks(detector):CIoU、CMBN、DropBlock、Mosaic、SAT、Eliminate grid sensitivity、Multiple Anchor、Cosine Annealing scheduler、Random training shape
-
Modified(tector):Mish、SPP、SAM、PAN、DIoU-NMS
Experiments
模型的好坏最终还是要通过实验来验证,直接上对比表:
更多的消融实验分析如下:
各位小伙伴还是赶紧去研究一下原文吧,在 极市平台 后台回复 YOLOv4 即可获取论文下载链接。
-END -
推荐阅读:
加入极市原创作者行列
丰富稿酬|个人品牌打造|资源引荐
添加极市小助手微信 (ID : cv-mart) ,备注: 研究方向-姓名-学校/公司-城市 (如:目标检测-小极-北大-深圳),即可申请加入 目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等极市技术交流群 ,更有 每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、 干货资讯汇总、行业技术交流 , 一起来让思想之光照的更远吧~
△长按添加极市小助手
△长按关注极市平台,获取 最新CV干货
觉得有用麻烦给个在看啦~
以上所述就是小编给大家介绍的《重磅!就在刚刚,吊打一切的 YOLOv4 开源了!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机组成:结构化方法
坦嫩鲍姆 / 刘卫东 / 人民邮电出版社 / 2006-1 / 65.00元
本书采用结构化方法来介绍计算机系统,书的内容完全建立在“计算机是由层次结构组成的,每层完成规定的功能”这一概念之上。作者对本版进行了彻底的更新,以反映当今最重要的计算机技术以及计算机组成和体系结构方面的最新进展。书中详细讨论了数字逻辑层、微体系结构层、指令系统层、操作系统层和汇编语言层,并涵盖了并行体系结构的内容,而且每一章结尾都配有丰富的习题。 本书适合作为计算机专业本科生计算机组......一起来看看 《计算机组成:结构化方法》 这本书的介绍吧!
XML 在线格式化
在线 XML 格式化压缩工具
RGB HSV 转换
RGB HSV 互转工具