Auto-ReID: Searching for a Part-aware ConvNet for Person Re-Identification

2019-03-26 15:27:10

Paperarxiv.org/pdf/1903.0977

1. Background and Motivation:

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

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 所示:

2. Methodology

2.1 Preliminaries:

許多 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 進行打分:

其中,αα 代表對於一個 neural cell 的拓撲結構,稱為:architecture parameters。我們將所有 O 中的參數記為 w,稱為 operation parameters,一個典型的可微分的 NAS 演算法,聯合的在 training set 上進行 w 的訓練,在 validation set 上進行 αα 的訓練。在訓練之後,H 和 I 之間的強度(strength)定義為:

其中,帶有最大強度的 H 被選擇作為 I,做大權重的操作符,被選為 Oci1Oi1c。上述常規的 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 的性能。

==

推薦閱讀:

相關文章