Introduction
作者把Vision Transformer (ViT) 應用到目標重識別任務上。ViT在圖像分類任務上首次得到應用,它將圖像切割成若干小塊,每個小塊拉成序列,輸入到transformer中。在ReID任務中,空間的對齊對於特征學習而言非常重要,因此把transformer應用到ReID中需要考慮到空間的對齊。在此論文中,作者把ViT作為backbone提取特征,並對ReID任務進行調整適配,提出一個名為ViT-BoT的Baseline。(BoT指的是Bag of Tricks)
圖像往往包含了眾多非視覺信息,即視角、相機風格等,基於CNN的方法需要設計特定的網絡結構才能提取出這些非視覺信息,比如針對相機風格設計Camera-based Batch Normalization (CBN),針對視角問題設計Viewpoint-Aware Network (VANet)。為了處理這些非視覺信息(side information),作者在transformer中通過向量投影進行編碼,該模塊命名為Side Information Embedding (SIE).
為了更好地訓練ViT-BoT,作者在最后一層設計了Jigsaw branch,與標准的全局分支並列。雖然全局分支可以對全局的特征編碼,但只有少數有判別力的patch作主要貢獻。因此,在Jigsaw branch中,設計了jigsaw patch module (JPM),小patch在JPM中打亂重組成更大的patch。這樣操作有兩個原因:1) 重組patch使得模型適應擾動;2) 新構建的patch依然包含全局的信息。
通過結合SIE和JPM模塊,作者提出了最終的模型框架TransReID。
Methodology
ViT-BoT
1) Overlapping Patches:
首先將圖像划分成邊長為 P 的patch,假設圖像為 HxW 尺寸,patch划分窗口的間隔為 S,則patch數量為:。
2) Position Embedding:
ViT在ImageNet上的預訓練模型會加載到網絡中,但位置投影的預訓練參數不加載,因為不同任務的圖像像素不一樣,位置信息並不通用。
3) Feature Learning:
最后一層encoder layer輸出的class token為全局特征向量,其余對應 N 個patch的輸出為
。隨后采用BNNeck技巧的交叉熵損失
和soft-margin三元組損失,即:
。
TransReID
1) Side Information Embedding:
transformer模型可以很好的把side information編碼到embedding representation中,對其信息進行結合,且這些embedding是可學習的。若相機編號為 C,則相機embedding為 S(C);若視角標簽為 V,則視角embedding為 S(V)。當需要同時使用這兩種信息時,采用了聯合編碼,即 S(C, V)。
第 i 個patch的編碼為,其中
為特征embedding的線性投影,
為位置embedding。
2) Jigsaw Patch Module:
假設倒數第二層的輸出為:。全局分支采用標准的transformer,得到
。token embedding往往取決其靠近的token,因此一組相近的patch進行embedding會把信息局限在有限的區域。作者采用了JPW模塊,其本質是隨機分組,具體為:把前 m 個patch挪到后面,再進行patch打亂划分。這里的 k 組patch會輸入到同一個transformer結構中,分別提取出一個局部特征。(並不是把一組的patch級聯,形成k個大patch,輸入一次transformer;而是每組輸入一次transformer。)由此得到局部特征
。
最后的損失函數計算為:。最后將全局特征和局部特征級聯,得到最終的特征表示。
Experiment
數據集:
實驗結果: