當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于Nios II的自動指紋識別系統(tǒng)設(shè)計

摘要:介紹基于Nios II處理器的嵌入式自動指紋識別系統(tǒng)的實(shí)現(xiàn)方法;具體說明自動指紋識別系統(tǒng)的基本原理、系統(tǒng)總體結(jié)構(gòu)、硬件結(jié)構(gòu)設(shè)計、用戶自定義指令的設(shè)計,以及指紋識別算法的處理流程和實(shí)現(xiàn)方法。


關(guān)鍵詞:嵌入式 指紋識別 Nios II 定制指令

引 言

  指紋識別作為生物特征識別的一種,在身份識別上有著其他手段不可比擬的優(yōu)越性:人的指紋具有唯一性和穩(wěn)定性的特點(diǎn);隨著指紋傳感器性能的提高和價格的降低,指紋的采集相對容易;指紋的識別算法已經(jīng)較為成熟。由于指紋識別的諸多優(yōu)點(diǎn),指紋識別技術(shù)已經(jīng)逐漸走入民用市場,并應(yīng)用到許多嵌入式設(shè)備中。

  目前的嵌入式處理器種類繁多。Altera公司的Nios II處理器是用于可編程邏輯器件的可配置的軟核處理器,與Altera的低成本的Cyclone FPGA組合,具有很高的性能價格比。本系統(tǒng)采用Nios II和Cyclone EP1C20嵌入式系統(tǒng)開發(fā)板,以及Veridicom公司的FPS200指紋傳感器芯片,實(shí)現(xiàn)了一個嵌入式自動指紋識別系統(tǒng)。

1 總體設(shè)計及系統(tǒng)架構(gòu)

  本系統(tǒng)有兩大功能:指紋登記和指紋比對。指紋登記主要包括指紋采集、指紋圖像預(yù)處理、特征點(diǎn)提取、特征模板存儲和輸出顯示;指紋比對的前三步與指紋登記相同,但在特征點(diǎn)提取后,是將生成的特征模板與存儲在指紋特征模板庫中的特征模板進(jìn)行特征匹配,最后輸出顯示匹配結(jié)果。自動指紋識別系統(tǒng)的基本原理框圖如圖1所示。

  本系統(tǒng)在結(jié)構(gòu)上分為三層:系統(tǒng)硬件平臺、操作系統(tǒng)和指紋識別算法。系統(tǒng)層次結(jié)構(gòu)如圖2所示。
   
             圖1自動指紋識別的基本原理框圖
                
                  圖2系統(tǒng)層次

  最底層——系統(tǒng)硬件平臺,是系統(tǒng)的物理基礎(chǔ),提供軟件的運(yùn)行平臺和通信接口。系統(tǒng)的硬件平臺在Altera的Nios II Cyclone嵌入式系統(tǒng)開發(fā)板上實(shí)現(xiàn),指紋傳感器采用美國Veridicom公司的FPS200。FPS200可輸出大小為256×300像素、分辨率為500 dpi的灰度圖像。

  第二層是操作系統(tǒng),采用μC/OSII。μC/OSII是一個基于搶占式的實(shí)時多任務(wù)內(nèi)核,可固化、可剪裁、具有高穩(wěn)定性和可靠性。這一層提供任務(wù)調(diào)度以及接口驅(qū)動,同時,通過硬件中斷來實(shí)現(xiàn)系統(tǒng)對外界的通信請求的實(shí)時響應(yīng),如對指紋采集的控制、對串口通信的控制等。這種方式可以提高系統(tǒng)的運(yùn)行效率。

  最上層是指紋識別核心算法的實(shí)現(xiàn)。該算法高效地對采集到的指紋進(jìn)行處理和匹配。采用C語言在Nios II的集成開發(fā)環(huán)境(IDE)中實(shí)現(xiàn)。

2 系統(tǒng)硬件的設(shè)計與實(shí)現(xiàn)

2.1 Nios II嵌入式軟核處理器簡介
  Nios II嵌入式處理器是Altera公司于2004年6月推出的第二代用于可編程邏輯器件的可配置的軟核處理器,性能超過200 DMIPS。Nios II是基于哈佛結(jié)構(gòu)的RISC通用嵌入式處理器軟核,能與用戶邏輯相結(jié)合,編程至Altera的FPGA中。處理器具有32位指令集,32位數(shù)據(jù)通道和可配置的指令以及數(shù)據(jù)緩沖。它特別為可編程邏輯進(jìn)行了優(yōu)化設(shè)計,也為可編程單芯片系統(tǒng)(SoPC)設(shè)計了一套綜合解決方案。Nios II處理器系列包括三種內(nèi)核:一種是高性能的內(nèi)核(Nios II/f);一種是低成本內(nèi)核(Nios II/e);一種是性能/成本折中的標(biāo)準(zhǔn)內(nèi)核(Nios II/s),是前兩種的平衡。本系統(tǒng)采用標(biāo)準(zhǔn)內(nèi)核。

  Nios II 處理器支持256 個具有固定或可變時鐘周期操作的定制指令;允許Nios II設(shè)計人員利用擴(kuò)展CPU指令集,通過提升那些對時間敏感的應(yīng)用軟件的運(yùn)行速度,來提高系統(tǒng)性能。

2.2 硬件平臺結(jié)構(gòu)

  系統(tǒng)的硬件平臺結(jié)構(gòu)如圖3所示。
    
                 圖3系統(tǒng)硬件平臺結(jié)構(gòu)

  本系統(tǒng)使用FPS200指紋傳感器獲取指紋圖像。FPS200是電容式固態(tài)指紋傳感器,采用CMOS技術(shù),獲取的圖像為256×300像素,分辨率為500 dpi。該傳感器提供三種接口方式:8位微機(jī)總線接口、集成USB全速接口和集成SPI接口。本系統(tǒng)采用集成SPI接口。指紋采集的程序流程是:首先初始化FPS200的各個寄存器,主要是放電電流寄存器(DCR)、放電時間寄存器(DTR)和增益控制寄存器(PGC)的設(shè)置;然后查詢等待,指紋被FPS200采集進(jìn)入數(shù)據(jù)寄存器后,通過DMA存入內(nèi)存。

  由于從指紋傳感器采集到的指紋圖像數(shù)據(jù)在80 KB左右,以DMA方式存入片內(nèi)RAM。Nios II對指紋圖像數(shù)據(jù)進(jìn)行處理后,生成指紋特征模板,在指紋登記模式下,存入片外Flash中;在指紋比對模式下,與存儲在Flash中的特征模板進(jìn)行匹配,處理結(jié)果通過LCD和七段LED顯示器輸出顯示。

  本系統(tǒng)的硬件平臺主要是在Altera的Nios II Cyclone嵌入式開發(fā)板上實(shí)現(xiàn),選用Altera的Cyclone版本的Nios II開發(fā)套件,包括Nios II處理器、標(biāo)準(zhǔn)外圍設(shè)備庫、集成了SoPC Builder系統(tǒng)設(shè)計工具的QuartusII開發(fā)軟件等。系統(tǒng)的主要組件Nios II的標(biāo)準(zhǔn)內(nèi)核、片內(nèi)存儲器、SPI、UART、DMA控制器、并行I/O接口、Avalon總線、定時器等都集成在一塊Altera的Cyclone FPGA芯片上,使用SoPC Builder來配置生成片上系統(tǒng)。

  SoPC Builder是功能強(qiáng)大的基于圖形界面的片上系統(tǒng)定義和定制工具。SoPC Builder庫中包括處理器和大量的IP核及外設(shè)。根據(jù)應(yīng)用的需要,本系統(tǒng)選用Nios II Processor、On?Chip?Memory、Flash Memory(Common Flash Interface)、SPI、JTAG UART、DMA、Interval timer、LCD PIO、Seven Segment PIO、Avalon Tri?State Bridge等模塊。對這些模塊配置完成后,使用SoPC Builder進(jìn)行系統(tǒng)生成。SOPC Builder自動產(chǎn)生每個模塊的HDL文件,同時自動產(chǎn)生一些必要的仲裁邏輯來協(xié)調(diào)系統(tǒng)中各部件的工作。

2.3 使用Nios II的定制指令提高系統(tǒng)性能

  使用Nios II的定制指令,可以將一個復(fù)雜的標(biāo)準(zhǔn)指令序列簡化為一個用硬件實(shí)現(xiàn)的單一指令,從而簡化系統(tǒng)軟件設(shè)計并加快系統(tǒng)運(yùn)行速度。Nios II的定制指令是與CPU的數(shù)據(jù)通路中的ALU相連的用戶邏輯塊。其基本操作是,接收從dataa和/或datab端口輸入的數(shù)據(jù),經(jīng)過定制指令邏輯的處理,將結(jié)果輸出到result端口。

  在指紋識別算法中,對指紋圖像的處理數(shù)據(jù)運(yùn)算量大,循環(huán)數(shù)目多;而Nios II的定制指令個數(shù)已增加到256個,可以使用定制指令完成許多循環(huán)內(nèi)的數(shù)據(jù)處理,從而加速數(shù)據(jù)處理的速度。

  在對指紋圖像的處理中,頻繁地用到坐標(biāo)轉(zhuǎn)換,將圖像的二維坐標(biāo)轉(zhuǎn)換為一維的存儲地址;通過定制指令來完成坐標(biāo)的轉(zhuǎn)換,用一組易于用硬件實(shí)現(xiàn)的位移和加法運(yùn)算替代乘加運(yùn)算,可將轉(zhuǎn)換時間縮短1/3。在方向圖計算中,要進(jìn)行離散反正切變換,使用優(yōu)化過的用硬件實(shí)現(xiàn)的定制指令來替代C語言中的atan函數(shù),更可以將變換時間縮短到原來的1/1000。

  定制指令邏輯和Nios II的連接在SoPC Builder中完成。Nios II CPU配置向?qū)峁┝艘粋€可添加256條定制指令的圖形用戶界面,在該界面中導(dǎo)入設(shè)計文件,設(shè)置定制指令名,并分配定制指令所需的CPU時鐘周期數(shù)目。系統(tǒng)生成時,Nios II IDE為每條用戶指令產(chǎn)生一個在系統(tǒng)頭文件中定義的宏,可以在C或C++應(yīng)用程序代碼中直接調(diào)用這個宏。

3 系統(tǒng)軟件的設(shè)計與實(shí)現(xiàn)

  本系統(tǒng)的指紋圖像處理及識別算法采用C語言在Nios II IDE中實(shí)現(xiàn)。指紋識別算法的流程如圖4所示。
      
               圖4指紋識別算法流程

  背景分離是將指紋區(qū)與背景分離,從而避免在沒有有效信息的區(qū)域進(jìn)行特征提取,加速后續(xù)處理的速度,提高指紋特征提取和匹配的精度。采用標(biāo)準(zhǔn)差閾值跟蹤法,圖像指紋部分由黑白相間的紋理組成,灰度變化大,因而標(biāo)準(zhǔn)差較大;而背景部分灰度分布較為平坦,標(biāo)準(zhǔn)差較小。將指紋圖像分塊,計算每個小塊的標(biāo)準(zhǔn)差。若大于某一閾值(本文取20),則該小塊中的所有像素點(diǎn)為前景;否則,為背景。

  方向圖是用紋線的方向來表示原來的紋線。本文采用塊方向圖,將源指紋圖像分成小塊,使用基于梯度值的方向場計算方法,計算出每個小塊的脊線方向。

  圖像增強(qiáng)的目的是改善圖像質(zhì)量,恢復(fù)脊線原來的結(jié)構(gòu);采用方向?yàn)V波,設(shè)計一個水平模板,根據(jù)計算出的方向圖,在每個小塊中將水平模板旋轉(zhuǎn)到所需要的方向進(jìn)行濾波。

  圖像的二值化是將脊線與背景分離,將指紋圖像從灰度圖像轉(zhuǎn)換為二值圖像。

  二值化后的圖像經(jīng)過細(xì)化,得到紋線的骨架圖像。細(xì)化采用迭代的方法,使用Zhang?Suen并行細(xì)化算法,可對二值圖像并行處理。

  特征提取階段,選擇脊線端點(diǎn)和分叉點(diǎn)作為特征點(diǎn),記錄每一個特征點(diǎn)的類型、位置和方向信息,從而得到指紋的特征點(diǎn)集。但由于在指紋掃描和預(yù)處理階段會引入噪聲,產(chǎn)生大量偽特征點(diǎn),因此需要進(jìn)行偽特征點(diǎn)的去除。去除偽特征點(diǎn)后的特征點(diǎn)集作為特征模板保存。

  特征匹配階段采用基于特征點(diǎn)的匹配算法,通過平移和旋轉(zhuǎn)變換實(shí)現(xiàn)特征點(diǎn)的大致對齊重合,計算坐標(biāo)變換后兩個模板中的特征點(diǎn)的距離和角度。如果小于某一閾值(本文的距離和角度閾值分別取5個像素和10°),則認(rèn)為是一對匹配的特征點(diǎn)。計算得出所有匹配的特征點(diǎn)對后,計算匹配的特征點(diǎn)占模板中所有特征點(diǎn)的百分比S。根據(jù)系統(tǒng)的拒識率(FRR)和誤識率(FAR)要求設(shè)置閾值TS。如果S大于或等于閾值TS,則認(rèn)為是同一指紋;否則,匹配失敗。

結(jié)語

  本文提出了一種基于Nios II嵌入式處理器軟核的自動指紋識別系統(tǒng)實(shí)現(xiàn)方法。使用Altera的Cyclone FPGA實(shí)現(xiàn),且具有開發(fā)周期短、成本低等特點(diǎn);同時,采用Nios II的定制指令來提高系統(tǒng)性能,利用硬件實(shí)現(xiàn)算法速度快的優(yōu)點(diǎn),使以Nios II處理器為核心的系統(tǒng)能夠快速地完成大量數(shù)據(jù)處理。

                 參考文獻(xiàn)
1 Frank Vahid,等. 嵌入式系統(tǒng)設(shè)計.駱麗等譯. 北京:北京航空航天大學(xué)出版社, 2004
2 任愛鋒,等.基于FPGA的嵌入式系統(tǒng)設(shè)計.西安:西安電子工業(yè)大學(xué)出版社, 2004
3 Nios II Custom Instruction User Guide. www.altera.com
4 Vizcaya P, Gerhardt L. A nonlinear orientation model for global description of fingerprints. Pattern Recognition, v. 29, no. 7
5 柴曉光,等.民用指紋識別技術(shù).北京:人民郵電出版社,2004
                               ?。ㄊ崭迦掌冢?005-01-25)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉