日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

行人重识别ReID

發布時間:2023/12/8 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 行人重识别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

在監控視頻中,由于相機分辨率和拍攝角度的緣故,通常無法得到質量非常高的人臉圖片。當人臉識別失效的情況下,ReID就成為了一個非常重要的替代品技術。ReID有一個非常重要的特性就是跨攝像頭,所以學術論文里評價性能的時候,是要檢索出不同攝像頭下的相同行人圖片。方法可以分為大致以下幾類:

  • 基于表征學習的ReID方法

  • 基于度量學習的ReID方法

  • 基于局部特征的ReID方法

  • 基于視頻序列的ReID?方法

  • 基于GAN造圖的ReID?方法

基于度量學習的reid方法

度量學習不同于表征學習,度量學習旨在通過網絡學習出兩張圖片的相似度。行人重識別問題中,具體為同一行人的不同圖片相似度大于不同行人的不同圖片。最后的網絡損失使得相同行人圖片(正樣本對)的距離盡可能小,不同行人(負樣本對)的距離盡可能大。常用度量學習損失包括:

  • 對比損失(Contrastive loss)

  • 三元組損失(Triplet loss)

  • 四元組損失(Quadruplet loss)

  • 難樣本挖掘三元組損失(Triplet Hard loss with batch hard mining, Trihard loss)

  • 邊界挖掘損失(Margin sample mining loss, MSML)

首先,假如有兩張輸入圖片 ?和 ,通過網絡的前饋我們可以得到他們歸一化后的特征向量 和 。我們定義這兩張圖片的特征向量的歐氏距離為:

(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]之中,對上面提到的主要損失函數在盡可能公平的實驗的條件下進行性能對比,實驗結果如下表所示。作為一個參考

?

5.基于GAN造圖的ReID方法

Reid一個非常大的問題就是數據獲取困難,截止cvpr2018deadline之前,最大reid數據集也就小幾千個ID,幾萬張圖片(序列嘉定只算一張)。ICCV17 GAN造圖做Reid挖了坑之后,就有大量GAN工作涌現。 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.這篇文章發表在ICCV17,文章簡單但作為挖坑鼻祖引出一系列很好的工作。如下圖,這篇文章生成的圖像質量還不是很高,另外一個問題就是由于圖像是隨機生成的,也就是說沒有可以標注的label可以用。為解決這個問題,論文提出一個標簽平滑的方法。就是把label?vector每一個元素值都取一樣,滿足加起來為1.反正看不出屬于哪個人,那就一碗水端平。生成的圖像作為訓練數據加入到訓練之中,由于當時baseline不像現在這么高,所以效果還挺明顯,至少數據量多了過擬合能避免很多。

除了攝像頭bias,reid還有個問題就是數據集存在bias,這個bias很大一部分原因就是環境造成的。為了克服這個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把一個數據集的行人遷移到另外一個數據集。為了實現這個遷移,GAN的loss稍微設計了一下,一個是前景的絕對誤差loss,一個是正常的判別器loss。判別器loss是用來判斷生成的圖屬于哪個域,前景loss為了保證行人前景盡可能逼真不變。這個前景mask使用PSPNet來得到的,效果如下圖。文章另外一個貢獻就是提出了一個MSMT17數據集,不知道有沒放出來。

reid其中一個難點就是姿態不同,為了克服這個問題論文 Qian X, Fu Y, Wang W, et al. Pose-Normalized Image Generation for Person Re-identification[J]. arXiv preprint arXiv:1712.02225, 2017.使用GAN造出了一系列標準的姿態圖片。論文總共提取了8個pose,這8個pose基本涵蓋了各個角度。每一張圖片都生成這樣標準的8個pose,那么pose不同的問題就可以解決。最終用這些圖片的feature進行一個average?pooling得到最終的feature,這個feature融合了各個pose的信息,很好的解決pose?bias問題。無論從生成圖還是從實驗結果來看,這個工作都是很不錯的。這個工作吧single?query做成了multi?query,但是無法反駁,這些圖都是GAN生成的。除了生成這些圖需要額外的時間開銷以外,并沒有利用額外的數據信息。當然這個工作也需要一個預訓練pose?estimation網絡來進行pose提取。

總的來說,GAN造圖都是為了從某個角度上解決Reid的困難,缺啥就讓GAN來補啥,不得不說GAN還真是一個強大的東西。

?

PCB: Beyond part models: person retrieval with refined part pooling (and A strong convolutional baseline)?

論文包括兩部分:

一個part-based的part-bsed?convolutional?based(PCB)框架,融合了水平切塊的局部特征來得到一個強大的ReID特征

一個refined part pooling(RPP)方法,RPP會對水平切塊邊緣處的網格像素進行重新調整,將它們修正到正確的part分區。最終PCB+RPP不用任何re-ranking的方式來提點,在market1501上達到93.8%的rank-1.

Abstract:在行人檢索中使用part-level?features會給description提供細粒度(fine-grained)的信息。而part-level features能發揮作用的前提是每一個part都需要有正確的定位。人體姿勢估計(humen pose estimation)是定位part的其中一種方法,單該論文利用的是每個part內部的上下文信息的一致性(content consistency)。

論文主要有兩點貢獻:

  • 一是設計了PCB(part-based convolutional baseline)網絡,其輸入是一張圖像,輸出是包含數個均分的part-level的descriptor。

  • 二是提出了RPP(refined?part?pooling)方法,由于PCB采用的是均分特征圖的策略,這樣就不可避免的在各個part中引用了outliers(outliers指的是其應該屬于其他part,因為在信息的一致性上更接近于其他part),于是作者提出了RPP來重新分配這些outliers。

1.PCB:A Strong?convolutional?baseline。下圖是PCB結構

  • PCB選用ResNet50作為backbone?network,PCB在resnet50的基礎上做了些修改。resnet50的GAP(global?average?pooling)之前的層保持不變,PCB修改的是GAP層以及之后的層。

  • 首先輸入圖像經過backbone?network得到tensor T,定義channel維的列向量為f。然后,把PCB把T水平均分成p份,經過average?pooling得到p個列向量g,再使用1x1的卷積核降維得到p個比g低維的h。最后把每個h輸入到由FC(fully-connected?layer)和softmax?function構成的classifier中,從而預測輸入的ID(注意,這里有p個參數不共享的classifier,實驗發現參數不共享的效果更好)

  • 在訓練時,PCB使用p個classifier的交叉熵(cross-entropy)的和作為損失函數

  • 在測試時,PCB可以選擇吧p個g或者p個h進行連接得到最后的descriptor G或者H,其中G=[g1,g2,...,gp],H=[h1,h2,...,gp]

2.Refined Part Pooling

PCB的均分策略是簡單地有效的,并且仍可以進行改進(Refined)從而有所提升的。

2.1 Within-part Inconsistency

在PCB中,T是被均分成p個part的。而這樣的直覺是同一個part中的f理應是近似的,不同part中的f是不相似的,而事實卻不是如此。

  • 作者做了一個這樣的實驗,在訓練PCB收斂之后,然后計算每個f和gi(i=1,2,3....,p)的相似度,例如可以使用余弦距離作為度量標準。

  • 把p設置為6,并繪制出每個f最接近的gi,在這里,用顏色相同來表示f屬于哪個part。通過下圖可以得出兩個結論。

    • 一是在同一個part中的大部分f是最近似的

    • 二是有些f似乎和其他part更接近,這就是論文所說的Within-part?inconsistency現象。比如,左上角那個藍色的f就是outlier,它在位置上屬于Part1,但在語義上更接近Part5

2.2 Relocating Outliers

既然存在Within-Part Inconsistency的問題,那么可以重新分配outliers的位置從而解決這個問題,于是作者提出了RPP(Refined?part?pooling)。添加了RPP的PCB修改成下圖的結構。

此結構相對于原來的PCB結構的變化是把原來的average?pooling變成了GAP并添加了part?classifier。(也就是由對每個g或h分類變為對每個f分類,將f類為p中的某一類)

  • 首先,在PCB收斂的基礎上,對T中的每個f執行分類的操作,具體操作可以看如下公式:其中Wi是全連接層的參數矩陣,上面這個公式是預測每個f屬于Pi的概率。然后使用來計算每個Pi的值:其中F是tensor T的集合。這個公式的具體含義是對所有的f加權得到Pi,而這個權重是f屬于該Pi的概率。

  • 通過上述操作,RPP修正了由于PCB的均分策略而產生的outliers。

2.3 Induced Training?for Part Classifier

這部分主要介紹如何來訓練part?classifier中的W參數。具體算法如下:

  • 1.訓練標注你的PCB至收斂

  • 2.移除PCB中T后面的average?pooling層并添加part?classifier和GAP

  • 3.固定PCB中除了part?classifier以外的所有其他參數,在數據集上重新訓練2中的PCB至收斂

  • 4.在數據集上微調整個網絡的所有參數至收斂

3.Conclusion:文章主要有兩點貢獻,一是提出了PCB學習part-level?features,二是提出了RPP進一步提升了PCB的性能

?

Good Appearance Feature for multi-target-camera tracking??

摘要:這是一篇將Multi-target multi-camera?tracking(MTMCT)和Reid結合起來的文章。論文訓練一個很好的特征表達,可以同時在MTMCT和Reid任務上取得很好的效果。算法上,文章在triplet?loss基礎上提出了一種新的hard?mining思想,談久了reid模型性能對MTMCT任務準確度的影響。主要貢獻:

  • 為訓練設計一個自適應權重的三重損失。

  • 一種新的難樣本挖掘技術

文章先給出了一個用Reid做MTMCT的pipeline。這個pipeline和大多數人做法一樣,先將人檢測出來,然后用Reid模型提取特征,之后根據特征相似度將單攝像頭和多攝像頭軌跡關聯起來。

Triplet loss with hard identity mining

?

  • 文中針對triplet?loss提出了一個新的改進方案,其中包括兩個特性:自適應的權重和新的難樣本挖掘方法。首先文章分析了最流行的triple loss?和?trihard?loss,認為triplet?loss對于batch里每一對正負樣本都是一視同仁,權重是相同的1/N,而另外一個改進版的trihard?loss則是挑選batch里最難的正負樣本對,即只有一對正負樣本對的權重是1,其他都是0.論文提出了一種新的自適應權重方法,首先計算每對樣本對特征之間的距離,然后根據距離做一個softmax歸一化。對于負樣本對,距離越小的樣本對則權重越大;同理,對于正樣本對,距離越大的樣本對則權重越大。這樣能保證難樣本對所占的權重較大,并且每對樣本對都參與了loss的計算。

  • 論文第二個改進點是改變了樣本對選擇的方式,傳統的triplet我們都是從訓練樣本中隨機組成。論文將hard?mining的思想進一步擴展到采集樣本這一環節。針對每一個id,論文挑選出一些非常相似的負樣本組成樣本池,當訓練模型挑選樣本的時候,就選擇這些非常難區分的樣本來當negtive。這種做法進一步強化了hard?mining的思想。結果顯示非常有效

?

?

Human Semantic Parsing for Person Re-identification

摘要:論文提出了SPReID,通過一個預訓練的Human Semantic Paarsing網絡得到person圖像的每一個語義部分。之后將圖片分為前景,頭部,上身,下身和鞋子五個部分,提取每個部分的局部特征。容易想到也能work

SPReID網絡有兩個分支,一個是正常的ReID分支,另外一個語義分割分支。對于語義分割分支,SPReID在剛發布不久的Looking?into Person(LIP)上預訓練,最后得到五個語義部分,前景,頭部,上身,下身和鞋子。之后將語義分割得到的結果和ReID分支得到的feature?map相乘,經過global?pooling分別得到5個feature,然后concatenate到一起得到最終的feature。總體來說還是比較簡單的。

?

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取得了很好進展,但一些場景中會有遮擋情況,這種場景就需要局部reid(partial?reid)。本文提出了spatial-channel parallelism network(SCPNet)。SCPNet中每組channel的特征提供了行人身體某一塊空間區域的reid特征,并利用空間-通道相關性來監督網絡學習一個魯棒的特征。這個特征在全身行人重識別和遮擋行人重識別兩個任務上均達到了sota性能。

?

?? ?PCB和Aligned?reid是local?feature的代表方法。PCB最終要的貢獻就是發現,對圖像的每個水平local?feature進行loss監督訓練可以提高特征的性能。而SCPNet給了我們啟示,為什么監督local?feature能夠提高網絡的性能。直觀上感覺,遮擋區域主要會影響遮擋區域的local?feature,剩下的local?feature應該還不錯。而global?pooling會導致遮擋區域影響整個global?feature。因此local?feature可能是解決遮擋的一個思路。

?? ?AlignedReID [2]是我們的另外一篇工作,我個人認為AlignedReID里面有個很不錯的思路是利用local feature來監督global feature,然后在使用的時候只用global feature,達到提速的效果。而SCPNet同樣傳承了AlignedReID的這個思路。

?? ?然這些方法基本都是在Market1501和DukeMTMC這些數據集下完成的,這些數據集都是經過數據清洗的,總體來說行人圖像比較完整。但是在真正實用場景下,遮擋一直是若干個痛點中的一個很大的痛點。如下圖,partial-ILIDS是機場場景下拍攝的圖片,行人被行李箱遮擋是非常頻繁的。而遮擋場景下,行人的表觀特征會被遮擋物污染,造成特征產生變化,從而使得識別錯誤。

?? ?CVPR2018何凌霄師兄的DSR工作把partial ReID重新拉了回來。雖然最近出現了少量partial ReID的工作,但是有大部分都是專門針對于partial ReID的,并沒有對person ReID(備注:下文person ReID就默認指全身ReID,而ReID指person ReID和partial ReID)有任何促進,甚至不能應用于person ReID。而從實用的角度來講,我們當然希望一個方法既能提高person ReID的性能,又能提高partial ReID的性能。而這就是SCPNet的設計的初衷。

? ? 綜上,SCPNet產生的motivation有如下幾點:

  • PCB顯示對每個local?feature監督能夠提高reid的性能,(并且在直觀上我們認為local?feature有助于遮擋條件下partial ReID)

  • Aligned Reid顯示了用local?feature監督global?feature是可行的,希望繼續傳承這一思路

  • 從實用角度考慮,我們希望設計一個網絡,既能提高person?reid的性能,又能提高partial?reid的性能

SCPNet

?? ?上圖是SCPNet的結構圖,總體來說是比較簡單的,backbone用的是大家都用的Resnet50。和AlignedReID一樣,SCPNet總共有兩個分支,一個是local分支,一個是global分支。local分支也是比較傳統的水平pooling得到local features。而global分支做了一點點的輕微改變,就是用一個1×1的conv層將feature map的通道維度從C維提升到4C維。

?? ? 接下來是SCPNet的核心了,對于local分支,我們通過水平pooling可以得到四個局部特征,就是上圖右上角的藍、紅、黃、綠的四個特征向量,也就是按照spatial分塊得到的特征。另外,對于global分支,我們通過升維可以得到一個??的feature map,經過pooling之后得到4C維的全局特征, 然后我們按照channel進行分組,同樣分為四組,也能得到4個global features,就是上圖右下的藍、紅、黃、綠的四個特征向量,這是按照channel分組得到的特征。

?? ? 傳承AlignedReID的思想,我們設計了SCP loss將local分支的spatial信息傳遞給global分支,這一點后面再詳細介紹。因為我們已經將local features的信息傳遞global features了,傳承PCB的結論,我們對每個global特征進行ReID loss的監督。根據目前主流的作為,每個global feature都計算ID loss和triplet loss。

?? ?接下來我們可視化feature map的激活性,我們按照channel維度將feature map分為四塊,然后用local feature進行監督,最后我們可視化了這四個feature map。結果發現,每個feature map都重點關注圖像的某個空間區域,而這也驗證了我們的想法,SCP loss將空間信息傳遞給了global feature的channel維度。

  • 由上面這個激活圖可以猜測一下PCB有效原理:經過水平池化之后得到的局部特征,他們都會重點關注圖像中的某一塊區域,但是由于網絡很深,其實感受野是很大的,所以他們是能看見整張圖像的,結果就是每個局部特征都重點關注于某個區域卻又能看見整張圖像,通過監督若干個這種既有專攻又有全局的特征,網絡能夠學習到更魯棒的特征。

總結

以上是生活随笔為你收集整理的行人重识别ReID的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。