1. 程式人生 > >【影象檢索--感知雜湊演算法】

【影象檢索--感知雜湊演算法】

瞭解決上面方法對儲存空間和檢索時間的不切實際的要求,近年來近似最近鄰搜尋(approximate nearest neighbor search)技術發展迅猛,因為其對空間和時間的需求大幅降低,而且能夠得到不錯的檢索結果,因此成為了一種實用的替代方案。在這其中,雜湊(hashing)作為一種代表性方法,近年來受到了廣泛的關注。本文首先對雜湊演算法的發展歷程進行簡單的介紹,然後按照相關性,對近年來的一些主要的深度雜湊演算法進行介紹,最後對現有深度雜湊方法進行簡單的總結。

平均雜湊演算法過於嚴格,不夠精確,更適合搜尋縮圖,為了獲得更精確的結果可以選擇感知雜湊演算法,它採用的是DCT(離散餘弦變換)來降低頻率的方法
步驟:
1.縮小圖片:32 * 32是一個較好的大小,這樣方便DCT計算
2.轉化為灰度圖:把縮放後的圖片轉化為256階的灰度圖。(具體演算法見平均雜湊演算法步驟)
3.計算DCT:DCT把圖片分離成分率的集合
4.縮小DCT:DCT是32*32,保留左上角的8*8,這些代表的圖片的最低頻率
5.計算平均值:計算縮小DCT後的所有畫素點的平均值。
6.進一步減小DCT:大於平均值記錄為1,反之記錄為0.
7.得到資訊指紋:組合64個資訊位,順序隨意保持一致性即可。
8.對比指紋:計算兩幅圖片的指紋,計算漢明距離(從一個指紋到另一個指紋需要變幾次),漢明距離越大則說明圖片越不一致,反之,漢明距離越小則說明圖片越相似,當距離為0時,說明完全相同。

演算法流程:https://blog.csdn.net/llp1992/article/details/44177433

https://blog.csdn.net/huixingshao/article/details/43487267

https://blog.csdn.net/akadiao/article/details/79779634