Learning Deep Features for Discriminative Localization

Some Words: 这里主要是我阅读paper的笔记

这篇文章主要是2016年CVPR的一篇文章,中文名是 学习用于判别性定位的深度特征,


(一)Abstract:

        在这篇工作中,我们又重新探讨了全局平均池化层,并且阐释了CNN网络是如何显式的拥有定位的能力,尽管是在图像级的标签上进行的训练。尽管这种方法常用在训练时候进行正则化,但是我们也发现它建立了通用局部的深度表示来应对于各种任务并且也得到了证明;

=》提出 全局平均池化层,它主要有两个功能:(1)很简单的正则化(2)使网络具有定位的能力;在这里主要讲第二种。

一些参考知识:

全局平均池化层(Global Average Pooling Layer)是一种常用于深度学习卷积神经网络(CNN)中的特征提取层。

在传统的卷积神经网络中,通常在最后的卷积层之后使用全连接层来进行分类任务。然而,全连接层具有大量的参数,容易导致过拟合的问题。为了减少参数量和提高网络的泛化能力,全局平均池化层被引入。

全局平均池化层的作用是将整个特征图的空间维度进行池化,输出一个固定长度的向量。具体而言,对于输入的特征图,全局平均池化层会计算每个通道的平均值,然后将这些平均值组合成一个向量作为网络的输出。这样做的效果是将高维的特征图转换为一个低维的向量表示。

全局平均池化层的优点是它减少了参数量,因为它没有可学习的权重参数,只是进行简单的平均计算。同时,它也有正则化的效果,防止过拟合。此外,全局平均池化层的输出是固定长度的,不受输入图像大小的影响,这使得网络对于不同尺寸的输入具有一定的鲁棒性。

在许多深度学习模型中,全局平均池化层通常用于替代全连接层,作为最后一个特征提取层。这样的设计可以减小模型的复杂性,并且在训练和推理阶段都可以提供高效的计算。


(二)Introduction:

        Zhou等人最近的工作表明,不同层的卷积神经网络(CNN)的卷积单元实际上表现为对象检测器,即能够卷积单元的定位能力是存在的,但是到了全连接层的时候则会消失;因此,最近一些全卷积网络也提出,例如the Network in Network(NIN)和GoogLeNet等,能够避免使用全连接网络减少参数同时保持好的表现。

        为了解决这个问题,发现了 全局平均池化层,它不仅仅可以正则化使得网络避开过拟合,同时它的加入使得网络改进也能够保留定位的能力直到最后一层;

        这个改进能够使得在单个前向传递的过程中更容易地识别判别的图像区域从而应用于各种任务,即使初始网络训练的目的不一致的。

         如上图,主要是结合类激活图(CAM)对全局平均池化层进行的修改使得用于分类的CNN能够分类预想和在前向传递中定位特定类图像的区域。例如,牙刷对于刷牙,链锯对于砍树;

        同时,我们也证明了这种方法中深度特征的定位能力能够较为容易地迁移到其他的识别数据集上;

Related Work:

目前,我们已经得知,CNN的卷积单元具有定位对象的能力。但是在这篇Paper中,我们主要推广能力,不仅仅是定位对象,而且能够定位用于判别的图像区域。这里,主要介绍两项与此相关的工作:

(1)弱监督对象定位,一些相关的定位工作以及本工作精确定位的贡献点...

(2)可视化CNNs,一些工作是忽略全连接层,另一些虽然可以反转全连接层来显示深层特征,但是并没有显示信息的相对重要性,因而我们的工作即是可以高亮对判别结果的区域,即更重要的信息。


(三)Class Activation Mapping

CAM主要的思想:我们首先在卷积层上施加全局平均池化层,之后我们对其输出的特征(获取的深度特征)放置到全连接层中,如果是分类的话有Softmax,期待输出一个不错的结果。鉴于这种简单的连接结构,我们将输出层权值反向投影到卷积特征映射上来识别图像区域的重要性,这种方法称之为CAM,即类激活映射。如下图,推导的公式可见原文,此处省略。

如图3中,即是对于6个类的CAM生成的例子。

Global average pooling (GAP) vs global max pooling(GMP):

        GAP和GMP是全局池化的两种常见的操作,从而来减少特征图的空间维度;两者相对而言,GAP 是对每个通道的平均值作为输出,更关注整体的特征;而GMP选择其中的最大值作为输出,更关注显著的特征;


(四)Weakly-supervised Object Localization:

        在本节中,我们评估在ILSVRC 2014基准数据集上训练时的定位能力。我们首先描述了实验设置和在其中使用的各种cnn模型。3.2我们验证了我们的技术在学习定位时不会对分类性能产生不利影响,并提供了弱监督对象定位的详细结果。

映射分辨率:即指在卷积神经网络(CNN)中,输入特征图与输出特征图之间的空间分辨率关系。在CNN中,通过卷积和池化等操作,输入特征图逐渐经过多个卷积层和池化层的处理,最终得到输出特征图。在这个过程中,特征图的空间分辨率通常会发生变化,一般是会变低。

        我们也发现,当最后一层卷积层的分辨率较高时,对定位表现出更好的能力。因而对网络进行稍微的调整,之后我们都加上卷积层、全连接层和Softmax用于1000类的分类,最后得到相应的-GAP网络。

Results:

验证了加入GAP相对保留了模型的分类性能,同时也增强了网络的定位能力...


(五)Deep Features for Generic Localization:

为了获取权重,我们训练一个线性向量机 linear SVM 在全局平均层的输出上。

5.1 Fine-grained Recognition

 数据集采用的是由边界注释的,从而能够对我们的定位能力进行一定的评估;

这个实验用来识别200不同种类的鸟,共做了三种实验,一种是没有使用bounding box, 一种是使用了*-GAP生成的bounding box,一种使用了bounding box标记。结果如下所示。可以看出,使用了*-GAP生成bounding box(第二种情况),可以很明显提高分类准确率。说明生成的bounding box能够包括重要的位置信息

5.2 Pattern Discovery

这节主要讲该技术应用到4个领域的例子。


 (六) Deep Features for Generic Localization

使用 AlexNet*-GAP,找到对每个类别贡献最大的激活图,之后找到对应区域并将其对应到原图。

从图中我们可以得知,分类器判别为起居室,检测出了沙发、椅子和电视,因而我们推测CNN学习了很多词语,每个单词都是用于判别特定类的,CNN则是学习这些引导CNN分类每一张照片。


(七)Conclusion

        在这个工作里,我们提出一个工作CAM(Class Activation Mapping)结合全局平均池化技术,这促使用于分类的CNN表现分类,不需要任何的边界框注释,类激活图使得再给定一个图像时能够可视化预测类的分数,高亮由CNN检测到的对象判别的部分区域。

        我们也在弱监督定位的ILSVRC benchmark上进行了验证,证明了我们应用了全局平均池化的CNN能够有着精准的定位表现。更多的是,也证实了这个CAM精准定位技术也能适用于其他的视觉识别任务,我们的技术也生成了通用的可定位的深层特征,帮助其他研究人员能够理解再其他任务中的识别基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/71452.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【uni-app】 .sync修饰符与$emit(update:xxx)实现数据双向绑定

最近在看uni-app文档,看到.sync修饰符的时候,觉得很有必要记录一下 其实uni-app是一个基于Vue.js和微信小程序开发框架的跨平台开发工具 所以经常会听到这样的说法,只要你会vue,uni-app就不难上手 在看文档的过程中,发…

常见分布式ID解决方案总结:数据库、算法、开源组件

常见分布式ID解决方案总结 分布式ID分布式ID方案之数据库数据库主键自增数据库号段模式Redis自增MongoDB 分布式ID方案之算法UUIDSnowflake(雪花算法) 雪花算法的使用IdWorker工具类配置分布式ID生成器 分布式ID方案之开源组件uid- generator(百度)Tinyid(滴滴&…

x11 gtk qt gnome kde 之间的区别和联系

Linux 下的图形库介绍 一、Linux 图形领域的基础设施 1.1 X Window X Window从逻辑上分为三层:X Server、X Client和X协议。 最底层的X Server(X服务器)主要处理输入/输出信息并维护相关资源,它接受来自键盘、鼠标的操作并将…

378. 有序矩阵中第 K 小的元素

378. 有序矩阵中第 K 小的元素 原题链接:完成情况:解题思路:参考代码:__378有序矩阵中第K小的元素__直接排序__378有序矩阵中第K小的元素__归并排序__378有序矩阵中第K小的元素__二分查找 原题链接: 378. 有序矩阵中…

全志T113-S3 Tina-linux --1. 开发环境搭建

1. 硬件环境 1.1 开发板 型号:100ASK_T113-PRO Base V1.1(韦东山)配置:CPU:T113-S3,RAM:128MB,ROM:128MB T113-S3配置 1.2 上手使用 1.2.1 串口shell 串口shell配置…

面试热题(二叉树的锯齿形层次遍历)

给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行) 输入:root [3,9,20,null,null,15,7] 输出:[[3…

Yolov5缺陷检测/目标检测 Jetson nx部署Triton server

使用AI目标检测进行缺陷检测时,部署到Jetson上即小巧算力还高,将训练好的模型转为tensorRT再部署到Jetson 上供http或GRPC调用。1 Jetson nx 刷机 找个ubuntu 系统NVIDIA官网下载安装Jetson 的sdkmanager一步步刷机即可。 本文刷的是JetPack 5.1, 其中包…

zookeeper+kafka

目录 Kafka概述 一、为什么需要消息队列(MQ) 二、使用消息队列的好处 三、消息队列的两种模式 四、Kafka 定义 五、Kafka 简介 六、Kafka 的特性 七、Kafka 系统架构 分区的原因 八、部署kafka 集群 1.下载安装包 2.安装 Kafka 3.修改…

卷积神经网络实现彩色图像分类 - P2

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章:365天深度学习训练营-第P2周:彩色识别🍖 原作者:K同学啊 | 接辅导、项目定制🚀 文章来源:K同学的学习圈子…

【考研复习】24王道数据结构课后习题代码|第3章栈与队列

文章目录 3.1 栈3.2 队列3.3 栈和队列的应用 3.1 栈 int symmetry(linklist L,int n){char s[n/2];lnode *pL->next;int i;for(i0;i<n/2;i){s[i]p->data;pp->next;}i--;if(n%21) pp->next;while(p&&s[i]p->data){i--;pp->next;}if(i-1) return 1;…

Vue实现图片懒加载

图片懒加载&#xff08;Lazy Loading&#xff09;是一种前端优化技术&#xff0c;旨在改善网页加载性能和用户体验。它的基本原理是&#xff0c;将网页中的图片延迟加载&#xff0c;只有当用户滚动到图片所在的位置时&#xff0c;才会加载图片内容&#xff0c;从而减少初始页面…

QT生成Word PDF文档

需求&#xff1a;将软件处理的结果保存为一个报告文档&#xff0c;文档中包含表格、图片、文字&#xff0c;格式为word的.doc和.pdf。生成word是为了便于用户编辑。 开发环境&#xff1a;qt4.8.4vs2010 在qt的官网上对于pdf的操作介绍如下&#xff1a;http://qt-project.org/…

易服客工作室:Elementor AI简介 – 彻底改变您创建网站的方式

Elementor 作为领先的 WordPress 网站构建器&#xff0c;是第一个添加本机 AI 集成的。Elementor AI 的第一阶段将使您能够生成和改进文本和自定义代码&#xff08;HTML、自定义代码和自定义 CSS&#xff09;。我们还已经在进行以下阶段的工作&#xff0c;其中将包括基于人工智…

2023年游戏买量能怎么玩?

疫情过后&#xff0c;一地鸡毛。游戏行业的日子也不好过。来看看移动游戏收入&#xff1a;2022年&#xff0c;移动游戏收入达到920亿美元&#xff0c;同比下降6.4%。这告诉我们&#xff0c;2022年对移动游戏市场来说是一个小挫折。 但不管是下挫还是上升&#xff0c;移动游戏市…

pytest fixture 用于teardown工作

fixture通过scope参数控制setup级别&#xff0c;setup作为用例之前前的操作&#xff0c;用例执行完之后那肯定也有teardown操作。这里用到fixture的teardown操作并不是独立的函数&#xff0c;用yield关键字呼唤teardown操作。 举个例子&#xff1a; 输出&#xff1a; 说明&…

剑指 Offer 61. 扑克牌中的顺子

题目描述 从若干副扑克牌中随机抽 5 张牌&#xff0c;判断是不是一个顺子&#xff0c;即这5张牌是不是连续的。2&#xff5e;10为数字本身&#xff0c;A为1&#xff0c;J为11&#xff0c;Q为12&#xff0c;K为13&#xff0c;而大、小王为 0 &#xff0c;可以看成任意数字。A 不…

通讯协议038——全网独有的OPC HDA知识一之聚合(七)最小值

本文简单介绍OPC HDA规范的基本概念&#xff0c;更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化&#xff0c;以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…

程序使用Microsoft.XMLHTTP对象请求https时出错解决

程序中使用Microsoft.XMLHTTP组件请求https时出现如下错误&#xff1a; 出错程序代码示例&#xff1a; strUrl "https://www.xxx.com/xxx.asp?id11" dim objXmlHttp set objXmlHttp Server.CreateObject("Microsoft.XMLHTTP") objXmlHttp.open "…

SpringCloudGateway配置跨域设置以及如何本地测试跨域

问题背景 有个服务A &#xff0c;自身对外提供服务&#xff0c;几个系统的前端页面也在调用&#xff0c;使用springboot 2.6.8开发的&#xff0c;自身因为有前端直接调用已经配置了跨域。 现在有网关服务&#xff0c;一部分前端通过网关访问服务A&#xff08;因为之前没有网关…

springboot 基础

巩固基础&#xff0c;砥砺前行 。 只有不断重复&#xff0c;才能做到超越自己。 能坚持把简单的事情做到极致&#xff0c;也是不容易的。 SpringBoot JavaEE 简介 JavaEE的局限性&#xff1a; 1、过于复杂&#xff0c;JavaEE正对的是复杂的分布式企业应用&#xff0c;然而现实…