1. 程式人生 > >雜湊學習演算法之二:基於hash的ANN框架

雜湊學習演算法之二:基於hash的ANN框架

在上一節瞭解了ANN的背景,簡單介紹了hash的演算法,那基於hash的ANN框架是怎樣的呢?

框架圖

在這裡插入圖片描述

框架說明

基於hash的ANN主要有四個步驟,包括特徵提取、hash編碼(學習+編碼)、漢明距離排序、重排序。

1、特徵提取
有查詢影象和影象資料庫,需要對這兩類分別處理,對查詢影象和資料庫中的影象逐一提取有用的特徵,把檔名和特徵一一對應的新增到特徵庫中。

2、hash編碼(學習+編碼)
特徵提取後的維數有很多,需要對其進行壓縮再匹配,這是hash編碼的意義。hash編碼自然要使用hash函式,在大規模高維資料下,hash函式使用hash學習的方法獲得,則該部分內容分為hash學習和hash編碼階段。Hash學習階段,可將特徵庫分為訓練集和測試集,評估測試hash函式。正式的編碼階段,將特徵庫的每個特徵點代入到hash函式中,得到hash編碼。

3、漢明距離排序
在獲得hash編碼之後,經過漢明距離排序,就可以完成粗查詢,得到粗查詢之後的候選列表。對查詢影象的hash碼和編碼之後的特徵庫hash碼比對距離(這裡使用漢明距離),按照從小到大的方式相似性排序,可以獲得指定個數的候選點或者距離在某一範圍內的n個候選點。

4、重排序
粗查詢之後獲得的n個候選點,在原始特徵空間上,根據相似性重排序(這裡採用歐式距離),返回最後的候選列表。

注意

以上步驟中,雜湊學習演算法在第二步雜湊編碼中應用,雜湊過程可視為一個篩選樣本和粗查詢的過程,則評價雜湊演算法的好壞限於該過程,不包括重排序階段。
ANN中是包括這一步的。

參考連結:

https://www.jianshu.com/p/82a14f1aa453