數(shù)據(jù)庫的存儲方式,本發(fā)明進一步采用分布式文件來存儲圖 像的索引數(shù)據(jù),所有索引數(shù)據(jù)寫入文件中,然后將索引數(shù)據(jù)文件分布存儲到各節(jié)點,在各節(jié) 點將索引數(shù)據(jù)加載到內(nèi)存中進行處理,極大地減輕了主節(jié)點的壓力。
[0068] 在寫入階段,圖像數(shù)據(jù)和索引數(shù)據(jù)并不是同步寫入,而是采用I/O通道分離的方 式:圖像數(shù)據(jù)直接寫入分布式文件系統(tǒng),索引數(shù)據(jù)采用緩沖機制,等緩沖隊列滿或計時器時 間到,再統(tǒng)一寫入索引數(shù)據(jù)文件,并實現(xiàn)分布式存儲。
[0069] 在主節(jié)點內(nèi)存中建立索引數(shù)據(jù)緩沖區(qū),索引數(shù)據(jù)記錄項以順序?qū)懛绞綄懭刖彌_ 區(qū)。緩沖區(qū)中以索引數(shù)據(jù)記錄為單位,索引數(shù)據(jù)緩沖機制為,緩沖區(qū)頭結(jié)構(gòu)中存在唯一標(biāo)識 此次緩沖的信息。索引數(shù)據(jù)以追加的方式寫入緩沖,當(dāng)緩沖區(qū)中的索引數(shù)據(jù)記錄達(dá)到某一 閾值或者計時器時間到,存儲系統(tǒng)以緩沖區(qū)為單位進行分布式位置分配,將整個緩沖區(qū)的 索引數(shù)據(jù)記錄通過對緩沖區(qū)頭結(jié)構(gòu)中的標(biāo)識信息作Hash找到索引數(shù)據(jù)文件在分布式文件 系統(tǒng)中的對應(yīng)存儲節(jié)點,并將索引數(shù)據(jù)文件存儲到相應(yīng)的節(jié)點上。索引數(shù)據(jù)存儲單元索引 數(shù)據(jù)緩沖區(qū)。
[0070] 為加快分布式文件系統(tǒng)中的索引數(shù)據(jù)檢索,采用并行程序來檢索索引數(shù)據(jù)。并行 檢索程序?qū)z索空間劃分成多個子空間,然后通過任務(wù)調(diào)度在各子空間進行并行檢索,最 后通過匯總形成最終結(jié)果。本發(fā)明采用Hadoop框架中的分布式文件系統(tǒng)HDFS為小文件索 引數(shù)據(jù)提供大量可擴展的存儲空間,并采用MapReduce并行編程模型對小文件索引數(shù)據(jù)的 并行檢索進行了實現(xiàn)。通過在多屬性上建立分布式局部葉節(jié)點索引可以對并行檢索進行優(yōu) 化。
[0071] 考慮在索引數(shù)據(jù)的數(shù)值屬性4、A2、…、總共η個屬性上進行排序,屬性值必須是 數(shù)值型或能轉(zhuǎn)化為數(shù)值形式(連續(xù)或離散的數(shù)值屬性值均可以采用區(qū)間劃分,非數(shù)值型屬 性值轉(zhuǎn)化為數(shù)值型)。首先指定屬性A 1Q e [1…η])的順序,并將數(shù)值屬性~值域劃分為 D1個子域,接下來建立多屬性的排序?qū)哟螛洌?br>[0072] 第1層為根節(jié)點;第2層為屬性A1的所有子域,按照從左到右由小到大排序;第3 層對第2層的每一個節(jié)點均按屬性A 2的子域從左到右由小到大排序;第(η+1)層對第η層 的每一個節(jié)點按屬性總的子域從左到右由小到大排序,則第(η+1)層共有B個葉子節(jié)點,B 值計算公式為
[0073] 對所有葉子節(jié)點按照從左到右的順序分別進行編號,對任意元組t在屬性H、 總上的取值都可以映射到圖中的一個葉子節(jié)點,將該葉子節(jié)點的編號記作元組的排序值 Re [1…B],且任何包含屬性六^^、…、An的檢索條件也具有唯一的排序值W。
[0074] 確定元組的排序之后,需要在數(shù)據(jù)節(jié)點建立局部葉節(jié)點索引,在每一個數(shù)據(jù)節(jié)點 建立一個長度為B的葉節(jié)點索引,葉節(jié)點索引只與本地元組的情況有關(guān),只采用局部指示 索引來對本地元組的存在情況進行指示。檢查本地所有的元組,若至少存在一個排序值為 Re [1…B]的元組,則將葉節(jié)點索引的第R位設(shè)置為1,否則設(shè)為0。這樣僅通過一個長度 為B的葉節(jié)點就可以實現(xiàn)對本地所有元組在屬性A 2、…、An上的指示。
[0075] 建立葉節(jié)點索引后,利用其進行檢索必須是輸入的檢索條件包含建立了葉節(jié)點索 引的數(shù)值屬性上的取值。檢索進行時,首先根據(jù)檢索條件在指定屬性上的取值,生成檢索條 件的排序值R',檢索在數(shù)據(jù)節(jié)點進行時,通過指示葉節(jié)點索引來判斷該數(shù)據(jù)節(jié)點有沒有滿 足檢索條件的元組記錄,查找指示葉節(jié)點的第R'位,若為1,表示該節(jié)點可能存在滿足條 件的元組,繼續(xù)在該節(jié)點檢索;若為0,表示該節(jié)點不存在滿足條件的元組,直接返回空值, 不進行該節(jié)點的檢索任務(wù)。通過以上葉節(jié)點索引機制,可以有效避免大量返回空集的檢索 任務(wù),在節(jié)約了檢索資源的同時,提高了檢索效率。
[0076] 綜上所述,本發(fā)明提出了一種基于大數(shù)據(jù)的查詢方法,通過分布式系統(tǒng)對圖像數(shù) 據(jù)的存儲和檢索過程進行了優(yōu)化,提高了檢索效率,克服了性能瓶頸。
[0077] 顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用 的計算系統(tǒng)來實現(xiàn),它們可以集中在單個的計算系統(tǒng)上,或者分布在多個計算系統(tǒng)所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計算系統(tǒng)可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲 在存儲系統(tǒng)中由計算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0078] 應(yīng)當(dāng)理解的是,本發(fā)明的上述【具體實施方式】僅僅用于示例性說明或解釋本發(fā)明的 原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何 修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨 在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修 改例。
【主權(quán)項】
1. 一種基于大數(shù)據(jù)的查詢方法,其特征在于,包括: 將圖像文件存儲在分布式文件系統(tǒng)的圖像庫中;對圖像文件進行預(yù)處理,然后提取圖 像特征;對所提取的特征建立特征索引,將索引文件和圖像文件存儲在分布式文件數(shù)據(jù)庫 上;當(dāng)用戶向系統(tǒng)提交查詢請求時,用戶接口對提交的實例或圖像特征進行特征提取,與特 征索引庫中的圖像特征進行相似度比較后將匹配結(jié)果發(fā)送給用戶。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在將圖像文件存儲在分布式文件系 統(tǒng)的圖像庫中之前,還包括: 采用主從式結(jié)構(gòu)搭建Hadoop集群,主節(jié)點用于集群中所有的任務(wù)調(diào)度和任務(wù)分配,從 節(jié)點對主節(jié)點分配的任務(wù)進行計算和數(shù)據(jù)存儲,并周期性地向主節(jié)點報告心跳信息; 數(shù)據(jù)存儲層利用分布式文件數(shù)據(jù)庫對海量圖像數(shù)據(jù)進行分布式存儲和建立分布式訪 問索引,采用MapReduce編程模型將圖像數(shù)據(jù)進行分塊,在Hadoop集群中的節(jié)點上進行處 理,提取圖像特征、進行圖像匹配等計算,Web服務(wù)器接收用戶輸入的實例或圖像特征,將其 提交給Hadoop集群進行計算,然后通過Web服務(wù)器返回檢索結(jié)果。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在將圖像文件存儲在分布式文件系 統(tǒng)的圖像庫中,進一步包括: (1) ,在將采集的圖像文件上傳到分布式文件系統(tǒng)上時,為每個圖像文件會生成唯一的 圖像ID,作為圖像標(biāo)識; (2) 檢測圖像文件是否被損壞,若被損壞,將該圖像的ID標(biāo)記為無效ID,并將無效ID 輸出到分布式文件系統(tǒng)中,若沒被損壞,則允許正常上傳; (3) 提取分布式文件系統(tǒng)中的圖像的顏色、紋理、尺寸特征,并為每個圖像生成圖像快 昭. (4) 將圖像ID、圖像快照、顏色特征、紋理特征、尺寸特征索引寫入到分布式文件數(shù)據(jù) 庫中。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述提取圖像特征進一步包括: 首先進行圖像結(jié)構(gòu)分析,對圖像進行分割,通過突變檢測和漸變檢測分離出元素從元 素中提取出圖像的位置特征;然后通過計算元素中所有像素的平均值,根據(jù)預(yù)定的規(guī)則從 分離出的元素里提取關(guān)鍵像素點,從關(guān)鍵像素點的集合中來提取顏色特征、形狀特征、紋理 特征,共同構(gòu)成描述圖像內(nèi)容的特征空間;在提取關(guān)鍵像素點后對圖像進行聚類,計算圖像 之間的相似度,根據(jù)相關(guān)性關(guān)系將元素重新進行組合; 其中圖像之間的相似度根據(jù)以下過程來計算: 用P1Q G {1,2,???《)來表示庫中的圖像,N為圖像數(shù)量,C1, G1, S1, 別表示第i 個圖像的顏色、紋理、形狀、位置特征,用Pc表示用戶提交的待檢索的圖像實例,其顏色、紋 理、形狀、位置特征分別用C。,G。,S。,M。來表示,待檢索圖像與第i個圖像的相似度用D(P。, Pi)表示: D(P。,P1)=w1Dc(C。,C 1)+W2D(;(G。,G1)+W3D s(S。,S1)+W4DM(M。,M1)其中,D c,D(;,Ds,DM分另lJ 為P〇, P1W個圖像在顏色、紋理、形狀、位置上的相似度,w i,w2, w3, W4S各特征的權(quán)重,滿足 W1+W2+W3+W4- Io
【專利摘要】本發(fā)明提供了一種基于大數(shù)據(jù)的查詢方法,該方法包括:將圖像文件存儲在分布式文件系統(tǒng)的圖像庫中;對圖像文件進行預(yù)處理,然后提取圖像特征;對所提取的特征建立特征索引,將索引文件和圖像文件存儲在分布式文件數(shù)據(jù)庫上;當(dāng)用戶向系統(tǒng)提交查詢請求時,用戶接口對提交的實例或圖像特征進行特征提取,與特征索引庫中的圖像特征進行相似度比較后將匹配結(jié)果發(fā)送給用戶。本發(fā)明提出了一種基于大數(shù)據(jù)的查詢方法,通過分布式系統(tǒng)對圖像數(shù)據(jù)的存儲和檢索過程進行了優(yōu)化,提高了檢索效率,克服了性能瓶頸。
【IPC分類】G06F17/30
【公開號】CN105160039
【申請?zhí)枴緾N201510657701
【發(fā)明人】時翔, 冉歡歡, 張悍裴
【申請人】四川攜創(chuàng)信息技術(shù)服務(wù)有限公司
【公開日】2015年12月16日
【申請日】2015年10月13日