論文可以在arxiv下載,老板一作,本人二作,也是我們實驗室第一篇CCF A類論文,這個方法我們稱為TFusion。
代碼:https://github.com/ahangchen/TFusion

- 解決的目標是跨數據集的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, DukeMTMC-ReID,其中,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號攝像頭的圖片大多是在其他時間段采到的。
考慮到時間差的頻率圖有這么多的抖動,我們在計算某個區域的時間差時,加上了均值濾波,並且做了一定區域的截斷,包括概率極小值重置為一個最小概率值,時間差極大值重置為一個最大時間差。
接下來,應該怎么把錯誤的模型從估計的模型濾掉呢?又怎么將時空模型和圖像模型結合呢?
基於貝葉斯推斷的模型融合
首先看時空模型和圖像模型的融合, 我們有一個視覺相似度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中,我們設置了其他常數來檢查模型對於這種近似的敏感性

可以看到,雖然α和β較大時,准確率會有所下降,但是仍然能保持一定的水准,當你看到純圖像分類器的准確率之后,還會發現融合模型的准確率一直高於純圖像分類器。
你可能注意到了,圖中α+β都是小於1的,這是因為,只有當Ep+En<1且α+β<1時,融合模型的Ep+En才會小於圖像模型的Ep+En,說人話就是,只有圖像模型不是特別糟糕,且近似的參數也比較正常的時候,融合模型才會比單個的圖像模型要准,融合才有意義。這個定理的具體的證明放到論文附錄里了,有興趣的可以郵件私信我拿附錄去看,這里擺出來就太多了。
於是我們得到了一個由條件概率推斷支撐的多模態數據融合方法,稱為貝葉斯融合
看一眼融合得到的時空分布圖:

再從數據上看一眼融合的模型有多強:
| 源數據集 | 目標數據集 | 純 | 圖像 | 結果 | 融合 | 時空 | 結果 | |
|---|---|---|---|---|---|---|---|---|
| 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算了),但是如果能提升圖像分類器,融合的效果理論上會更好。而現在我們有了一個強大的融合分類器,我們能不能用這個融合分類器為目標數據集的圖片打標簽,反過來訓練圖像分類器呢?
一個常用的無監督學習套路就是,根據融合評分的高低,將圖片對分為正樣本對和負樣本對(打偽標簽),然后喂給圖像分類器學習。

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

- 輸入是三張圖片,分別用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過程如圖

我們用融合分類器為目標數據集中的圖片對評分,構造三元組輸入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。
更多詳細實驗結果可以到論文中細看。
多次迭代遷移學習

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

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

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