關於行人重識別方法PCB《Beyond Part Models: Person Retrieval with Refined Part Pooling 》及代碼實現解讀

論文地址:https://arxiv.org/abs/1711.09349
代碼地址:code

什麼是行人重識別(ReID)

行人重識別(Person re-identification)也稱行人再識別,是利用計算機視覺技術判斷圖像或者視頻序列中是否存在特定行人的技術。廣泛被認爲是一個圖像檢索的子問題。 給定一個監控行人圖像,檢索跨設備下的該行人圖像。旨在彌補目前固定的攝像頭的視覺侷限,並可與行人檢測/行人跟蹤技術相結合 ,可廣泛應用於智能視頻監控、智能安保等領域。

如下圖,給定一個行人圖或行人視頻作爲查詢query,在大規模底庫中找出與其最相近的同一ID的行人圖或行人視頻。
在這裏插入圖片描述

ReID任務描述

ReID任務一般包括兩個部分:

  1. 特徵工程,設計網絡來學習不同場景下都general的visual feature,用probe-gallery的特徵相關性來作爲ranking的依據,一般直接Softmax分類。
  2. 、度量學習,設計損失函數,用多張圖像的label來約束它們特徵之間的關係,使學到的特徵儘量類內間隔短,類間間隔大。

Beyond Part Models: Person Retrieval with Refined Part Pooling是清華大學孫奕帆於ECCV2018發表的一篇文章

摘要

論文包括兩個部分:(1)

  1. 一個Part-based的Part-based Convolutional Baseline (PCB)框架,融合了水平切塊的局部特徵來得到一個強大的ReID特徵;
  2. 一個refined part pooling (RPP) 方法,RPP會對水平切塊邊緣處的網格像素進行重新調整,將它們修正到正確的part分區。RPP可以理解爲是一種注意力機制。

最終PCB+RPP不用任何re-ranking的方式來提點,在Market1501上可以達到93.8%的rank-1,是個很高的結果。
在這裏插入圖片描述

PCB框架流程:

  1. 對輸入384128行人圖提取深度特徵(ResNet50),把最後一個block( averagepooling前)的下采樣層丟棄掉,得到空間大小 248*2048的 tensor T。
  2. 按照水平方向分成均勻分成6parts,即6個空間大小 482048 tensor,然後各自進行 average pooling,得到6個column vectors g。
  3. 使用1*1卷積對g降維通道數,然後接6個FC層(權值不共享),Softmax進行分類。
  4. 訓練時等於有 6個cross-entropy loss;測試時則將 6個 vectors h 合併在一起,再算相似度。

RPP(Refined Part Pooling)

在這裏插入圖片描述
爲了了搞懂RPP,我們先定義一個術語——列向量。直觀一點,列向量是指上圖中每一個小網格的特徵向量,即總共有24×8個列向量。接下來我們要調整每個列向量的part歸屬,假設某個列向量爲f,我們要判斷f要屬於哪個水平塊Pi
在這裏插入圖片描述
如上圖所示,RPP思路:

  1. 把深度特徵tensor T 中每個column vectors f 都分爲6類(假設共有6個parts),文中是通過線性函數加Softmax來實現(其實就類似用1*1卷積來作segmentation一樣。即最後對於所有的f,我們構造六個概率圖(或者理解爲mask、attention圖都行),分別代表每個像素屬於第i個part的概率。實現方式爲在最後一層的特徵圖T後面接一個Conv2d得到一個6通道的張量,然後在最後在針對channel維度做softmax。
    在這裏插入圖片描述
    在這裏插入圖片描述
  2. 把每個part對應的attention map 權值疊加回 tensor T 裏(即上圖的 GAP過程),得到各 part 的spatial 空間壓縮後的 feature vector g ~ 後續步驟都和PCB一樣~
  3. 得到了概率圖之後,再和原始的的特徵進行相乘便可以得到最終refine之後的特徵。現在的問題是如何訓練這個新的Conv2d層來得到合適的概率圖。這個卷積層是隨機初始化的,要怎麼纔可以得到和PCB一樣差不多的水平切塊的概率圖。論文提出的方式是先訓練一個PCB網絡,然後固定住除這個Conv2d層以外的所有層。因爲PCB的概率圖是人工切分的,所以用訓練好的PCB去引導這個Conv2d層的訓練,最後訓練得到的概率圖和水平切塊的方式不會差太多,但是會微調一點點。

代碼實現:

代碼解讀見下篇代碼解讀

參考資料:知乎–羅浩

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章