文章目录

  • 原文地址
  • 论文阅读方法
  • 初识
  • 相知
  • 主要技术
  • 部分实验
  • 回顾

原文地址

原文

论文阅读方法

三遍论文法

初识

对于语义分割这类密集预测任务,上下文特征是非常重要的信息。在早期的一些工作中,主要着重于捕获多尺度特征(空间维度),比如PSPNet或者DeepLab系列中的ASPP。但后来的工作利用attention机制考虑特征点之间的对应关系,比如OCNet或者DANet

上下文特征(context):某个位置周围像素点的特征。

回顾语义分割的本质,其实就是对每个像素点进行分类。而本文从一个简单的idea出发:每个像素点的标签实际上是属于这个像素点对应对象的标签。可能有点绕,大概意思就是每个像素其实并不能代表类别信息,如下图所示,之所以要将红色像素点打上car的标签,是因为这个像素点本身就属于car这个对象。

SCNet实例分割_像素点


因此,本文提出了OCRNet(object-context representation),目的就是有效地捕获到像素点对应对象的上下文特征,并用于特征强化。

从上图可以看出来,与ASPP这类方法相比,OCRNet针对特定对象,而不是只是纯粹地扩大空间感受野。与DANet这类方法相比,OCRNet构建的是像素点与对应对象区域内像素的联系,而不是周围/全局区域。

相知

介绍主要技术与部分实验

主要技术

OCRNet的目标是利用像素点对应对象的上下文特征用于特征强化,步骤也非常简单:① 首先把得到的特征图分成K个区域,每个区域对应某个特定类别的对象;② 对于每个对象区域的特征进行聚合,得到对象区域特征SCNet实例分割_SCNet实例分割_02(也称为object-contextual representation); ③ 利用特征SCNet实例分割_SCNet实例分割_02用于强化每个像素的特征表示。

1. soft object regions

利用backbone的中间层输出进行粗略分割(coarse segmentation),这样就可以将特征图分成k个区域(每个区域对应一个类别)。

HRNet直接使用最终的特征图用于粗略分割和表征,Dilated ResNet使用stage3的特征图用于分割,stage4用于表征

2. object region representations

得到k个区域后,分别对每个区域进行特征聚合:加权融合区域内每个像素点的特征。

SCNet实例分割_计算机视觉_04


其中,xi表示像素点i的特征,m表示像素点i属于这个对象的权重(softmax归一化)。

3. object contextual representations

计算每个像素点与每个区域的联系(softmax权重):

SCNet实例分割_深度学习_05


需要注意的是,在k(x,f)中会利用不同的转换函数(1x1conv → BN → ReLU)对x和y进行特征映射。

得到像素i与每个区域的权重之后,采用下式进行特征强化:

SCNet实例分割_计算机视觉_06


其中SCNet实例分割_SCNet实例分割_07同样为转换函数(1x1conv → BN → ReLU)

作者坦言这是受到transformer中self-attention操作的启发。

最后,再将原始特征xi与融合了对象上下文表征的特征yi进行拼接后,进行特征转换(1x1conv → BN → ReLU),得到最终的特征表征:

SCNet实例分割_计算机视觉_08


整体流程

最后,整体流程如下图所示:

SCNet实例分割_计算机视觉_09


其中粉色区域为划分对象区域(增加了额外的中继监督),紫色区域为局部特征生成,黄色区域为最后的特征加强与聚合

部分实验

① 是否能有效划分好对象区域,对OCRNet影响较大;相对于只考虑像素间关系的方法(DAnet,ACFnet),OCRNet的性能更好。

SCNet实例分割_深度学习_10


② 探索了基于OCRNet的上限(即在对象区域划分和特征聚合时时,使用真实标签作为参考)。

SCNet实例分割_权重_11

回顾

OCRNet本身还是一种Attention机制,不过不是单纯地考虑像素点之间的联系。而是先划分对象区域,聚合得到区域特征之后,再计算像素点与各对象区域特征间的联系。

这样的Attention策略更符合语义分割这类密集预测任务的特性。因为像素点本身是不能代表某个类别的,其主要依附于对应对象的特征。实验也证明了其有效性,此外作者在文中还提到,在ECCV2020截稿之前,使用HRNet+OCR+SegFix的组合在Cityscapes测试集上排到第一名。

SegFix是一种图像分割的后处理手段