显著性检测—学习笔记

视觉显著性旨在模仿人类视觉系统选择视觉场景的某个子集的能力。而显著性物体检测(SOD)则侧重于检测场景中吸引最多注意力的物体,然后逐像素的提取物体的轮廓。SOD的优点在于它在许多计算机视觉任务中均有广泛的应用,包括:视觉跟踪,图像检索,计算机图形学,内容感知的图像裁剪和弱监督语义分割。

现有的SOD数据集在数据收集的过程或数据质量方面存在缺陷。大多数数据假设图像包含至少一个显著物体,丢弃了不包含显著物体的图像,称为数据选择偏差。现有数据集主要包含具有单个物体的图像或处于低杂乱环境中的多个物体(通常是人)。这些数据集不能充分反映现实世界中图像的复杂性,在现实世界中,场景通常包含多个杂乱的物体。这样导致的结果便是在现有数据集上训练的表现最佳的模型几乎已经可以使性能达到饱和(例如,在大多数据集上,F-measure>0.9)但它们在现实场景上的表现却无法令人满意。这是因为在之前的数据集上训练出来的模型更加偏向较为理想的场景,所以一旦它们应用于现实世界中的场景时,其有效性可能会受到极大削弱。因此,为了解决此问题,有必要构建更接近实际条件的数据集。

在现在的数据集上只能分析模型的整体性能,这些数据集都缺乏反映现实场景中所面临的挑战的各种属性。

  • 显著性检测历史
    在这里插入图片描述
  • 显著性检测数据集
    在这里插入图片描述

Cascaded Partial Decoder for Fast and Accurate Salient Object Detection(2019)

paper

Cascaded Partial Decoder for Fast and Accurate Salient Object Detection

亮点

  • 速度快
    • 后续计算只利用了编码器的后三个卷积块的输出特征,没有使用前两个尺寸和计算消耗都比较大的卷积,与初始注意力图相比,所提出的整体注意力机制几乎不会增加计算成本,并进一步突出了整个显著对象。
    • 在每个分支都使用1x1卷积将通道降维到32,并使用了skip连接。
  • 精度高
    • 结构的有效性,双分支结构,一路生成初始显著性图,一路生成更高质量的显著性图,前者用来细化后者的特征信息,抑制干扰信息。
    • 使用整体注意力模块(holistic attention module),扩大初始显著图的覆盖范围
    • Decoder中使用改进的RFB模块,多尺度感受野,有效编码上下文
    • 两个分支中都使用了多尺度的特征,来自不同的层级

code
CPD

网络结构

在这里插入图片描述
现有的优秀的显著性目标检测网络主要依赖于集成来自预训练网络的多级特征,但是相比高级特征:

  • 低级特征实际上对于深度集成模型的性能贡献较少。
    例如原始的DSS模型在Pascal-S数据集六个输出的maxF的值,并且也计算了六个输出的推理时间。可以看出,最靠前的特征对于性能的增益减少,而其推理时间却增长的很大。
    在这里插入图片描述
  • 低级特征集成到高级特征上,会增大计算消耗,因为它们空间分辨率比较大。
    随着网络加深,特征逐渐从低级表示演化为高级表示。因此,当仅集成更深层的特征时,深度聚合模型可以恢复显著性图的空间细节。在下图VGG16的多级特征图中,与Conv1_2和Conv2_2的低级特征相比,Conv3_3的特征也保留了边缘信息。仅仅集成后面的特征也可以获得相对准确的结果。所以设计结构就去掉了过于浅层的特征,从第三层开始使用。
    在这里插入图片描述

双分支

optimization layer,使用两个卷积块来构造双分支(注意力分支与检测分支)。

  • 设计partial decoder集成来自三个卷积块的输出特征 ( f 3 , f 4 , f 5 ) (f_{3},f_{4},f_{5}) (f3,f4,f5)进而得到初始显著性图 S i S_{i} Si.
  • 经过整体注意力模块的处理后,得到增强的注意力图 S h S_{h} Sh,用其细化来自第三个卷积块的特征 f 3 f_{3} f3。因为这里可以通过聚合三个顶层的特征来获得一个相对精确的显著性图,这里的注意力图就可以有效的消除特征 f 3 f_{3} f3中的异常信息,并且极大的提升其表达能力。
  • 如果将干扰归为显著性部分,则该策略导致异常分割结果。因此,需要提高初始显著性图的有效性。使用了整体注意力模块。
  • 通过特征图 f 3 f_{3} f3与注意力图 S h S_{h} Sh的元素乘法可以获得细化的特征图 f 3 d f_{3d} f3d,经过卷积4和5可以得到对应的输出 f 4 d f_{4d} f4d f 5 d f_{5d} f5d
  • 细化后的特征最终通过另一个partial decoder得到输出的显著性图 S d S_{d} Sd

两个分支使用真值联合训练, S i S_{i} Si S d S_{d} Sd分别与真值计算交叉熵并求和,进而得到整体的损失。
在这里插入图片描述
很明显, θ i \theta_i θi θ d \theta_d θd的适当子集,这表明两个分支以交替的方式工作。

  • 一方面,注意力分支为检测分支提供精确的注意图,这导致检测分支更精确的显著对象。
  • 另一方面,检测分支可以被认为是注意力分支的辅助损失,这有助于注意力分支集中于显著对象。
  • 联合训练两个分支使模型统一突出显著的物体,同时抑制干扰物。

此外,可以利用提出的框架来改进现有的深度聚合模型,通过使用这些工作的聚合算法来整合每个分支的特征。

尽管与传统的编码器-解码器架构相比,增加了解码器提高了骨干网络的计算成本,但是由于丢弃了解码器中的低级特征,总的计算复杂度仍然显著降低。此外,所提出的框架的级联优化机制提升了性能,实验表明这两个分支都优于原始模型。

整体注意力模块(Holistic Attention Module)

给定来自优化层(Conv3_3)的特征映射和来自注意力分支的初始显著性图,可以使用初始注意力策略,这意味着直接将特征映射与初始显著性相乘。

  • 当从注意力分支获得准确的显著性图时,该策略将有效的抑制特征的干扰。
  • 相反,如果将干扰归类为显著性区域,则该策略导致异常分割结果。
    因此,需要提高初始显著性图的有效性。更具体的说,显著性目标的边缘信息可能被初始显著性图过滤掉,因为难以精确预测。另外,复杂场景中的一些对象很难被完全分割。因此提出了一个整体注意力模块,来扩大初始显著性图的覆盖范围。
    在这里插入图片描述
    这里的 C o n v g Conv_g Convg表示一个有着高斯核 k k k和零偏置的卷积操作,其中的 f m i n m a x ( ) f_{min_max}() fminmax()表示一个归一化函数,来让blurred map的范围变为[0,1]。而 M A X ( ) MAX() MAX()操作表示取最大值函数,这样可以使得趋向于增加平滑后的 S i S_i Si中显著性区域的权重系数。

相较于初始的注意力,提出的整体注意力机制增加了一定的计算消耗,但是也进一步高亮了整体显著性目标。

注意:这里的高斯核 k k k的尺寸和标准差被初始化为32和4,在训练中会自动学习。

解码器

由于架构由两个解码器组成,需要构建一个快速集成策略以确保低复杂性。同时,需要尽可能准确的生成显著图。

  • 在解码器中使用了改进的RFB(receptive field block)模块
    • 本身的RFB是将Inception模块中的 3 × 3 3\times 3 3×3卷积替换为扩张卷积
    • 在RFB上也使用了Skip连接
    • 这样可以实现多尺度的感受野,进一步捕获全局对比度信息,更加有效的编码上下文信息
  • 为了加速,在每个分支都使用 1 × 1 1\times 1 1×1卷积降低通道为32。

特征聚合公式:
在这里插入图片描述

A Simple Pooling-Based Design for Real-Time Salient Object Detection(2019)

paper
A Simple Pooling-Based Design for Real-Time Salient Object Detection
code
PoolNet

网络结构

在这里插入图片描述
U型结构网络取得了良好的性能,但是还有很大的改进空间:

  • 在U型结构中,高级语义信息逐渐传输到较浅层,因此由较深层捕获的位置信息会逐渐稀释。
  • CNN的感受野大小与其层深度不成比例,现有方法通过将注意力机制引入U型结构,以循环方式细化特征图,结合多尺度特征信息来解决感受野问题[如Pyramid scene parsing network],或者在显著性图中添加额外约束[Non-local deep features for salient object detection中的边界损失项]。

原始的FPN结构,这种U型结构的自上而下是建立在由下而上的骨干网络之上的。这随着由上而下(由深到浅)的过程中,来自深层的信息会逐渐被丢弃,并且被来自浅层的信息所淹没。

全局引导模块(GGM)

为了弥补由上而下的路径中的高层语义信息的缺失,引入一个全局引导模块(global guidance module),主要包含两个部分:一个是修改版本的金字塔池化模块(PPM),另一个是一些列的全局引导信息流(GGF),以使得在各个层级上更为明确显著性目标的位置。

  • PPM:包含了四个子分支,包括恒等映射分支、全局平均池化分支,以及两个输出为 3 × 3 3\times 3 3×3 5 × 5 5\times 5 5×5的自适应平均池化分支。
  • GGM:GGM是IG独立于U型结构的支路。通过引入一些列全局引导信息流(恒等映射),高层级的信息可以被送到各个层级,具体如结构图中的绿色箭头。通过这种方式增加了自上而下路径的每个部分中的全局引导信息的权重,以确保在构建FPN时不会稀释来自高层的位置信息。

特征融合模块(FAM)

在原始FPN中,粗略特征图被上采样两倍,然后添加一个有着 3 × 3 3\times 3 3×3核大小的卷积用在合并操作之后,以降低上采样带来的混叠效应。但是GGF需要更大的上采样率。有效并高效的弥合GGF与不同尺度的特征图之间的巨大差距是至关重要的。所以使用FAM来合并GGM粗略特征映射与金字塔的不同尺度的特征映射。具体如下:
在这里插入图片描述
FAM有两个优势:

  • 有助于模型减少上采样的混叠效应,特别是当上采样率很大时(如采样率为8时)。
  • 允许每个空间位置在不同尺度空间查看局部环境,进一步扩大整个网络的感受野。
    下面是一个可视化,可以看出,引入FAM可以很好的锐化显著对象的细节。
    在这里插入图片描述

使用边缘检测联合训练

在这里插入图片描述
网络的性能已经很好了,但是观察结果,发现大多数不准确的预测主要是因为不清晰的目标边界。
改进方法:

  • 在模块结构上添加一个额外的预测分支来预测显著性目标的边缘。
    • 在三个特征层级的FAM之后使用了三个残差块,用于信息的转换。通道数分别为128/256/512.每个残差块后接一个 3 × 3 × 16 3 \times 3 \times 16 3×3×16的卷积层来压缩特征,并配合一个 1 × 1 × 1 1 \times 1 \times 1 1×1×1的卷积层来进行特征提取。
    • 同时也拼接这个三个16通道的特征图,得到一个48通道的特征图,来讲捕获的边缘信息转换到显著性目标检测分支,继而强化细节信息。
    • 相似于[Instance-level salient object segmentation],训练阶段使用显著性目标的边缘作为联合训练的真值。
    • 结果效果一般。正如图5中展示的,对于前景和背景之间对比度低的场景,得到的显著图和边界图仍然不明确。可能是从显著物体中获得的真实边缘图仍然缺少显著物体的大部分详细信息,它们只是告诉显著对象的最外边界在哪里,特别是对于显著对象之间存在重叠的情况下。
  • 经过分析,尝试使用与[Richer convolutional features for edge detection]中相同的边缘检测数据集进行边缘检测任务的联合训练。在训练期间,交替输入来自显著对象检测数据集和边缘检测数据集的图像。从图5中可以看出,利用边缘检测任务的联合训练极大的改善了检测到的显著性对象的细节。

U2-Net:Going Deeper with Nested U-Structure for Salient Object Detection

Paper
[U2-Net:Going Deeper with Nested U-Structure for Salient Object Detection]
GitHub
U-2-Net

亮点

  • 使用ReSidual U-blocks(RSU)模块获取不同尺度的上下文信息。
  • RSU模块使用池化操作在不提高计算量的情况下增加网络深度。
  • 不基于图像分类的网络结构,提取局部细节和全局对比度信息,非提取代表语义的特征。

RSU模块

在这里插入图片描述

RSU与RES的区别

在这里插入图片描述

网络结构

在这里插入图片描述

损失函数

在这里插入图片描述

结果

  • 数据集
    在这里插入图片描述
  • 结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

参考资料

[1] Cascaded Partial Decoder for Fast and Accurate Salient Object Detection解读
[2] Cascaded Partial Decoder for Fast and Accurate Salient Object Detection原文
[3] VPR2019的显著性文章一览
[4] A Simple Pooling-Based Design for Real-Time Salient Object Detection解读
[5] 杂乱环境下的显著性物体: 将显著性物体检测推向新高度 Salient Objects in Clutter: Bringing Salient Object Detection to the Foreground
[6] 显著性检测综述(完整整理)
[7] 显著性检测数据集—学习笔记
[8] 关于文献阅读和科研选题

  • 9
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值