關於利用GAN做行人ReID的文章:
[NIPS-2018] FD-GAN: Pose-guided Feature Distilling GAN for Robust Person Re-identification。
[CVPR2019] Joint Discriminative and Generative Learning for Person Re-identification.
兩篇paper代碼均以開源,本文簡要分析后者,在GAN生成行人數據做的比較好,提升非常明顯。文中提到之前利用GAN做reid都是分離式的,即先利用GAN生成數據,然后訓練所有的數據。而文中提出一個統一框架將生成模型合並到特征學習模型中,端到端訓練在線利用生成的數據訓練。所提出的生成器模型將每個行人圖分解成appearance部分和structure部分。判別器和生成器共享appearance部分。通過轉換appearance和structure部分,可以是生成器生成高質量交叉id的圖像,然后輸入到appearance編碼器取提升判別器。
下圖是appearance和structure組合:
appearance和structure主要負責編碼的內容:
即appearance負責外表和其他和id身份有關的信息,structure負責幾何位置信息。所有模塊是聯合訓練,在線生成的圖片在線利用。是首個端到端嵌入判別器和生成器在同一框架的reid結構。整體結構如圖:
文中生成器負責圖像生成,判別器用於reid學習。生成器包括兩種圖像映射:同一id映射和跨id映射。判別器包括特征學習和細粒度學習特征挖掘。一個個人覺得比較重要的點:由於在生成一張圖時需要一個appearance編碼和一個structure編碼,所以有可能會在學習過程中網絡只利用structure的信息而忽略了appearance的信息,所以為了避免這種平凡解,在利用structure時,將圖像轉換為灰度圖,這樣迫使網絡必須也從appearance中學習。
1. 生成器部分 :7個loss
損失極其多。第一個loss是同等映射。就是由圖A生成圖A,即要保證生成器的重構能力。第二個loss是交叉重構。即對於同一id的不同圖片進行重構,這個loss鼓勵appearance編碼器將同一id的appearance拉近。來減少特征類內方差。同時第三個loss是分類損失,保證所有同一appearance的不同圖像屬於同一類。前三個loss針對同一id,接下類三個loss都是針對跨id。第四個loss約束相同appearance的兩個不同id的appearance相近。第五個loss約束相同structure的兩個不同id的structure相近。由於appearance決定了id,所以第六個loss也是分類損失·,所有生成的appearance相同的圖像都應屬於一類。第七個loss為對抗損失,就是生成器和判別器的損失。
2. 判別器部分 :2個loss
判別器部份通過共享appearance編碼器嵌入到生成器模塊。和生成器通過轉換appearance和structure來生成圖像一樣,判別器部分包括primary特征學習和fine-grained特征挖掘來更好利用在線生成的圖像。這個模塊如圖(d)所示,單拎出來在圖(d)。
Primary feature learning:可以按照已有的工作將生成的圖作為訓練樣本,但是不同id的類間方差促使我們采取一種伴隨動態軟標簽的教師-學生類型的監督。利用一個教師模型來動態賦予軟標簽。教師模型是利用原有訓練數據集訓練的一個分類基線模型。通過最小化KL divergence來最小化判別器預測的分布和教師模型預測的分布差異。
Fine-grained feature mining:直接利用生成的數據用於學習primary特征之外,一個有趣的方案是估計同一個人的衣服變化。此時判別器將被強制學習細粒度相關的屬性,例如頭發,包,身材等,是與衣服獨立的。利用分類損失來優化。實現了自動屬性挖掘。
效果對比: