在Learning Deep Features for Discriminative Localization这篇文章中,作者提出了CNN网络除了具有很强的图片处理,分类能力;同时还能够针对图片中的关键部分进行定位,这个过程被称为Class Activation Mapping,简称CAM。
那么什么叫做CAM呢,如下图所示,第一组输入图片,训练的标签式刷牙,那么通过based model+CAM之后,我们可以得到如下图第二行所示的热度图,在对最后结果影响比较大的地方生成的热度就比较高,我们可以看到在这两张图片中对于嘴以及牙刷的热度都比较高,我们可以得出这两个部分对于最后刷牙的结果有着比较大的影响。对于第三列和第四列的结果,我就不多描述了,很好懂。
下面就来讲讲CAM的网络架构,如下图所示。输入一张图片,然后进过CNN网络提取出许多feature map,每个fearure map都能够表示出整个网络的部分特征。这里的CNN网络可以使用VGG啊,或者google net系列的例如inception等等,但是有这样一个问题,我们认为feature map还保留着图片的空间信息,这也是为什么最后通过ifeature map的叠加可以得到class activation map的原因。而通常的网络中会选择全连接层进行图片特征图向特征向量的转换在这个转换过程中就会丢失空间信息。
所以文中采用global average pooling(GAP)来代替fully connected。然后将生成的这个值,最后通过一个全连接层实现相应的分类结果&