当前位置: 首页 > news >正文

CAM实现的流程--基于Pytorch实现

CAM实现的流程

  • CAM类激活映射
    • CAM是什么
    • CAM与CNN

CAM类激活映射

CAM是什么

  • 可视化CNN的工具, CAM解释网络特征变化,CAM使得弱监督学习发展成为可能,可以慢慢减少对人工标注的依赖,能降低网络训练的成本。通过可视化,就像往黑箱子里打了一个手电筒,让人们可以尝试去理解网络。
  • 在不同空间位置处存在这些视觉图案的加权线性和, 通过简单地将类激活映射上采样到输入图像的大小,我们可以识别与特定类别最相关的图像区域
    在这里插入图片描述
     GAP就是把特征图转换成特征向量,每一层特征图用一个值表示,所以如果这个特征图的深度是512,那么这个特征向量的长度就是512                                                                     Australian terrier这个类对应的权重乘上特征图对应的层,用热力图归一化,即下面一排热力图:W1*蓝色层+W2*红色层+…+Wn*绿色层=类激活映射(CAM),所以说CAM是一个加权线性和

[step1:选择可视化的特征层,例如尺寸为 16∗16∗1024 的特征图 step2:获取该特征的每个channel的权重,即长度为1024的向量; step3:通过线性融合的方式,把不同channel的权重赋回原特征图中,在依次的将各个通道的特征图线性相加获取尺寸为1616的新特征图; step4:对该新特征图进行归一化,并通过插值的方式还原到原图尺寸]:

  • CAM基于分类,所以被激活的区域是根据分类决定的在这里插入图片描述
  • 改变网络结构,例如把全连接层改成全局平均池化层,这不利于训练
  • 在弱标记图像中定位比较抽象的概念:
    在这里插入图片描述
  • CAM可视化这可以帮助我们理解网络,通过CAM技术,我们可以看到网络关注哪里,可以利用CAM帮助我们发现问题,改进结构

CAM与CNN

CNN的操作可以看做是滤波器对图片进行特征提取,被一层层卷积核提取后,基本就是卷积核判断是重要的信息,其值越大,特征越明显,得到卷积的关注度就越高。

一个深层的卷积神经网络,通过层层卷积操作,提取出语义信息和空间信息,我们一直都很希望可以打破深度神经网络的黑盒,可以溯源特征提取的过程,甚至可以知道特征所代表的语义内容, 通常每一层的特征图还会有很多的层,我们一般用channel表示,这些不同层(通道)特征图,我们可以认为理解为存放着卷积提取到不同的特征。随着卷积的逐层深入,该特征已经失去了原有的空间信息和特征信息,被进一步的集成压缩为具有高度抽象性的特征图。这些特征图所代表的语义信息我们不得而知,但是这些特征图的重要性我们却可以通过计算得出。所以我们的CAM主要作用就是根据不同通道的贡献情况,融合出一张CAM图,那么我们就可以更直观的了解到在图像中那些部分是在CNN中是高响应的重要信息,哪些信息是无关紧要的无聊信息

http://www.lryc.cn/news/135923.html

相关文章:

  • FL Studio2023最新版本21.1中文水果音乐编曲工具
  • 数据库概述SQL基本语法
  • 【面试】一文讲清组合逻辑中的竞争与冒险
  • 无涯教程-PHP - 性能优化
  • 如何在PHP中使用字符串
  • Mybatis简单入门
  • 【Linux】数据链路层:以太网协议
  • docker搭建私有镜像harbor
  • 汽车便携轮胎充气泵方案
  • 一、Kafka概述
  • 【数据结构OJ题】合并两个有序链表
  • C++ LibCurl 库的使用方法
  • 自然语言处理从入门到应用——LangChain:索引(Indexes)-[向量存储器(Vectorstores)]
  • 【C++练习】普通方法+利用this 设置一个矩形类(Rectangle), 包含私有成员长(length)、 宽(width), 定义一下成员函数
  • 电子电路学习笔记之SA1117BH-1.2TR——LDO低压差线性稳压器
  • 【LeetCode-面试经典150题-day7】
  • 00-音视频-概述
  • SOFARPC(笔记)
  • 无线上网连接及配置
  • Webpack减少打包数量和体积(Umi 3.*中)
  • python Crypto 包安装
  • 时序预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络时间序列预测
  • 前端开发,怎么解决浏览器兼容性问题? - 易智编译EaseEditing
  • 树莓派3B安装64位操作系统
  • Mysql系列 - 第2天:详解mysql数据类型(重点)
  • Linux常用的运维命令
  • 【从零学习python 】50.面向对象编程中的多态应用
  • 实现Token刷新机制
  • FlaUi输入账号密码
  • ModStartBlog v8.0.0 博客归档页面,部分组件升级