如何提高指紋速度呢?這是一個備受關(guān)注的問題。以下先概述指紋識別的基本原理,再提出幾點個人假想以探討。
基本原理
指紋識別技術(shù)是透過取像設(shè)備讀取指紋圖像,然後用電腦識別軟體提取指紋的特徵資料,最後透過匹配識別演算法得到識別結(jié)果,以確定指紋所有人身分的生物特徵識別技術(shù)。
指紋識別技術(shù)主要涉及指紋圖像采集、指紋圖像處理、特徵提取、保存資料、特徵值比對與匹配等過程。
首先,通過指紋讀取設(shè)備讀取到人體指紋的圖像,并對原始圖像進(jìn)行初步處理,使之更清晰。然後,指紋辨識演算法將指紋的特徵資料予以數(shù)位化。這是一種單方向的轉(zhuǎn)換,可以從指紋轉(zhuǎn)換成特徵資料但不能從特徵資料轉(zhuǎn)換成為指紋,而且兩枚不同的指紋不會產(chǎn)生相同的特徵資料。
特徵文件儲存從指紋上找到被稱為「細(xì)節(jié)點」(minutiae)的資料點,也就是那些指紋紋路的分叉點或末梢點。這些資料通常稱為模板,至今仍然沒有一種模板的標(biāo)準(zhǔn),也沒有一種公布的抽象演算法,而是各個廠商自行其是。最後,通過電腦把兩個指紋的模板進(jìn)行比較,計算出它們的相似程度,得到兩個指紋的匹配結(jié)果。
技術(shù)特點
相對於其他生物特徵鑒定技術(shù),自動指紋識別是一種更為理想的身分確認(rèn)技術(shù)。原因如下∶
* 每個人的指紋是獨一無二的;
* 每個人的指紋是相當(dāng)固定的,很難發(fā)生變化;
* 便於獲取指紋樣本,易於開發(fā)識別系統(tǒng),實用性強;
* 可以利用多個指紋構(gòu)成多重口令,提高系統(tǒng)的安全性,又不增加系統(tǒng)的設(shè)計負(fù)擔(dān);
* 系統(tǒng)對指紋模板庫的存儲量較小,便於實現(xiàn)異地確認(rèn),支援電腦的網(wǎng)路功能。
從以上的分析可以看到,用自動指紋識別相對於其他方法不僅具有許多獨到的資訊安全角度的優(yōu)點,更重要的是還具有很高的實用性、可行性。
演算法概述
分類演算法
在自動指紋識別的研究中,指紋被分成五大類型∶拱類、左旋類、右旋類、尖拱類、漩渦類。指紋分類的主要目的是方便大容量指紋庫的管理,并減小搜索空間,加速指紋匹配過程。指紋分類是基於指紋脊或谷的整體流向以及指紋的核心點。很多研究者試圖解決指紋分類問題,但至今分類演算法的誤識率仍較高。如何提高指紋分類的準(zhǔn)確率在自動指紋識別研究中是一個較關(guān)鍵的問題。
指紋分類一般包括圖像預(yù)處理(包括圖像分割與圖像增強)、方向提取、校準(zhǔn)、特徵變換(包括K-L變換和權(quán)重變換)、分類判決等五個步驟,其中,圖像預(yù)處理包括兩個步驟─圖像分割與圖像增強。
圖像分割步驟中,分割器讀輸入的指紋圖,剪切該指紋圖,在不損失有用的指紋資訊的基礎(chǔ)上產(chǎn)生一個比原圖像小的指紋圖片。這樣可減少以後各步驟中所要處理的資料量。圖像增強的步驟則是用以增強分割後的指紋圖,提高圖像質(zhì)量;特徵提取將灰度指紋圖轉(zhuǎn)換成黑白圖像,然後生成方向陣列。此陣列是分類系統(tǒng)使用的基本特徵;指紋分類器則輸出分類結(jié)果。[nextpage]
壓縮演算法
在大容量的指紋庫中,為了節(jié)省儲存空間必須對指紋圖進(jìn)行壓縮存儲,使用時再進(jìn)行解壓縮。指紋壓縮與一般的圖像壓縮既有相同的特點又有其本身的特性。相同之處在於指紋壓縮一般也要經(jīng)過圖像變換、量化和編碼的過程。解壓縮則需經(jīng)過解碼、量化解碼和圖像反變換的過程。
與一般的圖像相比,指紋圖像有自己的特點。指紋圖像的內(nèi)容比較單一,通常由交替出現(xiàn)的寬度大致相同的脊和谷組成。其中的脊末梢和分支點等特徵在壓縮過程中必須保持良好,否則這些解壓縮後無法恢復(fù)的關(guān)鍵特徵資訊將對指紋的分類和識別造成不良的影響。
如果使用常用的靜態(tài)圖像壓縮標(biāo)準(zhǔn)JPEG進(jìn)行壓縮,由於其使用8 x 8的DCT對圖像進(jìn)行變換,在高壓縮比的條件下會產(chǎn)生明顯的方塊效應(yīng),極不利於保存指紋圖像中關(guān)鍵特徵。因此,指紋圖像的壓縮要采用一些有針對性的演算法。
目前普遍使用的指紋壓縮演算法是由FBI提出的WSQ演算法,它可以算是指紋研究領(lǐng)域一種通用的標(biāo)準(zhǔn)。這是一種基於自適應(yīng)的標(biāo)量量化和小波分解的壓縮演算法,在有失真的條件下壓縮比不高,約為18:1。
增強演算法
一個專業(yè)的指紋識別依賴對脊線結(jié)構(gòu)、細(xì)節(jié)點資訊的辨識。然而在實際情況中,由於手指本身的因素和采集條件的影響,采集到的指紋圖像會不同程度地受到各種雜訊的干擾,因此在進(jìn)行分類和細(xì)節(jié)匹配之前一般要對采集到的指紋圖像做增強處理。 對於一個自動指紋識別系統(tǒng)來說,圖像增強演算法的優(yōu)劣對系統(tǒng)性能的好壞有決定性的影響。
Lin. Hong等人采取的是Gabor濾波器來實現(xiàn)圖像的增強;G.T. Candela使用二維FFT變換濾波法。這些方法對於離線采集的指紋圖像比較合適,對電腦的性能要求比較高。而對於CMOS感測器來說,指紋圖像質(zhì)量比較差,對比度小,指紋重疊區(qū)域小,而且處理的是活體即時采集的指紋圖像,這就需要一些更有效、速度更快的指紋圖像增強演算法。
匹配演算法
指紋匹配是指紋識別系統(tǒng)的核心步驟,也是一個重要的研究課題。演算法共同的缺點是時間復(fù)雜度高、準(zhǔn)確度不高,不適宜於連線時的快速指紋識別。指紋細(xì)節(jié)匹配演算法也有待深入研究。
指紋匹配系統(tǒng)從獲得指紋圖到取得匹配結(jié)果將經(jīng)過以下幾個處理步驟∶
* 圖像預(yù)處理∶分為圖像分割與圖像增強兩部分,其功能同分類系統(tǒng)。
* 細(xì)節(jié)提取∶提取脊線上的末梢點及分叉點,用於今後的細(xì)節(jié)匹配。
* 細(xì)節(jié)匹配∶用上一步獲得的細(xì)節(jié)點去匹配資料庫中的模板,獲得匹配結(jié)果。
識別演算法提速方法概述
分類法
分類法就是以上的分類演算法。在注冊指紋時,根據(jù)指紋的特徵進(jìn)行詳細(xì)分類,然後按照類別分開儲存,如PEFIS的 PIS2000版,把指紋資料分為101類,每類指紋分存於相應(yīng)編號的庫文件中,在匹配時,也同樣判斷待匹配指紋的分類,然後打開相應(yīng)的資料庫文件進(jìn)行匹配運算。這樣可在一定程度上減少被匹配指紋特徵資料量。例如101類中,每類有指紋50枚,共5050枚,匹配時,一枚待匹配指紋在分類後只需與相應(yīng)類中的50枚已登記指紋進(jìn)行匹配就行了,而非同時與5050枚指紋做匹配運算,所以提高速度。[nextpage]
減少可旋轉(zhuǎn)度
可旋轉(zhuǎn)度是指登記指紋時手指按於指紋儀的角度與要匹配時手指按於指紋儀的角度差。有些匹配演算法可允許360度旋轉(zhuǎn),則手指可以任意方向按於指紋儀上取象(如 U.ARE.U 演算法),但這種演算法除非有快速準(zhǔn)確的指紋定位演算法,否則將以大量的旋轉(zhuǎn)試比對做為代價,使得匹配變慢。一些公司的演算法則盡可能減少可旋轉(zhuǎn)度,如PEFIS公司的產(chǎn)品,可旋轉(zhuǎn)度大概為45度,但45度的可旋轉(zhuǎn)范圍也已經(jīng)能滿足人們的需要了。
減少特徵點
特徵點則是以上匹配演算法中所提到的細(xì)節(jié)。在一個指紋中可被提取的特徵點往往很多,提取越多,則匹配運算的誤認(rèn)率也越小,但由於取特徵點多,要處理的資料量會更多,將會影響速度。所以根據(jù)不同的應(yīng)用選擇較適當(dāng)?shù)淖畲筇蒯琰c數(shù)也是提高演算法運算速度的一種方法。
分段多線程法
分段多線程法則把已登記的指紋資料均等分段或定額分段後,每段分別由一個線程完成,可多線程同時執(zhí)行匹配運算,當(dāng)其中一線程中找到匹配的指紋後,即通知其他線程停止。如已登記指紋為1000枚,分為10段,則每段為100枚,匹配運算時,每條線程最多只需完成待匹配指紋與100枚登記指紋的匹配運算。但這種做法與電腦性能有很大的關(guān)系。
多機協(xié)助法
多機協(xié)助法與上述分段多線程法基本同理,就是把幾部機器聯(lián)網(wǎng),登記指紋時,待登記者可在聯(lián)網(wǎng)的任一機中登記,但最好使每部機中登記的指紋數(shù)相同;驗證時,待驗證者可在聯(lián)網(wǎng)的任一機中驗證,取得待驗證者指紋後,由軟體把該指紋發(fā)布到每一相聯(lián)的機中匹配,若其中一機找到匹配的指紋即發(fā)回找到的相應(yīng)資訊,收到找到匹配指紋的資訊後即向其他機發(fā)出停止匹配運算指令;若每部機都發(fā)回沒找到的資訊,則表示待驗證的指紋未登記。但這方案需要多機聯(lián)網(wǎng),成本較高。
假設(shè)與探討
生物識別技術(shù)的應(yīng)用普遍存在一個相同的目標(biāo),就是識別速度的提高。不管是身體特徵的指紋、掌型、眼睛(視網(wǎng)膜和虹膜)、人體氣味、臉型、皮膚毛孔、手腕/手的血管紋理和DNA等,還是行為特點的簽名、語音、行走的步態(tài)、擊打鍵盤的力度等,目前的識別速度都還不是很理想,所以研究這方面技術(shù)的人們都在想辦法提升速度。但可能是由於技術(shù)發(fā)展的歷史因素吧,有以下幾點,隨著電腦的飛速發(fā)展,是不是可以做一些革命呢?
主要算法由其它硬件實現(xiàn)
舉個例子:使用PCI橋的設(shè)備(或USB設(shè)備)。系統(tǒng)初始化時,把原已登記的指紋資料都寫入該PCI橋的RAM中;登記指紋時,把取得的指紋特征資料同時寫入硬盤和PCI橋的RAM;驗證時,把待匹配指紋特征資料發(fā)至PCI橋做匹配運算,然后再把結(jié)果返回給正在運行的軟件。這種做法的優(yōu)點是相對減少計算機CPU的負(fù)擔(dān),容易維護(hù)產(chǎn)品版權(quán)等。
然而也有其缺點,例如:
* PCI橋中的RAM的容量有限,可能限制可登記指紋數(shù)。
* 當(dāng)指紋數(shù)多時,每次初始化時,登記的指紋資料要從硬盤拷貝到PCI橋的RAM,較為費時(特別是USB設(shè)置時)。
* 硬設(shè)備升級沒有計算機發(fā)展快。主流計算機的主頻已是 2G 以上,但可用的指紋識別卡可能還是計算機386時代時用的,硬件的落后必然影響性能。難道能在PCI卡(或USB設(shè)備)中處理器運行的處理就不可改為以計算機CPU來處理嗎?
只有1:1方式
1:1技術(shù)整個過程可概括為:「你是你自稱的這個人嗎?」。1:1技術(shù)是一個驗證過程,是透過把一個現(xiàn)場采集到的指紋與一個已經(jīng)登記的指紋進(jìn)行一對一的比對,來確認(rèn)身分的過程。
只有1:1方式是指某種識別算法在指紋匹配時,不管指紋庫中有多少枚指紋,都得一枚取出來比對后再取一枚的做法。若庫中有1000枚已登記的指紋,要在其中找出待匹配指紋的ID,則要進(jìn)行1:1的比對次數(shù)將是1至1000次中的數(shù),也就是沒有一點優(yōu)化的做法。能不能對整批已登記的指紋資料進(jìn)行分類甚至索引查找呢?
指紋數(shù)據(jù)庫以簡單的文件型資料表
幾乎每一個指紋識別開發(fā)包中都有獲取特征資料的函數(shù),有些有提供保存指紋資料的數(shù)據(jù)庫,有些沒有,沒有的一般匹配運算時也只有1:1方式;而創(chuàng)建指紋數(shù)據(jù)庫的,往往也只是簡單的文件,主要用于存儲指紋資料,而非如 SQL 等數(shù)據(jù)庫能對資料進(jìn)行優(yōu)化查詢處理。
提個不專業(yè)的設(shè)想,獲取指紋特征資料時可不可以模式化,獲取的指紋特征資料可不可以字段化,能否把已登記的指紋資料做成一個表,每個指紋是一條記錄,每個分類或特定方位的特征點是特定的字段值。匹配時,待匹配指紋也以同樣方法獲取該指紋的特征記錄,然后執(zhí)行數(shù)據(jù)庫結(jié)構(gòu)化查詢,發(fā)揮數(shù)據(jù)庫高速查詢的優(yōu)勢,這樣是不是可以讓指紋識別速度有大飛躍呢?