论文阅读 Adversarial Complementary Learning forWeakly Supervised Object Localization
Abstract
文章提出了ACoL通过一种弱监督的方式自动定位整合的感兴趣的区域,直接从最后的卷积层来选择class-specific的feature map。其中整个网络包含两个分类器,其中一个分类器A用来定位discriminitive regions,而另一个分类器B用来定义A没有定位出来的感兴趣区域,从而形成一种互补。
任务定义
Weakly Supervised Object Localization (WSOL) refers to learning object locations in a given image using the image-level labels. 也就是说整个任务每张图片只有类别信息,而没有其他任何信息,在这种情况下,要与出来感兴趣区域就是一种弱监督了,嘿哈
通常做法
通常做法是在VGG,resenet网络的最后接几层卷积层,从这些卷积层中去预测generate discriminative class activation maps (CAM)。但是这个存在两个问题的:
1)过度依赖那些对分类有帮助的明显的特征(category-wise discriminative features for image classification)
2) 无法密集地去预测目标物体
出现上述问题的主因就是太过于依赖对分类有帮助的那些信息了,例如分类一只猫,只会关注它的头,而不会关注它的body和leg
针对以上问题有两个典型做法
- 第一个是对map图中那些明显的区域erase掉,然后将erase掉的特征再去做分类,这样通过多个分类器就会获得多个多个明显区域,通过融合获得最后的结果,缺陷是得训练多个分类器
- 另一个思路是随机遮挡图像中的明显区域,让网络去学习更多的显著区域,但是随机遮挡并不是很有效。
所以本文提出了Adversarial Complementary Learning (ACoL)来获得感兴趣区域
整体思路:
首先通过A分类器获得感兴趣的区域,然后将这个区域遮挡,将遮挡后的map图送个分类器B来获得互补的感兴趣区域,整合两个分类器的结果获得最终的感兴趣区域。为了能够使得训练端到端,作者证明了object localization maps can be obtained by directly selecting from the classspecific feature maps of the last convolutional layer,而不需要一个后处理的过程来解决。
和AE的区别
- 将两个分类器整合成一个网络,而不是多个分立的网络
- AE需要不断迭代的产生map,他必须forward network多次,但是本文只用一次
- AE采用CAM来产生localisation map图,因此需要分为两步哈,本文只用一步, 参考Learning Deep Features for Discriminative Localization.
网络结构
Adversarial Complementary Learning
Revisiting CAM
给定全卷积网络FCN,最后输出的map图是,K是通道数。然后feature map送入到最后的Global Average Pooling中,一个通道产生一个数
然后送到全连接中,整个全连接层的权重矩阵,送到softmax里面的第C个节点的输入则是
代表了fc矩阵的第k行第c列,最后的就是localization map,也是真个弱监督学习的目的
代表的是第k张map图,以上是传统的CAM
本文提出了新的解决思路,更容易嵌入到任何网络之中,作者的思路是给定FCN的输出map S,然后送入到一个C个通道的1x1的卷积中,然后送入到一个GAP模块中,然后再送入到softmax中。
1x1卷积的参数量是,从1x1的卷积中获得最终的输出map图,
代表卷积核的的第k行,第c列。输入到最后的层softmax的输入是
和有着相同的数学表达,因此二者是等同的,产生的localization map是相同的。这样的map可以直接在前向中获得,而不必做后处理。本文直接从最后的1x1的卷积层产生的结果中来获得最终的预测map,而之前CAM论文则需要用全连接的参数对map图进行处理,本文直接将该模块嵌入到网络中,并不需要一个后处理的过程
The proposed ACoL
思路很简单的。其中整个网络包含两个分类器,其中一个分类器A用来定位discriminitive regions,而另一个分类器B用来定义A没有定位出来的感兴趣区域,从而形成一种互补。最后将两个分类器网络预测出来的两张map对应位置依次取最大值获得最终的map。从整个网络示意图中也可以看出。
算法流程(论文里有误)
整体的网络架构