CVPR2018: 基於時空模型無監督遷移學習的行人重識別

Unsupervised Cross-dataset Person Re-identification by Transfer Learning of Spatial-Temporal Patterns

論文可以在arxiv下載,老闆一作,本人二作,也是我們實驗室第一篇CCF A類論文,這個方法我們稱為TFusion。

代碼:

ahangchen/TFusion?

github.com圖標

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

本文為你解讀CVPR2018 TFusion

轉載請註明作者夢裡茶

Task

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

行人重識別數據集是由一系列監控攝像頭拍攝得到,並用檢測演算法將行人摳出,做行人的匹配。在這些數據集中,人臉是十分模糊的,無法作為匹配特徵,而且由於多個攝像頭拍攝視角不同,同個人可能被拍到正面,側面,背面,具有不同的視覺特徵,因此是一個比較難的圖像匹配問題。常用數據集有很多,可以在這個網站查到。

Related Work

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

基於視覺的行人重識別

這類方法通常提取行人圖像特徵,對特徵進行距離度量,從而判斷是否是同一個人。

有監督學習

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

這方面的論文代表有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, DukeMTMC4ReID,其中,DukeMTMC-ReID是2017年後半年才出來的,時間比較倉促在論文中就沒有包含跟它相關的實驗。Market1501是一個比較大的Person Reid數據集,GRID是一個比較小的Person Reid數據集,並且都有六個攝像頭(GRID中雖然介紹了8個攝像頭,實際上只有6個攝像頭的數據)。

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

0007_c3s3_077419_03.jpg:

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

我想吐槽的是,其實時空信息是非常容易保存的,只要知道圖片是在什麼時候,哪台攝像機上拍攝,就能夠將時空信息記錄並有效利用起來,希望多模態數據融合得到更多重視之後,做數據集的人能夠更加重視可保存的信息吧。

我們首先通過Market1501中的真實行人標籤,計算訓練集中所有圖片對對應的時空點對對應的遷移時間,這裡可視化了從攝像頭1出發的行人,到達其他攝像頭需要的時間的分布。

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

無監督的時空模型構造

我們將遷移時間差命名為delta,這樣說起來方便一點。

如果我們能夠統計一個數據集中的所有delta,給定一個新的delta(兩個新的圖片對應的兩個時空點算出來的),我們能夠用極大似然估計,用在這個delta前後一定範圍(比如100幀)的delta的出現頻率(=目標範圍delta數量/總的delta數量),作為新時間差出現的概率,也就是兩個時空點是同一人產生的概率。

但是!問題是我們在目標場景上往往是沒有行人標記數據的!

於是我們就思考

  • 我們能不能根據兩個時空點對應的兩張圖是否屬於同一個人,來決定兩個時空點是否屬於同一個人?
  • 而兩張圖是否屬於同一個人,其實是一個圖像匹配的二分類問題,我們可以用一些視覺模型來做,
  • 但是這種視覺模型往往是需要有標籤訓練的,無標籤的視覺模型往往比較弱
  • 視覺模型弱沒關係!我們相信跟時空模型結合就能變成一個強大的分類器!要有信仰!
  • 只要我們能無監督地把時空模型構造出來,結合弱的圖像分類器,因為加了時空信息,一定能吊打其他無監督模型!

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

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

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

時空模型的極大似然估計可以看這裡

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

可以看到,構造的模型跟真實的模型還是有些差別的,但是峰值位置還是差不多,一定程度上應該還能用,但我們還是希望構造的模型盡量接近真實模型的。

於是我們開始思考

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

於是我們可視化了一下隨機的delta分布

可以發現,

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

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

考慮到時間差的頻率圖有這麼多的抖動,我們在計算某個區域的時間差時,加上了均值濾波,並且做了一定區域的截斷,包括概率極小值重置為一個最小概率值,時間差極大值重置為一個最大時間差。

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

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

首先看時空模型和圖像模型的融合, 我們有一個視覺相似度 P_V ,一個時空概率 P_{st} ,一個直觀的想法是,聯合評分可以是 P_v * P_{st} ,如果要再抑制隨機的評分Prandom,可以做個除法,就是 P_v * P_{st} / P_{random}

這樣一看,像不像條件概率公式?於是我們開始推導(大量公式預警):

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

Pr(P_i = P_j|v_i, v_j,c_i,c_j,Delta_{ij}) (論文公式6)

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

Pr(P_i = P_j|v_i, v_j,c_i,c_j,Delta_{ij}) = frac{Pr(v_i, v_j,c_i,c_j,Delta_{ij}|P_i = P_j) * Pr(P_i = P_j)}{Pr(v_i, v_j,c_i,c_j,Delta_{ij})}

由時空分布和圖像分布的獨立性假設(長得像的人運動規律不一定像),我們可以拆解第一項,得到

= frac{Pr(v_i,v_j|P_i=P_j)* Pr(c_i,c_j,Delta_{ij}|P_i=P_j)*Pr(P_i=P_j)}{Pr(v_i,v_j,c_i,c_j,Delta_{ij})} =

其中 Pr(P_i=P_j) 是一個不好求的項,我們試著把它換掉,

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

= frac{Pr(v_i,v_j|P_i=P_j)*Pr(P_i=P_j)* Pr(c_i,c_j,Delta_{ij}|P_i=P_j)}{Pr(v_i,v_j,c_i,c_j,Delta_{ij})}

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

= frac{Pr(P_i=P_j|v_i,v_j)*Pr(v_i,v_j)* Pr(c_i,c_j,Delta_{ij}|P_i=P_j)}{Pr(v_i,v_j,c_i,c_j,Delta_{ij})}

可以看到

  • Pr(P_i=P_j|v_i,v_j) 可理解為兩張圖從視覺特徵相似度上判定為同一人的概率
  • Pr(c_i,c_j,Delta_{ij}|P_i=P_j) 就是兩個時空點是同一個人移動產生的概率

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

= frac{Pr(P_i=P_j|v_i,v_j)*Pr(v_i,v_j)* Pr(c_i,c_j,Delta_{ij}|P_i=P_j)}{Pr(v_i,v_j)*Pr(c_i,c_j,Delta_{ij})}

約掉 Pr(v_i,v_j)

= frac{Pr(P_i=P_j|v_i,v_j)* Pr(c_i,c_j,Delta_{ij}|P_i=P_j)}{Pr(c_i,c_j,Delta_{ij})}

也就是

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

這也就是論文公式(7),也就是我們一開始的猜想: P_v * P_{st} / P_{random}

看著好像很接近我們手頭掌握的資源了,但是,

  • 我們並不知道理想的兩張圖的視覺相似度 Pr(P_i=P_j|v_i,v_j) ,只有我們的圖像分類器判定的兩張圖的視覺相似度 Pr(S_i=S_j|v_i,v_j)
  • 我們並不能計算同一人產生這種移動的真實概率 Pr(c_i,c_j,Delta_{ij}|P_i=P_j) ,我們只有依據視覺分類器估算的時空概率 Pr(c_i,c_j,Delta_{ij}|S_i=S_j)
  • 我們倒是確實有數據集中任意兩個時空點產生這種移動的概率P(ci,cj,?ij)

於是我們想用 Pr(c_i,c_j,Delta_{ij}|S_i=S_j)Pr(S_i=S_j|v_i,v_j) 去近似,得到

= frac{Pr(S_i=S_j|v_i,v_j)* Pr(c_i,c_j,Delta_{ij}|S_i=S_j)}{Pr(c_i,c_j,Delta_{ij})}

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

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

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

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

則有,

E_p = Pr(P_i
eq P_j|S_i=S_j) (論文公式1)

E_n = Pr(P_i = P_j|S_i
eq S_j) (論文公式2)

Pr(P_i=P_j|v_i,v_j)Pr(S_i=S_j|v_i,v_j) 的關係可以表示為:

Pr(P_i=P_j|v_i,v_j)

 = Pr(P_i=P_j|S_i=S_j) * Pr(S_i=S_j|v_i,v_j) + Pr(P_i=P_j|S_i
eq S_j) * Pr(S_i
eq S_j|v_i,v_j) = (1-E_p) * Pr(S_i=S_j|v_i,v_j) + E_n* (1-Pr(S_i=S_j|v_i,v_j) ) = (1-E_p-E_n) * Pr(S_i=S_j|v_i,v_j) + E_n (論文公式8)

推導,Pr(ci,cj,?ij|Pi=Pj) 和Pr(ci,cj,?ij|Si=Sj) 的關係(這個沒法像視覺相似度那樣直接推導,因為因果關係不同)

Pr(c_i,c_j,?_{ij}|S_i=S_j) = Pr(c_i,c_j,?_{ij|}P_i=P_j) * (Pr(P_i=P_j)|S_i=S_j) + Pr(c_i,c_j,?_{ij}|P_i≠P_j) * (Pr(P_i=P_j)|S_i≠S_j) = Pr(c_i,c_j,?_{ij}|P_i=P_j) * (1- E_p) + Pr(c_i,c_j,?_{ij|}P_i≠P_j) * E_p

同樣可以得到

Pr(c_i,c_j,?_{ij}|S_i
eq S_j)

= Pr(c_i,c_j,?_{ij}|P_i=P_j) * E_n + Pr(c_i,c_j,?_{ij}|P_i≠P_j) * (1 - E_p)

聯立上面兩個式子解方程,消掉  Pr(c_i,c_j,?_{ij}|P_i≠P_j) 可以得到

Pr(c_i,c_j,?_{ij}|P_i=P_j) = (1 - E_p - E_n)-1(1-E_n) * Pr(c_i,c_j,?_{ij}|S_i=S_j) - E_p * Pr(c_i,c_j,?_{ij}|S_i≠S_j) (論文公式5)

其中有個新概念Pr(ci,cj,?ij|Si≠Sj) ,意味著圖像分類器認為不是同一個人的時候,這種時空點出現的概率,實現上也不難,統計視覺相似度top10以後的點對應的時間差,作為反時空概率模型即可。

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

可以得到

Pr(P_i=P_j | v_i, v_j, ?_{ij}, c_i, c_j)

=frac{ (M_1 + E_n/(1 - E_n - E_p))*((1-E_n)M_2 - E_pM_3)}{Pr(?_{ij}, c_i, c_j)} 論文公式9

其中,

M_1 = Pr(S_i=S_j|v_i,v_j) ,視覺相似度

M_2 = Pr(?_{ij},c_i,c_j|S_i=S_j) ,正時空概率模型

M_3 = Pr(?_{ij},c_i,c_j|S_i≠S_j) ,反時空概率模型

分母 Pr(?_{ij},c_i,c_j) 為隨機概率模型

以上四項都是可以從無標籤目標數據集中結合圖像分類器求解到的,並且,當 E_n=E_p=0 時(意味著圖像分類器完全準確),這個公式可以退化為近似解:

= frac{Pr(S_i=S_j|v_i,v_j)* Pr(c_i,c_j,Delta_{ij}|S_i=S_j)}{Pr(c_i,c_j,Delta_{ij})}

到這裡,你是不是以為我們就可以用公式9算融合評分了?非也,公式9中,還有個問題: E_pE_n 是未知的!

如果想要正兒八經地算 E_p , E_n ,要求目標數據集有標籤,然後我們用圖像分類器先算一遍,數數哪些算錯了,才能把 E_pE_n 算出來。因此我們用兩個常數α和β分別替代 E_p ,E_n ,整個模型的近似就都集中在了這兩個常數上。

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

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

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

於是我們得到了一個由條件概率推斷支撐的多模態數據融合方法,稱為貝葉斯融合

看一眼融合得到的時空分布圖:

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

可以看到,

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

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

基於Learning to Rank的遷移學習

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

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

我們也嘗試了這種做法,但是發現,數據集中負樣本遠遠多於正樣本,融合分類器分對的負樣本是挺多的,但是分對的正樣本超級少,分錯的正樣本很多,錯樣本太多,訓練出來效果極差,用上一些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

  • 給定樣本 x_i ,其排序得分為 o_i
  • 給定樣本 x_j ,其排序得分為 o_j
  • 定義 o_{ij}=o_i - o_{j} ,如果 o_{ij}>0 說明 x_i 的排名高於 x_j
  • 將這個排名概率化,定義 P_{ij} = frac{e^{o_{ij}}}{(1+e^{o_{ij}})} ,為xi排名高於xj的概率。
  • 對於任何一個長度為n的排列,只要知道n-1個相鄰item的概率 P_{i,i+1} ,就可以推斷出來任何兩個item的排序概率
  • 例如,已知 P_{ik}P_{kj}P_{ij} = P_{ik} * P_{kj} = frac{e^{o_{ik}+okj}}{1 + e^{o_{ik}+okj}} ,其中 o_{ik}=lnfrac{P_{ik}}{1 - P_{ik}}

RankNet: Pair-wise Learning to Rank

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

具體到我們這個問題里

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

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

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

P_bc= e^{o_{bc}}/(1+ e^{o_{bc}}) = frac{e^{S_{ab}- S_{ac}} }{ 1 + e^{S_{ab}- S_{ac}}}

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

C(o_{bc}) = -P_{bc}ln P_{bc} - (1-P_{bc})ln (1 - P_{bc})

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

Transfer Learning to rank

整個Learning to rank過程如圖

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

Learning to Rank效果

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

對比SOA有監督方法

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

  • GRID

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

  • Market1501

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

對比SOA無監督方法

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

其中,UMDL遷移到Market1501的結果與悉尼科技大學hehefan與LiangZheng復現出來的效果差不多,所以我們的復現是靠譜的。

可以看到,無監督的TFusion全面碾壓UMDL。

更多詳細實驗結果可以到論文中細看。

多次迭代遷移學習

回顧一下整個架構,我們用圖像分類器估算時空模型,得到融合模型,用融合模型反過來提升圖像分類器模型,圖像分類器又能繼續增強融合模型,形成一個閉環,理論上這個閉環循環多次,能讓圖像分類器無限逼近融合分類器,從而得到一個目標場景中也很強大的圖像分類器,因此我們做了多次迭代的嘗試:

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

後記

Github streak

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

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


推薦閱讀:

鄭宇:跨域數據融合方法概述(總結)

TAG:行人重識別 | CVPR | 數據融合 |