最近在看person re-identification相關(guān)的paper沙峻,之后應(yīng)該會(huì)有一系列以eccv 2016 person re-identification為主題相關(guān)的筆記诽俯。
這是第一篇悟民。
主要思想之一(HVIL)
假設(shè)有一組probe set鼠哥,有一組gallery set净捅,HVIL(human verification incremental learning) 的主要做法就是瓮栗,每給出一張probe袍榆,用模型對gallery set里的圖片進(jìn)行rank,然后把rank list給user看溉痢,user從中找出true match(就是和probe屬于同一個(gè)人的照片)并且給出以下三個(gè)值中的一個(gè){true match, similar, dissimilar} ,true match 代表模型給出的top rank 和 probe是匹配的(屬于同一個(gè)人)僻造,similar 代表模型給出的top rank 和probe有點(diǎn)像逛拱,dissimilar代表一點(diǎn)也不像蚕脏。user給出這兩個(gè)反饋信息后公浪,model就進(jìn)行參數(shù)更新劳曹,并online地再次給出rank list,user再給出上述的兩個(gè)反饋信息蔬螟。如此往復(fù),直到user給出的第二個(gè)信息是true match 或者 循環(huán)的次數(shù)達(dá)到了預(yù)先設(shè)定的次數(shù)(這篇論文中設(shè)定3次)汽畴。對每個(gè)probe都進(jìn)行這樣的操作旧巾。這樣訓(xùn)練完以后再進(jìn)行testing。
這樣做有這樣幾個(gè)好處:
- 傳統(tǒng)的人工標(biāo)注忍些,需要user在看到一個(gè)probe后在所有g(shù)allery中尋找匹配的identity鲁猩,gallery分布比較隨機(jī),你說不定翻遍整個(gè)gallery set才找到true match罢坝。這個(gè)方法的話廓握,隨著模型的迭代修正,會(huì)把gallery set 按照rank score排列嘁酿,這樣越到后面隙券,就越可能在很靠前的位置找到true match,減輕勞動(dòng)力闹司。
- 除了像傳統(tǒng)標(biāo)注方法給出true match以外娱仔,還給出{true match, similar, dissimilar}三個(gè)值中的一個(gè),有利于模型的自我修正游桩。
- 現(xiàn)在reID存在的一個(gè)問題就是牲迫,訓(xùn)練數(shù)據(jù)少,但是待測試的數(shù)據(jù)太多借卧,在實(shí)際場景是更是如此盹憎,你想一個(gè)24小時(shí)工作的攝像頭一天能產(chǎn)生多少數(shù)據(jù)。铐刘。陪每。所以傳統(tǒng)的方法,即在訓(xùn)練數(shù)據(jù)上訓(xùn)練滨达,再把訓(xùn)練好的模型做testing奶稠,是unscalable的,但是這個(gè)方法捡遍,不需要傳統(tǒng)的預(yù)標(biāo)注的數(shù)據(jù)锌订,如果testing數(shù)據(jù)變多了,那么再在原來的基礎(chǔ)上user再繼續(xù)訓(xùn)練模型就好了画株。
具體做法
計(jì)算error
前面已經(jīng)說了辆飘,user給出兩個(gè)反饋信息啦辐,一個(gè)是true match ,另一個(gè)是{true match, similar, dissimilar}三個(gè)值中的一個(gè)蜈项,然后就要算模型的error了芹关,
1式中,下面這一項(xiàng)代表模型給出的rank scores紧卒,其中x^p是給定的probe的特征(可以是color LBP等)侥衬,x^g是gallery set 中的對給定probe的true match的特征。
2式中跑芳,I(·)是指示函數(shù)轴总,意思就是·如果成立,那函數(shù)值為1博个,·如果不成立怀樟,那函數(shù)值為0。1式等號右邊的意思就是把所有rank score高于true match的score的數(shù)量統(tǒng)計(jì)出來(理想狀況下盆佣,這些gallery的分?jǐn)?shù)不應(yīng)該高于true match)(注:后來想到往堡,最后對結(jié)果進(jìn)行評價(jià)的時(shí)候,有個(gè)前5hit 前10hit 前20hit之類的共耍,所以這里應(yīng)該是虑灰,如果正確答案在分?jǐn)?shù)top5 top10 top20的list內(nèi),就算true match)
3式中征堪,y就是{true match, similar, dissimilar}三個(gè)值中的一個(gè)瘩缆,如果y是true match或者 similar,loss function就是上面那個(gè)式子佃蚜,如果y是dissimilar庸娱,那就用下面那個(gè)式子。此外谐算,如果y是true match熟尉, 那么αi取1/i(比較陡峭),如果y是similar或者dissimilar洲脂,那么αi取1/(ng - 1)(比較平緩)斤儿,這樣做可以讓true match在rank list 中迅速上升,讓negatives緩慢下降恐锦。雖然我不懂為啥要這樣干往果,但是作者說這樣做的實(shí)際表現(xiàn)很好,姑且就信了吧一铅。
更新模型參數(shù)
根據(jù)user的反饋得到error 后陕贮,就要實(shí)時(shí)更新模型參數(shù)了
f(·)是負(fù)的Mahalanobis distance metric,這個(gè)函數(shù)值越大潘飘,表示probe和gallery越接近肮之。越小表示越遠(yuǎn)掉缺,所以其實(shí)就是我上面說的rank score。
5式是object function戈擒,其中ΔF是Bregman divergence measure眶明,你也可以看做是一種距離的度量。你可以把5式理解為筐高,當(dāng)很多次循環(huán)后搜囱,如果M和Mt-1已經(jīng)近似相同了(收斂),那么訓(xùn)練目標(biāo)也就達(dá)到了凯傲。其實(shí)5式后面那個(gè)我也不是很理解犬辰,這里把原文摘錄如下,有誰理解的可以交流一下:
(注:我已經(jīng)搞懂上面的意思了冰单,我上面說的那段話有錯(cuò)誤,5式才是我們的目標(biāo)函數(shù)灸促,5式的目的是為了平穩(wěn)的更新M诫欠,5式左側(cè)的三角形式子是Bregman divergence measure,你也可以看做是一種距離的度量浴栽,右式是loss荒叼,左側(cè)式子的意思是為了讓M的更新速度小一點(diǎn),右式的意思是要讓loss向著變小的方向移動(dòng)典鸡,兩者相互調(diào)節(jié))
但是按照3式中的loss function被廓,這個(gè)Mt是離散的,所以不可微萝玷,作者做了一些處理嫁乘,使它變得可微(用一個(gè)連續(xù)的上界來估計(jì)loss),如6式:
其中:
上面那部分我沒有細(xì)讀球碉,所以直接摘錄了蜓斧。
后面作者為了加速整個(gè)參數(shù)更新,又對6式做了處理睁冬,這里不摘錄了挎春。
整個(gè)流程總結(jié)如下
主要思想之二 (RMEL)
上面的訓(xùn)練過程中產(chǎn)生了一系列副產(chǎn)品,就是每次得到的模型Mt(隨著t變化豆拨,有好幾個(gè)從弱到強(qiáng)的模型)直奋。給出一個(gè)probe-gallery pair ,作者把這幾個(gè)模型給出的結(jié)果ensemble起來施禾,作為probe和gallery之間的距離:
最終的ranking function設(shè)計(jì)如下:
所以還要學(xué)習(xí)W這個(gè)參數(shù)矩陣脚线。
學(xué)習(xí)的目標(biāo)函數(shù)如下:
F星號是理想的W,F(xiàn)ens是現(xiàn)有的W拾积,學(xué)習(xí)的目標(biāo)就是最小化兩者的差距(理想的W殉挽,在i和j相同時(shí)應(yīng)該讓fens為0丰涉,在i和j不同時(shí)讓f^ens為-1,所以這個(gè)F星號是可以得到的斯碌。)一死。13式右邊最后那一項(xiàng)也是一個(gè)正則項(xiàng)這個(gè)R(w)可以取很多類型,比如L1 L2 或者matrix trace傻唾,作者在這里取成這樣:
這么做的目的是為了重重懲罰(severe penalties)下面這種情況:這個(gè)pair是match的投慈,但是分?jǐn)?shù)很低。f值是負(fù)的(從12式可以看出)冠骄,如果分?jǐn)?shù)很低伪煤,那么f值在取相反數(shù),那這個(gè)R值就很大凛辣,懲罰就大抱既。
13式是個(gè)凸函數(shù),可以比較輕易的做優(yōu)化扁誓。這一步里訓(xùn)練數(shù)據(jù)用的是之前人工參與的時(shí)候的true pairs防泵。
結(jié)合上述兩個(gè)思想就能把模型訓(xùn)練出來。
實(shí)驗(yàn)結(jié)果
以上蝗敢。