VALSE2018弱监督语义分割学习和总结1

神经网络基础理解

    神经网络里面不同层的卷积单元都扮演者视觉特征检测器的角色,从底层的视觉特征,比如边缘,角点;到高层的视觉模型,比如物体或者是场景。最后把这些东西综合起来进行分类。我们可以把最后一个卷积层看成是一个词典。每一张feature map对应检测输入中的一个单词,如果有,就在对应位置有高的激活值。后面的fc层其实就是利用这个词典进行分类。比如对于自行车分类器,他对于车轮,车把,车座这三个单词会赋予高的权值,对其他的单词权值很低,那么当他检测到输入图片的词向量在车轮,车把,车座这三个单词的置信度很高的时候,就会把这张图判断成自行车。

弱监督问题

    弱监督问题是指为实现某个计算机视觉任务,采用了比该任务更弱的一种人工标注作为监督信息。弱监督的标注比原始的标注更容易获取。例如,对于目标检测任务,image-level(图像层面)的标签相比物体的bounding box是一种弱监督的标注;对于语义分割任务,image-level的标签和体的bounding box相比pixel-level(像素层面)的标签则是一种弱监督的标注。弱监督的视觉学习,得到像素级的标记通过分类标签是最简单的,是指仅利用image-level的标注信息,通过弱监督方式学出一个模型,该模型可以预测出图像的语义分割结果。在比较专业的领域,运用比较广,比如说,在医学图像方面弱监督运用很广,标注工作一般人做不了,因为标注需要医生。这种弱监督学习的关键问题是如何去构建image-level的标签语义和像素点的关联,推断出图像所对应的segmentation mask,从而利用全卷积神经网络去学习分割模型。

相关ppt及论文:链接:https://pan.baidu.com/s/185CwL7lowORcIiuKeT9LBg 密码:9x5g

The development of WSSS(Weakly supervised semantic segmentation)

Fully Convolutional Multi-Class Multiple Instance Learning ICLR 15)伯克利

全卷积多类多实例学习

    这篇论文主要介绍了如何使用图片级标注作为数据集对像素级分割任务进行训练。想法很简单却达到了比较好的效果。文中所提到的loss比较有启发性。该图片中有的labeldense output,含有该label的最大值,仅仅对这些label计算loss大多数标记并不是对全局进行的标记,我们有较大把握对这个图里面有什么,但对个图里面没有什么却没有把握。


实验结果



Learning Deep Features for Discriminative Localizationcvpr16MIT周博磊

深层特征的学习的判别定位

2016CVPR上的一篇文章。个人觉得是一篇比较好的文章。主要通过一系列的实验,证明两个结论:1CNN提取的feature含有位置信息,尽管在训练的时候并没有标记位置信息;2)这些位置信息,可以转移到其他的认知任务当中。(Class Activation Mapping)CAM主要是通过GAPGlobal Average Pooling)来实现。GAP不是由本文提出,但之前GAP主要是用来regularizing training。本文的贡献在于明确提出卷积神经网络就有显著性定位能力,通过训练图像级别的标签(分类标签),GAP来定位物体的位置。一般来说,GAP在最后一个卷积层后面,在GAP之后通常是softmax层。

关于全连接层不能保持spatial information的理解 卷积层是一个spatial-operation,相比全连接层,能够保持物体的空间信息。比如一个物体原来在左上角,卷积之后的结果feature-map在左上角的激活值大。如果这个物体移动到右下角,那么卷积之后的feature-map同样会在右下角的激活值比较大。但是对于全连接层来说,它是将feature-map所有位置的信息综合之后输出,和物体的具体位置在哪里无关,比如一张图,人在左上角和右下角得到的fc层的输出应该是一致的(因为后面就接softmax分类了)

1 背景提出:卷积神经网络里面的每一个卷积单元其实都扮演着一个个object detector的角色,本身就带有能够定位物体的能力。但是这种能力在利用全连接层进行classification的时候就丢失了。因此,像那些全卷积的神经网络,比如googlenet,都在避免使用全连接层,转而使用global average pooling,这样的话不仅可以减少参数,防止过拟合,还可以建立feature mapcategory之间的关联,得到Class Activation Mapping

2 作者想法:global average pooling(gap)不仅仅是一个regularizer,还能够将卷积层的定位能力一直保持到最后一层。即使这个网络是训练来进行分类的,也可以在feature map上获取那些对于分类具有区分性(discriminative)的区域。比如对于一张分类成自行车的图片来说,feature map上面在车轮子,车把这样地方的激活值就会比较大。而且这种网络的训练是end-to-end的,只需要训练classification的网络,我们就可以在forward的时候获取localization的信息。


上面这张图是作者实验中设计的网络结构,其实就是把原来的一个fc层替换成了GAP层,之后接一个fc层用来分类。首先可以训练一个分类的网络,然后利用训练得到的最后fc层的参数作为权重,对前面的conv层的feature map进行加权平均,最后就得到了class activation map(w1,w2…,wn)是对gap之后的特征进行加权平均,其实也就是对gap之前的每一层feature map进行加权平均。比如说我们可以拿出负责预测澳大利亚犬的那组参数(w1,w2,,,wn),对前面的最后一个卷积层的nfeature map进行加权,就可以得到澳大利亚犬的class activation map,这张map上激活值越大的地方,表示这个地方又有可能是属于澳大利亚犬,对这张class activation map求平均,其实就是这张图属于澳大利亚犬的概率,也就是图上的灰色圆对应的值。我们去找class activation map上的热区,其实就是在对物体进行定位。

3总结 文章通过CAM,可以通过不使用位置标记,来定位要识别物体的位置。这个技术为很多弱监督学习提供了启发。但是这个方法也有一个致命的缺点:它只能找出物体的一些突出特征的区域,比如狗的头部,这样就导致在定位的时候,容易只定位到物体的一部分。这也是弱监督学习方法一个亟待解决的问题。最后,这篇文章的实验部分写得非常好,对比非常全面,值得我们学习。即这一技术产生通用的本地化深层特征,可以帮助其他研究人员了解CNN为其任务使用的区分类别的基础。




猜你喜欢

转载自blog.csdn.net/IGIli/article/details/80280694