当前位置: 首页 > news >正文

《DPT: Deformable Patch-based Transformer for Visual Recognition》论文翻译

原文链接:DPT: Deformable Patch-based Transformer for Visual Recognition | Proceedings of the 29th ACM International Conference on Multimedia

author={Zhiyang Chen and Yousong Zhu and Chaoyang Zhao and Guosheng Hu and Wei Zeng and Jinqiao Wang and Ming Tang},
一、 摘要

        Transformer在计算机视觉方面取得了巨大的成功,而如何分割图像中的补丁仍然是一个问题。现有的方法通常使用固定大小的补丁嵌入,这可能会破坏对象的语义。为了解决这个问题,我们提出了一个新的可变形补丁(DePatch)模块,学习自适应地分裂成不同的位置和规模的图像补丁在数据驱动的方式,而不是使用预定义的固定补丁。这样,我们的方法可以很好地保持补丁的语义。DePatch模块可以作为一个即插即用模块工作,可以很容易地集成到不同的transformer中,以实现端到端的培训。我们把这种DePatch嵌入式Transformer称为基于可变形补丁的Transformer(DPT),并对DPT在图像分类和目标检测方面进行了广泛的评估。结果显示,DPT在ImageNet分类上可以达到81.9%的top-1准确率,在MSCOCO对象检测上,RetinaNet的box mAP为43.7%,Mask R-CNN为44.3%。代码已在https://github.com/CASIA-IVA-Lab/DPT上提供.

        一个vanilla补丁分裂和我们的变形方式的例子。(a)原始块嵌入模块对图像进行固定的分割。它有时会破坏对象的语义。(b)我们的DePatch以可变形的方式将图像分割成具有可学习位置和比例的补丁。(最好是彩色的)

二、介绍

        最近,Transformer [25]在自然语言处理(NLP)和语音识别方面取得了重大进展。它已逐渐成为序列建模任务的主流方法。受此启发,一些研究成功地将Transformer应用于计算机视觉,并在图像分类[17,24],对象检测[2,35]和语义分割[33]方面取得了令人满意的性能。与NLP类似,Transformer通常将输入图像划分为一系列固定大小的补丁(例如16 × 16)[7,24,26,30],并通过多头自注意力对不同补丁之间的上下文关系进行建模。与卷积神经网络(CNN)相比,Transformer能有效地捕捉序列内部的长程依赖关系,提取的特征包含更多的语义信息。

        虽然Transformer在视觉任务中尝到了甜头,但仍有许多方面需要改进。DeiT [24]利用数据增强和知识蒸馏以数据高效的方式学习视觉Transformer。T2 T-ViT [30]通过递归聚合相邻令牌来分解补丁嵌入模块,以获得更好的局部表示。TNT [10]维护了一个细粒度的分支,以更好地对补丁内的本地细节进行建模。PVT [26]将架构转换为四个阶段,并生成用于密集预测的特征金字塔。这些作品使用固定大小的补丁嵌入下的一个隐含的假设,固定的图像分割设计是适合于所有的图像。然而,这种“硬”分割可能会带来两个问题:(1)图像中局部结构的崩溃。如图1(a)所示,由于对象在不同图像中具有不同的尺度,因此规则的补丁(16 × 16)总是难以捕获完整的对象相关局部结构。(2)图像之间的语义不一致。不同图像中的相同对象可能具有不同的几何变化(缩放、旋转等)。分割图像的固定方式可能会在不同图像中捕获一个对象的不一致信息。如前所述,这些修复的补丁可能会破坏语义信息,导致性能下降。

        针对上述问题,提出了一种基于DePatch的图像分割模块,该模块采用可变形的方式分割图像。这样可以很好地保留一个面片中的语义,减少了图像分割带来的语义破坏。为了实现这一点,我们学习在特征映射空间中每个补丁的偏移和比例。根据输入特征图学习偏移和比例,并为每个补片生成偏移和比例,如图1(B)所示。所提出的模块是轻量级的,并且引入了非常少的参数和计算。更重要的是,它可以作为一个即插即用模块工作,可以很容易地纳入其他Transformer架构。带有DePatch模块的变压器被命名为基于可变形贴片的变压器(Deformable Patch-based Transformer,DPT)。在本研究中,我们将DePatch模块集成到Pyramid Vision Transformer(PVT)[26]中,以验证其功效,因为PVT在像素级预测任务(如对象检测和语义分割)中实现了最先进的性能。通过可变形面片调整,DPT基于局部上下文结构为每个面片生成完整的、鲁棒的和有区别的特征。因此,该方法不仅在分类任务上具有较高的性能,而且在目标检测等高度依赖局部特征的任务上也优于其他方法。与其对手PVT-Tiny相比,我们的方法在ImageNet分类上实现了2.3%的改进,并且在RetinaNet和Mask R-CNN框架下用于MSCOCO对象检测的Box mAP提高了2.8%/3.5%。

        介绍了一种新的自适应补丁嵌入模块DePatch。DePatch可以根据输入图像调整每个补丁的位置和尺度,有效地保留了一个补丁中的语义,减少了图像分割带来的语义破坏。

我们的DePatch是轻量级的,可以作为即插即用模块集成到不同的变压器中,从而形成基于可变形补丁的Transformer(DPT)。本文将DePatch引入PVT中,验证了DPT的有效性.

我们在图像分类和目标检测方面进行了广泛的实验。例如,我们的模块将ImageNet分类的前1位准确度提高了2.3%,并且在微小配置下,RetinaNet和Mask R-CNN检测器的前1位准确度也提高了2.8%/3.5%。

三、相关背景

Vision Transformer

        Transformer [25]一直是NLP任务的主流方法。它利用自注意力捕捉整个序列中的长程相关性,并实现了最先进的性能。这一思想首先通过非局部块及其变体应用于计算机视觉[1,14,27]。最近,出现了大量的工作,建立纯视觉转换器没有卷积层。据我们所知,ViT [7]是这一趋势中的第一部作品。它在大量训练数据的帮助下实现了与传统CNN架构相当的结果。DeiT [24]使用复杂的训练计划和知识蒸馏来提高仅在ImageNet上训练的性能。

        Currentworks专注于结合transformer和CNN的优势,以捕捉更好的本地信息。这个目标是通过将卷积块和自注意层结合在一起[3,22],保持高分辨率特征图[10,17,26],添加局部偏置参数[6,9]或重新设计暴力补丁嵌入模块[30]来实现的。虽然取得了很大的改进,但大多数架构使用固定的模式分割输入图像,而不知道输入内容和几何变化。我们的DPT可以自适应地修改每个补丁的位置和规模。据我们所知,我们的模型是第一个视觉Transformer,它以特定于数据的方式进行补丁分割。

Deformable-Related Work

        将固定模式修改为自适应模式是提高性能的常用方法。在计算机视觉中,有大量的研究工作帮助模型关注重要特征并采用几何变化。所有相关的工作都分为两类,基于注意力的方法[1,13,14,27]和基于偏移的方法[5,8,28,34,35]。我们主要回顾基于偏移的方法。

        基于偏移的方法预测偏移以明确地指示重要位置。该思想与目标检测中的区域建议网络[11,20]有一定的相似性。与我们的任务不同,区域建议网络使用边界框标注的监督。在图像分类任务中,也有一些工作明确地学习重要区域的位置,以获得更好的性能[8]或更快的推理[28]。学习过程仅以交叉熵损失和最终精度为指导。可变形卷积[5,34]是与我们的工作最相似的工作。该算法对卷积核的每个像素预测一个偏移量,而预测区域是规则的区域。视觉转换器中不兼容不规则补丁。Deformable-DETR [35]在DETR的自注意层和交叉注意层中应用可变形操作。然而,Deformable-DETR的主要目的是加速训练,仍然依赖于从CNNs中提取的特征图。据我们所知,我们的工作是第一次将可变形操作应用于纯视觉Transformer架构。我们着重于调整每个面片的位置和尺度,从而提取的特征更好地保持局部结构。我们的模块可以作为即插即用模块工作,并且兼容各种视觉Transformer架构。

四、核心方法

1.Preliminaries: Vision Transformer

视觉Transformer由三个部分组成:一个patch嵌入模块多头自注意力块前馈多层感知机(MLP)。网络从patch嵌入模块开始,该模块将输入图像转换为一系列token,然后交替堆叠多头自注意力块和MLP以获得最终的表示。在本节中,我们主要阐述patch嵌入模块,并快速回顾多头自注意力模块。

Patch嵌入模块将图像划分为固定大小和位置的patch,并用线性层对每个patch进行嵌入。我们将输入图像或特征映射表示为 A∈RH×W×C。为简化起见,假设 H=W。先前的研究将 A 划分为大小为 s×s的 N个patch(𝑠 = ⌈𝐻/ √ 𝑁⌉)。这些patch组成的序列表示为 {z(i)}1≤i≤N。

为了更好地解释patch划分过程,我们重新定义了patch嵌入模块。每个patch z(i) 可被看作输入图像中一个矩形区域的表示。我们将其中心坐标表示为 (xct(i),yct(i))。由于patch大小是固定的,其左上角和右下角的坐标分别为 (xct(i)−s/2,yct(i)−s/2) 和 (xct(i)+s/2,yct(i)+s/2)。在此区域内有 s×s个像素,这些像素的坐标表示为 p(i,j)=(px(i,j),py(i,j))。所有坐标 p(i,j)都是整数。这些像素的特征表示为 {a~(i,j)}1≤j≤s×s​。这些特征被展平并通过线性层处理,以获得新patch的表示,如公式(1)所示:

多头自注意力模块对整个输入序列进行全局信息聚合,为每个token提供全局视野。该模块为每个头学习三组代表性特征:query (Qh∈RN×d)、key (Kh∈RN×d) 和 value (Vh∈RN×d)。通过 Qh和 Kh的相乘来获得注意力图 Attnh,表示不同patch之间的相似性。该注意力图用作加权和 Vh 的权重。为了得到更多变异的特征,不同头会计算独立结果。所有头的结果被连接后转换为新的表示 Z′。

2.DePatch Module

        在3.1节中描述的补丁嵌入过程是固定的和不灵活的。位置(xct(i),yct(i))和大小s是固定的,因此矩形区域对于每个贴片是不可改变的。每个补丁的特征直接用其内部像素表示。为了更好地定位重要结构并处理几何变形,我们放松了这些约束来开发我们的可变形补丁嵌入模块DePatch。

        首先,我们将每个patch的位置和尺度转换为基于输入内容的可预测参数。对于位置,我们预测一个偏移量 (δx,δy),使其能够围绕原始中心位置进行偏移。而对于尺度,我们将固定的patch大小 s 替换为可预测的 sh​ 和 sw​。通过这种方式,我们可以确定一个新的矩形区域,并将其左上角表示为 (x1,y1),右下角表示为 (x2,y2)。为了清晰起见,我们省略了上标 (i)。需要强调的是,即使在同一张图像中,(δx,δy,sw,sh) 的值也可能不同。

图2:DePatch模块指令。偏移量和尺度预测的局部特征,并通过双线性插值获得新的嵌入。

       

         如图2所示,我们添加了一个新的分支用于预测这些参数。基于输入特征图,我们预测 (δx,δy,sw,sh) 对应于每个patch,并以密集方式为所有patch生成这些参数。偏移量和尺度的预测遵循公式 (5) 和 (6)。函数 fp(⋅)可以是任何特征提取器,在此我们使用一个单一的线性层。之后,通过 Woffset和 Wscale​ 预测偏移量和尺度。在训练开始时,这些权重被初始化为零。bscale被初始化,以确保每个patch集中在原始模型的相同矩形区域上。

        在确定矩形区域后,我们提取每个patch的特征。主要的问题在于,这些区域的大小各不相同,并且预测的坐标通常是小数。我们通过一种采样和插值的方法解决这一问题。对于给定的矩形坐标 (x1,y1) 和 (x2,y2),我们在区域内均匀采样 k×k个点,k是我们方法中的超参数。每个采样位置表示为:

所有这些点的特征被提取。采样点 {a~(j)}1≤j≤k×k被展平并通过一个线性层处理,以生成patch嵌入,如公式 (7) 所示:

采样点的索引大多是小数。假设我们希望提取位于点 (px,py)的特征,其对应的特征通过双线性插值计算,公式如下:

在公式 (8) 中,G(⋅) 是双线性插值核,作用于所有的整数空间位置。它仅在接近 (px,py) 的四个位置时为非零值。因此,该计算可以通过少量的乘加操作快速完成。

3.Overall Architecture

        DePatch是一个自适应模块,可以改变补丁的位置和比例。由于DePatch可以作为即插即用模块工作,我们可以轻松地将DePatch集成到各种视觉转换器中。由于其优越性和通用性,我们选择PVT作为我们的基础模型。PVT有四个阶段,具有递减尺度的特征图。它利用空间缩减注意力来降低高分辨率特征图的成本。详细信息请参见[26]。我们的模型表示为DPT。它是通过将阶段2,3和4开始时的补丁嵌入模块替换为DePatch而构建的,同时保持其他配置不变。总体架构如图3所示。

图3:左:原始PVT架构。右:DPT,配备我们的DePatch模块。

五、实验

        我们比较了DPT与PVT [26]和标准ResNe(X)t [12,29]。比较结果见表2。至于RetinaNet,DPTSmall在计算成本相当的情况下显著优于PVT-Small 2.1%和Resnet 50 6.2%mAP,这表明DPT为图像中的目标对象提供了更多的区分特征。使用我们的DePatch模块,每个补丁都知道它的相邻内容,并提取不同位置所需的关键信息。

DPT-Tiny通过不同数量的采样点学习区域尺度。𝑘𝑘我们在第2、3和4阶段说明了统计数据。比例由区域的边缘大小来衡量。

模块位置的影响(k=2)

当λ= 2时,尺度分布收敛早,方差小。采样2×2点无法表示任何更大的区域,因此它限制了我们的模块理解具有严重几何变形的图像的能力。除了在阶段2中,对于α= 3和4,统计数据没有太大差异。我们假设采样更多的点将实现更好的性能,而不值得额外的成本。设计一个更复杂的空间金字塔可能是另一种改进我们方法的方法。我们把它作为我们未来的工作。

采样点数量的影响

预测偏移和尺度的解耦

        分离偏移和缩放DePatch会学习每个面片的偏移和缩放。预测偏移量以将补片向更重要的区域移动,并且缩放用于更好地保持局部结构。它们都有助于提高模型的性能。在表7中,我们将这两个因素分离,以了解每个因素如何影响我们的模型。在不预测尺度的情况下,所有矩形区域的形状与原始PVT中的面片形状相同,仅预测偏移量就可以比基线提高1.5%,而通过预测尺度又可以提高0.8%。我们认为,偏移量和尺度对于我们的自适应补丁嵌入模块都是重要的。

        快速收敛分析DePatch模块能够为每个图像将补丁调整为适当的形状。足够的补丁维护重要的局部结构,并且更有效地学习特征。因此,整个网络可以以更快的速度学习。我们在图5中绘制了DPT-Tiny和PVT-Tiny的训练曲线。训练损失和测试准确率在最初几个时期收敛得更快。

        基于这种现象,我们期望我们的模块可以缓解长时间的培训计划的要求。我们通过简单地将训练周期减少一半来证明这一点。如表8所示,仅用150个epoch训练的DPT-Tiny比完全训练的PVT-Tiny的性能高出1.1%,并且由更短的调度引起的性能下降仅为1.2%,这比原始PVT-Tiny小得多。这表明我们的DePatch模块可以显着加速视觉转换器的训练,这将有利于进一步的研究。

我们在图6中演示了DePatch学习的偏移量。可视化显示,由DePatch预测的补丁定位良好,可以捕获重要特征。DePatch在前景物体的边缘处有更明显的影响。它鼓励外面的补丁向物体移动一点,从而覆盖比正常补丁更多的关键区域。当图像中出现多个对象时,补丁会将其位置调整到最近的一个(图6(B)中的两头鲸鱼)。该属性对于对象检测将更重要,因为不同的补丁可以更代表不同的对象。因此,检测器可以更好地定位和分类具有更多相关特征的所有对象。预测的尺度还受到局部上下文的丰富性的影响,例如边缘或角落。当需要关注微妙的细节时,它就会变小(图6(d)中鸟的喙),如果需要更多背景,它就会变大(图6(h)中狗胃的同质区域)。偏移距和尺度的高方差表明我们的方法具有很强的自适应性。

六、结论

        本文在介绍DePatch的基础上,提出了一种可变形的补丁分割模块。该方法能使网络从物体相关区域中提取面片信息,使模型对几何变形不敏感。该模块可以作为即插即用模块工作,并改进各种视觉转换器。我们还利用DePatch模块构建了一个基于可变形贴片的Transformer器DPT。大量的图像分类和目标检测实验表明,DPT能够提取更好的特征,优于基于CNN的模型和其他视觉变换器。DePatch可用于其他视觉转换器以及其他下游任务,以提高其性能。该模型是首次以数据相关的方式对视觉Transformer进行修正的工作。我们希望我们的想法能为未来的研究提供一个良好的起点。


http://www.mrgr.cn/news/75101.html

相关文章:

  • 【企业级分布式系统】ELK优化
  • 学习OpenGL知识点(1)
  • 20241121 android中树结构列表(使用recyclerView实现)
  • React-自定义Hook与逻辑共享
  • ftdi_sio应用学习笔记 3 - GPIO
  • 使用tauri + naiveAdmin 构建桌面应用程序
  • Go常见框架对比
  • AI驱动的电商创新:提升销售效率与用户体验
  • session 的工作原理
  • SpringBoot(十)SpringBoot使用QQ邮箱stmp发送邮件
  • 【计算机网络】UDP网络程序
  • 大数据新视界 -- 大数据大厂之 Impala 存储格式转换:从原理到实践,开启大数据性能优化星际之旅(下)(20/30)
  • 一个免费的Java 应用内存问题分析工具,用于 OutOfMemoryErrors 和堆大小调整等问题(带私活源码)
  • 基于51单片机智能窗帘仿真设计
  • 解决failed to execute PosixPath(‘dot‘) 或者GraphViz‘s executables not found
  • 【MySQL】约束
  • 三、模板与配置(下)
  • 【MySQL】数据库必备知识:全面整合表的约束与深度解析
  • vue中重置对象的好使方式(封装好的函数,可直接食用)
  • YZ系列工具之YZ10:VBA_梦幻图像
  • Orleans Stream测试
  • 大数据新视界 -- 大数据大厂之 Impala 性能飞跃:动态分区调整的策略与方法(上)(21 / 30)
  • python语言基础-4 常用模块-4.12 namedtuple(名称元组)
  • 第12章 系统部署
  • 一道C语言关于距离的期末题及答案
  • 光伏储能微电网协调控制器