[0042]在本發(fā)明實施例中,指紋模板數(shù)據(jù)庫中的指紋模板數(shù)據(jù)可以預(yù)先存儲在動態(tài)隨機存取存儲器(Dynamic Random Access Memory,DRAM)??删幊唐骷诮邮盏教幚砥靼l(fā)送的指紋認(rèn)證請求后,連續(xù)不斷的從DRAM中讀取指紋模板數(shù)據(jù)并載入,并行地對讀取出的指紋模板的特征向量進(jìn)行計算,已得到并行計算結(jié)果。
[0043]在可編程器件讀取到指紋模板數(shù)據(jù)后,可以對每一個指紋模板進(jìn)行特征向量桿計算,計算每一個指紋模板對應(yīng)的特征點集合中任意兩個特征點之間的特征向量桿的長度和角度,所有指紋模板對應(yīng)的特征向量桿計算結(jié)果的結(jié)合即為并行計算結(jié)果。
[0044]從上述計算過程中可以得知,在指紋模板對應(yīng)的特征點集合中元素較多時,得到的特征向量桿計算結(jié)果所包含的元素較多。以特征點集合中的元素個數(shù)為20個時,計算任意兩個特征點之間的特征向量桿的長度和角度,得到的結(jié)果為(20X19)/2 = 190,即一個指紋模板對應(yīng)的特征向量桿計算結(jié)果中存在190個元素。因此,為減小計算量,在進(jìn)行特征向量桿計算時,可以只計算相鄰兩個元素之間的特征桿向量的長度和角度。也可以采用其他的方法來減小特征桿向量計算的計算量,此處不做贅述。
[0045]步驟S102,將并行運算結(jié)果與待比對指紋的特征向量計算結(jié)果進(jìn)行比對,篩出符合預(yù)設(shè)規(guī)則的指紋模板數(shù)據(jù)。
[0046]在具體實施中,待比對指紋信息可以存儲在可編程器件中。待比對指紋的特征向量計算結(jié)果可以為:待比對指紋的特征向量桿計算結(jié)果,即計算待比對指紋對應(yīng)的特征點集合中,任意兩個特征點之間的特征向量桿的長度與角度,得到的集合即為待比對指紋的特征向量桿計算結(jié)果。
[0047]在本發(fā)明實施例中,在計算得到待比對指紋對應(yīng)的特征向量桿計算結(jié)果后,可以將其與指紋模板對應(yīng)的特征向量桿計算結(jié)果進(jìn)行比對,以篩選出部分指紋模板。篩選的原則可以為:將待比對指紋對應(yīng)的特征向量桿計算結(jié)果,與指紋模板對應(yīng)的特征向量桿計算結(jié)果進(jìn)行相似度計算,篩選出相似度大于預(yù)設(shè)值的指紋模板,并發(fā)送至處理器。即:根據(jù)待比對指紋對應(yīng)的特征向量桿的長度與角度的集合中的元素,與指紋模板對應(yīng)的特征向量桿的長度與角度的集合中的元素,對二者進(jìn)行相似度計算。
[0048]在本發(fā)明實施例中,兩個集合相似可以表述為:兩個集合中的元素個數(shù)相等,兩個集合中的元素一一對應(yīng),當(dāng)兩個集合中其中一個元素,與一一對應(yīng)的元素之間的差值處于一定范圍內(nèi)時,判定兩個元素相似;當(dāng)兩個集合中相似元素的個數(shù)大于一定值時,判定兩個集合相似。
[0049]例如,待比對指紋對應(yīng)的特征向量桿計算結(jié)果中的元素為{a0,al,a2,......,an},
其中一個指紋模板對應(yīng)的特征向量桿計算結(jié)果中的元素為{b0,bl,b2,......,1^},&0與130
--對應(yīng),al與bl--對應(yīng),......,an與bn--對應(yīng)。a0與b0的差值處于一定范圍,判定a0與b0相似。al與bl的差值大于一定范圍,判定al與bl不相似。根據(jù)相似元素的個數(shù),即可獲取兩個集合的相似度,從而判定兩個集合是否相似。
[0050]步驟S103,所述處理器將所述待比對指紋數(shù)據(jù)與所述篩選出的指紋模板數(shù)據(jù)進(jìn)行特征相似度分值計算,從計算結(jié)果中獲取指紋識別運算結(jié)果。
[0051]在具體實施中,可編程器件在篩選出符合規(guī)則的指紋模板數(shù)據(jù)后,可以將篩選出的符合規(guī)則的指紋模板數(shù)據(jù)發(fā)送至處理器。處理器根據(jù)接收到的篩選出的指紋模板數(shù)據(jù)后,將其與待比對指紋數(shù)據(jù)進(jìn)行特征相似度分值計算。當(dāng)計算得到的特征相似度分值大于預(yù)設(shè)閾值時,即判定特征相似度分值大于預(yù)設(shè)閾值的指紋模板與待比對指紋為同一指紋。
[0052]在本發(fā)明實施例中,處理器可以為ARM處理器。ARM處理器可以將篩選出的指紋模板數(shù)據(jù)與待比對指紋數(shù)據(jù)進(jìn)行精確對比計算,以獲取特征相似度分值,精確對比計算可以包括特征桿對生成、旋轉(zhuǎn)、平移以及相似度計算等。ARM處理器可以建立精確比對線程,進(jìn)行特征相似度分值計算。
[0053]例如,可編程器件篩選出符合規(guī)則的指紋模板數(shù)據(jù)的個數(shù)為20個,將20個指紋模板數(shù)據(jù)發(fā)送至ARM處理器。ARM處理器對待比對指紋數(shù)據(jù)與20個篩選出的指紋模板數(shù)據(jù)進(jìn)行精確比對計算,得知指紋模板A與待比對指紋的特征相似度分值為90 %,大于預(yù)設(shè)閾值80 %,因此,判定指紋模板數(shù)據(jù)庫中存在與待比對指紋相同的指紋模板A。
[0054]在實際應(yīng)用中,指紋模板數(shù)據(jù)庫的數(shù)據(jù)量可能較大,占用的存儲空間較多,因此對DRAM的存儲空間的要求較高。通常情況下,使用較大存儲空間的DRAM來存儲指紋模板數(shù)據(jù)庫中的數(shù)據(jù),成本較高。
[0055]而在本發(fā)明實施例中,可以將指紋模板數(shù)據(jù)按照一定的規(guī)則分別存儲在多個DRAM中??梢园凑罩讣y模板的順序進(jìn)行劃分,也可以根據(jù)指紋模板的類型進(jìn)行劃分,還可以存在其他的劃分類型,此處不做贅述。
[0056]例如,按照指紋模板的順序進(jìn)行劃分,將排序標(biāo)識為I?η的指紋模板數(shù)據(jù)存儲在DRAMl中,將排序標(biāo)識為η+1?2η的指紋模板數(shù)據(jù)存儲在DRAM2中。在可編程器件讀取指紋模板數(shù)據(jù)時,可以依次從DRAMl、DRAM2、……、DRAMn中讀取指紋模板數(shù)據(jù)。
[0057]因此,采用本發(fā)明實施例中的方案,可以降低對DRAM的存儲容量需求,從而降低成本。
[0058]在實際應(yīng)用中,也可以將指紋模板數(shù)據(jù)庫中的指紋模板數(shù)據(jù)存儲在不同的計算節(jié)點中,通過調(diào)度服務(wù)器將指紋比對任務(wù)發(fā)送至多個計算節(jié)點。每個計算節(jié)點在計算完成后將結(jié)果反饋給調(diào)度服務(wù)器,調(diào)度服務(wù)器根據(jù)反饋的結(jié)果,獲取最終的指紋識別運算結(jié)果。
[0059]通用的處理器,例如ARM處理器,其主要用于解決復(fù)雜的邏輯處理過程,在分支決策運算上具有優(yōu)勢。而指紋識別算法的邏輯關(guān)系簡單、運算量大、數(shù)據(jù)關(guān)聯(lián)度較小,采用ARM處理器進(jìn)行運算時,存在耗時較長、運算效率低下的問題。因此,現(xiàn)有技術(shù)中,通常使用并行計算來提尚運算效率。
[0060]通常采用FPGA對指紋識別算法進(jìn)行運算,運算效率高、性能穩(wěn)定且功耗低。然而,由于指紋識別算法的復(fù)雜度較高,將完整的指紋識別算法全部移植到FPGA內(nèi),對FPGA的邏輯門數(shù)量級的要求顯著提高,導(dǎo)致成本上升。
[0061]在本發(fā)明一實施例中,采用FPGA進(jìn)行運算量較大的計算,例如,特征向量桿生成匹配運算,采用ARM處理器進(jìn)行運算量較小的計算,例如,指紋模板與待比對指紋特征相似度分值計算。通過FPGA與ARM的并行數(shù)據(jù)處理,可以加速指紋識別算法的處理速度。
[0062]在本發(fā)明實施例中,在進(jìn)行指紋識別運算時,先對指紋模板數(shù)據(jù)庫中的指紋模板進(jìn)行篩選,篩選出初步符合待比對指紋特征信息的指紋模板,使得處理器所要進(jìn)行處理的指紋模板數(shù)據(jù)大大減少,有效地提高了運算效率。
[0063]由此可見,在本發(fā)明實施例中,通過可編程器件將待比對指紋的特征向量與指紋模板的特征向量進(jìn)行并行計算,從指紋模板數(shù)據(jù)庫中篩選出符合規(guī)則的指紋模板數(shù)據(jù)。處理器只對篩選出的指紋模板數(shù)據(jù)與待比對指紋進(jìn)行特征相似度分值計算,從而可以大大降低進(jìn)行特征相似度分值計算的指紋模板的數(shù)量,因此可以大大降低指紋識別算法耗費的時間,提尚運算效率。
[0064]參照圖2,本發(fā)明實施例提供了一種指紋識別處理系統(tǒng)20,包括可編程器件201以及處理器202,其中:
[0065]所述可編程器件201,適于在接收到處理器發(fā)送的指紋認(rèn)證請求后,將指紋模板數(shù)據(jù)庫中指紋模板的特征向量進(jìn)行并行計算;將并行計算結(jié)果與待比對指紋的特征向量計算結(jié)果進(jìn)行比對,篩選出符合預(yù)設(shè)規(guī)則的指紋模板數(shù)據(jù);
[0066]所述處理器202,適于接收所述可編程器件201發(fā)送的所述符合預(yù)設(shè)規(guī)則的指紋模板數(shù)據(jù),并將所述待比對指紋數(shù)據(jù)與所述篩選出的指紋模板數(shù)據(jù)進(jìn)行特征相似度分值計算,從計算結(jié)果中獲取指紋識別運算結(jié)果。
[0067]在具體實施中,所述可編程器件201,適于通過多線程將所述待比對指紋數(shù)據(jù)與所述篩選出的指紋模板數(shù)據(jù)進(jìn)行并行的特征相似度分值計算。
[0068]在具體實施中,所述可編程器件201,適于從所述指紋模板數(shù)據(jù)庫中并行地選取指紋模板,計算每一個指紋模板對應(yīng)的特征點集合中任意兩個特征點之間的特征向量桿的長度與角度,得到并行計算結(jié)果,所述并行計算結(jié)果包括:每一個指紋模板對應(yīng)的特征向量桿的長度與角度的集合。
[0069]在具體實施中,所述可編程器件201獲取