[PaperNotes]CAM (Learning Deep Features for Discriminative Localization)

[PaperNotes]CAM (Learning Deep Features for Discriminative Localization)_第1张图片
image.png

论文地址
这篇文章据说是现在几大顶会上各种弱监督学习方面的先驱之作,通常称为CAM,Class Activation Map。例如,只给定图像包含的物体的名字作为label,但不给出bbox,那么怎样通过这个弱label来学习出bbox+cls信息呢?CAM就给出了很好的位置提示。当然,CAM出现的比较早,改进CAM的是有的,我这里还没有去看。。

论文原文的原理和结果图:


[PaperNotes]CAM (Learning Deep Features for Discriminative Localization)_第2张图片
image.png

我尝试绘图和写出公式来理解了下:


[PaperNotes]CAM (Learning Deep Features for Discriminative Localization)_第3张图片
我对CAM的理解

相比于NIN(Network in Network)里用的全局平均池化(Global Average Pooling,GAP),这里的解释更加合理。

P.S. 因为用了CAM的pycaffe版代码(https://github.com/gcucurull/CAM-Python)来画那个activation图和原图的混合图,我才知道原来OpenCV可以画热力图的,而且有各种支持的颜色模式,最常见的就是jet了:

def py_map2jpg(imgmap, rang):
    if rang is None:
        rang = [np.min(imgmap), np.max(imgmap)]

    heatmap_x = np.round(imgmap*255).astype(np.uint8)
    return cv2.applyColorMap(heatmap_x, cv2.COLORMAP_JET)

im = cv2.imread('lena.jpg')
jetmap = im2doulbe(edgemap)
jetmap = py_map2jpg(jetmap, None)
hybrid = im2double(im)*0.5 + im2double(jetmap) * 0.4

你可能感兴趣的:([PaperNotes]CAM (Learning Deep Features for Discriminative Localization))