Context Prior for Scene Segmentation论文阅读/翻译

论文地址

论文链接:
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提供的上下文信息不足,有很大的改进空间。现有的很多增强增强上下文信息的方法主要有两种:
(1)基于金字塔的聚合方法,但是,这种方式捕获了同类的上下文关系,而忽略了不同类别的上下文相关性。如图:当场景中存在混淆类别时,这些方法可能会导致上下文可靠性降低。

在这里插入图片描述
(2)基于注意力的聚合方法,但是,由于这种方法缺少明显的正则化,注意力机制的关系描述不太清楚。 因此,它可能会选择不需要的上下文。如图:
在这里插入图片描述
同一类别(类内上下文)之间的相关性以及不同类之间的差异(类间上下文)使特征表示更强大,并减少了可能类别的搜索空间。因此作者设计了Context Prior(上下文先验),以将类内和类间的依赖关系建模为先验知识。将上下文先验视为二进制分类器,以区分当前像素属于同一类别的像素,而相反的先验可以集中于不同类别的像素。具体来说,首先使用全卷积网络来生成特征图和相应的先验图。 对于特征图中的每个像素,先验图可以选择性地突出显示属于同一类别的其他像素,以汇总类内上下文,而相反的先验可以汇总类间上下文。为了将先验信息嵌入网络,作者开发了一个包含Affinity Loss(相似度损失)的Context Prior Layer(上下文先验层),它直接监督先验的学习。 同时,上下文先验也需要空间信息来推理这些关系。为此,作者还设计了一个Aggregation Module(聚合模块),该模块采用完全可分离的卷积(在空间和深度维度上分离)来有效地聚合空间信息。
为了证明所提出的上下文先验算法的有效性,作者设计了一个简单的全卷积网络,称为上下文先验网络(CPNet)。基于骨干网络的输出特征,上下文先验层使用聚合模块来聚合空间信息以生成上下文先验映射。 在相似度损失的监督下,上下文先验图可以捕获类内上下文和类间上下文以优化预测结果。

Context Prior

总览:
在这里插入图片描述

Affinity Loss

给定输入的ground truth,我们可以知道每个像素的“上下文先验”。因此,可以根据ground truth在引导网络学习上下文先验。为此,首先以ground truth作为监督构建Ideal Affinity Map(理想的相似度图)。给定输入图像 I I I和ground truth L L L,将输入图像 I I I送入网络,获得大小为H×W的特征图 X X X。如下图所示,首先下采样ground truth L L L使其和特征图 X X X有相同的尺寸,从而获得较小的 L ~ \widetilde{L} L .然后使用one-of-K方案(one-hot编码)去编码 L ~ \widetilde{L} L 中每一类的整数标签,从而获得一个H×W×C的矩阵 L ^ \widehat{L} L ,C是类别数。接下来把经过编码了的ground truth 重塑成N × C 的大小,其中N = H×W。最后,进行矩阵乘法: A = L ^ L ^ T A =\widehat{L}\widehat{L}^T A=L L T A A A就是编码哪些像素属于同一类别的相似度图,它的形状是N×N。我们使用相似度图来监督上下文先验映射的学习。

在这里插入图片描述
对于先验图中的每个像素,这是一个二进制分类问题。 解决此问题的常规方法是使用二进制交叉熵损失。给出一个 N × N N\times N N×N的预测先验图 P P P,其中 { p n ∈ P , x ∈ [ 1 , N 2 ] } \{p_n \in P,x \in [1,N^2]\} { pnP,x[1,N2]}和理想的相似度图 A A A.其中 { a n ∈ P , x ∈ [ 1 , N 2 ] } \{a_n \in P,x \in [1,N^2]\} { anP,x[1,N2]}二进制交叉熵损失可以表示为:
L u = − 1 N 2 ∑ n = 1 N 2 ( a n l o g p n + ( 1 − a n ) l o g ( 1 − p n ) ) L_u=- \frac{1}{N^2}\sum_{n=1}^{N^2}(a_nlogp_n +(1-a_n)log(1-p_n) ) Lu=N21n=1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值