論文:Invariance Matters:Example Memory for Domain Adaptive Person Reidentification

github: github.com/zhunzhong07/

這篇文章討論的是reid中的域自適應問題(domain adaptive),域自適應問題就是利用標記的源域和未標記的目標域學習一個行人重識別模型。當前的主流方法大多是減少源域和目標域之間的域差距(特徵分布差異),但是這些方法忽視了目標域的域內變化,這對reid在目標域上的測試表現是很重要的影響因子。文章對目標域的域內變化進行了全面研究,提出了關於三種域不變性的reid模型,分別是樣例不變性、相機不變性和領域不變性。作者提出了樣例記憶模塊存儲目標域的中間特徵,樣例記憶模塊迫使網路在全局訓練中增加不變性約束。

樣例不變性:通過使每個行人樣例和他自己距離更近,和別的更遠,在未標記的目標數據集上學習明顯的相似性。

相機不變性:雖然相機風格的變化會顯著的影響行人的外觀變化,但是通過相機風格轉換後的行人圖像仍是屬於同一個人。作者基於下面的假設提出了相機不變性:一張行人圖像和其通過相機風格轉換後得到的圖像,應該彼此更接近。

領域不變性:假設我們得到了一個在源域和目標域上訓練的一個reid模型,一個目標樣例和其在目標域中相鄰的圖像應該有相同的身份。基於這個假設,作者提出了領域不變性:強迫一個樣例和其鄰近的樣例,彼此之間應該更接近。

樣例不變性、相機不變性和領域不變性幫助我們學習一個更魯棒的模型,來克服目標域內的圖像變化問題。

圖1 三個不変性
圖2 ECA的整體架構

數據集準備:在無監督域自適應(UDA)下,我們提供了一個完全標註的源數據集{ {Xs,Ys} },源數據集包含了Ns張圖像,M個不同的行人身份。每一個行人圖像 Xs,i 屬於一個身份 Ys,i 。文章還提供了一個未標記的目標數據集 Xt ,包含 Nt 張行人圖像。

目標就是利用標註的源域數據集和未標註的目標域數據集學習一個可遷移的行人重識別模型,該模型能夠在目標測試集上表現良好。

文章提出的ECN網路的整體架構如圖2所示。在模型中,使用了在ImageNet上與訓練的ResNet-50作為基礎模型,特別的,保留了ResNet-50中pooling5前面的層,在pooling5層後增加了一個4096維的全連接層(FC-4096),後面跟著BN層,ReLU,dropout和兩個分支。第一個分支是一個用於源域數據集進行監督學習的分類模型,有一個M維度的全連接層,文章中叫做FC-#id,和一個softmax 激活函數。文章中使用交叉熵損失計算源數據域的loss。另一個分支是用於未標註目標數據集不變性學習的樣例記憶模型。樣例記憶看做特徵存儲,保留每一個目標集中的圖像的FC-4096的輸出。文章通過計算局部樣本和全局樣本的相似性計算目標域的域不變性學習loss。

源數據域的監督學習

由於源數據集的圖像類別是可知的,因此把源域的訓練過程看做分類過程。用交叉熵損失優化這個網路,損失函數為:

Ns是一個訓練batch中源數據圖像的數目。

使用有監督的源數據域訓練的模型在相同分布的測試集上會有很高的準確率,但是當測試集和源數據域有不同的分布時,這個模型的表現就會嚴重下降。樣例記憶模塊就是解決訓練過程中目標域的域內變化問題。

樣例記憶模塊

為了提升網路在目標測試集的返回能力,文章提出通過估計目標集圖像之間的相似性,將不變性學習加入到網路中。樣例記憶模塊就是為了達到這個目標提出的,其用來存儲所有目標集圖片的更新特徵,是一個鍵值結構,包括一個鍵模塊K和一個值模塊V。在鍵模塊中,每一欄存儲的是FC-4096 L2正則化的特徵。在值模塊中,存儲的是標籤信息。

給定一個未標記的目標數據集(包含Nt張圖片),把每一個圖片實例看成一個單獨的類別。因此,樣例記憶模塊有Nt個欄。初始化時,把鍵模塊中所有特徵的值初始化為零。為了簡單,把目標集中圖像的索引分配為圖像的label。比如,第i張圖片的label在值模塊中,對應的欄為i。訓練過程中,值模塊的labels是固定的。對鍵模塊中的特徵,前向傳播。在反向傳播中,按下面的公式更新鍵模塊中的特徵:

K[i]是鍵模塊中存儲的特徵向量,f是網路計算出來的特徵向量,α是控制更新速率的超參數,屬於[0,1]。K[i]接著正則化。

目標領域中的不變性學習

樣例不變性

每一張行人圖像的外觀都應該和別的圖像不一樣,即使這兩張圖像是同一個人。換句話說,每一張圖像都應該和他自己更接近,和別的圖像更遠。因此,通過讓網路學習區分單獨的行人圖像,將樣例不變性引入網路中。這就要求網路捕捉行人更明顯的特徵表示。

先計算K[i]和f之間的餘弦相似性(內積的形式),然後用softmax函數預測 Xt,i 屬於類別i的概率。

樣例不変性的目的就是最小化在目標數據集上的負對數似然,即

相機不變性

在標記的源數據集上訓練的reid模型能夠捕獲源數據上的相機不變性,但是可能會受到目標相機帶來的圖像變化的影響。為了解決這個問題,文章提出了使用目標域的相機不變性,基於下面的假設:一張圖像和他經過相機風格轉換後的圖像,彼此之間應該更接近。給定未標記的目標數據集,把每一個相機作為一個風格域考慮,利用starGAN來訓練一個相機風格轉換模型。利用學到的相機風格轉換模型,C是目標域中相機的數目,則可以得到C-1張其他相機風格的圖像,並且身份相同。

認為每一張真實圖像和其經過相機風格轉換後的圖像擁有相同的身份,則相機不變性的損失函數為:

ar{X}t,iXt,i 經過相機風格轉換後C-1張圖片中,隨機抽取的一張圖片。

領域不変性

對每一張目標集中的圖像,在目標集中,存在有一些正樣本(相同身份的樣本)。領域不變性首先計算 f(Xt,i) 和存儲在鍵模塊中的特徵的餘弦相似性,然後再K中找到和 Xt,i 最接近的k個圖像,定義為 M(Xt.i ,K)

基於下面的假設定義領域不變性: Xt,i  所屬的類別應該在M中。因此,為 Xt,i 屬於類別J的概率分配一個權重,為:

領域不変性的損失函數為:

綜上,不變性學習的整個損失為:

ECN網路的整個損失為:

討論:

樣例不変性拉大了不同身份的行人圖像的距離,但是同樣也拉大了相同身份的行人圖像的距離;與之相反,領域不變性減小了同一身份的行人圖像的距離,同時也減小了不同身份的行人圖像的距離,因為沒辦法保證對於待檢索圖像,它的每一個鄰近的圖像都和這個待檢索的圖像是相同身份。因此,在樣例不變性和領域不變性之間存在一個平衡。


推薦閱讀:
相关文章