论文阅读七:CAM,超好用的可视化工具

论文:《Learning Deep Features for Discriminative Localization》

一、论文主要观点

论文主要提出:
1、GAP(global average pooling,全局平均池化)具有弱监督的目标定位功能;
2、提出CAM(class activation mapping, 类别激活映射)用来指明图像中哪些关键区域是CNN用来识别该类的,并且可以通过热力图可视化出阿里。

二、GAP vs GMP

GMP(global max pooling, 全局最大池化),论文中提到,GAP损失鼓励CNN去识别目标类别的所有的标志性区域,这样平均池化之后的值才会更大,但是GMP并不关心目标类别的其他区域,只关系最具有判别性的区域,因此GAP和GMP虽然在分类上功能相似,但是在定位上,GAP更能定位到整个目标,而GMP只定位到目标的部分区域。

三、CAM

训练分类器的时候,我们常常有这样的困惑,CNN究竟是依据图像中的哪部分信息,将该图片判定为某一类的呢,CAM就是解决我们这一困惑的工具,CAM的思想中用到了GAP,因此只用将分类器最后的全链接层换成GAP,任何分类网络都可以使用CAM进行可视化。
在这里插入图片描述上图是CAM的整个计算过程,可以分为三步:
1、获得GAP之前的卷积特征,大小是:cn x w x h;
2、获得GAP之后的线性操作的权重w,大小是:class_num x cn ;
3、想获得top1类别的CAM图,计算方式是:从权重w中获取第一组权重,大小是1 x cn,然后将这些cn个w分别与cn个平面wxh相乘,后cn个平面相加,得到一个wxh大小的cam平面,可以生成对应的热力图。

四、如何使用CAM定位

使用阈值分割的技术来分割步骤三得到的热力图,可以帮助我们得到CAM计算的判别区域的目标框,方法很简单,就是,只保留热力图上数值排到20%的像素点。
在这里插入图片描述
上图是通过cam技术得到的鸟类的位置定位。

五、CAM的其他应用

1、细粒度识别
论文中指出,在数据集CUB-200-2011中,使用GoogLeNet-GAP网络训练可以获得63.0%的准确率,当加入bounding box的标注框时,准确率为70.5%。现考虑到GAP的定位功能,我们可以使用cam和阈值分割的方法,得到鸟类的bounding boxes,然后使用GoogLeNet-GAP提取bounding boxes里面的特征用来分类,这种方法得到的分类准确率为67.8%。
定位功能对于细粒度的识别非常重要,因为类别之间的区别很细微,并且图像裁剪更加集中,可以更好地进行区分。

六、将CAM应用的Onet中,对Onet分类取进行分析

1、Onet网络说明
在这里插入图片描述
上图是ONet的结构图,是一个小而浅的分类网络,在tensorrt部署中,一个前向只需要3ms左右,速度非常快,在实际项目中,复杂的应用环境导致了一个网络并不能解决所有的问题,需要其他小网络做辅助,或是使用某个小网络解决某个具体的简单问题,像ONet这样的小网络如何用的好的话,可以在保证速度的前提下,解决很大的问题。
目前使用Onet做一个简单的二分类问题。

2、cam应用到Onet上的实验
Onet这里做二分类,正样本是飞机,负样本是非飞机的一切图像块,网络输入大小是80x80,原始图像块有大有小,并不是所有的飞机都在图片的正中心,有些飞机是在输入图片的边缘。

原始图片GAP+CAMGMP+CAM
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

从上个表格可以看到,GAP 与GMP在定位上的不同
2、通过CAM发现Onet的问题

原图GAP+CAM是否正常
在这里插入图片描述在这里插入图片描述不正常,
判别性区域应该在飞机上,
这里定位到了地面上,
说明ONet学的不好
在这里插入图片描述在这里插入图片描述基本正常,
,判别区域落在了飞机上,
但不是全部落到飞机上,
地面上也有

在实际应用中,Onet在测试集上的表现为98%,但是在使用的过程中发现Onet的范化能力特别差,飞机的形态发生变化,就会被分为负样本,另外飞机如果不在图片的中心位置,分类效果也不好,Onet毕竟是浅网络,范化能力不好也是可以解释的,这里是在Onet的基础上,能不能利用论文中的tricks(例如数据增强,attention等)来来提高Onet的分类准确率,同时结合实际场景,也来研究下论文中的这些tricks是否真的有用,在什么情况下有用。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值