深度学习之路(二):R-CNN

叮咚,前文已经简单的介绍了一些,下面进入第一个算法——R-CNN。

在计算机视觉领域有一个神一样存在的竞赛——ImageNet大赛,各种各样的优秀算法差不多都首先初现在大赛上。讲深度学习应用于计算机视觉最早可以追溯到2012年,在此次大赛上,卷积神经网络CNN一炮走红,成功击败了DMP(可变组建模型,被称为传统目标检测算法最后的辉煌!)。基于此,Ross大神趁火打劫,率先提出了区域卷积网络目标检测框架(R-CNN)。由此,目标检测鸟枪换大炮,正式拉开了基于深度学习的目标检测研究大幕,目标检测算法结束了传统,“GPU暴力美学”时代到来。

首先我们先来看一下论文《Rich feature hierarchies for accurate oject detection and semantic segmentation》(百度云链接:https://pan.baidu.com/s/12pESnsHbFi8ktfIxu729_A,提取码:e84a),这便是Ross Girshick大神于2014年发表的论文,由此提出R-CNN。

一、原文解读

(并非逐字逐句翻译)

过去几年,在PASCAL数据集上目标检测的效果已经达到了一个稳定的效果,并且总结出了一个发展方向:融合多种低维度的特征图和高纬度的上下文语义可以提升检测效果。Ross大神基于此,提出了一种算法,可以将数据集VOC2012的最高检测精度提升30%(也怪当时检测效果质量较差,才一下提升如此之高),达到了53.3%(很快就会被碾压)!Ross大神并且总结出了两个关键因素(为R-CNN系列算法打下了坚实的基础):

1.在候选区域自上而下的使用卷积神经网络用来定位和分割;

2.采用预训练再微调的方式(以后都是这样干的,迁移学习老铁了解一下)。

1.1 Introduction

特征是贼啦重要的(还用你说)。过去的目标检测算法基本上都是基于SIFT和HOG特征进行检测的(关于这两个以后有机会再详述,你知道他们是两种特征提取算法就ok了),但是近些年来(2010-2012年)进展非常缓慢(这也就表明了单纯的依靠传统的特征提取已经很难再取得进步了,大神们已经把这种算法研究的明明白白了),于是乎,我们决定采用CNN来搞一下。

接下来,论文中讲述了目前最新发展的传统目标检测算法以及基于CNN的目标检测算法,为接下来提出我的NB算法打一下前调。这里就省略了,如果您喜欢,请详细研究。

我们针对前人们的研究成果,通过研究他们的缺点,总结出了我们的要点,就是:通过操作“recognition using regions”解决了CNN的定位问题,并且对于每一张图像(注意啊,是针对每一张图像),我们获取2K个于类别无关的region proposal(这个单词经常会出现,翻译成什么样的中文都感觉差点意思),通过神操作将这2K个region proposal转化成固定大小的,将其每一个(注意啊,是每一个,即这2000多个都要)输入到卷积神经网络,然后经过卷积操作之后,利用SVM进行分类。由于这个算法结合了region proposal和CNN,因此我们就给他命名为R-CNN,下面上图。


不放上这个图,我自己都觉得我再胡扯。

如果你说我的数据集不够咋办,这可就不好办了。深度神经网络的训练就是从大量,或者说海量的数据中心获得特征的描述,但是有标签的数据集是非常难找到的,即使自己制作数据集,需要耗费的人力物力还是很大的。因此,数据集数量不够怎么办不仅仅困惑着你,同样困惑着Ross大神。R-CNN提出的另一个大的贡献则是“微调”,即在辅助数据集(ILSVRC)上进行训练(据说数据量是千万级的,我没有考证过,道听途说),然后再在小数据集上进行调优,这为我们利用现有模型(VGG16、ZF都有训练好的预训练模型)来进行训练自己的数据集提供了可能(当然了,这里的小数据集也不能太少,过拟合还是很恐怖的,如果你就三五张,三五十张数据集,请出门左拐,再制作一些数据集去,起码每个类别也要有几百上千张的,为了获得相对较好的训练效果,每个不同类别的数据集数量最好相差不是很大)。

R-CNN目标检测模型有三个模块构成:

1.生成类别独立的region proposal

2.从各个region proposal中获取固定维度的特征向量,可以用ZF,也可以用VGG16

3.利用SVM算法将这些特征向量分类

1.2 Object detection with R-CNN

region proposal

获得region proposal是成功的第一步,那么如何获得region proposal呢?这是一个非常重要的话题,在这里R-CNN采用的是选择性搜索算法(selective search,SS算法,这里就不做过多的解释了,请大佬们自行百度吧,很简单的)。这就产生了1K-2K个region proposal,具体是不是这个数,咱也没数过,咱也不敢说。

获取了region proposal后,首先要要做的就是给这些region proposal整理大小,为了方便计算,均归一化成227*227大小的(其实这个数字可以通过神经网络的结构算出来)。下面就是将大小一样的region proposal排排队送入卷积神经网络中,静等结果便可。

论文的下面一些部门便是介绍了训练过程已经各种各样的对比试验从而验证了R-CNN算法多么多么优秀。就不在一一介绍了,下面结合我的训练过程,为大家介绍R-CNN的训练过程。

二、R-CNN模型训练

在得到region proposal后,便可以开始卷积操作提取特征了。

好了,现在我要站队了,目前基于深度学习的深度神经网络框架主要有两大阵营,其一是Caffe,其二是TF(tensorflow,于口红无关,于TFBOYS更没有一毛钱关系),其实这来两个框架各自有各自的特点与不足,由于一开始接触的是基于Caffe的模型,因此后面包括以后的算法基本上均是基于Caffe框架进行开发的。

现在常用的基于Caffe的卷积神经网络主要有ZF和VGG系列,其中VGG系列中VGG16又比较流行。R-CNN的训练流程如下图。


自己画的,好与不好请多担待。

其训练过程并不复杂,这里还有几点再给大家强调一下。

R-CNN中,这2K多个region proposal经过卷积神经网络得到特征向量之后,是采用SVM进行分类的,来确定类别,采用Bounding-Box(Bbox)进行回归的,来获得其位置坐标,关于这两个算法,虽说不影响R-CNN的理解,但还是学习了解一下为好。

通过以上的描述其实不难发现R-CNN的缺陷,并且是非常致命的缺陷(再NB的算法也是有缺陷的),总结出来主要是两大点吧(个人认为):

1.将每一张待检测图像首先分成2000多个,并且每一个都要经过卷积计算,这是非常耗费时间的,这就造成了起检测速度非常之慢。

2.由于对于region proposal有一个归一化操作,过度拉伸会导致特征变形。

基于以上问题,便有了接下来的精彩。

未完待续。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353