图像检索中为什么仍用BOW和LSH
?去年年底的時(shí)候在一篇博客中,用ANN的框架解釋了BOW模型[1],并與LSH[2]等哈希方法做了比較,當(dāng)時(shí)得出了結(jié)論,BOW就是一種經(jīng)過(guò)學(xué)習(xí)的Hash函數(shù)。去年再早些時(shí)候,又簡(jiǎn)單介紹過(guò)LLC[3]等稀疏的表示模型,當(dāng)時(shí)的相關(guān)論文幾乎一致地得出結(jié)論,這些稀疏表示的方法在圖像識(shí)別方面的性能一致地好于BOW的效果。后來(lái)我就逐漸產(chǎn)生兩個(gè)疑問(wèn):
1)BOW在檢索時(shí)好于LSH,那么為什么不在任何時(shí)候都用BOW代替LSH呢?
2)既然ScSPM,LLC等新提出的方法一致地好于BOW,那能否直接用這些稀疏模型代替BOW來(lái)表示圖像的特征?
? ? ? 粗略想了一下,心中逐漸對(duì)這兩個(gè)問(wèn)題有了答案。這篇博文我就試圖在檢索問(wèn)題上,談一談Bag-of-words模型與LSH存在的必要性。
一、回顧LSH ? ? ?
?LSH方法本身已經(jīng)在很多文章中有過(guò)介紹,大家可以參考這里和這里。其主要思想就是在特征空間中對(duì)所有點(diǎn)進(jìn)行多次隨機(jī)投影(相當(dāng)于對(duì)特征空間的隨機(jī)劃分),越相近的點(diǎn),隨機(jī)投影后的值就越有可能相同。通常投影后的值是個(gè)binary code(0或者1),那么點(diǎn)xi經(jīng)過(guò)N次隨機(jī)投影后就可以得到一個(gè)N維的二值向量qi,qi就是xi經(jīng)過(guò)LSH編碼后的值。
問(wèn)題是LSH是一種隨機(jī)投影(見(jiàn)圖1),上篇博客中也提到這樣隨機(jī)其實(shí)沒(méi)有充分利用到樣本的實(shí)際分布信息,因此N需要取一個(gè)十分大的數(shù)才能取得好的效果。因此,[2]中作者理所當(dāng)然地就想到對(duì)LSH的投影函數(shù)進(jìn)行學(xué)習(xí)(用BoostSSC和RBM來(lái)做學(xué)習(xí)),效果可以見(jiàn)圖3。經(jīng)過(guò)學(xué)習(xí)的LSH就可以通過(guò)更少的投影函數(shù)取得更好的區(qū)分性。這就和BOW的作用有點(diǎn)像了(都是通過(guò)學(xué)習(xí)對(duì)原始的特征空間進(jìn)行劃分),只不過(guò)BOW對(duì)特征空間的劃分是非線性的(見(jiàn)圖2),而LSH則是線性的。
圖1
圖2
圖3
二、LSH VS BOW:檢索的時(shí)候?qū)κ裁刺卣髯鼍幋a?
(?以下對(duì)LSH的介紹將不區(qū)分是否利用BoostSSC和RBM來(lái)做學(xué)習(xí))。LSH一般是對(duì)圖像的全局特征做LSH。比如圖像的GIST,HOG,HSV等全局的特征。可以說(shuō),LSH是將一個(gè)特征編碼成另外一個(gè)特征。這有一點(diǎn)降維的味道。經(jīng)過(guò)N次隨機(jī)投影后,特征被降維為一個(gè)長(zhǎng)度為N的二值特征了。
BOW一般是對(duì)圖像的局部特征做編碼,比如SIFT,MSER等。BOW是將一組特征(局部特征)編碼成一個(gè)特征(全局特征),帶有一種aggregation的性質(zhì)。這是它與LSH最大的不同之處。
三、LSH VS BOW:檢索和排序的過(guò)程有何不同?
先來(lái)說(shuō)說(shuō)LSH。假設(shè)兩個(gè)樣本x1和y1經(jīng)過(guò)LSH編碼后得到q1和q2,那么兩個(gè)樣本之間的相似度可以這么計(jì)算:
? ? (1)
這就是LSH編碼后兩個(gè)樣本之間的漢明距離。假設(shè)我們有一個(gè)dataset,把dataset里面的圖片記做di。有一個(gè)查詢(xún)圖片query,記做q。假設(shè)已經(jīng)對(duì)dataset和query的所有圖片經(jīng)過(guò)LSH編碼了,會(huì)有兩種方式進(jìn)行圖片檢索:
a) 建立一張哈希表,di編碼后的code做為哈希值(鍵值)。每個(gè)di都有唯一的一個(gè)鍵值。query編碼后,在這張哈希表上進(jìn)行查找,凡是與query不超過(guò)D個(gè)bits不同的codes,就認(rèn)為是與query近鄰的,也就把這些鍵值下的圖片檢索出來(lái)。這種做法十分快速(幾乎不用做任何計(jì)算),缺點(diǎn)在于Hash table將會(huì)非常大,大小是。
b) 如果N大于30(這時(shí)(a)中的hash table太大了),通常采用exhaustive search,即按照(1)式計(jì)算q到di的hamming距離,并做排序。因?yàn)槭莃inary code,所以速度會(huì)非常快(12M圖片不用1秒鐘就能得到結(jié)果)。
再來(lái)說(shuō)說(shuō)BOW如何做檢索(這個(gè)大家都很熟悉了)。假設(shè)已經(jīng)通過(guò)BOW得到了圖像的全局特征向量,通常通過(guò)計(jì)算兩個(gè)向量的直方圖距離確定兩個(gè)向量的相似度,然后進(jìn)行排序。因?yàn)锽OW特征是比較稀疏的,所以可以利用倒排索引提高檢索速度。
四、BOW能否代替LSH
BOW是從一組特征到一個(gè)特征之間的映射。你可能會(huì)說(shuō),當(dāng)“一組特征”就是一個(gè)特征(也就是全局特征)的時(shí)候,BOW不也能用來(lái)對(duì)全局特征做編碼么?這樣做是不好的,因?yàn)檫@時(shí)BOW并不和LSH等效。為什么呢?一幅圖像只能提取出一個(gè)GIST向量,經(jīng)過(guò)BOW編碼后,整個(gè)向量將會(huì)只有在1個(gè)bin上的取值為1,而在其他bin上的取值為0。于是乎,兩幅圖像之間的相似度要么為0,要么為1。想像在一個(gè)真實(shí)的圖像檢索系統(tǒng)中,dataset中的相似度要么是0要么是1,相似的圖片相似度都是1,被兩級(jí)化了,幾乎無(wú)法衡量相似的程度了。所以說(shuō)BOW還是比較適合和局部特征搭配起來(lái)用。其實(shí)LSH的索引a)方法也很類(lèi)似,Hash值(codes)一樣的圖像之間是比較不出相似程度的。確實(shí)也如此,但是LSH和BOW相比仍然有處不同,便是經(jīng)過(guò)LSH編碼后不會(huì)像BOW那樣極端(整個(gè)向量只有1個(gè)值為1,其它值為0)。所以通過(guò)1)式計(jì)算出的相似度依然能夠反映兩特征原始的相似度。所以在比較全局特征的時(shí)候,還是LSH比較好用些。
五、LSH能否代替BOW
BOW在處理局部特征的時(shí)候,相當(dāng)于兩幅圖像之間做點(diǎn)點(diǎn)匹配。如果把LSH編碼的所有可能級(jí)聯(lián)成一維向量的話,我覺(jué)得在一定程度上是起到了BOW相似的作用的。
六、LLC能否代替BOW
不完全可以吧。盡管在識(shí)別問(wèn)題上,LLC性能是比BOW好,但是由于HKM[4]和AKM[5]的提出,BOW的碼書(shū)可以訓(xùn)練到非常大(可以達(dá)到1000000維)。而LLC之類(lèi)的學(xué)習(xí)方法就沒(méi)那么幸運(yùn)了,說(shuō)到天上去也就幾萬(wàn)維吧。盡管相同維數(shù)下BOW性能不那么好,但是放到100萬(wàn)維上,優(yōu)勢(shì)就體現(xiàn)出來(lái)了。所以在檢索問(wèn)題上,BOW依然如此流行。
----------------------------?
參考文獻(xiàn):
[1]Video Google: A Text Retrieval Approach to Object Matching in Videos
[2]Small Codes and Large Image Databases for Recognition
[3]Locality-constrained Linear Coding for Image Classification
[4]Scalable Recognition with a Vocabulary Tree
[5]Object retrieval with large vocabularies and fast spatial matching
-----------------
jiang1st2010
轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/jwh_bupt/article/details/27713453
總結(jié)
以上是生活随笔為你收集整理的图像检索中为什么仍用BOW和LSH的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 局部敏感哈希Locality Sensi
- 下一篇: 图˙谱˙马尔可夫过程˙聚类结构----b