阅读笔记-TransReID Transformer-based Object Re-Identification

来源: 阿里巴巴和浙大
时间: arXiv:2102.04378v1

title

这篇文章在ViT的基础上提出了一种仅利用Transformer结构实现的ReID方法,并获得了较好的实验性能。

这篇文章的创新点包括三部分:

  • 在ViT的基础上,结合BagofTricks提出了baseline方法ViT-BoT
  • 在baseline上引入了Side Information Embedding(SIE),即相机的编号和图像的视角信息
  • 在baseline上引入了Jigsaw Patches Module (JPM), 即类似于PCB中的stripe划分方式融合全局与局部信息。

ViT-BoT

Table 2

VitBoT的结果如图2所示,
首先, 将目标区域划分成相同大小的不同patches, 这些patches可以重叠也可以不重叠,图中表示不重叠的情况。假设步长为S,每个patch的边长为P,那么patch的个数可以计算为
N = N_H\times N_W = \lfloor \frac{H+S-P}{S} \rfloor \times \lfloor \frac{W+S-P}{S}\rfloor
然后,每个patch都进行了特征的编码,除此之外还配备了一个可学习的embedding,成为class token,即途中的0索引对应的embedding,这个embedding用于编码patch的整体特征,最后一层transformer 层对于每个patch以及class token都输出了对应的特征向量,分别表示每个patch的局部可鉴别特征全局特征,这些特征可以通过组合用于ReID,也可单独利用全局信息进行ReID
另外,transformer中对于每个query都进行了位置编码,因此此处对于每个patch的编码特征以及class token的embedding都提供了位置编码,整个模型使用ImageNet上训练的ViT参数进行初始化,而位置编码由于位置和尺度不同无法直接赋值,这时通过二次线性插值计算获得初始值。
最后,计算训练损失,损失只在全局特征上计算(为什么没有在patch上也进行计算呢?),采用的结构使用了BNNeck结构,即将分类损失和度量损失进行了剥离,之前我们介绍过。度量损失计算如下:
L_T = \text{log}\big[1 + \text{exp}\big( \Vert f_a-f_p \Vert_2^2 - \Vert f_a - f_n \Vert_2^2 \big)\big]
正负样本以及anchor分别以下标 a, p, n标记。

TransReID

TransReID

TransReID结构如图3所示,相对于ViT-BoT主要两点不同,第一个是embedding层引入了SIE即边缘信息,第二个是局部分支的处理。

SIE

主要目的是缓解跨摄像机、跨视角等条件下的表观偏置,一般的基于CNN的方法通过设计专门的损失函数或者设计特殊的网络结构融合side information,比如相机id和视角信息等。
本文的方法直接对相机编码和视角进行了编码,然后与表观编码和位置编码进行融合。具体而言,相机id编码表示为S(C), 视角编码表示为S(V), 如果相机id和视角信息同时存在,则编码为S(C,V), 而非S(C)+S(V),作者分析认为是避免了S(C)+S(V)的相互抵消,但我觉得其原因在于联合分布优于边缘分布。对于相机id的编码对整张图像相同,而对于视角的编码则对一个目标的所有patch相同。
注意:这里S(C,V)是和位置编码一样的直接学习的参数,他和位置编码不同点在于S(C,V)对同一图像中同一目标的不同patch是相同的,而位置编码这是不同图像中相同位置的patch是相同的。

JPM

文章中将最后一层transformer分成并行的两个transformer,一个和原来的一样用于提供全局特征。另一个则用于提供局部特征。
问题的关键是如何构建局部特征,最直接的想法是将patches分成k个group,然后学习k个局部特征。如果按顺序划分的话,由于patch本身就是按距离有序的,因此会导致信息局限在有限连续区域内。所以本文对patch进行了随机的划分成不重叠的k组。

文章中说了很多,什么shift operation, shuffle operation。本质就是随机分组。

分组之后,每组的特征再加上token class的特征放入到transformer中输出一个token class 的特征表示该组提供的局部特征,所有的组共享一个transformer,每组使用的损失函数和全局的损失函数相同。

注意 这里在获得局部特征时,不是讲每一组特征cat在一起,然后输入query数为k+1的transformer中,而是每一组单独输入query 数为N//k+1的的transformer中。这样的话,其position embedding可以与整个Trans'R'eID对应起来。

实验

  1. 数据集


    dataset

    注意不是所有的数据集同时训练,而是每个数据集进行独立的训练与测试。

  2. 执行细节

  • 行人的尺寸: 256x128, 车辆尺寸:256x256
  • 数据增强:随机水平翻转、随机裁剪和随机擦除,padding with 10 pixels这个不是很懂
  • batch构造,每个id抽4张,batchsize=64
  • 优化器 SGD, 学习率从0.01采用cosine 衰减,就是将整个epoch周期作为cosine函数的0\sim\pi/2
  • k=4, 还设置了shift operation的shift步数m,但不知道有什么意义,实验也没有分析
  • 硬件:1张V100, FP16 精度
  1. ViT-BoT


    ViT-BoT baseline

    表2中主要对比了使用不同backbone下的BoT下reid性能, 发现本文的ViT-BoT相对于ResNet系列性能提升明显,和ResNeSt系列差不多,但是训练时间相对于同等性能的ResNeSt要小一些。
    这部分有些不清楚的地方在于不同backbone下BoT的策略和ViT-BoT是否相同?

  2. SIE


    Table 3. SIE 分析

    MSMT17仅提供了Cam ID信息, 而VeRi-776同时提供了Cam ID和View信息。可以发现:

  • 使用SIE信息肯定能带来性能提升
  • 两种SI融合会互相促进,文章还对比了采用S(C)+S(V)的方式,mAP为78.3, 可以发现相对于什么都不用是由提升的,但是相对于任何单独一个性能是下降的。
Fig4

图4给出的是使用SIE前后对于相机id,视角产生的特征偏置的弥合作用。
a,b两个图表示的不使用SIE时,在相机ID和视角两个方面同类和不同类中样本相似度的分布,我们希望的是样本特征能够与是否同类无关,也就是说希望绿色和粉色的两个分布重合,但可以发现不用SIE时两个分布差别较明显。
c,d分别表示使用SIE之后的分布差异,可以发现两个分布有靠拢的趋势,但其实差别还是挺大的。

Fig 5

图5给出的是超参数\lambda的影响,文章没有讨论的是对于VeRi-776中Rank-1的非规律变化是怎么回事??

  1. JPM


    Table 4

    解释:

  • groups表示k的大小
  • w/o shuffle 表示不使用shuffle, 那么问题来了,是否使用了shift呢??
  • w/o local 表示训练和JPM一样配置,只是测试的时候仅使用了全局特征。那么又有一个问题,使用local特征,由于存在shuffle,那相同的数据多次测试的性能会一样吗??
  • 还有一个问题如果group的过程中存在overlapping会怎么样呢?
  1. TransReID


    TransReID

    没啥要说的,两个模块是能够相互促进的。

  2. SOTA


    SOTA

    撇开算法配置是否相同,单独论整个系统而言,本文提出的TransReID确实在性能上相较于一些SOTA方法有较大的提升。

结论

提出了一种纯依赖transformer的ReID方法,包括SIE和JPM两个模块。其实个人觉得JPM这块还有挺大的值得讨论的空间。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,784评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,745评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,702评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,229评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,245评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,376评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,798评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,471评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,655评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,485评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,535评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,235评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,793评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,863评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,096评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,654评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,233评论 2 341

推荐阅读更多精彩内容