• 问答
  • 技术
  • 实践
  • 资源
透过 Transformer 重新看 OCRNet精选
来源|RainBowSecret

最近基于Transformer结构设计的骨干网络在视觉的很多任务上都取得了很好的结果,我们在这里也透过Transformer结构重新梳理一下我们的OCRNet[1]和Transformer[2]的联系,本文讨论的内容大部分也都已经更新在最新的arXiv版本[3]

首先我们先回顾一下OCRNet原始的网络结构:

原始OCRNet的框架

具体来说,上图包含如下几个步骤:

  1. 根据骨干网络中间层Pixel Representations预测Soft Object Regions (K个Soft Masks, 每个Mask对应于一个语义类别);
  2. 根据Soft Object Regions对网络深层的Pixel Representations加权求和得到Object Region Representations (每一类都对应于一个Object Region Representation);
  3. Pixel Representations作为Query, Object Region Representations作为Key-Value, 送入Cross-Attention,输出作为Object Contextual Representations; 然后把Object Contextual Representations和输入的Pixel Representation拼接在一起经过融合之后得到Augmented Representations,最后加一个分类器用于预测最后的语义分割结果;

首先我们这里给出基于(Self-)Attention的计算范式,

下面就让我们一起从Transformer结构的视角重新解读一下OCRNet的这3个步骤:

基于Transformer结构的OCRNet框架

如上图整体所示,Transformer的输入包括2部分,一部分是image representations输入Transformer Encoder用于增强特征表示,另外一部分是category queries输入到Transformer Decoder中可以用于编码不同语义类别的上下文信息。在原始OCRNet中,我们省略了灰色部分的操作,即pixel representations和region representations上的Self-Attention操作 (最新的MaskFormer[4]中也有验证Self-Attention对结果影响很小),我们会重点解读一下这里的Cross-Attention操作。

  • Decoder Cross-Attention中的输入包括category queries: [公式] , 和image features:[公式][公式] , 其中 [公式] 是特征维度, [公式] 是query个数也是语义别的个数, [公式] 是key-value的样本个数也是image features的空间维度, 其attention map的计算如下:

[公式]

其中, [公式] 是第 [公式] 个category query和第 [公式] 个image features key-value的关联度,这里计算得到的K个category queries和image features之间的attention map对应于原始OCRNet中的 Soft Object Regions,然后基于如下的attention操作得到的特征对应于OCRNet中的Object Region Representations (原始论文中的公式(4),即 [公式] ):

[公式]

这里的category queries做法也类似于最近的ViT[5]和CaiT[6]中的Class Embeddings,我们这里是每一个类都有一个自己的embedding而非所有类别公用同一个embedding,如果我们直接把Cross-Attention同时用于category query和image features,便可以得到如下框架:

基于ViT和CaiT结构的语义分割Transformer

  • Encoder Cross-Attention接收Transformer Decoder输出的Object Region Representations作为key-value信息,image features作为query信息,因此这里就类似原始OCRNet中的公式(3) [公式] 用于利用Object Region Representations去增强每个像素特征从而得到Object Contextual Representations 。

综上可以看出OCRNet方法背后的思想同Transformer的做法有不少共通之处,另外最近也有2篇非常不错的图像语义分割方面工作MaskFormer[4]和K-Net[7]都提出了很有意思的基于Transformer Encoder + Decoder的视角与思路。我们在这里主要从思路层面谈一下这2篇工作和我们OCRNet[3]的联系和区别,如有认识不准确,欢迎批评指正。

首先我们重新画图对比几种方法:

MaskFormer和K-Net的框架

OCRNet框架

根据2张图的对比可以看出,3种方法(MaskFormer, K-Net,OCRNet)都是分别对pixel representations和region representations做cross-attention来互相传播信息,即pixel representations和region representations之间的交互。区别在于:

  • ·MaskFormer和K-Net都是利用更新后的region representations上预测region class,然后利用region representations和pixel representations的内积作为region map,然后结合region map和region class来产生最后的semantic segmentation map。并且MaskFormer和K-Net都会迭代这个预测过程多次,比如说MaskFormer迭代预测6次而K-Net迭代预测3\~4次。
  • OCRNet是利用更新后的pixel representations直接预测segmentation map,这里region representations被作为为object region context信息用来增强了pixel representations, 只迭代1次。

综上,我们可以这3种方法的共同点在于都是利用Transformer结构来建模Pixel Representations和Region Representations/Mask Representations/Kernel Representations之间的信息传播,不同点在于最后产生分类预测(Recognition, 即Class Prediction)和分割预测结果(Grouping, 即Mask Prediction)的方式不同。当然MaskFormer和K-Net相比OCRNet也具有更大的灵活性,尤其是MaskFormer的Query信息具有很好的扩展性,是值得关注的语义分割研究方向!


相关推荐:

Transformer 的一家!
Transformer 的可解释性|CVPR2021
计算机视觉中的 Transformer

  • 0
  • 0
  • 1818
收藏
暂无评论