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