當前位置:編程學習大全網 - 源碼下載 - 如何編寫指紋識別系統

如何編寫指紋識別系統

指紋識別技術通過分析指紋的局部特征,從中抽取詳盡的特征點,從而可靠地確認個身份。指紋識別的優點指紋作為人體獨壹無二的特征,它的復雜度可以提供用於鑒別的足夠特征,具有極高的安全性。相對於其他身份認證技術,指紋識別是壹種更為理想的身份認證技術,指紋識別不僅具有許多獨到的信息安全優點,更重要的是具有很高的實用性、可行性,已經廣泛應用於金融、電子商務以及安全性能要求教高的行業中。

目前多數指紋識別系統是將指紋圖象采集到計算機中,利用計算機進行識別。外壹些公司生產的獨立指紋識別系統,價格比較高昂。些都限制了指紋識別技術的普及。因此,研究開發快速、識別率高、廉價的獨立指紋識別系統具有很大的市場前景和重要的科學研究價值。

本文提出了壹種新型基於DSP的指紋識別系統,硬件上利用DSP的高速處理能力,構建高速的數據處理平臺,軟件上考DSP和硬件邏輯的處理特點,對傳統的指紋算法進行改進,滿足實時性和可靠性要求。

2 硬件系統結構

系統的原理框圖如圖(1)所示:

圖(1)系統結構框圖

本系統整體上可以分為圖像采集模塊、圖像處理及識別模塊以及輸出模塊三部分組成。

2.1 圖像采集模塊

圖像采集模塊中,由於指紋識別系統中並不需要實時觀察圖像,所以對傳感器要求不是很高,壹般的黑白數字CMOS傳感器都能滿足要求。本系統中采用了壹款300萬象素的高清晰度黑白傳感器作為圖像獲取器件,非常適合作為指紋圖像傳感器使用。主要考慮到CMOS器件成本低、分辨率高、可靠性好的優點。缺點為當手指汗液多或幹裂時成像質量可能變差。在圖像識別過程中,采用了基於GABOR的增強算法,基本上可以克服由此造成的影響。

2.2 圖像處理及識別模塊

圖像處理及識別模塊的結構關系到系統的性能的總體水平,采用FPGA+DSP的體系結構有利於構建高效的數據處理流程和方便處理任務的分配,提高系統的並行程度和資源利用率。系統中的SRAM、SDRAM、FLASH直接連到DSP上供其使用:FLASH用於存放程序和壹些固定的表格數據;SDRAM作為DSP的系統內存,用於系統程序的運行;SRAM是高速的數據存儲區,用於存放程序運行是產生的臨時變量。而DDR SDRAM是專門用於存放采集到的指紋數據以及預處理過程中計算得到的象素點梯度數據等壹些大容量的數據塊,直接連接到FPGA,是系統中最高速的內存區域。FPGA除了作為DSP處理器的擴展總線接口外,還分擔了部分數據處理任務,因為僅僅靠壹塊DSP是不能勝任所有的運算和控制任務的,指紋數據處理時,經常會遇到壹些繁瑣的加減運算和比邏輯運算,通常這部分都是由FPGA代為處理的,考慮到指紋處理算法的特殊性,同時還要兼顧實現DDR控制功能。

由於指紋識別過程中數學運算量大,因此程序設計不可避免的需要較大的存儲空間,為了提高整體性能,需要把繁重的運算任務交給DSP處理,而圖像采集部分則要盡可能少的占用DSP時間。另外,利用圖像采集的間隙,或是圖像采集的同時,由硬件完成壹部分簡單而繁瑣的運算可以分擔DSP的處理任務,提高處理的並行度,滿足對實時性的要求。本系統采用了TMS320VC5402,其運算速度快,並且具有很高的性價比。系統中采集到的8bits灰度指紋圖像,每個像素占用壹個字節,圖像尺寸為512×512個像素大小,存儲壹幀圖像需要256k字節存貯空間。DSP單元是整個指紋處理系統的核心,負責對指紋進行實時處理。

2.3 輸出模塊

作為獨立的指紋識別系統,經過系統識別的數據可以通過LCD直接顯示出來。系統在設計時,也可以將系統作為終端使用,即通過FPGA擴展出以太網接口,作為需要通過網絡傳送指紋庫數據的大型指紋識別系統終端。

3 指紋識別算法

指紋識別算法是指紋識別的核心,本系統中采用的指紋識別算法流程如圖(2)所示。

圖(2)指紋識別算法流程

圖像增強是指紋圖像預處理需要解決的核心問題,指紋圖像增強的主要目的是為了消除噪聲,改善圖像質量,便於特征提取。由於指紋紋理由相間的脊線和谷線組成。這些紋理蘊涵了大量的信息,如紋理方向、紋理密度等等。在指紋圖像的不同區域,這樣的信息是不同的。指紋圖像增強算法就是利用圖像信息的區域性差異來實現的。傳統的指紋圖像增強就是利用圖像的紋理方向信息,構造方向濾波器模板來實現濾波的。濾波器構造的簡單性和指紋圖像復雜性的矛盾限制了其作用的有效性。本系統中采用的是參考了指紋圖像紋理頻率信息,並且以GABOR變換這個能夠同時對圖像局部結構的方向和空域頻率進行解析的最優濾波器作為濾波器的模板,因而極大的改善了增強算法的效果。

3.1 脊線方向

除奇異區外,指紋圖像在壹個足夠小的區域內,紋理近似於相互平行的直線,這就是指紋圖像的方向性特征。方向性特征是指紋圖像中最為明顯的特征之壹,它以簡化的形式直觀的反映指紋圖像的基本形態特征,因而被廣泛應用於指紋圖像的分類、增強、特征提取等方面。

提取脊線方向方法為:

⑴ 將指紋圖像分割成足夠小的子塊,以滿足塊中紋理近似平行的條件。

3.2 脊線頻率

指紋紋理除了具有穩定的方向性特征外,還具有穩定的頻率性特點。在指紋圖像的壹個局部區域內,脊線和谷線的紋理走向平行,同時沿脊谷方向的灰度分布近似於正弦包絡。

脊線頻率被定義為兩條脊線之間間距的倒數。通過定位該包絡中極大、極小值點,就能得到相應的脊線間距和谷線間距,進而計算出脊線頻率。

3.3 GABOR濾波器

GABOR變換由於具有最佳時域和頻域連接分辨率的特點,能夠同時對圖像局部結構的方向和空域頻率進行解析,可以很好地兼顧指紋圖像的脊線方向和脊線頻率信息。

本系統中采用GABOR濾波器函數的實部作為模板,以與子塊紋線方向垂直的方向作為濾波器方向,以脊線頻率作為濾波器頻率來構建濾波器。濾波過程如下式所示:

其中, 為原始圖像灰度, 是GABOR濾波後的圖像灰度,W為濾波器模板大小,S為模板系數和, 為子塊的域方向值。需要註意的是GABOR濾波器中的 與指紋文理方向垂直。對 和 的取值需要進行折衷,取值越大,則濾波器的抗噪性能越好,但也容易聲成假的脊線。這裏取 和 。

3.4 指紋匹配

本系統中指紋匹配采用基於特征點集合匹配的校準算法,該算法多為簡單的比較邏輯和加減運算,不需要用到DSP處理單元。

4 系統處理流程

整個系統的處理的過程分為四個步驟:

⑴ 從圖像傳感器輸出的指紋圖像首先送到FPGA緩沖,同時運用設計好的預處理模塊對數據進行處理,得到各像素點的梯度值以及子塊中極大值點的坐標,所有這些數據連同原始數據以突發模式存入DDR SDRAM中;

⑵ DSP通過FPGA從DDR SDRAM中讀取所有相關數據,計算出脊線方向和脊線頻率,然後利用GABOR對原始數據進行濾波,處理後的圖像數據再通過FPGA存入DDR SDRAM中,因此在DDR SDRAM的輸入輸出端都需要進行緩沖;

⑶ 根據DSP處理的指令要求,從DDR SDRAM中讀出濾波後的數據,由FPGA內部的比較邏輯提取出指紋圖像中每行(每列)中的極大值點,送到DSP進行進壹步處理,完成指紋圖像脊線提取;

⑷ 由DSP完成匹配識別算法,並輸出處理結果。

5 結論

以上設計方案綜合考慮了各方面因素,兼顧了DSP處理器和FPGA協處理器的性能狀況和資源需求來分配任務,而且在數據采集的同時完成了指紋方向和頻率提取的部分運算,減少了內存操作的次數,采用的根據系統特點優化的基於GABOR的增強算法,提高了系統的實時性,滿足應用要求。

  • 上一篇:微服務初體驗(二):使用Nacos作為配置中心並集成Dubbo
  • 下一篇:python為什麽叫爬蟲
  • copyright 2024編程學習大全網