Bootstrapping the Performance of Webly Supervised Semantic Segmentation 论文笔记
由于在阅读该文章的时候遇到了很多问题,一开始也看不懂,想找博客看看别人理解的时候由于文章比较新,没有一篇博客是关于这篇文章的,所以现在自己写一篇吧(还是第一篇)。有问题希望大家能够帮忙指正。
论文地址:http://openaccess.thecvf.com/content_cvpr_2018/CameraReady/1401.pdf
一、介绍
本文为2018CVPR的一篇文章,主要是为了解决在弱监督的情况下的语义分割问题。
不同于图像的识别任务,完全监督下的语义分割是需要我们有像素级别的样本标注。这本身就是很耗费时间和精力的。另一方面是网络训练对于样本量的要求大大增加,所以导致样本数量的缺乏和样本类型的单一性成为了限制完全监督方法发展的主要因素。所以,这个时候弱监督下的图像的语义分割成为了目前解决样本问题的一个有效途径。
该文章主要是想通过两个步骤来完成弱监督的语义分割问题:
- 通过一个bootstrapping process来生成准确的像素级别的分割掩模(mask)
- 将刚才生成的结果用作训练集,将问题转化为一个完全监督问题
很明显,第二步是我们非常熟悉的语义分割问题一般解决思路,这篇文章重点就是在于第一步,如何通过弱监督的方法构建第二步完全监督的训练集。
如图所示,图中左侧的Target domain是我们希望得到分割结果的目标训练集,而右侧Web domain为我们能够从网上获取出的用于训练分割器的辅助训练集,两者互相影响、相辅相成。正如它自己写到的:Model-T应用自己得到的信息去辅助Model-W进行网络图片的过滤和筛选,而Model-W反过来用高质量的网络分割图像来辅助Model-T并改进其分割结果。
通过两个domain的结合,获取到了更为精细化的分割结果,并最后应用到了正常的完全监督框架中,得到了state-of-the-art的结果:在PASCAL VOC 2012 上,以 VGG16 network 为baseline的网络获得了60.2% IoU、以 ResNet50为baseline的为 63.9% IoU。证明了这个框架的有效性。
二、主要思想与贡献
简要来说,本文的主要思想是,首先致力于通过自举过程为训练图像创建精确的pix-level的mask,然后将这些现在精确分割的图像用作更标准的GroundTruth。工作的motivation在于:在目标数据集中,我们通常具有可靠的图像级标签,而从网络爬取的数据可能具有不可靠的标签,但可以通过过滤,剩下一些易于分割的图像,因此网络上的图象集合具有可靠的边界。这两种形式的信息是互补的,我们使用这种观察来建立一种新型的双向转移学习。该框架在两个领域之间传递知识,目标领域和网络领域,引导弱监督语义分割的表现。
文章中写到的主要贡献:
- 提出了一个双向的迁移学习框架来引导弱监督的语义分割
- 提出了一个有效的方式去在网上寻找有效且优质的信息(用于寻找Web domain数据)
- 将Web domain的知识应用于Target domain来生成更优质的分割结果
- 将上述步骤生成的Target domain 的图像用于训练标准FCN框架,并得到了state-of-the-art结果。缩小了有监督和弱监督之间的效果差距。
实际上重点就是在手头的训练集没有像素级别标签情况下,完成语义分割这个事情。
三、主要内容
本文涉及到的相关领域的知识较多,主要分两个方面,一个是学界在弱监督方面的一系列工作和尝试,另一个就是网络监督学习Webly supervised learning。
本文的主要pipeline如下图所示:
整个操作流程在于:
- 在Target domain中,在VOC上以图像级别标签训练一个Initial-SEC模型,并得到初始的粗略估计。
- 在Web domain中,将Initial-SEC用作filter来过滤网络上的噪声(这里指标签与图像不对应或者不易分割的图像)信息。接下来依次训练Web-SEC、用GrabCut改善分割结果、训练Web-FCN。
- 回到Target domain,将之前从Web domain 中得到的信息进行迁移,生成Target domain的最终分割结果。
- 用Target domain得到的分割结果来训练最终的分割网络Final-FCN。
从上文中可以看到,作者在文章中重点使用了一个SEC(“seed,expand and constrain”)模型——Seed , Expand and Constrain: Three Principles for Weakly-Supervised Image Segmentation. (ECCV 2016)。先简单介绍SEC模型如下:
SEC模型提出一种新的损失函数,主要基于以下三点:
- Seeding Loss——对目标进行弱定位(weak localization)生成初始mask
- Expansion Loss——对弱定位的mask进行合理的扩大
- Constrain-to-boundary Loss——对扩大后的mask进行合理的约束,更贴近目标边界
因此将该方法命名为SEC(Seed + Expand + Constrain)
回到本文中,详细到每一步骤说明:
- 在Target domian 训练Initial-SEC
该训练过程和SEC方式完全一致,loss如下:
其中,通过Class Activation Mapping(CAM)来监督位置线索,也就是弱定位(weak localization),所谓的弱定位,就是通过图像层面(image-level)的label对图像中的目标进行定位,
控制如何去得到heat map,并提出了一个GWAP(Global Weighted Rank Pooling)方法,对每个类别计算加权平均得分,对于那些可信度较高的区域(即更有可能是目标的区域),对应的权重就比较大,反之亦然。
由于由Expansion loss扩充后的mask较大,因此需要对其进行合理的约束,使其更贴近目标边界,而Constrain-to-boundary loss就是为此而设计。
在SEC原文中,他们是使用分割结果作为最后的输出结果,但是根据作者观察,实际运行情况并不好,所以作者采用其只生成初始的分割结果。
- 训练Web domain模型
首先是从网上抓取数据和过滤数据。
他们先从网上基于类的名称用搜索引擎进行搜索(文中用的是必应),包括但不仅仅是类名称,还有同义词以及搜索引擎提供的类似的单词。
经过贪婪搜索(不管是不是真的符合我们所寻找的条件,全都放到搜索结果中),然后用Initial-SEC模型对其进行过滤,并得到clean data。选取的时候依据两个原则:
- 目标所占的像素必须处在一个预定义好的区间之中,即不能太大,也不能太小。
- 其他前景所占的像素区域大小必须小于一个阈值。
总结一下,其实就是希望选出来的图像包含的类别较少,而且既不太大也不太小,方便分割。
然后就是训练Web-SEC。
就是重新训练一个新的SEC模型,称作Web-SEC模型,用于生成web image的分割结果(mask),效果比Initial-SEC要好(因为图片简单而且类别单一)。
接下来就是用GrabCut模型对分割结果进行调整。
由于本文中提到:Web-SEC模型擅长于捕捉到整个目标区域但是容易出现过分割的情况。所以作者使用了GrabCut模型来对于分割结果进行调整。具体来讲就是通过在分割出来的mask周围小范围打出不同大小(但是框与框之间区别不大)的bounding box,然后用GrabCut提取出分割结果,然后将GrabCut提取出的分割结果和Web-SEC的分割结果进行结合,得到最终的Web图片分割结果。
最后训练Web-FCN。
在上一步得到了web的图象集合之后,然后就可以进行传统的FCN训练了,本文中用的是1/8分辨率、带有空洞卷积的FCN框架(与DeepLab相似)。
- 提高初始分割结果
在一开始训练出来的Initial-SEC模型中,我们已经得到了一个我们目标集合图像的一个初始分割结果,而我们现在又有了Web-FCN,对于我们目标集合又能产生一个新的结果,接下来就按照如下方式来对两者进行结合:
其中,代表Target domain中的分割结果,
代表的是第i个像素的所属类别。
和
分别代表了Web domain中的分割结果和最终分割结果。
上述的策略动机在于:Target domain中的分割类别更为准确,所以在类别产生分歧的时候,要以Target domain中的分割结果为准。如果有效类(目标类)的像素数低于阈值(目标区域过小),我们也会遵循(Target domain)中的标签。也就是说,我们需要保证该图像的图像标签所表示的区域不会过小(主要想分割出的目标区域不能太小)。而由于Web domain提供的边界更为精确,所以其他任何情况下都遵循
(Web domain)的标签。
- 训练最终的FCN
最终终于得到了我们所期望的目标集的图像的像素级标签(代替Ground Truth),然后就可以用这些作为训练集训练标准FCN网络。于此,整个弱监督图像语义分割问题转化成了完全监督的语义分割问题。
四、实验结果
本文所采用的数据集一共分为两个部分,第一个部分为从必应上搜索得到的数据集,另一个部分为PASCAL VOC 2012。分别对应我们模型中的Web domain 和Target domain。
该实现基于MXNet。 有关SEC模型,Initial-SEC和Web-SEC培训的详细信息与SEC原文相同并且遵循相同的参数,除了训练Web-SEC,使用较小的初始学习率1e-4。 对于Grabcut细化,设置阈值t = 0.7。 对于Web-FCN,用基于DeepLab的结构,其输出分辨率为1/8。 对于Final-FCN,除了基本结构之外,还引入了全局多标签分支以鼓励场景一致性。 我们使用标准随机梯度下降(SGD)进行优化。 对于后处理,使用多尺度信息和denseCRF。
对比现在已有的无监督弱监督与完全监督的方法,本文方法在PASCAL VOC 2012上的validate数据集上已经快赶上完全监督的效果了。
和自己的方法进行变量分析。
对比发现网络图像越多,效果越好。但是首要是需要进行过滤和筛选。
五、总结
自我总结后,我认为本文的闪光点在于:
- 提出了一个基于弱监督的学习框架,在训练集只有图像级别标注的时候,达到了和完全监督相近的分割结果。
- 网上的数据数量巨大,但是数据本身类别过于杂乱或者存在噪声数据。而现有的大多数据集如PASCAL VOC 2012数据集没有像素级别的标注。原本两个都是不可以直接拿来用的,但是作者创造性地提出了一个双向迁移学习框架,使得两个数据集互相学习互相指导对方的分割。并最后将问题转化为了完全监督问题并可以套用现在已有的任何一个完全监督框架。
- 采取了一系列步骤改善分割结果,如GrabCut和最后的两个分割结果的融合策略。
- 整个文章从问题提出一直到每一步的解决方法,到最后的实验和分析,思路清晰且自然,没有生硬的搬某个方法去解决问题,而是对于问题有透彻的分析之后自然应用方法进行解决。