一、Eigen-CAM 理解分析Eigen-CAM来自论文《Eigen-CAM: Class Activation Map using Principal Components》Eigen-CAM的流程如下图将特征从特征空间拉出来后库如 yolov8s-cls拉出是512x7x7的特征层然后将改feature reshape X 为 49x51249是空间特征512是通道特征然后将49x512通过奇异值分解后:XUΣVT X U \Sigma V^TXUΣVTU∈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}U∈R49×49,Σ∈R49×512,V∈R512×512U左奇异向量U∈R49×49U \in \mathbb{R}^{49 \times 49}U∈R49×49中的每一列 是ui∈R49u_i \in \mathbb{R}^{49}ui​∈R49表示一种空间组合方式V右奇异向量V∈R512×512V \in \mathbb{R}^{512 \times 512}V∈R512×512中的每一列 是ui∈R512u_i \in \mathbb{R}^{512}ui​∈R512表示一种通道组合方式X∑i149σiuiviT X\sum_{i1}^{49} \sigma_i u_i v_i^TXi1∑49​σi​ui​viT​uiu_iui​是 49 x 1viTv_i^TviT​是 1 x 512, 相乘正好是 49 x 512大小即第i 个奇异值表示通道方向viv_ivi​和 空间模式uiu_iui​共同构成的这个结构模式的强度。再说回 Eigen-CAM是将 原始特征层 49x512 投影到v0v_0v0​这个向量上得到一个49x1的向量我觉得可以这样理解u0u_0u0​和v0v_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在分析的时候不依赖类别和lossEigen-CAM展示的是当前特征的第一主成分偏向大面积区域高频纹理强变化区域这些特征都让特征的方差变化很大所以Eigen-CAM展示的是最大方法的方差不是目标语义或者注意力图所以在一些任务中经常比目标更亮不同层直接也没有可比性比较适合分析特征不适合解释决策。2、不论是yolov8m 还是yolob8n输入640x640每层的感受野相同Stage层域感受野14~535 px26~875~110 px39~12200~350 px413~16500~900 px517~211000~1500 px3、以yolov8m为主要45层感受野比较小因此是草地678,增大感受野后可以看到狗头了第9层是SPPF第10层是上采样所以第9层和第10层可视化结果是一样的第11层是将第6层的结果和第10层的输出concat出来。4、会发现yolov8m学习到的狗头的特征整体比yolv8n学习的狗头特征明显高亮且高亮点很多yolov8n学习的狗头特征特点是稀疏、高亮点弱不密集yolov8m学习的狗头特征高亮点很密集