【论文阅读】TransReID: Transformer-based Object Re-Identification

论文代码链接
论文原文链接

摘要

目标重识别的关键就是提取鲁棒的特征!

之前方法的弊端:卷积神经网络(CNN)的方法一次只处理一个局部邻域,并且由于卷积和下采样算子(如池化和跨卷积)导致细节信息丢失。

提出:纯基于transformer的目标ReID框架。 

具体来说:我们首先将图像编码为一系列补丁,并通过一些关键改进构建基于transformer的强baseline,这在使用基于cnn的方法的几个ReID基准上取得了有竞争力的结果。为了进一步增强transformer背景下特征学习,设计了两个新的模块。

(i)提出jigsaw patch module (JPM),通过shift和patch shuffle操作对patch嵌入进行重新排列,生成鲁棒特征辨别能力提高,覆盖面更广。

(ii)引入侧面信息嵌入(SIE),通过插入可学习的嵌入来合并这些非视觉线索,以减轻对摄像机/视图变化的特征偏差。

这是第一个采用纯transformer进行ReID研究的工作。

引言

目标再识别(Object reidentification, ReID)是将一个特定的物体在不同的场景和摄像机视图中关联起来。提取鲁棒性和判别性特征是ReID的一个重要组成部分,基于cnn的方法一直是ReID研究的重点。

cnn有两个问题没有解决:

1 探索全局范围内丰富的结构模式是关键的,但是cnn关注的主要是小的判别区域。注意力机制大多数都嵌入到深层,并不能解决CNN的原则问题。基于注意力的方法仍然偏爱大的连续区域,并且很难提取多种多样的可区分的部分。图一

 2 细粒度信息的重要性,然而,下采样算子(如pooling和stride convolution)的CNN降低了输出特征图的空间分辨率,极大地影响了对外观相似物体的识别能力。图二

 (总之就是全局特征和局部特征,全局特征应该关注范围更广的区域,细粒度特征应该关注两个相似样本的可判别性关系)

Vision Transformer (ViT)可以与基于cnn的特征提取方法一样有效,在基于cnn的ReID中,由于引入了multi-head注意模块,去除了卷积和下采样算子,基于transformer的模型适合解决上述问题,原因如下:

1 与CNN模型相比,多头自我注意捕获了长期的依赖关系,并驱动模型参与不同的人体部位
(如图1中的大腿、肩膀、腰部)

2 没有下采样操作,transformer可以保存更详细的信息。例如,我们可以观察到背包周围的feature map(在图2中用红框标记)上的差异可以帮助模型很容易地区分这两个人。

设计有关于re-id的transformer方法以应对独特的挑战,如图像中的大变化(如遮挡、姿态的多样性、相机视角)。

然而,将刚性条带分割方法从基于cnn的方法扩展到纯基于transformer的方法,可能会由于全局序列分裂成几个独立子序列而破坏长期依赖关系。此外,考虑到额外信息,如摄像机和特定视点的信息,可以构造不变特征空间来减小侧面信息变化带来的偏差。

因此,我们提出了一个新的对象ReID框架,称为TransReID,以学习鲁棒的特征表示。

首先,通过一些关键的适应性调整,我们构建了一个基于纯transformer的强大基线框架

其次,为了扩展长期依赖,增强特征的鲁棒性,我们提出了jigsaw patches模块(JPM),该模块通过shift和shuffle操作对嵌入的patch进行重新排列,并将其重新分组以进行进一步的特征学习。在模型的最后一层采用JPM与全局分支并行提取鲁棒特征。因此,该网络倾向于提取具有全局上下文的扰动不变和鲁棒特征。(这一部分应该是对应全局特征,结合上下文结构)

第三,为了进一步增强鲁棒特征的学习,引入了侧信息嵌入(SIE)。我们提出了一个统一的框架,通过可学习的嵌入有效地整合非视觉线索,以缓解摄像机或视角带来的数据偏差,而不是基于cnn的非视觉线索利用方法的特殊和复杂设计。以相机为例,建议的SIE有助于解决相机间和相机内匹配之间巨大的配对相似性差异(见图6)。SIE还可以很容易地扩展到包括除我们所演示的以外的任何非视觉线索。

贡献:

我们提出了一个强大的基线,它首次为ReID任务使用了纯转换器,并与基于cnn的框架实现了相当的性能。

我们设计了一个jigsaw patches模块(JPM),包括shift和patch shuffle操作,使目标具有扰动不变性和鲁棒的特征表示

我们引入了一种侧信息嵌入(SIE)方法,通过可学习的嵌入对侧信息进行编码,并证明了该方法可以有效地消除学习特征的偏差。

方法

Transformer-based strong baseline

我们的方法有两个主要阶段:特征提取和监督学习 

划分N个patches,一个额外的可学习的[cls]嵌入标记标记为x_cls被前置到输入序列。输出[cls]作为一个全局特征表示f。通过增加可学习的位置嵌入来整合空间信息。Z_0是输入空间嵌入,F是线性投影,l个transformer层学习特征表示。由于所有的transformer层都有一个全局的接收域,因此解决了基于cnn的方法的接收域有限的问题。也没有下采样操作,所以详细的信息被保留。见图3:

Overlapping Patches:
比起纯粹的基于transformer模型(如ViT、DeiT)将图像分割成不重叠的小块,小块周围的局部邻近结构丢失。相反,我们使用滑动窗口来生成像素重叠的补丁。

步长为S ,P=16块patch。那么两个相邻的patch重叠区域的形状为(P-S)P。输入图像有N个patch。N_H和N_W分别代表高度和宽度上的分裂斑块数。S越小,图像被分割成的patch越多。直观地说,更多的补丁通常会带来更好的性能,但需要花费更多的计算。(所以说在计算过程中,每个patch都需要相互的度量距离)

Position Embeddings:

图像原始的分辨率用于ReID任务可能与原来的任务不同,在ImageNet上预先训练好的位置嵌入不能在这里直接加载。因此,引入双线性2D插值来帮助处理任何给定的输入分辨率。与ViT类似,位置嵌入也是可学习的。

Supervision Learning:
通过构造全局特征的ID损失和三重损失来优化网络。

 Jigsaw Patch Module

学习细粒度特征:

以前的方法没有考虑全局的关系,我们提出了一种jigsaw patch模块(JPM),该模块将嵌入的patch进行洗牌,然后将它们重新组合成不同的部分,每个部分包含多个随机的整幅图像的patch嵌入。此外,在训练中引入额外的扰动也有助于提高目标ReID模型的鲁棒性。受ShuffleNet[53]的启发,通过shift操作和patch shuffle操作对嵌入的patch进行洗牌。将序列嵌入序列Zl−1进行如下洗牌:

Step1: The shift operation. The first m patches (except for [cls] token) are moved to the end,

Step2: The patch shuffle operation. The shifted patches are further shuffled by the patch shuffle
operation with k groups.

通过shift和shuffle操作,局部特征flj可以覆盖不同车身或车辆部件的贴片,具有全局识别能力。

如图4所示,另一个全局分支是一个标准transformer,与拼图贴片平行,将Zl−1编码为Zl =[fg;zl1;zl2;:::;zlN],其中fg作为基于cnn的方法的全局特征。最后,利用LID和LT训练全局特征fg和k个局部特征。总损失计算如下:

Side Information Embeddings

在获得细粒度特征表示后,特征仍然容易受到摄像机或视点变化的影响。换句话说,训练后的模型很容易由于场景偏误而无法从不同角度区分同一物体。因此,我们提出侧信息嵌入(SIE)将非视觉信息(如摄像机或视点)整合到嵌入表示中,以学习不变特征.

位置嵌入采用可学习的嵌入方式编码位置信息,受此启发,我们插入可学习的一维嵌入来保留边信息。特别是,如图4所示,SIE与贴片嵌入和位置嵌入一起插入transformer编码器。其中,假设共有N_C摄像头id,将可学习侧信息嵌入初始化为sc2 属于R^NC×D。如果一幅图像的相机ID为r,则表示其相机嵌入量为SC[r]。不同于不同patch之间的位置嵌入,相机嵌入SC[r]对于图像的所有patch是相同的。此外,如果对象的视点可用,无论是通过视点估计算法还是人工标注,我们也可以将视点标签q编码为SV [q],用于图像中所有的patch,其中SV 2 RNV ×D和NV表示视点id的数量。

现在的问题是如何整合两种不同类型的信息。一个简单的解决方案可能是直接将两个嵌入项相加,比如SC[r] +SV[q]。

 由于每个patch的位置嵌入不同,但在不同的图像中是相同的,S(C;V)对于每个patch是相同的,但对于不同的图像可能有不同的值。transformer层可以用不同的分布属性对嵌入进行编码,然后可以直接添加。

这里我们只演示了相机和视点信息对SIE的使用,这两者都是分类变量。在实践中,SIE可以进一步扩展为更多种类的信息编码,包括分类变量和数值变量。在我们对不同基准的实验中,相机和视点信息包含在任何可用的地方。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值