專利名稱:適于硬件加速的指紋粗比對(duì)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)識(shí)別領(lǐng)域,涉及指紋比對(duì)算法及后設(shè)備,更具體的涉及基于特征點(diǎn)的指紋比對(duì)。本發(fā)明提出了一種適于硬件加速的指紋粗比對(duì)的方法,同時(shí)采用此方法設(shè)計(jì)出了基于FPGA的指紋粗比對(duì)PCI加速卡,用于超大規(guī)模指紋數(shù)據(jù)庫(kù)的指紋比對(duì)。
背景技術(shù):
隨著信息技術(shù)、計(jì)算機(jī)技術(shù)和通信技術(shù)的發(fā)展,社會(huì)正在向電子化的方向迅速發(fā)展。在很多場(chǎng)合,為確保日常的交易和事務(wù)的安全性,必須對(duì)個(gè)人身份進(jìn)行識(shí)別和驗(yàn)證。人的一些生物特征和行為特征可以幫助確認(rèn)個(gè)人的身份。這些生物特征有指紋、掌紋、人臉、視網(wǎng)膜、虹膜、血液和毛發(fā)等,而可供使用的行為特征有聲音、簽字等。從驗(yàn)證身份的準(zhǔn)確性來(lái)看,由于指紋的唯一性和持久性好,在刑偵領(lǐng)域被稱為“物證之首”,也使自動(dòng)指紋識(shí)別系統(tǒng)(AFIS)最先在刑事偵察方面得到廣泛的應(yīng)用。
人們?cè)谏钪谐?huì)遇到“此人很像某人”的情況,這是人的大腦完成了將“此人”與記憶中的“某人”的特征相比較得出的結(jié)論。自動(dòng)指紋識(shí)別系統(tǒng)則是通過(guò)計(jì)算機(jī)來(lái)完成與此類似的思維過(guò)程將得到的指紋與數(shù)據(jù)庫(kù)內(nèi)存儲(chǔ)的指紋相比較,看二者是否是同一人的指紋。指紋識(shí)別的精確與否是以人眼判斷的結(jié)果作為客觀比較準(zhǔn)則的。計(jì)算機(jī)識(shí)別的過(guò)程是一個(gè)模擬大腦思維的過(guò)程,因而研究的核心內(nèi)容就是不斷地探索、尋找新的數(shù)學(xué)模型、或理論模型,使計(jì)算機(jī)的“思維判斷”越來(lái)越接近于人類大腦的思維與判斷。
根據(jù)應(yīng)用場(chǎng)合的不同,指紋識(shí)別系統(tǒng)可分為身份認(rèn)證和查證兩大類。身份認(rèn)證系統(tǒng)是一對(duì)一的查比系統(tǒng),即將欲驗(yàn)證的用戶指紋與庫(kù)中存儲(chǔ)的合法用戶的指紋進(jìn)行比對(duì)來(lái)確認(rèn)其身份的合法性;而查證系統(tǒng)則是一對(duì)多的查比系統(tǒng),警察局和公安部門就是應(yīng)用查證系統(tǒng)來(lái)進(jìn)行案件偵破的。這兩種系統(tǒng)有截然不同的特點(diǎn)前者只需驗(yàn)證欲比對(duì)指紋和庫(kù)中特定指紋是否匹配;后者則需要搜索和遍歷數(shù)據(jù)庫(kù)中的每一枚指紋,將欲比對(duì)的指紋和庫(kù)中指紋一一進(jìn)行比對(duì),在指紋庫(kù)中找出和欲比對(duì)指紋匹配的指紋,來(lái)確定欲比對(duì)指紋的身份。
在指紋查證的實(shí)際應(yīng)用中,需要將待測(cè)樣本與一個(gè)超大型指紋庫(kù)中數(shù)量巨大的指紋進(jìn)行比對(duì)。例如刑偵應(yīng)用中,省廳級(jí)和全國(guó)級(jí)的指紋庫(kù)可能在百萬(wàn)人(每人十指)以上;用于出入境、外來(lái)人口和福利管理的身份識(shí)別系統(tǒng),其庫(kù)容量也可能達(dá)到這個(gè)級(jí)別。在這種情況下,高準(zhǔn)確率算法的計(jì)算復(fù)雜性和大庫(kù)容量對(duì)比對(duì)速度的高要求構(gòu)成了一對(duì)矛盾。解決這個(gè)矛盾的重要途徑之一是在系統(tǒng)中采用并行處理的結(jié)構(gòu);另一個(gè)途徑是采用帶有硬件加速的兩級(jí)比對(duì)算法,即首先利用硬件實(shí)現(xiàn)遺漏率低、剔除率高的粗比對(duì)算法,對(duì)大規(guī)模指紋庫(kù)進(jìn)行快速篩選,剔除不匹配的指紋,選出候選指紋并計(jì)算出候選指紋與現(xiàn)場(chǎng)指紋(欲查證的指紋,如從犯罪現(xiàn)場(chǎng)采集的指紋)的位移和旋轉(zhuǎn)參數(shù),然后用軟件在計(jì)算機(jī)上實(shí)現(xiàn)精細(xì)比對(duì)。
本發(fā)明提出的基于硬件加速的指紋粗比對(duì)方法以及比對(duì)加速裝置適用于百萬(wàn)到千萬(wàn)人的超大型指紋識(shí)別系統(tǒng)。
發(fā)明的內(nèi)容為了減小運(yùn)算量,在提高比對(duì)速度的同時(shí)又保證比對(duì)的準(zhǔn)確性,本發(fā)明提出了一種全新的適用于硬件加速的指紋比對(duì)方法。該方法采用超標(biāo)量、超流水的結(jié)構(gòu),首先進(jìn)行基于特征邊的比對(duì),然后根據(jù)匹配的特征邊組成要比對(duì)的特征三角形,再進(jìn)行特征三角形比對(duì),從而得到庫(kù)指紋與現(xiàn)場(chǎng)指紋三角形的偏移信息。除此之外,本發(fā)明還提出了一種利用這些偏移信息來(lái)準(zhǔn)確計(jì)算整枚庫(kù)指紋和現(xiàn)場(chǎng)指紋偏移量的方法。本發(fā)明提出的這種由邊過(guò)渡到三角形的逐級(jí)比對(duì)的方法,大幅度減少了需要比對(duì)的特征三角形的數(shù)量,提高了比對(duì)速度;同時(shí)提出的偏移量的計(jì)算方法提高了指紋比對(duì)的剔除率和偏移量計(jì)算的準(zhǔn)確性。
基于上述指紋比對(duì)算法,本發(fā)明研制出了一種基于FPGA的指紋比對(duì)加速卡。這種流水線加并行處理的算法結(jié)構(gòu)極大地提高了比對(duì)的效率。該加速卡的系統(tǒng)結(jié)構(gòu)框圖見(jiàn)附圖10。系統(tǒng)由三大部分組成①采用FPGA芯片(如ALTERA STRTIX II EP2S130F)作為系統(tǒng)的數(shù)據(jù)處理單元完成指紋粗比對(duì);同時(shí)作為PCI總線控制器實(shí)現(xiàn)系統(tǒng)和主機(jī)之間的通信;②雙端口DPSRAM實(shí)現(xiàn)板上庫(kù)指紋緩沖的功能;③SRAM實(shí)現(xiàn)距離&方向角表的功能。
圖1為庫(kù)指紋和現(xiàn)場(chǎng)指紋數(shù)據(jù)格式,其中圖(a)為庫(kù)指紋數(shù)據(jù)格式,圖(b)為現(xiàn)場(chǎng)指紋數(shù)據(jù)格式;圖2為算法的結(jié)構(gòu)框圖;圖3為特征邊計(jì)算的三級(jí)流水線結(jié)構(gòu)圖;圖4為邊比對(duì)模塊結(jié)構(gòu)框圖;圖5為邊存儲(chǔ)模塊的存儲(chǔ)單元結(jié)構(gòu)圖;圖6為第三邊(BC)計(jì)算的三級(jí)流水線結(jié)構(gòu)圖;圖7為BC邊比對(duì)和三角形偏移信息計(jì)算模塊的5級(jí)流水線結(jié)構(gòu)圖;圖8為偏移信息的乒乓存儲(chǔ)結(jié)構(gòu)圖;圖9為偏移信息處理的結(jié)構(gòu)圖;圖10為系統(tǒng)總體框架圖。
具體實(shí)施例方式
本發(fā)明提出的粗比對(duì)方法包括兩部分特征三角形的比對(duì)和指紋偏移量的計(jì)算。該方法的基本原理是遍歷庫(kù)指紋中所有的特征邊(由兩個(gè)特征點(diǎn)的排列構(gòu)成),生成n組庫(kù)指紋特征邊,這里n為特征點(diǎn)的個(gè)數(shù),特征邊用庫(kù)指紋特征點(diǎn)序號(hào)表示的點(diǎn)對(duì)來(lái)記錄,其順序如下(1,1)(1,2)(1,3)…(1,n-1)(1,n);(2,1)(2,2)(2,3)…(2,n-1)(2,n);……(n-1,1)(n-1,2)(n-1,3)…(n-1,n-1)(n-1,n);(n,1)(n,2)(n1,3)…(n,n-1)(n,n)將遍歷生成的每條庫(kù)指紋特征邊與現(xiàn)場(chǎng)三角形的兩條特征邊(AB、AC邊)同時(shí)進(jìn)行比對(duì)。這樣遍歷比對(duì)完第i組庫(kù)指紋特征邊后,會(huì)同時(shí)得到另外兩組邊一組是第i組庫(kù)指紋特征邊中和現(xiàn)場(chǎng)三角形特征邊AB匹配的特征邊(i,j1),(i,j2)…(i,jm),另一組是第i組特征邊中和現(xiàn)場(chǎng)三角形AC邊匹配的特征邊(i,k1),(i,k2)…(i,kn),將這兩組庫(kù)指紋特征邊組合產(chǎn)生一組要比對(duì)的第三邊(j1,k1),(j1,k2)…(j1,kn)(j2,k1),(j2,k2)…(j2,kn)… …(jm,k1),(jm,k2)…(jm,kn)再將這組第三邊和現(xiàn)場(chǎng)三角形的BC邊進(jìn)行比對(duì)。如果這組邊中有與BC邊匹配的邊,就會(huì)得到一組由三條匹配的庫(kù)指紋特征邊組成的庫(kù)指紋三角形(i,jx,ky),接著再計(jì)算這組庫(kù)指紋三角形和對(duì)應(yīng)現(xiàn)場(chǎng)三角形的偏移量(描述庫(kù)指紋三角形相對(duì)于現(xiàn)場(chǎng)三角形位置偏移的一組參量)。這種先進(jìn)行邊比對(duì),剔除不匹配的特征邊,再由匹配的邊組成要比對(duì)的三角形的方法,大大減少了特征三角形比對(duì)的數(shù)量,提高了比對(duì)的速度。按照這種方法每比對(duì)完一組庫(kù)指紋特征邊(即頂點(diǎn)序號(hào)相同的一組邊),就會(huì)得到一組由三條匹配邊組成的三角形及其對(duì)應(yīng)的偏移量。當(dāng)比對(duì)完一枚庫(kù)指紋的所有特征邊后,就會(huì)得到和該現(xiàn)場(chǎng)三角形匹配的所有庫(kù)指紋三角形及其對(duì)應(yīng)的偏移量,這樣就完成了所有庫(kù)指紋三角形和一個(gè)現(xiàn)場(chǎng)三角形的比對(duì)。用同樣的方法對(duì)其他所有的現(xiàn)場(chǎng)三角形進(jìn)行比對(duì),就可以得到和每個(gè)現(xiàn)場(chǎng)指紋三角形匹配的所有庫(kù)指紋三角形及其偏移量,最后按照本發(fā)明提出的偏移量處理方法,就可以根據(jù)這些偏移量找出該枚庫(kù)指紋與現(xiàn)場(chǎng)指紋的偏移量,并判斷該枚庫(kù)指紋與現(xiàn)場(chǎng)指紋是否匹配。
下面詳細(xì)介紹本發(fā)明的具體實(shí)施方法。
一、適用于硬件加速的指紋粗比對(duì)方法(一)方法中采用的庫(kù)指紋和現(xiàn)場(chǎng)指紋的數(shù)據(jù)格式指紋的特征點(diǎn)通常用紋線的分叉點(diǎn)(ridge bifurcations)和端點(diǎn)(ridge endings)來(lái)表示。本發(fā)明中提到的現(xiàn)場(chǎng)指紋和庫(kù)指紋特征點(diǎn)用(x,y,Sita)來(lái)表示,其中x、y分別表示該點(diǎn)的橫、縱坐標(biāo),Sita表示該點(diǎn)紋線的切線方向(我們稱其為特征點(diǎn)的方向角)。
庫(kù)指紋中存儲(chǔ)了此枚庫(kù)指紋所有特征點(diǎn)的信息,如附圖1(a)所示。
現(xiàn)場(chǎng)指紋是經(jīng)過(guò)處理的欲查證的指紋,已經(jīng)自動(dòng)或經(jīng)過(guò)人工提取了特征點(diǎn),我們用這些特征點(diǎn)組成若干個(gè)特征三角形來(lái)表示此枚現(xiàn)場(chǎng)指紋的結(jié)構(gòu)信息。因此現(xiàn)場(chǎng)指紋存儲(chǔ)的信息包括此枚現(xiàn)場(chǎng)指紋提取出的所有特征三角形信息,即每個(gè)特征三角形三個(gè)特征點(diǎn)的信息(橫、縱坐標(biāo)和方向角)、三條特征邊的距離、每條特征邊相對(duì)于X軸的夾角以及各個(gè)頂點(diǎn)的方向角與各條特征邊方向角的夾角等,如附圖1(b)所示。
(二)特征三角形的比對(duì)其算法的結(jié)構(gòu)框圖如附圖2所示。
該模塊采用流水線加并行處理的結(jié)構(gòu),庫(kù)指紋數(shù)據(jù)源源不斷地流入該模塊,依次經(jīng)過(guò)內(nèi)部各子模塊的處理,最后得到和現(xiàn)場(chǎng)三角形匹配的庫(kù)指紋三角形的偏移信息,其中帶星號(hào)的模塊采用了流水線的結(jié)構(gòu),其它模塊用狀態(tài)機(jī)實(shí)現(xiàn)。
(1)特征邊產(chǎn)生該模塊用來(lái)遍歷地讀取庫(kù)指紋特征點(diǎn)信息,產(chǎn)生要比對(duì)的特征邊。特征邊是以點(diǎn)對(duì)的形式產(chǎn)生的——[(XiYiθi),(XjYjθj)]表示第i和j個(gè)特征點(diǎn)組成的特征邊。若庫(kù)指紋有n個(gè)特征點(diǎn),則遍歷生成n組庫(kù)指紋特征邊(用庫(kù)指紋特征點(diǎn)序號(hào)表示的點(diǎn)對(duì)),其順序如下(1,1)(1,2)(1,3)…(1,n-1)(1,n);(2,1)(2,2)(2,3)…(2,n-1)(2,n);……(n-1,1)(n-1,2)(n-1,3)…(n-1,n-1)(n-1,n);(n,1)(n,2)(n1,3)…(n,n-1)(n,n)(2)特征邊計(jì)算根據(jù)前級(jí)輸出的特征點(diǎn)對(duì)[(XaYaθa),(XbYbθb)],計(jì)算出特征邊ab的信息,包括該特征邊ab的距離disAB,該邊的角度AB_dir。我們采用查片外同步RAM表的方式完成特征邊的計(jì)算,片外RAM表內(nèi)存儲(chǔ)的就是特征點(diǎn)對(duì)對(duì)應(yīng)的特征邊距離disAB和角度AB_dir。
其中,
disAB=(Xi-Xj)2+(Yi-Yj)2]]>AB_dir=[arccos(|Xi-Xj|/disAB)]在0~360度內(nèi)取模該模塊的數(shù)據(jù)流圖如附圖3所示。我們采用了三級(jí)流水的結(jié)構(gòu)來(lái)實(shí)現(xiàn)計(jì)算輸入的兩個(gè)特征點(diǎn)組成的特征邊的距離和角度。第一級(jí)流水線產(chǎn)生查表地址,第二級(jí)流水線查同步距離和角度表(片外RAM),第三級(jí)流水線調(diào)整查表得到的角度值。
(3)與現(xiàn)場(chǎng)三角形AB,AC邊比對(duì)為了只遍歷一次特征邊就完成邊比對(duì),我們采用并行處理的結(jié)構(gòu),生成的特征邊輸入一個(gè)m路(假設(shè)現(xiàn)場(chǎng)指紋至多有m個(gè)特征三角形)并行比對(duì)的模塊,各路分別同時(shí)完成與對(duì)應(yīng)現(xiàn)場(chǎng)三角形AB,AC邊的比對(duì),并分別計(jì)算旋轉(zhuǎn)角,供后面的計(jì)算偏移量模塊使用。我們采用對(duì)應(yīng)特征邊的距離、角度、點(diǎn)線夾角、以及這些參量的累計(jì)誤差等6個(gè)條件作為兩條邊是否匹配的判決準(zhǔn)則,當(dāng)兩條邊同時(shí)滿足規(guī)定的判決條件時(shí),則認(rèn)為這兩條邊匹配。
該模塊由三部分組成rotPointA,ABcomparison和ACcomparison。其結(jié)構(gòu)框圖如附圖4所示。其中rotPointA用來(lái)計(jì)算并判斷特征點(diǎn)a點(diǎn)相對(duì)現(xiàn)場(chǎng)三角形A點(diǎn)的旋轉(zhuǎn)角rPointA;ABcomparison和ACcomparison分別完成特征邊ab與AB,AC邊比對(duì),并分別計(jì)算該特征邊相對(duì)AB,AC邊的旋轉(zhuǎn)角度(rAB dir、rAC dir)、點(diǎn)旋轉(zhuǎn)角度(rPointB、rPointC)和累計(jì)誤差(AccErrAB、AccErrAC)。
(4)特征邊存儲(chǔ)模塊該模塊用來(lái)存儲(chǔ)與現(xiàn)場(chǎng)三角形AB,AC邊匹配的庫(kù)指紋特征邊。該模塊采用乒乓操作的結(jié)構(gòu)頂點(diǎn)為j并且和AB,AC邊匹配的庫(kù)指紋特征邊存儲(chǔ)在邊存儲(chǔ)1單元中,當(dāng)頂點(diǎn)為j的所有庫(kù)指紋特征邊比對(duì)完畢,則后續(xù)模塊讀取邊存儲(chǔ)1單元中庫(kù)指紋邊組成的要比對(duì)的第三邊,同時(shí)頂點(diǎn)為j+1和AB,AC邊匹配的庫(kù)指紋邊存儲(chǔ)在邊存儲(chǔ)2單元中;頂點(diǎn)為j+1的特征邊比對(duì)完畢后就讀取邊存儲(chǔ)2單元生成第三邊,同時(shí)頂點(diǎn)為j+2的匹配特征邊存在邊存儲(chǔ)1單元中……這樣依次類推。因此從外部來(lái)看,匹配的庫(kù)指紋邊的存儲(chǔ)和讀取是同時(shí)進(jìn)行了,這種結(jié)構(gòu)保證了數(shù)據(jù)能夠順利地流過(guò)流水線,而不致于打斷流水線。
邊存儲(chǔ)模塊的存儲(chǔ)單元結(jié)構(gòu)如附圖5所示,我們采用乒乓操作方式,分為上下兩個(gè)部分,每部分又分為兩個(gè)單元,分別存儲(chǔ)頂點(diǎn)(匹配的庫(kù)指紋特征邊的起點(diǎn),)信息和與AB,AC邊匹配的庫(kù)指紋邊信息。
(5)BC邊產(chǎn)生模塊該模塊根據(jù)前級(jí)模塊存儲(chǔ)的匹配庫(kù)指紋邊生成要比對(duì)的第三邊,產(chǎn)生的原理如下若以頂點(diǎn)為i的庫(kù)指紋邊中,和現(xiàn)場(chǎng)三角形ABC的AB邊匹配的邊為(i,j1),(i,j2)…(i,jm),和AC邊匹配的庫(kù)指紋邊為(i,k1),(i,k2)…(i,kn),則生成的要比對(duì)的第三邊為(j1,k1),(j1,k2)…(j1,kn)(j2,k1),(j2,k2)…(j2,kn)… …(jm,k1),(jm,k2)…(jm,kn)即所有匹配的b,c點(diǎn)的組合。
(6)并串轉(zhuǎn)換模塊由于我們采用m路并行比對(duì)的結(jié)構(gòu),每一路都有可能產(chǎn)生和對(duì)應(yīng)現(xiàn)場(chǎng)三角形AB,AC邊匹配的庫(kù)指紋邊,當(dāng)比對(duì)完一組起點(diǎn)相同的庫(kù)指紋特征邊時(shí)至多會(huì)有m路要求輸出第三邊,并串轉(zhuǎn)換模塊就是把這至多m路要求輸出的第三邊以串行的形式輸出。
(7)BC邊計(jì)算模塊該模塊根據(jù)上級(jí)模塊輸出的第三邊(bc邊)信息計(jì)算出要比對(duì)的第三邊的距離和角度,同時(shí)計(jì)算出這兩條庫(kù)指紋邊和現(xiàn)場(chǎng)指紋邊的累計(jì)誤差。
該模塊與模塊(2)相似,也采用三級(jí)流水線的結(jié)構(gòu)第一級(jí)流水線計(jì)算查表地址;第二級(jí)流水線完成對(duì)距離角度查表(片外RAM);第三級(jí)完成角度調(diào)整。和模塊(2)不同的是,該模塊多出了計(jì)算三特征點(diǎn)橫縱坐標(biāo)和的運(yùn)算,該求和運(yùn)算采用兩級(jí)流水的結(jié)構(gòu)完成,分別在該模塊的第一級(jí)和第二級(jí)流水線內(nèi)完成。
該模塊數(shù)據(jù)流圖如附圖6所示。
(8)BC邊比對(duì)和三角形偏移信息計(jì)算模塊該模塊功能是①根據(jù)模塊(7)計(jì)算得到的第三邊信息和對(duì)應(yīng)現(xiàn)場(chǎng)三角形(N)的BC進(jìn)行比對(duì),判斷第三邊是否和BC邊匹配;②計(jì)算頂點(diǎn)和第三邊確定的庫(kù)指紋三角形與對(duì)應(yīng)的現(xiàn)場(chǎng)指紋三角形N的累計(jì)誤差;③計(jì)算庫(kù)指紋三角形三頂點(diǎn)橫縱坐標(biāo)的均值以及庫(kù)指紋三角形相對(duì)現(xiàn)場(chǎng)三角形的旋轉(zhuǎn)角度(用于后級(jí)模塊計(jì)算偏移量)。
該模塊采用5級(jí)流水線的結(jié)構(gòu),各級(jí)流水線完成的運(yùn)算如附圖7所示。BC邊比對(duì)在前三級(jí)流水線內(nèi)完成;6個(gè)偏移角度的求和在前三級(jí)流水線內(nèi)完成,對(duì)偏移角度和的除法運(yùn)算在第四、五級(jí)流水線內(nèi)完成,最后得到平均偏移角度作為該特征三角形相對(duì)現(xiàn)場(chǎng)三角形的偏移角度DeltaSita;對(duì)橫縱坐標(biāo)和作除法運(yùn)算得到橫縱坐標(biāo)均值XD,YD分布在五級(jí)流水線內(nèi)完成。圖中XF,YF是對(duì)應(yīng)現(xiàn)場(chǎng)三角形橫縱坐標(biāo)的均值。
(9)偏移信息存儲(chǔ)模塊該模塊的功能是記錄和每個(gè)現(xiàn)場(chǎng)指紋三角形匹配的庫(kù)指紋三角形的偏移信息。
根據(jù)大量實(shí)驗(yàn)的統(tǒng)計(jì)數(shù)據(jù),對(duì)于每個(gè)現(xiàn)場(chǎng)指紋三角形我們只存儲(chǔ)累計(jì)誤差A(yù)ccErr最小的前I個(gè)庫(kù)指紋三角形的偏移信息。每個(gè)現(xiàn)場(chǎng)指紋可以用最多M個(gè)特征三角形表示,因此每枚現(xiàn)場(chǎng)指紋最多需要存儲(chǔ)MI個(gè)匹配的庫(kù)三角形偏移信息,存儲(chǔ)的信息量比較大。為了減小存儲(chǔ)所需的寄存器資源,本發(fā)明采用寄存器間接尋址的結(jié)構(gòu)來(lái)實(shí)現(xiàn)該模塊,即將偏移信息存于Block RAM(FPGA片上RAM)中,將Block RAM的地址存于間址寄存器(FPGA內(nèi)觸發(fā)器)中。間址寄存器共有M行,每一行對(duì)應(yīng)一個(gè)現(xiàn)場(chǎng)三角形,每個(gè)單元中存儲(chǔ)的Block RAM的地址是根據(jù)該地址所對(duì)應(yīng)的偏移信息中的累計(jì)誤差A(yù)ccErr按從小到大排列的。
為了不打斷流水線,本發(fā)明采用了乒乓存儲(chǔ)結(jié)構(gòu)。第i枚庫(kù)指紋進(jìn)行比對(duì)時(shí),其偏移信息和Block RAM地址存于淺色單元中,同時(shí)后級(jí)模塊讀取深色單元中存儲(chǔ)的第i-1枚庫(kù)指紋偏移信息進(jìn)行處理;第i+1枚庫(kù)指紋進(jìn)行比對(duì)時(shí),其偏移信息和Block RAM地址存于深色單元中,同時(shí)后級(jí)模塊讀取淺色單元中存儲(chǔ)的第i枚庫(kù)指紋偏移信息進(jìn)行處理……按這種方法輪流存儲(chǔ)和讀取,保證了流水線的暢通。
該模塊的存儲(chǔ)結(jié)構(gòu)如附圖8所示。
(三)偏移信息處理該模塊的結(jié)構(gòu)框圖如附圖9所示。
圖中帶星號(hào)模塊采用流水線的結(jié)構(gòu),其他模塊采用狀態(tài)機(jī)進(jìn)行控制。
該模塊是通過(guò)遍歷掃描偏移信息存儲(chǔ)單元,從中選出J個(gè)最有可能代表整枚庫(kù)指紋旋轉(zhuǎn)的基偏移量,通過(guò)再次遍歷偏移信息存儲(chǔ)單元,將此枚庫(kù)指紋的所有偏移信息與已選出的J個(gè)基偏移量分別同時(shí)進(jìn)行比較,根據(jù)比對(duì)結(jié)果分別同時(shí)對(duì)每個(gè)基偏移量統(tǒng)計(jì)一組參量,最后根據(jù)每個(gè)基偏移量的參量進(jìn)行打分,根據(jù)分值判斷此枚庫(kù)指紋是否與現(xiàn)場(chǎng)指紋匹配,如果匹配則輸出此枚庫(kù)指紋相對(duì)現(xiàn)場(chǎng)指紋的偏移量。
(1)偏移信息讀取為了后級(jí)模塊的計(jì)算,需要對(duì)存儲(chǔ)的偏移信息進(jìn)行三次讀取第一讀取的偏移信息用于選取基偏移量;第二次讀取用于基偏移量比較;第三次讀取用于計(jì)算偏移信息累計(jì)誤差的方差。
(2)偏移量計(jì)算該模塊對(duì)偏移信息讀取模塊第一次輸出的偏移信息(Δθ,XD,YD,XF,YF,AccErr,N)進(jìn)行計(jì)算,將其轉(zhuǎn)化成偏移量。具體的計(jì)算公式如下ΔX=XD-(XFcosΔθ+YFsinΔθ)ΔY=Y(jié)D-[XFsin(Δθ+180°)+YFcosΔθ]
(3)基偏移量生成該模塊采用狀態(tài)機(jī)來(lái)實(shí)現(xiàn)。偏移量計(jì)算模塊輸出的Flag_scanl信號(hào)啟動(dòng)狀態(tài)機(jī)進(jìn)行基偏移量生成,從MI個(gè)偏移量中選出J個(gè)基偏移量(Δθ1,ΔX1,ΔY1,AccErr1)…(ΔθJ,ΔXJ,ΔYJ,AccErrJ)。
(4)基偏移量比較該模塊采用并行結(jié)構(gòu),將輸入的偏移信息Δθ,XD,YD,XF,YF,AccErr,N分別同時(shí)和J個(gè)基偏移量進(jìn)行比較,判斷輸入的偏移信息是否與對(duì)應(yīng)的基偏移量匹配。
(5)參量統(tǒng)計(jì)該模塊分別對(duì)每個(gè)基偏移量i統(tǒng)計(jì)一組參量(Tri_numi,F(xiàn)Tri_numi,AccErr_Meani,AccErr_Deviationi),然后根據(jù)這些參量分別對(duì)每個(gè)基偏移量進(jìn)行打分,分值的高低就表示該基偏移量代表此枚庫(kù)指紋和現(xiàn)場(chǎng)指紋偏移量可能性的大小。最后根據(jù)分值輸出庫(kù)指紋相對(duì)現(xiàn)場(chǎng)指紋的偏移量。
二、基于該算法的指紋比對(duì)加速卡基于上述指紋比對(duì)算法,發(fā)明人還研制出一種基于FPGA的指紋比對(duì)加速卡。該加速卡采用PCI接口,適用于百萬(wàn)到千萬(wàn)人的超大型指紋識(shí)別系統(tǒng)。
該加速卡的硬件框架如附圖10所示,系統(tǒng)由三大部分組成①采用FPGA芯片(如ALTERA STRTIX II EP2S130F)作為系統(tǒng)的數(shù)據(jù)處理單元完成指紋粗比對(duì);同時(shí)作為PCI總線控制器實(shí)現(xiàn)系統(tǒng)和主機(jī)之間的通信;雙端口DPSRAM實(shí)現(xiàn)板上庫(kù)指紋緩沖的功能;③SRAM實(shí)現(xiàn)距離&方向角表的功能。
FPGA芯片實(shí)現(xiàn)的數(shù)據(jù)處理和接口控制單元由三大部分組成①指紋粗比對(duì)模塊、②HI主機(jī)接口、③PCI總線控制器。
指紋粗比對(duì)模塊就是按照本發(fā)明中提出的算法,完成指紋粗比對(duì)功能,計(jì)算出庫(kù)指紋相對(duì)現(xiàn)場(chǎng)指紋的角度和位置偏移(Δθ,ΔX,ΔY)。
HI主機(jī)接口模塊的主要功能是完成指紋比對(duì)模塊和PCI總線控制器的接口控制;PCI總線控制器一端是PCI接口,另一端是Wishbone接口,它實(shí)現(xiàn)了系統(tǒng)PCI端和Wishbone端之間的橋梁功能,將復(fù)雜的PCI協(xié)議轉(zhuǎn)化成了較簡(jiǎn)單的Wishbone協(xié)議。
本發(fā)明提出的并行流水線的粗比對(duì)結(jié)構(gòu)和比對(duì)方法,可以用于制作ASIC、IPCORE和指紋比對(duì)硬件加速設(shè)備,完成超大規(guī)模庫(kù)上的指紋比對(duì)。另外該方法不僅僅局限于硬件系統(tǒng),它也可以集成進(jìn)其它形式的軟件比對(duì)系統(tǒng)中,用于大規(guī)模指紋數(shù)據(jù)庫(kù)的指紋比對(duì)。
對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),很明顯,本發(fā)明可以做出各種改進(jìn)和擴(kuò)展,因此,只要他們落入所附權(quán)力要求書(shū)及其等同范圍內(nèi),本發(fā)明就涵蓋這些改進(jìn)及擴(kuò)展。
權(quán)利要求
1.一種用于將現(xiàn)場(chǎng)指紋與存儲(chǔ)的庫(kù)指紋進(jìn)行快速粗比對(duì),計(jì)算出現(xiàn)場(chǎng)指紋相對(duì)庫(kù)指紋的偏移量(Δθ,ΔX,ΔY)的方法,該方法包括由庫(kù)指紋的特征點(diǎn)生成要比對(duì)的庫(kù)指紋三角形,并將庫(kù)指紋三角形和現(xiàn)場(chǎng)指紋三角形進(jìn)行比對(duì),進(jìn)而計(jì)算出三角形偏移信息的方法;和根據(jù)一枚庫(kù)指紋的庫(kù)指紋三角形與現(xiàn)場(chǎng)三角形的偏移信息,計(jì)算出現(xiàn)場(chǎng)指紋相對(duì)該枚庫(kù)指紋的偏移量(Δθ,ΔX,ΔY)的方法。
2.按照權(quán)利要求1的方法,其中所述由庫(kù)指紋特征點(diǎn)生成要比對(duì)的庫(kù)指紋三角形包括下述步驟特征邊產(chǎn)生遍歷所述庫(kù)指紋的所有特征點(diǎn),由兩個(gè)特征點(diǎn)的排列生成庫(kù)指紋特征邊;特征邊計(jì)算根據(jù)生成的庫(kù)指紋特征邊的特征點(diǎn)對(duì)計(jì)算該特征邊的信息,包括該特征邊的距離、方向角和點(diǎn)線夾角;特征邊比對(duì)根據(jù)上述特征邊的信息,將該特征邊與現(xiàn)場(chǎng)三角形的第一條邊AB和第二條邊BC分別同時(shí)進(jìn)行比較;特征邊存儲(chǔ)將和現(xiàn)場(chǎng)三角形AB,AC邊匹配的,起點(diǎn)相同的庫(kù)指紋特征邊分別進(jìn)行存儲(chǔ);以及第三邊產(chǎn)生根據(jù)存儲(chǔ)的和現(xiàn)場(chǎng)三角形AB,AC邊匹配的庫(kù)指紋特征邊,生成要和現(xiàn)場(chǎng)三角形BC邊比對(duì)的第三條庫(kù)指紋特征邊,這樣這個(gè)公共的起點(diǎn)和生成的第三邊就構(gòu)成了要比對(duì)的庫(kù)指紋三角形。
3.按照權(quán)利要求1的方法,還包括從現(xiàn)場(chǎng)指紋三角形和庫(kù)指紋三角形的三角形偏移信息中選取若干個(gè)基偏移量,作為現(xiàn)場(chǎng)指紋和庫(kù)指紋備選的偏移量的方法。
4.按照權(quán)利要求1的方法,還包括將三角形偏移信息和基偏移量進(jìn)行比較的方法。
5.按照權(quán)利要求1的方法,還包括通過(guò)統(tǒng)計(jì)每個(gè)基偏移量中的各參量,對(duì)基偏移量進(jìn)行打分,衡量該偏移量是現(xiàn)場(chǎng)指紋和庫(kù)指紋實(shí)際偏移量的可能性的方法。
6.一種通過(guò)將庫(kù)指紋的特征點(diǎn)生成的庫(kù)指紋三角形與現(xiàn)場(chǎng)指紋三角形進(jìn)行比對(duì),計(jì)算出一枚庫(kù)指紋的庫(kù)指紋三角形與現(xiàn)場(chǎng)三角形的偏移信息,進(jìn)而計(jì)算出現(xiàn)場(chǎng)指紋相對(duì)該枚庫(kù)指紋的偏移量(Δθ,ΔX,ΔY)的適于硬件實(shí)現(xiàn)的快速粗比對(duì)裝置,包括超標(biāo)量的流水線加并行結(jié)構(gòu)和超流水線結(jié)構(gòu)。
7.按照權(quán)利要求6的裝置,還包括特征邊計(jì)算/存儲(chǔ)、第一條邊/第二條邊的比對(duì)、第三邊計(jì)算、第三邊比對(duì)與三角形偏移信息計(jì)算、偏移量計(jì)算、基偏移量比較模塊采用的流水線結(jié)構(gòu)。
8.按照權(quán)利要求7的結(jié)構(gòu),還包括進(jìn)行第一條邊/第二條邊比對(duì)、特征邊存儲(chǔ)和第三邊產(chǎn)生,以及基偏移量比較時(shí)采用的并行流水線結(jié)構(gòu)。
9.按照權(quán)利要求6的裝置,還包括采用乒乓操作對(duì)匹配的特征邊進(jìn)行存取的結(jié)構(gòu)。
10.按照權(quán)利要求6的裝置,還包括采用乒乓操作對(duì)三角形偏移信息進(jìn)行存取的結(jié)構(gòu)。
11.按照權(quán)利要求6的裝置,還包括間接尋址存儲(chǔ)三角形偏移信息的結(jié)構(gòu)。
12.按照權(quán)利要求6的裝置,還包括為了計(jì)算第三邊模塊采用的3級(jí)流水線結(jié)構(gòu)。
13.按照權(quán)利要求6的裝置,還包括為了進(jìn)行第三邊比對(duì)和三角形偏移信息計(jì)算的采用的5級(jí)流水線的結(jié)構(gòu)。
14.按照權(quán)利要求6的裝置,還包括為了進(jìn)行偏移信息處理采用流水線和狀態(tài)機(jī)相結(jié)合的結(jié)構(gòu)。
15.一個(gè)采用權(quán)利要求6中的裝置,用FPGA或ASIC實(shí)現(xiàn)的指紋粗比對(duì)單元和IP CORE。
16.一個(gè)按照權(quán)利要求1的方法、權(quán)利要求6的裝置集成的指紋比對(duì)系統(tǒng),用于大規(guī)模指紋數(shù)據(jù)庫(kù)的指紋比對(duì)。
全文摘要
本發(fā)明提出了一種全新的適用于硬件加速的指紋比對(duì)方法。該方法采用超標(biāo)量、超流水的結(jié)構(gòu),在提高比對(duì)速度的同時(shí)保證了比對(duì)的準(zhǔn)確性。首先進(jìn)行基于特征邊的比對(duì),然后根據(jù)匹配的特征邊組成要比對(duì)的特征三角形,再進(jìn)行特征三角形比對(duì),得到庫(kù)指紋與現(xiàn)場(chǎng)指紋三角形的偏移信息。本發(fā)明提出的這種由邊過(guò)渡到三角形的逐級(jí)比對(duì)的方法,大幅度減少了需要比對(duì)的特征三角形的數(shù)量,提高了比對(duì)速度;同時(shí)提出的偏移量的計(jì)算方法提高了指紋比對(duì)的剔除率和偏移量計(jì)算的準(zhǔn)確性。基于上述指紋比對(duì)方法,本發(fā)明研制出了一種基于FPGA的指紋比對(duì)加速卡。這種流水線加并行處理的算法結(jié)構(gòu)極大地提高了比對(duì)的效率。
文檔編號(hào)G06K9/00GK1862562SQ200610086958
公開(kāi)日2006年11月15日 申請(qǐng)日期2006年6月20日 優(yōu)先權(quán)日2006年6月20日
發(fā)明者蔡安妮, 蘇菲, 邱超, 陳增茂, 趙德群 申請(qǐng)人:北京郵電大學(xué)