Weakly-Supervised Semantic Segmentation Network with Deep Seeded Region Growing
当前的问题及概述:
在语义分割任务中,为了减少人工标注的数据量,现在的很多算法转移到了弱监督任务(有image-level标注,无pixel-level标注)上,目前研究该问题的方法主要是利用深度网络对每个对象类的稀疏区域和描述区域进行推理,然后用判别区域作为监督训练语义分割网络。
本文提出的弱监督网络利用图像中的虚拟信息生成新的标签。从判别区域出发训练语义分割网络,逐步增加种子区域生长的像素级监督。 将基于区域相似准则的种子区域生长模块集成到深度分割网络中,利用深度特征进行匹配。
模型及loss:
2.1Seed generation with classification network:
本文使用CAM方法来进行前景分类。Backbone选用VGG-16网络,在conv7应用全局平均池(GAP)并通过分类器生成每个对象类的热图。在此基础上,通过对热图施加一个阈值,得到有区别的目标区域。同样,我们对背景进行同样的seed cues,像素值较低的区域作为背景。结果的seed cues从前景和背景堆叠到一起,成为一个单一的通道分割mask。图1可以看到,本文框架将区域生长模块以seed cues和分割图为输入,产生潜在的像素级监督,比仅有seed cues更准确、更完整。
2.2Seeding loss After
在获得seed cues后,使用种子平衡损失算法,该算法在忽略图像中其余像素点的情况下,只匹配分类网络给出的seed cues。设C为前景图像集合,¯C为背景。假设Sc是一组分类类c的位置,Hu,c表示c类在分割map H的u位置的概率。然后,balanced seeding loss ℓseed如下:
此外,我们使用Seed, expand and constrain: Three principles for weakly-supervised image seg- mentation中提出的 boundary loss Lboundary,用于鼓励分割地图匹配对象边界。总loss为:
2.3Deep seeded region growing
在实验中,大约有40%的像素有标签。所以为了把seed cues延长到未标记的像素,使用更密集的监督,以训练更好的细分网络。种子线索生长的基础是在图像中有小的均匀区域,其中像素应该有相同的标签,这里我们引用了一个经典的算法,种子区域生长(SRG) 。在SRG中,一些种子像素最初是基于一些简单的标准设定的(例如颜色、强度或纹理)。一旦初始种子被放置,生长过程寻求获得均匀的图像区域,每个区域包含至少一个初始种子。由于low-level特征对目标的类间特征不具有很强的鲁棒性,传统的SRG算法通常存在过度分割的现象。
因此本文将SRG集成到深度分割网络中进行弱监督语义分割,称为DSRG,由于区域生长需要规定一个相似性准侧来判别生长区域是否正确,这里做的相似准则P是分割网络生成的分割图H中一个像素点的简单概率阈值,其中Hu,c为类c中位于u位置的像素的概率值,θ是概率阈值,前景共享一个相同的阈值θf,背景为另一个阈值θb:
具体种子区域生长算法:
区域生长,故名思义就是让一颗种子在一个区域内按某种规则生长,待生长完全后,【这棵大植株】就是你要的目标区域了。所以我们在完成这个算法的时候就必须明确以下几点:
①区域:我们可以规定其在我们想要的图像区域内生长,一般情况我们的区域就是整张图像范围。
②种子:怎么定种子?种子可以是单个像素点也可以是某一个区域。可以是整幅图的第一个像素点,可以是图中灰度最大的点,也可以是某一片颜色的区域。即种子种在哪?种什么种子都可以认为设定。
③生长规则:我们可以按照像素值,按照颜色,纹理等特征来规定生长规则。比如我们可以定 邻域内像素与种子的灰度值差小于阈值T则认为是同一类,即把它归为种子区域。一般都是在种子的四邻域或八邻域内进行判断。
④终止生长:如何使区域生长停止。要是其停下来要么是遍历了图像中的所有的点,也就是所有的像素点都有了归属。或者种子库已经用完后,则说明生长停止。
实验:
消融实验:
不同算法的性能比较:
效果图: