用于高效特征匹配的方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請一般地設(shè)及捜索信息,具體地,設(shè)及捜索大的數(shù)據(jù)集合中的接近但不完全 相同的匹配。
【背景技術(shù)】
[0002] 捜索與查詢匹配的數(shù)據(jù)會在很多種情況中發(fā)生。例如,詞語匹配捜索可用來標(biāo)識 關(guān)鍵詞在文檔、文檔數(shù)據(jù)庫或在線上互聯(lián)網(wǎng)網(wǎng)頁捜索中的出現(xiàn)。登錄驗(yàn)證可設(shè)及捜索登錄 證書集合中的匹配。對象識別可設(shè)及在對象數(shù)據(jù)庫或集合中捜索匹配對象。所有運(yùn)些示例 可被一般化為一個兩步過程:(1)構(gòu)建集合S及其表示(通常離線);W及(2)計算f (X),其中X 是查詢,f(x)是根據(jù)下式的結(jié)果:
[0003]
[0004] 第二步(成員身份測試)一般是"線上"完成的,通常實(shí)時完成。
[0005] 許多現(xiàn)代捜索不必基于完美匹配。例如,圖像或視頻中的對象或特征識別不能一 般地依賴于完美匹配。例如,一些面部識別過程可能希望標(biāo)識接近匹配,而不是完美匹配。 指紋分析是不太可能進(jìn)行確切匹配的另一個領(lǐng)域。相反地,在運(yùn)些"不完美"匹配捜索中,可 使用基于距離的匹配。術(shù)語"基于距離"用于一般意義的標(biāo)量度量d(x,y)中,其中X是查詢,y 是S的候選元素。在一些情況中,度量d(x,y)可W是歐氏距離,但也可使用其他更為復(fù)雜的 度量。
[0006] 通過使用基于距離的匹配,捜索結(jié)果f (X)基于是否存在位于查詢X的闊值距離S之 內(nèi)的集合S的元素。捜索S對象中的最接近元素可描述如下:
[0007]
[000引在闊值距離的約束下,捜索可表示為:
[0009]
[0010] 將理解的是,基于距離的捜索的成本(在計算資源方面)比簡單成員身份測試要高 得多并且要更加耗時。結(jié)果,在實(shí)時線上捜索中難W實(shí)現(xiàn)不完美匹配捜索,尤其是度量d(x, y)很復(fù)雜時更是如此。
【附圖說明】
[OOW 現(xiàn)在通過示例的方式參考示出了本申請的示例實(shí)施例的附圖,其中:
[0012] 圖1示出了使用特征擴(kuò)展的捜索系統(tǒng)的簡化框圖;
[0013] 圖2W流程圖的形式示出了使用特征擴(kuò)展的捜索的示例過程;
[0014] 圖3示出了使用概要表示的捜索系統(tǒng)的簡化框圖;
[0015] 圖4W流程圖的形式示出了用于使用擴(kuò)展集合的概要表示進(jìn)行捜索的示例過程。
[0016] 在不同附圖中,使用相似的附圖標(biāo)記表示相似的組件。
【具體實(shí)施方式】
[0017] 在一個方面中,本申請描述了一種捜索系統(tǒng)中的非完全相同特征匹配的方法,所 述捜索系統(tǒng)具有數(shù)據(jù)點(diǎn)的集合。所述方法包括:確定闊值誤差;通過W下操作擴(kuò)展所述集合 W創(chuàng)建擴(kuò)展集合:初始化所述擴(kuò)展集合,W包括來自所述集合的所有數(shù)據(jù)點(diǎn)作為所述擴(kuò)展 集合的數(shù)據(jù)元素,W及針對所述集合中的每個數(shù)據(jù)點(diǎn),找到位于該數(shù)據(jù)點(diǎn)的誤差距離內(nèi)的 所有數(shù)據(jù)元素,并且將運(yùn)些所找到的數(shù)據(jù)元素添加到所述擴(kuò)展集合,其中所述誤差距離是 闊值誤差的函數(shù);通過使用多個散列函數(shù)作為Bloom過濾器構(gòu)建二進(jìn)制數(shù)組,創(chuàng)建所述擴(kuò)展 集合的概要表示;接收查詢;W及將所述多個散列函數(shù)應(yīng)用于所述查詢,W根據(jù)所述二進(jìn)制 數(shù)組確定所述查詢是否與所述擴(kuò)展集合中的數(shù)據(jù)元素之一匹配,并且如果是,則輸出匹配。
[0018] 在另一方面中,本申請描述了一種方法,所述方法包括:確定闊值誤差;通過W下 操作擴(kuò)展所述集合,W創(chuàng)建擴(kuò)展集合:初始化所述擴(kuò)展集合,W包括來自所述集合的所有數(shù) 據(jù)點(diǎn)作為所述擴(kuò)展集合的數(shù)據(jù)元素,W及針對所述集合中的每個數(shù)據(jù)點(diǎn),找到位于該數(shù)據(jù) 點(diǎn)的誤差距離內(nèi)的所有數(shù)據(jù)元素,并且將運(yùn)些所找到的數(shù)據(jù)元素添加到所述擴(kuò)展集合,其 中所述誤差距離是闊值誤差的函數(shù);通過使用多個散列函數(shù)作為Bloom過濾器構(gòu)建二進(jìn)制 數(shù)組,創(chuàng)建所述擴(kuò)展集合的概要表示;W及將所述二進(jìn)制數(shù)組發(fā)送到遠(yuǎn)程設(shè)備,W用于特征 捜索。
[0019] 在又一方面中,本申請描述了一種用于非完全相同特征匹配的捜索系統(tǒng)。捜索系 統(tǒng)包括:一個或多個處理器;存儲器,存儲數(shù)據(jù)點(diǎn)的集合和闊值誤差;W及處理器可執(zhí)行捜 索指令,所述指令當(dāng)由所述一個或多個處理器執(zhí)行時使得所述一個或多個處理器:通過W 下操作擴(kuò)展所述集合W創(chuàng)建擴(kuò)展集合:初始化所述擴(kuò)展集合,W包括來自所述集合的所有 數(shù)據(jù)點(diǎn)作為所述擴(kuò)展集合的數(shù)據(jù)元素,W及針對所述集合中的每個數(shù)據(jù)點(diǎn),找到位于該數(shù) 據(jù)點(diǎn)的誤差距離內(nèi)的所有數(shù)據(jù)元素,并且將運(yùn)些所找到的數(shù)據(jù)元素添加到所述擴(kuò)展集合, 其中所述誤差距離是闊值誤差的函數(shù);通過使用多個散列函數(shù)作為Bloom過濾器構(gòu)建二進(jìn) 制數(shù)組,創(chuàng)建所述擴(kuò)展集合的概要表示;W及存儲概要表示,W用于特征匹配。
[0020] 在又一方面中,所述捜索系統(tǒng)包括當(dāng)執(zhí)行時使得所述一個或多個處理器執(zhí)行W下 操作的指令:接收查詢,W及將所述多個散列函數(shù)應(yīng)用于所述查詢,W根據(jù)所述二進(jìn)制數(shù)組 確定所述查詢是否與所述擴(kuò)展集合中的數(shù)據(jù)元素之一匹配,并且如果是,則輸出匹配。
[0021] 在另一方面中,所述捜索系統(tǒng)包括當(dāng)執(zhí)行時使得所述一個或多個處理器執(zhí)行W下 操作的指令:從遠(yuǎn)程設(shè)備接收請求,W及作為響應(yīng),將二進(jìn)制數(shù)組發(fā)送到所述遠(yuǎn)程設(shè)備,W 使得能夠在遠(yuǎn)程設(shè)備上進(jìn)行本地捜索。
[0022] 在又一方面中,本應(yīng)用描述了存儲有計算機(jī)可執(zhí)行指令的非瞬時計算機(jī)可讀介 質(zhì),所述指令當(dāng)執(zhí)行時配置處理器執(zhí)行上述方法。
[0023] 在結(jié)合附圖閱讀了 W下對示例的描述之后,本領(lǐng)域技術(shù)人員將理解本申請的其他 方面和特征。
[0024] 在下文的描述中,將結(jié)合"基于距離"的捜索進(jìn)行描述。該捜索也可被稱為"非匹 配"或"不完美"捜索。術(shù)語"基于距離"不必然意味著度量d(x,y)是歐氏距離量度。度量d(x, y)可W在一些示例中包括LI距離、L2距離、編輯距離(針對字符串)、地球移動距離、KL散度 和結(jié)構(gòu)相似度(SSIM)或是和具體數(shù)據(jù)集合的其他相似度量度。對相似度和用于量度相似度 的度量的所有可能理解都被認(rèn)為在術(shù)語"基于距離"的捜索和本文所描述的方法的范圍內(nèi)。
[0025] 如上所述,基于距離的捜索嘗試針對給定闊值或誤差S評估函數(shù)f (X):
[0026]
[0027]
[002引
[0029] 注意到,即使查詢X本身不是S中的成員,f (X)也可W是1(即,S中找到肯定結(jié)果)。 運(yùn)意味著用來使用多個散列函數(shù)將S縮減到二進(jìn)制字符串的經(jīng)典Bloom過濾器方法是不可 能的,運(yùn)是因?yàn)楸仨氃诔蓡T身份測試階段評估距離度量。針對該問題的現(xiàn)有方法包括X和S 的量化W及諸如針對最近鄰捜索的k-d樹算法的算法。然而,運(yùn)些技術(shù)均具有一些缺點(diǎn)。
[0030] 為較大的集合S找到理想的量化器可能是很難的,尤其是對度量d(x,y)評估起來 較為復(fù)雜的情況中更是如此。即使量化器不是理想的,但能夠很好地對距離度量進(jìn)行近似, 其也可能描述和應(yīng)用起來相當(dāng)復(fù)雜。簡單的量化器可能不能足夠好地近似所述度量,并且 可導(dǎo)致多種假陽(false positive)結(jié)果。
[0031] k-d樹是常用于多維空間捜索的數(shù)據(jù)結(jié)構(gòu)。雖然k-d樹算法提供了執(zhí)行最近鄰捜索 的系統(tǒng)方法,但其計算復(fù)雜度比Bloom過濾器高得多。此外,由于k-d樹算法執(zhí)行或近似最近 鄰捜索,所W返回的結(jié)果可能不滿足距離約束d(x,y) ^ 5。如此,可能需要附加檢查來拒絕 運(yùn)些結(jié)果。
[0032] 本申請在一個方面中提供了一種基于距離的捜索系統(tǒng)和方法,其使用特征擴(kuò)展來 有效地將基于距離的捜索移動到集合表示操作中,而不是成員身份測試操作中。運(yùn)使得能 夠簡化成員檢測操作為完美匹配操作,由此降低復(fù)雜度W及改善評估隊列階段的速度。
[0033] 現(xiàn)在參見圖1,圖1中示出了示例捜索系統(tǒng)10的簡化框圖。捜索系統(tǒng)10包括存儲器 12,14、特征擴(kuò)展模塊16和匹配捜索單元18。存儲器12存儲數(shù)據(jù)點(diǎn)的集合S。特征擴(kuò)展模塊16 從存儲器12獲得數(shù)據(jù)點(diǎn)的集合并應(yīng)用下文所述的特征擴(kuò)展操作,W生成擴(kuò)展集合S',然后 可將擴(kuò)展集合S'存儲在存儲器14中。匹配捜索單元18嘗試在擴(kuò)展集合S'中為查詢X標(biāo)識匹 配,其結(jié)果示為f (X)。
[0034] 捜索系統(tǒng)10可實(shí)現(xiàn)在適當(dāng)編程的通用計算設(shè)備上,該設(shè)備執(zhí)行用來執(zhí)行如下特征 擴(kuò)展、存儲和匹配操作的軟件。在一些情況中,軟件可由兩個或更多個處理器執(zhí)行。捜索系 統(tǒng)10可完全或部分地在服務(wù)器、移動設(shè)備、個人計算機(jī)、平板計算機(jī)或其他處理設(shè)備上實(shí) 現(xiàn)。在一些情況中,存儲器12和14是使用同一物理存儲器或硬盤實(shí)現(xiàn)的,但在一些情況中, 它們是不同的邏輯或物理存儲器,并可在一些實(shí)施例中處于不同設(shè)備中。在一些情況中,特 征擴(kuò)展模塊16實(shí)現(xiàn)在服務(wù)器或具有