OCNet: Object Context Network for Scene Parsing
OCNet:用于场景分析的对象上下文网络
作者:Yuhui Yuan 、Jingdong Wang
论文:http://arxiv.org/pdf/1809.00916v1.pdf
代码:https://github.com/PkuRainBow/OCNet
摘要
上下文对于各种计算机视觉任务至关重要最先进的场景解析方法已经利用了在图像级别上定义的上下文的有效性。这种上下文携带属于不同类别的对象的混合。
根据每个像素P的标签被定义为它所属的对象的类别,我们提出像素化 object context,其由属于相同类别的对象和像素P组成。像素P的object context 的表示是属于与P共享相同类别的像素的所有特征的聚合。由于地面实况反对属于的像素P不可用,我们采用自注意方法通过学习像素相似性图来近似对象。
我们进一步提出金字塔object context和Atrous空间金字塔object context来捕获多个尺度的上下文。基于object context,我们介绍了OCNet,并表明OCNet在Cityscapes基准测试和ADE20K基准测试中都达到了最先进的性能。OCNet的代码将在https://github.com/PkuRainBow/OCNet上提供。
简介
Figure 1: OCNet预测的像素级对象上下文。第一列显示了来自Cityscapes验证集的三幅图像,第二列显示了它们的ground-truth分割地图,第三列显示了使用OCNet预测的注意力地图。第一行的预测注意图是基于目标车中的一个像素,第二行是基于目标人中的一个像素,第三行是基于目标路中的一个像素。颜色的深浅表示注意力权重的大小(最深的蓝色表示最高的值)
灵感来自每个像素的标签P是对象的类别,它属于我们介绍中的Object1上下文捕获的对象属于同一个类别与像素P .考虑到对象属于同一个类别和P提前不可用,我们使用自注意方法,通过学习一个包含所有像素和像素P之间相似性的相似性图来近似对象。我们通过根据预测的相似性图聚合所有特征来近似表示每个像素P的对象上下文
网络结构
上图为OCNet主要的网络结构
OCNet以ResNet-101为backbone(后两个block为dilated convolution,dilation rate分别为2和4),其后是这篇文章提出的object context module去计算逐像素的object context,最后是1×1的卷积输出预测图。object context module是基于Self Attention Mechanism,作者一共提出了3种不同的object context module: base-OC, Pyramid-OC, ASP-OC。
上图为3种不同的object context module分别为: base-OC, Pyramid-OC, ASP-OC。每个object context module都含有3个阶段:(1)计算X;(2)计算C;(3)融合
Base-OC
(1)计算X: 3×3的卷积减少channel从2048到512
(2)计算C: 用self-attention模块计算逐像素的attention map和object context
(3)融合: concatenate C 和 X
进一步用1×1的卷积减少channel维度为512
Pyramid-OC(受PSPNet的启发)
(1)计算X: 3×3的卷积减少channel从2048到512
(2)计算C: 在四个分支中分别用self-attention模块计算逐像素的attention map和object context。第一个分支把全部特征图作为输入,第二个分支把特征图分为2×2的子区域,每个子区域应用共享的transform,第三个和第四个分支把输入分为3×3和6×6的子区域,每个子区域的transform不共享。最后concatenate每个分支的结果并用1×1的卷积增加X的维度与object context的维度相等再进行concatenate
(3)融合: 进一步用1×1的卷积减少channel维度为512
ASP-OC(受DeepLAbV3的ASPP启发)
(1)计算X: 共有5个分支。分别为1×1的卷积,3×3的卷积,dilation rate为12的3×3卷积,dilation rate为24的3×3卷积,dilation rate为36的3×3卷积
(2)计算C: 对每个分支的结果分别用self-attention模块计算逐像素的attention map和object context。实验发现再2,3,4,5分支中使用self-attention模块会有害performance
(3)融合: concatenate C 和 X,进一步用1×1的卷积减少channel维度为512
上图介绍了Object Context module中的变量和基本原理。
在计算object context表示的自注意模块(SA)。X为输入的特征图,P为位置特征图,W为由self-attention得到的逐像素的相似度图,第i行表示所有像素与第i个像素的相关性,C为Object Context module最后得到的逐像素的object context表达。
其推倒表达式可表示为:
其中W可由以下公式得到: