paper:https://openaccess.thecvf.com/content_cvpr_2018/papers/Huang_Weakly-Supervised_Semantic_Segmentation_CVPR_2018_paper.pdf
code:https://github.com/terenceylchow124/DSRG_PyTorch
文章目录
- 摘要
- SEC原则
- DSRG方法介绍
- 生成种子区域
- 网络结构
- 损失函数
- DSRG方法扩增种子区域
- 如何扩展种子区域
- 实验结果
摘要
本文研究了仅以图像级标签作为监督来学习图像语义分割网络的问题,这一点可以显著减少人的注释工作。最近关于这个问题的最新方法首先使用深度分类网络来推断每个对象类的稀疏和区分区域,然后使用区分区域作为监督来训练语义分割网络。受传统的种子区域生长图像分割方法的启发,我们提出从区分区域开始训练一个语义分割网络,并逐步增加种子区域生长所使用的像素级监督。种子区域增长模块集成到深度分割网络中,可以从深度特征中得到良性拟合。与传统的具有固定/静态标签的深度网络不同,所提出的弱监督网络使用图像中的上下文信息生成新的标签。该方法显著优于使用静态标签的弱监督语义分割方法,并获得了最先进的性能,在pascalVOC2012测试集上为63.2%的mIoU分数,在COCO数据集上为26.0%的mIOU分数。
SEC原则
DSRG方法遵循SEC方法的三个规则,具体见参考更多中SEC的详解文章(以前的一篇文章)
1)Seed:利用分类网络获取物体定位信息,生成segmentation seeds
2)Expand:通过网络训练以及迭代扩展seed 区域
3)Constrain:限制segmentation map的边界,输出分割结果
4)迭代训练:迭代过程中不断优化分割结果(DSRG)
DSRG方法介绍
DSRG 方法与相关技术中提到的SEC 方法类似,是在SEC方法的基础上进行改进得到的。由于SEC方法在训练过程中种子区域始终是初始种子区域,属于静态监督设置,偏离了语义分割任务的要求,因需要准确和完整的对象区域来训练分割模型。
所以DSRG提出动态监督的方法,在训练过程中,使用迭代训练,每一次迭代中均使用种子区域扩展方法扩展种子区域,下一次迭代时使用扩展后的种子区域作为新的待扩展区域。同时也是用条件随机场方法限制边界。
生成种子区域
使用与SEC方法相似的生成种子区域方法,使用 CAM方法 [10] 和显著性检测方法分别得到前景和背景的种子区域。
细节:CAM方法详解见历史文章
根据实验结果评测,通过CAM方法,图片中大约 40% 的像素有了确定的 label ,作为初始种子区域。
网络结构
网络基于 VGG16 或者 Resnet101 网络,改全连接层为卷积层,对每一个像素进行分类,预测分类分值。网络输入为一张图片,输出为图片分割结果图。 N 个 H*W 的 feature maps ,上面的值为预测每一个像素属于某一个类别的可能性。
损失函数
在获得种子区域之后,开始介绍如何使用种子线索训练图像语义分割网络。考虑到前景和背景种子区域的不均衡分布,与 SEC 方法中提出的种子损失不同,本文中提出的平衡播种损失分别具有前景和背景的两个归一化系数,鼓励对分割网络的预测仅匹配由分类网络给出的种子提示,同时忽略图像中的其余像素。
定义C是图像中存在的类别集(背景除外),c-是背景。假设Sc是一组分类为c 类的种子区域。然后,平衡种子损失L_seed的定义如下:
其中,Hu,c表示分割图H中位置u处像素预测为c类的概率。
此外,我们使用SEC方法中提出的基于CRF的边界损失lboundary鼓励分割图与对象边界的匹配。最终,通过最小化损失函数来优化分段网络:
DSRG方法扩增种子区域
观察得到的种子区域,可以发现种子区域定位准确但十分稀疏,在实践中,大约有 40 %的像素具有标签。
为了改善静态监督的结果,希望通过迭代训练,在训练过程中通过种子区域增长方法扩展种子区域,每一次迭代使用上一次训练后扩展的种子区域作为初始种子区域,进行训练,并以这个种子区域作为基础进行扩展,直到两次迭代过程的结果不再更新为止 。
种子区域增长的理论基础是在图像中存在小的均匀区域,其中像素应该具有相同的标记,即位置相邻的像素通常具有相同的类别标签。
如何扩展种子区域
首先,根据分割网络生成的分割图 H 中像素的预测概率值与设定阈值的大小关系定义相似性标准P,公式如下:
其中,Hu,c指的是指预测分割图中位置u的像素预测为c类的概率值。θ是设定的概率阈值。实验中,设置前景类别阈值为θb,背景类阈值为θb.
其次,将分割图H和种子区域S作为输入来执行区域增长DSRG。DSRG是针对每个类的迭代过程,我们将类c的迭代增长过程表示为Vc,C∈[0,|C|]其中,c=0表示背景类。
在Vc的每次迭代中,将访问Sc中的所有位置,当访问像素Q时,将Q的8连通性邻域中的未标记像素集表示为R.对于Ru∈R.其类c的概率如上所述表示为Hu,c。然后根据P对Ru进行分类如下,更新种子区域:
最后,在访问所有位置后,我们根据规则将所有新标记的像素堆加到Sc,生成新的种子区域。更改Sc后,我们将再次访问更新的Sc。否则,Vc停止。随着分割网络能力的增加,未标记像素的数量减少,并且对象范围被正确的标签覆盖。最终,当Sc不再更新时停止更新。
实验结果
DSRG方法基本上优于使用图像级标签进行弱监督的所有先前技术,获得了目前PASCAL VOC2012 数据集上目前最好结果。
定性结果最后一行给出了一种失败模式。对于弱监督系统来说,如果没有完整的信息,强烈共存的类别(如火车和铁路,雪地和雪)就无法分开。