指紋識別技術綜述(掃盲篇)之二
(接上篇)
2.2、基礎構件之指紋算法
以上是指紋產品基礎構件層中的指紋SENSOR部分的技術構成分析。下面介紹另一部分指紋算法。全球指紋算法據稱約有100種,不過這三大塊基本是少不了的。一是對指紋圖像進行預處理;二是提取特征值,并形成特征值模板;三是指紋特征值比對。
2.2.1 指紋算法之指紋圖像預處理
指紋圖像預處理的目的主要是為特征值提取的有效性準確性作好準備。一般包括如下的過程:
(1) 指紋圖像增強。指紋圖像增強的目的主要是為了減少噪音,增強脊谷對比度,使得圖像更加清晰真實,便于后續(xù)指紋特征值提取的準確性。指紋圖像增強的方法較多,常見的如通過8域法計算方向場與設定合適的過濾閾值。處理時依據每個像素處脊的局部走向,會增強在同一方向脊的走向,并且在同一位置,減弱任何不同于脊的方向。這樣使得脊線相對背景更加清晰,特征點走向更加明顯。
(2) 指紋圖圖像平滑處理。平滑處理是為了讓整個圖像取得均勻一致的明暗效果。平滑處理的過程是選取整個圖像的象素與其周期灰階差的均方值作為閾值來處理的。
(3) 指紋圖像二值化。在原始灰階圖像中,各象素的灰度是不同的,并按一定的梯度分布。在實際處理中只需要象素是不是脊線上的點,而無需知道它的灰度。所以每一個象素對判定脊線來講,只是一個“是與不是”的二元問題。所以,指紋圖像二值化是對每一個象素點按事先定義的閾值進行比較,大于閾值的,使其值等于255(假定),小于閾值的,使其值等于0。圖像二值化后,不僅可以大大減少數據儲存量,而且使得后面的判別過程少受干擾,大大簡化其后的處理。
(4) 指紋圖像細化處理。圖像細化就是將脊的寬度降為單個像素的寬度,得到脊線的骨架圖像的過程。這個過程進一步減少了圖像數據量,清晰化了脊線形態(tài),為之后的特征值提取作好了準備。由于我們所關心的不是紋線的粗細,而是紋線的有無。因此,在不破壞圖像連通性的情況下必須去掉多余的信息。因而應先將指紋脊線的寬度采用逐漸剝離的方法,使得脊線成為只有一個象素寬的細線,這將非常有利于下一步的分析。
2.2.2 指紋算法之特征值提取
提取指紋特征值是從細化過的指紋圖像中,掃描分析出能夠表達某個指紋圖像與眾不同的特征點的集合。在最初的指紋識別算法中,經歷以過圖像進行比較的階段,現在的算法為了安全和確保精準度起見,采用圖像上的特征點來進行比較,所以才有特征值提取的說法。
(1)首先來認識一下指紋的特征。
– 指紋特征=總體特征+局部特征
• 總體特征:
– 紋形:環(huán)形、弓形、螺旋形(有的算法分的更細,如左旋右旋)
– 模式區(qū):包含了紋形特征的區(qū)域
– 核心點:位于指紋紋路的漸進中心
– 三角點:位于從核心點開始的第一個分叉點或者斷點、或者兩條紋路會聚處、孤立點、折轉處,或者指向這些奇異點。
– 紋數:指模式區(qū)內指紋紋路的數量(脊密度)
– 局部特征:指紋上的細節(jié)點的特征。
• 特征點:類型、方向、曲率、位置
• 特征點類型
– A:終結點(Ending),一條紋路在此終結
– B:分叉點(Bifurcation),一條紋路在此分開成為兩條或更多的紋路
– C:分歧點(Ridge Divergence),兩條平行的紋路在此分開
– D:孤立點(Dot or Island),一條特別短的紋路,以至于成為一點
– E:環(huán)點(Enclosure),一條紋路分開成為兩條之后,立即有合并成為一條
– F:短紋(Short Ridge),一端較短但不至于成為一點的紋路
(2)指紋特征點的表示。認識到指紋包含以上特征點之后,如何對指紋的特征點進行描述?就像通過描述一個的特點不同于另一個人時,我們一般會采用儲如“男性”“身高170”“偏白”等詞匯一樣,描述指紋的特征點也有一系列的維度。如特征點類型、位置坐標、方向、曲率等。甚至可以增加組合特征描述。指紋處理是一個幾何域的問題,所以對這些特征點的描述無外乎與幾何參數有關。
(3)指紋特征點提取。對指紋的特征信息(總體和局部的)進行選擇、編碼,形成二進制數據的過程。指紋特征點的提取方法是算法中的核心。一般采用8鄰域法對二值化、細化后的指紋圖像抽取特征點,這種方法將脊線上的點用“1”表示,背景用“0”表示,將待測點(x,y)的八鄰域點(如下圖所示)進行循環(huán)比較,若“0”,“1”變化有六次,則此待測點為分叉點,若變化兩次,則為端點。通過這個過程可以記錄下來一個指紋的所有特征點。通常一個指紋的特征點在100~150之間,在形成指紋特征值模板(也就是特征值的有序集合)時,盡量多的提取特征點對于提高準確性是有很大幫助的。
2.2.3 指紋算法之特征值比對
指紋特征值比對過程是把當前取得的指紋特征值集合與事先存儲的指紋特征值模板進行匹配的過程。匹配是一個模式識別的過程,判定的標準不是等與不等,而是相似的程度。這個程度判定依賴于某個閾值,以及與判定時比較的特征點的個數有關。閾值取的合理,特征點取的越多,誤判的機率就越小。理論一般認為只要7個特征點不同就可以區(qū)別開兩枚指紋。實際在程序實現中,多采用14個或以上的特征點作匹配。匹配的方法很多,包括基于特征點的匹配、脊模式的匹配、以及線對(兩個特征點的連線)匹配方法。匹配的過程還要處理如手指旋轉、壓力導致的伸縮及平移等情況。一般算法的誤識率(FAR)為0.001%時,其拒認率(FRR)為0.75 - 5%。
在指紋識別算法這一部分補充說明一下指紋識別和驗證的區(qū)別。
識別與驗證并不是指紋識別算法領域的問題,而是指紋識別系統(tǒng)的問題。指紋識別就是指1:N模式下匹配指紋特征值。它是從多個指紋模板中識別出一個特定指紋的過程。其結果是,有或者沒有。有時會給出是誰的信息。
指紋驗證是指在1:1模式下匹配指紋特征值。它是拿待比對的指紋特征模板與事先存在的另一個指紋特征模板進行一次匹配的過程。其結果是,是不是。在一個系統(tǒng)中即可以采用1:1模式也可以采用1:N模式,這是取決于應用系統(tǒng)的特點和要求。
從優(yōu)缺方面比較,1:1模式要比1:N快些,準確性高些,但方便性會差些。
3、指紋產品中間件
指紋中間件技術,與一般中間件技術相似。對于指紋軟件中間件來講,主要是提供一系列從應用角度看已經封裝好的接口,一般不會開放指紋特征值模板及下一級的接口。這些接口的能力表現為數據庫連接和拆線類接口、用戶注冊接口、用戶驗證接口、用戶手指信息、用戶信息訪問接口、用戶管理(增刪改)接口,以及常用的系統(tǒng)管理接口等。這些接口一般以OCX組件形式提供,適用于以C/S、B/S、N-Tier等多種應用模式。
硬件中間件,一般是指指紋脫機模塊。它主要是一個嵌入式指紋識別系統(tǒng),對外提供兩方面的能力。一是向下能夠接入一定類型數量的指紋SENSOR;二是向上給應用能夠提供指紋注冊、驗證、識別、指紋存儲等功能。硬件中間件的形態(tài)一直在發(fā)展和變化中,從板卡形態(tài)向芯片形態(tài)演變。市場上已經出現指紋識別IC,能夠完成所有指紋注冊驗證的功能。這對于開發(fā)嵌入式指紋識別設備,將無疑是一大福音。
3、指紋產品上層構件
指紋產品上層構件,即應用層,目前市場上所見完整的指紋產品形態(tài)多種多樣,在此不再累述。只是想說,在應用層,由于行業(yè)的不同、需求的多樣性,依然是有很多可以成就的東西。
總結
從以上分析總結來看,基礎構件中的指紋SENSOR和指紋算法是關鍵中的關鍵。如果沒有掌握這個關鍵,通過正常的商品交易得到這些,并以此為基礎構造出指紋中間件產品、或者開發(fā)出不同行業(yè)的不同類型的指紋應用產品(或系統(tǒng)),也會有非常不錯的前景,這也是創(chuàng)新――集成創(chuàng)新。