精华内容
下载资源
问答
  • Overfeat论文笔记

    2020-01-14 16:58:32
    个人博客:http://www.chenjianqu.com/ 原文链接:... 论文OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks》. Pierre Sermanet,etc. ...

    个人博客:http://www.chenjianqu.com/

    原文链接:http://www.chenjianqu.com/show-67.html

     

    论文《OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks》. Pierre Sermanet,etc. 

     

    素质三连

    1.论文贡献

    第一次解释了CNN如何用于定位和检测。

    提出了一个用于图像分类、定位和检测的集成框架。

    提出了特征抽取器:Overfeat。

    2.实验结果

    获得ILSVRC 2013的定位和检测任务的第一名。

    3.待解决的问题

    精度不高。

     

    背景

        计算机视觉任务:图像分类目标定位目标检测。在ILSVRC2013比赛的分类任务中,模型对每张图片给出最可能的5个预测,这样做的原因是每张图片中可能包含多种类别的物体。定位也一样,每张图片模型给出5个预测,每个预测就是bounding box。当返回的bounding box和ground truth的IoU(Intersection over union)大于0.5而且预测的分类正确时才算预测正确。检测不同于定位,图片中可以包含任意个物体,误检会降低mAP(mean average precision)的分数。

    定位和检测例子如下:

    2.png

        对许多任务来说,卷积神经网络的优点是整个系统是端对端的,缺点是需要大量数据集。这篇论文的主要提出了一个可以同时分类、定位和检测的卷积神经网络模型,这个网络提升了分类、定位和检测的精度。这个模型前面几层是卷积层,这里用作特征抽取器,命名为Overfeat,但有时候也称整个模型为Overfeat。

        本文通过累计预测边界框(accumulating predicted bounding boxes)来进行定位和检测,还展示了通过联合多个预测的定位,可以在无需对背景图片训练的情况下直接进行输出目标的bounding box,没有对背景进行训练可以让网络只专注于positive classes从而提高精度。

        从目标检测的任务上说,ImageNet数据集上里要检测的对象的大小和位置都有很大的不同,要解决这个问题有几个方法:

        1.是在图像的多个位置、以滑动窗口(sliding window)的方式,在多个尺度(multiple scales)上应用卷积神经网络。单纯的滑动的窗口可能包含对象的一部分,这样对于分类是可以的,但是用于定位和检测效果很差。

        2.是模型对每个滑动窗口不仅输出类别,同时输出定位目标的bounding box。

        3.是对每个位置和尺寸累积一个evidence。

        其实在AlexNet中,Krizhevsky说过他们用CNN做了图像定位的工作,但没有详细说怎么实现的。因此本篇论文是第一篇详细解释了CNN怎么用于图像定位和检测。

     

    分类模型

        Overfeat是基于AlexNet 的,因此很多地方,包括网络结构、包括训练方法和AlexNet论文里提到的方法类似的。模型在ImageNet 2012上训练,训练配置如下:

    输入数据集的处理同AlexNet:先将图片各向等比缩放至短边为256,然后在该图片和该图片的水平翻转上随机裁剪出5张221x221的输入图片(但是下一节的这个就不是这么说的)。

    mini-batchs=128。

    网络权重使用高斯分布的随机初始化:均值为0,标准差为0.01。

    使用SGD更新权重,动量系数为0.6,L2正则化权重系数为1e-5。

    学习率初始值为0.05,到一定的epochs(30,50,60,70,80)学习率x0.5。

    对FC层使用0.5的dropout。

    overfeat有fast和accuracy两种架构,下面是fast详细情况:

    3.png

    下面是accuracy的细节:

    5.png

    两个模型参数和连接数的对比:

    6.png

    性能对比:

    7.png

        从上面可以看到,accuracy模型比fast模型更加精确,但是连接数更多,因此比较慢。

        从上面可以看到训练阶段6-8层是全连接层,测试阶段将全连接层作为1x1卷积层使用,此时该1x1卷积的特征图大小取决于输入图片大小,这其实就是FCN的思想,但是此时FCN还没有提出来。

        1-5层和AlexNet一样,包括使用ReLU和Maxpooling。但也有一些不同的地方,比如:1.训练数据未使用对比度归一化;2.池化区域不重叠;3.因为使用了更小的stride,所以1、2层的特征图比AlexNet更大;4.取消了LRN。

        下面是模型第一层、第二层卷积核的可视化:

    4.png

     

    Multi-scale和offset pooling

        这节内容是本篇论文的核心。

        在AlexNet中,multi-view voting用来提高测试性能:输入一张256x256的照片,图片的四个角和中间可以裁剪得到5张224x224的输入,将原图水平翻转再得5张,将这10张图片输入到模型中进行预测,然后取各预测值的均值。但是这种方法会忽略掉图片的很多区域,大量的重复计算。只使用单一尺度,但这个尺度不一定能让模型给出最高置信度。

        本论文使用offset pooling和multi-scale结合的方法,通过在每个位置和多个尺度上密集地运行网络来探索整个图像,而且对CNN来说这样方法很高效,在保持高计算效率的情况下产生了更多的voting views,从而增加模型的鲁棒性。

        整个网络总的下采样倍数是2x3x2x3=36,即每输入36个像素得到一个分类向量。AlexNet的10-view voting方案的粗糙的输出分布(coarse distribution of outputs)降低了性能,因为输入窗口与图像中的目标没有很好地对齐。为了避免这个问题,这里采用了和论文<Fast image scanning with deep max-pooling convolutional neural networks>相同的方法,即采用offset pool。这样就消除了分辨率的损失,得到的下采样倍数是12而不是36。为什么是12?因为使用三个offset:0 1 2,由于卷积核大小为3,因此也只能使用这3个offset。

        下面解释一下如何执行multi-scale和offset-pooling。使用6种输入尺度,加上图片水平翻转的6个尺度,一共12个尺度。不同尺度的输入第5层卷积就得到不同的分辨率特征图,各个尺度输入下各张量的大小:

    8.png

        这就是多尺度multi-scale。下面介绍offset,第五层卷机后的特征图池化后送入分类器,下图是以Scale 2为例,用特征图的一维作为示例图,展示池化和分类器工作过程: 

    9.png

    步骤如下:

    A.对于某个尺度的某张图片,经过前五层的卷积后得到特征图。上图中特征图的分辨率是20x23,256个通道。

    B.对于该特征图,重复多次使用非重叠的池化,每次池化的偏置不同,有行偏置和列偏置。上图中偏置池化3次,偏置分别为为(0,1,2)。这就是offset pooling,也被称为fine stride。offset pooling得到的特征图的维度为6x7x3x3xD,其中6x7是特征图的分辨率,3x3是偏置池化的次数,D是通道数。上图中是以1维显示的。

    C.池化后得到的特征图将被送入分类器。

    D.分类器的输入是的5x5xD,输出是C(类别数)维向量。但是offset pooling后得到的特征图并不是5x5xD,比如上图中的特征图大小为6x7xD,因此分类器以滑动窗口的方式应用在特征图上,每个滑动窗口经过分类器输出一个C维向量。比如上图中输入的6x7xD的特征图最终得到2x3xC的输出,其中2x3是滑动窗口的个数。

    E.而2x3xC只是一组偏置池化的输出,总的输出为2x3x3x3xC,将输出的张量reshape,得到6x9xC输出张量。最终输出分类张量为3d张量,即两个分辨率维度 x C维。

        上面这些操作可以看做分类器通过pooling layers移动viewing window 1个像素,而不需要下采样;和在下一层中使用skip-kernels  [原文:These operations can be viewed as shifting the classifier’s viewing window by 1 pixel through pooling layers without subsampling and using skip-kernels in the following layer (where values in the neighborhood are non-adjacent)]。或者说,在每个可能的偏移处使用池化层和分类器,并通过交叉输出来组装结果。

        接下来产生最终的分类结果:

    1)对每个尺度的输入得到每个位置的分类结果,对每个分类取该尺度各个滑动窗口的空间最大值。

    2)求出所有尺度的每个类的均值。

    3)取这些均值的top-5或top-1分类。

        这就是整个分类过程的工作原理。直观的说,整个网络由两部分组成:(1-5)是特征抽取层,(6-output)是分类器。在分类器中,我们希望在不同的位置和尺度的第五层特征映射中寻找固定大小的表示。第五层穷举池化的方式可以获得分类器和目标表示之间的对齐。

     

    结果

    10.png

        从上图可以看到,使用的尺度种类越多,测试误差越小,使用fine stride比使用10个裁剪输入效果要更好。

        在ILSVRC13的结果:

    11.png

        Overfeat获得了分类任务的第四名。

     

    卷积神经网络和滑动窗口

        与很多滑动窗口的方法相反,用卷积网络计算滑动窗口天然的高效,重叠的区域可以共享计算结果。

    12.png

        图中的上半部分表示训练时输入的是固定大小的图片,最后经过分类器得到输出。而下半部分表示测试时,输入的图片大小不固定,因此将模型的全连接层转换为为1x1卷积卷积层,这样输入不同大小的图片最终得到不同大小的输出特征图,这也是FCN的思想。上图中下半部分图片增大,但卷积层的计算量因为图片增大的部分而部分增加,不会像FC层那样使用滑动窗口导致计算量成倍增加。

        

     

    定位模型

        图像的定位任务一般要求先对图片进行分类,再定位到目标。前面已经实现了分类功能,因此定位模型只是在分类模型的bottle neck加入一个bounding box回归器就好了。

     

    回归器的训练

        回归器网络以offset pooling后的特征图作为输入,有两个全连接层,神经元数量为4096和1024,有四个输出,代表bounding box的边界。回归过程如下:

    13.png

        训练回归器的时候固定1-5层特征抽取器的参数,回归器使用平方误差作为损失函数。上图中回归器的输入是offset pooling后的特征图,维度是6x7x256x3x3,其中6x7是池化后特征图的分辨率,256是特征图的通道,3x3是由offset pool偏置次数。回归器的输出:每个类、每个滑动窗口都有一个bounding box的输出,输出维度为2x3x3x3xCx4,比分类器的输多多一维:4,代表bounding box的四个边界。

        当滑动窗口和gound truth的 bounding box的重合度小于50%时,将不会对回归器进行训练,因为目标主要在当前滑动窗口的外面,用其它包含这个目标的滑动窗口进行预测比较好一点。

        使用多尺度训练回归器对跨尺度联合预测具有重要意义。在单一尺度上进行训练,模型能够在那个尺度上预测的很好。然而,训练多尺度将使预测在不同尺度上正确匹配,并成倍地增加合并预测的置信度。反过来,我们应该只使用少量的尺度来进行检测。

     

    目标定位过程

        前面已经说过了,使用分类器和回归器最终得到一堆候选的bounding box和该bounding box对应的置信度,举例如下:

       

     那么如何确定最终的bounding box呢,算法如下:15.png

    16.png

    人话:

    A.对每个scale,取每个所有位置中置信度最高的k个类,设为Cs,s=(1-6),表示尺度。

    B.对于Cs中的每个类,在这个scale中的所有位置,使用回归器预测其bounding box,设为Bs。

    C.将多个尺度的Bs合并为B。

    D.重复上述步骤直到融合完成。

    E.取B中match_socre最小的两个bounding box,称为b1和b2

    F.如果b1和b2的match_score大于t,说明此时bounding box选取完成,算法结束。

    G.否则,将B中的b1和b2去掉,加入box_merge(b1,b2),回到E

        在上面的算法中,计算match_score使用两个bounding box中心之间的距离加上它们之间交集。box_merge计算bounding box边界的均值。

        整个算法的意思是不停的筛选,直到留下合适的bounding box。最终的预测通过获取合并的bounding box和最大的类置信度给出的,这是通过将检测类输出与预测每个边界框的输入窗口相关联来累积计算的。

        定位过程示例:

    17.png

        上图的第一行图片是分类器/回归器输出的分类和每个位置的置信度。第二行是使用off-set pooling之后,每个位置和该位置的分类置信度。第三行是回归器预测对每个滑动窗口预测的位置。第四行是这些bounding box融合并累积到最小数量。

        在上面这个例子中,一些海龟和鲸鱼的bounding box出现在中间的多尺度步骤中,但是在最终的检测图像中消失了。因为这些bounding box的分类置信度很低(最多分别为0.11和0.12),而且它们的集合不像熊的bounding box那样连贯,从而无法获得显著的置信度提升。熊的bounding box有很强的置信度(每个scale大约0.5)和高匹配分数。因此,在合并后,许多熊bounding box被融合成一个非常高置信度的bounding box,而false postive由于缺乏bounding box的一致性和置信度而消失在检测阈值以下。这一分析表明,我们的方法通过奖励bounding box的一致性,自然地比传统的非最大抑制方法更能抵抗来自纯粹分类模型的false positive。

     

    目标定位实验

    在ImageNet2012上面跑的结果如下:

    18.png

    参加ILSVRC13的比赛结果:

    19.png

     

     

    目标检测

    略(跟定位差不多)

     

     

    结论

        这篇论文展示了multi-scale,滑动窗口的方法可以用来做分类、定位和检测。将模型用在ILSVRC2013比赛中,获得了分类第四名、定位第一名、检测第一名的成绩。本文的重要贡献在于卷积神经网络如何用于定位和检测。可以提高的地方:

    For localization, we are not currently back-propping through the whole network; doing so is likely to improve performance. 

    We are using L2 loss, rather than directly optimizing the intersection-over-union (IOU) criterion on which performance is measured. Swapping the loss to this should be possible since IOU is still differentiable, provided there is some overlap. 

    Alternate parameterizations of the bounding box may help to decorrelate the outputs, which will aid network training.

     

     

    参考文献

    [1] Pierre Sermanet,etc.OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks.

     

    展开全文
  • overfeat论文解读

    2019-12-11 11:13:26
  • OverFeat论文解析

    2020-07-18 16:16:29
    文章目录一、介绍二、拟解决的问题1....本篇博客将要解析的论文OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks,论文地址为:https://arxiv.org/abs/1312.6229 一、


    本篇博客将要解析的论文是 OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks,论文地址为: https://arxiv.org/abs/1312.6229

    一、介绍

    本文是Pierre Sermanet、David Eigen、Xiang Zhang、Michael Mathieu、Rob Fergus、Yann LeCun等人于2013年发表的一篇文章,该论文提出的模型最终获得了2013年ILSVRC(ImageNet Large Scale Visual Recognition Challenge)分类任务的第四名,以及定位和检测任务的第一名。
    该论文基于ConvNets,高效地实现了多尺度滑窗方式,采用多任务学习的方式,同时提升了分类、定位和检测子任务的性能。

    二、拟解决的问题

    1. 特征提取

    在深度学习出现之前,分类、定位以及检测任务的特征都需要手工进行提取,难度以及扩展性都不佳;即使专业人员进行了十分精细地分析获取了相关特征,最终的任务完成效果也不是很好。主要原因就是在于待检测的目标在尺度位置等方面变化较大,难以提取一种具有高度识别力的特征,因此,本文希望提出一种特征提取的方式,能够适用于分类、定位以及检测任务,并且能够比较好的解决上述问题,由此,诞生了OverFeat。
    OverFeat是一种特征提取器,类似于传统图像处理中的SIFT算子、HOG算子一样,并不是指某个网络。

    2. 视觉任务

    本文希望采用多任务学习的方式,去综合提高各个子任务的性能。
    下面明确一下本文需要完成的三个子任务:分类、定位以及检测任务是什么。

    1. 分类任务:根据图片中的主要目标为该图片分配唯一标签。由于一张图片可能包含多种潜在的但未被标注的目标,因此,每张图片允许进行五次猜测,也就是所谓的Top-5 Error。
    2. 定位任务:与分类任务一样,一张图片只有一个对应类别标签,因此同样可以有五次猜测的机会,但不同的是,每次猜测时还需要将目标的位置用bounding box的形式标注并返回,如果猜测的box与真实的box的IOU至少大于50%并且对应类别也正确,则定位成功。
    3. 检测任务:与定位任务不同的地方是每张图片可能包含若干甚至是不包含目标,false positive会通过MAP指标进行惩罚。

    三、解决方法

    为了解决目标在尺度位置等方面变化较大的问题,本文采取了一种基于ConvNet的高效多尺度滑窗方法。具体步骤如下:

    1. 采用多尺寸、多位置滑窗的方式去进行检测
    • 首先每张图片通过resize操作获取多个尺度的图片(本文采用的是六个尺度,具体可参加原论文Appendix)

    • 然后对于各个尺度的图片的各个位置,获取一个固定大小的窗口,这个窗口具体由特征提取器的stride决定(在本文中,由于使用了offset max-pooling,特征提取器的stride为12,因此,可以认为滑窗的大小为12*12)

      滑窗存在的一个问题就是可能难以完整包含目标,有利于分类,但不利于定位和检测,因此,有了后续的步骤2和3。

    1. 对每个窗口,在进行分类的同时,还完成与该窗口相关的bounding box的位置和大小进行预测

      通过预测的bounding box,从而对每个位置的滑窗进行修正。

    2. 为每个类别在各个尺度和位置进行置信度的累积

      与传统的目标检测不同,在各个尺度、各个位置获得大量潜在bounding box后,本文采用的是一种“累积”而不是抑制(非极大值抑制)的方式去合并得到的大量box,提高了最终检测的置信度。

    为了利用各个子任务间的相关性,提高各个任务的性能,本文采用了一种多任务学习的方式。
    所有的各个子任务之间,共享特征

    1. 首先基于分类任务,采用滑窗的方式,在各个尺度图的各个位置上,预测对应滑窗中的目标的类别分数,并以此训练出一个特征提取器以及一个分类器。
    2. 接着进行定位任务。同样采用滑窗方式,在各个尺度图的各个位置上,预测对应滑窗中的目标的bounding box,此时再结合分类任务得到的同样尺度图同样位置滑窗对应的类别分数,即可完成定位任务。定位任务中使用的特征提取器和分类任务相同,但重新训练了一个回归器。
    3. 最后是检测任务。与定位任务类似,只不过在最终获取结果时有所不同,以及还需要考虑一个背景分类。

    四、分类任务

    本文主要是基于12年的ILSVRC的冠军分类模型AlexNet改进得到,本文对AlexNet的模型结构进行了修改,并改善了推理步骤。

    1. 模型设计

    模型主要基于AlexNet进行改进,具体改动为:

    1. 没有使用归一化层;
    2. 使用不重叠的池化(pooling stride>=kernel size)
    3. 前两层的feature map尺寸更大(由于采用了更小的stride,提升精度,降低速度)

    本文有两种模型结构——fast以及accurate,两者具体结构如下图所示:
    fast model

    图1 fast model

    accurate model
    图2 accurate model

    2. 推理步骤

    AlexNet在测试阶段使用了一个很常见的TTA(Test Time Augmentation)技巧——Multi View Voting。就是在测试时,对一张图片,获取其四个角以及中心区域的各个view,并加以水平翻转,最终得到10个view,送入训练好的网络进行推理,得到10个分类分数结果,取均值作为最终的分类分数,从而做出预测。
    这种方法存在一些问题,例如:容易忽略很多区域(由于view通常都小于原图),并且存在很多重复计算(由于各个view之间存在大量重叠)。并且AlexNet只使用了一个尺度,也不利于多尺度信息的获取。
    本文则采用了多尺度密集滑窗的方式去解决了上述问题。并且由于ConvNet天然的共享权值的特性,能够非常高效地完成密集滑窗预测。具体会在后文进行详细阐述。

    3. OffSet Max-Pooling

    根据文中的模型结构,对于fast(4 * 2 * 2 * 2)以及accurate(2 * 3 * 2 * 3)模型来说,由于stride conv以及pooling的存在,原图经过特征提取后得到的特征图的尺寸为原图的1/36,也就是说特征提取器OverFeat的stride为32,意味着对于提取到的特征图来说,每个位置对应着原图大概32*32的一个window,这个window较大,较为粗糙,不利于目标的识别。当然我们也可以通过减小conv的stride以及pooling层的个数来降低整体的stride的,但是这样会减小感受野,不利于分类的准确性。
    为了在不降低感受野的情况下,提升特征的尺寸,本文提出了OffSet Max-Pooling。
    这里推荐一篇博客,这篇博客比较清楚地讲解了OffSet Max-Pooling的基本原理,就不重复造轮子了。
    这里谈谈个人理解:OffSet Max-Pooling本质上是一个stride为1的Max Pooling
    Max-Pooling与Average-Pooling是目前深度学习领域最常见的两种Pooling方法,其大致具有两大作用:一是融合信息,二是降低分辨率。融合信息用的是很简单的max或者是sum,而降低分辨率这一操作则是由于其stride通常大于1的缘故,当Conv操作stride大于1时,其实也可以完成降低分辨率的操作。那么这样看来的话,OffSet Max-Pooling实际上是将Max-Pooling中的融合信息的功能保留了下来,而去除了其降低分辨率的功能。
    下图是文章中对OffSet Max-Pooling一个1D的阐述:
    OffSet Max-Pooling

    图3 OffSet Max-Pooling

    例如对于上图来说,假设现在进行的stride为1,kernel size为3的Max-Pooling操作,那么顺着这个20维的向量,我们将依次得到红1,绿1,蓝1,红2,绿2,蓝2,。。。,红6,绿6,蓝6这个18维的向量,此时我们将得到的这个18维向量进行调整,使得红色、绿色、蓝色各自按照顺序聚集在一起,然后将调整后的向量送入kernel size为5的分类器中进行分类,每个颜色的6维向量将产生两个输出,最后将这6个输出进行交织,即可得到OffSet Max-Pooling的结果。

    OffSetMaxPooling

    图4 OffSet Max-Pooling 与 stride为1的Max-Pooling间的关系

    总之,通过OffSet Max-Pooling可以将最终提取得到的特征图的stride降低为12,提高分类准确率。

    4. 卷积网络与滑窗法的关系

    卷积网络诞生之初定下的权值共享特点,为其在图像视觉领域大发异彩奠定了基础。这里Copy一张卷积神经网络的经典动图:

    亦菲表演机器猫
    图5 卷积操作
    可以看到卷积操作本身就是一种滑窗操作,而堆叠起来的多层卷积可以抽象看做是一个卷积,因此仍然可以看出其滑窗操作的本质。

    滑窗操作

    图6 卷积网络的高效滑窗实现操作

    上图的上半部分是本文的训练过程。输入图片经过全卷积的特征提取器之后,由14 * 14的图变为5 * 5的特征图,再在特征图上使用kernel size为5的分类器进行分类,最终得到一个1 * 1的输出,也就是最终的分类分数。
    而下半部分则是本文的测试过程。测试过程中,输入的图片比训练时的图片要大,例如变为16 * 16,此时左上角的14 * 14部分,通过卷积以及分类器能够得到一个1 * 1的分类结果,同样,右上角以及左下角、右下角的各个14 * 14的部分将会各自产生1 * 1的分类结果,最终产生一个2 * 2的分类结果,最终对四个结果取平均,即可得到最终分类分数。这个操作和Multi-View的操作很像,但是基于卷积神经网络,这种多视角的方法很容易可以得到实现。
    需要注意的一点是,为了实现上述操作,需要将classifier改为全卷积,主要是利用1 * 1卷积实现,这里给出一篇博客
    后续这个内容我会在Fully Convolution Network中详述。

    以上,便是OverFeat在分类任务中的主要内容。

    五、定位任务

    定位任务则是在分类任务的基础上进行了bounding box的回归。在分类任务中,我们已经为不同尺度图的各个位置均预测出了对应的分类分数,在定位任务中,我们将classifier替换为一个类似的regressor,输出为每个位置对应的bounding box的四个顶点的坐标。由此,我们便可以得到十分密集的bounding box,最后,采用一种贪婪算法对结果进行合并,挑选出合并结果中分类分数最高的box作为该图片的定位结果。
    定位及检测任务pipeline

    图7 定位及检测任务pipeline

    上图中总共分为四个部分。

    1. 第一部分为普通的分类器输出的类别分数以及对应的window。图中黄色的框,可以看到它们的大小全部一致,实际上它们是由feature map映射到原图中对应的window,大小应该与特征提取器的stride有关,大致为32 * 32。红色箭头指的红色框为对应尺度图片对应的feature map。此时采用了基本的多尺度滑窗方法
    2. 第二部分为使用了OffSet Max-Pooling后的结果。首先通过feature map可以看出,蓝色框对应的feature map比红色框对应的feature map大了很多,应该是三倍,因此,也产生了更为密集的Windows。由于特征提取器的stride下降为了12,此时,window的大小大致应该为12*12。
    3. 第三部分则加上了Regressor。文章指出,在训练过程中,仅仅使用了与真实标注框ground truth的IOU大于50%的window用于训练,因此可以看出,在第三部分中的框明显少于第二部分,并且形状也都由于训练而各自不同。
    4. 第四部分则是基于贪婪算法进行合并并挑选剩余box中分类分数最高的box作为最终结果。

    这里的贪婪算法较为简单,就不做详细阐述,整体思想大致就是:

    • 在多个尺度图上运行分类网络,每个尺度图的结果都选取最好的 k k k个window加入到集合 C s C_s Cs
    • 同时也运行框回归网络,得到所有的box(由于IOU的约束,此时所有的box数量也不会特别多,因此没有选取所谓的top-k个)
    • 挑选出两个最为相似的box进行合并,若这两个最相似的box的相似度(本文是采用两个box之间的距离进行描述,距离越大,相似度越低)都已经很低了,则停止算法,否则,则将两个box进行合并(合并采用的是两个box坐标的均值)

    至此,便可完成定位任务。

    六、检测任务

    这个部分论文没有详述,感觉有点模糊,个人感觉应该和定位任务差不多,只不过需要添加一个背景类别,同时,在完成box的合并后,不能简单挑选分类置信度最高的那一个box,可能需要其他策略,具体不详。

    七、总结

    OverFeat作为one-stage目标检测算法的元老级选手,其蕴含的滑窗思想、多任务学习思想对于后续的目标检测算法都有着深远的影响,虽然年代比较久远,开源代码也比较缺失,但其引用量也已有3000+,足见其影响力。
    这篇博客是本人的第一篇论文博客,可能写得不好甚至是有错误的地方,希望大家发现后可以在评论区指出,也希望自己的一些理解可以帮助大家对这篇论文了解得更清楚明白。最后附上一些个人阅读论文时参考的一些优质博客。

    八、参考文献

    [1] https://blog.csdn.net/hjimce/article/details/50187881
    [2] https://zhuanlan.zhihu.com/p/66154322

    展开全文
  • OverFeat论文笔记

    2020-12-09 22:03:41
    Classification2.1 使用AlexNet预训练模型2.2 Multi-scale classification(OverFeat 使用)2.3 FCN的思想2.4 Training & Testing3 Localization总结 1. Background OverFeat是一种特征提取器,具有以下创新之...


    1. Background

    OverFeat是一种特征提取器,具有以下创新之处:
    (1)Bounding Box位置框回归采用累积的方法而不是非极大值抑制以增大检测置信度
    (2)运用多尺度和滑动窗口的方法
    (3)特征提取层输出的特征可以供多个任务共享(分类,定位,检测)
    (4)输入图片大小不受限制
    文章中涵盖诸多细节,我们分别从分类和定位进行阐述。

    2. Classification

    2.1 使用AlexNet预训练模型

    因为“OverFeat”是基于AlexNet模型,所以我们先回顾AlexNet模型。
    在这里插入图片描述
    Training:
    每张训练图片下采样为256×256,随机裁剪出224×224大小的图片(+数据增强)作为输入进行训练。
    Testing:
    将图片下采样为256×256,随机裁剪大小为221×221像素的五个图像以及水平翻转图像(共十个)。
    10张图片预测值取均值。
    不足:
    (1)会忽略掉图片的很多区域,且有大量的重复计算
    (2)只使用单一尺度,但这个尺度不一定能让模型给出最高置信度

    2.2 Multi-scale classification(OverFeat 使用)

    在这里插入图片描述
    同一张图片使用6种输入尺度(可以加上图片水平翻转的6个尺度),不同尺度的输入在Conv5得到不同的分辨率特征图。

    offset max-pooling
    在这里插入图片描述
    对于pooling size=3的操作,我们有三种池化方式,起点分别在∆=0,∆=1,∆=2处
    二维池化操作,则有∆x×∆y=3×3(九种池化方式)
    将九种池化结果分别送入后续的网络层,最后的图片分类输出结果种每个类别有九种概率值,对每个类别的9种概率值取最大值,作为此类别的预测概率值。

    2.3 FCN的思想

    OverFeat模型中,layer15为特征提取层,layer6output为分类层。
    在这里插入图片描述
    传统的CNN模型:输入14×14的图片数据,进行5×5的conv和2×2的pooling操作后,得到5×5的特征图,展平为1维的向量数据输入全连接层(不可以输入任意尺寸的图片数据)
    FCN模型“卷积层—>全连接层”看作为对全局图像的卷积,“全连接层—>全连接层”看作为1×1的卷积核进行卷积操作。
    在这里插入图片描述
    FCN:若输入16×16的图片数据,网络最后输出为2×2的数据,与输入尺寸相关,对输出取均值即为结果
    (用卷积网络计算滑动窗口非常的高效,重叠的区域可以共享计算数据)
    对特征层直接进行sliding windows与Alexnet在网络之初对图像部分进行选取是一样的。

    2.4 Training & Testing

    Training:
    与Alexnet类似,每张训练图片下采样为256×256,随机裁剪出221×221大小的图片作为输入进行训练。
    Testing:
    a. 使用6种尺度输入,网络向前传导至layer 5,得到不同大小的特征图
    b. layer5-pre-pool 通过(3×3)offset进行池化,每一张特征图得到9副池化结果图
    c. layer5-post-pool采用(5×5)卷积操作,并在特征图内的每个位置产生C维输出向量(C为类别数目)分类器以滑动窗口sliding windows的方式应用于池化的特征图,产生C维输出图。
    d. 最终得到C×N维预测值矩阵,求取每一列的最大值作为本尺度的每个类别(C类)的概率值。
    e. 六种不同尺度预测结果做平均值作为最后的结果

    3 Localization

    将上述网络的分类层替换为回归网络层,在每个空间位置和尺度上进行训练。
    将回归预测和每个位置的分类结果结合在一起,模型最后输出class prediction + bounding box prediction
    在这里插入图片描述
    以281×317的图片输入为例,layer5 post-pool输出(6×7)×(3×3)的特征,经过Regression layer1-3输出2×3×3×3×C×4个(比分类多出一维:bounding box的四个坐标),损失函数采用L2 Loss function。
    只采用和ground truth重合度IoU大于50%的区域进行训练。
    (1)在六个尺度上运行分类网络,每个尺度选取top-k个类别。(选择置信度最高的)
    (2)在六个尺度上运行bounding box网络,产生每个类别对应的bounding box集合Bs。
    (3)将多个尺度的Bs融合为大集合B。
    (4)重复上述步骤直到融合完成。
    (5)取B中match_score最小的两个bounding box,成为b1和b2。(match_score是两个图片的距离)
    (6)如果b1和b2的match_score>t(阈值),说明bounding box选取完成,算法结束
    (7)否则,将B中的b1和b2去掉,加入box_merge(b1, b2),回到步骤5.(box_merge计算两个图片边界的均值)
    合并具有高置信度的边界框来得到最终预测,淘汰低置信度以及低连续的类别。

    总结

    本文中很重要的贡献是将FCN和offset-pooling相结合,在CNN特征提取和迁移学习上起到的显著效果。并在一个卷积网络框架中通过Multi-scale和sliding windows的方式同时进行多个任务。证明多视野训练和多尺度测试的有效性。不足是对标签信息的依赖比较大,且滑动窗口法的边界框预测可能不够准确。

    展开全文
  • OverFeat论文理解

    千次阅读 2017-12-12 16:36:05
    深度学习研究理解6:OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks 本文是纽约大学Yann LeCun团队中Pierre Sermanet ,David Eigen和张翔等在13年撰写的一篇论文...
  • OverFeat 论文 笔记

    2020-11-24 15:21:42
    OverFeat: 3、Classification 3.2 Feature Extractor ​ 网络有两个模型,一个偏向速度,一个偏向精度 3.3 multi-scale classification 什么是multi-view ? ​ multi-view voting用来提高测试性能:输入一张256x256...
  • OverFeat论文解读

    2019-08-29 15:06:06
    对于回归网络得到的一系列bounding box,该论文不是通过传统的非极大值抑制,而是使用了累积预测的方法。 首先对于每个scale计算出前k个类别,对每个类别计算出所有的bouding box。 然后合并所有scale的...
  • 解读Overfeat论文笔记

    2018-12-12 23:25:04
    Abstract Cnn model 一个模型3个任务:...模型名叫overfeat 关键工具:multi scale and sliding window Localization 预测bounding box 概率或精度提升,通过accumulation而非suppression 1、Introduction Paragr...
  • overfeat论文待续

    2017-06-02 21:58:46
    接下来讲分类任务:总体来讲分类任务使用的网络和alxnet相似,(这篇论文图表放置位置有点。。草率。。) 下表是fast版本的网络 下表是accurcy版本的网络 两个版本从层结构上来看相差不大,主要的区别在于...
  • 论文翻译: https://www.cnblogs.com/wj-1314/p/13331182.html
  • 经典论文OverFeat

    2021-08-11 13:24:18
    论文OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks ILSVR2013定位任务的冠军。用CNN集成了分类、定位、检测任务。 主要思想在于3、4、5章,分别叙述分类、定位、...
  • 论文笔记】OverFeat

    2016-04-19 11:33:12
    论文笔记】OverFeat原文见OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks: 新的网络结构:两种网络模型 多尺度应用 classification, localization, detection ...
  • 论文笔记:OverFeat

    2019-01-11 21:27:57
    因此,我们的论文是第一篇清楚解释如何使用 C o n v N e t s ConvNets C o n v N e t s 对 I m a g e N e t ImageNet I m a g e N e t 数据进行定位和检测的论文。 在本文中,我们使用术语定位和检测的方式与...
  • [转载]深度学习论文笔记:OverFeat 原文转自:http://blog.csdn.net/chenli2010/article/details/25204241  今天我们要谈论的文章为: OverFeat: Integrated Recognition, Localization and ...
  • Overfeat

    千次阅读 2017-09-21 16:51:25
    原文路径:https://github.com/edificewang/DeepLearningPaper/blob/master/OverFeat.pdf 我们提出了一个使用卷积网络进行分类,定位和检测的综合框架。我们展示了如何在ConvNet中有效地实现多尺度和滑动窗口方法。 ...
  • OverFeat

    2019-01-16 14:44:00
    转自:... 一、相关理论 本篇博文主要讲解来自2014年ICLR的经典图片分类、定位物体检测overfeat算法:《OverFeat:IntegratedRecognition,LocalizationandDetectionusingConvolutionalNetworks》,...
  • 目录写在前面本文重点模型设计图片分类步骤一:特征提取(1-5层)步骤二:物体分类(6层-output)物体定位步骤三:...overfeat与R-CNN的发布时间很相近,但是overfeat名气好像比较小,关键应该在于,R-CNN的创新点...
  • 一、相关理论本篇博文主要讲解来自2014年ICLR的经典图片分类、定位物体检测overfeat算法:《OverFeat:&nbsp;Integrated&nbsp;Recognition,&nbsp;Localization&nbsp;and&nbsp;Detection&...
  • OverFeat笔记

    2018-09-22 18:24:00
    论文OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks Abstract OverFeat可以解决计算机视觉领域的三大任务:分类、定位、检测。这三个任务的区别是: 图片分类:...
  • 2.3 OverFeat

    2019-09-18 21:16:42
    目录2.3 OverFeat2.3.1 任务与评估指标2.3.2 OverFeat 模型设计2.3.3 多尺度分类2.3.4、OverFeat 视图参考文献 2.3 OverFeat OverFeat 是 ILSVRC2013 中目标定位任务的冠军,它提出了一种集成式框架,将图像分类、...
  • OverFeat: 1)定义 一种多尺度、滑动窗口的方法,可用于分类、定位和检测 2)贡献: 1.证明了使用单一的共享网络可以同时学习不同的任务 2.提出了一种基于单卷积神经网络的目标检测、识别和定位的集成方法,可以...
  • 注意这篇文章和rcnn系列的思想不太一样...OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks. ICLR2014. 这是大牛Yann LeCun小组的文章。 openreview中有下载链接和讨论: ...
  • 趁热打铁,把OverFeat总结了。 一、简介 这个文章中提出了一种较为通用的结构,并将其应用在了识别(classification)、定位(localization,只有...这篇论文或许是很早一批将CNN利用到多种不同任务上的一种尝试,因...
  • OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks论文阅读笔记-2014 Abstract 我们提出了一个使用CNN用于分类、定位、检测的集成框架,展示了如何将多尺度以及滑窗方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,755
精华内容 702
关键字:

overfeat论文