CVPR2018: Unsupervised Cross-dataset Person Re-identification by Transfer Learning of Spatio-tempora

論文能夠在arxiv下載,老闆一做,本人二做,也是咱們實驗室第一篇CCF A類論文,這個方法咱們稱爲TFusion。html

代碼:https://github.com/ahangchen/TFusiongit

TFusion架構

  • 解決的目標是跨數據集的Person Reid
  • 屬於無監督學習
  • 方法是多模態數據融合 + 遷移學習
  • 實驗效果上,超越了全部無監督Person reid方法,逼近有監督方法,在部分數據集上甚至超越有監督方法

本文爲你解讀CVPR2018 TFusiongithub

轉載請註明做者夢裏茶算法

Task

行人重識別(Person Re-identification)是一個圖像檢索問題,給定一組圖片集(probe),對於probe中的每張圖片,從候選圖片集(gallery)中找到最可能屬於同一個行人的圖片。網絡

Person re-identification

行人重識別數據集是由一系列監控攝像頭拍攝獲得,並用檢測算法將行人摳出,作行人的匹配。在這些數據集中,人臉是十分模糊的,沒法做爲匹配特徵,並且因爲多個攝像頭拍攝視角不一樣,同我的可能被拍到正面,側面,背面,具備不一樣的視覺特徵,所以是一個比較難的圖像匹配問題。經常使用數據集有不少,能夠在這個網站查到。架構

行人重識別問題有如下幾種常見的解決方案:dom

基於視覺的行人重識別

這類方法一般提取行人圖像特徵,對特徵進行距離度量,從而判斷是不是同一我的。分佈式

有監督學習

Supervised Learning

這類方法一般須要提供行人圖片和行人id標籤(person1,person2等),訓練模型,提取圖像特徵,根據兩張圖特徵的距離大小(能夠用餘弦距離,歐氏距離之類的計算),爲probe中的每張圖和gallery中的每張圖計算其類似度,根據類似度將gallery中的圖片排序,排序越高越可能爲同一我的。ide

這方面的論文表明有TOMM2017: A Discriminatively Learned CNN Embedding for Person Re-identification,咱們採用的基礎圖像分類器就是基於這篇論文用Keras實現的,後面細講。學習

無監督學習

在CVPR2018以前,Person Reid領域正式發表的無監督工做只有CVPR2016的UMDL:Unsupervised Cross-Dataset Transfer Learning for Person Re-identification,基於字典學習方法,在多個源數據集上學習跨數據集不變性字典,遷移到目標數據集上。然而準確率依然很低。

結合攝像頭拓撲的行人重識別

行人圖片是攝像頭拍到的,攝像頭之間有必定的距離,行人的移動有必定的速度限制,所以行人在攝像頭間的移動時間就會呈現出必定規律,好比,AB攝像頭間有10米,人行走速度2m/s,若是AB攝像頭在1s內捕捉到了兩張圖片,則這兩張圖片不多是同一我的的,所以咱們能夠利用攝像頭拓撲約束來提高行人重識別的準確率。

然而,這類方法每每有如下缺陷:

  • 有些方法須要預先知道攝像頭拓撲(AB攝像頭之間的距離)
  • 有些方法能夠根據拍攝到的圖像數據推斷出攝像頭拓撲,可是須要圖像有標註(是不是同一我的)
  • 即便推斷出攝像頭拓撲,與圖像的融合結果依然不好

遷移學習

遷移學習如今是深度學習領域很經常使用的一個套路了,在源數據集上預訓練,在目標數據集上微調,從而使得源數據集上的模型可以適應目標場景。這方面的論文表明有前面講的UMDL,和Deep transfer learning person re-identification,然而,目前的遷移學習大多須要標籤,而無監督遷移學習效果又不好,仍然有很大提高空間。

更多關於Person Reid的內容能夠看一下我在博客寫的幾篇調研

Motivation

  • 現有的行人重識別數據集中是否包含時空信息?包含的話是否存在時空規律?
  • 缺少兩個時空點是否屬於同一行人這種標籤時,如何挖掘時空信息,構建時空模型?
  • 如何融合兩個弱分類器?有監督的融合有boosting算法能夠用,無監督呢?
  • 在缺少標籤的條件下,如何進行有效的遷移學習?

對應有三個創新點

  • 無監督的時空模型構建
  • 基於貝葉斯推斷的時空圖像模型融合
  • 基於Learning to Rank的遷移學習

接下來詳細解析咱們的方法。

時空模型

數據集中的時空規律

所謂時空模型,即一個攝像頭網絡中,行人在給定兩個攝像頭間遷移時間的分佈。

咱們看遍全部Reid數據集,發現有三個數據集有時空信息,Market1501, GRID, DukeMTMC-ReID,其中,DukeMTMC-ReID是2017年後半年纔出來的,時間比較倉促在論文中就沒有包含跟它相關的實驗。Market1501是一個比較大的Person Reid數據集,GRID是一個比較小的Person Reid數據集,而且都有六個攝像頭(GRID中雖然介紹了8個攝像頭,實際上只有6個攝像頭的數據)。

例如,Marke1501中一張圖片的時空信息是寫在圖片名字中的:

Market1501 sample.png

0007_c3s3_077419_03.jpg:

  • 0007表明person id,
  • c3表明是在3號攝像頭拍到的,也就是空間信息,
  • s3表明屬於第3個時間序列(GRID和DukeMTMC中沒有這個序列的信息,在Market1501中,不一樣序列的屬於不一樣起始時間的視頻,同一系列不一樣攝像頭的視頻起始時間相近),
  • 077419爲幀號,也就是時間信息。

我想吐槽的是,其實時空信息是很是容易保存的,只要知道圖片是在何時,哪臺攝像機上拍攝,就可以將時空信息記錄並有效利用起來,但願多模態數據融合獲得更多重視以後,作數據集的人可以更加劇視可保存的信息吧。

咱們首先經過Market1501中的真實行人標籤,計算訓練集中全部圖片對對應的時空點對對應的遷移時間,這裏可視化了從攝像頭1出發的行人,到達其餘攝像頭須要的時間的分佈。

Market1501遷移時間分佈

能夠看到,到達不一樣目標攝像頭的峯值位置不一樣,其中從攝像頭1到攝像頭1,意味着被單個攝像頭拍到連續多幀,因此峯值集中在0附近,從攝像頭1到攝像頭2,峯值集中在-600附近,意味着大部分人是單向從攝像頭2運動到攝像頭1,等等,而且,說明這個數據集中存在顯著可利用的時空規律。

無監督的時空模型構造

咱們將遷移時間差命名爲delta,這樣提及來方便(裝逼)一點。

若是咱們可以統計一個數據集中的全部delta,給定一個新的delta(兩個新的圖片對應的兩個時空點算出來的),咱們可以用極大似然估計,用在這個delta先後必定範圍(好比100幀)的delta的出現頻率(=目標範圍delta數量/總的delta數量),做爲新時間差出現的機率,也就是兩個時空點是同一人產生的機率。

可是!問題是咱們在目標場景上每每是沒有行人標記數據的!

因而咱們就思考

  • 咱們能不能根據兩個時空點對應的兩張圖是否屬於同一我的,來決定兩個時空點是否屬於同一我的?
  • 而兩張圖是否屬於同一我的,實際上是一個圖像匹配的二分類問題,咱們能夠用一些視覺模型來作,
  • 可是這種視覺模型每每是須要有標籤訓練的,無標籤的視覺模型每每比較弱
  • 視覺模型弱不要緊!咱們相信跟時空模型結合就能變成一個強大的分類器!要有信仰!
  • 只要咱們能無監督地把時空模型構造出來,結合弱的圖像分類器,由於加了時空信息,必定能吊打其餘無監督模型!

思路有了,實現就很天然了,

  • 咱們先在其餘數據集上(因而咱們就能夠說這是一個跨數據集的任務了)預訓練一個卷積神經網絡,
  • 而後用這個卷積神經網絡去目標數據集上提特徵,
  • 用餘弦距離算特徵類似度
  • 將類似度排在前十的當作同一我的
  • 用這種「同一我的」的信息+極大似然估計構造時空模型

圖像分類器上,咱們這裏用的是LiangZheng的Siamese網絡,他們的源碼是用MATLAB實現的,我用Keras復現了一把:

Siamese Network

時空模型的極大似然估計能夠看這裏

聰明的讀者應該會注意到,這個圖像分類器是在其餘數據及上預訓練的,因爲特徵空間中數據分佈不一樣,這個圖像分類器太弱了,對於目標數據集來講,前十里會有許多錯的樣本,致使構造出來的時空模型和真實的時空模型有誤差

Distribution estimated

能夠看到,構造的模型跟真實的模型仍是有些差異的,可是峯值位置仍是差很少,必定程度上應該還能用,但咱們仍是但願構造的模型儘可能接近真實模型的。

因而咱們開始思考

  • 致使模型出現誤差的因素是什麼?是錯誤的樣本對
  • 如何去掉錯誤樣本對的影響?咱們能不能把錯誤的樣本對分離出來?沒有標籤咋辦?
  • (靈光一閃)錯誤的樣本不就跟我瞎選的差很少?那我是否是能夠隨機地選樣本對,算一個隨機的delta分佈出來
  • 將估算的delta分佈去掉隨機的delta分佈,剩下的多出來的部分,就是因爲正確的行人遷移產生的,不就獲得真實的delta分佈了?

因而咱們可視化了一下隨機的delta分佈

Random Distribution

能夠發現,

  • 確實與估計模型和真實模型不一樣
  • 存在較多抖動

這種隨機的時間差分佈也呈現出必定的集中趨勢,其實體現的是採樣的時間差分佈,如,在1號攝像頭採的圖片大多在某個時間段,2號攝像頭也大多在這個時間段採,但3號攝像頭的圖片大可能是在其餘時間段採到的。

考慮到時間差的頻率圖有這麼多的抖動,咱們在計算某個區域的時間差時,加上了均值濾波,而且作了必定區域的截斷,包括機率極小值重置爲一個最小几率值,時間差極大值重置爲一個最大時間差。

接下來,應該怎麼把錯誤的模型從估計的模型濾掉呢?又怎麼將時空模型和圖像模型結合呢?

基於貝葉斯推斷的模型融合

首先看時空模型和圖像模型的融合, 咱們有一個視覺類似度Pv,一個時空機率Pst,一個直觀的想法是,聯合評分能夠是Pv * Pst,若是要再抑制隨機的評分Prandom,能夠作個除法,就是Pv * Pst / Prandom

這樣一看,像不像條件機率公式?因而咱們開始推導(大量公式預警):

先看看咱們手上的資源:如今咱們有一個弱的圖像分類器,能夠爲兩張圖片提取兩個視覺特徵vi, vj, 有兩個時空點,空間特徵爲兩個攝像頭編號ci, cj,時間特徵爲兩張圖片拍攝的時間差∆ij,假定兩張圖對應的person id分別爲Pi, Pj,那麼咱們的目標就是求,在給定這些特徵的條件下,兩張圖屬於同一我的的機率

Pr(Pi=Pj|vi,vj,ci,cj,∆ij)(論文公式6)

由條件機率公式P(A|B) = P(B|A)*P(A)/P(B),可得

Pr(Pi=Pj|vi,vj,ci,cj,∆ij)
= Pr(vi,vj,ci,cj,∆ij|Pi=Pj) *Pr(Pi=Pj)/ Pr(vi,vj,ci,cj,∆ij)

由時空分佈和圖像分佈的獨立性假設(長得像的人運動規律不必定像),咱們能夠拆解第一項,獲得

= Pr(vi,vj|Pi=Pj) * Pr(ci,cj,∆ij|Pi=Pj) * Pr(Pi=Pj)/ Pr(vi,vj,ci,cj,∆ij)

其中Pr(Pi=Pj)是一個很差求的項,咱們試着把它換掉,

先交換順序(乘法交換律)

= Pr(vi,vj|Pi=Pj) * Pr(Pi=Pj) * Pr(ci,cj,∆ij|Pi=Pj) / Pr(vi,vj,ci,cj,∆ij)

由條件機率公式P(A|B)* P(B) = P(B|A) * P(A)可得

= Pr(Pi=Pj|vi,vj) * Pr(vi=vj)*Pr(ci,cj,∆ij|Pi=Pj) / Pr(vi,vj,ci,cj,∆ij)

能夠看到

  • Pr(Pi=Pj|vi,vj)可理解爲兩張圖從視覺特徵類似度上斷定爲同一人的機率
  • Pr(ci,cj,∆ij|Pi=Pj)就是兩個時空點是同一我的移動產生的機率

再次利用時空分佈和圖像分佈的獨立性假設,拆解分母

= Pr(Pi=Pj|vi,vj) * Pr(vi=vj)* Pr(ci,cj,∆ij|Pi=Pj) / Pr(vi,vj) * P(ci,cj,∆ij)

約掉Pr(vi=vj),

= Pr(Pi=Pj|vi,vj) * Pr(ci,cj,∆ij|Pi=Pj) /P(ci,cj,∆ij)

也就是

= 視覺類似度*同一人產生這種移動的機率/任意兩個時空點組成這種移動的機率

這也就是論文公式(7),也就是咱們一開始的猜測:Pv * Pst / Prandom

看着好像很接近咱們手頭掌握的資源了,可是,

  • 咱們並不知道理想的兩張圖的視覺類似度 Pr(Pi=Pj|vi,vj) ,只有咱們的圖像分類器斷定的兩張圖的視覺類似度 Pr(Si=Sj|vi,vj) ,
  • 咱們並不能計算同一人產生這種移動的真實機率Pr(ci,cj,∆ij|Pi=Pj) ,咱們只有依據視覺分類器估算的時空機率Pr(ci,cj,∆ij|Si=Sj) ,
  • 咱們卻是確實有數據集中任意兩個時空點產生這種移動的機率P(ci,cj,∆ij)

因而咱們想用Pr(ci,cj,∆ij|Si=Sj) ,P(ci,cj,∆ij)去近似,獲得

= Pr(Si=Sj|vi,vj) * Pr(ci,cj,∆ij|Si=Sj) /P(ci,cj,∆ij)

看到這裏其實就大體理解咱們的融合原理了,實際上咱們大部分實驗也是用的這個近似公式算的。

實現上,先模擬兩個時空模型,計算圖像類似度,而後代入公式求融合評分,具體能夠實現看我GitHub

但這個近似能不能作呢?咱們來作一下偏差分析(大量推導,不感興趣能夠跳到接下來出現的第二張圖,不影響後面的理解,只是分析一波會更加嚴謹)。

實際上,偏差是由圖像分類器引入的,假設圖像分類器斷定兩張圖是同一我的的錯判率爲Ep,圖像分類器斷定兩張圖不是同一人的錯判率爲En

則有,

Ep = Pr(Pi≠Pj|Si=Sj)(論文公式1)

En = Pr(Pi=Pj|Si≠Sj)(論文公式2)

則Pr(Pi=Pj|vi,vj) 與 Pr(Si=Sj|vi,vj) 的關係能夠表示爲:

Pr(Pi=Pj|vi,vj)
= Pr(Pi=Pj|Si=Sj) * Pr(Si=Sj|vi,vj) + Pr(Pi=Pj|Si≠Sj) * Pr(Si≠Sj|vi,vj)
= (1-Ep) * Pr(Si=Sj|vi,vj) + En * (1-Pr(Si=Sj|vi,vj) )
= (1-Ep-En) * Pr(Si=Sj|vi,vj) + En (論文公式8)

推導,Pr(ci,cj,∆ij|Pi=Pj) 和Pr(ci,cj,∆ij|Si=Sj) 的關係(這個無法像視覺類似度那樣直接推導,由於因果關係不一樣)

Pr(ci,cj,∆ij|Si=Sj)
= Pr(ci,cj,∆ij|Pi=Pj) * (Pr(Pi=Pj)|Si=Sj) + Pr(ci,cj,∆ij|Pi≠Pj) * (Pr(Pi=Pj)|Si≠Sj)
= Pr(ci,cj,∆ij|Pi=Pj) * (1- Ep) + Pr(ci,cj,∆ij|Pi≠Pj) * Ep

一樣能夠獲得

Pr(ci,cj,∆ij|Si≠Sj)
= Pr(ci,cj,∆ij|Pi=Pj) * En + Pr(ci,cj,∆ij|Pi≠Pj) * (1 - Ep)

聯立上面兩個式子解方程,消掉Pr(ci,cj,∆ij|Si≠Sj) 能夠獲得

Pr(ci,cj,∆ij|Pi=Pj)
= (1 - Ep - En)-1(1-En) * Pr(ci,cj,∆ij|Si=Sj) - Ep * Pr(ci,cj,∆ij|Si≠Sj) (論文公式5)

其中有個新概念Pr(ci,cj,∆ij|Si≠Sj) ,意味着圖像分類器認爲不是同一我的的時候,這種時空點出現的機率,實現上也不難,統計視覺類似度top10之後的點對應的時間差,做爲反時空機率模型便可。

咱們把兩個近似(公式5和公式8)代進公式7,

能夠獲得

Pr(Pi=Pj | vi, vj, ∆ij, ci, cj)
= (M1 + En/(1 - En - Ep))((1-En)M2 - EpM3)/Pr(∆ij, ci, cj))(論文公式9)

其中,

M1 = Pr(Si=Sj|vi,vj),視覺類似度

M2 = Pr(∆ij,ci,cj|Si=Sj),正時空機率模型

M3 = Pr(∆ij,ci,cj|Si≠Sj),反時空機率模型

分母Pr(∆ij, ci, cj))爲隨機機率模型

以上四項都是能夠從無標籤目標數據集中結合圖像分類器求解到的,而且,當En=Ep=0時(意味着圖像分類器徹底準確),這個公式能夠退化爲近似解:

Pr(Si=Sj|vi,vj) * Pr(ci,cj,∆ij|Si=Sj) /P(ci,cj,∆ij)

到這裏,你是否是覺得咱們就能夠用公式9算融合評分了?非也,公式9中,還有個問題:Ep,En是未知的!

若是想要正兒八經地算Ep,En,要求目標數據集有標籤,而後咱們用圖像分類器先算一遍,數數哪些算錯了,才能把Ep,En算出來。所以咱們用兩個常數α和β分別替代Ep,En,整個模型的近似就都集中在了這兩個常數上。

在論文Table1,2,3,4,Fig6相關的實驗中,α=β=0,而且,在Fig5中,咱們設置了其餘常數來檢查模型對於這種近似的敏感性

Parameter Sensity

能夠看到,雖然α和β較大時,準確率會有所降低,可是仍然能保持必定的水準,當你看到純圖像分類器的準確率以後,還會發現融合模型的準確率一直高於純圖像分類器。

你可能注意到了,圖中α+β都是小於1的,這是由於,只有當Ep+En<1且α+β<1時,融合模型的Ep+En纔會小於圖像模型的Ep+En,說人話就是,只有圖像模型不是特別糟糕,且近似的參數也比較正常的時候,融合模型纔會比單個的圖像模型要準,融合纔有意義。這個定理的具體的證實放到論文附錄裏了,有興趣的能夠郵件私信我拿附錄去看,這裏擺出來就太多了。

因而咱們獲得了一個由條件機率推斷支撐的多模態數據融合方法,稱爲貝葉斯融合

看一眼融合獲得的時空分佈圖:

image.png

再從數據上看一眼融合的模型有多強:

源數據集 目標數據集 圖像 結果 融合 時空 結果
rank-1 rank-5 rank-10 rank-1 rank-5 rank-10
CUHK01 GRID 10.70 20.20 23.80 30.90 63.70 79.10
VIPeR GRID 9.70 17.40 21.50 28.40 65.60 80.40
Market1501 GRID 17.80 31.20 36.80 49.60 81.40 88.70
GRID Market1501 20.72 35.39 42.99 51.16 65.08 70.04
VIPeR Market1501 24.70 40.91 49.52 56.18 71.50 76.48
CUHK01 Market1501 29.39 45.46 52.55 56.53 70.22 74.64

能夠看到,

  • 跨數據集直接遷移效果確實不好
  • 融合以後的準確率Rank1準確率變成2-4倍

說明這種融合方式是確實行之有效的。

基於Learning to Rank的遷移學習

前面講到圖像分類器太弱了,雖然融合後效果挺好的(這個時候咱們其實想着要不就這樣投個NIPS算了),可是若是能提高圖像分類器,融合的效果理論上會更好。而如今咱們有了一個強大的融合分類器,咱們能不能用這個融合分類器爲目標數據集的圖片打標籤,反過來訓練圖像分類器呢?

一個經常使用的無監督學習套路就是,根據融合評分的高低,將圖片對分爲正樣本對和負樣本對(打僞標籤),而後餵給圖像分類器學習。

Canonial Unsupervised Learning

咱們也嘗試了這種作法,可是發現,數據集中負樣本遠遠多於正樣本,融合分類器分對的負樣本是挺多的,可是分對的正樣本超級少,分錯的正樣本不少,錯樣本太多,訓練出來效果極差,用上一些hard ming的技巧也不行。

因而咱們思考

  • 咱們沒法提供正確的01標籤,分類器就只能學到許多錯的01標籤
  • 咱們是否能夠提供一些軟標籤,讓分類器去學習迴歸兩個樣本之間的評分,而不是直接學習二分類的標籤?
  • 這是一個圖像檢索問題,咱們能不能用信息檢索中的一些學習方法來完成這個任務?

因而天然而然地想到了Learning to Rank

Ranking

  • 問題定義:給定一個對象,尋找與其最相關的結果,按相關程度排序
  • 經常使用方法:
    • Point-wise:每個結果算一個絕對得分,而後按得分排序
    • Pair-wise:每兩個結果算一下誰的得分高,而後按這個相對得分排序
    • List-wise:枚舉全部排列狀況,計算綜合得分最高的一種做爲排序結果

綜合得分每每須要許多複雜的條件來計算,不必定適用於咱們的場景,因此排除List-wise,Point-wise和Pair-wise均可以採用,得分能夠直接用融合評分表示,Pair-wise能夠用一組正序樣本,一組逆序樣本,計算兩個得分,算相對得分來學習,有點Triplet loss的意味,因而在實驗中採用了Pair-wise方法。

Pair-wise Ranking

  • 給定樣本xi,其排序得分爲oi
  • 給定樣本xj,其排序得分爲oj
  • 定義oij=oi - oj,若是oij>0說明xi的排名高於xj
  • 將這個排名機率化,定義Pij = eoij/(1+eoij),爲xi排名高於xj的機率。
  • 對於任何一個長度爲n的排列,只要知道n-1個相鄰item的機率Pi,i+1,就能夠推斷出來任何兩個item的排序機率
  • 例如,已知Pik和Pkj,Pij = Pik * Pkj = eoik+okj/(1 + eoik+okj),其中oik=ln(Pik/(1 - Pik))

RankNet: Pair-wise Learning to Rank

RankNet是Pair-wise Learning to Rank的一種方法,用一個神經網絡去學習輸入的兩個樣本(還有一個query樣本)與其排序機率(上面定義的)的映射關係。

具體到咱們這個問題裏

  • 給定查詢圖片A,給定待匹配圖片B和C
  • 用神經網絡預測AB之間的類似度Sab爲B的絕對排序得分,計算AC之間的類似度Sac爲C的絕對排序得分

具體的神經網絡用Keras實現並可視化出來長這樣:

Keras-Ranknet

  • 輸入是三張圖片,分別用Resnet52提取特徵並flatten
  • flatten以後寫一個Lambda層+全鏈接層算特徵向量帶權重的幾何距離,獲得score1和score2
  • 用score1和score2和真實分數算交叉熵Loss(下面講)
  • 則B排序高於C的機率爲:

Pbc= eobc/(1+ eobc) = eSab- Sac / (1 + eSab- Sac)

  • 用預測機率Pbc去擬合真實的排序機率,迴歸損失用預測機率和真實機率的交叉熵表達

C(obc) = -P'bcln Pbc - (1-P'bc)ln (1 - Pbc)

網絡實現超級簡單,主要麻煩在樣本三元組構造

Transfer Learning to rank

整個Learning to rank過程如圖

Learning to rank

咱們用融合分類器爲目標數據集中的圖片對評分,構造三元組輸入RankNet,其中Si是查詢圖,Sj是在與Si融合類似度top1 - top25中抽取的圖片,Sk是在與Si融合類似度top25 - top50中抽取的圖片,餵給RankNet學習,使得resnet52部分卷積層能充分學習到目標場景上的視覺特徵。

Learning to Rank效果

源數據集 目標數據集 圖像 結果 融合 時空 結果
rank-1 rank-5 rank-10 rank-1 rank-5 rank-10
CUHK01 GRID 17.40 33.90 41.10 50.90 78.60 88.30
VIPeR GRID 18.50 31.40 40.50 52.70 81.70 89.20
Market1501 GRID 22.30 38.10 47.20 60.40 87.30 93.40
GRID Market1501 22.38 39.25 48.07 58.22 72.33 76.84
VIPeR Market1501 25.23 41.98 50.33 59.17 73.49 78.62
CUHK01 Market1501 30.58 47.09 54.60 60.75 74.44 79.25

對比Learning to Rank前的效果,準確率都提高了,GRID數據集上提高尤其明顯。

對比SOA有監督方法

一方面,咱們將上面的跨數據集無監督算法應用在GRID和Market1501兩個數據集上,與當前最好的方法進行對比,另外一方面,咱們還測試了有監督版本的效果,有監督即源數據集與目標數據集一致,如GRID預訓練->GRID融合時空,效果以下:

  • GRID
Method Rank 1
JLML 37.5
TFusion無監督 60.4
TFusion有監督 64.1

因爲在這個數據集上時空規律十分明顯(正確時間差都集中在一個很小的範圍內),能夠過濾掉大量錯誤分類結果,因此準確率甚至碾壓了所有有監督方法。

  • Market1501
Method Rank 1
S-CNN 65.88
DLCE 79.5
SVDNet 82.3
JLML 88.8
TFusion無監督 60.75
TFusion有監督 73.13

在Market1501這個數據集上,無監督的方法逼近2016年的有監督方法(咱們的圖像分類器只是一個ResNet52),有監督的方法超越2016年的有監督方法,雖然比不上2017年的有監督方法,可是若是結合其餘更好的圖像分類器,應該能有更好的效果。

對比SOA無監督方法

咱們向UMDL的做者要到了代碼,並復現了以下幾組跨數據集遷移實驗

Method Source Target Rank1
UMDL Market1501 GRID 3.77
UMDL CUHK01 GRID 3.58
UMDL VIPeR GRID 3.97
UMDL GRID Market1501 30.46
UMDL CUHK01 Market1501 29.69
UMDL VIPeR Market1501 30.34
TFusion Market1501 GRID 60.4
TFusion CUHK01 GRID 50.9
TFusion VIPeR GRID 52.7
TFusion GRID Market1501 58.22
TFusion CUHK01 Market1501 59.17
TFusion VIPeR Market1501 60.75

其中,UMDL遷移到Market1501的結果與悉尼科技大學hehefan與LiangZheng復現出來的效果差很少,因此咱們的復現是靠譜的。

能夠看到,無監督的TFusion全面碾壓UMDL。

更多詳細實驗結果能夠到論文中細看。

屢次迭代遷移學習

TFusion架構

回顧一下整個架構,咱們用圖像分類器估算時空模型,獲得融合模型,用融合模型反過來提高圖像分類器模型,圖像分類器又能繼續加強融合模型,造成一個閉環,理論上這個閉環循環屢次,能讓圖像分類器無限逼近融合分類器,從而獲得一個目標場景中也很強大的圖像分類器,所以咱們作了屢次迭代的嘗試:

Iteratively Learning

在從目前的實驗效果看,第一次遷移學習提高比較大,後面提高就比較小了,這個現象往好了說能夠是收斂快,但往壞了說,雖然圖像分類器獲得了提高,可是沒有出現圖像分類器提高大於融合分類器的現象,因此這裏邊應該還有東西可挖。

後記

My Github streak

調研,可視化,找思路,找數據集,作實驗,Debug,調參,寫論文,九個月寫一篇CVPR,這也是咱們實驗室第一篇CCF A類論文,算是來之不易的開山之做了。如今咱們在Person Reid領域繼續探索,正在搭建一個基於樹莓派的攝像頭網絡,構造本身的數據集,並在這個基礎上開展行人檢測,多模態數據融合,輕量級深度模型,分佈式協同終端,視頻哈希,圖像索引等一系列研究,歡迎follow個人Github,也歡迎持續關注咱們實驗室的博客

看了這麼久,還不給我Github點star!

相關文章
相關標籤/搜索