論文:Learning Discriminative Features with Multiple Granularitiesfor Person Re-Identification
摘要
????行人表示的直觀方法就是從圖像中提取全身的辨別特征谓媒,全局特征學(xué)習(xí)的目的就是捕捉明顯的線索,來(lái)表示不同行人的身份。由于行人Re-ID的數(shù)據(jù)集規(guī)模有限且多樣性弱窟勃,一些不顯著的或者不常見(jiàn)的信息容易被忽略别惦,并且在全局特征學(xué)習(xí)過(guò)程中沒(méi)有貢獻(xiàn)允趟,這使全局特征很難具備類內(nèi)相近和類間相遠(yuǎn)的特性屎慢。為了解決這個(gè)問(wèn)題亚享,可以從圖像中定位身體的重要部分來(lái)表示行人身份的局部信息(如圖一所示)咽块。論文提出了一個(gè)將全局信息和各粒度局部信息結(jié)合的端到端特征學(xué)習(xí)策略:Multiple Granularity Network (MGN)。
????MGN是一個(gè)多分支的深度網(wǎng)絡(luò):一個(gè)全局特征表示的分支和兩個(gè)局部特征表示的分支欺税。通過(guò)將圖片劃分成多個(gè)條帶侈沪,并且改變不同局部分支的條帶數(shù)量來(lái)獲得多粒度局部特征表示。
MGN 網(wǎng)絡(luò)結(jié)構(gòu)
????主干網(wǎng)絡(luò)使用resnet50,并且將block res_conv4_1之后的部分分成三個(gè)分支箩祥,這三個(gè)分支的結(jié)構(gòu)相似院崇,但是下采樣率不同。
????如上圖所示,最上面的分支為全局分支(global branch)盲泛,在res_conv5_1中使用了stride=2的卷積進(jìn)行下采樣濒持,對(duì)得到的feature map采用全局最大池化(global max pooling)生成2048維的特征向量键耕,并通過(guò)1??1的卷積壓縮為256維的特征向量寺滚。
????中間和下面的分支用于學(xué)習(xí)局部的特征表示,為了保留適合局部特征的感受野屈雄,這兩個(gè)分支都沒(méi)有使用下采樣村视。通過(guò)在水平方向上均勻的將feature map劃分為N個(gè)條帶,并對(duì)N個(gè)條帶分別全局最大池化和1??1卷積來(lái)得到對(duì)應(yīng)的局部特征酒奶,不同的N表示不同的粒度蚁孔,N越大粒度越細(xì)。中間的分支N=2惋嚎,可以理解為將行人分為上半身和下半身杠氢;下面的分支N=3,可以理解為將行人分為上另伍,中鼻百,下三個(gè)部分。
????在測(cè)試的時(shí)候摆尝,將3個(gè)256維的全局特征向量和5個(gè)256維的局部特征向量concat起來(lái)得到的2048維向量作為行人的特征表示温艇,用于相似性搜索。
loss函數(shù)
????為了讓網(wǎng)絡(luò)具備辨別的能力堕汞,論文將用于分類的softmax函數(shù)和用于度量學(xué)習(xí)的三元損失函數(shù)(triplet loss)用作訓(xùn)練過(guò)程中的損失函數(shù)勺爱,其中softmax loss借鑒了人臉識(shí)別中的Normface loss。
????softmax loss為:
????triplet loss為:
????如圖二所示讯检,對(duì)三個(gè)分支中256維的全局向量使用triplet loss琐鲁,對(duì)剩余的特征向量使用softmax loss。
代碼
????GitHub上已經(jīng)有pytorch和caffe的復(fù)現(xiàn):mgn-pytorch人灼。
????參考論文和pytorch的版本围段,我實(shí)現(xiàn)了基于tensorflow的版本:mgn-tensorflow。