論文可以在arxiv下載,導(dǎo)師一作,本人二作,也是我們實(shí)驗(yàn)室第一篇CCF A類論文糜工,這個(gè)方法我們稱為TFusion。
代碼:https://github.com/ahangchen/TFusion
- 解決的目標(biāo)是跨數(shù)據(jù)集的Person Reid
- 屬于無(wú)監(jiān)督學(xué)習(xí)
- 方法是多模態(tài)數(shù)據(jù)融合 + 遷移學(xué)習(xí)
- 實(shí)驗(yàn)效果上录淡,超越了所有無(wú)監(jiān)督Person reid方法捌木,逼近有監(jiān)督方法,在部分?jǐn)?shù)據(jù)集上甚至超越有監(jiān)督方法
本文為你解讀CVPR2018 TFusion
轉(zhuǎn)載請(qǐng)注明作者夢(mèng)里茶
Task
行人重識(shí)別(Person Re-identification)是一個(gè)圖像檢索問(wèn)題嫉戚,給定一組圖片集(probe)刨裆,對(duì)于probe中的每張圖片,從候選圖片集(gallery)中找到最可能屬于同一個(gè)行人的圖片彼水。
行人重識(shí)別數(shù)據(jù)集是由一系列監(jiān)控?cái)z像頭拍攝得到崔拥,并用檢測(cè)算法將行人摳出,做行人的匹配凤覆。在這些數(shù)據(jù)集中链瓦,人臉是十分模糊的,無(wú)法作為匹配特征盯桦,而且由于多個(gè)攝像頭拍攝視角不同慈俯,同個(gè)人可能被拍到正面,側(cè)面拥峦,背面贴膘,具有不同的視覺(jué)特征,因此是一個(gè)比較難的圖像匹配問(wèn)題略号。常用數(shù)據(jù)集有很多刑峡,可以在這個(gè)網(wǎng)站查到洋闽。
Related Work
行人重識(shí)別問(wèn)題有以下幾種常見(jiàn)的解決方案:
基于視覺(jué)的行人重識(shí)別
這類方法通常提取行人圖像特征,對(duì)特征進(jìn)行距離度量突梦,從而判斷是否是同一個(gè)人诫舅。
有監(jiān)督學(xué)習(xí)
這類方法通常需要提供行人圖片和行人id標(biāo)簽(person1,person2等),訓(xùn)練模型宫患,提取圖像特征刊懈,根據(jù)兩張圖特征的距離大小(可以用余弦距離娃闲,歐氏距離之類的計(jì)算)虚汛,為probe中的每張圖和gallery中的每張圖計(jì)算其相似度,根據(jù)相似度將gallery中的圖片排序皇帮,排序越高越可能為同一個(gè)人卷哩。
這方面的論文代表有TOMM2017: A Discriminatively Learned CNN Embedding for Person Re-identification,我們采用的基礎(chǔ)圖像分類器就是基于這篇論文用Keras實(shí)現(xiàn)的玲献,后面細(xì)講殉疼。
無(wú)監(jiān)督學(xué)習(xí)
在CVPR2018之前梯浪,Person Reid領(lǐng)域正式發(fā)表的無(wú)監(jiān)督工作只有CVPR2016的UMDL:Unsupervised Cross-Dataset Transfer Learning for Person Re-identification捌年,基于字典學(xué)習(xí)方法,在多個(gè)源數(shù)據(jù)集上學(xué)習(xí)跨數(shù)據(jù)集不變性字典挂洛,遷移到目標(biāo)數(shù)據(jù)集上礼预。然而準(zhǔn)確率依然很低。
結(jié)合攝像頭拓?fù)涞男腥酥刈R(shí)別
行人圖片是攝像頭拍到的虏劲,攝像頭之間有一定的距離托酸,行人的移動(dòng)有一定的速度限制,因此行人在攝像頭間的移動(dòng)時(shí)間就會(huì)呈現(xiàn)出一定規(guī)律柒巫,比如励堡,AB攝像頭間有10米,人行走速度2m/s堡掏,如果AB攝像頭在1s內(nèi)捕捉到了兩張圖片应结,則這兩張圖片不可能是同一個(gè)人的,因此我們可以利用攝像頭拓?fù)浼s束來(lái)提升行人重識(shí)別的準(zhǔn)確率泉唁。
然而鹅龄,這類方法往往有以下缺陷:
- 有些方法需要預(yù)先知道攝像頭拓?fù)洌ˋB攝像頭之間的距離)
- 有些方法可以根據(jù)拍攝到的圖像數(shù)據(jù)推斷出攝像頭拓?fù)洌切枰獔D像有標(biāo)注(是否是同一個(gè)人)
- 即使推斷出攝像頭拓?fù)渫ば螅c圖像的融合結(jié)果依然很差
遷移學(xué)習(xí)
遷移學(xué)習(xí)現(xiàn)在是深度學(xué)習(xí)領(lǐng)域很常用的一個(gè)套路了扮休,在源數(shù)據(jù)集上預(yù)訓(xùn)練,在目標(biāo)數(shù)據(jù)集上微調(diào)拴鸵,從而使得源數(shù)據(jù)集上的模型能夠適應(yīng)目標(biāo)場(chǎng)景玷坠。這方面的論文代表有前面講的UMDL蜗搔,和Deep transfer learning person re-identification,然而八堡,目前的遷移學(xué)習(xí)大多需要標(biāo)簽碍扔,而無(wú)監(jiān)督遷移學(xué)習(xí)效果又很差,仍然有很大提升空間秕重。
更多關(guān)于Person Reid的內(nèi)容可以看一下我在博客寫的幾篇調(diào)研
Motivation
- 現(xiàn)有的行人重識(shí)別數(shù)據(jù)集中是否包含時(shí)空信息不同?包含的話是否存在時(shí)空規(guī)律?
- 缺乏兩個(gè)時(shí)空點(diǎn)是否屬于同一行人這種標(biāo)簽時(shí)溶耘,如何挖掘時(shí)空信息二拐,構(gòu)建時(shí)空模型?
- 如何融合兩個(gè)弱分類器凳兵?有監(jiān)督的融合有boosting算法可以用偷遗,無(wú)監(jiān)督呢嗡靡?
- 在缺乏標(biāo)簽的條件下,如何進(jìn)行有效的遷移學(xué)習(xí)?
對(duì)應(yīng)有三個(gè)創(chuàng)新點(diǎn)
- 無(wú)監(jiān)督的時(shí)空模型構(gòu)建
- 基于貝葉斯推斷的時(shí)空?qǐng)D像模型融合
- 基于Learning to Rank的遷移學(xué)習(xí)
接下來(lái)詳細(xì)解析我們的方法笋熬。
時(shí)空模型
數(shù)據(jù)集中的時(shí)空規(guī)律
所謂時(shí)空模型,即一個(gè)攝像頭網(wǎng)絡(luò)中延旧,行人在給定兩個(gè)攝像頭間遷移時(shí)間的分布埋酬。
我們看遍所有Reid數(shù)據(jù)集,發(fā)現(xiàn)有三個(gè)數(shù)據(jù)集有時(shí)空信息萨醒,Market1501, GRID, DukeMTMC-ReID斟珊,其中,DukeMTMC-ReID是2017年后半年才出來(lái)的富纸,時(shí)間比較倉(cāng)促在論文中就沒(méi)有包含跟它相關(guān)的實(shí)驗(yàn)囤踩。Market1501是一個(gè)比較大的Person Reid數(shù)據(jù)集,GRID是一個(gè)比較小的Person Reid數(shù)據(jù)集晓褪,并且都有六個(gè)攝像頭(GRID中雖然介紹了8個(gè)攝像頭堵漱,實(shí)際上只有6個(gè)攝像頭的數(shù)據(jù))。
例如涣仿,Marke1501中一張圖片的時(shí)空信息是寫在圖片名字中的:
0007_c3s3_077419_03.jpg:
- 0007代表person id勤庐,
- c3代表是在3號(hào)攝像頭拍到的,也就是空間信息变过,
- s3代表屬于第3個(gè)時(shí)間序列(GRID和DukeMTMC中沒(méi)有這個(gè)序列的信息埃元,在Market1501中,不同序列的屬于不同起始時(shí)間的視頻媚狰,同一系列不同攝像頭的視頻起始時(shí)間相近),
- 077419為幀號(hào)岛杀,也就是時(shí)間信息。
我想吐槽的是崭孤,其實(shí)時(shí)空信息是非常容易保存的类嗤,只要知道圖片是在什么時(shí)候糊肠,哪臺(tái)攝像機(jī)上拍攝,就能夠?qū)r(shí)空信息記錄并有效利用起來(lái)遗锣,希望多模態(tài)數(shù)據(jù)融合得到更多重視之后货裹,做數(shù)據(jù)集的人能夠更加重視可保存的信息吧。
我們首先通過(guò)Market1501中的真實(shí)行人標(biāo)簽精偿,計(jì)算訓(xùn)練集中所有圖片對(duì)
對(duì)應(yīng)的時(shí)空點(diǎn)對(duì)
對(duì)應(yīng)的遷移時(shí)間弧圆,這里可視化了從攝像頭1出發(fā)的行人,到達(dá)其他攝像頭需要的時(shí)間的分布笔咽。
可以看到搔预,到達(dá)不同目標(biāo)攝像頭的峰值位置不同,其中從攝像頭1到攝像頭1叶组,意味著被單個(gè)攝像頭拍到連續(xù)多幀拯田,所以峰值集中在0附近,從攝像頭1到攝像頭2甩十,峰值集中在-600附近船庇,意味著大部分人是單向從攝像頭2運(yùn)動(dòng)到攝像頭1,等等侣监,并且鸭轮,說(shuō)明這個(gè)數(shù)據(jù)集中存在顯著可利用的時(shí)空規(guī)律。
無(wú)監(jiān)督的時(shí)空模型構(gòu)造
我們將遷移時(shí)間差命名為delta达吞,這樣說(shuō)起來(lái)方便(裝逼)一點(diǎn)张弛。
如果我們能夠統(tǒng)計(jì)一個(gè)數(shù)據(jù)集中的所有delta荒典,給定一個(gè)新的delta(兩個(gè)新的圖片對(duì)應(yīng)的兩個(gè)時(shí)空點(diǎn)算出來(lái)的)酪劫,我們能夠用極大似然估計(jì),用在這個(gè)delta前后一定范圍(比如100幀)的delta的出現(xiàn)頻率(=目標(biāo)范圍delta數(shù)量/總的delta數(shù)量)寺董,作為新時(shí)間差出現(xiàn)的概率覆糟,也就是兩個(gè)時(shí)空點(diǎn)是同一人產(chǎn)生的概率。
但是遮咖!問(wèn)題是我們?cè)谀繕?biāo)場(chǎng)景上往往是沒(méi)有行人標(biāo)記數(shù)據(jù)的滩字!
于是我們就思考,
- 我們能不能根據(jù)兩個(gè)時(shí)空點(diǎn)對(duì)應(yīng)的兩張圖是否屬于同一個(gè)人御吞,來(lái)決定兩個(gè)時(shí)空點(diǎn)是否屬于同一個(gè)人麦箍?
- 而兩張圖是否屬于同一個(gè)人,其實(shí)是一個(gè)圖像匹配的二分類問(wèn)題陶珠,我們可以用一些視覺(jué)模型來(lái)做挟裂,
- 但是這種視覺(jué)模型往往是需要有標(biāo)簽訓(xùn)練的,無(wú)標(biāo)簽的視覺(jué)模型往往比較弱
- 視覺(jué)模型弱沒(méi)關(guān)系揍诽!我們相信跟時(shí)空模型結(jié)合就能變成一個(gè)強(qiáng)大的分類器诀蓉!要有信仰栗竖!
- 只要我們能無(wú)監(jiān)督地把時(shí)空模型構(gòu)造出來(lái),結(jié)合弱的圖像分類器渠啤,因?yàn)榧恿藭r(shí)空信息狐肢,一定能吊打其他無(wú)監(jiān)督模型!
思路有了沥曹,實(shí)現(xiàn)就很自然了份名,
- 我們先在其他數(shù)據(jù)集上(于是我們就可以說(shuō)這是一個(gè)跨數(shù)據(jù)集的任務(wù)了)預(yù)訓(xùn)練一個(gè)卷積神經(jīng)網(wǎng)絡(luò),
- 然后用這個(gè)卷積神經(jīng)網(wǎng)絡(luò)去目標(biāo)數(shù)據(jù)集上提特征妓美,
- 用余弦距離算特征相似度
- 將相似度排在前十的當(dāng)做同一個(gè)人
- 用這種“同一個(gè)人”的信息+極大似然估計(jì)構(gòu)造時(shí)空模型
圖像分類器上同窘,我們這里用的是LiangZheng的Siamese網(wǎng)絡(luò),他們的源碼是用MATLAB實(shí)現(xiàn)的部脚,我用Keras復(fù)現(xiàn)了一把:
時(shí)空模型的極大似然估計(jì)可以看這里
聰明的讀者應(yīng)該會(huì)注意到想邦,這個(gè)圖像分類器是在其他數(shù)據(jù)及上預(yù)訓(xùn)練的,由于特征空間中數(shù)據(jù)分布不同委刘,這個(gè)圖像分類器太弱了丧没,對(duì)于目標(biāo)數(shù)據(jù)集來(lái)說(shuō),前十里會(huì)有許多錯(cuò)的樣本锡移,導(dǎo)致構(gòu)造出來(lái)的時(shí)空模型和真實(shí)的時(shí)空模型有偏差
可以看到呕童,構(gòu)造的模型跟真實(shí)的模型還是有些差別的,但是峰值位置還是差不多淆珊,一定程度上應(yīng)該還能用夺饲,但我們還是希望構(gòu)造的模型盡量接近真實(shí)模型的。
于是我們開(kāi)始思考
- 導(dǎo)致模型出現(xiàn)偏差的因素是什么施符?是錯(cuò)誤的樣本對(duì)
- 如何去掉錯(cuò)誤樣本對(duì)的影響往声?我們能不能把錯(cuò)誤的樣本對(duì)分離出來(lái)?沒(méi)有標(biāo)簽咋辦戳吝?
- (靈光一閃)錯(cuò)誤的樣本不就跟我瞎選的差不多浩销?那我是不是可以隨機(jī)地選樣本對(duì),算一個(gè)隨機(jī)的delta分布出來(lái)
- 將估算的delta分布去掉隨機(jī)的delta分布听哭,剩下的多出來(lái)的部分慢洋,就是由于正確的行人遷移產(chǎn)生的,不就得到真實(shí)的delta分布了陆盘?
于是我們可視化了一下隨機(jī)的delta分布
可以發(fā)現(xiàn)普筹,
- 確實(shí)與估計(jì)模型和真實(shí)模型不同
- 存在較多抖動(dòng)
這種隨機(jī)的時(shí)間差分布也呈現(xiàn)出一定的集中趨勢(shì),其實(shí)體現(xiàn)的是采樣的時(shí)間差分布隘马,如太防,在1號(hào)攝像頭采的圖片大多在某個(gè)時(shí)間段,2號(hào)攝像頭也大多在這個(gè)時(shí)間段采祟霍,但3號(hào)攝像頭的圖片大多是在其他時(shí)間段采到的杏头。
考慮到時(shí)間差的頻率圖有這么多的抖動(dòng)盈包,我們?cè)谟?jì)算某個(gè)區(qū)域的時(shí)間差時(shí),加上了均值濾波醇王,并且做了一定區(qū)域的截?cái)嗄卦铮ǜ怕蕵O小值重置為一個(gè)最小概率值,時(shí)間差極大值重置為一個(gè)最大時(shí)間差寓娩。
接下來(lái)叛氨,應(yīng)該怎么把錯(cuò)誤的模型從估計(jì)的模型濾掉呢?又怎么將時(shí)空模型和圖像模型結(jié)合呢棘伴?
基于貝葉斯推斷的模型融合
首先看時(shí)空模型和圖像模型的融合寞埠, 我們有一個(gè)視覺(jué)相似度Pv,一個(gè)時(shí)空概率Pst焊夸,一個(gè)直觀的想法是仁连,聯(lián)合評(píng)分可以是Pv * Pst,如果要再抑制隨機(jī)的評(píng)分Prandom阱穗,可以做個(gè)除法饭冬,就是Pv * Pst / Prandom
這樣一看,像不像條件概率公式揪阶?于是我們開(kāi)始推導(dǎo)(大量公式預(yù)警):
先看看我們手上的資源:現(xiàn)在我們有一個(gè)弱的圖像分類器昌抠,可以為兩張圖片提取兩個(gè)視覺(jué)特征vi, vj, 有兩個(gè)時(shí)空點(diǎn),空間特征為兩個(gè)攝像頭編號(hào)ci, cj鲁僚,時(shí)間特征為兩張圖片拍攝的時(shí)間差?ij炊苫,假定兩張圖對(duì)應(yīng)的person id分別為Pi, Pj,那么我們的目標(biāo)就是求冰沙,在給定這些特征的條件下侨艾,兩張圖屬于同一個(gè)人的概率
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)
由時(shí)空分布和圖像分布的獨(dú)立性假設(shè)(長(zhǎng)得像的人運(yùn)動(dòng)規(guī)律不一定像)倦淀,我們可以拆解第一項(xiàng)蒋畜,得到
= Pr(vi,vj|Pi=Pj)*Pr(ci,cj,?ij|Pi=Pj) *Pr(Pi=Pj)/ Pr(vi,vj,ci,cj,?ij)
其中Pr(Pi=Pj)是一個(gè)不好求的項(xiàng),我們?cè)囍阉鼡Q掉撞叽,
先交換順序(乘法交換律)
= 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)可理解為兩張圖從視覺(jué)特征相似度上判定為同一人的概率
- Pr(ci,cj,?ij|Pi=Pj)就是兩個(gè)時(shí)空點(diǎn)是同一個(gè)人移動(dòng)產(chǎn)生的概率
再次利用時(shí)空分布和圖像分布的獨(dú)立性假設(shè),拆解分母
= 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)
也就是
= 視覺(jué)相似度*同一人產(chǎn)生這種移動(dòng)的概率/任意兩個(gè)時(shí)空點(diǎn)組成這種移動(dòng)的概率
這也就是論文公式(7)愿棋,也就是我們一開(kāi)始的猜想:Pv * Pst / Prandom
看著好像很接近我們手頭掌握的資源了,但是均牢,
- 我們并不知道理想的兩張圖的視覺(jué)相似度 Pr(Pi=Pj|vi,vj) 糠雨,只有我們的圖像分類器判定的兩張圖的視覺(jué)相似度 Pr(Si=Sj|vi,vj) ,
- 我們并不能計(jì)算同一人產(chǎn)生這種移動(dòng)的真實(shí)概率Pr(ci,cj,?ij|Pi=Pj) 徘跪,我們只有依據(jù)視覺(jué)分類器估算的時(shí)空概率Pr(ci,cj,?ij|Si=Sj) 甘邀,
- 我們倒是確實(shí)有數(shù)據(jù)集中任意兩個(gè)時(shí)空點(diǎn)產(chǎn)生這種移動(dòng)的概率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)
看到這里其實(shí)就大致理解我們的融合原理了松邪,實(shí)際上我們大部分實(shí)驗(yàn)也是用的這個(gè)近似公式算的坞琴。
實(shí)現(xiàn)上,先模擬兩個(gè)時(shí)空模型逗抑,計(jì)算圖像相似度剧辐,然后代入公式求融合評(píng)分,具體可以實(shí)現(xiàn)看我GitHub
但這個(gè)近似能不能做呢邮府?我們來(lái)做一下誤差分析(大量推導(dǎo)荧关,不感興趣可以跳到接下來(lái)出現(xiàn)的第二張圖,不影響后面的理解褂傀,只是分析一波會(huì)更加嚴(yán)謹(jǐn))忍啤。
實(shí)際上,誤差是由圖像分類器引入的仙辟,假設(shè)圖像分類器判定兩張圖是同一個(gè)人的錯(cuò)判率為Ep檀轨,圖像分類器判定兩張圖不是同一人的錯(cuò)判率為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) 的關(guān)系可以表示為:
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)
推導(dǎo)参萄,Pr(ci,cj,?ij|Pi=Pj) 和Pr(ci,cj,?ij|Si=Sj) 的關(guān)系(這個(gè)沒(méi)法像視覺(jué)相似度那樣直接推導(dǎo),因?yàn)橐蚬P(guān)系不同)
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)
聯(lián)立上面兩個(gè)式子解方程煎饼,消掉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)
其中有個(gè)新概念Pr(ci,cj,?ij|Si≠Sj) 讹挎,意味著圖像分類器認(rèn)為不是同一個(gè)人的時(shí)候,這種時(shí)空點(diǎn)出現(xiàn)的概率吆玖,實(shí)現(xiàn)上也不難筒溃,統(tǒng)計(jì)視覺(jué)相似度top10以后的點(diǎn)對(duì)應(yīng)的時(shí)間差,作為反時(shí)空概率模型即可沾乘。
我們把兩個(gè)近似(公式5和公式8)代進(jìn)公式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)翅阵,視覺(jué)相似度
M2 = Pr(?ij,ci,cj|Si=Sj)歪玲,正時(shí)空概率模型
M3 = Pr(?ij,ci,cj|Si≠Sj),反時(shí)空概率模型
分母Pr(?ij, ci, cj))為隨機(jī)概率模型
以上四項(xiàng)都是可以從無(wú)標(biāo)簽?zāi)繕?biāo)數(shù)據(jù)集中結(jié)合圖像分類器求解到的掷匠,并且滥崩,當(dāng)En=Ep=0時(shí)(意味著圖像分類器完全準(zhǔn)確),這個(gè)公式可以退化為近似解:
Pr(Si=Sj|vi,vj) * Pr(ci,cj,?ij|Si=Sj) /P(ci,cj,?ij)
到這里讹语,你是不是以為我們就可以用公式9算融合評(píng)分了钙皮?非也,公式9中,還有個(gè)問(wèn)題:Ep短条,En是未知的导匣!
如果想要正兒八經(jīng)地算Ep,En茸时,要求目標(biāo)數(shù)據(jù)集有標(biāo)簽贡定,然后我們用圖像分類器先算一遍,數(shù)數(shù)哪些算錯(cuò)了屹蚊,才能把Ep厕氨,En算出來(lái)。因此我們用兩個(gè)常數(shù)α和β分別替代Ep汹粤,En命斧,整個(gè)模型的近似就都集中在了這兩個(gè)常數(shù)上。
在論文Table1,2,3,4,Fig6相關(guān)的實(shí)驗(yàn)中嘱兼,α=β=0国葬,并且,在Fig5中芹壕,我們?cè)O(shè)置了其他常數(shù)來(lái)檢查模型對(duì)于這種近似的敏感性
可以看到汇四,雖然α和β較大時(shí),準(zhǔn)確率會(huì)有所下降踢涌,但是仍然能保持一定的水準(zhǔn)通孽,當(dāng)你看到純圖像分類器的準(zhǔn)確率之后,還會(huì)發(fā)現(xiàn)融合模型的準(zhǔn)確率一直高于純圖像分類器睁壁。
你可能注意到了背苦,圖中α+β都是小于1的,這是因?yàn)榕嗣鳎挥挟?dāng)Ep+En<1且α+β<1時(shí)行剂,融合模型的Ep+En才會(huì)小于圖像模型的Ep+En,說(shuō)人話就是钳降,只有圖像模型不是特別糟糕厚宰,且近似的參數(shù)也比較正常的時(shí)候,融合模型才會(huì)比單個(gè)的圖像模型要準(zhǔn)遂填,融合才有意義铲觉。這個(gè)定理的具體的證明放到論文附錄里了,有興趣的可以郵件私信我拿附錄去看城菊,這里擺出來(lái)就太多了备燃。
于是我們得到了一個(gè)由條件概率推斷支撐的多模態(tài)數(shù)據(jù)融合方法,稱為貝葉斯融合
看一眼融合得到的時(shí)空分布圖:
再?gòu)臄?shù)據(jù)上看一眼融合的模型有多強(qiáng):
源數(shù)據(jù)集 | 目標(biāo)數(shù)據(jù)集 | 純 | 圖像 | 結(jié)果 | 融合 | 時(shí)空 | 結(jié)果 | |
---|---|---|---|---|---|---|---|---|
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 |
可以看到凌唬,
- 跨數(shù)據(jù)集直接遷移效果確實(shí)很差
- 融合之后的準(zhǔn)確率Rank1準(zhǔn)確率變成2-4倍
說(shuō)明這種融合方式是確實(shí)行之有效的。
基于Learning to Rank的遷移學(xué)習(xí)
前面講到圖像分類器太弱了,雖然融合后效果挺好的(這個(gè)時(shí)候我們其實(shí)想著要不就這樣投個(gè)NIPS算了)客税,但是如果能提升圖像分類器况褪,融合的效果理論上會(huì)更好。而現(xiàn)在我們有了一個(gè)強(qiáng)大的融合分類器更耻,我們能不能用這個(gè)融合分類器為目標(biāo)數(shù)據(jù)集的圖片打標(biāo)簽测垛,反過(guò)來(lái)訓(xùn)練圖像分類器呢?
一個(gè)常用的無(wú)監(jiān)督學(xué)習(xí)套路就是秧均,根據(jù)融合評(píng)分的高低食侮,將圖片對(duì)分為正樣本對(duì)和負(fù)樣本對(duì)(打偽標(biāo)簽),然后喂給圖像分類器學(xué)習(xí)目胡。
我們也嘗試了這種做法锯七,但是發(fā)現(xiàn),數(shù)據(jù)集中負(fù)樣本遠(yuǎn)遠(yuǎn)多于正樣本誉己,融合分類器分對(duì)的負(fù)樣本是挺多的眉尸,但是分對(duì)的正樣本超級(jí)少,分錯(cuò)的正樣本很多巨双,錯(cuò)樣本太多噪猾,訓(xùn)練出來(lái)效果極差,用上一些hard ming的技巧也不行筑累。
于是我們思考袱蜡,
- 我們無(wú)法提供正確的01標(biāo)簽,分類器就只能學(xué)到許多錯(cuò)的01標(biāo)簽
- 我們是否可以提供一些軟標(biāo)簽慢宗,讓分類器去學(xué)習(xí)回歸兩個(gè)樣本之間的評(píng)分坪蚁,而不是直接學(xué)習(xí)二分類的標(biāo)簽?
- 這是一個(gè)圖像檢索問(wèn)題婆廊,我們能不能用信息檢索中的一些學(xué)習(xí)方法來(lái)完成這個(gè)任務(wù)迅细?
于是自然而然地想到了Learning to Rank
Ranking
- 問(wèn)題定義:給定一個(gè)對(duì)象,尋找與其最相關(guān)的結(jié)果淘邻,按相關(guān)程度排序
- 常用方法:
- Point-wise:每一個(gè)結(jié)果算一個(gè)絕對(duì)得分茵典,然后按得分排序
- Pair-wise:每?jī)蓚€(gè)結(jié)果算一下誰(shuí)的得分高,然后按這個(gè)相對(duì)得分排序
- List-wise:枚舉所有排列情況宾舅,計(jì)算綜合得分最高的一種作為排序結(jié)果
綜合得分往往需要許多復(fù)雜的條件來(lái)計(jì)算统阿,不一定適用于我們的場(chǎng)景,所以排除List-wise筹我,Point-wise和Pair-wise都可以采用扶平,得分可以直接用融合評(píng)分表示,Pair-wise可以用一組正序樣本蔬蕊,一組逆序樣本结澄,計(jì)算兩個(gè)得分,算相對(duì)得分來(lái)學(xué)習(xí),有點(diǎn)Triplet loss的意味麻献,于是在實(shí)驗(yàn)中采用了Pair-wise方法们妥。
Pair-wise Ranking
- 給定樣本xi,其排序得分為oi勉吻,
- 給定樣本xj监婶,其排序得分為oj,
- 定義oij=oi - oj齿桃,如果oij>0說(shuō)明xi的排名高于xj惑惶,
- 將這個(gè)排名概率化,定義Pij = eoij/(1+eoij)短纵,為xi排名高于xj的概率带污。
- 對(duì)于任何一個(gè)長(zhǎng)度為n的排列,只要知道n-1個(gè)相鄰item的概率Pi,i+1踩娘,就可以推斷出來(lái)任何兩個(gè)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的一種方法雷绢,用一個(gè)神經(jīng)網(wǎng)絡(luò)去學(xué)習(xí)輸入的兩個(gè)樣本(還有一個(gè)query樣本)與其排序概率(上面定義的)的映射關(guān)系。
具體到我們這個(gè)問(wèn)題里
- 給定查詢圖片A理卑,給定待匹配圖片B和C
- 用神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)AB之間的相似度Sab為B的絕對(duì)排序得分翘紊,計(jì)算AC之間的相似度Sac為C的絕對(duì)排序得分
具體的神經(jīng)網(wǎng)絡(luò)用Keras實(shí)現(xiàn)并可視化出來(lái)長(zhǎng)這樣:
- 輸入是三張圖片,分別用Resnet52提取特征并flatten
- flatten之后寫一個(gè)Lambda層+全連接層算特征向量帶權(quán)重的幾何距離藐唠,得到score1和score2
- 用score1和score2和真實(shí)分?jǐn)?shù)算交叉熵Loss(下面講)
- 則B排序高于C的概率為:
Pbc= eobc/(1+ eobc) = eSab- Sac / (1 + eSab- Sac)
- 用預(yù)測(cè)概率Pbc去擬合真實(shí)的排序概率帆疟,回歸損失用預(yù)測(cè)概率和真實(shí)概率的交叉熵表達(dá)
C(obc) = -P'bcln Pbc - (1-P'bc)ln (1 - Pbc)
網(wǎng)絡(luò)實(shí)現(xiàn)超級(jí)簡(jiǎn)單,主要麻煩在樣本三元組構(gòu)造
Transfer Learning to rank
整個(gè)Learning to rank過(guò)程如圖
我們用融合分類器為目標(biāo)數(shù)據(jù)集中的圖片對(duì)評(píng)分宇立,構(gòu)造三元組輸入RankNet踪宠,其中Si是查詢圖,Sj是在與Si融合相似度top1 - top25中抽取的圖片妈嘹,Sk是在與Si融合相似度top25 - top50中抽取的圖片柳琢,喂給RankNet學(xué)習(xí),使得resnet52部分卷積層能充分學(xué)習(xí)到目標(biāo)場(chǎng)景上的視覺(jué)特征润脸。
Learning to Rank效果
源數(shù)據(jù)集 | 目標(biāo)數(shù)據(jù)集 | 純 | 圖像 | 結(jié)果 | 融合 | 時(shí)空 | 結(jié)果 | |
---|---|---|---|---|---|---|---|---|
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 |
對(duì)比Learning to Rank前的效果柬脸,準(zhǔn)確率都提升了,GRID數(shù)據(jù)集上提升尤為明顯毙驯。
對(duì)比SOA有監(jiān)督方法
一方面倒堕,我們將上面的跨數(shù)據(jù)集無(wú)監(jiān)督算法應(yīng)用在GRID和Market1501兩個(gè)數(shù)據(jù)集上,與當(dāng)前最好的方法進(jìn)行對(duì)比爆价,另一方面垦巴,我們還測(cè)試了有監(jiān)督版本的效果媳搪,有監(jiān)督即源數(shù)據(jù)集與目標(biāo)數(shù)據(jù)集一致,如GRID預(yù)訓(xùn)練->GRID融合時(shí)空魂那,效果如下:
- GRID
Method | Rank 1 |
---|---|
JLML | 37.5 |
TFusion無(wú)監(jiān)督 | 60.4 |
TFusion有監(jiān)督 | 64.1 |
由于在這個(gè)數(shù)據(jù)集上時(shí)空規(guī)律十分明顯(正確時(shí)間差都集中在一個(gè)很小的范圍內(nèi))蛾号,可以過(guò)濾掉大量錯(cuò)誤分類結(jié)果稠项,所以準(zhǔn)確率甚至碾壓了全部有監(jiān)督方法涯雅。
- Market1501
Method | Rank 1 |
---|---|
S-CNN | 65.88 |
DLCE | 79.5 |
SVDNet | 82.3 |
JLML | 88.8 |
TFusion無(wú)監(jiān)督 | 60.75 |
TFusion有監(jiān)督 | 73.13 |
在Market1501這個(gè)數(shù)據(jù)集上,無(wú)監(jiān)督的方法逼近2016年的有監(jiān)督方法(我們的圖像分類器只是一個(gè)ResNet52)展运,有監(jiān)督的方法超越2016年的有監(jiān)督方法活逆,雖然比不上2017年的有監(jiān)督方法,但是如果結(jié)合其他更好的圖像分類器拗胜,應(yīng)該能有更好的效果蔗候。
對(duì)比SOA無(wú)監(jiān)督方法
我們向UMDL的作者要到了代碼,并復(fù)現(xiàn)了如下幾組跨數(shù)據(jù)集遷移實(shí)驗(yàn)
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的結(jié)果與悉尼科技大學(xué)hehefan與LiangZheng復(fù)現(xiàn)出來(lái)的效果差不多锈遥,所以我們的復(fù)現(xiàn)是靠譜的。
可以看到勘畔,無(wú)監(jiān)督的TFusion全面碾壓UMDL所灸。
更多詳細(xì)實(shí)驗(yàn)結(jié)果可以到論文中細(xì)看。
多次迭代遷移學(xué)習(xí)
回顧一下整個(gè)架構(gòu)炫七,我們用圖像分類器估算時(shí)空模型爬立,得到融合模型,用融合模型反過(guò)來(lái)提升圖像分類器模型万哪,圖像分類器又能繼續(xù)增強(qiáng)融合模型侠驯,形成一個(gè)閉環(huán)
,理論上這個(gè)閉環(huán)循環(huán)多次奕巍,能讓圖像分類器無(wú)限逼近融合分類器吟策,從而得到一個(gè)目標(biāo)場(chǎng)景中也很強(qiáng)大的圖像分類器,因此我們做了多次迭代的嘗試:
在從目前的實(shí)驗(yàn)效果看的止,第一次遷移學(xué)習(xí)提升比較大檩坚,后面提升就比較小了,這個(gè)現(xiàn)象往好了說(shuō)可以是收斂快冲杀,但往壞了說(shuō)效床,雖然圖像分類器得到了提升,但是沒(méi)有出現(xiàn)圖像分類器提升大于融合分類器的現(xiàn)象权谁,所以這里邊應(yīng)該還有東西可挖剩檀。
后記
調(diào)研,可視化旺芽,找思路沪猴,找數(shù)據(jù)集辐啄,做實(shí)驗(yàn),Debug运嗜,調(diào)參壶辜,寫論文,九個(gè)月寫一篇CVPR担租,這也是我們實(shí)驗(yàn)室第一篇CCF A類論文砸民,算是來(lái)之不易的開(kāi)山之作了。現(xiàn)在我們?cè)赑erson Reid領(lǐng)域繼續(xù)探索奋救,正在搭建一個(gè)基于樹(shù)莓派的攝像頭網(wǎng)絡(luò)岭参,構(gòu)造自己的數(shù)據(jù)集,并在這個(gè)基礎(chǔ)上開(kāi)展行人檢測(cè)尝艘,多模態(tài)數(shù)據(jù)融合演侯,輕量級(jí)深度模型,分布式協(xié)同終端背亥,視頻哈希秒际,圖像索引等一系列研究,歡迎follow我的Github狡汉,也歡迎持續(xù)關(guān)注我們實(shí)驗(yàn)室的博客
看了這么久娄徊,還不給我Github點(diǎn)star!