• 问答
  • 技术
  • 实践
  • 资源
论文解读《DPT: Deformable Patch-based Transformer for Visual Recognition》
技术讨论
来源:知乎@X先生

这篇论文是由中科院,AnyVision及北大联合提出的,是第一篇在纯ViT中应用可变形patch embedding的论文,被ACM MM2021接收。

论文:

DPT: Deformable Patch-based Transformer for Visual Recognition​arxiv.org/pdf/2107.14467.pdf

代码:https://github.com/CASIA-IVA-Lab/DPT

Abstract:

作者提出了一种新的Deformable Patch(DePatch)模块,可以自适应地将图像分割成不同位置和大小的patch,而不是原先ViT中固定大小的patch。这样一来,可以避免对语义信息的破坏。同时提出的这个模块可以即插即用,集成到不同的Transformer结构中,实现端到端训练。

Introduction:

作者举出了近期的不同Transformer架构,如a)Deit(2020)利用知识蒸馏和数据增强的方法;b)T2T-ViT(2021)通过递归聚合邻近token进行分解patch embedding;c)TNT(2021)通过更加细粒度的patch提高效果;d)PVT(2021)将结构转化为四个阶段,生成特征金字塔进行预测。

这些都使用固定大小的patch,但是这种分割会带来两个问题:a)图像局部结构的坍塌即捕捉不到完整的与对象相关的局部结构(如图a所示,对于尾巴、头等局部结构分割到了不同的patch里面);b)图像间的语义不一致性,即对于不同图像的同一对象,可能因为集合变化等关系,分割固定patch忽略了这种变化,从而认为是不同的。

为了解决这个问题,作者提出了DePatch模块,可以以可变形的方式对图像进行分割。这种方法可以更好的将语义保存在一个patch里面,减少固定分割对语义的破坏。为此,作者学习了每一个patch在feacture map空间中的偏移和比例,并据此生成patch。这个模块是轻量级的,可以作为即插即用的模块,可以很容易应用到其他transformer架构。作者将DePatch集成到了PVT中验证有效性,取得了很高的效果。

Method:

ViT: 对于传统的Vision Transformer,由patch embedding层、Multi-head Self Attention (MSA)层和feed-forward multi-layer perceptrons (MLP)层组成。先从patch embedding开始,将图像转化为token序列,再通过MSA和MLP,获取最后的特征表示。

当输入为H*W*C的图像特征A时,假定H=W,将A分割成N块,那么每个patch的大小为

将这N个patch展平就可以得到序列

那么对于这个过程,每一个patch都可以看成一个矩形区域,其中心坐标表示为( $x{ct}^{(i)},y{ct}^{(i)}$ ),由于patch的大小是固定的,由此可以得到其左上角和右下角的坐标为:

对于这一个patch,里面有s*s个像素点,对于这些像素,其坐标又可以表示为

那么像素的特征表示为 ${\tilde{a}^{(i,j)}}_{1\leq j\leq N}$ ,通过将像素的特征展平则可以得到

MSA聚合上面的信息后,将token embedding到Q、K、V,最终得到新的特征。

DePatch:

作者提出的可变性的patch embedding,主要是从位置和大小进行考虑。对于位置,模型预测一个偏移量( $\delta{x},\delta{y}$ ),patch可以围绕中心进行移动,而大小方面,则是将大小表示为( $S{h},S{w}$ ),这样一来就得到了一个新的矩形区域,其左上角和右下角坐标则分别表示为

同时,作者增加了一个新的分支预测这些参数。在输入特征图后,首先预测所有patch的参数,再对区域特征进行embedding,预测方法如下:

其中, $f{p}()$ 是一个线性层, $b{scale}$ 初始化为s,其他初始化为0,则可以保证在最开始优化的时候,是以前的ViT的patch embedding方法。

在确定矩形区域后,就可以提取到每个patch的特征,然每个区域大小不同,坐标也是小数,作者就采用了采样和插值的方法。在给定矩形区域左上角和右下角坐标后,在这个区域均匀取样k*k个点,采样点的坐标则可以表示为

特征则表示 ${\tilde{a}^{(i,j)}}_{1\leq j\leq k*k}$ ,得到patch embedding。

采样点的坐标也大多是小数的,故在计算采样点的特征时 采用双线性插值,用周围点的特征,通过双线性插值计算当前点 $(p{x},p{y})$的特征。

那么对于上面的整体过程,体现在下面的总览图中:(左侧为VPT的结构,右侧为DPT)作者分别将PVT的stage2-stage4的patch embedding替换成了DePatch,其他设置为不变。

Experiment:

作者提出的DePatch在应用到PVT之后,分别在图像分类和目标检测都取得了更好的效果。

在消融实验中,则是发现替换的patch embedding模块越多,提升效果也越大。

对于预测矩形区域采样点的数量,发现采样更多的点,提取特征能力也越强,但随之带来的scale也要越大。

对于每一个patch的偏移量和大小,发现两者结合效果提升的较多。

与此同时,加入DePatch后,模型收敛的更快。

$$


Gated channel transformation for visual recognition

  • 0
  • 0
  • 1266
收藏
暂无评论
Admin
大咖

极市平台

  • 16,205

    关注
  • 1,105

    获赞
  • 130

    精选文章
近期动态
  • 极市社区管理员,分享计算机视觉各个方向视觉干货,欢迎关注
文章专栏
  • 极市平台