前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >笔记分享 : 目标检测与识别算法之一 YOLO v4 精华版

笔记分享 : 目标检测与识别算法之一 YOLO v4 精华版

作者头像
唐国梁Tommy
发布2021-05-28 17:25:53
7490
发布2021-05-28 17:25:53
举报
文章被收录于专栏:唐国梁Tommy唐国梁Tommy

哈喽,大家好,今天我们一起学习一下CV(Computer Vision)领域中,最牛目标检测与识别算法之一:YOLO_v4论文中的精髓部分,论文名称:《YOLOv4: Optimal Speed and Accuracy of Object Detection》,感兴趣的同学可以自行下载阅读,文末会贴上下载链接。

咱们先看一下YOLO v4算法的Demo (注:视频来源于YouTuBe)

接下来,我将拆解论文中的每一部分,把最精华的部分提取出来与大家分享。相信各位同学读完后,基本上明白YOLO v4干了什么活儿。闲言少叙,我们进入主题:

第一部分:Abstract

首先,我们先看一下在Abstract部分,作者主要概述了YOLO v4算法中的创新点,主要有以下八点:

① Weighted-Residual-Connections (WRC), 加权残差连接

② Cross-Stage-Partial-connections (CSP), 跨阶段局部连接

③ Cross mini-Batch Normalization (CmBN), 跨小批量归一化

④ Self-adversarial-training (SAT), 自对抗训练

⑤ Mish-activation. Mish激活函数

⑥ Mosaic data augmentation, Mosaic数据增强

⑦ DropBlock regularization, DropBlock正则化

⑧ CIoU loss CIoU损失

基于GPU Tesla V100,作者在COCO数据集上,实现了实时检测速度高达65FPS,AP达到43.5%,AP50达到65.7%。不同算法的对比结果,如图所示:

个人观点:目前YOLO算法系列包含v1 - v5,不过,只有v1 - v4有对应的论文,v5目前还没有正式的论文发表。其实,CV界对v5还是抱有很大的质疑声。等v5算法出了论文,咱们再继续解读。

第二部分:Introduction

作者总结了YOLO v4算法做出的主要贡献,主要是两个方面:

第一:在检测器训练阶段,引入了目标检测方法:Bag-of-Freebies (BoF) 和 Bag-of-Specials (BoS);

第二:针对单个GPU训练,对一些最优算法进行修改,比如:CBN, PAN, SAM等;

第三部分:Related work

这一大段内容,作者主要讲了三个方面的内容,即:目前目标检测领域,主流的一些方法:

第一. 目标检测模型

我们直接用论文中的总结,通用的检测模型基本上包含如下几个主要模块。

第二. 在训练(training)阶段,Bag-of-Freebies (BoF)的应用;

在这部分,作者主要讲了三件事情,分别是:

① 数据增强 data augmentation;

② 语义分布 sementic distribution;

③ 目标函数 objective function;

如图所示(这是我做的思维导图,部分截图):

第三. 在推理(inference)阶段,Bag-of-Specials (BoS)的应用;

在这部分,作者指出通过 plugin modules(插件模型) 和 post-processing methods (后处理方法)能够以很少的推理代价获得目标检测极大的准确性。

如图所示(这是我做的思维导图,部分截图):

第四部分:Methodology

这是论文中最精华的部分,主要包含四部分:1. 网络结构的选择;2. BoF和BoS的选择;3. 额外的提升;4. YOLO v4的构成;

我们一一来看一下每部分:

第一:网络结构的选择,这里用论文中的示例图:

作者通过实验对比,得出两个结论:

1. 在ImageNet的目标分类上,CSPResNext50网络结构优于CSPDarknet53;

2. 在COCO目标检测上,CSPDarknet53网络结构优于CSPResNext50;

最终,作者在YOLO v4中选用了以下几个组件:

① CSPDarknet53作为backbone;

② SPP模块;

③ PANet路径聚合neck;

④ YOLO v3 作为YOLO v4的head;

第二:BoF和BoS的选

其实,BoF和BoS都是一些tricks,用来改进模型,提升检测或分类的准确性。

在论文中,作者选取了这些tricks,如下图所示:

第三:额外的提升

在论文中,作者为了使设计的检测器适用于单个GPU,做了如下一些修改:

① 修改1:数据增强 Data augmentation

4张不同的图片混合在一起

② 修改2:自对抗训练 self-adversarial training

③ 修改3:CmBN替换了CBN

④ 修改4:修改SAM的spatial-wise attention为point-wise attention,同时,替换PAN的快捷连接为拼接

第四:YOLO v4的构成

① YOLO v4 由以下三部分构成:

Backbone : CSPDarkent53

Nect : SPP, PAN

Head : YOLOv3

② BoF,BoS 与 backbone,detector 的组合

【备注:这是我根据论文总结的图表】

第五部分:Experiments

该阶段,主要是作者做了很多对比实验,来筛选出最优的组件。

第一:实验过程中的超参数设置(自己看论文吧,比较多);

第二:在分类训练上,不同特征的影响

测试内容主要包含三个部分,分别是:

① class label smoothing

② data augmentation, bilateral blurring, MixUp, CutMix and Mosaic

③ activations : Leaky-ReLu, Swish, Mish

第三:在检测训练上,不同特征的影响

这部分主要是BoF和BoS在检测器训练过程中的影响。【这部分内容非常详细,建议看论文】

下图是Bag-of-Specials的消融研究对比结果:

第四:在检测训练上,不同backbones和预训练权重的影响

下图,对比实验结果:

第五:在检测训练上,不同min-batch的影响

作者通过实验发现,如果训练策略中加入了BoF和BoS,那么,mini-batch对检测器的性能没有任何影响。

下图,对比实验结果:

下图,这是我关于Experiments的思维导图(部分截图):

论文中最后的Results和Conclusions这两部分,就是对YOLO v4算法的一个总结。反正,就是说YOLO v4算法非常非常的牛 ~

以下是我详细阅读论文过程中做的思维导图截图(注:暂不公开该思维导图,后续YOLO专题课程中会公开。)

论文下载链接:

https://arxiv.org/pdf/2004.10934.pdf

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 唐国梁Tommy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档