OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)

1、Abstract:

本文展示一种ConvNets框架,整合了classification, localization, detection。利用multi-scale和sliding window与ConvNets结合达到了很好的效果。本文介绍了一种通过积累predicted bounding boxes而不是通过限制predicted bounding boxes来detection和localization的方法。论文从最好的模型中提取特征,文章称为OverFeat。
2、Introduction:

卷积网络的主要优势是提供end-to-end解决的方案;劣势就是对于标签数据集很贪婪。

ImageNet数据集上的分类任务图片,物体大致分布在图片中心而且感兴趣的物体明显填充在图片中,这就导致分类任务很完美,定位和检测效果很差。感兴趣的物体常常在尺寸和位置(以滑窗的方式)上有变化。

解决这个问题三个ideas:

“The first idea in addressing this is to apply a ConvNet at multiple locations in the image, in a sliding window fashion, and over multiple scales.”

第一个想法就是不同位置,使用滑动窗,不同缩放比例上应用卷积网络。

“the second idea is to train the system to not only produce a distribution over categories for each window, but also to produce a prediction of the location and size of the bounding box containing the object relative to the window. ”

第二个想法就是训练一个卷积网络不仅产生类别分布,还产生一个位置的预测和bounding box的尺寸(包括相对于窗口的物体);

“The third idea is to accumulate the evidence for each category at each location and size.”

第三个想法就是积累在每个位置和尺寸对应类别的置信度。

在多缩放尺度下以滑窗的方式利用卷积网络用了侦测和定位很早就有人提出了,一些学者直接训练卷积网络进行预测物体的相对于滑窗的位置或者物体的姿势。还有一些学者通过窗口中心像素输入到卷积网络中来分割图像来定位物体。利用分割的方法实现localization好处是bounding contours不必是矩形,region也无需完美地划定目标。缺点是需要像素级的labels来训练。

3、Vision Tasks

分类:是啥 预测top-5分类

定位:在哪是啥  预测top-5分类+每个类别的bounding box(50%以上的覆盖率认为是正确的)

检测:在哪都有啥

定位是介于分类和检测的中间任务,分类和定位使用相同的数据集,检测的数据集有额外的数据集(物体比较小)。

4、Classification

4.1模型的设计与训练

每个图像被降采样成短边为256个像素,抽取5个大小为221*221的crops,并且进行水平翻转,mini-batches size:128。权重随机初始化:均值0,方差0.01.随着SGD更新,momentum:0.6,l2权重衰减:0.00001.学习率初始为0.05,在(30,50,60,70,80)后通过因子0.5衰减。dropout ratio 0.5应用到最后的全连接层(6th,7th)。

两个模型fast和accurate:

fast结构

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第1张图片

1 , 不使用LRN;

2,不使用over-pooling使用普通pooling;

3,第3,4,5卷基层特征数变大,从Alex-net的384→384→256;变为512→1024→1024.

4,fc-6层神经元个数减少,从4096变为3072

5,卷积的方式从valid卷积变为维度不变的卷积方式,所以输入变为231*231

accurate结构

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第2张图片

1,不使用LRN;

2,不使用over-pooling使用普通pooling,更大的pooling间隔S=2或3

3,第一个卷基层的间隔从4变为2(accurate 模型),卷积大小从11*11变为7*7;第二个卷基层filter从5*5升为7*7

4,增加了一个第三层,是的卷积层变为6层;从Alex-net的384→384→256;变为512→512→1024→1024.

4.2、Feature Extractor
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第3张图片

Fast模型比accurate模型的参数还多,连接数比较符合逻辑思维,为什么参数会多呢?

按理说两张图大小有区别,accurate自然会小,这应该不是根本原因吧,我们知道的caffemodel的参数主要集中在全连接层,第7层的连接数fast模型少,特征图大,说明特征图6*6大于5*5是导致模型参数大的主要因素吧。

4.3、多尺寸分类

Alex-net中,使用multi-view的方式来投票分类测试;然而这种方式可能忽略图像的一些区域,在重叠的view区域会有重复计算;而且还只在单一的图片缩放比例上测试图片,这个单一比例可能不是反馈最优的置信区域。

作者在多个缩放比例,不同位置上,对整个图片密集地进行卷积计算;这种滑窗的方式对于一些模型可能由于计算复杂而被禁止,但是在卷积网络上进行滑窗计算不仅保留了滑窗的鲁棒性,而且还很高效。每一个卷积网络的都输出一个m*n-C维的空间向量,C是分类的类别数;不同的缩放比例对应不同的m和n。

       整个网络的子采样比例=2*3*2*3=36,即当应用网络计算时,输入图像的每个维度上,每36个像素才能产生一个输出。在图像上密集地应用卷积网络,对比10-views(图像做了crop,四个corner,加一个中间,总共变成了5个子图像,然后对图像进行翻转,这样就变成了10个图像)的测试分类方法,此时输出分布会降低准确率;因为物体和view可能没有很好的匹配分布(物体和view越好的匹配,网络输出的置信度越高)。这个36是什么呢?这个是针对accurate模型里面的,看下图的红色圈,

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第4张图片

红色标记的stride表示的就相当于对原图降采样,所以作者说的:“However, thetotal subsampling ratio in the network described above is 2x3x2x3, or 36.”那么对于221*221的图像来说,通过了前面的conv+pooling就瞬间变成了6*6了。现在可以开心的在这个feature map上做滑动了。可以看到layer7(第一个fc层)的输入是5*5的,也就是说用这个5*5的窗口去6*6的上面滑,就可以得到2*2的窗口了,每一个窗口对应一个位置,将这4个5*5的作为输入,分别输入fc,这样就可以得到4个C向量,C代表要分的1000个类。这样实现了一个粗糙的滑窗。

为什么不用直接输入图像就给出类别呢?那是因为像ImageNet这样的数据,主要的物体是在图像中央,并且大小是填充了图像相当大的部分的,所以就算是有一些variation,那也是CNN能handle的,但是如果在测试中物体只是一个很小尺寸,并且出现在图像的一个角落,那么这个variation对于训练数据来说是完全impossible的。所以直接CNN分类的效果会很差。除非训练数据覆盖了各种尺寸和位置,当然这是non-sense的。文章的亮点:在原图上滑窗是没有明确的特征,那么就在输出的feature map上滑,这样就有针对性。

作者觉得方法还是不好,采取在最后一个max-pooling层换成偏置pooling,偏置pooling也算是一种数据增益技术。

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第5张图片

上图是一维的情况,有3种池化组合方法,如果是2维图片的话,那么(△x,△y)就会有9种取值情况(3*3);如果我们在做图片分类的时候,在网络的某一个池化层加入了这种offset 池化方法,然后把这9种池化结果,分别送入后面的网络层,最后图片分类输出结果就可以得到9个预测结果(每个类别都可以得到9种概率值,然后我们对每个类别的9种概率,取其最大值,做为此类别的预测概率值)。由于论文中图(a)不在一页,就一行,没有截图,图(a)就是一系列操作以后得到的20*20的图,然后做3*3的pooling得到上面说的6*6的feature map,现在用三个offset来做三次pooling,(b)表达了这个思想。这样作者认为就将分辨率提高了3倍。那么横坐标这样有3个offset,纵坐标也是3个,这样一结合,就变成了9个,所以之前的6*6就变成了(6*6)*(3*3),在这一系列的窗口上再去做滑窗,就变成了 4*9=36个位置了。作者最后还做了一个scale上的变换,把图像放缩到6个尺度上,所以这个多尺度的滑窗思想就得到实现了。
结果:
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第6张图片

1,fast模型,比Alex-net结果提升了近1%。本文Alex-net模型结果为18.2%比他们自己测试的高2%左右

2,accurate模型单个模型提升了近4%,说明增大网络可以提高分类效果。

3,采用偏置max-pooling感觉提升效果很小,感觉是因为卷积特征激活值具有很高的聚集性,每个offset特征图很相似,max-pooling后也会很相似。

4,多个缩放比例测试分类对于结果提升比较重要,通过多个比例可以把相对较小的物体放大,以便于特征捕捉。

4.4、卷积网络和滑窗效率
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第7张图片
这个图什么意思呢?
例如训练阶段在小的view(如图,14*14)下,训练网络;测试阶段在多个较大的图片上测试,由于每个14*14的view区域产生一个分类预测分布,上图在16*16的图片上测试,有4个不同的14*14的view,所以最后产生一个4个分类预测分布;组成一个具有C个特征图的2*2分类结果图,然后按照1*1卷积方式计算全连接部分;这样整个系统类似可以看做一个完整的卷积系统。
5、Localization
基于训练的分类网络,用一个回归网络替换分类器网络;并在各种缩放比例和view下训练回归网络来预测boundingbox;然后融合预测的各个bounding box。
5.1、生成预测
同时在各个view和缩放比例下计算分类和回归网络,分类器对类别c的输出作为类别c在对应比例和view出现的置信分数;
5.2、回归训练
输入是第5层的pooled feature maps,有2个完全连接size 4096、1024 channels隐层,每个类的输出层不同。4个unit specify the coordinates for the bounding box edges。(输出层有4个单元,分别是预测bounding box的四个边的坐标)
前面的multi-scale能提升预测的性能。
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第8张图片
使用预测边界和真实边界之间的L2范数作为代价函数,来训练回归网络。最终的回归层是一个类别指定的层,有1000个不同的versions。训练回归网络在多个缩放比例下对于不同缩放比例融合非常重要。在一个比例上训练网络在原比例上表现很好,在其他比例上也会表现的很好;但是多个缩放比例训练让预测在多个比例上匹配更准确,而且还会指数级别的增加预测类别的置信度。
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第9张图片
上图展示了在单个比例上预测的在各个offset和sliding window下 pooling后,预测的多个bounding box;从图中可以看出本文通过回归预测bounding box的方法可以很好的定位出物体的位置,而且bounding box都趋向于收敛到一个固定的位置,而且还可以定位多个物体和同一个物体的不同姿势。但是感觉offset和sliding window方式,通过融合虽然增加了了准确度,但是感觉好复杂;而且很多的边框都很相似,感觉不需要这么多的预测值。就可以满足超过覆盖50%的测试要求。
5.3、联合预测

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第10张图片

a)在6个缩放比例上运行分类网络,在每个比例上选取top-k个类别,就是给每个图片进行类别标定Cs

b)在每个比例上运行预测boundingbox网络,产生每个类别对应的bounding box集合Bs

c)各个比例的Bs到放到一个大集合B

d)融合bounding box。具体过程应该是选取两个bounding box b1,b2;计算b1和b2的匹配分式,如果匹配分数大于一个阈值,就结束,如果小于阈值就在B中删除b1,b2,然后把b1和b2的融合放入B中,在进行循环计算。

match score是两个bounding boxes中心的距离和它们交叉面积之和。
box merge计算两bounding boxes的coordinates的平均值。
最后的预测是找maximum class scores的那个merged bounding boxes。

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第11张图片
第一行图片,不同的缩放比例上,预测结果不同,例如在原始图像上预测结果只有熊,在放大比例后(第三,第四个图),预测分类中不仅有熊,还有鲸鱼等其他物体
第二行图片,通过offset和sliding window的方式可以有更多的类别预测
第三行图片,在每个比例上预测bounding box,放大比例越大的图片,预测的bounding box越多
第四行图片,融合bouding box
在最终的分类中,鲸鱼预测和其他的物体消失不仅使因为更低的置信度,还有就是他们的bounding box集合Bs不像熊一样连续,具有一致性,从而没有持续的置信度积累。通过这种方式正确的物体持续增加置信度,而错误的物体识别由于缺少bounding box的一致性和置信度,最终消失。这种方法对于错误的物体具有鲁棒性(但是图片中确实有一些鱼,虽然不是鲸鱼;但是系统并没有识别出来;也可能是类别中有鲸鱼,但是没有此种鱼的类别)。
实验结果:
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第12张图片
本文多个multi-scale和multi-view的方式非常关键,multi-view降低了4%,multi-scale降低了6%。令人惊讶的是本文PCR的结果并没有SCR好,原因是PCR的有1000个模型,每个模型都是用自己类别的数据来进行训练,训练数据不足可能导致欠拟合。而SCR通过权值共享,得到了充分的训练。训练分类模型只是使用了单尺度,但后面训练定位模型时候用到了多尺度,个人认为是为了增加样本——因为训练1k个定位模型的话,每类的样本太少了。“测试时实现多视角多尺度”方法,其本质上就是滑动窗口——多视角≈滑动到不同的位置,多尺度≈大小不一的窗口。
6、Detection
检测和分类训练阶段相似,但是是以空间的方式进行;一张图片中的多个位置可能会同时训练。和定位不通过的是,图片内没有物体的时候,需要预测背景。
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第13张图片
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第14张图片
结果:
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks(阅读)_第15张图片
本文的方法在ILSVRC中获得了19%,在赛后改进到24.3%。
7、Discussion

overfeat ranks 4th on classification, 1st on localization and 1st on detection.
本文解释了ConvNets在localization and detection上高效的原因。
提出了一个结合分类、定位、检测的流程,它共享特征直接从像素点学习。它用multi-scale、sliding window方法。
overfeat可以在以下方向改进:

  1. localization时没有实时反馈到整个网络,反馈后效果会更好。
  2. 本文使用 l2 loss(衰退网络的参数),而不是直接优化intersection-over-union (IOU) 准则。
  3. 变换bounding box的参数帮助输出去相关,这有助于网络训练。
=========================================================================
感谢:
https://yufeigan.github.io/2014/11/23/OverFeat-Integrated-Recognition-Localization-and-Detection-using-Convolutional-Networks/
http://azraelzhu.w159.mc-test.com/index.php/overfeat/
http://blog.csdn.net/seavan811/article/details/49825891
https://www.zybuluo.com/coolwyj/note/203086
http://blog.csdn.net/whiteinblue/article/details/43374195

你可能感兴趣的:(论文阅读)