行人重识别ReID
目錄
AlignedReID
PCB: Beyond part models: person retrieval with refined part pooling (and A strong convolutional baseline)? ?ECCV2018
Good appearance feature for multi-target-camera tracking? ?CVPR2018
Human semantic parsing for person Re-identification? ?CVPR2018
SCPNet: Spatial-Channel Parallelism Network for Joint Holistic and Partial Person Re-Identification? ACCV2018
https://zhuanlan.zhihu.com/p/31921944
CVPR2018 ReID論文簡評 - 羅浩.ZJU的文章 - 知乎 https://zhuanlan.zhihu.com/p/36379467
ECCV2018 ReID論文簡評 - 羅浩.ZJU的文章 - 知乎 https://zhuanlan.zhihu.com/p/44212707
在監(jiān)控視頻中,由于相機(jī)分辨率和拍攝角度的緣故,通常無法得到質(zhì)量非常高的人臉圖片。當(dāng)人臉識別失效的情況下,ReID就成為了一個非常重要的替代品技術(shù)。ReID有一個非常重要的特性就是跨攝像頭,所以學(xué)術(shù)論文里評價(jià)性能的時候,是要檢索出不同攝像頭下的相同行人圖片。方法可以分為大致以下幾類:
-
基于表征學(xué)習(xí)的ReID方法
-
基于度量學(xué)習(xí)的ReID方法
-
基于局部特征的ReID方法
-
基于視頻序列的ReID?方法
-
基于GAN造圖的ReID?方法
基于度量學(xué)習(xí)的reid方法
度量學(xué)習(xí)不同于表征學(xué)習(xí),度量學(xué)習(xí)旨在通過網(wǎng)絡(luò)學(xué)習(xí)出兩張圖片的相似度。行人重識別問題中,具體為同一行人的不同圖片相似度大于不同行人的不同圖片。最后的網(wǎng)絡(luò)損失使得相同行人圖片(正樣本對)的距離盡可能小,不同行人(負(fù)樣本對)的距離盡可能大。常用度量學(xué)習(xí)損失包括:
-
對比損失(Contrastive loss)
-
三元組損失(Triplet loss)
-
四元組損失(Quadruplet loss)
-
難樣本挖掘三元組損失(Triplet Hard loss with batch hard mining, Trihard loss)
-
邊界挖掘損失(Margin sample mining loss, MSML)
首先,假如有兩張輸入圖片 ?和 ,通過網(wǎng)絡(luò)的前饋我們可以得到他們歸一化后的特征向量 和 。我們定義這兩張圖片的特征向量的歐氏距離為:
(1)對比損失(Contrastive?loss)
(2)三元組損失(Triplet?loss)
(3)四元組損失(Quadruplet?loss)
(4)難樣本采樣三元組損失(Triplet loss with batch hard mining, TriHard loss)
(5)邊界挖掘損失(Margin?sample?mining?loss, MSML)
(6)各種loss性能比較
在論文[11]之中,對上面提到的主要損失函數(shù)在盡可能公平的實(shí)驗(yàn)的條件下進(jìn)行性能對比,實(shí)驗(yàn)結(jié)果如下表所示。作為一個參考
?
5.基于GAN造圖的ReID方法
Reid一個非常大的問題就是數(shù)據(jù)獲取困難,截止cvpr2018deadline之前,最大reid數(shù)據(jù)集也就小幾千個ID,幾萬張圖片(序列嘉定只算一張)。ICCV17 GAN造圖做Reid挖了坑之后,就有大量GAN工作涌現(xiàn)。 Zheng Z, Zheng L, Yang Y. Unlabeled samples generated by gan improve the person re-identification baseline in vitro[J]. arXiv preprint arXiv:1701.07717, 2017.這篇文章發(fā)表在ICCV17,文章簡單但作為挖坑鼻祖引出一系列很好的工作。如下圖,這篇文章生成的圖像質(zhì)量還不是很高,另外一個問題就是由于圖像是隨機(jī)生成的,也就是說沒有可以標(biāo)注的label可以用。為解決這個問題,論文提出一個標(biāo)簽平滑的方法。就是把label?vector每一個元素值都取一樣,滿足加起來為1.反正看不出屬于哪個人,那就一碗水端平。生成的圖像作為訓(xùn)練數(shù)據(jù)加入到訓(xùn)練之中,由于當(dāng)時baseline不像現(xiàn)在這么高,所以效果還挺明顯,至少數(shù)據(jù)量多了過擬合能避免很多。
除了攝像頭bias,reid還有個問題就是數(shù)據(jù)集存在bias,這個bias很大一部分原因就是環(huán)境造成的。為了克服這個bias,論文 Wei L, Zhang S, Gao W, et al. Person Transfer GAN to Bridge Domain Gap for Person Re-Identification[J]. arXiv preprint arXiv:1711.08565, 2017.使用GAN把一個數(shù)據(jù)集的行人遷移到另外一個數(shù)據(jù)集。為了實(shí)現(xiàn)這個遷移,GAN的loss稍微設(shè)計(jì)了一下,一個是前景的絕對誤差loss,一個是正常的判別器loss。判別器loss是用來判斷生成的圖屬于哪個域,前景l(fā)oss為了保證行人前景盡可能逼真不變。這個前景mask使用PSPNet來得到的,效果如下圖。文章另外一個貢獻(xiàn)就是提出了一個MSMT17數(shù)據(jù)集,不知道有沒放出來。
reid其中一個難點(diǎn)就是姿態(tài)不同,為了克服這個問題論文 Qian X, Fu Y, Wang W, et al. Pose-Normalized Image Generation for Person Re-identification[J]. arXiv preprint arXiv:1712.02225, 2017.使用GAN造出了一系列標(biāo)準(zhǔn)的姿態(tài)圖片。論文總共提取了8個pose,這8個pose基本涵蓋了各個角度。每一張圖片都生成這樣標(biāo)準(zhǔn)的8個pose,那么pose不同的問題就可以解決。最終用這些圖片的feature進(jìn)行一個average?pooling得到最終的feature,這個feature融合了各個pose的信息,很好的解決pose?bias問題。無論從生成圖還是從實(shí)驗(yàn)結(jié)果來看,這個工作都是很不錯的。這個工作吧single?query做成了multi?query,但是無法反駁,這些圖都是GAN生成的。除了生成這些圖需要額外的時間開銷以外,并沒有利用額外的數(shù)據(jù)信息。當(dāng)然這個工作也需要一個預(yù)訓(xùn)練pose?estimation網(wǎng)絡(luò)來進(jìn)行pose提取。
總的來說,GAN造圖都是為了從某個角度上解決Reid的困難,缺啥就讓GAN來補(bǔ)啥,不得不說GAN還真是一個強(qiáng)大的東西。
?
PCB: Beyond part models: person retrieval with refined part pooling (and A strong convolutional baseline)?
論文包括兩部分:
一個part-based的part-bsed?convolutional?based(PCB)框架,融合了水平切塊的局部特征來得到一個強(qiáng)大的ReID特征
一個refined part pooling(RPP)方法,RPP會對水平切塊邊緣處的網(wǎng)格像素進(jìn)行重新調(diào)整,將它們修正到正確的part分區(qū)。最終PCB+RPP不用任何re-ranking的方式來提點(diǎn),在market1501上達(dá)到93.8%的rank-1.
Abstract:在行人檢索中使用part-level?features會給description提供細(xì)粒度(fine-grained)的信息。而part-level features能發(fā)揮作用的前提是每一個part都需要有正確的定位。人體姿勢估計(jì)(humen pose estimation)是定位part的其中一種方法,單該論文利用的是每個part內(nèi)部的上下文信息的一致性(content consistency)。
論文主要有兩點(diǎn)貢獻(xiàn):
-
一是設(shè)計(jì)了PCB(part-based convolutional baseline)網(wǎng)絡(luò),其輸入是一張圖像,輸出是包含數(shù)個均分的part-level的descriptor。
-
二是提出了RPP(refined?part?pooling)方法,由于PCB采用的是均分特征圖的策略,這樣就不可避免的在各個part中引用了outliers(outliers指的是其應(yīng)該屬于其他part,因?yàn)樵谛畔⒌囊恢滦陨细咏谄渌鹥art),于是作者提出了RPP來重新分配這些outliers。
1.PCB:A Strong?convolutional?baseline。下圖是PCB結(jié)構(gòu)
-
PCB選用ResNet50作為backbone?network,PCB在resnet50的基礎(chǔ)上做了些修改。resnet50的GAP(global?average?pooling)之前的層保持不變,PCB修改的是GAP層以及之后的層。
-
首先輸入圖像經(jīng)過backbone?network得到tensor T,定義channel維的列向量為f。然后,把PCB把T水平均分成p份,經(jīng)過average?pooling得到p個列向量g,再使用1x1的卷積核降維得到p個比g低維的h。最后把每個h輸入到由FC(fully-connected?layer)和softmax?function構(gòu)成的classifier中,從而預(yù)測輸入的ID(注意,這里有p個參數(shù)不共享的classifier,實(shí)驗(yàn)發(fā)現(xiàn)參數(shù)不共享的效果更好)
-
在訓(xùn)練時,PCB使用p個classifier的交叉熵(cross-entropy)的和作為損失函數(shù)
-
在測試時,PCB可以選擇吧p個g或者p個h進(jìn)行連接得到最后的descriptor G或者H,其中G=[g1,g2,...,gp],H=[h1,h2,...,gp]
2.Refined Part Pooling
PCB的均分策略是簡單地有效的,并且仍可以進(jìn)行改進(jìn)(Refined)從而有所提升的。
2.1 Within-part Inconsistency
在PCB中,T是被均分成p個part的。而這樣的直覺是同一個part中的f理應(yīng)是近似的,不同part中的f是不相似的,而事實(shí)卻不是如此。
-
作者做了一個這樣的實(shí)驗(yàn),在訓(xùn)練PCB收斂之后,然后計(jì)算每個f和gi(i=1,2,3....,p)的相似度,例如可以使用余弦距離作為度量標(biāo)準(zhǔn)。
-
把p設(shè)置為6,并繪制出每個f最接近的gi,在這里,用顏色相同來表示f屬于哪個part。通過下圖可以得出兩個結(jié)論。
-
一是在同一個part中的大部分f是最近似的
-
二是有些f似乎和其他part更接近,這就是論文所說的Within-part?inconsistency現(xiàn)象。比如,左上角那個藍(lán)色的f就是outlier,它在位置上屬于Part1,但在語義上更接近Part5
-
2.2 Relocating Outliers
既然存在Within-Part Inconsistency的問題,那么可以重新分配outliers的位置從而解決這個問題,于是作者提出了RPP(Refined?part?pooling)。添加了RPP的PCB修改成下圖的結(jié)構(gòu)。
此結(jié)構(gòu)相對于原來的PCB結(jié)構(gòu)的變化是把原來的average?pooling變成了GAP并添加了part?classifier。(也就是由對每個g或h分類變?yōu)閷γ總€f分類,將f類為p中的某一類)
-
首先,在PCB收斂的基礎(chǔ)上,對T中的每個f執(zhí)行分類的操作,具體操作可以看如下公式:其中Wi是全連接層的參數(shù)矩陣,上面這個公式是預(yù)測每個f屬于Pi的概率。然后使用來計(jì)算每個Pi的值:其中F是tensor T的集合。這個公式的具體含義是對所有的f加權(quán)得到Pi,而這個權(quán)重是f屬于該P(yáng)i的概率。
-
通過上述操作,RPP修正了由于PCB的均分策略而產(chǎn)生的outliers。
2.3 Induced Training?for Part Classifier
這部分主要介紹如何來訓(xùn)練part?classifier中的W參數(shù)。具體算法如下:
-
1.訓(xùn)練標(biāo)注你的PCB至收斂
-
2.移除PCB中T后面的average?pooling層并添加part?classifier和GAP
-
3.固定PCB中除了part?classifier以外的所有其他參數(shù),在數(shù)據(jù)集上重新訓(xùn)練2中的PCB至收斂
-
4.在數(shù)據(jù)集上微調(diào)整個網(wǎng)絡(luò)的所有參數(shù)至收斂
3.Conclusion:文章主要有兩點(diǎn)貢獻(xiàn),一是提出了PCB學(xué)習(xí)part-level?features,二是提出了RPP進(jìn)一步提升了PCB的性能。
?
Good Appearance Feature for multi-target-camera tracking??
摘要:這是一篇將Multi-target multi-camera?tracking(MTMCT)和Reid結(jié)合起來的文章。論文訓(xùn)練一個很好的特征表達(dá),可以同時在MTMCT和Reid任務(wù)上取得很好的效果。算法上,文章在triplet?loss基礎(chǔ)上提出了一種新的hard?mining思想,談久了reid模型性能對MTMCT任務(wù)準(zhǔn)確度的影響。主要貢獻(xiàn):
-
為訓(xùn)練設(shè)計(jì)一個自適應(yīng)權(quán)重的三重?fù)p失。
-
一種新的難樣本挖掘技術(shù)
文章先給出了一個用Reid做MTMCT的pipeline。這個pipeline和大多數(shù)人做法一樣,先將人檢測出來,然后用Reid模型提取特征,之后根據(jù)特征相似度將單攝像頭和多攝像頭軌跡關(guān)聯(lián)起來。
Triplet loss with hard identity mining
?
-
文中針對triplet?loss提出了一個新的改進(jìn)方案,其中包括兩個特性:自適應(yīng)的權(quán)重和新的難樣本挖掘方法。首先文章分析了最流行的triple loss?和?trihard?loss,認(rèn)為triplet?loss對于batch里每一對正負(fù)樣本都是一視同仁,權(quán)重是相同的1/N,而另外一個改進(jìn)版的trihard?loss則是挑選batch里最難的正負(fù)樣本對,即只有一對正負(fù)樣本對的權(quán)重是1,其他都是0.論文提出了一種新的自適應(yīng)權(quán)重方法,首先計(jì)算每對樣本對特征之間的距離,然后根據(jù)距離做一個softmax歸一化。對于負(fù)樣本對,距離越小的樣本對則權(quán)重越大;同理,對于正樣本對,距離越大的樣本對則權(quán)重越大。這樣能保證難樣本對所占的權(quán)重較大,并且每對樣本對都參與了loss的計(jì)算。
-
論文第二個改進(jìn)點(diǎn)是改變了樣本對選擇的方式,傳統(tǒng)的triplet我們都是從訓(xùn)練樣本中隨機(jī)組成。論文將hard?mining的思想進(jìn)一步擴(kuò)展到采集樣本這一環(huán)節(jié)。針對每一個id,論文挑選出一些非常相似的負(fù)樣本組成樣本池,當(dāng)訓(xùn)練模型挑選樣本的時候,就選擇這些非常難區(qū)分的樣本來當(dāng)negtive。這種做法進(jìn)一步強(qiáng)化了hard?mining的思想。結(jié)果顯示非常有效。
?
?
Human Semantic Parsing for Person Re-identification
摘要:論文提出了SPReID,通過一個預(yù)訓(xùn)練的Human Semantic Paarsing網(wǎng)絡(luò)得到person圖像的每一個語義部分。之后將圖片分為前景,頭部,上身,下身和鞋子五個部分,提取每個部分的局部特征。容易想到也能work
SPReID網(wǎng)絡(luò)有兩個分支,一個是正常的ReID分支,另外一個語義分割分支。對于語義分割分支,SPReID在剛發(fā)布不久的Looking?into Person(LIP)上預(yù)訓(xùn)練,最后得到五個語義部分,前景,頭部,上身,下身和鞋子。之后將語義分割得到的結(jié)果和ReID分支得到的feature?map相乘,經(jīng)過global?pooling分別得到5個feature,然后concatenate到一起得到最終的feature??傮w來說還是比較簡單的。
?
SCPNet: Spatial-Channel Parallelism Network for Joint Holistic and Partial Person Re-Identification??
開源代碼:https://github.com/xfanplus/Open-SCPNet
https://zhuanlan.zhihu.com/p/56418084
摘要:全身reid取得了很好進(jìn)展,但一些場景中會有遮擋情況,這種場景就需要局部reid(partial?reid)。本文提出了spatial-channel parallelism network(SCPNet)。SCPNet中每組channel的特征提供了行人身體某一塊空間區(qū)域的reid特征,并利用空間-通道相關(guān)性來監(jiān)督網(wǎng)絡(luò)學(xué)習(xí)一個魯棒的特征。這個特征在全身行人重識別和遮擋行人重識別兩個任務(wù)上均達(dá)到了sota性能。
?
?? ?PCB和Aligned?reid是local?feature的代表方法。PCB最終要的貢獻(xiàn)就是發(fā)現(xiàn),對圖像的每個水平local?feature進(jìn)行l(wèi)oss監(jiān)督訓(xùn)練可以提高特征的性能。而SCPNet給了我們啟示,為什么監(jiān)督local?feature能夠提高網(wǎng)絡(luò)的性能。直觀上感覺,遮擋區(qū)域主要會影響遮擋區(qū)域的local?feature,剩下的local?feature應(yīng)該還不錯。而global?pooling會導(dǎo)致遮擋區(qū)域影響整個global?feature。因此local?feature可能是解決遮擋的一個思路。
?? ?AlignedReID [2]是我們的另外一篇工作,我個人認(rèn)為AlignedReID里面有個很不錯的思路是利用local feature來監(jiān)督global feature,然后在使用的時候只用global feature,達(dá)到提速的效果。而SCPNet同樣傳承了AlignedReID的這個思路。
?? ?然這些方法基本都是在Market1501和DukeMTMC這些數(shù)據(jù)集下完成的,這些數(shù)據(jù)集都是經(jīng)過數(shù)據(jù)清洗的,總體來說行人圖像比較完整。但是在真正實(shí)用場景下,遮擋一直是若干個痛點(diǎn)中的一個很大的痛點(diǎn)。如下圖,partial-ILIDS是機(jī)場場景下拍攝的圖片,行人被行李箱遮擋是非常頻繁的。而遮擋場景下,行人的表觀特征會被遮擋物污染,造成特征產(chǎn)生變化,從而使得識別錯誤。
?? ?CVPR2018何凌霄師兄的DSR工作把partial ReID重新拉了回來。雖然最近出現(xiàn)了少量partial ReID的工作,但是有大部分都是專門針對于partial ReID的,并沒有對person ReID(備注:下文person ReID就默認(rèn)指全身ReID,而ReID指person ReID和partial ReID)有任何促進(jìn),甚至不能應(yīng)用于person ReID。而從實(shí)用的角度來講,我們當(dāng)然希望一個方法既能提高person ReID的性能,又能提高partial ReID的性能。而這就是SCPNet的設(shè)計(jì)的初衷。
? ? 綜上,SCPNet產(chǎn)生的motivation有如下幾點(diǎn):
-
PCB顯示對每個local?feature監(jiān)督能夠提高reid的性能,(并且在直觀上我們認(rèn)為local?feature有助于遮擋條件下partial ReID)
-
Aligned Reid顯示了用local?feature監(jiān)督global?feature是可行的,希望繼續(xù)傳承這一思路
-
從實(shí)用角度考慮,我們希望設(shè)計(jì)一個網(wǎng)絡(luò),既能提高person?reid的性能,又能提高partial?reid的性能
SCPNet
?? ?上圖是SCPNet的結(jié)構(gòu)圖,總體來說是比較簡單的,backbone用的是大家都用的Resnet50。和AlignedReID一樣,SCPNet總共有兩個分支,一個是local分支,一個是global分支。local分支也是比較傳統(tǒng)的水平pooling得到local features。而global分支做了一點(diǎn)點(diǎn)的輕微改變,就是用一個1×1的conv層將feature map的通道維度從C維提升到4C維。
?? ? 接下來是SCPNet的核心了,對于local分支,我們通過水平pooling可以得到四個局部特征,就是上圖右上角的藍(lán)、紅、黃、綠的四個特征向量,也就是按照spatial分塊得到的特征。另外,對于global分支,我們通過升維可以得到一個??的feature map,經(jīng)過pooling之后得到4C維的全局特征, 然后我們按照channel進(jìn)行分組,同樣分為四組,也能得到4個global features,就是上圖右下的藍(lán)、紅、黃、綠的四個特征向量,這是按照channel分組得到的特征。
?? ? 傳承AlignedReID的思想,我們設(shè)計(jì)了SCP loss將local分支的spatial信息傳遞給global分支,這一點(diǎn)后面再詳細(xì)介紹。因?yàn)槲覀円呀?jīng)將local features的信息傳遞global features了,傳承PCB的結(jié)論,我們對每個global特征進(jìn)行ReID loss的監(jiān)督。根據(jù)目前主流的作為,每個global feature都計(jì)算ID loss和triplet loss。
?? ?接下來我們可視化feature map的激活性,我們按照channel維度將feature map分為四塊,然后用local feature進(jìn)行監(jiān)督,最后我們可視化了這四個feature map。結(jié)果發(fā)現(xiàn),每個feature map都重點(diǎn)關(guān)注圖像的某個空間區(qū)域,而這也驗(yàn)證了我們的想法,SCP loss將空間信息傳遞給了global feature的channel維度。
-
由上面這個激活圖可以猜測一下PCB有效原理:經(jīng)過水平池化之后得到的局部特征,他們都會重點(diǎn)關(guān)注圖像中的某一塊區(qū)域,但是由于網(wǎng)絡(luò)很深,其實(shí)感受野是很大的,所以他們是能看見整張圖像的,結(jié)果就是每個局部特征都重點(diǎn)關(guān)注于某個區(qū)域卻又能看見整張圖像,通過監(jiān)督若干個這種既有專攻又有全局的特征,網(wǎng)絡(luò)能夠?qū)W習(xí)到更魯棒的特征。
總結(jié)
- 上一篇: 计算机辅助设计与制造考试题,计算机辅助设
- 下一篇: Makefile 语法入门