1. 程式人生 > >行人重識別 PCB-RPP,SGGNN

行人重識別 PCB-RPP,SGGNN

SIGAI特約作者

Fisher Yu

CV在讀博士

研究方向:情感計算

什麼是行人重識別(ReID)

如下圖,給定一個行人圖或行人視訊作為查詢query,在大規模底庫中找出與其最相近的同一ID的行人圖或行人視訊。

 

ReID(Person Re-identification)任務描述[2]

 

為什麼需要ReID呢?

因為在安防場景下,跟蹤一個目標,只靠人臉識別是不夠的,在臉部資訊丟失時(罪犯有時把臉特意矇住一大部分,或者離太遠了拍不清臉),行人資訊就能輔助跟蹤識別。

 

ReID與人臉識別有什麼聯絡和區別?

都是多媒體內容檢索,從方法論來說是通用的;但是ReID相比行人更有挑戰,跨攝像頭場景下複雜姿態,嚴重遮擋,多變的光照條件等等。

做ReID的話,一般從兩方面入手:

A、特徵工程,設計網路來學習不同場景下都general的visual feature,用probe-gallery的特徵相關性來作為ranking的依據,一般直接Softmax分類。

B、度量學習,設計損失函式,用多張影象的label來約束它們特徵之間的關係,使學到的特徵儘量類內間隔短,類間間隔大。

 

PCB-RPP[1],2017

早期比較經典的文章,方法簡潔明瞭。

main contribution:

1. 提出了均勻分塊的 Part-based Convolutional Baseline(PCB),探討了較優的塊間組合方式

2. 提出了基於 parts 的 Refined part pooling(RPP),用注意力機制來對齊 parts

PCB框架[1]

如上圖所示,PCB框架的流程是:

1、對輸入384*128行人圖提取深度特徵(ResNet50),把最後一個block( averagepooling前)的下采樣層丟棄掉,得到空間大小 24*8的 tensor T

2、按照水平方向分成均勻分成6parts,即6個空間大小 4*8 tensor,然後各自進行 average pooling,得到6個column vectors g

3、使用1*1卷積對g降維通道數,然後接6個FC層(權值不共享),Softmax進行分類

4、訓練時等於有 6個cross-entropy loss;測試時則將 6個 vectors h 合併在一起,再算相似度

這裡有幾種組合方式和超參可以探討:

A、Deep feature的空間維度大小?該分成多少parts?

B、把6個column vector h 先 average pooling 成 1個 vector,再 FC 分類?

C、6個FC層之間的權值是否共享?

作者在文中做了實驗來對比結果,找到最優的組合方案~~

至於為什麼分part的效果會更好,也是基於行人結構分割的先驗知識驅使(類似用Pose key point來做一樣)。比如part1,能更有針對性地根據頭部資訊來分類~~

RPP框架[1]

講完了PCB,我們來看RPP~

RPP本質上就是個attention module,目標是把6 parts 對應的空間分佈進行軟權值分配,進而對齊parts(PCB中均勻分割6parts 的過程,其實可看成人為地 hard attention,只把當前part空間權值設為1,其他parts都為0)

如上圖所示,RPP思路:

1、把深度特徵tensor T 中每個column vectors f 都分為6類(假設共有6個parts),文中是通過線性函式加Softmax來實現(其實就類似用1*1卷積來作segmentation一樣)

 

d_{i}^{(1)}=(1-\alpha)d_{i}^{(0)}+\alpha\sum_{j=1}^{N}{W_{ij}t_{j}^{(0)}}

2、把每個part對應的attention map 權值疊加回 tensor T 裡(即上圖的 GAP過程),得到各 part 的spatial 空間壓縮後的 feature vector g ~ 後續步驟都和PCB一樣~

PCB-RPP訓練流程:

PCB-RPP訓練流程[1]

文中為了保證學到的是part based attention map來對齊parts,故特意在預訓練完PCB後,在Step3處先fix住PCB裡所有層的引數,單獨訓練 part classifier。如下圖所示,如果不加Step 3的限制,出來的6個attention map 將很隨機,效能也會下降。

attention map[1]下圖是加了Step3的效果

從實驗結果看,加了RPP對MAP提升還是很大的:

Results[1]

 

總結:

文中PCB的思想雖然簡單,但是後續CVPR2018中各種part-based ReID文章(各種 Multi-scale, multi-level part fusion 啥的)提供了參考價值。特別是雲從科技的這篇MGN[2],更是將各種粒度的parts 和 triplet loss+ Softmax loss玩得淋漓盡致~

SGGNN [3],ECCV2018

說完了ReID的單張影象part based特徵工程,我們來談談多張影象輸入的 metric learning方法,傳統的contrastive loss, triplet loss 和 quadruplet Loss就不介紹了,下面說說基於圖模型的 SGGNN。

Similarity-Guided Graph Neural Network (SGGNN) 主要貢獻是:

1、網路的輸入是probe和多個gallery,通過 GNN 來fuse不同probe-gallery pairs的差異性特徵;而不像傳統方法probe與每個gallery間都是單獨計算 similarity

2、Similarity-Guided。圖神經網路中節點與節點間的 edge weights 不是直接通過節點間的非線性函式(無監督) 得到,而是利用gallery的標籤,有監督地計算 gallery-gallery similarity得到。

SGGNN整體框架[3]

如上圖所示,假定輸入是一個probe和四個gallery,首先每對probe-gallery 都經過Siamese-CNN 來計算關係特徵di,作為GNN中的節點node;而node間的edge weights可通過 gallery-gallery pair過相同的Siamese-CNN來得到;接著根據圖網路中d1,d2,d3,d4及權值關係,來更新節點的關係特徵,作為similarity score(即Sigmoid後的二分類)。

那問題來了,如何設計網路來提取di?

又如何設計GNN來更新節點值呢?

節點輸入特徵生成[3]

如上圖所示,提取di很簡單,就是把影象對送進引數共享的ResNet50,出來的 deep feature進行 element-wise相減,接著element-wise square然後 BN,得到di;若要繼續算影象對similarity的話,後接個FC層然後Sigmoid即可。

節點特徵更新[3]

上圖所示,目標就是更新di特徵。雖然不太懂為啥專門用2個FC層搞了個message network 來對映di到ti,文中說這樣可以增強節點間流動的資訊,但估計增加不少運量和額外引數。Anyway我們已經得到了各個節點增強後的message+各個edge weights+原始的di特徵,按照下面的公式更新di特徵即可:

P(P_{i}|f)=softmax(W_{i}^{T}f)=\frac{exp(W_{i}^{T}f)}{\sum_{j=1}^{p}{exp(W_{j}^{T}f)}}

for i=1,2,...N

至此,整個網路就可以端到端地去訓練了,通過probe-gallery label 的 cross-entropy loss引導di更新,又通過gallery-gallery label 的 cross-entropy loss引導 edge weights 更新(後者不確定是否一定需要,文中也沒細講)。

關於利用gallery-gallery相似分值來引導改善probe-gallery關係特徵,文中舉了一個類似metric learning的例子很有趣:給定 probe p 和 gallery gi 和 gj,假定 (p, gi) 是 hard positive pair node,而 (p, gj) 和 (gi, gj) 都是相對 easy positive pairs node。如果節點間沒有資訊流動,(p, gi)的相似分值不可能很高。但如果使用 (gi, gj) 相似度來引導更新(p, gi)的關係特徵,那麼(p, gi)的相似分值可能會高。

從實驗結果看,使用Similarity-guided確實對效能提升很大:

results[3]

 

總結與展望:

SGGNN使用gallery-gallery引導多個probe-gallery進行特徵融合,確實能讓網路學到更discriminant特徵。哈哈,估計有人會想把PCB中Part based feature和SGGNN融合起來用了,或者把parts當成節點來用了~~

 

Reference:

[1] Yifan Sun, Beyond Part Models: Person Retrieval with Refined Part Pooling

[2]Guanshuo Wang, Learning Discriminative Features with Multiple Granularity

for Person Re-Identification

[3]Yantao Shen, Person Re-identification with Deep Similarity-Guided Graph Neural Network,ECCV2018