原始问题:Weakly-supervised object localization,研究发现,图像分类任务上训练的CNN,可以直接用于物体定位
两个子问题:
本文研究以上问题的核心手段:利用GAP(Global Average Pooling)生成CAM(Class Activation Mapping)
Weakly-supervised object localization
遮挡法、用很多重叠的图块多次预测:不是end-to-end的模型,需要多次前向计算
GMP(Global Max Pooling):找到边缘的点而不是区域内的点,区域内的点无论怎么变化都不会起作用,而GAP不同,关键区域内的点都有影响
Visualizing CNNs
有的工作只分析了卷积层,并没有分析全连接层
有的工作分析了语义编码,但并没有分析具体不同特征的重要程度
CNN具有这种能力的原因是什么:通过CAM技术找出影响图像分类的关键区域
如何利用GAP进行预测(计算各类别的分数):
,其中代表最后一次卷积操作后,第k个channel的feature map在位置的值
如何生成CAM:
其实已经是CAM了,只不过为了看清楚原图中哪些区域是跟此类别最相关的,需要将其上采样成原图的大小,一般采用双线性插值方法
从CAM的结果来看,不同的类别关注原图上不同的区域,比较符合人类认知,例如dome关注的就是原图中的穹顶
GAP vs GMP:
图像分类任务上,GAP和GMP效果接近,但在图像定位任务上,GAP要优于GMP
如何改进,可以更好地解决Weakly-supervised object localization
构建XX-GAP网络:GAP前面的卷积操作得到的feature map分辨率越高,图像定位的能力越强,所以在构建实验时,对AlexNet等网络的改动基本就是删除后面的一些卷积层,在分辨率比较大的卷积层后接GAP
如何利用CAM做图像定位:
实验结果:图像分类,效果比较接近;图像定位,GAP的效果明显更好
GAP可以提取到图像分类和图像定位所需的特征,一种提升图像分类(更细粒度的图像分类)效果的改进方法就是:先用CAM技术把原图中的关键区域框起来,然后在进行图像分类
Pattern Discovery能力:
CNN具有这种能力的原因是什么:通过CAM技术区分不同特征对于分类的重要程度
分析过程:每个类别找出权重最大的3个channel,再找到该channel中高激活值再原图的区域,其实就可以区分特征的重要程度了。例如,对于一个客厅来说,最重要的特征是判断图像中有没有沙发,其次是桌子,然后是电视
结论:不同channel提取不同的特征,但都对应特定类别的相关语义
PS:本文大部分公式和图片都来自于Learning Deep Features for Discriminative Localization,对本文的理解来自于对论文的学习及对同济子豪兄讲解的学习,有理解不对的地方,欢迎指正