目录

  • 2.3 OverFeat
    • 2.3.1 任务与评估指标
    • 2.3.2 OverFeat 模型设计
    • 2.3.3 多尺度分类
    • 2.3.4、OverFeat 视图
      • 参考文献

2.3 OverFeat

OverFeat 是 ILSVRC2013 中目标定位任务的冠军,它提出了一种集成式框架,将图像分类、目标定位以及目标检测三种任务的学习过程集成到同一个 CNN 模型下。其核心原理是利用多尺度选择以及滑动窗口方式进行目标扫描并通过 CNN 进行预测,另外在目标定位与检测任务中,边界框的预测值是通过累积方式而非传统的非极大抑制方式来增加检测置信度的,事实证明,该方式在当时的年代具有非常强的竞争力。本节内容将详细介绍 OverFeat 特征提取器。

OverFeat 与另一传奇模型 R-CNN 处于同一时期,R-CNN 的改进版本远超 OverFeat,在当时代表最先进的基于 CNN 网络架构的目标检测算法,且在后期逐步改进提出了 Fast R-CNN、Faster R-CNN 等家族式模型发展,OverFeat 实际上也早已退出了历史的舞台,但是其中的很多核心思想仍然值得我们去学习,去思考。

2.3.1 任务与评估指标

OverFeat 将图像分类、目标定位以及目标检测三个 CV 任务集成在一个框架下,三种任务分别有各自不同的评价指标:

  • 图像分类任务:给定一张图片,预测 5 种图片中包含的主体对象类别,若 5 种中存在争取类别标签则认为识别正确,否则识别错误

  • 目标定位任务:给定一张图片,除了上述的图像分类任务外,还需要预测该对象的区域位置,并用矩形框进行框定,且要求给定的边界框至少与真实边界框有 50% 的重叠度。

    每个边界框区域可以认为是一些像素的集合,例如,假设预测边界框的像素集合为 AAA,真实边界框的像素集合为 BBB,则要求 IoU=A⋂BA⋃B>50%IoU = \frac{A \bigcap B}{A\bigcup B} >50\%IoU=A⋃BA⋂B​>50%

  • 目标检测任务:目标定位的任务主要是对主体目标进行位置检测,而目标定位任务则可能对图片中包含的所有对象进行位置定位,若无主体对象,则需要对背景图进行检测。其主要评价指标是 mAP(mean average precision).

可以看到,三种不同任务之间的难度逐步提升,且每一个任务均是后续任务的基础。

2.3.2 OverFeat 模型设计

OverFeat 使用的卷积框架主要借鉴自 AlexNet 网络架构,并基于此给出“快速”和“高精度”两个版本的架构,如下所示:
【图 1 快速计算版本,24×2424\times2424×24 改为 28×2828\times 2828×28】
【图 2 高精度版本】

与 AlexNet 网络相比,其主要却别在于:

  • 没有明显的正则化层被使用,不再使用 LRN
  • 采用非重叠的最大池化层
  • 高精度版本中,在第一、二层中采用更小的卷积步,可以得到更大的特征层。

两种不同版本模型之间的参数、计算量差异以及它们在图像分类任务上的性能如图 3 和 图 4 所示,尽管高精度版本的精度高,然而计算量却几乎是快速版本的两倍:
【图 3】 【图 4】

其中 overFeat−1overFeat-1overFeat−1 表示只使用单一的网络架构,overFeat−7overFeat-7overFeat−7 表示 7 种不同架构的组合平均值。Fine/coarse 表明在分类中池化操作的位移量,$Fine = 0, 1, 2; coarse = 0 $. 不同尺度的相关配置如图 5 所示:
【图 5】

2.3.3 多尺度分类

以 AlexNet 为例,其预测方法为在输入图像的四个角落以及中心位置裁剪 5 个区域并采用水平镜像翻转作为 10 个不同输入进行预测,并在结果上求平均值。然而这种裁剪方式可能会忽略掉图像中的许多区域,各个裁剪片段中也存在重叠区域,造成计算冗余。且该方法尺度单一,对于分类问题也许有效但对于定位或目标检测任务却很差。

利用滑动窗口对图像的每个位置的各个尺度下进行计算听起来有些疯狂甚至不切实际,然而对于 CNN 来说,卷积的过程本质上便可以理解为滑动窗口的扫描过程,但是对于一个 CNN 网络的架构,其输入层的接收尺寸是固定的,为了解决这个问题,我们保持网络输入不变,而将图像进行不同尺寸的缩放,如图 5 所示,整个卷积网络的目的是将图像的任意大小区域在每个尺度上映射到一个 CCC(CCC 为分类标签数)维的输出空间上。

然而上述高度版网络架构上,存在两层步伐为 2 的卷积层以及两层间隔为 3 的池化层,整个特征提取器部分的下采样率为 2×2×3×3=362\times2\times3\times3=362×2×3×3=36。相当于在每一个维度上每个 36 个像素点产生一个分类向量。为了更加细粒度化,在第 5 层的池化操作中,我们采用偏移池化进行子采样。具体地,例如在第 5 层池化层的输入特征图大小为 20×20×channel20\times 20\times channel20×20×channel ,我们只考虑其中一个维度,利用三种不同的偏移量(Δ=0,1,2\Delta = 0,1,2Δ=0,1,2)进行间距为 3 的池化,则池化后的维度为 6。如果考虑 2 维,则可以产生 9 种不同的组合。分类层(6、7、8 三层)则是将一个大小为 555 (如果考虑二维则是 5×55\times55×5)的输入空间映射为一个 CCC 维的输出值。因此上述经过 3 种不同偏移池化得到的 3×6×channel3\times 6\times channel3×6×channel 特征图经过分类层处理得到 3×2×C3\times 2\times C3×2×C 的输出,即 6×C6\times C6×C 的输出。整个过程如下图所示,图中 channel=256channel=256channel=256:
【图 6】

考虑到每张图片做镜像处理,在 6 个不同的尺度上进行计算,则实际产生 12 组不同的特征向量组,分别代表不同镜像下的不同尺度获取的输出空间向量。则最终的计算结果为:首先在这 12 组中分别找出各类别所对应的最大特征值,例如对于第一种尺度我们最终得到 3×3×C3\times 3 \times C3×3×C 的特征向量,每一个类别实际有 9 种不同的概率值数字,我们取 9 个数字中的最大值作为该类别在该镜像尺度下的特征值,则 12 组中最终得到一个 12×C12\times C12×C 维的特征向量;其次,对每一个类别在这 12 种不同的镜像尺度组合下求平均值;最终根据 Top-1 或 Top-5 指标进行选择输出。

不过最终实验证明,这种策略对结果的提升影响并不大,而不同尺度上的处理以及模型融合对结果影响较大。另外网络在最后取消了传统 CNN 网络架构的全连接层,而是全部采用卷积层代替,即全卷积网络架构,它的主要优势在于保证了图像的空间结构,这对于目标检测以及语义分割等空间任务是非常重要的。

2.3.4、OverFeat 视图

OverFeat 在定位任务是在分类任务的基础上保持模型的特征提取层(15层)不边,将原有的分类层(68层)替换为全连接层,最后一层的输出维度为 4,分别表示边界框的 4 条边界信息,即将分类任务的分类任务替换为回归任务,另外分类任务在 softmax 下的输出值可以作为边界框的置信度使用。

具体的定位逻辑为:

  • 在不同的尺度上分别利用分类模型选择最高的 Top-K 种分类结果
  • 对于每种选定的分类结果在不同尺度的所有空间位置上进行边界框预测
  • 然后对边界框进行融合,同时考虑边界框的置信度,选择具有最高置信度的融合边界框作为最终定位结果。

整个架构的整体视图如下:
【图 7】

TODO: 作者在论文中并未给出该过程的详细过程,一些实现上的细节依赖于源码的解读,OverFeat 本质上是一个特征提取器,并非完整的分类或定位任务框架,加之年代久远,算法性能与目前先进模型相比较差,因此该部分相关内容我们暂不再详细介绍。

参考文献

1、 Sermanet, Pierre, David Eigen, Xiang Zhang, Michaël Mathieu, Rob Fergus, and Yann LeCun. “OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks” arXiv preprint arXiv:1312.6229 (2013).

2、CS231n tutorial slides

2.3 OverFeat相关推荐

  1. OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks

    ICLR2014 OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks I ...

  2. OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

    可以参考博文:http://blog.sciencenet.cn/blog-1583812-844178.html (大概了解一下,没仔细看) 文章发表在ICLR2014,yan Lecun实验室.提 ...

  3. CNN应用之基于Overfeat的物体检测-2014 ICLR-未完待续

    转载自:深度学习(二十)CNN应用之基于Overfeat的物体检测-2014 ICLR-未完待续 - hjimce的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/ ...

  4. 深度学习(二十)基于Overfeat的物体检测-2014 ICLR-未完待续

    基于Overfeat的物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187881 作者:hjimce 一.相关理论 本篇博文主要讲解经 ...

  5. 深度学习(二十)基于Overfeat的图片分类、定位、检测

    基于Overfeat的图片分类.定位.检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187881 作者:hjimce 一.相关理论 本篇博 ...

  6. OverFeat——全卷积首次用于检测问题 (目标检测)(深度学习)(ICLR 2014)

    论文名称:< OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks & ...

  7. 《OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks》翻译

    O v e r F e a t : I n t e g r a t e d R e c o g n i t i o n , L o c a l i z a t i o n a n d D e t e ...

  8. 【没有哪个港口是永远的停留~ 论文解读】OverFeat

    原文:Integrated Recognition, Localization and Detection using Convolutional Networks 利用卷积网络进行集成识别.定位和检 ...

  9. 这就是神经网络 1:早期分类网络之LeNet-5、AlexNet、ZFNet、OverFeat、VGG

    概述 本系列文章计划介绍总结经典的神经网络结构,先介绍分类网络,后续会包括通用物体检测.语义分割,然后扩展到一些相对较细的领域如人脸检测.行人检测.行人重识别.姿态估计.文本检测等. 一些经典网络的年 ...

  10. 目标检测:从overfeat到Fast R-CNN

    以下内容摘自斯坦福cs231n目标检测课程: 计算机视觉任务: ImageNet 分类和定位任务: Idea #1:定位问题视为回归问题 实现步骤: 1. 训练(或下载)一个分类模型(AlexNet, ...

最新文章

  1. 消息队列-----生成者 Spring整合rabbitmq
  2. Ceph 客户端的 RPM 包升级问题
  3. 【错误记录】Android Studio 编译报错 ( Could not find com.android.tools.build:gradle:4.2.1. )
  4. 牛客 - 树上博弈(思维)
  5. java计算两个文本框的值,java 文本框自动获取另外两个文本框的值的乘积
  6. 装饰器设计模式的应用
  7. java cas原理_Java并发之原子变量及CAS算法-上篇
  8. JBoss5开发web service常见问题
  9. 华东理工计算机与金融专业,2019年华东理工大学各专业录取分数线
  10. pandas系列 read_csv 与 to_csv 方法各参数详解(全,中文版)
  11. LeetCode(637)——二叉树的层平均值(JavaScript)
  12. 员工的12个需求及实现
  13. 国联安 德盛 新基金 申购免手续费 产品好 利润高
  14. 【IT基础】如何休息(每天都很累,但你真的会正确的休息方式么)
  15. 【论文学习】《One-shot Voice Conversion by Separating Speaker and Content Representations with IN》
  16. JAVA PDF 转 PNG
  17. java按钮添加图片_java 如何插入含有图片的按钮
  18. MP4/MPEG4/3GP转换软件至尊---《MP4/RM转换专家》小记
  19. 万字夜里爆肝,熬夜倾情奉献 Hive最最基础应用
  20. 编写 react-redux 库,封装 react-reduc.js 的心里路程(原理及详解)

热门文章

  1. 电路串联和并联图解_迷惑我们很久的串联/并联谐振电路(多图、详解)
  2. python共享单车数据分析_共享单车数据分析 -- python
  3. cad如何多选对象_cad如何多选?在CAD里为什么只能选中一个对象,而不能累加选择多个对象?...
  4. 致远互联的下一步:从“协同”到“门户”
  5. libtorrent java_关于libtorrent库的安装
  6. 线性表的链式存储结构(完整代码(C语言)+运行实例)
  7. 重心法求中心matlab,两个中转站选址问题(重心法,metlab,spss)程序.ppt
  8. 堆积柱形图显示总数_excel堆积柱形图如何显示总数
  9. 软考-嵌入式系统设计师-笔记:嵌入式系统软件基础知识
  10. php中字符串分割函数是,php分割字符串的函数是什么