基於哈希的圖像檢索技術

爲何在圖像檢索裏面使用到哈希(hashing)算法?

基於哈希算法的圖像檢索方法將圖片的高維內容特徵映射到漢明空間(二值空間)中,生成一個低維的哈希序列來表示一幅圖片,下降了圖像檢索系統對計算機內存空間的要求,提升了檢索速度,能更好的適應海量圖片檢索的要求。html

最近或者最近鄰問題在大規模的數據查詢中用得很是多。可是他們都會遇到一個問題,就是"維數災難"。也就是說當數據的維數太大的時候,以前的那些索引方法(如KD樹)就不能起到做用,這時候新的方法就頗有必要,哈希算法知足了這個要求。算法

 

類似性搜索算法的評價標準

爲了解決類似性搜索問題,人們提出了不少類似性搜索的算法實現,而爲了衡量這些算法的優劣,須要引入類似性搜索算法的評價機制。通常來說,一個類似性搜索算法能夠從如下幾個方面進行評價數據庫

這個性質描述的是類似性搜索算法的查詢質量。對於給定的查詢請求,算法必須返回符合條件的查詢結果,並且查詢結果最好能和經過線性查找獲得的結果一致。文本檢索領域的兩個著名指標能夠用在此處來衡量查詢質量,它們分別是召回率(recall)和精度(precision)。網絡

召回率和精度的定義以下:函數

 

CBIR中的Hashing算法有哪些?

要解決這個問題,首先咱們得用數學的方法將這個問題描述一下:性能

咱們有一個包含個點的集合,,這樣矩陣的形式就是。咱們的目標是尋找到一個二元編碼的集合,c表示編碼的長度。對於每個位咱們使用,是超平面的係數。學習

 

從訓練數據是否有Label(標記)上來分,CBIR中的hashing算法分爲三類,監督學習,無監督學習,半監督學習。優化

 

監督學習

Semantic hashing (RBMs)

受限玻爾茲曼機是一個深度學習模型,每一層都表示一個受限玻爾茲曼機,最底層受限玻爾茲曼機的輸入是原始高維數據,經過該受限玻爾茲曼機計算獲得一箇中間值,而後將這個中間值做爲下一個受限玻爾茲曼機的輸入,繼續計算獲得新的中間值,重複此過程,直到從頂層的受限玻爾茲曼機計算獲得最終的編碼結果。這個過程被稱做預訓練。而圖的右半部分表示將這個深度學習模型展開以後,經過調整這個深度學習模型中每層之間的參數和權重,進而獲得一個深度自動編碼機的過程。這個過程被稱做微調。編碼

RBMs包括兩個重要的步驟:無監督的訓練和監督的調整。無監督訓練階段,利用spa

貪心訓練算法逐步逐層的計算輸入與輸出之間的關係。經過對比度使得每一層的參數收斂。每一層的參數都做爲計算下一層參數的輸入。在調整階段,加標籤的數據被用來調整無監督訓練階段學習到的神經網絡。

缺點:

實驗證實,受限玻爾茲曼機索引算法能夠獲得較好的索引結果。但因爲其自身模型的複雜性,致使其運行效率低下,須要花費較長時間來獲得訓練結果。

 

非監督學習

位置敏感哈希(Locality Sensitive Hashing LSH,1999)

LSH是最近比較流行的一種類似性搜索算法,它的基本思想是經過k個串聯的具備位置敏感性的哈希函數將原始的數據空間映射到二維的數據空間,而後在查詢時計算查詢點的K維哈希值,根據該哈希值取得候選數據集,最後經過計算候選數據集中每一個點與查詢點的距離獲得符合查詢條件的結果。LSH具備較好的時間效率,並且在高維數據空間依然可以保持良好的性能,所以被普遍應用在不少領域。

 

這個方法實際上是最簡單的一種hash方法,只要產生k個哈希函數h(x),對於每個數據點x,進行計算,就能獲得hash值。

 

缺點:

位置敏感哈希索引算法極大地提升了高維數據索引的效率,解決了樹形結構索引算法沒法克服的效率問題,可是因爲位置敏感哈希索引算法中採用了隨機映射算法,使得索引結果不可控,在實際應用中結果不穩定,而且實驗代表,隨着索引編碼位數的上升,索引結果提高緩慢。與其餘語義哈希索引算法相比,位置

敏感哈希索引算法的索引結果準確率較低。

 

譜哈希(NIPS 08)

方法:

譜哈希索引算法根據索引編碼應該知足的條件,對原始高維數據集進行譜分析,再經過放鬆限制條件,將該問題轉換成拉普拉斯特徵圖的降維問題從而求解。而後譜哈希索引算法引入了特徵函數的概念來處理訓練集外數據的問題。整個算法流程以下:首先利用主成分分析法對原始高維數據進行降維處理,而後計算獲得全部的解析特徵函數(analytical eigenfunction), 最後將這些解析特徵函數二值化從而獲得最終的二元索引編碼。

可是因爲譜哈希索引算法在其索引編碼過程當中,直接應用了主成分分析法來

對高維特徵進行降維處理,從而使得原始特徵的每一維(例如視覺單詞)都參與

到後續編碼過程當中,可是通常而言,給定一幅圖像,其所蘊含的語義只需有限視

覺單詞就能表達,而不用全部視覺單詞來參與表達。因爲沒有處理冗餘高維

特徵的問題,譜哈希索引算法的結果受到必定影響。而且譜哈希索引算法假設了

原始高維數據均勻分佈,從而選擇了理論最優值0做爲閾值。可是在實際應用中

數據並不能老是知足均勻分佈這個條件,所以選擇0做爲閾值不適合全部的數據

集。

譜哈希的目標函數以下:

 

 

其中是相關性矩陣,;保證了索引編碼是二進制結果,保證了全部編碼結果的每位爲-1或1的機率是相等的,即爲50%;保證了索引編碼結果每一位是互不相關的。

爲了求解該公式, 譜哈希引入拉普拉斯矩陣L而且鬆弛的二元限制條件,因而公式求解轉換成求解的特徵值問題,即拉普拉斯特徵圖的降維。最後公式的解就是D – W的前k個最小特徵值(除0之外)對應的特徵向量。其中D是一個的對角矩陣,而且。爲了解決訓練集外圖像索引編碼的問題,可將特徵向量轉化爲特徵方程,經過有權重的拉普拉斯—貝特拉米算子的特徵方程來實現。所求得的特徵方程和特徵解以下:

 

 

ITQ算法(2013)

這個方法是同窗極力向我推薦的一個方法,主要緣由就是方法簡單,好理解,同時效果又很好。

該算法分爲兩部分,第一部分是PCA,第二部分是旋轉迭代。

第一步是PCA:

根據半監督學習,咱們的目標是使得每一位比特的方差最大,而且各自無關。這樣咱們就能夠寫出目標函數:

 

 

下面就是簡單的將sgn去掉,也就是{-1,1}空間轉化爲連續空間,就能獲得

 

 

是對 的鬆弛,咱們能夠理解爲超平面互相垂直。同時,這跟PCA的目標函數相同,因此,可使用PCA的方法。

第二步:迭代量化

假設是映射空間的一個向量,那麼sgn(v)就是超方體(hypercube)的最近的頂點,那麼損失函數越小,結果就越能保留數據的位置結構(locality structure)。回到第一步咱們會發現,若是W是最優解,那麼也是最優解,前提是R是一個的正交矩陣。所以,咱們能夠對映射數據進行正交變換,從而使得

這樣,這個方程就變爲經過旋轉V來使得損失函數最小,解決這個問題的方法是一種相似於K均值的迭代量化方法。

固定R更新B。展開一下上式,就會變爲如下形式:

 

因此,咱們能夠獲得

其中。這樣就可以獲得。

固定B更新R。對於固定了B來求解R,這就是一個正交P問題(Orthogonal Procrustes problem),直接經過一下方式來求得:首先用SVD分解的矩陣,,使得而後獲得。

做者使用了50次的迭代,就能收斂了。

這樣,這個簡單的方法就結束了。

 

半監督學習

Semi-Supervised Hashing for Scalable Image Retrieval(2010 CVPR)

方法:

 

利用半監督哈希算法來進行圖像檢索是王駿等人2010年在CVPR上提出的,前面介紹的監督哈希算法和無監督哈希算法都有其明顯的優缺點。無監督哈希算法

的速度相對於監督哈希算法來講要快,且不須要圖庫中的圖片有任何標籤,徹底利用圖片的內容特徵來學習哈希函數,但這樣也會失去圖片標籤帶有的豐富的語義信息。監督哈希算法要求訓練圖片帶有標籤,利用了圖片標籤帶有的豐富語義信息來學習哈希函數,但監督哈希算法的速度較慢。王駿提出一種半監督哈希算法,充分融合了無監督哈希和監督哈希算法的優勢。

巨量的圖片中有一小部分是帶有標籤的,剩餘部分不帶有標籤,這是與現實狀況相符的。半監督哈希要求訓練庫中有一小部分圖片帶有標籤,這些標籤信息提供監督信息。圖片的內容特徵提供非監督信息。結合監督信息和非監督信息來學習哈希函數。這一思想與現實狀況徹底相符。

半監督哈希的算法過程以下:

定義以下目標函數:

 

 

上式中,表示圖片的哈希碼序列的第k個,值爲1或-1。爲所要學習的向量。由於X是以0對稱的,因此。表示圖片i和j的標籤同樣或者說圖片i和圖片j類似, 表示圖片i和圖片j的標籤不一樣或者說圖片i和圖片j不類似。

咱們可使用矩陣形式來表示上述式子,首先定義一個矩陣和帶有成對標籤信息的,咱們對S進行以下定義:

 

最大化上述目標函數的意義是使得類似的圖片或者標籤相同的圖片的哈希碼的對應位均爲1或-1,而標籤不相同的圖片的哈希碼的對應位一個爲1,令一個爲-1,也就是說能保證類似圖片的哈希碼理論上同樣,而不類似的圖片哈希碼相差大。目標函數寫成矩陣形式以下:

另外假設,將XL映射到K位比特的哈希代碼,這樣目標函數J(W)就能夠被表示成這樣:

 

用sgn()函數取代一下就可以獲得

 

函數的意思是對矩陣裏面每一個元素使用sign函數

上式中只有監督信息成分,在實際的使用過程之中,尤爲是當有標籤的數量相對於總體數據庫比較小的時候()有過擬合的狀況(overfitting),因此就須要加上"規則(regularization)"。根據譜哈希,但願產生的哈希編碼可以獨立,而且經過平衡切割數據,使得每一位多包含的信息量最大。可以知足平衡條件的 會將X分紅相等的大小的兩部分。

鬆弛目標函數:

上面式子提出的問題自己是一個NP問題,爲了解決這個問題,咱們要使用鬆弛技術。首先咱們使用"signed magnitude"技術,這個技術在譜哈希中也是用到了,就是講{-1,1}的哈希空間直接變換到實數R空間,這樣目標函數就變爲了:

 

以後鬆弛平衡分割,做者推導出這個式子,意味着平衡分割跟使得k位的方差最大是等價的:

 

以後目標函數又能夠改寫成爲

 

令,這樣咱們就能獲得

 

而正交的關係能夠經過來鬆弛。這樣一個最優化爲題就被成功地轉化爲一個求解矩陣M的特徵的問題:

 

 

這裏是矩陣M最大的特徵值,而是相應的特徵向量。這樣咱們就成功地求取了W。

自己能達到這樣已經不錯了,可是做者在這個方法上面還更近了一步,做者認爲還能夠鬆弛正交限制。由於正交限制的做用是使得各個比特位不相關,可是這會致使問題。在大多數實際的數據庫中,大方差只出如今不多的幾個方向上,正交限制強迫咱們去選擇方差小的比特位,這樣會致使低位的比特的質量不高,不可以包含足夠的信息。這樣,做者爲了替代原來的hard constrains,而使用了懲罰項,這樣的話目標函數就能夠改寫爲:

 

 

這樣就能夠同歸對W進行微分,來求解了:

 

而後拆開,就可以獲得:

 

假如是正定的,那麼這個方程將很好解,正定的條件也很簡單,就是

咱們假設,若是Q是正定的,那麼Q能夠改寫爲(Cholesky decomposition)。而,咱們就可以獲得。是矩陣M的最大的k個特徵向量。

 

沒想到用Word發博客這麼渣渣,word版能夠到網盤下載

 

本文轉自:http://www.cnblogs.com/tendence/p/3798952.html

相關文章
相關標籤/搜索