CCNet: Criss-Cross Attention for Semantic Segmentation论文阅读--2020TPAMI

CCNet: Criss-Cross Attention for Semantic Segmentation论文阅读

目录:

  • CCNet: Criss-Cross Attention for Semantic Segmentation论文阅读
    • Abstract
    • INTRODUCTION
    • APPROACH
      • 3.1 Network Architecture
      • 3.2 Criss-Cross Attention
      • 3.3 Recurrent Criss-Cross Attention (RCCA)

论文下载地址:点击此链接跳转
这是博主自己在github整理的目标检测方向论文的合集,应该算比较全,目前已更新至2020ECCV,即将更新:2020IJCAI合集,欢迎下载…

读这篇是因为这次听vlase2020里面有讲到CCNet,觉得里面提出的注意力还挺有意思,就看了看文章的注意力那块,后面部分就…见谅

Abstract

       上下文信息在视觉理解中至关重要,例如语义分割和目标检测。作者提出了交叉网络(CCNet),以一种非常有效的方式获取整个图像的上下文信息。对于每个像素点,作者以一种新颖的交叉注意力模块在其交叉路径上获取所有像素点的上下文信息。通过进一步的递归操作,每个像素点最终可捕获全图像的依赖关系。此外,作者还提出了一种类别一致性损失以加强交叉注意力模块产生更具有判别性的特征的能力。总的来说,CCNet具有以下优点:

  1. GPU内存友好。与non-local块相比,递归交叉注意模块对GPU内存的占用只需要non-local块的11*85%。
  2. 计算效率高。反复出现的交叉注意力块可显著减少non-local块85%左右的FLOPs。
  3. 最先进的性能。作者在语义分割benchmark上进行了广泛的实验,包括Cityscapes, ADE20K, human parsing benchmark LIP,实例分割benchmarkCOCO,视频分割benchmark CamVid. 分别在Cityscapes, ADE20K, human parsing benchmark LIP取得了81:9%, 45:76% 和 55:47%顶尖性能。

INTRODUCTION

       语义分割是计算机视觉领域的一个基本问题,其目的是为图像中的每个像素分配语义类标签。
       目前的一些SOTA语义分割方法都是基于FCN上做了显著的改进,但是由于固定的几何结构,传统的FCN有一个局限是只提供短程上下文信息的局部接受域。由于上下文信息不足的限制,也极大地影响了分割的准确性。
       为了弥补FCN的上述不足,一些工作引入了上下文信息,有的用的是空洞卷积,但空洞卷积只能从周围的几个像素上收集信息,并不能产生密集的上下文信息。而基于池化的方法是以非自适应的方式聚合上下文信息,图像所有像素都是经过同样的上下文提取程序进行处理,这并不能满足不同的像素有不同的上下文依赖。为了整合密集的像素级上下文信息,又出现了一些全连接图神经网络的方法,利用估计的全图像上下文表示来增强传统的卷积特征。PSANet通过一个预测的注意力映射来聚合每个位置的上下文信息。non-local则是利用了自注意机制,使任一位置的单一特征能够感知其他所有位置的特征,从而获取全图像的上下文信息。这种特征增强方法能够灵活地表示特征之间的非局部关系,并在许多视觉识别任务中取得了显著的改进。然而,这些基于gnn的non-local网络需要生成较多的注意力图来评估每个像素对之间的关系,导致其时间和空间复杂度都非常高O(N2),其中N是输入特征的数量。
       为了解决上述问题,作者想要用几个连续的稀疏连通图来代替原本的单个密集连通图,这会需要更少的计算资源。 作者在下图中比较了non-local块和CC注意力模块间的差异,non-local块和CC注意力模块都以特征图为输入,生成每个位置的注意力图,并将输入特征图转换为自适应的特征图,为了实现捕获全图像依赖关系的目标,作者创新性地对CC注意力模块做了简单的递归操作。局部特征首先通过一个CC注意力模块来收集水平和垂直方向上的上下文信息,然后将第一个CC注意力模块生成的特征图输入到第二个CC注意力模块中,最终由交叉路径得到整个特征图所有位置的上下文信息。也就是图一中的每一个红点都能收集到来自其他位置的信息来增强位置表示。在CC模型中共享参数以保持模型大小,并且由于输入输出都是特征图,因此CC注意力块能够轻易插入到任何全卷积网络中以端到端的形式学习全图像上下文信息。并可直接扩展到3D网络,用来捕获远程时间的上下文信息。
CCNet: Criss-Cross Attention for Semantic Segmentation论文阅读--2020TPAMI_第1张图片

       为了使递归CC注意力块能够学习到更具有判别性的特征,作者还引入了一个类别一致性损失来增强CCNet。类别一致性损失迫使网络将图像中每个像素点映射到一个特征空间中的n维向量,这样属于同一类别的像素的特征向量会靠的很近,属于不同类别的像素的特征向量则靠的较远。
Contributions:
       1、作者提出了一种新颖的交叉注意力模块,可以更有效地从全图像依赖中获取上下文信息。
       2、作者提出的类别一致性损失可以迫使交叉注意模块产生更多具有判别性的特征。
       3、CCNet利用反复的CC注意力模块,在实例分割benchmark中取得了sota的结果

APPROACH

3.1 Network Architecture

       大体的网络架构如下所示,首先输入图片经过一个CNN,得到特征图X,大小为H*W。为了保留更多的细节,有效地生成密集特征图,作者去掉了最后两个下采样,并在后续卷积层中使用空洞卷积,使输出特征图X的宽高增大为输入图像的1/8。在得到X后,首先使用卷积层来对X进行降维,得到H,然后H输入CC注意力模块,将交叉路径中的每个像素的上下文信息聚合在一起得到新的特征图H’。不过H’值包含水平和垂直方向的语义信息,不足以实现准确的语义分割。为了获得更加丰富和密集的上下文信息,作者将H’又输入一个CC注意力模块,输出特征图为H’’,这样H’‘中的每个位置都能从所有像素中获取信息。两个CC注意力模块共享相同的参数,这样避免增加过多的参数,作者把这个结构称为recurrent criss-cross attention module(RCCA)。然后将H’'与X进行concatenate,然后接几个有BN和激活的卷积层以进行特征融合,最终融合后的特征输入分割层预测最终的分割结果。
CCNet: Criss-Cross Attention for Semantic Segmentation论文阅读--2020TPAMI_第2张图片

3.2 Criss-Cross Attention

       作者提出CC注意力模块来通过轻量级的计算和存储在局部特征表示上建模全图像依赖。CC注意力模块在水平和垂直方向收集上下文信息,提高像素级表示能力。如下图所示,局部特征图H输入后,首先经两个1×1卷积进行降维得到Q, K。在获得Q, K后,通过关联操作进一步生成注意力图A。在Q空间维度的每一个位置u,我们可以获得一个向量Qu ∈RC’ 。同时我们可通过从K中提取和位置u处于同一行和同一列的特征向量获得一个集合Ωu∈R((H+W-1)*C’),然后进行以下关联操作:
在这里插入图片描述

CCNet: Criss-Cross Attention for Semantic Segmentation论文阅读--2020TPAMI_第3张图片
       这样di,u∈D表示Qu和Ωi,u之间的关联程度,i=[1,…,H+W-1],D∈R(H+W-1)*(W*H),然后经一个通道维度的softmax计算注意力图A。
       H经另一个1*1卷积层生成V∈R(C*H*W),我们可以获得一个向量Vu∈RC和集合Φu∈R(H+W-1)*C,Φu是V中与位置u同行或同列的特征向量,然后上下文信息通过一个聚合操作收集:
在这里插入图片描述
       H’u是H’中在位置u的特征向量,Ai,u是A中在通道i和位置u的标量值。这样将上下文信息添加到局部特征H中,增强像素级表示,因此,它能够具有广泛的语义观,并根据空间注意力图选择性地聚合上下文信息。这些特征表示获得了极大的增益,并对于语义分割鲁棒性更强。

3.3 Recurrent Criss-Cross Attention (RCCA)

       尽管CC注意力模块可以捕获水平和垂直方向的上下文信息,但一个像素和其周围不在交叉路径上的像素之间是没有连接的。为了解决这一问题,作者引入了一种基于CC注意力模块的RCCA操作。RCCA模块可以展开到R个循环中,在第一个循环中,交叉注意力模块以CNN中提取的特征图H作为输入,输出特征图H’,H’和H形状相同。在第二个循环中,交叉注意力模块以H’作为输入,输出H’’。
CCNet: Criss-Cross Attention for Semantic Segmentation论文阅读--2020TPAMI_第4张图片
       RCCA模块循环了两次(R = 2),这样就能够从所有像素中获取全图像的上下文信息,从而生成新的上下文信息密集丰富的特征。
       以A和A’标记loop1和loop2中的注意力图,由于我们只关注在空间维度而不是通道维度上传递的上下文信息,所以1×1卷积可看作恒等连接。在R=2时,由RCCA模块构建出的特征图任意两个空间位置之间的联系都可以由函数f来清晰定量地描述:
在这里插入图片描述
       u(ux, uy)∈R(H*W)是H中的任意空间位置,ucc(uxcc, uycc)∈R(H+W-1)是以u为中心的十字形结构中的一个位置。函数f是由特征图中的position pair(ucc, u) ∈ R(H+W-1)×(W×H)到注意力图A∈R(H+W-1)*(W*H)中的一个特定元素Ai,u的一对一的映射。ucc映射到A中的特定行i,u映射到A中的特定列i。借助函数f,我们可以很容易地描述H’'中的位置u以及H中的任意位置θ间的信息传递,很明显信息可以由θ传递至u当其在u的交叉路径上。然后我们关注那些不在u的交叉路径上的θ,位置(θx, θy)在循环1中会先传递信息到(uxy)和(θx,uy),而这两个点又在(ux,uy)的交叉路径上,然后这两个点在循环2中传递信息到(ux,uy),这样θ(θxy)的信息最终就输入到了(ux,uy)中。
       RCCA模块弥补了CC注意力模块不能从所有像素上获取密集上下文信息的不足。与CC注意力模块相比,RCCA模块(R = 2)不会带来额外的参数,能够以较小的计算增量获得更好的性能。

你可能感兴趣的:(语义分割)