ICCV:阿里達摩院將Transformer應用于目標重識別,效果顯著
論文地址:https://arxiv.org/pdf/2102.04378.pdf
開源代碼:https://github. com/heshuting555/TransReID
1
前言
2
背景
ReID全稱Re-identification,也就是目標重識別的意思。簡單理解就是對于一個特定的目標(可能是行人、車輛、人臉或者其他特定物體),在候選圖像集中檢索到它?;蚍Q圖像中目標的實例級檢索。
目標重識別(ReID)與跟蹤(Tracking)有什么區(qū)別?從任務的角度來看,兩者最主要的區(qū)別如下:
目標重識別:給定一張切好塊的行人圖像 (probe image, 即圖像大部分內容只包含這個人), 從一大堆切好塊的圖像 (gallery images) 中找到跟probe image中同一身份的人的圖像。這些圖像通常是由不同攝像頭拍攝的不連續(xù)幀。
跟蹤:給定一張切好塊的行人圖像 (probe image), 從一段全景視頻 (panorama track, 視野中只有一小部分是這個行人) 中找到 probe 所在的位置。這段全景視頻是由單個攝像頭拍攝的連續(xù)幀。
在視頻監(jiān)控領域,最終目標是要做到多目標跨攝像頭跟蹤 (Multi-target Multi-camera Tracking, 簡稱MTMC Tracking)。而目標重識別和行人跟蹤都是為了達到這個最終目標的子任務。
今天我們具體來說說目標重識別。通過回顧基于CNN的方法,我們發(fā)現了兩個在目標重識別領域沒有得到很好解決的重要問題。
(1) 在全局范圍內利用豐富的結構模式對于目標重識別至關重要。然而,由于感受野存在一個高斯核的衰減,基于CNN的方法主要關注小的判別區(qū)域。最近,已經引入了注意力模塊 來探索遠程依賴關系,但其中大部分都嵌入在深層中,并沒有解決CNN的原理問題。因此,基于注意力的方法仍然更喜歡大的連續(xù)區(qū)域,并且難以提取多個多樣化的判別部分(見下圖 1)
(a) Original images, (b) CNN-based methods, (c) CNN+attention methods, (d) Transformer-based methods
(2) 具有詳細信息的細粒度特征也很重要。然而,CNN的下采樣算子(例如池化和跨步卷積)降低了輸出特征圖的空間分辨率,這極大地影響了區(qū)分具有相似外觀目標的能力。如下圖所示,基于CNN的特征圖丟失了背包的細節(jié),難以區(qū)分兩個人。
如上圖中的這對負樣本對(CNN識別錯誤,Transformer識別正確),兩張圖片的外觀特征是非常相似的,但是從書包的細節(jié)可以看出,左邊書包側面有一個杯子,而右邊書包側面則沒有杯子,因此可以判斷是兩個ID。但是因此CNN的下采樣操作,在網絡最后輸出的特征圖上已經看不清杯子這個細節(jié)了。但是Transformer沒有下采樣操作,因此特征圖能夠比較好地保留細節(jié)信息,從而識別目標。
3
新框架
具體來說,研究者首先將圖像編碼為一系列補丁,并通過一些關鍵改進構建基于transformer的強基線,這在使用基于CNN的方法的多個ReID基準測試中取得了有競爭力的結果。為了進一步增強transformer上下文中的穩(wěn)健特征學習,精心設計了兩個新穎的模塊。
(i) Jigsaw Patch Module (JPM) 被提出通過移位和補丁混洗操作重新排列補丁嵌入,從而生成具有改進識別能力和更多樣化覆蓋范圍的魯棒特征。
(ii) Side Information Embeddings (SIE) 以通過插入可學習的嵌入來合并這些非視覺線索來減輕對相機/視圖變化的特征偏差。
據我們所知,這是第一項采用純transformer進行ReID研究的工作。TransReID的實驗結果非常有前途,在人和車輛ReID基準測試中都達到了最先進的性能。
Transformer-based strong baseline
研究者參考CNN的baseline BoT設計Transformer-based strong baseline。如下圖所示。
研究者參考ViT將圖片分成N個patch,并引入一個額外的cls token共N+1個embedding。經過Transformer layers之后將cls token作為圖像的全局特征,之后經過一個BNNeck結構計算triplet loss和分類ID loss。
此外,還有一個技巧性操作,是對圖像進行patch分塊的時候可以讓相鄰的patch之間有一定的overlap。當然這個操作會使得patch數目增加從而使得模型訓練的資源消耗增加,但是性能也會有比較穩(wěn)定提升。
Jigsaw Patch Module
ReID任務經常會遇到遮擋、不對齊這些問題,一般會采用細粒度的局部特征來處理這些問題,水平切塊就是非常常用的一種局部特征方法。
為了擴大每個group的視野,研究者將所有的patch embedding按照一定規(guī)則進行打亂,然后再進行分組。這樣每個group就可能包含來自圖片不同區(qū)域的patch,近似等效于每個group都有比較全局的感受野。
具體打亂操作分為兩步:
Side Information Embeddings
ReID任務中相機、視角的差異會給圖像帶來一些外觀上的差異。對于CNN框架,通常需要專門設計結構來處理這個問題,例如設計loss、對數據進行先驗處理、改變模型結構等等。這些設計通常比較定制化且比較復雜,推廣性并不強。而transformer則比較擅長融合不同模態(tài)的信息,因此研究者提出了SIE模塊來利用相機ID、視角等輔助信息。
4
實驗及分析
論文中使用的數據集的統(tǒng)計數據
不同Backbone的對比
下表給出了不同Backbone的準確度和推理時間的對比,將ResNet50作為baseline,同時給出了ViT和DeiT的結果。
可以看到,DeiT-S/16在速度上與ResNet50是接近的,在準確度上同樣也有可比的性能。當使用更深的DeiT-B/16和DeiT-V/16時,同樣和ResNest50取得了相似的速度和準確度。當在pre-patch環(huán)節(jié)縮小conv的stride時,patch的數目增加,速度下降,但是準確度也會收獲穩(wěn)定的提升。
和SOTA對比
下表給出了和SOTA方法對比的結果。
可以看到,和CNN的方法相比,TransReID在六個ReID數據集上取得了更好的準確度,這顯示了pure transformer架構在圖像檢索任務上同樣適用。在ImageNet上取得更好分數的DeiT在下游的ReID任務上并沒有超過ViT。這是因為ViT使用了更大的ImageNet22K做預訓練,更大的預訓練數據使得ViT有更好的遷移性。
可視化
(a) Input images, (b) Baseline, (c) JPM w/o rearrange, (d) JPM.
*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。