Advertisement

Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspectivewith Transformers

阅读量:
重新思考语义分割范式——SETR

重新思考语义分割范式——SETR

转载from:https://zhuanlan.zhihu.com/p/348418189 请多支持原创

一、论文信息

Re-examining Semantic Segmentation through the Lens of a Sequence-to-Sequence Framework, Aiding the Development of Advanced Visionary Models with Transformers.

作者:Sixiao Zheng et al.(复旦大学 & 牛津大学 & 萨里大学 & 腾讯优图 & 脸书)

文章:https://arxiv.org/abs/2012.15840

源码:官方发布 & 第三方实现(Pytorch)

二、论文解读

2.1 动机

自全卷积神经网络(FCN )提出以来,现有的语义分割框架大都是基于编码器-解码器(Encoder-Decoder )范式,其中:

编码器 负责将原始输入图像的空间分辨率维度进行降维处理,并逐渐获取更加复杂的抽象语义特征。

解码模块 则负责将编码器提取出的高级特征经过上采样处理,并将其映射回原始输入分辨率以实现像素级预测。

在语义分割任务中(context )扮演着至关重要的角色。然而,在编码器中,在下采样的过程中逐渐降低空间分辨率的同时有效扩大了网络的感受野。为了实现这一目标,在卷积神经网络(CNN)中不仅利用卷积核的参数共享使得网络具有平移等变性(translation equivalence ),而且通过引入池化操作一定程度上增强了平移不变性(translation invariant )。这种特性使模型对目标位置的变化更加鲁棒,并间接提升了对未知数据推理能力的表现。理论上,在堆叠足够多的卷积层后

(1)相关研究表明,网络的实际感受野远小于其理论感受野;

(2)考虑到参数量激增和计算量消耗与性能之间的平衡;

(3)过多的下采样操作会导致小目标的细节信息被严重损失甚至完全丢失;

由此可见,在网络中受限于有效感受野(limited)的因素,则会严重影响模型的能力。

就目前而言,在图像分割技术、目标分类以及目标检测等多个主流视觉任务领域中,近年来的研究工作主要集中于同一个关键点上。研究集中在两个主要方向:一是通过优化经典的卷积操作来提升处理效率;二是通过引入注意力机制来增强模型对关键信息的捕捉能力。其中一种主要的研究方向是改进传统的卷积操作。

对现有卷积操作进行优化主要通过增加感受野范围以便于获取局部分布的信息

  • large kernel sizes, for instance, Inception block;
    • empty convolution and dilated convolutions employed in the DeepLab series;
    • image pyramid and feature pyramid utilized in PSPNet;
    • deformable convolutions used in advanced models;

而注意力方法则更倾向于通过多维度视角建立长距离依赖关系并有效捕获全局上下文信息

  • 通道注意力机制的实现通常采用如SENet等方法;
  • 空间注意力机制的实现主要涉及如DANet等网络结构;
  • 自注意力机制的研究中包含如NonLocalNet等模型;
    ...

作者认为,上述的方法均是基于FCN架构,均无法摆脱编码器需要 对输入特征图进行降采样 的操作。而我们知道,Transformer 的一个特性便是能够保持输入和输出的空间分辨率不变,同时还能够有效的捕获全局的上下文信息。因此,作者这里便采用了类似ViT的结构来进行特征提取同时结合Decoder来恢复分辨率。在一定程度上可以避免审稿人质问:(1)Transformer和其它的自注意力的方法有啥区别?(2)利用Transformer进行特征提取相比于CNN有何优势?——写论文就是要会讲故事,让reviewer挑不出你的毛病。当然,这只是其中一关,除了故事本身的逻辑性,实验设置得是否合理以及充分也是个可以挑刺的地方。除此之外,我们知道TF的一个显著缺陷便是对计算和存储的要求特别高,如果没有进行底层优化,很难在GPU端飞起来。作者也是很巧妙,避开刷精度的路子,题目起了个"Rethinking",意在告诉审稿人我这只是一种尝试,我告诉后来人这条路走得通,可以往这走,至于效率优化方面就留点工作给别人,你也不要死揪着我这点不放哈哈。如果TF在分割这条路能一直火下去的话,ViT、DETR和SETR这三篇文章的引用量估计会获得爆发式的增长。关于TF的底层GPU优化,可以参考快手异构团队的 工作

为了防止审稿人误以为这就是一篇以"ViT+Decoder"为标签的简单堆砌之作的文章,在引言末尾部分作者特意进行了重点说明。尽管如此却深入探讨了两者之间的内在联系

Despite adapting a plain transformer from image-based tasks to tasks that are sensitive to spatial locations within the domain of semantic segmentation, the process serves as a significant challenge.

对于这句话,我确实比较认同作者的观点。因此,在此之前笔者基于Pytorch框架实现了这一结构,并通过基于ViT的方法进行特征提取。随后,在输出阶段采用了中间层间隔抽样并结合解码器的方式。然而在效率方面确实存在一些挑战(略带无奈地表示):当学习率设置得稍大时,可能会导致损失函数出现nan值。本以为能够迅速提升性能(但实际上却遭遇了困境),结果只花了两个epoch就感到力不从心(甚至有点自闭)。当然这里我只是出于兴趣进行了简单的实现,并未深入研究相关的训练技巧和注意事项(可能是因为实现方式不够完善导致效果不佳),但无论如何作者在该领域的表现已经证明了其可行性(至少在ADE20K数据集上获得了第二名),这表明这种方法还是有潜力的吧?

2.2 相关工作

概述了其中包含了语义分割与Transformer这两个核心领域的相关内容。最后重点比较了该方法与Axial-DeepLab在技术特点上的差异所在。

  • Axial采用了图像降采样的方法处理输入数据;相比之下,在整个过程中始终采用序列到序列的方式运行的SETR并未减少分辨率;
  • Axial设计采用了经过优化的轴向注意力机制(如后文所述);这一设计虽然在理论上具备良好的性能表现但在实际应用中由于其复杂的计算架构导致可扩展性受到限制;
    与此同时SETR始终坚持使用传统的Transformer模型架构以确保操作简便性和用户体验。

个人认为这里给出的区别点有些不够明显,并不大清楚作者为何在此特别强调这一点或许是因为审稿人将其与Axial进行比较。

Axial-DeepLab源自ECCV 2020上的一篇焦点论文《Axial-DeepLab: Stand-Alone Axial-Attention for Panoptic Segmentation》,其核心理念在于引入轴向注意力机制。具体而言,该方法通过将二维自注意力机制分解为两个一维的操作,成功突破了卷积操作中局部感受野的限制,同时降低了计算复杂度并实现了对长距离依赖关系的有效捕捉,从而整合了全局上下文信息。此外,作者还设计了一种位置敏感的自注意力方案,结合这一创新性设计开发出了一个位置敏感的轴向注意力层(position-sensitive axial-attention layer)。值得注意的是,与CCNet类似但并未直接进行对比,作者更多地倾向于从非局域方向展开研究与探讨

2.3 方法

SETR主要由三部分组成:输入→转换→输出。

The schematic diagram illustrates the proposed Segmentation Transformer model, referred to as SETR. (a) Input preprocessing and feature extraction process; (b) Aservative upsampling network; (c) Multi-level feature fusion module.

2.3.2 Transformer

通过将序列输入到Transformer架构可实现特征提取功能。其主要由两部分组成:一是自注意力机制(Multi-head Self-Attention, MSA),二是前馈网络(Multilayer Perceptron, MLP)。具体来说,自注意力机制的核心在于QKV操作;其中多头机制实际上是对这一过程进行了分组处理以提高计算效率。这一机制相对来说还是比较容易理解的。

这里linear projection layers一般是指全连接层,用于改变通道维度。

标准的Transformer结构

关于Transformer家族,可参考下图:

2.4 实验

  • 数据集

在Cityscapes[1]、ADE20K[2]以及PASCAL Context[3]这三个数据集上进行实验评估;

  • 实现细节

基于mmsegmentation框架里面默认的设置(如数据增强和训练策略):

采用缩放比例为0.5或2的随机图像增强策略后,在裁剪尺寸分别为768x768、512x512和480x480的区域上分别构建训练集、验证集和测试集样本,并随后立即执行水平翻转操作以增强数据多样性

在Cityscapes数据集中所使用的批大小是8;而在ADE20K与PASCAL这两个数据集中,则分别采用了批大小为8及16,并进行了迭代训练直至达到16万次和8万次。

采用多项式衰减的学习率策略,并以SGD算法为基础进行训练与优化过程;其中Momentum配置为0.9, Weight decay配置为0;

(4) 最后,对于上述三个数据集的初始学习率分别设置为0.01、0.001以及0.01.

  • 多尺度测试

首先将输入图像调整至一致尺寸,并对其进行多尺度缩放处理及水平翻转操作。其中所使用的缩放因子依次为(0.5, 0.75, 1.0, 1.25, 1.5, 1.75)。随后应用滑动窗口法进行重叠切片预测。若移动步长不足以获取完整切片,则以短边为例维持相同的比例。值得注意的是,在采用多卡分布式训练的情况下,“同步BN也被应用于解码器以及辅助损失头的训练过程”。为了简化模型训练流程,在此研究中并未引入在线困难样本挖掘(OHEM)[4]之类的技术。

  • 基准模型

基于mmsegmentation平台内置的功能模块中集成并行实现的Dilated FCN架构以及Semantic FPN模型组件,在实际应用过程中会面临计算资源分配不均的问题。值得注意的是,在这一前提下,默认配置下的FCN网络仅实现了8倍上采样回传机制以满足目标检测的需求;而本文创新性地提出了SETF算法框架,在保证同样精度的前提下实现了16倍上采样能力。

  • SETR变体

SETR-Naive、SETR-PUP以及SETR-MLA分别对应上述三种解码器设计。具体而言,在编码器部分采用了基于M层的Transformer架构,并根据M的不同规模划分成'T-Small'和'T-Large'两种类型(本文默认情况下将编码器设计为24层(这样一来就有3×2=6种组合配置)。在模型构建过程中首先采用了ResNet-50作为预编码器进行初步特征提取,并通过使用SETR-Naive-S进行后续特征提取以降低GPU计算负担。同时采用ResNet-50对原始输入图像实施16倍下采样处理,并配合使用SETR-Naive-S进行特征提取。

  • 预训练

该研究采用ViT模型训练所得的权重参数,并将其应用于SETR编码器中的权重初始化过程。进一步说明的是,在这一过程中采用了从预训练模型中复制并微调的方式。值得注意的是随机初始化策略与采用带ViT预训练权重的策略之间表现出显著的不同:

  • 可视化

可以看出,在第一层阶段便捕获到了全局的特征,在随后的过程中所提取到的特征逐渐变得更为抽象。这充分表明了Transformer在处理长距离依赖方面的能力。

三、总结

总的来说,《Pure Transformer》在自然图像语义分割任务中取得了一定的成功,并且在某种程度上展现了其潜力和有效性。然而,在知乎等讨论平台上似乎有不少人对其提出了批评和质疑意见。有人认为其创新性不足或缺少参数量计算方面的详细说明;还有人指出其未与基于自注意力机制的方法(如CC-Net和EMA-Net)进行比较等缺陷。
值得注意的是,在论文中作者将研究分为两类:一类是追求高精度的研究方向;另一类则是具有探索性质的研究方向。这种分类标准似乎源于许多读者对论文的主要贡献的理解偏差。
值得强调的是,在ADE-20k数据集上的性能表现也是推动作者继续深入研究的重要因素之一;而为了突出研究工作的可扩展性与实用性价值,《Pure Transformer》采用了"Rethinking"这一标题策略。
从另一个角度来看,
尽管对创新性的评价存在争议,
但这篇论文更应该被视作一篇实验性研究论文,
旨在证明这种思路的可行性。
个人认为,
当面对一篇新领域的研究论文时,
最值得关注的是作者是如何实现突破的关键点:
毕竟这类网络架构的基本思路对于大多数人来说已经非常熟悉,
但在具体实施过程中却异常复杂。
最终仍感到好奇的是SETF的研究是在什么样的硬件设施下进行的?

Reference

[1] The cityscapes dataset for semantic urban scene understanding.

[2] Semantic understanding of scenes through the ade20k dataset.

The role of background in object recognition and semantic parsing within real-world scenarios.

[4] Ocnet: Object context network for scene parsing

全部评论 (0)

还没有任何评论哟~