指紋識別的原理和方法
一.概述
指紋識別技術主要涉及四個功能:讀取指紋圖象、提取特徵、儲存資料和比對。
在一開始,通過指紋讀取裝置讀取到人體指紋的圖象,取到指紋圖象之後,要對原始圖象進行初步的處理,使之更清晰。
接下來,指紋辨識軟體建立指紋的數字表示--特徵資料,一種單方向的轉換,可以從指紋轉換成特徵資料但不能從特徵資料轉換成為指紋,而兩枚不同的指紋不會產生相同的特徵資料。軟體從指紋上找到被稱為"節點"(minutiae)的資料點,也就是那些指紋紋路的分叉、終止或打圈處的座標位置,這些點同時具有七種以上的唯一性特徵。因為通常手指上平均具有70個節點,所以這種方法會產生大約490個資料。
有的演算法把節點和方向資訊組合產生了更多的資料,這些方向資訊表明了各個節點之間的關係,也有的演算法還處理整幅指紋圖像。總之,這些資料,通常稱為模板,儲存為1k大小的記錄。無論它們是怎樣組成的,至今仍然沒有一種模板的標準,也沒有一種公布的抽象演算法,而是各個廠商自行其是。
最後,通過計算機模糊比較的方法,把兩個指紋的模板進行比較,計算出它們的相似程度,最終得到兩個指紋的匹配結果。
二. 取得指紋圖象
1. 取象裝置原理
取像裝置分成兩類:光學、矽晶體感測器和其他。
光學取像裝置有最悠久的歷史,可以追溯到20世紀70年代。依據的是光的全反射原理(ftir)。光線照到壓有指紋的玻璃表面,反射光線由ccd去獲得,反射光的數量依賴於壓在玻璃表面指紋的脊和谷的深度和**與玻璃間的油脂。
光線經玻璃設到谷後反射到ccd,而設到脊後則不反射到ccd(確切的是脊上的液體反光的)。
由於最近光學裝置的革新,極大地降低了裝置的體積。最近90年代中期,感測器可以裝在6x3x6英吋的盒子裡,在不久的將來更小的裝置是3x1x1英吋。這些進展取決於多種光學技術的發展而不是ftir的發展。例如:纖維光被用來捕捉指紋圖象。纖維光束垂直射到指紋的表面,他照亮指紋並探測反射光。另乙個方案是把含有一微型三稜鏡矩陣的表面安裝在彈性的平面上,當手指壓在此表面上時,由於脊和谷的壓力不同而改變了微型三稜鏡的表面,這些變化通過三稜鏡光的反射而反映出來。
應用晶體感測器是最近在市場上才出現的,儘管它在傳奇文學作品中已經出現近20年。這些含有微型晶體的平面通過多種技術來繪製指紋圖象。電容感測器通過電子度量被設計來捕捉指紋。電容裝置能結合大約100,000導體金屬陣列的感測器,其外面是絕緣的表面,當使用者的手指放在上面時,**組成了電容陣列的另一面。電容器的電容值由於金屬間的距離而變化,這裡指的是脊(近的)和谷(遠的)之間的距離。壓感式表面的頂層是具有彈性的壓感介質材料,他們依照指紋的外表地形(凹凸)轉化為相應的電子訊號。溫度感應感測器被設計為感應壓在裝置上的脊和遠離裝置的谷溫度的不同。
超聲波掃瞄被認為是指紋取像技術中非常好的一類。很象光學掃瞄的雷射,超聲波掃瞄指紋的表面。緊接著,接收裝置獲取了其反射訊號,測量他的範圍,得到脊的深度。不象光學掃瞄,積累在**上的髒物和油脂對超音速獲得的圖象影響不大,所以這樣的圖象是實際脊地形(凹凸)的真實反映。 由於巨大的指紋辨別市場,如果想指紋識別在商業上的巨大成功,三個因素中的兩個因素是非常重要的,它們是低**和緊湊的體積(另外乙個是上面談到的識別率)。90年代初到後期,取像裝置的**已經劇烈的下降,製造商最近又承諾,在最近幾年後,又要進行大幅度降價。至於體積,上面已經提到光學感測器的體積從6x3x3英吋降到3x1x1英吋。應用晶體的感測器的體積差不多是這樣或者更小。在晶元上,積體電路的技術越來越高(如:數位化電路把指紋訊號轉化為數字訊號強度),系統體積將越來越小,晶體感測器的體積接近與手指大小所需要的體積,其長寬大約是1x1英吋高不到1英吋。
在晶體感測器之前,一些沒有用到的機能是區域性調整、軟體控制、自動獲取控制(agc)技術。對於大多數光學裝置,只能通過人工調整來改變圖象的質量。然而,晶體感測器提供自動調節象素,行以及區域性範圍的敏感程度,從而提高圖象的質量。agc在不同的環境下結合反饋的資訊產生高質量的圖象。例如,乙個不清晰(對比度差)的圖象,如乾燥的指紋,能夠被感覺並增強靈敏度,在捕捉的瞬間產生清晰的圖象(對比度好);由於提供了區域性調整的能力,圖象不清晰(對比度差)的區域也能夠被檢測到(如:手指壓得較輕的地方)並在捕捉的瞬間為這些象素提高靈敏度。 光學掃瞄也有自己的優勢。其中之一在較大的模型可以做較大指紋取像區域。而製造較大的應用晶體感測器的指紋取像區域是非常昂貴的,所以應用晶體感測器的指紋取像區域小於1平方英吋,而光學掃瞄的指紋取像區域等於或大於1平方英吋。然而這個對於較小的光學掃瞄裝置並不是優勢。較小的光學掃瞄也是較小指紋取像區域,這是因為較大的指紋取像區域需要較長的焦點長度,所以要有較大包裝,否則如果較大的取像區域使用較小的包裝,則光學掃瞄裝置會受到圖象邊緣線形扭曲的影響。 晶體感測器技術最重要的弱點在於,它們容易受到靜電的影響,這使得晶體感測器有時會取不到圖象,甚至會被損壞,另外,它們並不象玻璃一樣耐磨損,從而影響了使用壽命。
總之,各種技術都具有它們各自的優勢,也有各自的缺點。我們在下面給出三種主要技術的比較。
三. 指紋識別技術的基本原理
指紋其實是比較複雜的。與人工處理不同,許多生物識別技術公司並不直接儲存指紋的圖象。多年來在各個公司及其研究機構產生了許多數位化的演算法(美國有關法律認為,指紋圖象屬於個人隱私,因此不能直接儲存指紋圖象)。但指紋識別演算法最終都歸結為在指紋圖象上找到並比對指紋的特徵。
指紋的特徵
我們定義了指紋的兩類特徵來進行指紋的驗證:總體特徵和區域性特徵。總體特徵是指那些用人眼直接就可以觀察到的特徵,包括:基本紋路圖案
環型(loop), 弓型(arch), 螺旋型(whorl)。其他的指紋圖案都基於這三種基本圖案。僅僅依靠圖案型別來分辨指紋是遠遠不夠的,這只是乙個粗略的分類,但通過分類使得在大資料庫中搜尋指紋更為方便。
模式區(pattern area)
模式區是指指紋上包括了總體特徵的區域,即從模式區就能夠分辨出指紋是屬於那一種型別的。有的指紋識別演算法只使用模式區的資料。 aetex 的指紋識別演算法使用了所取得的完整指紋而不僅僅是模式區進行分析和識別。
核心點(core point)
核心點位於指紋紋路的漸進中心,它用於讀取指紋和比對指紋時的參考點。
三角點(delta)
三角點位於從核心點開始的第乙個分叉點或者斷點、或者兩條紋路會聚處、孤立點、折轉處,或者指向這些奇異點。三角點提供了指紋紋路的計數和跟蹤的開始之處。 式樣線(type lines)
式樣線是在指包圍模式區的紋路線開始平行的地方所出現的交叉紋路,式樣線通常很短就中斷了,但它的外側線開始連續延伸。
紋數(ridge count)
指模式區內指紋紋路的數量。在計算指紋的紋數時,一般先在連線核心點和三角點,這條連線與指紋紋路相交的數量即可認為是指紋的紋數。
區域性特徵
區域性特徵是指指紋上的節點。兩枚指紋經常會具有相同的總體特徵,但它們的區域性特徵——節點,卻不可能完全相同 節點(minutia points)
指紋紋路並不是連續的,平滑筆直的,而是經常出現中斷、分叉或打折。這些斷點、分叉點和轉折點就稱為「節點」。就是這些節點提供了指紋唯一性的確認資訊。
指紋上的節點有四種不同特性:
1. 分類 – 節點有以下幾種型別,最典型的是終結點和分叉點
a. 終結點(ending) -- 一條紋路在此終結。
b. 分叉點(bifurcation) -- 一條紋路在此分開成為兩條或更多的紋路。
c. 分歧點(ridge divergence) -- 兩條平行的紋路在此分開。
d. 孤立點(dot or island) -- 一條特別短的紋路,以至於成為一點 e. 環點(enclosure) -- 一條紋路分開成為兩條之後,立即有合併成為一條,這樣形成的乙個小環稱為環點
f. 短紋(short ridge) -- 一端較短但不至於成為一點的紋路,
2. 方向(orientation) -- 節點可以朝著一定的方向。
3. 曲率(curvature) -- 描述紋路方向改變的速度。
4. 位置(position) -- 節點的位置通過(x,y)座標來描述,可以是絕對的,也可以是相對於三角點或特徵點的。
四.系統問題
有效的指紋辨識系統不僅僅依賴於辨識演算法,還有其他的一些重要因素,這裡稱之為「系統問題」。包括註冊和辨識過程,速度和工作學、使用者資訊的反饋、排斥欺騙和安全考慮。
為了得到較好的識別率,重要的是在註冊時盡量獲得最好的指紋圖象,這是因為註冊一般只進行一次,而以後的辨識是經常的。乙個較好的指紋識別系統應要求使用者的指紋在登記指紋時多次獲取指紋,然後,把最好的指紋或每次獲得的指紋的綜合的結果作為註冊的指紋。
又乙個方法可以作為指紋系統設計時的考慮,即我們可以多次取像直到得到乙個確定的匹配,但這個過程在降低了拒判率的同時,提高了誤判率。辨識不僅僅只用乙個手指的指紋,可以用兩個或更多的手指的指紋,這樣可以增強識別率,當然這樣一來會浪費使用者的許多時間。 系統的工作學是很重要的。例如:在個人識別系統中,人們願意等待時間的極限,這個極限時間根據特定的應用而不同,依賴於在處理的過程中人們正在做什麼。例如:刷卡或輸入id號的過程,從0.5-1.5秒被認為是可接受的時間;另外,拒判而重複次數不應超過3次。
驗證和辨識的過程、取像裝置的設計拒判率和誤判率關係的設定,為了盡可能的獲得高質量的指紋圖象而提示使用者手指該怎樣放置,正確的反饋資訊是非常有用的。如「手指放得太高」,「手指按得不夠重」等。 在指紋識別系統中,反欺騙的措施用來阻止人造指紋、死指紋和殘留指紋。殘留指紋是由於**油或其他原因殘留在感測器上。感測器應建立反欺對策,使得有能力識別真實的**溫度、阻力或電容。
既然指紋識別系統是為安全而考慮的,例如,節點模板資料庫必須是安全的,以防止乙個冒名頂替的人將自己的指紋存進資料庫而成為合法的使用者。指紋匹配的結果是「yes」或「no」,以此獲得訪問權。如果有人簡單地繞過指紋匹配而能去直接傳送乙個「yes」,那麼系統就是不安全的。這個問題的解決是確保主機接收的識別結果是來自真正的合法使用者,如通過數碼訊號傳送給主機。 總之,在乙個完整的指紋識別應用系統中有許多問題值得考慮,解決好這些問題有助於成功地建立有效的系統,相反,則有可能會使得高明的技術被束之高閣,甚至導致應用系統最後的失敗。
iOS 指紋識別
1.首先匯入框架localauthentication 2.判斷系統版本,最低ios 8.0 3.建立驗證物件上下文lacontext 4.判斷指紋識別技術是否可用canevaluatepolicy 5.如果可用,開始呼叫方法開始使用指紋識別 import 指紋按鈕 void showfingerp...
Android BMPrinter 指紋識別庫
作者 蒼王 日期 2018.9.7 近來建立了兩個小專欄,將會其中發布現在的區塊鏈通訊專案所應用到的技術,以及程序化技術,有興趣可以關注一下 不一定需訂閱,推廣期價錢也便宜 android im技術指南 裡面介紹的是加密im的技術應用和指南 android 程序化架構 裡面介紹的是程序化的方案。但是...
android指紋識別
使用指紋識別功能,只需要關心 fingerprintverifymanager 和 fingerprintcallback 兩個類 1 例項化 builder,必需 fingerprintverifymanager.builder builder new fingerprintverifymanag...