Label Decoupling Framework for Salient Object Detection 论文解读

该论文发表于CVPR2020。
论文链接:https://openaccess.thecvf.com/content_CVPR_2020/papers/Wei_Label_Decoupling_Framework_for_Salient_Object_Detection_CVPR_2020_paper.pdf
项目地址:
https://github.com/weijun88/LDF

文章目录

  • 待解决的问题
  • 提出方法
    • 标签解耦
    • 特征提取
    • Feature Interaction Network
    • 损失函数
  • 实验结果
    • 关于Feature Interaction的迭代次数实验部分
    • 关于损失函数的实验部分
    • 与现有方法的定量对比结果
    • 与现有方法的可视化结果对比
    • 在SOC数据集(拥有各式各样的属性)上的表现
  • 文章总结
  • 个人评价

待解决的问题

现有方法存在的问题介绍:表格1展示了两种方法EGNet和SCRN在三个数据集上的测试结果。我们可以发现,相比较预测整体而言,在边缘处的预测会更加困难(MAEedge的值均比MAEglobal的值要高)。图1中横坐标表示像素点到其最近点边缘处的距离,该距离已经正则化至0到1,纵坐标表示预测误差。我们可以发现,当像素点越靠近边缘时,该预测误差值越大,即越靠近边缘的地方越难预测

其主要原因是:存在一个边缘像素和背景像素分布不均衡的问题。即距离边缘越远的像素更容易被分类为背景像素,越近的像素很难对其进行分类。在传统的SOD方法中,将显著性目标中所有的像素都是同等对待,这就可能会使得预测结果受到靠近边缘处像素的影响。
Label Decoupling Framework for Salient Object Detection 论文解读_第1张图片
Label Decoupling Framework for Salient Object Detection 论文解读_第2张图片

提出方法

为了解决上述问题,本文利用解耦的思想,提出了一种标签解耦的显著性目标检测方法。该方法克服了以往基于边缘的SOD方法,分别预测body map和detail map。该方法设计了一个feature interaction网络来充分利用两分支的信息,通过迭代的方式得到更加精确的预测结果。本文的方法在6个SOD数据集上取得了较好的实验结果。
Label Decoupling Framework for Salient Object Detection 论文解读_第3张图片

标签解耦

在模块中,本文引入Distance Transformation (DT)来对原始标签进行分解。DT的输入时二值化标签 I \Iota I ,其中 I \Iota I 包括前景 I \Iota Ifg 和背景 I \Iota Ibg
首先,对每一个像素p,如果p属于前景像素,我们通过如下公式计算背景像素与p之间的距离,然后选取其最小的距离值作为像素p所在位置的值。如果p属于背景像素,那么值直接置为0。这样,就得到了一个新的图像 I \Iota I'。原先 I \Iota I 内的值要么是0,要么是1;而此时 I \Iota I 内的值不再是0或1。
距离计算公式Label Decoupling Framework for Salient Object Detection 论文解读_第4张图片
然后,我们对 I \Iota I 进行归一化处理,其内部值的范围为[0,1],处理过程如下:

此时,相比较于之前的方法对所有的像素都同等对待,这里将位置信息也已经考虑进去了。
最后,通过下述方式将body map (BL)和 detail map (DL)计算出来。
Label Decoupling Framework for Salient Object Detection 论文解读_第5张图片
下图展示了获得的一些解耦标签示例:
Label Decoupling Framework for Salient Object Detection 论文解读_第6张图片

特征提取

关于特征提取网络,作者采用ResNet-50作为基础网络。在这里,作者去除了所有的全连接层,只是保留了所有的卷积层。如图2所示,作者使用了四个尺度的特征,然后分别通过两层卷积来调整特征(降特征的操作),最后使其能够适应于两个网络分支 body map和detail map的预测。

Feature Interaction Network

该网络是一个encoder-decoder的网络架构,图2并没有很好的将其描述出来,而仅仅是给了一个decoder部分该部分我建议直接看其代码实现会比较清楚,其中包括迭代方法,如何与两分支进行交互。

损失函数

损失函数定义如下:
损失函数
其中,K表示迭代次数,权重 α \alpha αk设置为1。每一次迭代的总损失分别由body损失,detail损失和segment损失组成。
在这里插入图片描述
对于body map,detail map,segment map预测的约束,作者采用BCE损失函数:
在这里插入图片描述
其中,g(x,y)表示真实标签在(x,y)处的值,p(x,y)表示(x,y)处预测的值属于显著性目标的可能性。
为了考虑图像整个结构的信息,而不仅仅是对每一个像素都单独处理,作者引入IoU损失来对预测的最终结果进行约束,该损失是在整个图像的范围内衡量两张图像的相似性,其表示如下:
Label Decoupling Framework for Salient Object Detection 论文解读_第7张图片
该损失并没有对body map和detail map进行约束,因为该损失要求图像必须属于二值图像。

实验结果

关于Feature Interaction的迭代次数实验部分

从表格4可以看出来,设置迭代次数为1能达到最好的结果。因为随着迭代次数增加,会使得网络越来越深,优化也会越来越困难。
Label Decoupling Framework for Salient Object Detection 论文解读_第8张图片

关于损失函数的实验部分

从表格5中可以得到以下结论:

  1. Body + Detail 和 Body + Edge 相比,充分表明了 detail label 的有效性。
  2. Body + Detail 和 Sal + Detail 相比, 充分表明了 body label 的有效性。
  3. 通过解耦的操作,在没有边缘处像素的干预情况下,中间像素能够使得网络学习到更好的特征表示。

Label Decoupling Framework for Salient Object Detection 论文解读_第9张图片

与现有方法的定量对比结果

作者将本文的方法与14种SOD方法进行对比。标红处表示该方法最优。此外,在图4中,作者在五个数据集上给出了precision-recall曲线和F-measure曲线,本文方法依旧最优。
Label Decoupling Framework for Salient Object Detection 论文解读_第10张图片
Label Decoupling Framework for Salient Object Detection 论文解读_第11张图片
图6展示了各个方法在Error-Distance分布的曲线图。我们可以发现,越靠近边缘的地方(横坐标由右向左),本文方法Error分布的比重相比较于其他方法更小。这充分说明本文方法在边缘区域的预测结果要更好一些。
Label Decoupling Framework for Salient Object Detection 论文解读_第12张图片

与现有方法的可视化结果对比

图5展示了一些视觉对比结果,本文的方法在预测结果的准确性上要更高,拥有更加清晰和准确的显著图。
Label Decoupling Framework for Salient Object Detection 论文解读_第13张图片

在SOC数据集(拥有各式各样的属性)上的表现

本文方法的鲁棒性验证:在不同场景下的SOC数据集来进行验证。
Label Decoupling Framework for Salient Object Detection 论文解读_第14张图片

文章总结

本文提出了一种基于解耦思想的显著性目标检测方法。采用两分支的解码结构分别预测 detail map 和 body map。前者能有助于模型学习到更好的特征表示,后者能够避免边缘附近的像素对预测结果的干扰。通过这两者,本文方法能够得到较好的预测结果。

个人评价

优点:解耦思想的利用(虽然近几年在计算机视觉领域使用较多);确实解决了以往SOD方法在边缘处的预测问题。
缺点:关于损失函数的消融实验部分,我没有看到可视化对比结果,即 body map 和 detail map 对最终的预测结果视觉上对比差异如何?
整体上,该工作确实是解决了SOD存在的一个问题,挺好的!这是我第一次接触显著性目标检测,以上纯属个人理解,欢迎大家评论给出自己的理解并指出不足,共同学习。谢谢!

你可能感兴趣的:(显著性目标检测,计算机视觉,深度学习)