前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >论文阅读: R-CNN

论文阅读: R-CNN

作者头像
JNingWei
发布2018-09-27 11:14:35
5370
发布2018-09-27 11:14:35
举报
文章被收录于专栏:JNing的专栏JNing的专栏

版权声明:转载请注明出处 https://cloud.tencent.com/developer/article/1347419

Introduction

R-CNN提出于2013年11月。

R-CNN不是第一个提出“将检测任务转换为分类任务”,但却是第一个真正实现了该思想的算法:

其本质上主要解决了两大问题:

  • 如何location;
  • 如何在缺少检测专用数据集的情况下实现检测任务。

R-CNN对此提出了解决方案:

  1. 对于第一个问题,R-CNN中指出,Detection中最大的难关在于location。之前已经有人将location定义为regression问题了,但是效果并不好。如果要是采用在滑窗中进行location regression,技术难度又大。那咋办呢?别急,R-CNN就给出了解决方法:改成 对region proposal进行location regression 即可。但是直接计算offset不妥,因此设计了 encode/decode机制

Note

  • 这便是检测算法中encode/decode的鼻祖。到了 Faster R-CNN 中,encode/decode机制被进一步改进,成为了通用的标准设计;YOLOv2也提出了自己的一套encode/decode设计,但是无人问津。
  • encode/decode机制的作用:对offset的目标进行 “归一化”使回归变得简单
  • train阶段只有encode,且在train之前进行encode;
  • inference阶段只有decode,且在inference之后进行decode;
  • encode输入的是ground_truths和all_anchors,输出的是targets;
  • decode输入的是all_anchors和targets,输出的是实际bbox;
  • train阶段是不生成实际bbox的,所以全程都是targets(encode后得到的一根根t向量)在跑在计算;
  • inference阶段,由于要生成实际的bbox,就将targets和all_anchors(穷举生成的anchor)做一个计算,得出实际的bbox。
  • 算法回归的目标 不是offset,而是 encode offset 所得的target
代码语言:txt
复制
1. 对于第二个问题,在train阶段,R-CNN先于ILSVRC2012数据集上预训练好,并**直接**在VOC2007或ILSVRC2013数据集上进行fine-tune;在test阶段,使用Selective Search进行RP生成,随后在resize成统一大小的RP上进行测试。该设计把train阶段和test阶段完美地统一了起来,很好地缓解了由于检测专用数据集缺少数据量的问题。

R-CNN思路如下:

  1. R-CNN首先采用Selective Search来生成RP (每张生成约2k个) ;
  2. 并很自然地想到了将所有RP resize成统一大小 (227×227):
  1. 将resize后的RP分别喂入分类网络 (论文中用的是简化版的AlexNet,即去掉了AlexNet倒二的fc层) ;
  2. 后面接着k+1k+1k+1(前景+背景)个二分类的SVM,等着对卷积网络输出的特征tensor进行分类;
  3. 对分类结果采用NMS进行一波“去重运动”;
  4. 把所分tag归属为非背景的所有RP送入kkk(前景)个location regressor,这时候只需要单独对RP区域进行location regression即可。

论文4.2节对于RP (Region Proposal) 的介绍中,最后一句讲到,RP生成环节的设计还有着很大的改进空间。这也为R-CNN的孙辈——Faster R-CNN提出RPN埋下了伏笔。

Innonvation

整套检测思路的设计,使得神经网络进行Detection任务变为了现实 (尽管之前也有了类似的OverFeat)。

检测算法的繁荣兴盛,自R-CNN始。

Result

R-CNN一文既出天下惊。

效果更不要说了,在当年的ILSVRC2013数据集上的mAP测评一骑绝尘:

RBG大神还饶有兴致地深入探究了一下R-CNN在ILSVRC2013上每个细类别的AP值:

在VOC2007上没有最好,只有更好:

R-CNN的一些实图检测效果:

Thinking

尽管R-CNN是划时代的,但是在它身上也能看到很多前人 (OverFeat等) 的智慧。


1(https://arxiv.org/abs/1311.2524)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年05月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Introduction
  • Innonvation
  • Result
  • Thinking
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档