指紋識別算法的matlab實現_第1頁
指紋識別算法的matlab實現_第2頁
指紋識別算法的matlab實現_第3頁
指紋識別算法的matlab實現_第4頁
指紋識別算法的matlab實現_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上摘 要 隨著生物識別技術的不斷發展,人們發現每個人的指紋具有唯一性和不變性。因此指紋識別技術逐步發展為一種新的身份識別方式,并且憑借其良好的安全可靠性,大有取代傳統身份識別方式的趨勢。本文簡要介紹了指紋識別的基本步驟,分別是指紋圖像預處理、指紋特征提取、指紋匹配。在圖像預處理中,依次介紹了規格化處理、圖像增強、二值化處理和細化處理的方法。預處理后將得到一幅寬度為一個像素的細化二值圖像,然后通過特定的端點和交叉點的特征進行指紋匹配。論文中采用MATLAB編程實現全部算法。關鍵詞:指紋識別,圖像處理,特征提取,特征匹配AbstractWith the continuous

2、 development of Biometric Identification Technology,People found that each person's fingerprint has uniqueness and invariant.Therefore Fingerprint Identification Technology gradually developed as a new identity recognition mode,and with its good safety and reliability,it has replaced the traditi

3、onal identification way trends. This paper briefly introduces the basic step of Fingerprint Identification,they are Fingerprint image preprocessing, Fingerprint characteristic extraction,Fingerprint matching.In the Fingerprint image preprocessing,in turn introduced the normalized processing, Image e

4、nhancement, Binary treatment and Refining processing method.After pretreatment will get a picture for a pixel width of twenty-first-century binary image,then through the particular endpoint and intersection on the characteristics of the Fingerprint matching.This paper using Matlab programs all algor

5、ithm.Key words Fingerprint identification Image processing Feature extraction Feature matching目 錄專心-專注-專業第1章 緒論1.1 研究背景及意義現代門禁系統是一種隨著電子技術和計算機技術的發展而迅速發展起來的安防系統,一套現代化的、功能齊全的門禁系統,不僅可用于進出口控制,而且有助于單位內部的有序化管理。門禁系統是新型現代化公共安全管理系統,它集微機自動識別技術和現代安全管理措施為一體,涉及電子、機械、光學、計算機技術、通信技術和生物技術等諸多新技術,是重要部門出入口實現安全防范管理的有效保障1

6、。目前有很多的生物測定技術可用于身份認證,包括虹膜識別技術、視網膜識別技術、面部識別、簽名識別、聲音識別技術、指紋識別等,具有安全、可靠的特點,其中自動指紋識別系統是目前研究最多、最有應用前景的生物識別系統。指紋識別技術的應用十分廣泛,指紋因具有終生不變性及穩定性,而且不同人指紋相同的概率幾乎為零,因此指紋自動識別系統被廣泛應用于案例分析、商業活動中的身份鑒別等領域。指紋識別技術的發展得益于現代電子集成制造技術的進步和快速可靠的算法的研究。 指紋門禁系統通過將用戶的指紋特征與指紋特征數據庫中的數據進行對比實現用戶身份的鑒別,并不直接保存和使用用戶的指紋圖像信息,不會侵犯到用戶的隱私信息,是當前

7、技術最先進、應用最廣泛的門禁系統。對生物識別(指紋識別)技術來說,被廣泛應用意味著它能在影響億萬人的日常生活的各個地方使用。通過取代個人識別碼和口令,生物識別(指紋識別)技術可以阻止非授權的 “訪問”,可以防止盜用ATM、蜂窩電話、智能卡、桌面PC、工作站及其計算機網絡;在通過電話、網絡進行的金融交易時進行身份認證;在建筑物或工作場所生物識別技術(指紋識別)可以取代鑰匙、證件、圖章等。生物識別(指紋識別)技術的飛速發展及其廣泛應用將開創個人身份鑒別的新時代。指紋所具有的唯一性、不變性、易于獲取、分類存儲有規律等特性使其成為生物鑒定學中最為成熟的方式2。1.2 國內外研究現狀及分析指紋識別技術從

8、早期的人工比對到現在采用計算機技術實現自動指紋識別,指紋對比更加準確,識別效率得到極大提高。自動指紋識別過程通常由指紋圖像濾波增強、二值化、細化、特征提取以及指紋匹配等幾個環節構成。指紋圖像濾波增強的目的是將有噪聲干擾的指紋圖像變得更加清晰,使得指紋圖像的脊線更黑,谷線更白,當前在實際指紋圖像增強算法的應用中一般是幾種濾波增強方式結合起來使用,主要的方案是基于傅里葉變換結合濾波和指紋圖像點方向場的下上下濾波器;指紋圖像二值化,是將指紋圖像變成灰度值只有0和255兩種顏色的圖像,當前,在自動指紋識別中常采用的是根據指紋圖像的點方向場在指紋紋線方向和指紋紋線垂直方向上對指紋圖像進行二值化處理;指紋

9、圖像細化是指刪除指紋紋線的邊緣像素,使之只有一個像素寬度,目前在自動指紋識別技術中常用的是OPTA算法的改進的圖像模板細化算法;指紋特征提取,是將細化后使用計算機數字圖像處理技術采集指紋圖像中奇異點、端點、叉點等指紋特征數據,目前常用的特征提取算法是先對細化后的指紋圖像進行初步去噪,然后提取特征點,再根據閾值去除偽特征點;指紋匹配,是指紋預留模板圖像與輸入樣板圖像中的所有特征點的匹配,目前在自動指紋識別系統中常采用可變大小的界限盒的指紋特征匹配算法。目前指紋識別技術還有很多困難,例如當三維的指紋被指紋錄入設備掃描成二維的數字圖像時,會丟失一部分信息、,手指劃破、割傷、弄臟、不同干濕程度以及不同

10、的按壓方式,還會導致指紋圖像的變化,這給可靠的特征提取帶來了相當地困難;例如傳統的基于細節點的識別方法,是依靠提取指紋脊線上的細節點,然后對其位置和類型進行匹配,來識別指紋的,而噪聲會影響特征提取準確度,增加錯誤的特征點或丟失真正的特征點。當噪聲很大時,就要增加圖像增強算法來改善圖像的質量,但很難找到一種增強算法能夠適應所用的噪聲,多種增強算法又會大幅增加算法運行時間,不好的增強算法又會增加人為特征。當噪聲增大時,提取了許多虛假細節點,還有可能丟失細節點,這就是傳統的基于細節點識別算法的不足之處之一,因為它只利用了指紋圖像中的一小部分信息(細節點位置和方向)作為特征進行匹配,丟失了蘊涵在圖像中

11、的其他豐富的結構信息。不難想象,基于這種方法的識別算法,很難全面適應指紋的變化。1.3 設計內容與要求、熟練掌握圖像處理原理與模式識別原理;熟練掌握MATLAB軟件及該軟件中的ImageProcessingToolbox及其編程技巧;、掌握指紋識別的概念與實現過程框圖;熟練掌握指紋圖像的特征、特征提取、指紋識別方法;、構建指紋識別完整模型,包括圖像獲取、圖形預處理、特征提取、圖像識別各環節的軟件算法;在圖像預處理過程中,充分考慮圖像去噪、圖像增強等有關算法;同時,設計基于指紋識別的用戶管理界面;、在消化吸收國內外研究成果的基礎上,探討指紋識別模型與算法的快速性、魯棒性。同時,針對構建的簡單指紋

12、圖像數據庫具有較好的識別效果,并考慮指紋門禁控制系統的實時性;、參照國內外同行取得的研究成果,不斷改進算法模型。針對實際應用,探討該模型算法的優點;討論指紋圖像數據庫的大小、系統容量、訓練樣本隨機變化、以及選擇不同算法時對識別率的影響;得出具有一般性指導意義的結論。第2章 指紋識別的基本理論及應用2.1 指紋識別的原理和方法2.1.1 指紋的特征與分類指紋識別學是一門古老的學科,它是基于人體指紋特征的相對穩定與唯一這一統計學結果發展起來的。實際應用中,根據需求的不同,可以將人體的指紋特征分為:永久性特征、非永久性特征和生命特征。永久性特征包括細節特征(中心點、三角點、端點、叉點、橋接點等)和輔

13、助特征(紋型、紋密度、紋曲率等元素),在人的一生中永不會改變,在手指前端的典型區域中最為明顯,分布也最均勻。細節特征是實現指紋精確比對的基礎,而紋形特征、紋理特征等則是指紋分類及檢索的重要依據。人類指紋的紋形特征根據其形態的不同通常可以分為“弓型、箕型、斗型”三大類型,以及“孤形、帳形、正箕形、反箕形、環形、螺形、囊形、雙箕形和雜形”等9種形態。紋理特征則是由平均紋密度、紋密度分布、平均紋曲率、紋曲率分布等紋理參數構成。紋理特征多用于計算機指紋識別算法的多維分類及檢索。非永久性特征由孤立點、短線、褶皺、疤痕以及由此造成的斷點、叉點等元素構成的指紋特征,這類指紋有可能產生、愈合、發展甚至消失。&

14、#160; 指紋的生命特征與被測對象的生命存在與否密切相關。但它與人體生命現象的關系和規律仍有待進一步認識。目前它已經成為現代民用指紋識別應用中越來越受關注的熱點之一。2.1.2 指紋識別的原理和方法指紋識別技術主要涉及四個功能:讀取指紋圖像、提取特征、保存數據和比對。通過指紋讀取設備讀取到人體指紋的圖像,然后要對原始圖像進行初步的處理,使之更清晰,再通過指紋辨識軟件建立指紋的特征數據。軟件從指紋上找到被稱為“節點”(minutiae)的數據點,即指紋紋路的分叉、終止或打圈處的坐標位置,這些點同時具有七種以上的唯一性特征。通常手指上平均具有70個節點,所以這種方法會產生大約490個數

15、據。這些數據,通常稱為模板。通過計算機模糊比較的方法,把兩個指紋的模板進行比較,計算出它們的相似程度,最終得到兩個指紋的匹配結果。采集設備(即取像設備)分成幾類:光學、半導體傳感器和其他。2.2 指紋識別技術的主要指標和測試方法指紋識別系統性能指標在很大程度上取決于所采用算法性能。為了便于采用量化的方法表示其性能,引入了下列兩個指標:   拒識率(false rejection rate,FRR):是指將相同的指紋誤認為是不同的,而加以拒絕的出錯概率。FRR=(拒識的指紋數目考察的指紋總數目)×100%。   誤識率(false accept

16、rate,FAR):是指將不同的指紋誤認為是相同的指紋,而加以接收的出錯概率。FAR=(錯判的指紋數目考察的指紋總數目)×100%。  對于一個已有的系統而言,通過設定不同的系統閾值,就可以看出這兩個指標是互為相關的,FRR與FAR成反比關系。這很容易理解,“把關”越嚴,誤識的可能性就越低,但是拒識的可能性就越高。測試這兩個指標,通常采用循環測試方法。即給定一組圖像,然后依次兩兩組合,提交進行比對,統計總的提交比對的次數以及發生錯誤的次數,并計算出出錯的比例,就是FRR和FAR。針對FAR=0.0001%的指標,應采用不少于1415幅不同的指紋圖像作循環測試,總測

17、試次數為次,如果測試中發生一次錯誤比對成功,則FAR=1/;針對FRR=0.1%,應采用不少于46幅屬于同一指紋的圖像組合配對進行測試,則總提交測試的次數為1035次數,如果發生一次錯誤拒絕,則FRR=1/1035。測試所采用的樣本數越多,結果越準確。作為測試樣本的指紋圖像應滿足可登記的條件。登率(error registration rate,ERR):指的是指紋設備出現不能登錄及處理的指紋的概率,ERR過高將會嚴重影響設備的使用范圍,通常要求小于1%。登錄時間:指紋設備登錄一枚指紋所需的時間,通常單次登錄的時間要求不超過2 s。比對時間:指紋設備對兩組指紋特征模版進行比對所耗費的時間,通常

18、要求不超過1 s。 工作溫度:指紋設備正常工作時所允許的溫度變化范圍,一般是040 。工作濕度:指紋設備正常工作時所允許的相對濕度變化范圍,一般是30%95%。指紋識別技術已經成熟,其應用日益普遍,除了刑事偵察用之外,在民用方面已非常廣泛,如指紋門禁系統、指紋考勤系統、銀行指紋儲蓄系統、銀行指紋保管箱、指紋醫療保險系統、計劃生育指紋管理系統、幼兒接送指紋管理系統、指紋獻血管理系統、證券交易指紋系統、指紋槍械管理系統、智能建筑指紋門禁管理系統、駕駛員指紋管理系統等。 指紋門禁系統和指紋考勤系統是開發和使用得最早的一種出入管理系統,包括對講指紋門禁、聯機指紋門禁、脫機指紋門禁等等。在入口將個人的手

19、指按在指紋采集器上,系統將已登錄在指紋庫中的指紋(稱為已經注冊)進行對比,如果兩者相符(即匹配),則顯示比對成功,門就自動打開。如不匹配,則顯示“不成功”或“沒有這個指紋”,門就不開。在指紋門禁系統中,可以是一對一的比對(one to one matching),也可以是一對幾個比對(one to few matching)。前者可以是一個公司、部門,后者可以是一個家庭的成員、銀行的營業廳、金庫、財務部門、倉庫等機要場所。在這些應用中,指紋識別系統將取代或者補充許多大量使用照片和ID系統。把指紋識別技術同IC卡結合起來,是目前最有前景的一個應用之一。該技術把卡的主人的指紋(加密后)存儲在IC卡

20、上,并在IC卡的讀卡機上加裝指紋識別系統,當讀卡機閱讀卡上的信息時,一并讀入持卡者的指紋,通過比對就可以確認持卡者是否是卡的真正主人,從而進行下一步的交易。指紋IC卡可取代現行的ATM卡、制造防偽證件等。ATM卡持卡人可不用密碼,避免老人和孩子記憶密碼的困難。近年來,互聯網帶給人們方便與利益已,也存在著安全問題。指紋特征數據可以通過電子郵件或其它傳輸方法在計算機網絡上進行傳輸和驗證,通過指紋識別技術,限定只有指定的人才能訪問相關的信息,可以極大地提高網上信息的安全性。網上銀行、網上貿易、電子商務等一系列網絡商業行為就有了安全性保障。指紋社會保險系統的應用為養老金的準確發放起了非常有效的作用。避

21、免了他人用圖章或身份證復印件代領,而發放人員無法確定該人是故世的問題,要憑本人的活體指紋,才可準確發放養老金。指紋識別技術是成熟的生物識別技術。因為每個人包括指紋在內的皮膚紋路在圖案、斷點和交叉點上各不相同,是唯一的,并且終生不變。通過他的指紋和預先保存的指紋進行比較,就可以驗證他的真實身份。自動指紋識別是利用計算機來進行指紋識別的一種方法。它得益于現代電子集成制造技術和快速而可靠的算法理論研究。盡管指紋只是人體皮膚的一小部分,但用于識別的數據量相當大,對這些數據進行比對是需要進行大量運算的模糊匹配算法。利用現代電子集成制造技術生產的小型指紋圖像讀取設備和速度更快的計算機,提供了在微機上進行指

22、紋比對運算的可能。另外,匹配算法可靠性也不斷提高。因此,指紋識別技術己經非常簡單實用。由于計算機處理指紋時,只是涉及了一些有限的信息,而且比對算法并不是十分精確匹配,其結果也不能保證100%準確。指紋識別系統的特定應用的重要衡量標志是識別率。主要包括拒識率和誤識率,兩者成反比關系。根據不同的用途來調整這兩個值。盡管指紋識別系統存在著可靠性問題,但其安全性也比相同可靠性級別的“用戶ID+密碼”方案的安全性要高得多。拒識率實際上也是系統易用性的重要指標。在應用系統的設計中,要權衡易用性和安全性。通常用比對兩個或更多的指紋來達到不損失易用性的同時,極大提高系統的安全性。2.5 本章小結本章詳細介紹了

23、指紋識別的基本理論,是我們對指紋識別原理及處理方法有了初步的了解。指紋識別系統性能指標在很大程度上取決于所采用算法性能。指紋識別技術已經成熟,其應用日益普遍,除了刑事偵察用之外,在民用方面已非常廣泛,如指紋門禁系統、指紋考勤系統、銀行指紋儲蓄系統、銀行指紋保管箱、指紋醫療保險系統、計劃生育指紋管理系統、幼兒接送指紋管理系統、指紋獻血管理系統、證券交易指紋系統、指紋槍械管理系統、智能建筑指紋門禁管理系統、駕駛員指紋管理系統等。指紋識別技術是成熟的生物識別技術,指紋識別系統的特定應用的重要衡量標志是識別率。第3章 指紋圖像處理及特征提取與實現3.1 方法概述 基于細節點特征的指紋自動識別技術是目前

24、這方面研究中的主流,這種系統的實現有以下一些步驟如圖3-1: 圖3-1 基于細節點特征的指紋自動識別系統預處理是將輸入的(直接采集進來的)低質量、有噪音的指紋源圖象處理成已細化了的清晰的二值圖像3。它的目的是減少低質量的圖像對分類識別結果的影響,預處理中一般包括圖像增強、濾波、二值化、細化等步驟。預處理的方法通常有兩種:方法一:先求方向圖,后求頻率圖,最后由此得到的Gabor濾波器對圖像進行濾波。這種方法計算量比較大,在求頻率圖容易產生偏差,不利于單片機的實現。方法二:結合指紋圖像自身的特點以及其源圖像像素來確定該點是否為脊,直接準確地得到黑白二值的指紋脊圖像。這 種方法對于從不同渠道獲得的圖

25、像均有不錯的效果。在以上兩種方法都要用到方向圖,方向圖是一種可直接從原灰度圖像中得到的有用信息,在預處理、特征提取、指紋分類中有著重要意義。我們總是在準確求得方向圖的基礎上運用各種濾波方法或直接找脊的方法來進行預處理。方向圖描述了指紋圖像中每一像素點所在脊線或谷線在該點的切線方向,也可看作是指紋源圖像的一種變化表示方法,既用紋線的方向來表示該紋線。方向圖分為兩種:一種是點方向圖,表示源指紋圖像中每一點脊線的方向:另一種是塊方向圖,表示源指紋圖像中每一塊脊線的大致方向。計算方向圖的基本思想是:在原灰度圖像中每一點(或每一塊在各個方向上的某個統計量(如灰度差、梯度等),根據這些統計量在各個方向上的

26、差異,確定該點(塊)的方向。3.2 方向圖的計算3.2.1 求點方向圖設是指紋圖像中點的灰度值,要計算該點的方向,需要先求出(該點臨域沿d方向的灰度變化)。圖3-2 點方向示意圖 =, d=1,2,···,N (3.1)其中:是方向d上的第k個點;是該點的灰度值,N是所取的方向數,n為每個方向上所取的鄰點數。這兩個數的具體取值與圖像的分辨率有關,一般取N=16,即取16個方向,n=8,即一個方向上取8個鄰點。 點的方向為取值最小的方向。對圖像中的每一點求取點方向,這樣便形成了指紋點方向圖。此方向求得的方向特點:1方向取值不是02中的任意值,而是有限的幾個數。2這種

27、方向計算出的方向范圍是02,有利于求取指紋的走勢。(與認為是不同方向)3.2.2 由點方向圖求塊方向圖的算法把點方向圖分成大小的塊,對每一塊計算方向直方圖(橫坐標的方向取到的N個值,縱坐標為取這些方向的象素個數),方向直方圖中的峰值所對應的方向,即該塊的方向。3.2.3 最小均方估計塊方向算法代表指紋圖像在處的灰度值步驟:1將圖像分成大小為的塊。這里M的大小以包含一脊一谷(即一周期)為宜;2計算塊中每個像素在x軸和y軸上的梯度和。這里用簡單的梯度算子4:= (3.2) (3.3)3用下面公式計算塊的方向, 且 (3.4)當的塊中或為零的比率很大時,塊方向應直接設為0或,這樣塊中的每一個像素的方

28、向都等于。(A)原始圖像 (B)改進前的結果 (C)改進后的結果 圖3-3 指紋圖像的方向圖4在計算指紋圖像方向圖多采用塊與塊直接不重疊的方式,但這樣求出的塊方向僅由該塊所包含的像素點所決定,沒有考慮其周圍像素點的影響,很容易造成方向的不連續性。 于是我們采用在計算方向圖時,采用塊重疊的方式。這樣可以使方向圖精度可以大大提高。5方向圖平滑這里我們采用將方向圖正交分解后分別進行濾波的方法對它進行平滑,實驗證明這種方法比一般用的中值濾波和加權平滑的方法的效果好。計算步驟:將方向圖轉變為連續的向量場: (3.5) (3.6)這里,分別是向量場x,y方向上的分量。實現低通濾波: (3.7) (3.8)

29、這里W是一個大小為的二維低通濾波器5,一般使用的均值濾波。平滑后的方向場為: (3.9)3.3 指紋圖像的濾波在指紋處理中用到濾波器,主要在于去除圖像噪聲,增強圖像質量,即增強指紋脊與谷的對比度,修補圖像連接脊中出現的斷點、去除圖像中的叉連現象。指紋圖像濾波有兩種方法:方法一:利用Gabor濾波器的參數可利用指紋的方向性和紋理性,用Gabor濾波器來作為帶通濾波器,去除噪音,增強脊谷結構。這種算法難點在于需要計算圖像的頻率圖將指紋圖像看成由脊和谷組成的周期圖像,在每一個局部領域內都會有一個相對固定準確的頻率。這種算法的缺點在于:求頻率圖導致計算量比較大,而且頻率容易產生偏差;方法二:這種方法也

30、是我們采用的濾波方法。這是一種簡單但效果良好的上下文濾波器,上下文濾波法也是基于方向圖的,這是一系列上下文相關的濾波器,使用時根據某一快的方向從一系列濾波器中選擇一個相應的濾波器來對這一塊進行濾波。其他方向的濾波器可以通過旋轉得到。一個基本的濾波器由兩部分組成:平均濾波器和分離濾波器。平均濾波器的作用主要是連接邊中出現的斷點,而分離濾波器可以去除圖像中的叉連現象。(斷裂和叉連的情況;如右圖3-4所示)。濾波器的大小由指紋圖像中脊線的周期決定,在我們的試驗中,周期取為5,因而這里以Sx5大小的濾波器為例。水平方向的平均濾波器的權值如右圖3-5所示,其中系數滿足:。經過平均濾波器過濾的圖像,其中每

31、一點的灰度由其臨近的24個像素的灰度值共同決定。即對于第i行j列的點的灰度值的處理如下: 圖3-4 斷裂與叉連圖3-5 平均濾波器的權值 (3.10)若圖像中出現斷點,即這一點的灰度值比周圍點都小得多,則經過平均濾波器的處理,它的灰度值就接近鄰近點的灰度值了,所以平均濾波器有連接斷點的作用。 分離濾波器的權值如圖3-6所示,其中參數:P+2Q+2R=0。分離濾波器處理圖像過程與平均濾波器相同,圖像中的叉連點是把相鄰的兩條脊線連接起來的點,所以叉連點的上下點灰度值較大,而其同一行上的鄰點的灰度值較小,通過分離濾波器的處理,叉連點的灰度值會明顯降低,所以分離濾波器有去除叉連點的作用。一個基本濾波器

32、要求具備上述兩種功能,它的作用相當于平均濾波器加分離濾波器,所以它的權值如右圖3-7,其中參數:K=X十P,L=Y+Q, M=Z+R。為歸一化權值,基本濾波器的每個權值都需要除以該濾波器所有權值的總和。圖3-6 分離濾波器的權值圖3-7 基本濾波器的權值用方向濾波器進行濾波去噪時,根據塊方向圖中的該塊的方向,選用相應的濾波器(將水平方向的濾波器旋轉塊方向的角度后得到),進行濾波。3.4 基于方向圖的動態閥值指紋圖像二值化方法二值化是指紋圖像預處理中必不可少的一步。常用的二值化方法有固定閥值法、自適應閥值法、局部自適應閥值法等,這些方法僅僅利用了圖像的灰度信息,對指紋圖像的二值化效果很不理想;現

33、有的大部分指紋圖像預處理方法都是經過濾波處理后再進行二值化6,這樣就需要對圖像進行兩次掃描,不利于處理速度的提高。將指紋圖像自身的方向結構特點與源圖像灰度值變化特點結合起來,確定對圖像中每一像素點二值化的動態閥值。這種方法取代了一般指紋圖像預處理中無效區域分割、濾波、增強、二值化等步驟,一次完成圖像的二值化功能。實驗結果也表明,該方法得到的二值化圖像能夠基本保持源圖像上的特征點不丟失,確保了以后的特征提取和比對的正確性和可靠性。指紋局部圖如圖3-8:(A) 原始圖像 (B)谷脊變化波形圖 圖3-8 指紋谷脊變化波形圖方框Y方向是該塊的指紋方向,X方向是其法線方向。以法線方向上各像素點的灰度值做

34、一曲線,可得到近似于正弦的波形圖,如圖3-8(B)所示。顯然,該波形圖的波谷對應指紋圖像的脊線(指紋圖像中暗的紋線),而波峰則對應指紋圖像的谷(指紋圖像中亮的紋線)。若所考察的當前像素點恰好落在波谷上,則該點就是指紋脊線點,若所考察的當前像素點恰好落在波峰上,則該點就是指紋谷點,而谷點到脊點間像素灰度的變化幾乎呈線性,正是基于指紋圖像在結構上和像素灰度變化上的這些特點,本文提出了下述指紋圖像二值化方法:1將圖像分成大小為N×N的小塊,用上述方向圖改進方法計算各小塊的方向;2對圖像中的每一點,以其所在塊的方向作為該像素點的方向,并以該點為中心在其法方向上取(一般為奇數)的矩形窗,計算矩

35、形窗內指紋方向每一列中像素點在法方向上的加權平均,具體公式為: (3.11)其中coefficent為加權平均系數,滿足 ,是k列上的第d個像素的位置。3對中極大點或極小點附近的波動做平滑處理;4找出極大點和極小點位置及對應的值,對極大值極小值求平均,將此平均值作為該點二值化門限,稱其為動態閥值。5將當前像素點的加權平均灰度值(即)與動態閥值進行比較,若小于動態閥值,同時,當前像素點在波形圖極小點一個有限的鄰域內,則當前像素點為脊線點,否則即為谷點,即: (3.12)其中的取值與指紋讀入器的分辨率有關,通常取為指紋周期的四分之一,本文取。若的起伏很不明顯,說明該區域屬于無效區域或背景區域,整個

36、區域的像素值置為255。本算法在具體實現中可利用同一塊中所有像素有同樣方向的條件,推導出快速算法,防止一些點的重復掃描,大大縮短處理時間。3.5 指紋圖像的細化算法指紋圖像二值化后,紋線仍具有一定的寬度,而指紋識別只對紋線的走向感興趣,不關心它的粗細。為了進一步壓縮數據,得到更精確的細節特征,提高識別的準確性,對指紋圖像進行細化處理是不可忽略的。所謂細化,就是從原來的圖中去掉一些點,但仍要保持原有的形狀。實際上,是保持原圖的骨架7。指紋圖像的細化是指刪除指紋紋線的邊緣像素,使之只有一個像素寬度,細化時應保證紋線的連接性、方向性和特征點不變,還應保持紋線的中心基本不變。一種好的細化方法應滿足下列

37、條件:1迭代必須收斂的。(收斂性)2不破壞紋線的連接性。(連接性)3不引起紋線的逐步吞食。(拓撲性)4保護指紋的細節特征。(保持性)5骨架紋線的寬度為1個像素。(細化性)6骨架盡可能接近條紋中心線。(中軸性) 7. 算法簡單、速度快。(快速性)圖3-9統一模塊下面介紹一種適合于指紋圖像細化的算法,這種方法滿足上面的細化條件,而且可以提出快速算法。這種算法采用模板,如圖3-9所示,左上角的方窗(即)為消除模板。即,一黑色象素八臨域與消除模板中的一個相匹配的話,該點被認為是可消除的點。消除模板具體如下: (A) (B) (C) (D) (E) (F) (G) (H) 圖2.10消除模塊 圖3-10

38、 消除模塊圖(A)(D) 4個模板能有效去除邊緣上的突出物,保證了細化后的指紋骨架處于指紋脊線中心,避免了細化后的指紋骨架出現毛刺。除消除模板外,還需構造保留模板,保持紋線的連通性。 (A) (B) (C) (D) (E) (F) 圖2.11保留模塊保持模板內容如下圖所示: 圖3-11 保留模塊具體算法如下:從圖像的左上角元素開始進行,每個像素(圖中為)均抽取出如圖3-9所示的15個相鄰像素,并且把其中8個鄰域像素()與圖3-10中的8個模板比較,如果和8個消除模板中的任意一個都不匹配時,保留;如果與8個中的任一個匹配,則抽取的元素再和上圖中的6個保留模板進行比較,如果與其中任一個匹配的話,則

39、保留,否則刪去。重復這個過程,直到沒有一個像素的值被改變。這種算法的具體實現可引入查表法,即對所要處理的像素周圍模板內前15個點預先進行編碼(用雙字節15個位來表示,雙字節的最低位存放的值,依此類推,次最高位存放的值),把編碼值作為存儲地址,按上述細化法則,預先在存儲地址上存入相應的細化值(可用0、1表示,0表示保留,1表示刪去)。細化時,移動4x4的方窗內象素的編碼地址去查找相應的細化值,用細化值替換當前像素值。3.6 特征提取及其后處理3.6.1 特征點的提取特征提取一般是指提取指紋圖像的局部特征,也就是細節點特征。在基于細節點的指紋自動識別系統中,特征提取是在細化后的指紋圖像上進行的。特

40、征提取的首要問題是確定細節點和它的位置,細節點的位置和細節點間的相對位置很重要,盡管每個指紋中包括將近80個細節,只要確定十幾個細節點就己經足夠用來識別了。探測細節點的算法很簡單,如圖3-12所示的3x3模板就可以用來確定特征的位置。M是待檢測的點,是它的八鄰域,沿順時針方向排列。是細化后圖像在處的灰度。如果M是端點,則它的八鄰域滿足:, (3.13) 如果M是分叉點,則它的八鄰域滿足:, (3.14)這樣我們就可以在細化后的圖像中找到細節點(端點和分叉點),并記錄它們在圖中的相對位置。3.6.2 假特征點的去除這樣得到的特征中存在由指紋質量、攝入噪聲等原因造成的很多假特征,如下圖3-12所示

41、(a)和(b)中產生了假的端點;(c)和(d)中形成了錯誤的斷開和連接;(e)中顯示的是一個由不平滑的脊引起的毛刺,出現了假端點和假分叉兩種特征:(f)(g)是幾種錯誤連接的例子,分別稱為橋形、三角形、梯形結構。 圖3-12 假特征針對上面這些假特征,我們采用了非常簡單的方法:計算特征點間的距離,如果距離值小于所給的閥值,則認為特征點為假特征點。這種算法實現起來也很簡單:掃描特征點的某一鄰域,如果該鄰域中出現其他特征點的話,將該特征點與出現的特征點同時去除,如此循環幾次,當沒有特征點被刪去時,處理完成。這種方法中鄰域的選取很重要,如果取得比較小,則可能起不到去除假特征點的作用;如果取得比較大的

42、話,則可能將真正的特征點也一并刪去。在具體實現中,我們取其半徑為脊寬的一半。3.6.3 細節點信息的提取及記錄對每一個細節點,我們記錄如下信息:1細節點的x,y坐標。2細節點的方向,這個方向就是該細節點所在的塊的塊方向。3細節點的類型,即脊線端點或脊線分叉點。4細節點對應的脊線。細節點對應的脊線用該脊線上的采樣點來表示,采樣的距離約為脊線間的平均距離。分叉點對應的脊線是與該細節點的方向最近的那條,端點對應的脊線就是該細節點所在的脊線。采樣點用該點與對應細節點的距離,和連接該點與對應細節點的直線與對應細節點方向的夾角來表示,的取值范圍在-180到180度之間。下圖給出了細節點對應的脊線與脊線上的

43、采樣點的例子。在細節匹配中,對應脊線將被用來對兩個平面點集進行校準,而且,校準的參數,也就是兩個點集中任意一對脊線間的旋轉角度,將被用來作為判斷它們所對應的細節點能否看作匹配的細節點的條件。 圖3-13 細節點的對應脊線3.6.4 指紋識別中細節點的匹配細節匹配一般在極坐標系中進行,因為指紋圖像的非線性形變往往呈放射狀,在某個區域內的形變比較大,然后非線性地向外擴張,因而,在極坐標中能更好地描述非線性形變;另外,在極坐標中不需要考慮輸入圖像與模板圖像的參照點之間的平移,將一對對應點的坐標相對于參照點轉換為極坐標時,平移就被抵消了;還有,在極坐標系中顯然比在直角坐標系中更便于處理兩幅圖像間的旋轉

44、8。細節點集的校準:令 (3.15)表示模板圖像中的M個細節點, (3.16)表示輸入圖像中的N個細節點。為了把細節點轉移到極坐標系中去,需要在模板細節點集和輸入細節點集中各選一個參照點作為相應的極坐標系中的原點,并算出其它細節點相對于參照點的極坐標。由于事先不知道模板點集與輸入點集的對應關系,需要考慮所有可能的參照點對。對模板點集中的每一點和輸入點集中的每一點,定義為將和當作參照點對時,從輸入圖像到模板圖像的旋轉角度。如果,和可以被當作一對對應點,即它們分別對應的脊線相似性到了一定程度,則將取0度到360度間的一個值,否則,我們定義取值為400,以表示和不能是一對對應點。如果和是不同類型的細

45、節點,也就是說它們一個是端點,一個是分叉點,則它們不是對應點對,取值為400。即,表示和對應的脊線相似性到了一定程度。3.7 本章小結 本章詳細介紹了指紋識別過程的原理及算法的研究,具體算法將在后續章節給出。 第4章 指紋識別算法的MATLAB實現4.1 MATLAB簡介 4.1.1 MATLAB 的概況 MATLAB是矩陣實驗室(Matrix Laboratory)之意。除具備卓越的數值計算能力外,它還提供了專業水平的符號計算、文字處理、可視化建模仿真和實時控制等功能。 MATLAB的基本數據單位是矩陣,它的指令表達式與數學,工程中常用的形式十分相似,故用MATLAB來解算問題要比用C、FO

46、RTRAN等語言完成相同的事情簡捷得多。當前流行的MATLAB包括擁有數百個內部函數的主包和三十幾種工具包(Toolbox)。工具包又可以分為功能性工具包和學科工具包。功能工具包用來擴充MATLAB的符號計算、可視化建模仿真、文字處理及實時控制等功能。學科工具包是專業性比較強的工具包,控制工具包、信號處理工具包、通信工具包等都屬于此類。開放性使MATLAB廣受用戶歡迎。除內部函數外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構造新的專用工具包。4.1.2 MATLAB產生的歷史背景 在70 年代中期,Cleve Moler博士和其同事在美

47、國國家科學基金的資助下開發了調用EISPACK和LINPACK的FORTRAN程序庫。 EISPACK是特征值求解的FOETRAN 程序庫,LINPACK是解線性方程的程序庫。在當時,這兩個程序庫代表矩陣運算的最高水平。 到70年代后期,身為美國New Mexico大學計算機系系主任的Cleve Moler在給學生講授線性代數課程時,想教學生使用EISPACK和LINPACK程序庫,但他發現學生用FORTRAN編寫接口程序很費時間,于是他開始自己動手,利用業余時間為學生編寫EISPACK 和LINPACK的接口程序。Cleve Moler給這個接口程序取名為MATLAB,該名為矩陣(matri

48、x)和實驗室(labotatory)兩個英文單詞的前三個字母的組合。在以后的數年里,MATLAB在多所大學里作為教學輔助軟件使用,并作為面向大眾的免費軟件廣為流傳。1983年春天,Cleve Moler到Standford 大學講學,MATLAB深深地吸引了工程師John Little.John Little敏銳地覺察到MATLAB在工程領域的廣闊前景。同年,他和Cleve Moler,Steve Bangert一起,用C語言開發了第二代專業版。這一代的MATLAB語言同時具備了數值計算和數據圖示化的功能。1984年,Cleve Moler和John Little成立了Math Works公司

49、,正式把MATLAB推向市場,并繼續進行MATLAB的研究和開發。 在當今30多個數學類科技應用軟件中,就軟件數學處理的原始內核而言,可分為兩大類。一類是數值計算型軟件,如 MATLAB,Xmath,Gauss 等,這類軟件長于數值計算,對處理大批數據效率高;另一類是數學分析型軟件,Mathematical,Maple等,這類軟件以符號計算見長,能給出解析解和任意精確解,其缺點是處理大量數據時效率較低。Math Works 公司順應多功能需求之潮流,在其卓越數值計算和圖示能力的基礎上,又率先在專業水平上開拓了其符號計算、文字處理、可視化建模和實時控制能力,開發了適合多學科,多部門要求的新一代科

50、技應用軟件MATLAB。經過多年的國際競爭,MATLAB以經占據了數值軟件市場的主導地位。在MATLAB進入市場前,國際上的許多軟件包都是直接以 FORTRAN、C 語言等編程語言開發的。這種軟件的缺點是使用面窄,接口簡陋,程序結構不開放以及沒有標準的基庫,很難適應各學科的最新發展,因而很難推廣。MATLAB的出現,為各國科學家開發學科軟件提供了新的基礎。在 MATLAB 問世不久的80年代中期,原先控制領域里的一些軟件包紛紛被淘汰或在MATLAB上重建。 Math Works 公司1993年推出了MATLAB 4.0版,1995年推出4.2C版(for win3.X),1997年推出5.0版

51、,1999年推出5.3 版。MATLAB 5.X較MATLAB 4.X無論是界面還是內容都有長足的進展,其幫助信息采用超文本格式和PDF格式,在 Netscape 3.0或 IE 4.0及以上版本,Acrobat Reader中可以方便地瀏覽。時至今日,經過 Math Works 公司的不斷完善,MATLAB已經發展成為適合多學科,多種工作平臺的功能強大大大型軟件。在國外,MATLAB已經經受了多年考驗。在歐美等高校,MATLAB已經成為線性代數、自動控制理論、數理統計、數字信號處理、時間序列分析、動態系統仿真等高級課程的基本教學工具;成為攻讀學位的大學生、碩士生、博士生必須掌握的基本技能。在

52、設計研究單位和工業部門,MATLAB被廣泛用于科學研究和解決各種具體問題。在國內,特別是工程界,MATLAB一定會盛行起來。可以說,無論你從事工程方面的哪個學科,都能在MATLAB里找到合適的功能。 4.1.3 MATLAB 的語言特點 一種語言之所以能如此迅速地普及,顯示出如此旺盛的生命力,是由于它有著不同于其他語言的特點,正如同FORTRAN和C等高級語言使人們擺脫了需要直接對計算機硬件資源進行操作一樣,被稱作為第四代計算機語言的MATLAB,利用其豐富的函數資源,使編程人員從繁瑣的程序代碼中解放出來。MATLAB最突出的特點就是簡潔。MATLAB用更直觀的,符合人們思維習慣的代碼,代替了

53、C和FORTRAN語言的冗長代碼。MATLAB給用戶帶來的是最直觀、最簡潔的程序開發環境。以下簡單介紹一下 MATLAB 的主要特點: 1)、語言簡潔緊湊,使用方便靈活,庫函數極其豐富。MATLAB程序書寫形式自由,利用起豐富的庫函數避開繁雜的子程序編程任務,壓縮了一切不必要的編程工作。由于庫函數都由本領域的專家編寫,用戶不必擔心函數的可靠性。可以說,用MATLAB進行科技開發是站在專家的肩膀上。 具有FORTRAN和C等高級語言知識的讀者可能已經注意到,如果用FORTRAN或C語言去編寫程序,尤其當涉及矩陣運算和畫圖時,編程會很麻煩。例如,如果用戶想求解一個線性代數方程,就得編寫一個程序塊讀

54、入數據,然后再使用一種求解線性方程的算法(例如追趕法)編寫一個程序塊來求解方程,最后再輸出計算結果。在求解過程中,最麻煩的要算第二部分。解線性方程的麻煩在于要對矩陣的元素作循環,選擇穩定的算法以及代碼的調試動不容易。即使有部分源代碼,用戶也會感到麻煩,且不能保證運算的穩定性。解線性方程的程序用FORTRAN和C這樣的高級語言編寫,至少需要四百多行,調試這種幾百行的計算程序可以說很困難。MATLAB的程序極其簡短,更為難能可貴的是,MATLAB甚至具有一定的智能水平,用戶根本不用懷疑MATLAB的準確性。 2)、運算符豐富。由于MATLAB是用C語言編寫的,MATLAB 提供了和C語言幾乎一樣多

55、的運算符,靈活使用MATLAB的運算符將使程序變得極為簡短。 3)、 MATLAB既具有結構化的控制語句(如for循環,while循環,break語句和if語句),又有面向對象編程的特性。 4)、程序限制不嚴格,程序設計自由度大。例如,在MATLAB里,用戶無需對矩陣預定義就可使用。 5)、程序的可移植性很好。基本上不做修改就可以在各種型號的計算機和操作系統上運行。 6)、MATLAB 的圖形功能強大。在FORTRAN和C語言里,繪圖都很不容易,但在MATLAB里,數據的可視化非常簡單。MATLAB還具有較強的編輯圖形界面的能力。 7)、MATLAB的缺點是,它和其他高級程序相比,程序的執行速度較慢。由于 MATL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論