阅读:Learning Deep Features for Discriminative Localization

2023-05-16

作者:Bolei Zhou, Aditya Khosla, Agata Lapedriza, Aude Oliva, Antonio Torralba

来源:CVPR2015

摘要 本文重新审视了《 Network in network》中提出的全局平均池化层(global average pooling),阐明了它是如何通过图片标签就能让卷积神经网络具有卓越的定位能力。虽然这项技术以前被当做正则化训练的一种方法,但是我们发现它实际构建了一种通用的适用于各种任务的能定位的深度表示。尽管global average pooling很简单,我们仍然能够在2014年的ILSVRC物体定位比赛中得到37.1%的top-5错误率,与CNN的34.2%top-5错误率非常接近。我们证明了我们的网络能在各种任务中区分图像区域进行定位,尽管没有经过(定位)训练。

注:本文核心提出:学习一种深度特征,可用于区分性(判别性)定位 (Discriminative Localization)

1 引言

卷积神经网络中每个卷积单元均有:检测目标,定位能力。网络在经过全连接层进行分类时,定位能力丢失。因此,有些网络架构,如googlenet和NIN(network in network),不再使用全连接层,这样的话,在降低性能情况下可以减少网络参数,避免过拟合。

为此,NIN中使用全局池化层进行正则化,避免训练过程中的过拟合。作者实验发现,global average pooling只需稍微调整,使得网络在最后一层之前都可以保持很好的定位能力。如下图示。在物体分类上训练的CNN能够成功的进行动作分类(action classification),判别区域(区分区域)定位为与人类交互的物体而非人类本身(这样才能很好的进行动作识别)

图1

1.1 相关工作

 CNN尽管在图片级的标签上训练,也有着很强的定位能力。本文证明了只要使用正确的架构,就能将这种能力泛化到不仅仅是定位物体,而且还可以标定出图片的判别区域(discrimination)。这里,文中讨论两条主线:弱监督对象定位可视化CNN的内部表示

弱监督目标定位:已有的CNN工作,如Bergamo等人提出了“self-taught”物体定位方法;Cinbis等人用CNN特征结合多实例......其他工作这里(略)。这些作者并没有对定位能力进行评估,也不是端到端的训练,还有其他的问题,使得它们很难泛化到真实世界的数据集。本文提出的方法是一个端到端的:只要输入图片就可以定位物体。

与本文方法最相近的是Oquab提出的基于global max pooling的方法。用global max pooling来定位物体的点。定位局限于物体边缘的点,而不是物体的全部范围。虽然max和average很相似,但是平均池化更鼓励网络识别完整的物体区域。背后的原理在于:在识别整个物体的判别性区域时,average pooling的损失更小。而且实验证明这种定位能力(average pooling)能够泛化,甚至能用于观测到网络没有训练过的问题。

文中使用class activation map(类激活图)来代表每个图像中的加权激活图,这里,global average pooling并不是一个新技术,文章的创新点在于使用它精确定位判别性区域(discriminative localization),且能应用于需要快速精确定位的很多计算机视觉问题。

CNN的可视化:最近的关于可视化CNN的研究,主要是通过可视化CNN的内部表示,以更好的理解CNN的性能。Zeiler等人用反卷积网络,针对激活每个单元的模式进行可视化。Zhou等人发现训练CNNs进行场景识别时,同时会学习到目标检测器,并证明了这个同一个网络在一次前向传播中,可时同时进行场景识别和目标定位。这些研究都只分析了卷积层,忽略了全连接层,因此是不完整的。但是,通过移除全连接层并尽可能保持网络性能,能更加全面的了解网络结构。

Mahendran等人和Dosoviskiy等人通过转化不同层的深度特征,进而分析CNN的可视化编码。虽然这些方法可以转化全连接层,但他们仅展示了深层特征中被保留的信息,也没有凸显这些信息的重要性。本文的方法能凸显出图片的判别性区域,可以说是CNN精髓的另一种呈现。

2. Class Activation Mapping(类激活映射)

该部分描述了用CNN的global average pooling(GAP)生成class activation maps(CAM类激活图)的过程。某一特定类的CAM表示出了CNN用于分类时的判别性图像区域(如图3)。

图2(下图)显示了生成CAM的过程。

图2 预测的类别分数被映射回先前的卷积层以生成类别激活图(CAM),CAM凸显了特定类的判别性区域 

文中使用了与NIN和GoogLeNet相似的网络结构——网络的大部分都是卷积层,仅在最后的输出层之前(分类时为softmax层)对这些卷积特征图应用global average pooling层,并将它们作为(得出分类结果的)全连接层的特征。给定这种简单的连接结构,我们可以识别出图片各个区域的重要性----把输出层的权重投射卷积特征图,我们称这种技术为类激活映射CAM)。

图2中,全局平均池化层输出最后一个卷积层中每个单元的特征图(feature map)的空(域)平均值。这些值的加权和用于生成最后的输出。类似,我们计算最后一个卷积层的特征图的加权和来获得我们的CAM。我们在下面用更规范的方式描述使用softmax的情况。同样的技术可以用于回归或其他损失函数。

 给定一个图像,用f_k(x,y)表示最后一个卷积层在空间坐标(x,y)中的激活单元k。则,对每个单元k,执行GAP后,则为F^k,即\Sigma _{x,y}f_k(x,y)。因此,给定类c,softmax的输入为,S_c,即\Sigma _k\omega _k^cF_k,其中,\omega _k^c是单元k中对应类别c的权重。最终,softmax对应类别c的输出P_c\frac{exp(S_c)}{\Sigma _cexp(S_c)}。这里忽略了偏置项:明确地把softmax的偏差项置为0,因为它几乎对分类性能没有影响。

 将F^k代入类分数S_c,可得:

S_c=\Sigma _k\omega _k^cF_k=\Sigma _k\omega _k^c\Sigma _{x,y}f_k(x,y)=\sum_{x,y}\sum_k\omega _k^cf_k(x,y)      (1)

定义M_c为类别c的类激活图,则M_c中的每个(空间)元素为:

 M_c(x,y)=\sum_k\omega _k^cf_k(x,y)                                                            (2)

因此,有    S_c=\Sigma _{x,y}M_c(x,y),其中M_c(x,y)表示空间网格(x,y)激活对该图像划分为类别c的重要性。

直观地讲,期望每个单元能够被它感受野内的某个可视化模式激活。f_k就是显现这种可视化模式的投影图。类激活图简单地说,就是不同空间区域出现的这些可视化模式的线性加权和。通过在类激活图上简单地执行上采样,至输入图像的大小,即能看出与特定类最相关的区域。

上图中显示了相关示例--即用上述方法输出的CAM。对于不同类别的图像的判别区域均高亮显示。(母鸡和狗的用于分类的判别性区域是头部区域)

上图显示,用一张图使用不同类别的c生成的CAM的差异。即,同一张图,不同类别具有不同的判别性区域。(上述图像,类别标签为宫殿,判别性区域在下面,若为圆顶体育场dome,判别性区域在顶部),与作者的预期是一致的

可以看到不同类的区别性区域已经高亮。在图4,我们展示了同一张图用不同类别的c生成的CAM图的不同之处。我们发现即使是同一张图,对不同类的区别性区域也不同。这说明我们的方法与预期一样。我们在前面的部分证明了这一点

全局平均池化(GAP)和全局最大池化(GMP):之前有的研究使用GMP做弱监督物体定位,作者认为突出强调GAP和GMP的直观差异性是很重要:GAP损失鼓励网络识别物体的范围,而GMP鼓励网络仅识别出1个判别性部分(discriminaltive part)。这是因为:在对一个图(map,即由卷积操作得到的结果)求平均时,是通过找到物体的所有判别性部分,低的激活会减少特定图的输出。而GMP,所有图的低分区域(除了最有区分力的一个),都不会对得分有影响,因为只取了一个最大值。后续实验进行了验证:GMP的分类性能与GAP相当,GAP的定位能力要优于GMP

3. 弱监督物体定位

本部分在ILSVRC2014数据集上评估了CAM的定位能力。描述了实验配置及用到的CNN网络,同时验证了本文提出的技术在学习定位时不会影响分类性能。

3.1实验设置

作者在流行的CNN(如AlexNet,VGGnet和GoogLeNet)上评估了使用CNN的影响:对每种网络,我们将最终输出前的全连接层,替换为GAP加上一个全连接softmax层,

结果发现,当GAP前的最后一个卷积层有较高空间分辨率(称为mapping resolution)时,网络的定位能力会有所改善。因此,实验中移除了一些网络的几个卷积层(可以提高最后卷积层的分辨率)。具体如下:(1) AlexNet,移除conv5之后的层(即,pool5到prob),得到图分辨率(mapping resolution)为13x13(2)VGGnet,移除conv5-3之后的层(即,pool5到prob),得到14x14的图分辨率(3)GoogLeNet,移除inception4e后的层(pool4到prob),得到14x14的图分辨率。对上述的每个网络,我们都添加一个3x3,步长为1,padding为1的具有1024个单元的卷积层,然后接一个GAP层和一个softmax层。最后对每个网络在ILSVRC的用于分类的1.3M个1000类的训练图片进行微调(fine-tuned),分别产生最终的AlexNet-GAP,VGGnet-GAP和GoogLeNet-GAP。

从分类上,将上述网络与初始的AlexNet,VGGnet和GoogleNet进行比较,也提供了Network in Network的结果。对于定位,与初始的GoogLeNet和NIN进行了比较,还用反向传播代替了CAM。此外,为了比较average pooling和max pooling,作者也提供了用max pooling训练的GoogLeNet的结果(GoogLeNet-GMP)。

作者使用相同的误差度量(top-1,top-5)作为ILSVRC对分类和定位的评估指标。对于分类,对ILSVRC的验证集进行了评估,对于定位,在验证集和测试集上都做了评估。

3.2 实验结果

作者首先提供目标分类的结果,以证明该方法不会对分类性能产生明显的不良影响。随后又证明了该方法在弱监督物体定位上的有效性。

分类:表1归纳了初始网络与作者的GAP网络的分类性能。作者发现大多情况下从各个网络中移除多余的层次,会导致较小的分类性能的下降:1%~2%。同时,观察到AlexNet在移除全连接层后分类性能影响最大。作为补偿,作者在它的GAP层前添加了2个卷积层,得到AlexNet*-GAP网络,AlexNet*-GAP与AlexNet的性能相当。因此,总体而言,文中的GAP网络很大程度地保留了网络的分类性能。此外,与预期的一样,作者观察到GoogLeNet-GAP和GoogLeNet-GMP有相似的分类性能。注意,为了实现较高的定位性能,网络的分类性能就非常重要,因为它涉及到网络是否能准确地分类和准确定位边界。

定位:为了进行定位,需要生成一个边界框,以及与之关联的物体类别。为了从CAM生成一个边界框,使用了简单阈值技术来分隔热图(heapmap):首先用大于CAM最大值的20%的值分隔区域。然后再用覆盖分割图中最大连通分量做一个边框。作者把预测的top-5全部如此标记出来。图6(a)展示了这项技术生成的示例边框。在ILSVRC验证集上的定位性能见表2,输出示例见图5。

 

 



 


 


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阅读:Learning Deep Features for Discriminative Localization 的相关文章

随机推荐

  • LAMP源码安装图文详解(超详细)

    文章目录 一 LAMP架构概述1 各组件的主要作用2 各组件安装顺序 二 编译安装Apache httpd服务1 关闭防火墙 xff0c 将安装Apache所需软件包传到 opt目录下2 安装环境依赖包3 配置软件模块4 编译及安装5 优化
  • c++学习总结(多态性)

    在学习c 43 43 的过程中 xff0c 根据自己的见解 xff0c 把一些自己认为重要的 容易混淆的知识点记录下来 xff0c 为了以后能够复习 今天主要总结多态性 主要从以下三个方面来讨论 xff1a what why how 什么是
  • [分享]分享一个多旋翼开源飞控项目

    https github com golaced Oldx fly controller tree rmd OLDX多旋翼开发平台 xff08 OLDX FC xff09 是由北京理工大学自动化学院所属 北理云逸科技 团队开发的一个目前国内
  • gitkraken安装教程

    版本gitkraken6 5 1 双击安装文件后 xff0c 安装成功后 xff0c 关掉软件 xff0c 删掉安装包 第一步 xff1a 修改hosts xff0c 路径为C Windows System32 drivers etc ho
  • 入手新单片机流程&提高可移植性的编程技巧

    现在单片机种类众多 xff0c 各有各的优势与不足 体现在价格 速度 外设 功耗 封装等许多方面 xff0c 这些单片机不可能一一去学习 xff0c 因此今后有很大可能需要应用到自己不熟的单片机 xff0c 对此 xff0c 我总结了一些经
  • ssh连接失败,但能ping通服务器

    ssh连接失败 xff0c 但能ping通服务器 问题描述问题排查1 判断是否客户端本身问题2 服务器端排查3 配置完服务器报错 问题描述 能ping通 xff0c ssh报错 Connection reset by peer span c
  • opencv库的功能

    OpenCV Open Source Computer Vision 是一个开源的计算机视觉库 xff0c 提供了很多用于图像处理 计算机视觉 机器学习等方面的函数和工具 以下是一些 OpenCV 库的功能 xff1a 图像和视频 I O
  • 深度学习模型列举

    深度学习是一种人工神经网络算法的实现方式 xff0c 主要用于处理大规模复杂数据集 xff0c 如图像 语音 文本等数据 以下是一些常见的深度学习模型 xff1a 卷积神经网络 xff08 Convolutional Neural Netw
  • CentOS8.3.2011无法联网解决方案

    1 切换到ifcfg ensXX目录下 cd etc sysconfig network scripts 2 编辑ifcfg ensXX文件 vim ifcfg ens33 3 修改 BOOTPROTO 61 dhcp 并且修改 ONBOO
  • Run Windows in Ubuntu with VMware Player 使用 VMware Player 在 Ubuntu 下运行 Win

    Are you an enthusiast who loves their Ubuntu Linux experience but still needs to use Windows programs Here s how you can
  • Ardupilot固定翼无人机L1制导律原理及代码解读

    L1制导律是固定翼无人机飞行路径跟踪的重要算法之一 xff0c 这个算法由MIT的研究人员提出 在这之前 xff0c 无人机进行路径跟踪一般采用基于侧偏距的PD控制器方法 至于为什么使用PD而不使用PID xff0c 那是因为位置环响应慢
  • sumo交通流仿真软件的使用说明

    1 安装流程 xff1a 1 xff09 mis文件安装 xff1a 官网下载下来一键安装 xff1b 2 xff09 tar利用压缩安装 xff1a 官网下载安装包 xff0c 解压后 xff0c 在系统变量变量中定义sumo的路径和bi
  • 搭建PX4开发环境

    PX4是著名的开源无人机开发平台 xff0c 它提供了一个虚拟环境 xff0c 可以用来验证无人机的飞控算法 xff0c 也可以连接开源硬件 xff0c 为无人机的开发提供了极大便利 目前PX4支持的操作系统是ubuntu 18 04LTS
  • 进程间通信IPC——命名管道

    命名管道 1 基本概念2 创建1 xff09 命令行2 xff09 函数 3 示例 1 基本概念 命名管道是一种特殊的文件类型 xff0c 其存在于磁盘上 xff0c 但是大小永远是0 不同于匿名管道的是 xff1a 可在同一台计算机的不同
  • docker学习内容(1)-介绍与安装

    docker是什么 Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案 Docker 的基础是 Linux 容器 xff08 LXC xff09 等技术 docker干什么 更快速的交付和部署 高效虚拟化 docker的出现 xf
  • 2014百度校园招聘笔试题(长春站)

    一 xff0c 简答题 30分 1 xff0c 当前计算机系统一般会采用层次结构存储数据 xff0c 请介绍下典型计算机存储系统一般分为哪几个层次 xff0c 为什么采用分层存储数据能有效提高程序的执行效率 xff1f 10分 2 xff0
  • 【图像处理】A Skinned Multi-Person Linear Model(SMPL)浅解析

    图像处理 A Skinned Multi Person Linear Model xff08 SMPL xff09 浅解析 SMPL的原理结语 SMPL的原理 首先 xff0c 博主不做3D建模的工作 xff08 尽管这项工作真的很酷 xf
  • 播放音乐There was an error running option A4 audio; amixer... error no such file or directory

    目标 xff1a 树莓派的3 5mm音频输出口连接音箱 xff0c 让音箱播放音乐 踩坑 xff1a 在网上找了各种教程 xff0c 前后折腾了三四天 xff0c 才终于把这个问题解决 xff08 不想看具体的踩坑过程的话 xff0c 可以
  • SLAM 介绍

    http www slamcn org index php E9 A6 96 E9 A1 B5 比较好的开源SLAM Odometry代码 xff1a https github com ethz asl rovio https github
  • 阅读:Learning Deep Features for Discriminative Localization

    作者 xff1a Bolei Zhou Aditya Khosla Agata Lapedriza Aude Oliva Antonio Torralba 来源 xff1a CVPR2015 摘要 本文重新审视了 Network in ne