TNT:对图像块与图像像素同时建模的Transformer.

Transformer已经被广泛应用于计算机视觉任务中,如low-level任务中的IPT、目标检测任务中的DETR、图像分类任务中的ViT、图像分割任务中的SETR。这些视觉Transformer把图像看作一系列图像块序列,对于每一个图像块会展平为一个向量,破坏了图像块内部的结构信息。

作者提出了Transformer iN Transformer(TNT)模型,能够建模图像的图像块(patch)之间的关系,同时建模每个图像块内部像素(pixel)之间的关系,并在图像识别等任务中体现出优越性。

对于给定的2D图像,将其拆分为尺寸为$p \times p$的$n$块图像块\(\mathcal{X}=[X_1,X_2,...,X_n] \in \Bbb{R}^{n \times p \times p \times 3}\)。对于每一个图像块,一方面通过展平构造patch embedding;另一方面通过PyTorchunfold操作划分成更小的patch并展平,构造pixel embedding

所提出的TNT模型是由很多TNT Blocks组成的,每个TNT Block包含2个Transformer Block,其中outer transformer block用于处理图像块嵌入,inner transformer block用于处理像素嵌入的局部特征。

对于每个图像块,通过标准Transformer模块构造inner特征,用于构建像素之间的相关性;对于图像块序列,通过标准Transformer模块构造outer特征,用于构建块嵌入之间的相关性;最后把两种特征融合起来。块嵌入和像素嵌入分别增加可学习的位置编码。