【論文筆記】Dual Attention Matching Network for Context-Aware Feature Sequence based Person Re-Ident

論文地址[1803.09937] Dual Attention Matching Network for Context-Aware Feature Sequence based Person Re-Identification Accepted in CVPR 2018

Motivation:

經典的reid通常使用單個特徵向量(單張圖片)來表示行人,並將其與任務特定的度量空間進行匹配。這種方式不足以應對在實際場景中常見的視覺模糊。

當行人外觀變化發生較大變化或者不同人穿相似衣服時,基於單個特徵向量的表示的ReID就變得相當困難。

視頻序列中也有一些干擾幀,這將嚴重影響整個特徵向量,從而導致無法匹配。

a 不同的人衣服相似,很難區分。

b 無法對齊。

c 出現遮擋時,基於人體結構的feature sets也可能失效 。

d 視頻中存在干擾幀 。

Method:

主要貢獻:

1、提出端到端的訓練框架DuATM

2、dual attention mechanism 同時做序列內的feature refinement 和序列間的特徵對對齊。

3、整個網路為siamses網路結構,triplet loss作為主要主要loss,de-correlation loss 和一個cross-entropy loss 做輔助,並評估每部分的有效性。

4、在基於圖像和視頻的benchmark datasets 上做了大量實驗證明其有效性。

為了解決上述問題,作者提出了Dual ATtention Matching network (DuATM) ,如圖2,。網路由兩個模塊構成,第一個模塊用於特徵序列提取,第二個模塊用於特徵序列匹配 。

Loss function採用tripletloss 並以Cross-Entropy Loss和De-Correlation Loss為輔助。

Dual ATtention Matching network (DuATM)

Feature Sequence Extraction Module

採用DenseNet-121 作為特徵序列提取模塊的backbone

圖像和視頻特徵提取略有不同

1、圖像特徵提取:從DenseNet-Block4 的輸出得到feature map,feature map reshaping後送入FC層,得到更加compact embedding space。

2、視頻特徵序列特徵提取:長度為T的視頻 chiin R^{H	imes W	imes 3	imes T} ,如圖3(b) 。視頻中的每個timestep 傳遞給DenseNet ,得到frame-level 的feature vector 。再通過bidirectional recurrent layer。來自不同time-steps的所有隱藏層的輸出組成最終的視頻特徵序列。

Sequence Matching Module

Sequence matching module是DuATM的最重要組成部分,特徵序列提取模塊得到的特徵序列包含豐富的上下文信息,Sequence matching module 就是利用上下文信息通過attention mechanism幫助特徵向量refinement(去除干擾幀的影響),特徵序列對對齊。

特徵序列對left( X_{a}, X_{b}
ight) ,其中 X_{a} = left{ x_{a}^{i} 
ight}_{i=1}^{S_{a}} X_{b} = left{ x_{b}^{i} 
ight}_{i=1}^{S_{b}} 。如果特徵序列對中的一個被視為memory,則該序列內的每個特徵向量的refinement可以通過序列內attention過程來實現。如果將另一個序列作為memory,則每個特徵向量的對齊可以通過序列間attention過程來實現;反之亦然。

如圖4 (b)在refinement和對齊後,整體序列距離是通過整合refined和對齊配對的特徵向量後的每個序列對之間的多個local distances來計算的。

dual attention 是由一個transform layer和一個attention layer組成。其中transform layer是用於生成feature-aware filter,attention layer是用於生成對應的attention weights.

如圖4 (b)

left( ar{x}_{a}^{i},widehat{x}_{b}^{i} 
ight) 的生成過程為例介紹dual attention塊。

x_{a}^{i} 作為一個reference feature進行refinement和對齊。

首先通過transform layer得到filter q_{a}^{i}

然後通過attention層,序列內refinement和序列間對齊:

<cdot,cdot> 表示求內積。

最後,得到refine和對齊後的 left( ar{x}_{a}^{i},widehat{x}_{b}^{i} 
ight)

其中 sigmaleft( cdot 
ight) 是用于歸一化的softmax函數。

sigmaleft( t_{j} 
ight) = frac{expleft( t_{j} 
ight)}{sum_{j=1}^{S}{exp(t_{j})} }

距離計算

用歐幾里得距離計算特徵對之間的距離

特徵序列 X_{a}X_{b} 的距離是通過average pooling聚合這些距離後的結果

其中 left| left| X_{a} - X_{b} 
ight| 
ight|_{M} 為序列匹配模塊定義的距離,將序列匹配模塊中的所有參數(即W,b和BN層中的參數)表示為 Theta_{M}

Loss function

Loss function定義為:

其中 λ1 > 0 ,λ2 > 0,是兩個tradeoff參數。

將triplet loss  l^{0}left( X,Theta_{F},Theta_{M} 
ight) 定義為:

其中r>0(實驗中r=0.2)

De-Correlation Loss定義:

Cross-Entropy Loss:

其中c是與輸入X相同的標籤,{wc,bc}分別指FC層的權重矩陣和偏移向量的第c行,θ包含新FC層中的參數。

4. Experiments

三大數據集上的實驗結果:

可視化結果

推薦閱讀:

TAG:計算機視覺 | 行人重識別 | 深度學習DeepLearning |