專利名稱:基于倒排技術(shù)的快速檢索方法
技術(shù)領(lǐng)域:
本發(fā)明涉及檢索、排序、統(tǒng)計(jì)技術(shù)領(lǐng)域,特別涉及基于倒排技術(shù)的快速檢索方法。
背景技術(shù):
在全球信息化大潮的推動(dòng)下,各種信息,如文本信息、圖像信息、音頻信息、視頻信息等,都在無節(jié)制地膨脹;目前,這些信息已經(jīng)成為一個(gè)信息的海洋,改變了并還在改變著人類的工作和生活方式;面對(duì)海量的信息,如何從中找到自己感興趣的內(nèi)容便成了一個(gè)人們研究的課題,搜索引擎在這種情況下應(yīng)運(yùn)而生。而在檢索方面,快速有效的倒排索引技術(shù)開辟了文本搜索引擎的先河,并在上個(gè)世紀(jì)末成就了一批新興的搜索引擎公司,獲得了巨大的商業(yè)利益。倒排表索引技術(shù)是受書目索引啟發(fā)而誕生的,是一種將文本中出現(xiàn)的各個(gè)索引項(xiàng)和索引項(xiàng)出現(xiàn)的位置信息存儲(chǔ)在稱為表結(jié)構(gòu)的索引中,檢索時(shí),僅查找倒排表來檢索查詢?cè)~的方法。在查詢的時(shí)候由于可以一次得到關(guān)鍵字所對(duì)應(yīng)的所有文檔,所以效率很尚ο倒排索引技術(shù)廣泛地用于支持高效的海量數(shù)據(jù)的快速檢索,目前很多優(yōu)秀搜索引擎都是構(gòu)建在這種結(jié)構(gòu)之上的。圖像、視頻檢索和文本檢索相比要應(yīng)對(duì)更大的數(shù)據(jù)量,那么借鑒文本搜索的優(yōu)勢(shì),倒排索引結(jié)構(gòu)將無疑是最好的選擇,因此倒排索引結(jié)構(gòu)也被應(yīng)用到圖像、音視頻等多媒體檢索中。在采用倒排索引技術(shù)的檢索中,檢索的快速響應(yīng)是最為關(guān)鍵的,而索引建立是在后臺(tái)進(jìn)行,效率會(huì)相對(duì)低一些。倒排索引的檢索時(shí)間主要由兩部分時(shí)間決定建立量化表所須的時(shí)間,根據(jù)量化表讀取倒排索引中相關(guān)倒排列表并進(jìn)行查找所須的時(shí)間。建立量化表所須的時(shí)間與所選用的特征、量化方式等有關(guān),在這里不作深入研究;本發(fā)明重點(diǎn)研究根據(jù)量化表讀取倒排索引中相關(guān)倒排列表并進(jìn)行查找所須的時(shí)間,并在此基礎(chǔ)上提高查找的效率。這對(duì)要求實(shí)時(shí)響應(yīng)或批量檢索任務(wù)的用戶來說這是非常有意義的。
發(fā)明內(nèi)容
本發(fā)明的目標(biāo)是提供一種能夠在海量的數(shù)據(jù)中快速、精確的找到用戶所關(guān)心數(shù)據(jù)的檢索方法。為了實(shí)現(xiàn)上述目標(biāo),基于倒排技術(shù)的快速檢索方法,包括下列步驟根據(jù)量化表,應(yīng)用幾何一致性,在倒排表中取出對(duì)應(yīng)中心滿足要求的所有數(shù)據(jù),形成數(shù)據(jù)集A ;在量化表內(nèi)逐個(gè)取出中心數(shù),并在倒排表內(nèi)找到這個(gè)中心所在倒排項(xiàng)的起始位置,逐個(gè)取出當(dāng)前中心所對(duì)應(yīng)的所有倒排項(xiàng),滿足規(guī)定的幾何一致性,放入數(shù)據(jù)集A中;應(yīng)用基于數(shù)組的桶排序方法,快速排序統(tǒng)計(jì)數(shù)據(jù)集A中數(shù)據(jù)的順序及出現(xiàn)次數(shù), 獲得數(shù)據(jù)集B;根據(jù)內(nèi)容一致性計(jì)算匹配率,濾出干擾數(shù)據(jù),獲得數(shù)據(jù)集C ;根據(jù)精度要求在數(shù)據(jù)集C中快速查找最優(yōu)集D,作為輸出結(jié)果。所述倒排表是一個(gè)詞匯到出現(xiàn)過該詞匯的所有文本、圖像或視頻幀位置的映射,以及關(guān)于這個(gè)詞匯的方向、位置和尺度信息。所述量化表是每個(gè)詞匯在倒排表中對(duì)應(yīng)中心位置和關(guān)于這個(gè)詞匯的方向、位置和尺度信息。所述幾何一致性是指待查找內(nèi)容與目標(biāo)內(nèi)容在局部具有空間幾何一致性的屬性, 應(yīng)用這一屬性可以對(duì)查詢的結(jié)果進(jìn)行篩選。所述應(yīng)用基于數(shù)組的桶排序方法,快速排序統(tǒng)計(jì)數(shù)據(jù)集A中數(shù)據(jù)的順序及出現(xiàn)次數(shù),包括下列步驟建立一個(gè)按順序排列的桶,根據(jù)目標(biāo)數(shù)據(jù)的序號(hào)信息,建立一個(gè)數(shù)組,初始化為0, 每個(gè)數(shù)組元素的下標(biāo)對(duì)應(yīng)著目標(biāo)數(shù)據(jù)的一個(gè)序號(hào),這個(gè)數(shù)組根據(jù)目標(biāo)數(shù)據(jù)的序號(hào)信息可以是一維、二維或多維,把每一個(gè)數(shù)組元素看成一個(gè)桶,就建立了一個(gè)按順序排列的桶;把數(shù)據(jù)集A中數(shù)據(jù)分入桶中,根據(jù)數(shù)據(jù)集A中數(shù)據(jù)的序號(hào)信息,把每個(gè)數(shù)據(jù)分入對(duì)應(yīng)桶中,即對(duì)應(yīng)下標(biāo)的數(shù)組元素增1,獲得了一個(gè)有序的統(tǒng)計(jì)集合,即數(shù)據(jù)集B。所述內(nèi)容一致性是指待查找內(nèi)容與目標(biāo)內(nèi)容在內(nèi)容上具有相似性的屬性,這樣提取出的特征點(diǎn)數(shù)應(yīng)該比較接近,應(yīng)用這一屬性對(duì)查詢的結(jié)果進(jìn)行篩選。所述根據(jù)內(nèi)容一致性計(jì)算匹配率,濾出干擾數(shù)據(jù),獲得數(shù)據(jù)集C,包括下列步驟找出數(shù)據(jù)集B中大于0的數(shù)組元素,該數(shù)組元素的值為匹配點(diǎn)數(shù),即以這個(gè)元素下標(biāo)為序號(hào)的目標(biāo)項(xiàng)和查詢項(xiàng)的特征匹配上的點(diǎn)數(shù);根據(jù)匹配點(diǎn)數(shù)、查詢項(xiàng)和目標(biāo)項(xiàng)的總特征點(diǎn)數(shù),求得匹配率,先比較查詢項(xiàng)總特征點(diǎn)數(shù)、目標(biāo)項(xiàng)的總特征點(diǎn)數(shù)哪個(gè)大,然后用匹配點(diǎn)數(shù)除以較大的總特征點(diǎn)數(shù)得到匹配率;找出數(shù)據(jù)集B中匹配率大于域值t的所有比值,放入數(shù)據(jù)集C中。所述根據(jù)精度要求在數(shù)據(jù)集C中快速查找最優(yōu)集D,作為輸出結(jié)果,根據(jù)匹配率高說明匹配效果好這一事實(shí),在數(shù)據(jù)集C中快速查找匹配率最高的前m項(xiàng),形成最優(yōu)集D,其中 m代表精度,決定最優(yōu)集的范圍。所述快速查找是指建立一個(gè)具有m項(xiàng)的有序單向鏈表L,掃描數(shù)據(jù)集C中的數(shù)據(jù), 如果找到一個(gè)數(shù)比鏈表L中最小的數(shù)大則插入鏈表L中,同時(shí)在鏈表L中刪除最小的數(shù),利用鏈表結(jié)構(gòu)的快速插入和刪除的特性,一次循環(huán)即可找到匹配率最高的前m項(xiàng)。本發(fā)明的主要優(yōu)點(diǎn)是檢索結(jié)果精確、運(yùn)行速度非常快,可以在大量雜亂無章數(shù)據(jù)中快速、精確地找到用戶所關(guān)心的數(shù)據(jù),而且可根據(jù)實(shí)際應(yīng)用對(duì)查詢結(jié)果精度作出不同的調(diào)整。應(yīng)用本發(fā)明方法的時(shí)間復(fù)雜度為0(n),只與據(jù)集A的規(guī)模η有關(guān),與總體數(shù)據(jù)集的規(guī)模無關(guān),從而大大提高查詢的效率。本發(fā)明適用于應(yīng)用倒排索引技術(shù)的檢索引擎,可以用于文本檢索、圖像檢索、視頻檢索等方面的快速檢索。從以上技術(shù)方案可以看出,本發(fā)明方案具有以下有益效果1)檢索效率非常高,時(shí)間復(fù)雜度為Ο(η);2)適用范圍廣泛,可用于基于倒排索引技術(shù)的檢索引擎;3)檢索結(jié)果精確,并且可根據(jù)實(shí)際應(yīng)用調(diào)整查詢結(jié)果精度。
圖1為本發(fā)明方法的處理流程圖;圖2為本發(fā)明方法中的倒排索引示例 下面結(jié)合附圖對(duì)本發(fā)明的內(nèi)容作進(jìn)一步詳細(xì)說明。
具體實(shí)施例方式如圖1所示,為本發(fā)明實(shí)現(xiàn)對(duì)海量數(shù)據(jù)快速檢索的流程示意圖。首先,根據(jù)量化表,應(yīng)用幾何一致性,在倒排表中取出對(duì)應(yīng)中心的滿足要求所有數(shù)據(jù),形成數(shù)據(jù)集A ;其次, 應(yīng)用基于數(shù)組的桶排序方法,快速排序統(tǒng)計(jì)數(shù)據(jù)集A中數(shù)據(jù)的順序及出現(xiàn)次數(shù),獲得數(shù)據(jù)集B;然后,根據(jù)內(nèi)容一致性計(jì)算匹配率,濾出干擾數(shù)據(jù),獲得數(shù)據(jù)集C;最后,根據(jù)精度要求在數(shù)據(jù)集C中快速查找最優(yōu)集D,作為輸出結(jié)果。如圖2所示,為本發(fā)明方法中的倒排索引示例圖。首先,把查詢項(xiàng)量化成量化表, 然后根據(jù)量化表在倒排表中查找,根據(jù)查找到的信息再進(jìn)行排序、統(tǒng)計(jì),最終得到所查找的目標(biāo)頂。一個(gè)倒排索引通??梢杂闪炕砦募偷古疟砦募刹糠纸M成。量化表文件記錄了文檔集(圖像、視頻幀)中出現(xiàn)的所有詞匯。倒排表文件將每個(gè)詞匯在記錄文件(圖像、 視頻幀)中的位置和頻率等信息都記錄下來,所有詞匯的這些信息就構(gòu)成了倒排表。對(duì)于量化表文件中的η個(gè)詞匯(特征的一個(gè)Wi,在m個(gè)記錄文件(圖像、視頻幀)(V·· 《中的倒排表可以表示為W1 d\f^pil,Pif) ··· dm[fm](^pa,---,pifm)(1)這樣η條這樣的記錄就構(gòu)成一個(gè)完整的倒排表,其中fi表示頻率、方向、尺度等其它信息。表達(dá)式(1)給出了一個(gè)完整的用于查詢文本詞匯的倒排索引結(jié)構(gòu)。—個(gè)倒排表實(shí)際上就是一個(gè)詞匯到出現(xiàn)過該詞匯的所有文本、圖像或視頻幀位置的映射,它同時(shí)也提供了一種描述符直接一對(duì)一匹配的近似方法。倒排索引技術(shù)被廣泛應(yīng)用到圖像、拷貝檢測(cè)、圖像目標(biāo)檢索以及視頻拷貝檢測(cè)及檢索領(lǐng)域,在如何利用局部特征建詞匯這一問題上,很多研究者近幾年做了大量的工作。Sivic J,Zisserman等人介紹了一種視頻中的目標(biāo)及場(chǎng)景檢索方法。而他們的索引結(jié)構(gòu)采用的是基于視覺詞匯的倒排索引結(jié)構(gòu),在量化環(huán)節(jié),最基本的K-均值聚類方法被用來將采樣后的二十萬個(gè)局部特征描述符樣本分別量化到6000和10000個(gè)視覺詞匯上,而后分別基于這6000和10000兩個(gè)視覺詞匯庫,對(duì)特定目標(biāo)和特殊場(chǎng)景進(jìn)行檢索。David Nister等人在研究了 Sivic J等人的工作基礎(chǔ)上,認(rèn)為基于k-均值的視覺詞匯產(chǎn)生方法在應(yīng)對(duì)數(shù)量較大的描述符樣本點(diǎn)時(shí)效率不高, 他們提出用分級(jí)的k-均值聚類方法來產(chǎn)生分級(jí)的視覺詞匯,從而建立分級(jí)的倒排索引文件。他們認(rèn)為這種分級(jí)的倒排索引結(jié)構(gòu)在搜索時(shí)更有效率,而且可以應(yīng)對(duì)更大的數(shù)據(jù)庫的需求。其他很多聚類及量化方法,如類k均值聚類方法或者網(wǎng)格量化方法等,也都曾被用來有效地產(chǎn)生視覺詞匯。倒排表和量化表的產(chǎn)生人們已經(jīng)對(duì)它做出了大量研究,在這里不再做深入研究, 本發(fā)明使用分級(jí)K-均值聚類方法來生成倒排表和量化表。這種基于詞匯的倒排索引結(jié)構(gòu),詞匯的區(qū)分力度并不是很大,根據(jù)查詢結(jié)果篩選出候選結(jié)果會(huì)存在大量的錯(cuò)誤候選點(diǎn),也就是說導(dǎo)入詞匯的倒排表會(huì)非常大,而且很多倒排文件里的特征,與查詢的特征所代表的內(nèi)容,相差很遠(yuǎn)。那么大量的錯(cuò)誤候選點(diǎn)將對(duì)后期進(jìn)行所有詞匯的倒排表求交帶來困難。一方面是帶來巨大的數(shù)據(jù)存貯和不可估量的運(yùn)算量,另一方面,也有可能讓誤檢點(diǎn)淹沒真實(shí)的目標(biāo)。所以,在導(dǎo)入某個(gè)詞匯的倒排表前,可以先利用一些查詢信息的基本特征參數(shù),以相似性度量的方式對(duì)候選點(diǎn)進(jìn)行篩選,從而在查詢具體內(nèi)容之前,就大大減少數(shù)據(jù)量,提升運(yùn)算效率。在文本的查詢結(jié)果的排序中,Google對(duì)目標(biāo)文檔中,出現(xiàn)的與多個(gè)檢索詞順序一致的候選文檔排得靠前,而順序不一致的則靠后。對(duì)于圖像、視頻幀來說,在特征點(diǎn)/區(qū)域檢測(cè)時(shí)存儲(chǔ)的特征空間分布及幾何特性等信息就可以用來進(jìn)行相似度的度量。查詢圖像、 視頻中的目標(biāo)——即視頻關(guān)鍵幀的局部區(qū)域,在目標(biāo)視頻庫關(guān)鍵幀中出現(xiàn)的部分,這兩者的局部分布應(yīng)該是一樣的。根據(jù)具體情況的不同,本發(fā)明提出了三種空間幾何一致性篩選方案
權(quán)利要求
1.基于倒排技術(shù)的快速檢索方法,其特征在于,包括以下步驟根據(jù)量化表,應(yīng)用幾何一致性,在倒排表中取出對(duì)應(yīng)中心滿足要求的所有數(shù)據(jù),形成數(shù)據(jù)集A ;在量化表內(nèi)逐個(gè)取出中心數(shù),并在倒排表內(nèi)找到這個(gè)中心所在倒排項(xiàng)的起始位置, 逐個(gè)取出當(dāng)前中心所對(duì)應(yīng)的所有倒排項(xiàng),滿足規(guī)定的幾何一致性,放入數(shù)據(jù)集A中;應(yīng)用基于數(shù)組的桶排序方法,快速排序統(tǒng)計(jì)數(shù)據(jù)集A中數(shù)據(jù)的順序及出現(xiàn)次數(shù),獲得數(shù)據(jù)集B;根據(jù)內(nèi)容一致性計(jì)算匹配率,濾出干擾數(shù)據(jù),獲得數(shù)據(jù)集C ;根據(jù)精度要求在數(shù)據(jù)集C中快速查找最優(yōu)集D,作為輸出結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述倒排表是一個(gè)詞匯到出現(xiàn)過該詞匯的所有文本、圖像或視頻幀位置的映射,以及關(guān)于這個(gè)詞匯的方向、位置和尺度信息。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述量化表是每個(gè)詞匯在倒排表中對(duì)應(yīng)中心位置和關(guān)于這個(gè)詞匯的方向、位置和尺度信息。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述幾何一致性是指待查找內(nèi)容與目標(biāo)內(nèi)容在局部具有空間幾何一致性的屬性,應(yīng)用這一屬性可以對(duì)查詢的結(jié)果進(jìn)行篩選。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用基于數(shù)組的桶排序方法,快速排序統(tǒng)計(jì)數(shù)據(jù)集A中數(shù)據(jù)的順序及出現(xiàn)次數(shù),包括下列步驟建立一個(gè)按順序排列的桶,根據(jù)目標(biāo)數(shù)據(jù)的序號(hào)信息,建立一個(gè)數(shù)組,初始化為0,每個(gè)數(shù)組元素的下標(biāo)對(duì)應(yīng)著目標(biāo)數(shù)據(jù)的一個(gè)序號(hào),這個(gè)數(shù)組根據(jù)目標(biāo)數(shù)據(jù)的序號(hào)信息可以是一維、二維或多維,把每一個(gè)數(shù)組元素看成一個(gè)桶,就建立了一個(gè)按順序排列的桶;把數(shù)據(jù)集A中數(shù)據(jù)分入桶中,根據(jù)數(shù)據(jù)集A中數(shù)據(jù)的序號(hào)信息,把每個(gè)數(shù)據(jù)分入對(duì)應(yīng)桶中,即對(duì)應(yīng)下標(biāo)的數(shù)組元素增1,獲得了一個(gè)有序的統(tǒng)計(jì)集合,即數(shù)據(jù)集B。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述內(nèi)容一致性是指待查找內(nèi)容與目標(biāo)內(nèi)容在內(nèi)容上具有相似性的屬性,這樣提取出的特征點(diǎn)數(shù)應(yīng)該比較接近,應(yīng)用這一屬性對(duì)查詢的結(jié)果進(jìn)行篩選。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)內(nèi)容一致性計(jì)算匹配率,濾出干擾數(shù)據(jù),獲得數(shù)據(jù)集C,包括下列步驟找出數(shù)據(jù)集B中大于0的數(shù)組元素,該數(shù)組元素的值為匹配點(diǎn)數(shù),即以這個(gè)元素下標(biāo)為序號(hào)的目標(biāo)項(xiàng)和查詢項(xiàng)的特征匹配上的點(diǎn)數(shù);根據(jù)匹配點(diǎn)數(shù)、查詢項(xiàng)和目標(biāo)項(xiàng)的總特征點(diǎn)數(shù),求得匹配率,先比較查詢項(xiàng)總特征點(diǎn)數(shù)、目標(biāo)項(xiàng)的總特征點(diǎn)數(shù)哪個(gè)大,然后用匹配點(diǎn)數(shù)除以較大的總特征點(diǎn)數(shù)得到匹配率;找出數(shù)據(jù)集B中匹配率大于域值t的所有比值,放入數(shù)據(jù)集C中。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)精度要求在數(shù)據(jù)集C中快速查找最優(yōu)集D,作為輸出結(jié)果,根據(jù)匹配率高說明匹配效果好這一事實(shí),在數(shù)據(jù)集C中快速查找匹配率最高的前m項(xiàng),形成最優(yōu)集D,其中m代表精度,決定最優(yōu)集的范圍。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述快速查找是指建立一個(gè)具有m項(xiàng)的有序單向鏈表L,掃描數(shù)據(jù)集C中的數(shù)據(jù),如果找到一個(gè)數(shù)比鏈表L中最小的數(shù)大則插入鏈表L中,同時(shí)在鏈表L中刪除最小的數(shù),利用鏈表結(jié)構(gòu)的快速插入和刪除的特性,一次循環(huán)即可找到匹配率最高的前m項(xiàng)。
全文摘要
本發(fā)明提供了一種基于倒排技術(shù)的快速檢索方法,包括如下步驟1.根據(jù)量化表,利用幾何一致性,在倒排表中取出對(duì)應(yīng)中心滿足要求的所有數(shù)據(jù),形成數(shù)據(jù)集A;2.利用基于數(shù)組的桶排序方法,快速排序統(tǒng)計(jì)數(shù)據(jù)集A中數(shù)據(jù)的順序及出現(xiàn)次數(shù);3.根據(jù)內(nèi)容一致性計(jì)算匹配率,濾出干擾數(shù)據(jù),獲得數(shù)據(jù)集B;4.根據(jù)精度要求在數(shù)據(jù)集B中快速查找最優(yōu)集C,作為輸出結(jié)果。本發(fā)明的方法運(yùn)行速度非???,可以在大量雜亂無章的數(shù)據(jù)中快速、精確地找到用戶所關(guān)心的數(shù)據(jù),而且可根據(jù)實(shí)際應(yīng)用對(duì)查詢結(jié)果的精度進(jìn)行調(diào)整。應(yīng)用本發(fā)明方法的時(shí)間復(fù)雜度為O(n),只與據(jù)集A的規(guī)模n有關(guān),與總體數(shù)據(jù)集的規(guī)模無關(guān),從而大大提高查詢的效率。
文檔編號(hào)G06F17/30GK102201001SQ201110110118
公開日2011年9月28日 申請(qǐng)日期2011年4月29日 優(yōu)先權(quán)日2011年4月29日
發(fā)明者劉貴忠, 南楠, 廖開陽, 惠有師, 王喆, 肖莉 申請(qǐng)人:西安交通大學(xué)