大神接棒,YOLOv4来了!

举报
HWCloudAI 发表于 2020/04/24 15:47:23 2020/04/24
【摘要】 前言今天刷屏的动态一定是 YOLOv4!本文 Amusi 会跟大家说一下在别处看不到内容(大神接棒),欢迎继续阅读!之前,YOLO系列(v1-v3)作者 Joe Redmon 宣布不再继续CV方向的研究,引起学术圈一篇哗然。YOLO之父宣布退出CV界,坦言无法忽视自己工作带来的负面影响推文链接:https://twitter.com/jeremyphoward/status/12306104...

前言


今天刷屏的动态一定是 YOLOv4!

image.png

本文 Amusi 会跟大家说一下在别处看不到内容(大神接棒),欢迎继续阅读!


之前,YOLO系列(v1-v3)作者 Joe Redmon 宣布不再继续CV方向的研究,引起学术圈一篇哗然。YOLO之父宣布退出CV界,坦言无法忽视自己工作带来的负面影响

image.png

推文链接:https://twitter.com/jeremyphoward/status/1230610470991589376

Amusi 特意去谷歌学术上搜索了一下YOLOv1-v3的引用量,累计破16000+!

image.png

大神接棒,YOLOv4来了!


当大家以为再也见不到YOLOv4的时候,然鹅今天 YOLOv4 来了!


YOLOv4的作者阵容里并没有Joe Redmon,也验证了大神曾说不再继续CV研究的这条消息。但都木有YOLO之父Joe Redmon的论文,其名字为什么还敢叫YOLOv4呢,不怕被喷么?


这里Amusi 花点时间跟大家介绍一下这个有趣的事情。


先说说:大神接棒的事情


停更两年之久的的YOLO github官网正式更新 README,那么更新了什么呢?接着往下看


YOLO官网:https://github.com/pjreddie/darknet

image.png
YOLO官方github正式加入YOLOv4的论文和代码链接,也意味着YOLOv4得到了Joe Redmon的认可,也代表着YOLO的停更与交棒

image.png

关于YOLOv4,Amusi 曾写过这样一篇文章来预宣传(现在想想,应该是全网第一个这样介绍的):等待YOLOv4的期间,它还在更新


YOLOv4的一作是 Alexey Bochkovskiy,用过YOLO的同学,特别是用过Windows版YOLO的同学对这个名字一定很熟悉!


因为他就是darknet另一个github版本的维护者,也就是YOLOv4的代码库:

https://github.com/AlexeyAB/darknet


据Amusi 猜测推断,Alexey Bochkovskiy 是一名独立研究员,这里更愿意称为之YOLO接棒者,YOLO社区推动者。这里对Alexey不过多赘述,想了解的同学可以看一下:等待YOLOv4的期间,它还在更新


值得一提的是,这个版本的darknet的提交数已经来到 1777 次。试想一下,你一天提交一次更新,那么就需要你连续近5年不停更!


我们一般只会用两个字来形容这种人:码怪

image.png

YOLOv4 正文

image.png

YOLOv4: Optimal Speed and Accuracy of Object Detection

论文:https://arxiv.org/abs/2004.10934

代码:https://github.com/AlexeyAB/darknet


大家一定被文章开头的图片吸引了,位于图中靠右上角的YOLOv4 多么"亮眼",越靠右上角意味着AP越高、速度FPS越快!而且YOLO被大家追捧的原因之一就是:快而准。

image.png

YOLOv4 在COCO上,可达43.5% AP,速度高达 65 FPS!

YOLOv4的特点是集大成者,俗称堆料。但最终达到这么高的性能,一定是不断尝试、不断堆料、不断调参的结果,给作者点赞。下面看看堆了哪些料:


  • Weighted-Residual-Connections (WRC)

  • Cross-Stage-Partial-connections (CSP)

  • Cross mini-Batch Normalization (CmBN)

  • Self-adversarial-training (SAT) 

  • Mish-activation

  • Mosaic data augmentation

  • CmBN

  • DropBlock regularization

  • CIoU loss


本文的主要贡献如下:

1. 提出了一种高效而强大的目标检测模型。它使每个人都可以使用1080 Ti或2080 Ti GPU 训练超快速和准确的目标检测器(牛逼!)。

2. 在检测器训练期间,验证了SOTA的Bag-of Freebies 和Bag-of-Specials方法的影响。

3. 改进了SOTA的方法,使它们更有效,更适合单GPU训练,包括CBN [89],PAN [49],SAM [85]等。文章将目前主流的目标检测器框架进行拆分:input、backbone、neck 和 head 具体如下图所示:

image.png

  • 对于GPU,作者在卷积层中使用:CSPResNeXt50 / CSPDarknet53

  • 对于VPU,作者使用分组卷积,但避免使用(SE)块-具体来说,它包括以下模型:EfficientNet-lite / MixNet / GhostNet / MobileNetV3


作者的目标是在输入网络分辨率,卷积层数,参数数量和层输出(filters)的数量之间找到最佳平衡。文中称:CSPDarknet53在检测上的表现要优于CSPResNext50,关于CSP,不了解的同学可以看一下这篇文章:

增强CNN学习能力的Backbone:CSPNet

image.png

总结一下YOLOv4框架:

  • Backbone:CSPDarknet53

  • Neck:SPP,PAN

  • Head:YOLOv3


YOLOv4 = CSPDarknet53+SPP+PAN+YOLOv3


其中YOLOv4用到相当多的技巧:

  • 用于backbone的BoF:CutMix和Mosaic数据增强,DropBlock正则化,Class label smoothing

  • 用于backbone的BoS:Mish激活函数,CSP,MiWRC

  • 用于检测器的BoF:CIoU-loss,CmBN,DropBlock正则化,Mosaic数据增强,Self-Adversarial 训练,消除网格敏感性,对单个ground-truth使用多个anchor,Cosine annealing scheduler,最佳超参数,Random training shapes

  • 用于检测器的Bos:Mish激活函数,SPP,SAM,PAN,DIoU-NMS


看看YOLOv4部分组件:

image.png

感受一下YOLOv4实验的充分性(调参的艺术)

image.png

image.png

感受一下性能炸裂的YOLOv4实验结果


image.png


image.png

image.png

论文篇幅很长,高达17页,干货满满!推荐大家阅读原文和源码进行深入理解。


跟我一起喊:大神接棒,YOLOv4 来了!


转载自CVer公众号,如设侵权,联系删除。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200