感知雜湊演算法

來源:互聯網
上載者:User

標籤:style   blog   http   使用   strong   ar   for   資料   art   

  ”感知雜湊演算法”(Perceptual hash algorithm),它的作用是對每張圖片產生一個”指紋”(fingerprint)字串,然後比較不同圖片的指紋。結果越接近,就說明圖片越相似。

優點:簡單快速,不受圖片大小縮放的影響。

缺點:圖片的內容不能更改。

主要用途:根據縮圖找出原圖,搜尋引擎中的相似圖片搜尋。

Hash演算法原理

第一步,縮小尺寸。

將圖片縮小到8×8的尺寸,總共64個像素。這一步的作用是去除圖片的細節,只保留結構、明暗等基本資料,摒棄不同尺寸、比例帶來的圖片差異。

第二步,簡化色彩。

將縮小後的圖片,轉為64級灰階。也就是說,所有像素點總共只有64種顏色。

第三步,計算平均值。

計算所有64個像素的灰階平均值。

第四步,比較像素的灰階。

將每個像素的灰階,與平均值進行比較。大於或等於平均值,記為1;小於平均值,記為0。

第五步,計算雜湊值。

將上一步的比較結果,組合在一起,就構成了一個64位的整數,這就是這張圖片的指紋。組合的次序並不重要,只要保證所有圖片都採用同樣次序就行了。

得到指紋以後,就可以對比不同的圖片,看看64位中有多少位是不一樣的。在理論上,這等同於計算“漢明距離”(Hamming distance)。如果不相同的資料位元不超過5,就說明兩張圖片很相似;如果大於10,就說明這是兩張不同的圖片。

PHash演算法原理:

均值雜湊雖然簡單,但受均值的影響非常大。例如對映像進行色差補正坡形或長條圖均衡就會影響均值,從而影響最終的hash值。存在一個更健壯的演算法叫pHash。它將均值的方法發揮到極致。使用離散餘弦變換(DCT)來擷取圖片的低頻成分。

提取過程如下:

(1)縮小尺寸:pHash以小圖片開始,但圖片大於8*8,32*32是最好的。這樣做的目的是簡化了DCT的計算,而不是減小頻率。

(2)簡化色彩:將圖片轉化成灰階映像,進一步簡化計算量。

(3)計算DCT:計算圖片的DCT變換,得到32*32的DCT係數矩陣。

(4)縮小DCT:雖然DCT的結果是32*32大小的矩陣,但我們只要保留左上方的8*8的矩陣,這部分呈現了圖片中的最低頻率。

(5)計算平均值:如同均值雜湊一樣,計算DCT的均值。

(6)計算hash值:這是最主要的一步,根據8*8的DCT矩陣,設定0或1的64位的hash值,大於等於DCT均值的設為”1”,小於DCT均值的設為“0”。組合在一起,就構成了一個64位的整數,這就是這張圖片的指紋。

       結果並不能告訴我們真實性的低頻率,只能粗略地告訴我們相對於平均值頻率的相對比例。只要圖片的整體結構保持不變,hash結果值就不變。能夠避免色差補正坡形或顏色長條圖被調整帶來的影響。

        與均值雜湊一樣,pHash同樣可以用漢明距離來進行比較。(只需要比較每一位對應的位置並算計不同的位的個數)

pHash演算法和SIFT演算法可以找到變形不超過25%的圖片。

相關的博文有:

基於雜湊演算法的視覺目標跟蹤

看起來像它——Image Search其實也不難

相似圖片搜尋原理 

TinEye圖片檢索網站

Google圖片搜尋引擎

百度基於深度學習的百度識圖

感知雜湊演算法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.