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

CNN可视化工具 CAM的理解

一、Eigen-CAM 理解分析

Eigen-CAM来自论文《Eigen-CAM: Class Activation Map using Principal Components》,Eigen-CAM的流程如下图:

将特征从特征空间拉出来后,库如 yolov8s-cls,拉出是512x7x7的特征层,然后将改feature reshape X 为 49x512,49是空间特征,512是通道特征,然后将49x512通过奇异值分解后:
X=UΣVT X = U \Sigma V^TX=UΣVT
U∈R49×49,Σ∈R49×512,V∈R512×512 U \in \mathbb{R}^{49 \times 49} , \Sigma \in \mathbb{R}^{49 \times 512} , V \in \mathbb{R}^{512 \times 512}UR49×49,ΣR49×512,VR512×512
U(左奇异向量):U∈R49×49U \in \mathbb{R}^{49 \times 49}UR49×49中的每一列 是ui∈R49u_i \in \mathbb{R}^{49}uiR49表示一种空间组合方式
V(右奇异向量):V∈R512×512V \in \mathbb{R}^{512 \times 512}VR512×512中的每一列 是ui∈R512u_i \in \mathbb{R}^{512}uiR512表示一种通道组合方式

X=∑i=149σiuiviT X=\sum_{i=1}^{49} \sigma_i u_i v_i^TX=i=149σiuiviT
uiu_iui是 49 x 1,viTv_i^TviT是 1 x 512, 相乘正好是 49 x 512大小,即第i 个奇异值表示,通道方向viv_ivi和 空间模式uiu_iui,共同构成的这个结构模式的强度。

再说回 Eigen-CAM,是将 原始特征层 49x512 投影到v0v_0v0这个向量上,得到一个49x1的向量,我觉得可以这样理解:
u0u_0u0v0v_0v0两个组合起来,在加上 奇异值,构成了绝大部分的 原始特征(最佳的rank-1近似),也就是,特征空间按照v0v_0v0这种方式进行分布的时候,对应的空间特征的分布响应也很大,因此,直接将原始特征投影到v0v_0v0,得到想要的空间分布情况。

二、Eigen-CAM 实验分析

对yolov8n和yolov8m目标检测器进行eigen-cam的分析,使用的权重为预训练权重yolov8n.pt和yolov8m.pt

从21层到第4层,对各层的输出,进行Eigen-CAM可视化,左边是yolov8m,右边是yolov8n

分析:
1、首先,有一点需要明确,Eigen-CAM不能用来解读决策,因为Eigen-CAM在分析的时候,不依赖类别和loss,Eigen-CAM展示的是当前特征的第一主成分,偏向大面积区域,高频纹理,强变化区域,这些特征都让特征的方差变化很大,所以Eigen-CAM展示的是最大方法的方差,不是目标语义,或者注意力图,所以在一些任务中,经常比目标更亮,不同层直接也没有可比性,比较适合分析特征,不适合解释决策。
2、不论是yolov8m ,还是yolob8n,输入640x640,每层的感受野相同

Stage层域感受野
14~535 px
26~875~110 px
39~12200~350 px
413~16500~900 px
517~211000~1500 px

3、以yolov8m为主要,4,5层感受野比较小,因此是草地,6,7,8,增大感受野后,可以看到狗头了,第9层是SPPF,第10层是上采样,所以,第9层和第10层,可视化结果是一样的,第11层,是将第6层的结果和第10层的输出concat出来。
4、会发现yolov8m学习到的狗头的特征,整体比yolv8n学习的狗头特征明显高亮,且高亮点很多,yolov8n学习的狗头特征,特点是稀疏、高亮点弱,不密集;yolov8m学习的狗头特征,高亮点很密集

http://www.jsqmd.com/news/568372/

相关文章:

  • 提升开发效率:用快马一键生成可复用路由器手机登录组件
  • 探索RISC-V处理器仿真平台:从架构可视化到性能优化的实践指南
  • 古董计算器TI-92 Plus拆解与超频实战
  • 一种爬梯机械人的设计【说明书(内含程序)+CAD图纸】
  • AI长推理能力缺陷的本质
  • 利用快马AI快速构建产区标准可视化地图原型
  • Matlab与AI结合:利用Qwen3.5-4B模型优化科学计算与数据分析流程
  • 新手零基础入门:用快马一键生成交互式python学习jupyter notebook
  • 前端国际化最佳实践:让你的网站走向世界
  • 基于Simulink与Matlab的IEEE5节点潮流仿真模型构建与分布式电源接入分析
  • 利用Ghost实现系统无损迁移:从机械硬盘到SSD的快速升级指南
  • AI辅助开发:让快马平台的Kimi模型智能生成403 forbidden错误处理与日志代码
  • 提升vue3开发效率:用快马平台一键生成通用组件库与工具集
  • 【Git】深入解析 ‘.git/index.lock‘ 文件冲突:从报错到彻底解决
  • 永磁同步电机SVPWM算法故障诊断与容错控制仿真的Simulink模型
  • SEO_五个立竿见影的页面SEO优化技巧指南
  • 利用快马平台与trae库十分钟搭建React状态管理原型
  • 一站式渗透测试工具|自动识别微信小程序、反编译分析、提取敏感信息,搭配多引擎测绘
  • 效率翻倍:用快马生成mac上支持批量与并发的openclaw脚本
  • 如何让Windows 11用起来像Windows 10?ExplorerPatcher完整使用指南
  • 在Ubuntu 22.04上搞定Gen6D位姿估计:从CUDA 11.8到Pytorch3D 0.7.8的完整环境搭建避坑指南
  • 2026年,哪些外呼系统生产厂家真正靠谱?答案即将揭晓!
  • 新唐MS51FB9AE串口烧录全攻略:从Hex到Bin的完整转换流程
  • 【YOLOv26】基于YOLOv26的WIDER FACE密集人脸检测项目
  • Qwerty Learner可扩展性设计:为未来功能预留空间的完整指南
  • 实战spring boot整合mysql:快马ai一键生成库存管理核心代码
  • chan.py:数据科学视角下的量化分析框架实践指南
  • 锌离子电池 锌电 comsol模型 电场分布,浓度场分布 此链接拍下发两个模型两个教程(电场和...
  • 从防跌倒产品设计到康复评估:ADAMS人体动力学仿真在工程与医疗中的5个实战应用
  • 低代码?不!是高效代码:CodeBuddy IDE + CloudBase 开发会议室系统实战