二進制特征的檢索方法和系統的制作方法
【技術領域】
[0001]本發明涉及數據檢索技術領域,特別是涉及一種二進制特征的檢索方法,以及一種二進制特征的檢索系統。
【背景技術】
[0002]二進制特征是圖像、音頻、文本等多媒體內容分析和其他數據分析常用的特征。比如圖像領域中的BRIEF特征、ORB特征、BRISK特征、FREAK特征等,文本分類中的simhash特征等。
[0003]如何實現近鄰搜索,S卩如何在一個二進制特征集合中快速查找某特征的近似最近鄰和R近鄰成為一個非常關鍵的問題。
[0004]目前常用的算法有:窮舉式搜索、基于hash函數的搜索、基于層狀樹結構的搜索。
[0005]雖然二進制特征的數據結構較為簡單,但是對于海量數據產生的二進制特征采用窮舉式搜索的速度還是很慢,無法滿足大數據下實時搜索的需求。
[0006]基于hash函數的搜索通過對二進制特征中的比特位進行抽樣,進行首次比較過濾,然后再用剩余的比特位進行校驗。該方法雖然比較簡單,但是hash函數的選擇及函數的個數都難以確定。
[0007]基于層狀樹的結構的搜索需要對二進制特征數據集上進行聚類,形成K個類別,每個類別中的特征相互之間的距離較小,不同類別的特征之間距離較大;之后再從K個類別中隨機選擇I個特征作為該類別的代表,將每個類別的特征再進行聚類,以此類推,構建一個樹結構。該方法需獲得訓練集,檢索精度與訓練集有關,因此檢索精度難以保證。
【發明內容】
[0008]基于此,本發明提供一種二進制特征的檢索方法及系統,能有效地減少檢索時間,提聞檢索精度。
[0009]一種二進制特征的檢索方法,包括如下步驟:
[0010]獲取待查詢二進制特征,計算所述待查詢特征的跳變次數;其中,所述跳變次數為所述二進制特征中連續的比特值變化次數;
[0011]根據所述待查詢二進制特征的跳變次數及預設的二進制特征集中各個二進制特征的跳變次數,獲得比較集合;
[0012]將所述待查詢二進制特征與所述比較集合中的二進制特征進行窮舉比較,獲得檢索結果。
[0013]一種二進制特征的檢索系統,包括:
[0014]計算模塊,用于獲取待查詢二進制特征,計算所述待查詢特征的跳變次數;其中,所述跳變次數為所述二進制特征中連續的比特值變化次數;
[0015]第一獲取模塊,用于根據所述待查詢二進制特征的跳變次數及預設的二進制特征集中各個二進制特征的跳變次數,獲得比較集合;
[0016]比較模塊,用于將所述待查詢二進制特征與所述比較集合中的二進制特征進行窮舉比較,獲得檢索結果。
[0017]上述二進制特征的檢索方法及系統,針對二進制特征的特點,記錄二進制特征中連續的比特值變化次數作為跳變次數,根據二進制特征集中各個特征的跳變次數,當獲取至IJ待查詢二進制特征時,根據兩者的跳變次數,獲得比較集合;由于比較集合中得到了與待查詢二進制特征跳變次數較為接近的特征,窮舉比較的數量較少,能更加快速地獲得檢索結果。
【附圖說明】
[0018]圖1為本發明二進制特征的檢索方法在一實施例中的流程示意圖。
[0019]圖2為圖1中索引樹的結構示意圖。
[0020]圖3為本發明二進制特征的檢索系統在一實施例中的結構示意圖。
[0021]圖4為本發明實施例的一個計算機系統1000的模塊圖。
【具體實施方式】
[0022]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0023]如圖1所示,是本發明一種二進制特征的檢索方法在一實施例中的流程示意圖,包括如下步驟:
[0024]S11、獲取待查詢二進制特征,計算所述待查詢特征的跳變次數;其中,所述跳變次數為所述二進制特征中連續的比特值變化次數;
[0025]二進制數據是指用O和I兩個數碼來表示的數;二進制特征的跳變次數,即二進制特征中連續的比特值變化次數,如二進制特征1011,該特征的第一位和第二位之間發生了1->0的跳變,第二位和第三位之間發生了 0->1的跳變,第三位和第四位都是I沒有發生跳變,第四位和第一位都是I也沒有發生跳變,因此該特征的跳變次數T為2。
[0026]S12、根據所述待查詢二進制特征的跳變次數及預設的二進制特征集中各個二進制特征的跳變次數,獲得比較集合;
[0027]二進制特征集是指搜索庫中已存儲的所有二進制特征的集合;兩個二進制特征的對應比特取值不同的比特數稱為這兩個特征的海明距離;比如,二進制特征10101和二進制特征00110從第一位開始依次有第一位、第四、第五位不同,則海明距離為3 ;因此,海明距離可表征兩個特征的相似性,海明距離越小,兩個特征的相似度也就越大;對比海明距離與本實施例中的二進制特征的跳變次數,可知,若兩個特征的海明距離越小,兩者的跳變次數也更加接近。因此采用跳變次數進行檢索查詢,能獲得精確的查詢結果;
[0028]本步驟根據待查詢二進制特征的跳變次數,以及二進制特征集中各個二進制特征的跳變次數,可從預設的二進制特征集合中篩選出跳變次數與待查詢二進制特征的跳變次數較為接近的部分二進制特征,得到比較集合。
[0029]S13、將所述待查詢二進制特征與所述比較集合中的二進制特征進行窮舉比較,獲得檢索結果。
[0030]在本步驟,可將待查詢二進制特征,與獲得的比較集合中的各個二進制特征進行窮舉比較,由于比較集合中得到了與待查詢二進制特征跳變次數較為接近的特征,窮舉比較的數量較少,能更加快速地獲得檢索結果。
[0031]在一較佳實施例中,為了更快地獲得比較集合,還可包括如下步驟:
[0032]獲取所述二進制特征集中二進制特征的維度值;
[0033]在預設的索引樹中,對所述二進制特征集中每個二進制特征,查找跳變次數與維度區間相匹配的路徑,將所述二進制特征存儲在所述相匹配的路徑的葉子節點中,其中,所述索引樹包括多條根據所述維度值創建的不同維度區間的路徑;
[0034]具體的,所述二進制特征的維度,即二進制特征的比特位數,如二進制特征1011,其維度為4 ;
[0035]本實施例該二進制特征集的索引為樹形結構,其節點層次和節點個數可根據需求而預設;比如一棵樹,共P層,第一層為根節點,其他各層為子節點,一棵樹的終端節點為沒有子節點的節點,即為葉子節點;
[0036]本實施例中的索引樹中,節點層次及各層節點個數不限,節點存儲維度區間,葉子節點則存儲二進制特征,對二進制特征集中的每個二進制特征,在所述索引樹中查找跳變次數與所述維度區間相匹配的路徑,再將所述二進制特征存儲在所述路徑中的葉子節點中,可完成整棵索引樹的構建過程;其中,每個葉子節點存儲的多個二進制特征即為一個比較集合。
[0037]本實施例的索引樹的結構,可劃分三層,第一層為根節點,第二層是按照二進制特征整體跳變次數的一種劃分,可將二進制特征集的最大維度區間[0,D]拆分成多個小的維度區間,記錄在第二層節點中;具體的拆分規則,可等分拆分,也可以不等分拆分;
[0038]若索引樹預設分成三層,即是將二進制特征集中的各個二進制特征根據跳變次數分成多份,第二層節點按照二進制特征整體跳變次數進行劃分,第三層葉子節點存儲跳變次數符合劃分后的維度區間的二進制特征,每一份集合中的二進制特征跳變次數比較接近,相似度較高,當輸入待查詢二進制特征時,可根據待查詢二進制特征的跳變次數快速地找到與其相似度較高的檢索結果。
[0039]對應地,所述根據所述待查詢二進制特征的跳變次數及所述二進制特征集中各個二進制特征的跳變次數,獲得比較集合的步驟包括:
[0040]在所述索引樹中查找所述待查詢二進制特征的跳變次數與所述維度區間相匹配的路徑;
[0041]讀取所述相匹配的路徑的葉子節點中存儲二進制特征,得到所述比較集合;
[0042]與所述索引樹相對應,在索引樹的每一層節點中,根據待查詢二進制特征的跳變次數,與索引樹各節點存儲的維度區間進行匹配,得到相匹配的路徑;對該路徑中的葉子節點,由于葉子節點也存儲了符合該路徑的二進制特征,即可得到所述的比較集合,因此再將待查詢特征與所述路徑中葉子節點存儲的二進制特征進行窮舉比較,能夠快速地獲得檢索結果。
[0043]為了進一步提高檢索速度和檢索精度,具體的,還可包括步驟:
[0044]根據所述二進制特征集中二進制特征的維度值,得到二進制特征集的最大維度區間;
[0045]在所述索引樹第二層中各個預設節點存儲所述最大維度區間拆分后的各個維度區間,從第三層起,將所述二進制特征集中的最大維度值按預設抽取規則逐層進行縮小,其中,同一個父節點的各個子節點存儲的維度區間,是將維度區間[0,K]拆分后得到的子區間,K為M和N中的較小值,M為最大維度值縮小后的值,N為所述子節點的父節點存儲的維度區間的右側端點值;
[0046]所述查找跳變次數與所述維度區間相匹配的路徑