一種多索引磁盤(pán)哈希結(jié)構(gòu)的圖像檢索方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖像索引與檢索技術(shù)領(lǐng)域,具體涉及一種多索引磁盤(pán)哈希結(jié)構(gòu)的圖像 檢索方法。
【背景技術(shù)】
[0002] 近年來(lái)隨著"互聯(lián)網(wǎng)+"政策的推進(jìn),我國(guó)的互聯(lián)網(wǎng)技術(shù)、數(shù)字媒體技術(shù)、網(wǎng)絡(luò)傳輸 技術(shù)蓬勃發(fā)展。智能手機(jī)平板等終端設(shè)備的普及以及社交應(yīng)用、電子商務(wù)應(yīng)用的不斷發(fā)展, 使得圖像數(shù)據(jù)呈快速增長(zhǎng)趨勢(shì)。為了更好地利用這些圖像數(shù)據(jù),快速準(zhǔn)確的大規(guī)模圖像數(shù) 據(jù)檢索成為一個(gè)亟待解決的重要問(wèn)題。傳統(tǒng)基于文本的圖像檢索依賴于圖像名稱或者注釋 等帶有較強(qiáng)主觀性的文本信息,往往不能達(dá)到預(yù)期的檢索效果?;趦?nèi)容的圖像檢索采用 圖像的顏色、紋理或形狀等特征進(jìn)行檢索,能夠克服上述局限性,受到學(xué)術(shù)界和工業(yè)界的重 視。
[0003] 基于內(nèi)容的圖像檢索可以分為特征提取和特征匹配兩個(gè)過(guò)程:特征提取將圖像像 素壓縮表示為高維特征向量,特征匹配則從大規(guī)模高維特征中找到查詢特征的近鄰數(shù)據(jù) (nearest neighbors)。目前高維特征近鄰檢索方法主要分為基于樹(shù)形結(jié)構(gòu)的方法和基于 哈希映射的方法。近年來(lái)基于哈希映射的索引及檢索方法由于在實(shí)際應(yīng)用中的優(yōu)秀表現(xiàn), 獲得了廣泛關(guān)注。
[0004] 基于哈希映射的方法原理是將近鄰數(shù)據(jù)映射到同一個(gè)哈希桶,利用哈希沖突過(guò)濾 多數(shù)非近鄰數(shù)據(jù)從而提高檢索效率。通過(guò)設(shè)計(jì)合理的哈希映射函數(shù),基于哈希映射的索引 結(jié)構(gòu)能實(shí)現(xiàn)次線性時(shí)間復(fù)雜度的檢索效率。這類方法將圖像的高維特征壓縮表示為幾十或 幾百個(gè)比特的哈希編碼,壓縮高維特征表示的同時(shí)保持?jǐn)?shù)據(jù)的局部敏感特性,即任意距離 測(cè)度(L1距離、歐式距離等)小的數(shù)據(jù),經(jīng)過(guò)哈希映射之后漢明距離小。
[0005] 基于哈希映射的方法將圖像數(shù)據(jù)壓縮表示為哈希編碼,提高了存儲(chǔ)和計(jì)算效率, 但是對(duì)于大規(guī)模哈希編碼并沒(méi)有一種有效的方法進(jìn)行檢索。目前大部分研究將圖像表示為 哈希編碼后采用線性掃描方法找最近鄰,檢索效率較低。M.Norouzi等人在文獻(xiàn)"Fast search in hamming space with multi-index hashing" 中提出了一種基于編碼分割的多 索引哈希結(jié)構(gòu),與近似檢索不同,該結(jié)構(gòu)能實(shí)現(xiàn)"準(zhǔn)確"的哈希編碼檢索且檢索時(shí)間復(fù)雜度 為次線性。但上述方法需要使用大量?jī)?nèi)存,不僅代價(jià)高,而且在數(shù)據(jù)量大、內(nèi)存無(wú)法載入索 引結(jié)構(gòu)時(shí)無(wú)法使用。相對(duì)內(nèi)存而言磁盤(pán)容量大、價(jià)格低廉,非常適合用于大數(shù)據(jù)量的基于內(nèi) 容的圖像檢索。由于磁盤(pán)的10效率比內(nèi)存要低,因此如何設(shè)計(jì)一種合理的索引結(jié)構(gòu)來(lái)優(yōu)化 磁盤(pán)的10策略,同時(shí)保持多索引哈希結(jié)構(gòu)的檢索性能成為解決哈希編碼高效檢索的關(guān)鍵問(wèn) 題。
【發(fā)明內(nèi)容】
[0006] 針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提出了一種多索引磁盤(pán)哈希結(jié)構(gòu)的圖像檢索方法, 用于解決高維數(shù)據(jù)的索引和快速檢索問(wèn)題。該發(fā)明結(jié)合了多索引哈希算法檢索效率高,以 及B+樹(shù)結(jié)構(gòu)磁盤(pán)10效率高的特性,將哈希編碼存儲(chǔ)在基于磁盤(pán)的B+樹(shù)索引結(jié)構(gòu)中,能夠很 好地支持大規(guī)模圖像高維數(shù)據(jù)的索引與檢索。
[0007] 為了達(dá)到以上目的,本發(fā)明采用的技術(shù)方案如下:
[0008] 本發(fā)明提出了一種多索引磁盤(pán)哈希結(jié)構(gòu),用于對(duì)圖像高維特征數(shù)據(jù)進(jìn)行磁盤(pán)索 弓丨,該索引結(jié)構(gòu)的建立方法包括以下步驟:
[0009] (1)對(duì)需要建立索引的圖像提取一種或多種高維特征;
[0010] (2)基于步驟(1)提取的高維特征,使用哈希映射方法將高維特征映射為若干比特 的哈希編碼;
[0011] (3)基于步驟(2)生成的哈希編碼,將該編碼分割為m份,形成m個(gè)哈希編碼子串;
[0012] ⑷將步驟⑶生成的哈希編碼子串,插入對(duì)應(yīng)的B+樹(shù)索引結(jié)構(gòu)中;
[0013] (5)重復(fù)步驟(3)、(4),將全部哈希編碼子串插入并保存到對(duì)應(yīng)的B+樹(shù)結(jié)構(gòu)中,形 成多個(gè)B+樹(shù)索引結(jié)構(gòu)組成的多索引磁盤(pán)哈希結(jié)構(gòu)。
[0014] 進(jìn)一步,所述步驟(1)中的提取高維特征,是對(duì)圖像提取顏色、紋理或形狀等特征。
[0015] 進(jìn)一步,所述步驟(2)中的哈希映射方法,包括多種將圖像高維特征通過(guò)哈希函數(shù) 映射成一串緊湊的哈希編碼并保持特征局部敏感特性的方法。這類方法使得任意兩個(gè)距離 測(cè)度(L1距離,歐式距離等)小的高維特征,通過(guò)映射之后漢明距離也小。
[0016] 進(jìn)一步,所述步驟(3)中的編碼分割方法為將哈希編碼平均分成m等份,形成m個(gè)哈 希編碼子串,其中m由最佳編碼長(zhǎng)度決定。
[0017] 進(jìn)一步,所述步驟(4)中插入對(duì)應(yīng)的B+樹(shù)索引結(jié)構(gòu)是指將第1個(gè)子串插入第1個(gè)B+ 樹(shù)索引結(jié)構(gòu),第2個(gè)子串插入第2個(gè)B+樹(shù)索引結(jié)構(gòu),以此類推。
[0018] 進(jìn)一步,所述步驟(5)中重復(fù)步驟(3)、(4)m次,將每一個(gè)哈希編碼分割為m個(gè)哈希 編碼子串,分別保存到m個(gè)對(duì)應(yīng)的B+樹(shù)索引結(jié)構(gòu),形成多索引磁盤(pán)哈希結(jié)構(gòu)。
[0019] 本發(fā)明還提出了一種采用上述多索引磁盤(pán)哈希結(jié)構(gòu)的圖像檢索方法,其步驟包 括:
[0020] (a)采用上述磁盤(pán)索引建立方法建立多索引磁盤(pán)哈希結(jié)構(gòu);
[0021] (b)對(duì)于查詢圖像,經(jīng)過(guò)與上述步驟(1),(2),(3)相同的特征提取、哈希映射和編 碼切割方法,得到m個(gè)查詢編碼子串;
[0022] (c)初始化檢索距離r為0,k近鄰結(jié)果為0:;
[0023] (d)基于上述步驟(a)建立的磁盤(pán)索引,進(jìn)行查詢編碼的r近鄰檢索,得到r近鄰結(jié) 果;
[0024] (e)將步驟(d)得到的r近鄰結(jié)果合并到k近鄰結(jié)果中;
[0025] (f)將r遞增1,重復(fù)上述步驟(d)、(e),直至k近鄰結(jié)果數(shù)量超過(guò)k后,返回該結(jié)果。
[0026]進(jìn)一步,所述步驟(c)中的檢索距離r表示當(dāng)前循環(huán)查詢編碼與檢索結(jié)果的漢明距 離,r在檢索查詢編碼k近鄰的過(guò)程中逐漸增大,直到找到k個(gè)近鄰;所述的k近鄰結(jié)果用于存 放最終查詢編碼的k近鄰。
[0027] 進(jìn)一步,所述步驟(f)中重復(fù)步驟(d)、(e)的次數(shù)不固定,由查詢編碼的近鄰數(shù)據(jù) 分布決定,循環(huán)在找到k個(gè)近鄰結(jié)果后停止。
[0028] 本發(fā)明的有益效果在于:(1)支持大規(guī)模圖像數(shù)據(jù)的快速索引和檢索;(2)支持?jǐn)?shù) 據(jù)的動(dòng)態(tài)添加;(3)與近似檢索不同,本發(fā)明支持準(zhǔn)確的哈希編碼k近鄰檢索。
[0029] 本發(fā)明之所以具有上述有益效果,其原因在于:本發(fā)明采用了基于磁盤(pán)的B+樹(shù)結(jié) 構(gòu)來(lái)存儲(chǔ)哈希表,不但支持?jǐn)?shù)據(jù)動(dòng)態(tài)添加,而且與其他數(shù)據(jù)結(jié)構(gòu)相比磁盤(pán)10效率高,檢索速 度快;本發(fā)明采用了基于編碼分割的多索引哈希檢索算法,通過(guò)檢索多索引結(jié)構(gòu)得到候選 集并篩選,該方法能夠?qū)崿F(xiàn)與近似檢索方法不同的"準(zhǔn)確"哈希編碼檢索,且檢索復(fù)雜度為 次線性;
【附圖說(shuō)明】
[0030] 圖1是本發(fā)明的索引建立流程圖。
[0031] 圖2是B+樹(shù)存儲(chǔ)結(jié)構(gòu)示意圖。
[0032]圖3是本發(fā)明的檢索流程圖。
[0033]圖4是多索引哈希結(jié)構(gòu)k近鄰檢索算法描述圖。
【具體實(shí)施方式】
[0034]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述。
[0035]本發(fā)明的一種多索引磁盤(pán)哈希結(jié)構(gòu),其索引建立的流程如圖1所示,具體包含以下 步驟:
[0036] (1)特征提取
[0037]對(duì)需要建立索引的圖像提取一種或多種顏色、紋理或形狀特征,該特征為高維向 量。
[0038] (2)哈希編碼
[0039] 在經(jīng)過(guò)步驟(1)特征提取之后,需要通過(guò)哈希編碼方法將高維圖像特征映射為更 加緊湊的哈希編碼。哈希編碼方法利用局部敏感哈希映射函數(shù),將高維特征映射為若干比 特哈希編碼的同時(shí)保持特征相似性,即距離測(cè)度(L1距離,歐式距離等)小的特征映射后的 哈希編碼的漢明距離也小。
[0040] 本實(shí)施例米用由 A · Gionis和P · Indyk在文獻(xiàn) "Simi larity search in high dimensions via hashing" 中提出的局部敏感哈希(Locality Sensitive Hashing,LSH)編 碼方法。該方法是一種隨機(jī)平面映射的編碼方法,通過(guò)隨機(jī)的高斯分布映射矩陣將高維特 征映射為若干比特哈希編碼。假設(shè)高維特征的維度為d,選定的LSH編碼比特?cái)?shù)為b,LSH編碼 的過(guò)程為:首先隨機(jī)生成一個(gè)大小為dx b的隨機(jī)高斯分布矩陣,然后對(duì)每一個(gè)特征向量點(diǎn) 乘該隨機(jī)矩陣得到對(duì)應(yīng)的哈希編碼。本實(shí)施例中選定的LSH編碼的比特位數(shù)為64。
[0041 ] (3)編碼分割
[0042]經(jīng)過(guò)步驟(2)哈希編碼,得到圖像高維特征數(shù)據(jù)對(duì)應(yīng)的哈希編碼,我們可以對(duì)這些 哈希編碼建立單個(gè)索引,通過(guò)檢索查詢編碼在索引中近鄰哈希桶(索引中哈希編碼及對(duì)應(yīng) 存儲(chǔ)的數(shù)據(jù)稱為哈希桶)獲得最近鄰。但一般哈希桶的數(shù)量(本實(shí)施例為2 64)遠(yuǎn)遠(yuǎn)大于圖像 高維特征數(shù)量n,因此大量哈希桶是空的。為了減少哈希桶數(shù)量,本實(shí)施例采用了 M.Norouzi 等人在文南犬"Fast search in hamming space with multi-index hashing" 中提出的編碼 分割方法。將每個(gè)哈希編碼分成連續(xù)的m等份,使用更短的哈希編碼組合多個(gè)哈希桶從而加 快檢索效率。編碼分割之后r近鄰檢索的時(shí)間復(fù)雜度如公式一所示:
[0044] 其中,c〇st(S)表示編碼子串長(zhǎng)度為s = |_r廠》d,檢索距離為『時(shí),檢索的時(shí)間復(fù) 雜度;訊£)=11呢;^-(11)1(^2(1-6)表示概率為6的伯努利分布熵^表示編碼位數(shù)。為了 使檢索時(shí)間復(fù)雜度最低,本實(shí)施例選取的最佳編碼子串長(zhǎng)度為l〇g2n。
[0045] 確定最佳編碼子串長(zhǎng)度之后,將步驟(2)得到的每個(gè)哈希編碼分成長(zhǎng)度盡量接近 最佳編碼子串長(zhǎng)度的連續(xù)m等份,形成m組哈希編碼子串。
[0046]