Learning Statistical Texture for Semantic Segmentation
CODE
Abstract
现有的语义分割工作主要集中在用神经网络学习高级语义特征中的上下文信息。为了保持精确的边界,低级纹理特征被直接跳过连接到更深的层。然而,纹理特征不仅涉及局部结构,还包括输入图像的全局统计知识。本文充分利用低层纹理特征,提出了一种新的统计纹理学习网络用于语义分割。STLNet分析低层信息的分布,并有效地将它们用于任务。具体而言,设计了一种新的量化和计数算子(QCO)来以统计方式描述纹理信息。在QCO的基础上,引入了两个模块:(1)纹理增强模块(TEM),捕捉纹理相关信息,增强纹理细节;(2)金字塔纹理特征提取模块==(PTFEM)==,用于有效地提取多个金字塔的统计纹理特征。通过大量的实验,我们证明了所提出的STLNet在三个语义分割基准:Cityscapes、PASCAL Context和ADE20K上取得了最先进的性能。
Introduction
这篇文章的核心工作是在深度神经网络中,对高维特征进行纹理信息的建模与利用。如何对一个高维特征进行统计呢?我们想到了一个非常直接的方法:对每个特征相对于平均特征的距离进行量化统计。基于这个思想,我们提出一个Quantization and Counting Operator (QCO),其又可分为1-d QCO 和 2-d QCO。
图像纹理不仅仅是局部结构属性,而且还涉及全局统计性质。结构性的通常指一些局部模式,如边界、平滑度和粗糙度。在典型的CNN中,浅层过滤器擅长提取 local texture features 局部纹理特征。当可视化这些滤波器时,我们可以观察到本地信号的不同频率被分析(图1(a))。因此,结构性质也被称为谱域分析。纹理的另一个重要特性是统计特性。它基于一些低层次的信息(如像素值或局部区域属性),侧重于图像的分布分析,如强度直方图。例如,在图1(b)中,在黑暗环境中捕获的图像通常具有较差的可视化质量。在直方图均衡化增强步骤之后,它变得更详细并且更好地用于分割。
一些传统的方法试图在他们的任务中利用统计纹理。然而,现代CNN体系结构中没有明确提取和利用统计纹理信息进行语义分割的机制。因此,本文提出了一种统计纹理学习网络来描述和利用统计纹理信息。
首先提出了一种量化和计数算子(QCO),用于在深度神经网络中以统计方式有效地描述纹理强度。具体来说,输入图像的统计纹理通常是多种多样的,并且在谱域中是连续分布的,这在深度神经网络中很难提取和优化。因此,在QCO,我们首先将输入特征量化为多个级别。每一级可以表示一种纹理统计,通过这种统计可以很好地采样连续纹理,以便于描述。量化后,计算每个级别的强度,用于纹理特征编码。
在QCO的基础上,我们进一步提出了纹理增强模块(TEM)和金字塔纹理特征提取模块(PTFEM),分别用于增强低层特征的纹理细节和从多尺度上挖掘纹理相关信息。更全面地说,低层特征通常质量较低,难以提取统计特征。受直方图均衡化的启发,TEM被设计成构建一个图来传播所有原始量化级别的信息,用于纹理增强。此外,通过纹理特征提取单元和金字塔结构,PTFEM利用来自多个尺度的纹理信息。
本文贡献如下:
- 首次将统计纹理信息引入到语义分割中,提出了一种新的充分利用纹理信息的STLNet,通过端到端的方式很好地学习低级和高级特征。
- 为了有效地描述深度神经网络中的统计纹理,设计了一种新的量化和计数算子(QCO),将连续纹理量化为多级强度。
- 在QCO的帮助下,我们先后提出了纹理增强模块和金字塔纹理特征提取模块,分别用于增强统计细节和提取纹理特征。
Related Works
Low-level Features Extraction.
低级特征在提高语义分割的性能方面起着至关重要的作用。人们提出了许多方法来提取和利用低层特征。一些方法[25,19,4,30]采用跳跃连接将低级特征传递到更深层。然而,简单的多级特征添加或拼接操作可能会导致特征未对齐问题,从而削弱低级特征的有效性。为了解决这个问题,ANN [40]提出了一种非局部块来融合多级特征。SFNet [17]通过学习和利用语义流来对齐低级和高级特征。一些作品旨在利用一些更明确的低层次信息,如边界。[6]提出了一种边界感知特征传播模块,用于传播由边界相关低级信息引导的特征。[15]明确生成和监督对象边缘。然而,所有这些方法都只考虑边缘等结构特征。与此相反,我们提出的方法进一步关注统计纹理特征。
Method
Overall Structure
Quantization and Counting Operator
卷积算子对局部变化敏感,有助于利用边界等局部特征。然而,它对于描述统计纹理是无能为力的。因此,我们首先提出一个量化和计数算子(QCO)来用统计的方式描述纹理。具体来说,它旨在将输入特征量化为多个级别,然后计算属于每个级别的特征数量。QCO可以分为两类:一维的QCO和二维的QCO,分别用于TEM、PTFEM。两种量化编码都包含三个部分:量化、计数和平均特征编码。一维QCO的结构如图3所示
1-d QCO
E_i,n :the quantization counting map
E_i : the quantization encoding vector
C:the quantization counting map 反映输入要素图的相对统计,因为计数的对象是与平均要素的距离。
2-d QCO
一维QCO的输出反映了所有空间位置的特征分布。然而,它不携带关于像素之间的空间关系的信息,这在描述纹理中起着重要的作用。为此,我们进一步提出了一个二维QCO来计算共现像素特征的分布。
Texture Enhancement Module
BackBone中浅层提取的低层特征往往质量不高,尤其是对比度低,导致纹理细节模糊,对低层信息的提取和利用产生负面影响。因此,我们提出了一种纹理增强模块(TEM)来增强低层特征的纹理细节,以便在后续步骤中更容易捕获纹理相关信息。
我们增强纹理的方式受到直方图量化的启发,直方图量化是一种经典的图像质量增强方法。具体来说,该方法首先产生直方图,直方图的横轴和纵轴分别表示每个灰度级及其计数值。我们将这两个轴表示为两个特征向量G和f。直方图量化旨在使用f中包含的统计信息将级别重构为G0。每个级别Gn被转换为G0:
在提出的TEM中,我们首先通过一维QCO传递输入特征图,得到量化编码图E ∈ R:N×HW 统计特征D ∈ R :C1×N,其中D起到直方图的作用。之后,我们得到了新的量化级别。每一个新的层次都应该是通过感知所有原始层次的统计信息而获得的,可以当作一个图来处理。为此,我们构建了一个图表来传播来自各个级别的信息。每个量化级别的统计特征被定义为一个节点。在传统的直方图中量化算法,相邻矩阵是一个手动定义的对角矩阵,我们将其扩展到一个学习矩阵,如下所示:
其中φ1和φ2对应于两个不同的1 × 1卷积,并且在第一维上执行的Softmax作为非线性归一化函数工作。然后,我们通过融合所有其他节点的特征来更新每个节点,获得重构的量化级别,其中φ3指另一个1 × 1卷积。
使用量化编码映射E ∈ R:N×HW 将重构的级别L分配给每个像素,以获得最终的输出R,因为E可以反映每个像素的原始量化级别。R通过下式获得:
R被Reshape为RC2×H×W