Context Prior for Scene Segmentation论文阅读/翻译
Context Prior for Scene Segmentation论文阅读/翻译
- 研究论文链接
-
摘要
-
引言
-
背景知识
-
- 相似性损失
- 相似性损失层
- 特征聚合模块设计过程
- 网络架构设计
-
Experiments
-
- ADE20K
- CitySpace
- Pascal Context
-
论文地址
论文链接位于https://arxiv.org/pdf/2004.01547.pdf位置;源码连接可访问https://github.com/ycszen/ContextPrior
Abstract
作者研究了直接监督特征聚合的方法区分类内和类间的上下文。并在Affinity Loss(相似度损失)的监督下设计一种Context Prior(上下文先验)。给出输入图像和ground truth,相似度损失构建了一个理想的相似度图去监督上下文先验的学习。所学习的上下文先验提取属于同一类别的像素,而相反的先验则专注于不同类别的像素。 嵌入到传统的深度CNN中,提出的这个的Context Prior Layer(上下文先验层)可以选择性地捕获类内和类间上下文相关性,从而实现功能强大的特征表示。 为了验证方法的有效性,作者设计了CPNet,在ADE20K,PASCAL-Context,Cityscapes数据集上表现优异。
Introduction
受限于卷积层架构的影响,在现有深度神经网络(FCN)模型中提供的上下文信息量相对有限,并仍存在较大的提升潜力。现有的诸多增强上下文信息的方法主要包括两类:一种是基于金字塔式整合机制的方法;另一种则能够捕获同一类别内的空间关联性但未能充分考虑不同类别间的关联性。例如,在场景中出现类别混淆的情况时;这些方法可能会导致提取到的信息可靠性下降。

(2)以注意力机制为基础的集成方式存在不足之处:一方面该方法缺乏有效的正则化手段;另一方面其关注机制的具体关系表述不够清晰。这可能导致模型倾向于选择不相关的背景信息如图所示

为了提升特征表示的能力并减少分类时需要考虑的类别数量,在同一类别内部以及不同类别之间的差异下形成了更强的关联性。为此,作者引入了Context Prior(上下文先验),将类内与类间的关系建模为先验知识。在这一框架下,将上下文先验视为区分当前像素属于同一类别像素的二进制分类器,并集中关注不同类别像素的表现。具体而言,在全卷积神经网络中生成特征图的同时也会生成相应的概率图。针对每个像素位置,在其邻域内动态地突出显示与其具有相同类别标签的相关像素点信息以捕捉到丰富的局部语义关联性。为了能够有效地嵌入这些预先学习到的概率信息到网络模型中去,在这一过程中采用了Affinity Loss(相似度损失)来直接监督学习过程中的优化目标。与此同时,在这种概率映射的基础上还需要考虑到空间位置的重要性以便更好地推断出这些关系所代表的意义为此作者又设计了一个Aggregation Module(聚合模块)。该模块采用完全可分离的空间卷积操作来同时完成空间维度上的聚合操作以及深度维度上的特征提取操作从而实现了对多尺度空间信息的有效融合与提取
Context Prior
总览:

Affinity Loss
基于输入的ground truth数据,在引导网络中用于学习提取图像区域间的上下文关系信息。为了实现这一目标,请首先将ground truth编码为one-of-K方案,并生成Ideal Affinity Map(理想的相似度图)。具体来说,在给定输入图像I和其对应的ground truth标签L的情况下,请将输入图像I输入到网络中生成特征图X(大小为H×W)。随后,在下采样处理后使得到位掩码tilde{L}与特征图X具有相同的尺寸,并通过one-hot编码方案将其转化为二维矩阵形式widehat{L}(大小仍为H×W)。接着对编码后的widehat{L}进行重塑操作以得到N × C 的二维矩阵形式(其中N = H×W),随后计算其自乘矩阵A = widehat{L} widehat{L}^T即可获得所需的相似度映射矩阵A(形状为N×N)。

在先验图中每个像素处的任务属于二元分类问题。 通常采用二进制交叉熵损失作为该任务的标准损失函数。 给出一个N\times N大小的预测先验图P ,其中\{p_n \in P,x \in [1,N^2]\} 和理想的相似度图A 。 其中\{a_n \in P,x \in [1,N^2]\} 。 二进制交叉熵损失可表示为:
L_u=- \frac{1}{N^2}\sum_{n=1}^{N^2}(a_n\log p_n + (1-a_n)\log(1-p_n))
然而这种单一损失仅关注于单独存在的像素单元 ,忽略了其间的语义关联性 。 先验图P中的每一行对应特征图X中的相应行 。 我们可将其划分为内部像素与边界像素两类 ,此类别之间的关系有助于推导语义关联性及场景结构 。 因此我们可将这两类像素分别编码其关系属性 。 为此基于双目互熵设计了一个全局项:
T_j^p=\log\frac{\sum_{i=1}^N a_{ij}p_{ij}}{\sum_{i=1}^N p_{ij}}
T_j^r=\log\frac{\sum_{i=1}^N a_{ij}p_{ij}}{\sum_{i=1}^Na_{ij}}}
T_j^s=\log\frac{\sum_{i=1}^N (1-a_{ij})(1-p_{ij})}{\sum_{i=1}^N(1-a_{ij})}
L_g = - \frac{1}{N}\sum_{i=1}^N (T_j^p+T_j^r+T_j^s)
其中T_j^p, T_j^r, T_j^s分别表示类内预测值(精度)、类内正确率(召回率)以及外推正确率(P的第j行的外推正确率??)。
基于一元项与全局项之和,完整的相似度损失可表示为:
L_p = \lambda_u L_u + \lambda_g L_g
其中L_p, L_u, L_g分别代表相似度损失、一元损失(二元交叉熵损失)与全局损失函数,并且\lambda_u, \lambda_g分别为一元与全局之间的平衡参数。
我们将权重设定为\lambda_u = 1, \lambda_g = 1
Context Prior Layer Context
下文中先验层输出h*w*c0\ 的特征图x,我们通过聚合模块将其转换为尺寸为h*w*c1\ 的\ tilde{x}.生成的结果是\tilde{x},随后一个11的卷积层配合bn层以及sigmoid激活函数用于学习先验图p,其维度大小为$hwn(n=hw).在相似度损失的监督指导之下,下文先验图p能够有效地编码类别内部像素与类别之间像素之间的关系.具体而言,类别内部关系由y=ptildex给出,其中tildex被展平成nc1矩阵.在此运算过程中,先验映射可以根据特征图中每个像素的位置自适应地选择相应类别的内部像素作为其类别内的上下文信息.相反地,通过应用反向先验映射操作可以选择性地突出显示类别之间像素所具有的跨类别信息:overline{y}=(1-p)*tildex.在这里,1被定义为一个与p大小相等且元素全为一的矩阵.最后我们将原始特征以及这两种不同的上下文表示进行融合处理后得到最终预测结果f=concat(x,y,overline{y}).在这种情况下我们可以推断出每个像素所具有的语义相关性和图像的空间结构特性.
Aggregation Module
上下文先验图依赖于一些局部的空间信息来推断语义相关性。为此,作者开发了一个高效的聚合模块,该模块在空间维度与深度维度上分别独立地实现了特征的融合过程,从而实现特征间的全局关系建模。通过聚合周围的空间信息,模型能够更好地捕捉到复杂的语义关联性。为了最大化地整合更多的局部特征,较大的滤波器可能会导致计算开销急剧增加,因此作者提出了一种新的解决方案:将标准二维卷积操作在空间维度上拆分为两个不对称的方向卷积作为替代方案,即spatial separable convolution(Spat sep conv)。这种替代方案能够在保持等效的感受野的同时减少一半的计算开销。在此基础上,每个spat sep conv单元又被集成了一种深度可分离卷积机制,从而进一步降低了整体运算复杂度。综合考虑空间与深度维度上的特征表示需求后,我们将其命名为Fully Separable Convolution(FSC)。下图展示了该聚合模块的整体架构

Network Architecture
上下文先验网络CPNet由骨干网络与上下文先验层构成一个全卷积架构。其中骨干网络采用现有卷积神经网络架构例如加入了扩展型ResNet模块以增强特征提取能力。在构建上下文先知层时聚合模块首先有效整合了若干空间信息并在此基础上生成具有代表性的空间特征集合。随后基于该空间特征集合构建上下文相关图以学习类内与类间层次化的上下文关联关系同时通过相似度损失函数对相关图进行约束优化最终实现对分割任务的监督学习目标。在模型训练过程中作者引入了一种辅助损失项该辅助损失同样采用交叉熵形式但具体作用机制需进一步探讨以优化模型性能并提升分类精度
其中L_s, L_a, L_p分别代表主分割损失、辅助损失和相似度损失。\lambda_s, \lambda_a, \lambda_p用于平衡这三个损失,并根据经验设定为\lambda_s=1, \lambda_p=1, \lambda_a=0.4
Experiments
ADE20K

CitySpace

Pascal Context

