本文次要对指标检测算法 Conformer 进行讲述,本文逻辑构造和论文保持一致。
论文:Conformer: Local Features Coupling Global Representations for Visual Recognition
代码:https://github.com/pengzhilia…
摘要
- 在卷积神经网络 (CNN) 中,卷积操作善于提取部分特色,但难以捕捉全局示意。
- 在本文中,咱们提出了一种称为 Conformer 的混合网络结构,以利用卷积运算和自注意力机制来加强示意学习。Conformer 源于特色耦合单元 (FCU),它以交互方式交融不同分辨率下的部分特色和全局示意。Conformer 采纳 并发构造,最大限度保留部分特色和全局表征。
- 在 ImageNet 上的性能比 transformer(DeiT-B)高 2.3%。在 MSCOCO 上,它在对象检测和实例宰割方面的性能别离比 ResNet-101 高 3.7% 和 3.6%
钻研背景
- 卷积神经网络 (CNN)具备显着先进的计算机视觉工作,例如图像分类、对象检测和实例宰割。这在很大水平上归功于卷积操作,它以分层的形式收集部分特色作为弱小的图像示意。只管在部分特征提取方面具备劣势,但 CNN 难以捕获全局表征,这通常对高级计算机视觉工作至关重要。一个直观的解决方案是扩充感触野,但这可能须要更密集但具备破坏性的池化操作。
- 最近,transformer 架构 已被引入视觉工作。ViT 办法 通过宰割每个图像成带有地位嵌入的 patch 来构建一个 tokens,并利用级联 transformer 块来提取参数化向量作为视觉示意。因为自注意力机制和多层感知器(MLP)构造,transformer 反映了简单的空间变换和长距离特色依赖性,形成了全局示意 。可怜的是, 察看到视觉 transformer 疏忽了部分特色细节,这升高了背景和前景之间的可分别性 。一些改良的视觉转换器提出了一个标记化模块或利用 CNN 特色图作为输出标记来捕捉特色相邻信息。然而, 对于如何将部分特色和全局示意准确地互相嵌入的问题依然存在。
钻研现状
- 在深度学习时代,CNN 能够被视为具备不同接管场的部分特色的分层集成。可怜的是,大多数 CNNs 善于提取部分特色,但难以捕获全局线索。
-
CNN:为了缓解这种限度,一种解决方案是通过引入更深的架构和 / 或更多的池化操作来定义更大的感触野。空洞卷积 办法 减少了采样步长,而 可变形卷积 学习了采样地位。SENet 和 GENet 提出应用 global Avgpooling 来聚合全局上下文,而后用它来从新加权特色通道,而 CBAM 别离应用 global Maxpooling 和 global Avgpooling 在空间和通道维度上独立地细化特色。
另一种解决方案是 全局注意力机制 ,它在自然语言解决 中展现了捕捉长距离依赖的微小劣势。受非部分均值办法的启发,非部分操作 以自留神形式引入 CNN,以便每个地位的响应是所有(全局)地位的特色的加权和。 留神加强卷积网络 将卷积特色图与自留神特色图连接起来,以加强卷积操作以捕捉近程交互。关系网络 提出了一个对象留神模块,通过外观特色和几何形态之间的交互同时解决一组对象。
只管获得了停顿,但将全局线索引入 CNN 的现有解决方案具备显著的毛病。对于第一种解决方案,更大的感触野须要更密集的池化操作,这意味着较低的空间分辨率 。对于第二种解决方案, 如果卷积操作没有与注意力机制正确交融,部分特色细节可能会好转。
-
Transformer:作为一项开创性工作,ViT 验证了纯 Transformer 架构在计算机视觉工作中的可行性。为了利用长距离依赖性,transformer 块充当独立的架构或被引入 CNN 以进行图像分类、指标检测、语义宰割、图像增强和图像生成。然而,Transformers 常常疏忽部分特色细节。为解决这个问题,DeiT 提出应用蒸馏 token 将基于 CNN 的特色转移到视觉 transformer,而 T2T-ViT 提出应用 tokenization 模块将图像递归重组为思考相邻像素的标记。DETR 办法将 CNN 提取的部分特色馈送到转换器编码器 - 解码器,以串行形式对特色之间的全局关系进行建模。
可怜的是,察看到视觉 transformer 疏忽了部分特色细节,这升高了背景和前景之间的可分别性。一些改良的视觉 transformer 提出了一个 tokenization 模块或利用 CNN 特色图作为输出 token 来捕捉特色相邻信息。然而,对于 如何将部分特色和全局示意准确地互相嵌入的问题依然存在。
钻研内容
Overview
- 卷积特色和 patch embedding 两种风格特征相互交融。在 Conformer 中,咱们间断将 transformer 分支的全局上下文馈送到卷积特色图,以增强 CNN 分支的全局感知能力。相似地,来自 CNN 分支的部分特色逐步反馈到 patch embedding 中,以丰盛 transformer 分支的部分细节。这样的过程形成了相互作用。
- Conformer 由一个骨干模块、双分支、桥接双分支的 FCU 和用于双分支的两个分类器(一个 fc 层)组成。
- 骨干模块:骨干模块是一个 7×7 卷积,步长为 2,而后是一个 3×3 最大池化,步长为 2,用于提取初始部分特色(例如,边缘和纹理信息)。
- 双分支:而后将它们馈送到双分支。CNN 分支和 transformer 分支别离由 N(例如 12)个反复的卷积块和 transformer 块组成。这样的并发构造意味着 CNN 和 transformer 分支能够别离最大水平地保留部分特色和全局示意。
- FCU: FCU 作为桥接模块,将 CNN 分支中的部分特色与 transformer 分支中的全局示意交融,见下图(b)所示。FCU 从第二个块开始利用,因为两个分支的初始化特色是雷同的。沿着分支,FCU 以交互方式逐渐交融特色图和 patch embedding。
- 分类:最初,对于 CNN 分支,所有特色都被会集并馈送到一个分类器。对于 transformer 分支,类 token 被取出并馈送到另一个分类器。在训练过程中,应用两个穿插熵损失来别离监督两个分类器。损失函数的重要性依据教训设置为雷同。在推理过程中,将两个分类器的输入简略概括为预测后果
Network Structure
-
CNN 分支: 上图(b)所示,CNN 分支采纳特色金字塔构造,特色图的分辨率随着网络深度的减少而升高,而通道数减少。咱们将整个分支分为 4 个阶段。每个 stage 由多个卷积块组成,每个卷积块蕴含 n 个 bottlenecks。遵循 ResNet 中的定义,bottlenecks 蕴含 1×1 卷积(减小通道数)、3×3 空间卷积、1×1 卷积(复原通道数)以及输出和输入之间的残差连贯。试验中,n 在第一个卷积块中设置为 1,在随后的 N - 1 个卷积块中满足≥2。
transformer 通过一步将图像 patch 投影到向量中,导致部分细节失落。而在 CNN 中,卷积核滑动重叠的过特色图,这提供了保留精密部分特色的可能性。因而,CNN 分支可能为 transformer 分支间断提供部分特色细节。
- Transformer Branch: 相似 ViT,该分支蕴含 N 个反复的 transformer 块。如上图(b) 所示,每个 Transformer 块由一个多头自注意力模块和一个 MLP 块组成。在每一层之前利用 layernorm,并且在自注意力层和 MLP 块这两个层中都有残差连贯。咱们将骨干模块生成的特色图压缩成 14×14 的 patch embedding,而没有重叠,通过线性投影层,这是一个步长为 4 的 4×4 卷积。思考到 CNN 分支(3×3 卷积)对部分特色和空间地位信息进行编码,不再须要地位嵌入。这有助于进步上游视觉工作的图像分辨率。
-
FCU: 给定 CNN 分支中的特色图和 transformer 分支中的 patch embedding,如何打消它们之间的错位是一个重要问题。为了解决这个问题,咱们倡议 FCU 以交互方式将部分特色与全局示意间断耦合。
一方面,咱们必须意识到 CNN 和 transformer 的特色维度不统一。CNN 特色图的维度为 C×H×W(C、H、W 是通道、高度和宽度),而 patch embeddings 的形态为(K+1)×E,其中 K、1 和 E 别离示意图像块的数量、类别 token 和 embedding 维度。当馈送到 transformer 分支时,特色图首先须要通过 1×1 卷积来对齐 patch embedding 的通道数。而后应用下采样模块(上图(a))实现空间维度对齐。最初,特色图增加 patch embedding,如上图(b)所示。当从 transformer branch 反馈到 CNN 分支时,patch embedding 须要上采样(上图(a))以对齐空间尺度。而后通过 1×1 卷积将通道维度与 CNN 特色图的维度对齐,并增加到 特色图中。同时,LayerNorm 和 BatchNorm 模块用于对特色进行正则化。
另一方面,特色图和 patch embedding 之间存在显着的语义差距,即特色图是从部分卷积算子中收集的,而 patch embedding 与全局自我聚合。注意力机制。因而在每个块(除了第一个)中利用 FCU 以逐渐填补语义空白。