【深度学习】语义分割:论文阅读:(CVPR 2022) MPViT(CNN+Transformer):用于密集预测的多路径视觉Transformer | 您所在的位置:网站首页 › 图像分割最新论文 › 【深度学习】语义分割:论文阅读:(CVPR 2022) MPViT(CNN+Transformer):用于密集预测的多路径视觉Transformer |
这里写目录标题
0详情1摘要2 主要工作3 网络结构3.1 Conv-stem3.2 Multi-Scale Patch Embedding3.3 Multi-path Transformer3.3.1 多路径Transformer和局部特征卷积CoaT的因素分解自注意深度可分离卷积
3.3.2Global-to-Local Feature Interaction
4 实验- Semantic segmentation5总结
0详情
论文:MPViT : Multi-Path Vision Transformer for Dense Prediction 代码:代码 笔记参考: ppt总结版 详细版 详细版2 1摘要针对任务: 密集的计算机视觉任务(例如对象检测和分割)需要有效的多尺度特征表示,以检测或分类具有不同尺寸的对象或区域。 在语义分割领域中,存在不同尺度的物体,同时对分割边缘的要求精确到了像素级。 VIT for dense predictions: Vision Transformer(ViT)构建了一个简单的多阶段结构(即精细到粗糙),用于使用单尺度patch的多尺度表示。然而ViT的变体专注于降低自注意的二次复杂度,较少关注构建有效的多尺度表示。 MPVIT概述: 以不同于现有Transformer的视角,探索多尺度path embedding与multi-path结构,提出了Multi-path Vision Transformer(MPViT)。因此本文作者将重点放在了图像的多尺度多路径上,通过对图片不同尺度分块及其构成的多路径结构,提升了图像分割中Transformer的精确程度。 作用: MPVit可以同时将图像分成多个尺度,结合精心设计的序列化模块(目的是将不同尺度的序列转化为相同长度的向量),构建了并行的多路径结构,实现了对图像不同尺度的同时利用。 过程: 通过使用 overlapping convolutional patch embedding将其拉平成为不同尺寸的token,在适当调整卷积的填充/步幅后产生具有相同序列长度的特征。同时嵌入多个大小的patch特征。 然后,将不同尺度的Token通过多条路径独立地输入Transformer encoders,并对生成的特征进行聚合,从而在同一特征级别上实现精细和粗糙的特征表示。 在特征聚合步骤中,引入了一个global-to-local feature interaction(GLI)过程,该过程将卷积局部特征与Transformer的全局特征连接起来,同时利用了卷积的局部连通性和Transformer的全局上下文。 2 主要工作 提出了一个具有多路径结构的多尺度嵌入方法,用于同时表示密集预测任务的精细和粗糙特征。介绍了全局到本地特征交互(GLI),同时利用卷积的局部连通性和Transformer的全局上下文来表示特征。性能优于最先进的vit,同时有更少的参数和运算次数。 3 网络结构首先对输入的图像做卷积提取特征, 而后主要分成了四个Transformer阶段,如图左侧一列所示, 中间一列是每个阶段中两个小块的展开分析图, 右侧一列则是对多路径模块中Transformer(包括局部卷积)以及全局信息模块的图解。 ViT使用单尺度的patch embedding和单路径transformer编码器 过程: MPViT通过重叠卷积将相同大小的特征和不同大小的patch的同时嵌入。 将多尺度patch嵌入,通过重叠卷积将其拉平成为不同尺寸的token,在适当调整卷积的填充/步幅后产生具有相同序列长度的特征。 然后,来自不同尺度的token被通过多条路径独立并行送到Transformer编码器中,执行全局自我关注。 然后聚合生成的特征,从而在相同的特征级别上实现精细和粗略的特征表示。
它们输出密集预测任务四个阶段中,作者在每个阶段对所提出的Multi-scale Patch Embedding(MS-PatchEmbed)和Multi-path Transformer(MP-Transformer)块进行堆叠。 由于多级体系结构具有更高分辨率的特点,因此它本质上需要更多的计算。 因此,由于其线性复杂性,我们对整个模型使用了包括Factorzed Self attention的Transformer(因子化多头自我注意)编码器。 3.1 Conv-stem本模块由两个3×3卷积组成,可以在不丢失显著信息的情况下对图片进行特征提取以及尺度的减小 输入图像大小为:H×W×3, 两层卷积:采用两个3×3的卷积,通道分别为C2/2,C2,stride为2, 输出图像:生成特征的大小为H/4×W/4×C2,其中C2为stage 2的通道大小。 说明: 1.每个卷积之后都是Batch Normalization 和一个Hardswish激活函数。 2.从stage 2到stage 5,在每个阶段对所提出的Multi-scale Patch Embedding(MS-PatchEmbed)和Multi-path Transformer(MP-Transformer)块进行堆叠。 3.2 Multi-Scale Patch Embedding多尺度Patch Embedding结构如下,对于输入特征图,使用不同大小的卷积核来得到不同尺度的特征信息(论文这么写的,但是源码看到卷积核都是3),为了减少参数,使用3x3的卷积核叠加来增加感受野达到5x5、7x7卷积核的感受野,同时使用深度可分离卷积来减少参数。 实践: 由于堆叠同尺寸卷积可以提升感受野且具有更少的参数量, 选择两个连续的3×3卷积层构建5×5感受野,采用三个3×3卷积构建7×7感受野对于triple-path结构,使用三个连续的3×3卷积,通道大小为C’,padding为1,步幅为s,其中s在降低空间分辨率时为2,否则为1。 因此,给定conv-stem的输出X,通过MS-PatchEmbed可以得到相同大小为H/s x C/s x C的特征![]() 接着,不同大小的token embedding features 分别输入到transformer encoder中。 原因: Transformer中的self-attention可以捕获长期依赖关系(即全局上下文),但它很可能会忽略每个patch中的结构性信息和局部关系。 相反,cnn可以利用平移不变性中的局部连通性,使得CNN在对视觉对象进行分类时,对纹理有更强的依赖性,而不是形状。 因此,MPViT以一种互补的方式将CNN与Transformer结合起来。 组成: 下面的多路径Transformer和局部特征卷积,上面的Global-to-Local Feature Interaction。 在多路径的特征进行自注意力(局部卷积)计算以及全局上下文信息交互后,所有特征会做一个Concat经过激活函数后进入下一阶段。
![]() 原始transformer中attention的计算方式: 一个 query 给 n 个 key - value pair ,这个 query 会跟每个 key - value pair 做内积,会产生 n 个相似度值。传入 softmax 得到 n 个非负、求和为 1 的权重值。 output 中 value 的权重 = 查询 query 和对应的 key 的相似度 通常用内积实现,用来衡量每个key对每个query的影响大小 把 softmax 得到的权重值 与 value 矩阵 V 相乘 得到 attention 输出。 Factorized Attention Mechanism: 在原始的计算attention的过程中,空间复杂度是O(NN), 时间复杂度是O(NN*C),为了降低复杂度,类似于LambdaNet中的做法(以恒等函数和softmax的注意力分解机制:),将attention的方法改为如下形式通过使用2个函数对其进行分解,并一起计算第2个矩阵乘法(key和value)来近似softmax attention map:为了归一化效果将比例因子 根号下c分之一添加回去,带来了更好的性能。![]() ![]() 另一方面在计算原始的attention时可以明确解释attention是当前位置与其他位置的相似度, 但在factor attn的计算过程中并不是很好解释,而且丢失了内积过程。虽然FactorAttn不是对attn的直接近似,但是也是一种泛化的注意力机制有query,key和value 深度可分离卷积常规卷积操作 每个channel的图像与filter做卷积,然后将每个通道进行合并。对于一张5×5像素、三通道(shape为5×5×3),经过3×3卷积核的卷积层(假设输出通道数为4,则卷积核shape为3×3×3×4,最终输出4个Feature Map,如果有same padding则尺寸与输入层相同(5×5),如果没有则为尺寸变为3×3![]() N_std = 4 × 3 × 3 × 3 = 108 DWconv-深度可分离卷积-Depthwise Separable Convolution 是由一个两部分卷积组成的一个网络。 主要是为了降低卷积运算参数量。 第一部分是depthwise conv ,分通道的一个卷积 就是每个卷积核对应input的每一个通道 第二部分是pointwise conv,它将第一部分各自独立的featuremap进行组合生成了新的 逐通道卷积 将不同的卷积核独立地应用在in_channels的每个通道 Depthwise Convolution的一个卷积核负责一个通道,一个通道只被一个卷积核卷积 一张5×5像素、三通道彩色输入图片(shape为5×5×3), Depthwise Convolution首先经过第一次卷积运算,DW完全是在二维平面内进行。卷积核的数量与上一层的通道数相同(通道和卷积核一一对应)。 所以一个三通道的图像经过运算后生成了3个Feature map(如果有same padding则尺寸与输入层相同为5×5),如下图所示。 N_depthwise = 3 × 3 × 3 = 27 Depthwise Convolution完成后的Feature map数量与输入层的通道数相同,无法扩展Feature map。 而且这种运算对输入层的每个通道独立进行卷积运算**,没有有效的利用不同通道在相同空间位置上的feature信息。** (因为上面每个层的特征都分开 没有有效的利用相同空间位置上不同层的有效信息,所以有了第二部分) 因此需要Pointwise Convolution来将这些各自独立的Feature map进行组合生成新的Feature map 逐点卷积 Pointwise Convolution的运算与常规卷积运算非常相似,它的卷积核的尺寸为 1×1×M,M为上一层的通道数。 所以这里的卷积运算会将上一步的map在深度方向上进行加权组合,生成新的Feature map。有几个卷积核就有几个输出Feature map![]() N_pointwise = 1 × 1 × 3 × 4 = 12 经过Pointwise Convolution之后,同样输出了4张Feature map,与常规卷积的输出维度相同 参数对比 回顾一下,常规卷积的参数个数为: N_std = 4 × 3 × 3 × 3 = 108 Separable Convolution的参数由两部分相加得到: N_depthwise = 3 × 3 × 3 = 27 N_pointwise = 1 × 1 × 3 × 4 = 12 N_separable = N_depthwise + N_pointwise = 39 相同的输入,同样是得到4张Feature map,Separable Convolution的参数个数是常规卷积的约1/3。 因此,在参数量相同的前提下,采用Separable Convolution的神经网络层数可以做的更深。 3.3.2Global-to-Local Feature Interaction
增加路径的数量需要减少通道C或层数L(即,transformer encoder的数量)。 作者通过减少C而不是L,从单路径(即CoaT-Lite baseline)扩展到triple-path。在消融研究中,验证了减少C比减少L获得更好的性能(见表5)。 由于stage2的特征分辨率较高,导致计算成本较高,作者在stage2中将triple-path模型的路径数设置为2。从stage3开始,三路径模型有3条路径。 triple-path模型在密集预测任务中表现出更好的性能。因此,建立了基于 triple-path结构的MPViT模型 参数设置: 使用upernet作为分割方法,并将ImageNet-1k预训练的MPViTs集成到supernet中。 接下来,为了公平比较,训练模型160k次迭代,批大小为16,使用AdamW[38]优化器,学习率为6e-5,权重衰减为0.01。 使用标准的单尺度协议报告性能。使用mmseg[11]库实现mpvit 结果: 与其他Swin-T、Focal-T和XCiT-S12/16相比,mpvits的性能(48.3%)更高,分别为+3.8%、+2.5%和+2.4%。有趣的是,mpvit也超过了更大的型号,如Swin-S/B, XCiT-S24/16, -M24/16, -S24/8和Focal-S。此外,mpvitb性能优于最近(和更大的)SOTA变压器Focal-B[67]。这些结果表明,MPViT的多尺度嵌入和多路径结构使其具有多样化的特征表示能力 ![]() 作者主要做出了一下几点贡献: 通过多路径并行设计实现了对多尺度信息的利用通过深度卷积操作实现了全局上下文的利用(Mask2Former也有一摸一样的结构)通过对照试验探究了多尺度多路径模型在不同尺度及路径数量下的效果 |
CopyRight 2018-2019 实验室设备网 版权所有 |