論文筆記:Auto-ReID: Searching for a Part-aware ConvNet for Person Re-Identification

Auto-ReID: Searching for a Part-aware ConvNet for Person Re-Identification
2019-03-26 15:27:10

算法

Paperhttps://arxiv.org/pdf/1903.09776.pdf 網絡

 

1. Background and Motivation:app

本文將 NAS 的技術用到了 person re-ID 上,可是並不是簡單的用 NAS 技術來搜索一種 ConvNet,本文考慮到 re-ID 的特點,將其結合到 NAS 中。固然之因此這麼作,是由於做者認爲專門爲 classification 任務所設計的 CNN backbones,並非完美的適合 re-ID 的任務,由於其網絡模型可能含有 noisy, redundancy and missing components。做者認爲 NAS 的方法用到 re-ID 的任務上,有以下三個挑戰:ide

1). the body structure information 在 re-ID 中扮演着重要的做用,可是,現有的 NAS 方法卻沒法建模;函數

2). re-ID 算法一般在 CNN backbone 的 tail 部分來編碼結構化信息,可是,大部分這些方法都是依賴於 backbone 的。當採用不一樣 backbone 的時候,須要充分的手工調整超參數。性能

3). re-ID 本質上算是一種 retrieval task,可是大部分的 NAS 方法缺只是被設計用於 classification。因爲 retrieval 和 classification 有不一樣的目標,現有的 NAS 算法沒法直接用於 re-ID 的問題。編碼

 

基於上述觀察和分析, 做者設計了一種新的 Auto-reID 算法來解決上述三個問題。而這種方法的關鍵在於:design a new re-ID search space,這種搜索空間能夠將身體結構化的信息做爲可操做的 CNN 成分。另外,做者也將 retrieval loss 結合到搜索機制中,使得搜索的結果更加適合 re-ID 任務。那麼,本文所提出的 re-ID search space 和 re-ID search algorithm 能夠確保找到一個 efficient 和 effective 的網絡結構,如圖 1 所示:spa

 

2. Methodology設計

2.1 Preliminaries: 3d

許多 NAS 的方法都是許多 neural cell 的堆疊,而一個 cell 包含多個 layers,將以前 cells 的輸出做爲輸入,而後產生新的輸出 tensor。做者也服從這種套路,來搜索適合的 re-ID 網絡結構。

 

具體來講,一個 neural cell 能夠看作是一個 directed acyclic graph (DAG),假設有 B 個 blocks。每個 block 有以下三個步驟:

1). 將 2 tensors 做爲輸入;

2). 在輸入 tensors 上分別採用 two operations;

3). 將這兩個 tensors 進行 sum。

而所選擇的操做,就是從一個候選操做集合 O 上選擇。本文中,採用以下的 operations:

(1) 3×3 max pooling,

(2) 3×3 average pooling,

(3) 3×3 depth-wise separable convolution,

(4) 3×3 dilated convolution,

(5) zero operation (none),

(6) identity mapping. 

第 c 個 cell 的 第 i 個 block 能夠表達爲以下的四元組: 另外,第 c 個 cell 的 第 i 個 block 的輸出是:

 

其中,I are selected from the candidate input tensors, which consists of output tensors from the last two neural cells and output tensors from the previous block in the current cell. 爲了搜索公式 1 中的操做符 O 以及 I,咱們將操做符選擇的問題進行鬆弛,用 softmax 來對每個 operation 進行打分:

其中,$\alpha$ 表明對於一個 neural cell 的拓撲結構,稱爲:architecture parameters。咱們將全部 O 中的參數記爲 w,稱爲 operation parameters,一個典型的可微分的 NAS 算法,聯合的在 training set 上進行 w 的訓練,在 validation set 上進行 $\alpha$ 的訓練。在訓練以後,H 和 I 之間的強度(strength)定義爲:

其中,帶有最大強度的 H 被選擇做爲 I,作大權重的操做符,被選爲 $O_{i1}^c$。上述常規的 NAS 搜索方法 DARTS 是被設計用於 classification task,因此做者考慮將該機制結合到 re-ID 任務中。

 

2.2 Re-ID Search Algorithm

做者嘗試將 the re-ID specific knowledge 結合到搜索算法中。從網絡結構的角度來講,做者利用 ResNet 的 macro structure 做爲 re-ID 的backbone,每個 residual layer 被 neural cell 所替換。而這種 neural cell 的結構,就是搜索出來的。

 

上述過程,簡述了特徵變換的過程。另一個重要的問題是損失函數的定義,在 classification task 中 cross-entropy loss function 固然是首選,那麼問題是 re-ID task 並不是簡單的分類問題。因此,做者在這裏作了些許的改變,引入了 triplet loss 來進一步改善網絡的訓練過程。聯合的損失函數表示以下:

  

其中,交叉熵損失函數 和 三元組損失函數的定義分別以下所示:

  

上述就是損失函數的定義。算法流程以下所示:

 

2.3. ReID Search Space with Part-aware Module

該小節主要是介紹做者設計的 part-aware module 來改善搜索空間的問題。做者也給出了一個 pipeline,來講明該過程:

 

具體的操做其實就是對 feature map 進行 part 的劃分,而後計算其 self-attention,進行 attend。而後將 attend 以後的 local feature,分別與原始的 input feature 進行組合,而後用 1*1 的卷積操做進行降維處理,獲得 output tensor。這麼作的優點是什麼呢?做者提到本文所設計的 part-aware module 能夠捕獲有用的 body part cue,並將這種結構化信息融合到 input feature 中。本文所提出的 part-aware module 的參數大小和數量 和 3*3 的depth-wise separable convlution 是至關的。因此,並不會顯著的影響 NAS 的效率。

 

3. Experimental Results

 

 

4. Future Works:

在將來工做中,做者提到本文是首次進行 re-ID 網絡結構的設計,僅考慮到了一種可能的特定模塊。更多的關於 re-ID 的特定領域知識,均可以考慮進來。以獲得更好的 re-ID 的性能。

==

相關文章
相關標籤/搜索