论文阅读: YOLOv2

Introduction

本文获得了CVPR 2017 Best Paper Honorable Mention:

行文思路自成一体,按照 BetterFasterStronger 三个章节来分别介绍其贡献。

Better

概括来说就是一堆的小trick。

  1. 引入Batch Normalization,涨点2。
  2. 训练分类的阶段,每10个epoch就在448×448448×448448\times 448的高像素图片上fine-tune一下,使之能更好地适应高像素的输入图像。该操作对mAP涨点4。
  3. 抛弃后段的FC层,改用anchor机制来预测bbox。该操作虽然使得mAP从69.5降至69.2,但是召回率从81暴涨至88。
  4. Dimension Clusters (维度聚类) 。经过对VOC数据集和COCO数据集中bbox的k-means聚类分析,将anchor机制中原本惯用的 9 anchor 法则 删减为仅保留最常出现的 5 anchor 。其中,狭长型的anchor是被保留的主体:

该Cluster IoU操作将anchor数量砍削了将近一半,但对object bbox的平均IoU值却只从61.0降至60.9:

  1. 新的 encode/decode机制 —— Direct location prediction (直接位置预测) 。号称用新的位置预测算法来缩小参数范围,使之更容易学习,也使得网络更加稳定:

然而现在看来并没有什么影响力,大家主流用的还是Faster R-CNN中设计好的那一套encode/decode机制。

  1. 在 26×2626×2626\times 26 size层设置了通道层接至 13×1313×1313\times 13 size层。号称保留了更多的位置信息,从而提升细粒度分类的能力。本质上即为single-scale上处理two-scale的feature map信息。该操作涨点1。
  2. Multi-Scale Training (多尺度训练) 。每10个batch就在 320,352,...,608(均为32整数倍)320,352,...,608(均为32整数倍){320, 352, ..., 608} (均为32整数倍) 中随机选择一个新的input size,该操作据说能锻炼对多尺度input的预测能力。个人感觉这就是集成学习。

Faster

YOLOV1中basemodel选择GoogleNet而非VGGNet,之后的SSD却采用了VGGNet,并大获成功。YOLOv2坐不住了,想要改basemodel。 但是和YOLOv1的原因一样,因为嫌弃VGGNet计算量太大(224×224224×224224\times 224的图像需要计算30.69 billion次浮点运算),于是自己整了个DarkNet-19出来:

该DarkNet-19仅需5.58 billion次浮点运算,却依然在ImageNet上保持高精度。

Stronger

softmax嵌套softmax,从而实现分级语法树:

带有分级语法树的YOLOv2,进化为了YOLO9000:

这是 第一个large-scale detector ,虽然细分类的精度并不高。

Innovation

自己发明的一系列骚操作(Dimension Clusters、Direct location prediction、Multi-Scale Training、DarkNet-19)再加上博采众长,共同构成了此篇神作。

Result

在mAP和inference speed上都号称取得了state-of-the-art (实际上差得很):

效果图:

Thinking

  • YOLOv2中提出了很多trick,贡献很饱满;
  • YOLOv2的加强版——YOLO-9000应该是最早开始对 large-scale detection 领域进行拓荒的了。但是scale变large的代价是accuracy变差,所以YOLO-9000无法实际运用于生产中。其后的R-FCN-3000则在该领域继续开拓,并取得了较好的accuracy。

[1] YOLO9000: Better, Faster, Stronger [2] 详解YOLO 2与YOLO 9000目标检测系统 | 分享总结 [3] YOLO升级版:YOLOv2和YOLO9000解析 [4] 解读Yolo2和Yolo9000目标检测系统 [5] Object Detection – 论文YOLO2(YOLO9000:Better, Faster, Stronger)解读

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据派THU

教你用机器学习匹配导师 !(附代码)

作者:Zipporah Polinsky-Nagel, Gregory Brucchieri, Marissa Joy, William Kye, Nan Li...

1182
来自专栏人工智能LeadAI

通俗易懂丨深度学习如何入门

? 作者:Jacky Yang(知乎) 关于深度学习,网上的资料很多,不过貌似大部分都不太适合初学者。 这里有几个原因: 1.深度学习确实需要一定的数学基础...

33910
来自专栏数据小魔方

R语言可视化——数据地图离散百分比填充(环渤海)

今天跟大家分享如何以百分比形式填充离散分段数据地图。 案例用环渤海三省二市的地理数据。 library(ggplot2) library(maptools) l...

3094
来自专栏PPV课数据科学社区

【学习】SPSS聚类分析全过程

案例数据源: 有20种12盎司啤酒成分和价格的数据,变量包括啤酒名称、热量、钠含量、酒精含量、价格。数据来自《SPSS for Windows 统计分析》dat...

3686
来自专栏媒矿工厂

HDR关键技术:HEVC/H.265编码方案

前文我们对HEVC的HDR编码优化技术做了介绍,侧重编码性能的提升。本章主要阐述HEVC中HDR/WCG相关的整体编码方案,包括不同应用场景下的HEVC扩展编码...

5750
来自专栏数据结构与算法

中国剩余定理详解

引入 我国古代数学著作《孙子算经》中有一道题目,它的描述是这样的 今有物不知其数,三三数之余二;五五数之余三;七七数之余二。问物几何? 这道题用现代数学理...

37211
来自专栏AI科技评论

开发 | TOP5%Kaggler:如何在 Kaggle 首战中进入前 10%

Introduction Kaggle 是目前最大的 Data Scientist 聚集地。很多公司会拿出自家的数据并提供奖金,在 Kaggle 上组织数据竞赛...

5798
来自专栏自学笔记

Aggregation Model : Blending , Bagging , Boosting

比如现在有一支股票,你不知道是跌还是涨。你有T个friends,每一个friend对应的建议分别是g1,g2,g3...gn,那么你应该怎么选择建议?

1273
来自专栏AI研习社

TOP 5% Kaggler:如何在 Kaggle 首战中进入前 10% | 干货

编者按:本文作者章凌豪,复旦大学计算机科学专业。有兴趣的同学可以移步他的个人主页:https://dnc1994.com/Introduction(点击文末“阅...

3836
来自专栏AI研习社

利用摇滚乐队学习TensorFlow,Word2Vec模型和TSNE算法

学习“TensorFlow方式”来构建神经网络似乎是开始机器学习的一大障碍。在本教程中,我们将一步一步地介绍使用Kaggle的Pitchfork数据构建Band...

1582

扫码关注云+社区

领取腾讯云代金券