龙空技术网

干货!在语义分割任务中学习统计化纹理

AITIME论道 100

前言:

现时我们对“纹理图像分割”大概比较关切,看官们都想要学习一些“纹理图像分割”的相关资讯。那么小编在网摘上搜集了一些对于“纹理图像分割””的相关资讯,希望姐妹们能喜欢,各位老铁们快快来了解一下吧!

现有语义分割研究主要关注高层次语义特征的提取,(例如通过各类注意力模型提取全局的上下文信息),对低层次特征提取方式的研究工作相对较少。但低层次特征同样也在语义分割中发挥重要作用。论文提出了一个量化与计数模块(QCO)来以统计的方式在深度神经网络中对纹理进行表征。在QCO的基础上,论文进一步提出对纹理细节进行增强的纹理增强模块(TEM)和从多尺度提取统计纹理特征的金字塔纹理特征提取模块(PTFEM)。上述模块在增加较少计算量的前提下,能够有效地提高语义分割任务的效果。

本期AI TIME PhD CVPR直播间邀请到了北京航空航天大学硕士生祝澜耘,带来分享——《在语义分割任务中学习统计化纹理》。

嘉宾介绍

祝澜耘:北京航空航天大学硕士在读,在商汤兼任见习研究员,目前研究领域主要集中在图像分割,自监督学习,半监督学习,元学习等。

个人主页:

背 景

语义分割简介

在深度学习领域,语义分割任务研究主要关注的就是特征(feature)。说到特征可以分为两个方面:如何提取有用的特征以及如何结合不同层次的特征。

01

如何提取有用的特征?

早期全卷积网络(FCN)第一次提出了如何去实现语义分割模型的基本框架,直接采用卷积然后PSPNet提出了一个金字塔的结构,从多感受野、不同的尺度去提取特征,随后DeepLab V3采用空洞卷积(Dilated Convolutions)的形式提取金字塔结构的特征,以及采用了比较热门的non-local attention机制的DANet。提出这些网络模型的论文都在研究如何在分割任务中提取有用的特征。

How to extract useful features

02

如何结合不同层次的特征?

语义分割既需要非常精细的细节,又需要对整张图像非常强大的理解,因此对于不同层次的特征进行较好的结合至关重要。首先UNet采用encoder-decoder之间的跳跃连接(skip-connection)将浅层特征和高层特征进行融合,Deeplab V3+同样也是在encoder-decoder结构中进行了浅层和高层特征的结合。BiseNet和SFNet也都是探索如何在快速语义分割中实现多层次特征的结合方式。

How to combine different levels of features

03

语义分割中的特征

在语义分割任务中,特征分为高层次特征(high level features)和低层次特征(low level features)。高层次语义特征通常是指感受野较大、全局理解的语义特征。对于高层语义特征,需要设计一些大感受野的模块进行特征提取,比如采用了空洞卷积的Deeplab系列中提出的金字塔模块——ASPP模块。低层次特征更关注图像的细节部分,比如边缘信息、纹理信息等。基于深度学习的语义分割任务很少去关注图像的纹理特征,但是纹理特征对于分割任务来说是很重要的。

纹理特征可以分为两个层次,第一个层次称为结构化的纹理,这种纹理主要指图像中的细节变化,例如边缘,光照强度变化。第二个层次是统计化的纹理信息,如果将结构化纹理特征定义为局部特征,统计化的纹理特征则指的是在大感受野上对图像纹理进行模式统计,这种模式统计可以采用直方图的形式实现。直方图在传统图像处理领域是一种很重要的特征,但在深度学习领域却很少利用这个特征,而本次论文在对统计化纹理信息进行表征时就是融合了直方图的信息。

Features in Semantic Segmentation

算法模型

01

整体语义分割网络结构——STLNet

论文采用现有语义分割网络模型作为backbone,提出纹理信息增强模块(TEM)和金字塔纹理特征提取模块(PTFEM),利用这两个模块生成更精细的纹理特征,随后将生成的这些纹理特征与backbone生成的高层特征进行结合。

论文采用的backbone是ResNet101,然后是一个ASPP模块。将输入图像输入到ResNet-101中,提取高层次特征和多个低层次特征。然后将高层次特征输入ASPP模块以获得高级上下文特性。将前两个层次特征连接起来,发送到纹理增强模块(TEM)中对纹理细节进行增强,然后使用金字塔纹理特征提取模块(PTFEM)提取多尺度统计纹理信息。

Overall Structure of STLNet

02

如何描述结构化纹理?

论文采用量化计数算子(QCO)来实现对结构化纹理的表征。这里面解决了两个问题:首先由DNN(深度神经网络)生成的特征是连续分布的,这对采用直方图描述统计化纹理特征是不友好的,因此论文第一步需要对DNN生成的特征进行量化处理;其次高层语义特征的channel数一般是比较大的,直接对其进行操作会消耗很大的内存和算力,解决办法是对每个特征相对于平均特征的距离进行量化统计。

QCO分为两种形式,分别为1D-QCO和2D-QCO。

(1)1D-QCO

1D-QCO主要分为4个步骤:计算距离map,量化,统计,平均特征编码。其中第四步是由于在计算距离map时的参照距离是平均距离,而进行平均特征编码目的是生成对原特征进行统计的近似绝对的统计量。1D-QCO具体实现过程如下图所示:

1D-QCO

(2)2D-QCO

1D-QCO是对但像素的分布进行了统计,2D-QCO是对相邻两个像素组合的分布进行统计。计算过程可由1D-QCO拓展得到,计算过程如下图:

2D-QCO

03

纹理增强模块(TEM)

1-D QCO提供了一种统计化纹理表征的方式,TEM是利用1D-QCO来提取更多有价值的信息。

由于受到传统图像处理领域中直方图均衡算法带来的启发,提出了TEM模块。

直方图均衡

直方图均衡通常是用来提高提高亮度对比度,突出图像暗部的细节等。直方图均衡化利用直方图在统计分析的基础上构建一个算子,而这个算子本身是对图像直方图中每一个灰度级的值进行重建,且在对某个级数进行重建的过程中需要感知其他级数的统计信息,这可以看作是一个graph。

TEM将其扩展到一个可学习的graph来对每个量化级进行重建,在这个graph中,节点是中所包含的每个量化级的统计信息。

TEM

04

金字塔纹理特征提取模块(PTFEM)

PTFEM是利用2D-QCO来提取更多详细的纹理信息。

同样是受到传统图像处理算法带来的启发, PTFEM参考了灰度共生矩阵对纹理信息的处理。

由于纹理是由灰度分布在空间位置上反复出现而形成的,因而在图像空间中相隔某距离的两像素之间会存在一定的灰度关系,即图像中灰度的空间相关特性。灰度共生矩阵,指的是一种通过研究灰度的空间相关特性来描述纹理的常用方法。灰度直方图是对图像上单个像素具有某个灰度进行统计的结果,而灰度共生矩阵是对图像上保持某距离的两像素分别具有某灰度的状况进行统计得到的。灰度共生矩阵中有很多特征描述子,包括最大、最小值,自相关,熵等进行进一步的特征提取,而这样的过程也可以在深度学习中去学习的,因此设计出金字塔纹理特征提取模块。

Co-occurrence Matrix

PTFEM对2D-QCO首先进行了一个MLP操作,然后模拟传统灰度共生矩阵描述子的计算方法进行平均值计算。

Pyramid Texture Feature Extraction Module

(1)特征图可视化

通过对特征图的可视化,可以看到通过TEM模块之后,在指示区域(用黑色和蓝盒标记)中,建筑和自行车的纹理细节在TEM后明显增强。

Visualization of Feature Maps

(2)消融实验

Ablation Study

(3)与现有语义分割算法对比

论文对语义分割领域比较流行的三个数据集上与其他现有语义分割模型进行了实验对比,实验结果如下:

Comparison with SOTA

总结

论文关键创新在于从统计的角度学习纹理特征。具体来说,提出了量化和计数算子来描述统计纹理表示,然后使用纹理增强模块增强细节、金字塔纹理特征提取模块来利用纹理相关的低层信息。大量的消融实验证明了所提方法的有效性。与现有的方法比较表明,STLNet在多数据集上取得了优异的性能。

相关资料

论 文:

Learning Statistical Texture for Semantic Segmentation

代码链接:

标签: #纹理图像分割