【OverFeat Integrated Recognition,Localization and Detection using Convolutional Networks】

Pierre Sermanet, David Eigen, Xiang Zhang, Michael Mathieu, Rob Fergus and Yann LeCun, 2014

http://arxiv.org/abs/1312.6229

Abstract

利用卷积网络为分类、定位、检测提供了一个统一的框架。论文展示了在ConvNet中高效地实现多尺度(multiscale)滑动窗口方法,介绍了一种新的深度学习方法,通过学习预测对象边界来进行定位Bounding box最后被累积计算而非抑制,以提高检测的置信度。论文指出不同的任务可以用相同的网络来同时学习。该框架为ILSVRC2013定位任务的winner,而且在检测与分类任务也取得不错的成绩。

Introduction

分类任务:ConvNets解决该任务的优势是整个系统是端到端,直接从raw pixel得到最后的结果。因此大大减少了设计一个合理的特征提取器的人工工作。缺点是需要大量labeled的数据。

论文的关键点是训练一个卷积网络以同时完成分类、定位、检测,可以提高这几个任务的精度。论文提出通过累积计算预测得到的bounding box来完成定位与检测任务。因为把局部的预测结果结合起来,检测任务就不需要在背景样本上训练。这可以减少时间开销,以及复杂的前置训练流程。(检测任务要找到图中的所有物体,相应地也要知道什么是背景)。不用在背景数据集上训练也使得网络更关注正确的分类任务。

虽然ImageNet的分类数据集大多数是包含一个近乎位于中心且几乎充满整个图的对象,但有时我们感兴趣的对象在图中的位置和大小很不同。解决这个问题又几种思路:1.在图中不同的位置用不同的窗口大小做ConvNet训练;2.如果一个窗口包含了物体很明显可辨识的部位,而非整个对象,则会导致分类做得好,但定位和检测效果不好(比如,你只要看到一只狗的头就可以知道它是狗)。所以,对于每个窗口只产生各个类出现的比例分布,而不进行bounding box的位置和大小的预测;3. 对每个分类在每个位置和大小做置信度的叠加。

本文基于AlexNet,第一次提出如何利用ConvNets来完成图像的定位与检测。

Vision Tasks(ILSVRC2013)

分类classification:一个图片有一个label对应于图中主要的对象(可以有5个猜测,因为图中可能包含没有标签的对象)

定位 localization:同样可以有5个类别猜测,另外每个猜测需要返回一个对应的bounding box,而且与groundtruth的相交至少50%

检测detection:与localization不同之处在于它可以有任意数量的对象。false positives(训练得出的对象但实际不存在)将被惩罚(mAP mean average precision策略)

localization可以作为classification和detection的中间步骤。classification和localization使用相同的数据集,而detection会有另外的数据,其中的对象会比较小。

Classification

  • 模型设计

输入:和AlexNext一样training时使用固定输入,但分类时会变成multi-scale。对数据进行降采样,使得最小维度为256pixel。接着,随机5次裁剪得到(221x221)pixels作为输入

超参数

超参数 mini-batch weight初始化 梯度下降算法 学习率 dropout
取值 128 $(\miu, \sigma)=(0, 1x10-2)$ SGD(momentum: 0.2, l2权重衰减1x10-5)

5x10-2

在(30,50,60,70,80)epoch后,以0.5为系数减小

0.5

结构(accurate版本):后面的分析是基于accurate版本

1-5层与AlexNet相似,不同点:1.没有使用contrast normalization; 2. 池化区域没有相交;3. 1-2层因为有更小的stride(2而非4),所以特征map更大。更大的stride可以加快速度,但是会损害准确性

  • 特征提取

AlexNet通过multi-view voting的方法来提高性能:测试时,network从256x256中抽出5个224x224patch(就是四个角和中心的区域)以及水平翻转得到10个patch,将10个patch的softmax预测平均值作为结果。这种方式会忽略掉图像的很多区域,而且重叠部分会重复计算。另外,它只适合在单一scale(视窗的大小都一样)中运用。

Multi-scale:测试阶段对图片进行各种scale缩放,然后在图上各个位置密度执行网络。滑动窗口方法在ConvNets中有天生的高效率。它可以给出更多的窗口以供voting,帮助提高鲁棒性。

网路中下采样的比例为36(网络中各个stride的乘积2x3x1x2x1x1x1x3),所以密度执行网络,最后只能每个维度的每36个像素产生一个分类向量。

过程:

(a)对于一个图和一个给定的scale(决定网络的输入大小不同),从layer 5未池化的特征map开始

(b)对应offset={0,1,2},偏移($\Delta_{x}, \Delta_{y}$)可以有3x3种组合。每个组合对应一个未被池化的map,对每个map进行(pool size=3x3,stride=3x3)的最大池操作

(c)产生一系列的池化后的特征map,大小为(每个map池化后大小)x(3x3)

(d)分类器(6,7,8层)输入为固定的5x5,通过滑动窗口,对每个(5x5)输入产生C-dimensional分类向量

(e)不同的$(\Delta_{x},\Delta_{y})$组合可以reshape成一个3D输出图(two spatial dimensions x C classes)

以一维的数据为例:

(a)layer 5未池化的特征map为20个像素

(b)对应offset={0,1,2},可以从原来的map产生3个不同的数据集{0:, 1:, 2: }。对各个新的map做池化操作(pool size=3x3, stride=3x3),池化后得到池化的结果为6个像素

(c)和(b)一样

(d)分类器(6,7,8层)输入为固定的5(x5)。所以需要用滑动窗口(大小为5)的方式来应用分类器。每个窗口输入最后可以得到相应的分类结果(C个类的概率分布)

(e)不同的$(\Delta_{x},\Delta_{y})$结果可以reshape成一个3D输出图(offset个数 x 滑动窗口运用次数 x C classes)

上述操作相当于:在layer 5的未池化map的任意offset组合应用池化和全连接(任意连续的3个像素会被cover到,其实就是filter=3x3,stride=1x1的计算)

  • 获得最终分类结果

(1)对于各个输入(不同scale、翻转),得到每个类可能的概率的最大值

(2)计算概率平均值(被判断成为该类的概率)

(3)取概率为top-1或top-5的元素为分类结果

  • 卷积计算vs滑动窗口

计算的过程是一样的,但思想不同

卷积计算(特征提取):一次在整个图上执行完卷积操作

滑动窗口(分类):在不同的位置和scale下,以固定的窗口大小5x5作为分类器的输入,穷举(stride=1)计算各种可能的位置,也就是一个物体在图中各种可能的分布位置

Localization

  • generate 预测

对于已经训练好的分类网络,将分类层(6,7,8)替换成一个回归网络,通过训练它来预测物体的bounding box。在softmax输出中,对每个分类c也有一个相应的置信分数(分类为c的对象出现在相应视野中的概率,其实就是softmax的计算结果)

  • 回归网络训练

固定1-5层(分类训练后)结果(完成特征提取,通过后面的FC可以得到较好的分类结果)

(a)回归网络输入:layer 5池化后的特征map(特定scale情况下大小6x7)

(b)经过(回归网络)第一个FC(5x5x4096),回归后每个单元都与layer 5中5x5的一个区域关联。相当于用5x5的核(stride=1x1)在layer 5特征图计算

(c)经过(回归网络)第二个FC(1x1x1024),每个色块与(b)中一一对应

(d)回归网络第三层(4 channel)输出:每个类输出4个单元,(left, top, right, bottom)定义了box的左上、右下两个点

利用$l_2$ loss来训练回归网络

  • 通过贪心方式来combine各预测

    • 找出每个scale中最可能的top $k$个分类(记为$C_{s}$)
    • $B_{s}$={$C_{s}$中每个类对应的bounding box}
    • $B=U_{s}B_{s}$
    • 重复下列操作
    • 从B中找出使match_score(两个bounding box中心距离及box交叉面积的和)最小的(b1,b2)组合。$(b^{*}_{1},b^{*}_{2})=argmin_{b_{1} \neq b_{2} \in B}match\_score(b_{1},b_{2})$
    • 若$match\_score(b^{*}_{1},b^{*}_{2})>t$,则停止。否则对$b^{*}_{1},b^{*}_{2}$进行合并(使用两者的平均值)

Detection

vs classification:使用空间的方式

vs location:当没有包含对象时,需要预测一个background类。传统方式是把负样本随机输入,然后把导致最多错误的在bootstrapping passes时添加到训练集中。单独的bootstrapping passes会增加训练的复杂度,而且bootstrapping passes需要进行tune以保证训练不会在一个小数据集上overfit。本文的方式:从每个图中找出感兴趣的一些负样本(如随机crop或最不喜欢的)。这种方式计算代价昂贵,但是过程会比较简单(不用bootstrapping passes),而且特征提取在分类任务中已经完成,检测时进行fine-tuning并不难。

 Discussion

  • 贡献

提出一个multi-scale, sliding window方法,可以同时用于classification、localization和detection

解释了如何用ConvNets高效地完成detection和localization任务

提出了一个integratd pipeline,可以在共享一个特征提取(layer 1-5)下完成多个不同的任务

  • 优化

localization任务中,没有在整个网络执行back-propping

使用$l_{2}$ loss,而不是直接优化IOU(用于评估性能)(IOU可微)

bounding box的可选参数化可以让输出的去相关化

其它

1. https://www.jianshu.com/p/6d441e208547 这个文章解答了自己的一些疑惑

转载于:https://www.cnblogs.com/coolqiyu/p/9410612.html

OverFeat学习相关推荐

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

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

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

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

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

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

  4. 深度学习计算机视觉模型衍生与发展——OverFeat详解

    本文围绕一代传奇模型overfeat展开论述,探究在2013年,overfeat是怎样横空出世.独占鳌头的,并介绍它的那跨时代的思想和惊为天人的设计. 论文地址 https://arxiv.org/a ...

  5. 深度学习研究理解:OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks

    本文是纽约大学Yann LeCun团队中Pierre Sermanet ,David Eigen和张翔等在13年撰写的一篇论文,本文改进了Alex-net,并用图像缩放和滑窗方法在test数据集上测试 ...

  6. 深度学习目标检测详细解析以及Mask R-CNN示例

    深度学习目标检测详细解析以及Mask R-CNN示例 本文详细介绍了R-CNN走到端到端模型的Faster R-CNN的进化流程,以及典型的示例算法Mask R-CNN模型.算法如何变得更快,更强! ...

  7. 病虫害模型算法_基于深度学习的目标检测算法综述

    sigai 基于深度学习的目标检测算法综述 导言 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一.由于各类物体有不同的外观,形状,姿态,加上成像 ...

  8. 综述 | 基于深度学习的目标检测算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉life 导读:目标检测(Object Det ...

  9. 基于深度学习的目标检测的研究进展2

    普通的深度学习监督算法主要是用来做分类,如图1(1)所示,分类的目标是要识别出图中所示是一只猫.而在ILSVRC(ImageNet Large Scale Visual Recognition Cha ...

  10. 论文整理集合 -- 吴恩达老师深度学习课程

    吴恩达老师深度学习课程中所提到的论文整理集合!这些论文是深度学习的基本知识,阅读这些论文将更深入理解深度学习. 这些论文基本都可以免费下载到,如果无法免费下载,请留言!可以到coursera中看该视频 ...

最新文章

  1. 汇编语言第二课作业-实验1
  2. 2005年个人防病毒软件评测报告
  3. 如何使用人工智能发展业务并创造企业价值
  4. python获取图片的颜色信息
  5. _beginthreadex与CreateThread区别与联系
  6. android7.0提示定位,解决android7.0上某些PopuWindow显示位置不正确的问题
  7. python中tkinter的使用-中
  8. 多重选定怎么撤销_多重网络问题怎么解决?如何取消多重网络?
  9. java 接口初始化_Java类的初始化 | 学步园
  10. Oracle11gR2 RAC+DataGuard安装实施维护2+1_数据库集群容灾视频教程
  11. Qt Creator怎样更改默认构建目录
  12. Anaconda——复制Conda的虚拟环境
  13. RNN LSTM GRU Attention transformer公式整理总结(超详细图文公式)
  14. YOLOX系列一 -- 代码下载以及win10上demo运行
  15. SNMP Trap 报文
  16. mysql qps 索引查询_mysql QPS 抓取和分析
  17. oracle exadata x7发布,Oracle Exadata X8 Hardware DataSheet (配置说明)
  18. 苹果id怎么注册?老果粉教你创建新的Apple ID
  19. unity 设置纯白3D环绕背景
  20. ROS Noetic KDL与TracIk安装

热门文章

  1. 如何格式化写保护的U盘(删除多个盘的U盘)
  2. oracle优化distinct,oracle中使用group by优化distinct
  3. 深度剖析微信小程序搜索的排名机制
  4. Python电商数据分析实战案例
  5. 全图各省市乡镇数据交流
  6. 第一次登录域控服务器的账号,windows域登录与SSO服务器整合
  7. 游戏建模常用软件以及模型制作流程
  8. 学校能效管理系统解决方案-校园能源管理之智慧消防(安科瑞-须静燕)
  9. Windows桌面便签小工具帮你打造高效桌面
  10. mysql 双机备份_Mysql双机热备份