基于Linux系統的指紋識別門(mén)禁系統
指紋作為人體的身體特征,具有唯一性、穩定性和不易盜用等特點(diǎn)。隨著(zhù)指紋識別理論逐漸成熟、指紋采集工具這一難題得到解決,指紋識別已經(jīng)成為目前最廣泛應用的生物識別之一,逐漸取代了傳統的認證識別方式,廣泛應用于金融、公安、證券、門(mén)禁系統等領(lǐng)域。指紋識別技術(shù)的研究已經(jīng)成為當前建筑智能化研究的熱點(diǎn)。但是對于在Linux 系統下的由FPI 指紋識別模塊、Raspberry Pi 主控模塊、AVR 模塊組成的,采用無(wú)線(xiàn)通訊方式定時(shí)向用戶(hù)發(fā)送郵件來(lái)監控門(mén)鎖狀態(tài)的指紋識別系統的研究至今未見(jiàn)諸報端。本文在不改變現有門(mén)鎖結構的前提下,通過(guò)設計編程,開(kāi)發(fā)了一套基于指紋識別的門(mén)禁系統,定時(shí)檢測門(mén)鎖狀態(tài)并向用戶(hù)發(fā)送報警郵件,大大增強了門(mén)鎖的安全性。
本文引用地址:http://dyxdggzs.com/article/201612/326947.htm1 指紋識別的技術(shù)原理
指紋識別的技術(shù)原理是從指紋數據庫中查找與采集指紋是否匹配的指紋數據,達到通過(guò)辨別身份實(shí)現開(kāi)關(guān)門(mén)鎖的目的。其基本原理如圖1 所示,指紋識別系統由指紋圖像采集、指紋圖像預處理、指紋特征提取、指紋特征匹配、特征數據庫等幾部分組成。指紋圖像預處理采用了Gabor 濾波的方法進(jìn)行灰度圖濾波去噪,通過(guò)將圖像濾波后,對其進(jìn)行二值化處理使各種噪聲得到濾除或者修正。指紋特征提取是建立在對該點(diǎn)8 鄰點(diǎn)統計分析基礎之上,特征點(diǎn)通過(guò)計算CN(Croosing Number)得到。指紋特征匹配的過(guò)程是計算兩幅指紋相似程度的過(guò)程,在做指紋匹配前必須把不同的指紋圖像校準,找到輸入特征點(diǎn)集和模板特征點(diǎn)集之間的最佳變換。
指紋識別系統大體上可分為兩個(gè)內容:指紋注冊和指紋比對。指紋注冊主要包括指紋采集、指紋圖像預處理、特征點(diǎn)提取和特征值存儲。指紋比對的前3 步操作與指紋注冊完全相同,在特征點(diǎn)提取后,生成的指紋特征值將與存儲在指紋特征數據庫的特征值作特征匹配,最后輸出匹配結果。

圖1 指紋識別技術(shù)的基本原理
2 指紋識別系統硬件開(kāi)發(fā)
指紋識別系統主要由FPI 指紋識別模塊、Raspberry Pi 主控模塊、AVR 模塊3 部分組成,該硬件結構如圖2 所示。三方通訊實(shí)現用戶(hù)的指紋錄入和匹配,以及門(mén)鎖的開(kāi)關(guān),并且以發(fā)送郵件的方式來(lái)監控門(mén)鎖的狀態(tài)。FPI 指紋識別模塊強大的圖像處理功能對指紋識別非常靈敏,及時(shí)處理接收到的指紋信息,并與Raspberry Pi 通訊;Raspberry Pi 模塊,一方面控制AVR 去檢測門(mén)的開(kāi)關(guān)狀態(tài)以及開(kāi)關(guān)門(mén)鎖,另一方面控制FPI 指紋錄入和匹配,并在Raspberry Pi 上建立數據庫記錄用戶(hù)信息;控制器AVR 反饋給Raspberry Pi 門(mén)的開(kāi)關(guān)狀態(tài),并且控制電機來(lái)開(kāi)關(guān)門(mén)鎖,加強了在硬件方面的拓展,可通過(guò)硬件在更多方面對門(mén)進(jìn)行監測。此外,使用了無(wú)線(xiàn)通訊模塊,避免了過(guò)多布線(xiàn)可能對原本門(mén)鎖結構的破壞,使該系統的硬件組成方便快速。

圖2 系統的硬件結構
2.1 指紋識別模塊
指紋模塊基于TI 公司的TMS320VC5509 高級數字DSP處理器為主核,芯片結構框圖如圖3 所示。高精光學(xué)采集頭(TFS-D0307),高速、穩定; 標準UART 接口通訊,標準8 字節通訊協(xié)議, FPI 完成處理接收到的指紋信息, 并與Raspberry Pi主控模塊通訊的工作。

圖3 指紋識別芯片FPI
2.1.1 圖像采集芯片
FPI 芯片上集成了圖像采集芯片FPC1011F,FPC1011F指紋傳感器是電容式半導體傳感器件,該電容式指紋傳感器利用了反射式探測技術(shù),屬于平面式采集指紋傳感。相比傳統的電容式傳感器,它采集的是指頭的真皮層,且對干濕手指有良好的適用性。FPC1011F 的指紋采集原理:FPC1011F指紋傳感器是由152×200 個(gè)傳感器陣列組成的,每一個(gè)陣列是一個(gè)金屬電極,充當電容器的一極,安在傳感面上的手指頭的對應點(diǎn)則作為另外一極,其工作原理是基于變極板間距的電容式傳感器,其電容量由式(1)確定:

(式中:C 為電容量;d 為極板間距;ε0為真空介電常數;εr為極板間介質(zhì)的相對介電常數;s 為極板的有效面積)
當手指接觸傳感器導電框以后,由式(1) 可知, 谷和脊因為離傳感器陣列的距離不同, 產(chǎn)生了不同的電容值C,經(jīng)過(guò)運算放大電路, 形成不同的電壓值, 通過(guò)內部的A/D 轉換,獲得高質(zhì)量的數字指紋圖像。
2.1.2 處理器
該系統采用的主處理器是TMS320VC5509 的32 位定點(diǎn)高速數字DSP 處理器,開(kāi)發(fā)板的硬件包括:USB2.0 FullSpeed接口用以傳輸圖像、視頻等高速數據; 片外外擴1M BytesFLASH; RTL8019AS 網(wǎng)絡(luò )接口芯片,實(shí)現以太網(wǎng)通訊太網(wǎng)電路;開(kāi)發(fā)接口:UART(RS232)與上位機實(shí)現通訊;2 路10 位A/D 輸入接口。
2.2 主控模塊
該系統采用的主控模塊Raspberry Pi,代替了體積龐大的電腦實(shí)現控制功能。Raspberry Pi 是一款基于A(yíng)RM,操作系統采用開(kāi)源的Linux 系統的個(gè)人電腦,配備一枚700MHz 的處理器,支持SD 卡和Ethernet, 擁有兩個(gè)USB 接口,以及HDMI 和RCA 輸出支持。Raspberry Pi 一方面控制AVR 去檢測門(mén)的開(kāi)關(guān)狀態(tài)以及開(kāi)關(guān)門(mén)鎖,另一方面控制FPI 的指紋錄入以及匹配并在Raspberry Pi 上建立數據庫記錄用戶(hù)信息。
利用這些硬件便可以進(jìn)行嵌入式開(kāi)發(fā),快速的建立起指紋識別系統的硬件系統。
3 指紋識別系統軟件開(kāi)發(fā)
該系統基于Linux 操作系統,將自動(dòng)指紋識別系統移植到嵌入式Linux,在Linux 上進(jìn)行指紋識別系統的軟件設計,指紋識別系統的軟件設計包括四個(gè)方面:上位機與AVR 串口通訊、上位機與指紋模塊串口通訊、維護MYSQL 以及腳本發(fā)送報警。
3.1 指紋識別的處理過(guò)程
如圖4 所示:首先對串口進(jìn)行初始化,打開(kāi)串口設備0、1,設置串口參數,恢復串口未阻塞狀態(tài),串口初始化成功后執行用戶(hù)選擇功能:注冊開(kāi)門(mén)賬號或注冊關(guān)門(mén)賬號或運行門(mén)禁服務(wù)[N/C/R]。選擇系統功能N 后注冊新開(kāi)門(mén)用戶(hù),對同一指紋共獲取3 次圖像,與傳統采集一次圖像相比,杜絕了隨意采集造成的注冊指紋不精和驗證時(shí)不易識別的問(wèn)題。采集指紋成功后輸入用戶(hù)個(gè)人信息,注冊來(lái)自上位機數據庫的新ID號并把該用戶(hù)指紋信息存入數據庫,然后選擇是否繼續添加用戶(hù)。同理用戶(hù)選擇系統功能C后完成注冊關(guān)門(mén)用戶(hù)的操作。
用戶(hù)選擇系統功能R 后運行門(mén)禁服務(wù),一方面AVR 查詢(xún)當前門(mén)鎖狀態(tài), 例如把開(kāi)門(mén)的命令賦給門(mén)的匹配狀態(tài),如果指紋匹配操作FPI 和門(mén)的匹配狀態(tài)相同,則由繼電器接收來(lái)自AVR 的開(kāi)門(mén)命令,帶動(dòng)電機執行開(kāi)門(mén)動(dòng)作,并且記錄當時(shí)時(shí)間,向本地數據庫添加一條新的用戶(hù)使用記錄并寫(xiě)進(jìn)日志里。同理執行關(guān)門(mén)命令。另一方面AVR 查詢(xún)當前電機電流等級,將門(mén)鎖的實(shí)時(shí)開(kāi)關(guān)狀態(tài),由誰(shuí)執行開(kāi)關(guān)門(mén)動(dòng)作和當前門(mén)鎖電機電流狀態(tài)通過(guò)郵件的方式發(fā)送給用戶(hù),實(shí)現對門(mén)的實(shí)時(shí)監控,大大增強了門(mén)禁系統的安全性。
3.2 郵件的發(fā)送

圖4 系統工作方式流程圖
Raspberry Pi 上的ARM 通過(guò)RS 232 串口接收來(lái)自AVR定時(shí)地對門(mén)禁狀態(tài)和電流狀態(tài)的查詢(xún)信息,并編寫(xiě)Shell 腳本程序,利用wifi 通過(guò)串口傳送給郵件發(fā)送模塊,將報警內容發(fā)送到指定的用戶(hù)郵箱中來(lái)定時(shí)監控門(mén)鎖的狀態(tài)。程序如下:

這一部分完成信息的打包并將報警內容發(fā)到指定郵箱中的功能。AVR 定時(shí)檢測門(mén)的狀態(tài)和當前電流的狀態(tài),當沒(méi)有人執行開(kāi)關(guān)門(mén)操作時(shí),door.log 的內容為“0”,當有人執行開(kāi)關(guān)門(mén)操作或者電流超過(guò)一定數值時(shí),door.log 內容為“1”,其中開(kāi)關(guān)門(mén)鎖包含兩種情況:一是已注冊的用戶(hù)通過(guò)指紋識別成功實(shí)現開(kāi)關(guān)門(mén)鎖;二是沒(méi)有注冊過(guò)的用戶(hù)指紋識別失敗但是打開(kāi)了門(mén)鎖。文件夾從數據庫調用這一數據并將數據發(fā)送到指定用戶(hù)的郵箱里,然后door.log 重新變?yōu)椤?”,如此循環(huán)檢測門(mén)的狀態(tài)。
Raspberry Pi 上的ARM 通過(guò)RS232 串口接收來(lái)自AVR定時(shí)地對門(mén)禁狀態(tài)和電流狀態(tài)的查詢(xún)信息,并編寫(xiě)Shell 腳本程序,利用wifi 通過(guò)串口傳送給郵件發(fā)送模塊,將報警內容發(fā)送到指定的用戶(hù)郵箱中來(lái)定時(shí)監控門(mén)鎖的狀態(tài)。
4 系統測試
為檢驗該指紋識別門(mén)禁系統的性能,打開(kāi)Linux 程序,注冊登記4 個(gè)不同的指紋, 然后用不同的手指作指紋識別測試。分別觀(guān)察指紋識別成功和失敗時(shí)執行機構的動(dòng)作,一共測試50 次,部分系統測試結果的郵件正文內容如表1 所示。
表1 系統測試結果表

由表1 可以看出,郵件的內容包括ID、Name、Action、Date四項。其中前七行是已注冊過(guò)的用戶(hù)通過(guò)指紋識別成功實(shí)現開(kāi)關(guān)門(mén)鎖,所以郵件中會(huì )有他們的ID 號和姓名信息,而最后一行的用戶(hù)指紋識別失敗但是打開(kāi)了門(mén)鎖,所以郵件中將他們的ID 和姓名設置為NULL,提醒管理員特別注意當時(shí)門(mén)鎖狀態(tài)以實(shí)現管理員對門(mén)狀態(tài)的定時(shí)監控。
5 結論
文中基于指紋識別技術(shù)采用FPI 指紋識別模塊,結合Linux 設計了指紋識別門(mén)禁系統,設計的一個(gè)特點(diǎn)是基于Linux 操作系統,建立并發(fā)執行環(huán)境,提高CPU 的利用率,并且用Raspberry Pi 主控模塊和無(wú)線(xiàn)通訊模塊使得整個(gè)結構更加簡(jiǎn)單,對系統性能有一個(gè)明顯的提高。另外一個(gè)特點(diǎn)是定時(shí)檢測門(mén)鎖狀態(tài)并采用無(wú)線(xiàn)通訊方式向用戶(hù)發(fā)送報警郵件,大大增強了門(mén)鎖的安全性。實(shí)用測試結果表明,系統運行良好,能夠進(jìn)行可靠安全的指紋識別,準確、快速地完成個(gè)人身
評論