基于Linux系統(tǒng)的指紋識別門禁系統(tǒng)
指紋作為人體的身體特征,具有唯一性、穩(wěn)定性和不易盜用等特點。隨著指紋識別理論逐漸成熟、指紋采集工具這一難題得到解決,指紋識別已經(jīng)成為目前最廣泛應(yīng)用的生物識別之一,逐漸取代了傳統(tǒng)的認(rèn)證識別方式,廣泛應(yīng)用于金融、公安、證券、門禁系統(tǒng)等領(lǐng)域。指紋識別技術(shù)的研究已經(jīng)成為當(dāng)前建筑智能化研究的熱點。但是對于在Linux 系統(tǒng)下的由FPI 指紋識別模塊、Raspberry Pi 主控模塊、AVR 模塊組成的,采用無線通訊方式定時向用戶發(fā)送郵件來監(jiān)控門鎖狀態(tài)的指紋識別系統(tǒng)的研究至今未見諸報端。本文在不改變現(xiàn)有門鎖結(jié)構(gòu)的前提下,通過設(shè)計編程,開發(fā)了一套基于指紋識別的門禁系統(tǒng),定時檢測門鎖狀態(tài)并向用戶發(fā)送報警郵件,大大增強了門鎖的安全性。
本文引用地址:http://m.butianyuan.cn/article/201612/326947.htm1 指紋識別的技術(shù)原理
指紋識別的技術(shù)原理是從指紋數(shù)據(jù)庫中查找與采集指紋是否匹配的指紋數(shù)據(jù),達到通過辨別身份實現(xiàn)開關(guān)門鎖的目的。其基本原理如圖1 所示,指紋識別系統(tǒng)由指紋圖像采集、指紋圖像預(yù)處理、指紋特征提取、指紋特征匹配、特征數(shù)據(jù)庫等幾部分組成。指紋圖像預(yù)處理采用了Gabor 濾波的方法進行灰度圖濾波去噪,通過將圖像濾波后,對其進行二值化處理使各種噪聲得到濾除或者修正。指紋特征提取是建立在對該點8 鄰點統(tǒng)計分析基礎(chǔ)之上,特征點通過計算CN(Croosing Number)得到。指紋特征匹配的過程是計算兩幅指紋相似程度的過程,在做指紋匹配前必須把不同的指紋圖像校準(zhǔn),找到輸入特征點集和模板特征點集之間的最佳變換。
指紋識別系統(tǒng)大體上可分為兩個內(nèi)容:指紋注冊和指紋比對。指紋注冊主要包括指紋采集、指紋圖像預(yù)處理、特征點提取和特征值存儲。指紋比對的前3 步操作與指紋注冊完全相同,在特征點提取后,生成的指紋特征值將與存儲在指紋特征數(shù)據(jù)庫的特征值作特征匹配,最后輸出匹配結(jié)果。
圖1 指紋識別技術(shù)的基本原理
2 指紋識別系統(tǒng)硬件開發(fā)
指紋識別系統(tǒng)主要由FPI 指紋識別模塊、Raspberry Pi 主控模塊、AVR 模塊3 部分組成,該硬件結(jié)構(gòu)如圖2 所示。三方通訊實現(xiàn)用戶的指紋錄入和匹配,以及門鎖的開關(guān),并且以發(fā)送郵件的方式來監(jiān)控門鎖的狀態(tài)。FPI 指紋識別模塊強大的圖像處理功能對指紋識別非常靈敏,及時處理接收到的指紋信息,并與Raspberry Pi 通訊;Raspberry Pi 模塊,一方面控制AVR 去檢測門的開關(guān)狀態(tài)以及開關(guān)門鎖,另一方面控制FPI 指紋錄入和匹配,并在Raspberry Pi 上建立數(shù)據(jù)庫記錄用戶信息;控制器AVR 反饋給Raspberry Pi 門的開關(guān)狀態(tài),并且控制電機來開關(guān)門鎖,加強了在硬件方面的拓展,可通過硬件在更多方面對門進行監(jiān)測。此外,使用了無線通訊模塊,避免了過多布線可能對原本門鎖結(jié)構(gòu)的破壞,使該系統(tǒng)的硬件組成方便快速。
圖2 系統(tǒng)的硬件結(jié)構(gòu)
2.1 指紋識別模塊
指紋模塊基于TI 公司的TMS320VC5509 高級數(shù)字DSP處理器為主核,芯片結(jié)構(gòu)框圖如圖3 所示。高精光學(xué)采集頭(TFS-D0307),高速、穩(wěn)定; 標(biāo)準(zhǔn)UART 接口通訊,標(biāo)準(zhǔn)8 字節(jié)通訊協(xié)議, FPI 完成處理接收到的指紋信息, 并與Raspberry Pi主控模塊通訊的工作。
圖3 指紋識別芯片F(xiàn)PI
2.1.1 圖像采集芯片
FPI 芯片上集成了圖像采集芯片F(xiàn)PC1011F,FPC1011F指紋傳感器是電容式半導(dǎo)體傳感器件,該電容式指紋傳感器利用了反射式探測技術(shù),屬于平面式采集指紋傳感。相比傳統(tǒng)的電容式傳感器,它采集的是指頭的真皮層,且對干濕手指有良好的適用性。FPC1011F 的指紋采集原理:FPC1011F指紋傳感器是由152×200 個傳感器陣列組成的,每一個陣列是一個金屬電極,充當(dāng)電容器的一極,安在傳感面上的手指頭的對應(yīng)點則作為另外一極,其工作原理是基于變極板間距的電容式傳感器,其電容量由式(1)確定:
(式中:C 為電容量;d 為極板間距;ε0為真空介電常數(shù);εr為極板間介質(zhì)的相對介電常數(shù);s 為極板的有效面積)
當(dāng)手指接觸傳感器導(dǎo)電框以后,由式(1) 可知, 谷和脊因為離傳感器陣列的距離不同, 產(chǎn)生了不同的電容值C,經(jīng)過運算放大電路, 形成不同的電壓值, 通過內(nèi)部的A/D 轉(zhuǎn)換,獲得高質(zhì)量的數(shù)字指紋圖像。
2.1.2 處理器
該系統(tǒng)采用的主處理器是TMS320VC5509 的32 位定點高速數(shù)字DSP 處理器,開發(fā)板的硬件包括:USB2.0 FullSpeed接口用以傳輸圖像、視頻等高速數(shù)據(jù); 片外外擴1M BytesFLASH; RTL8019AS 網(wǎng)絡(luò)接口芯片,實現(xiàn)以太網(wǎng)通訊太網(wǎng)電路;開發(fā)接口:UART(RS232)與上位機實現(xiàn)通訊;2 路10 位A/D 輸入接口。
2.2 主控模塊
該系統(tǒng)采用的主控模塊Raspberry Pi,代替了體積龐大的電腦實現(xiàn)控制功能。Raspberry Pi 是一款基于ARM,操作系統(tǒng)采用開源的Linux 系統(tǒng)的個人電腦,配備一枚700MHz 的處理器,支持SD 卡和Ethernet, 擁有兩個USB 接口,以及HDMI 和RCA 輸出支持。Raspberry Pi 一方面控制AVR 去檢測門的開關(guān)狀態(tài)以及開關(guān)門鎖,另一方面控制FPI 的指紋錄入以及匹配并在Raspberry Pi 上建立數(shù)據(jù)庫記錄用戶信息。
利用這些硬件便可以進行嵌入式開發(fā),快速的建立起指紋識別系統(tǒng)的硬件系統(tǒng)。
3 指紋識別系統(tǒng)軟件開發(fā)
該系統(tǒng)基于Linux 操作系統(tǒng),將自動指紋識別系統(tǒng)移植到嵌入式Linux,在Linux 上進行指紋識別系統(tǒng)的軟件設(shè)計,指紋識別系統(tǒng)的軟件設(shè)計包括四個方面:上位機與AVR 串口通訊、上位機與指紋模塊串口通訊、維護MYSQL 以及腳本發(fā)送報警。
3.1 指紋識別的處理過程
如圖4 所示:首先對串口進行初始化,打開串口設(shè)備0、1,設(shè)置串口參數(shù),恢復(fù)串口未阻塞狀態(tài),串口初始化成功后執(zhí)行用戶選擇功能:注冊開門賬號或注冊關(guān)門賬號或運行門禁服務(wù)[N/C/R]。選擇系統(tǒng)功能N 后注冊新開門用戶,對同一指紋共獲取3 次圖像,與傳統(tǒng)采集一次圖像相比,杜絕了隨意采集造成的注冊指紋不精和驗證時不易識別的問題。采集指紋成功后輸入用戶個人信息,注冊來自上位機數(shù)據(jù)庫的新ID號并把該用戶指紋信息存入數(shù)據(jù)庫,然后選擇是否繼續(xù)添加用戶。同理用戶選擇系統(tǒng)功能C后完成注冊關(guān)門用戶的操作。
用戶選擇系統(tǒng)功能R 后運行門禁服務(wù),一方面AVR 查詢當(dāng)前門鎖狀態(tài), 例如把開門的命令賦給門的匹配狀態(tài),如果指紋匹配操作FPI 和門的匹配狀態(tài)相同,則由繼電器接收來自AVR 的開門命令,帶動電機執(zhí)行開門動作,并且記錄當(dāng)時時間,向本地數(shù)據(jù)庫添加一條新的用戶使用記錄并寫進日志里。同理執(zhí)行關(guān)門命令。另一方面AVR 查詢當(dāng)前電機電流等級,將門鎖的實時開關(guān)狀態(tài),由誰執(zhí)行開關(guān)門動作和當(dāng)前門鎖電機電流狀態(tài)通過郵件的方式發(fā)送給用戶,實現(xiàn)對門的實時監(jiān)控,大大增強了門禁系統(tǒng)的安全性。
3.2 郵件的發(fā)送
圖4 系統(tǒng)工作方式流程圖
Raspberry Pi 上的ARM 通過RS 232 串口接收來自AVR定時地對門禁狀態(tài)和電流狀態(tài)的查詢信息,并編寫Shell 腳本程序,利用wifi 通過串口傳送給郵件發(fā)送模塊,將報警內(nèi)容發(fā)送到指定的用戶郵箱中來定時監(jiān)控門鎖的狀態(tài)。程序如下:
這一部分完成信息的打包并將報警內(nèi)容發(fā)到指定郵箱中的功能。AVR 定時檢測門的狀態(tài)和當(dāng)前電流的狀態(tài),當(dāng)沒有人執(zhí)行開關(guān)門操作時,door.log 的內(nèi)容為“0”,當(dāng)有人執(zhí)行開關(guān)門操作或者電流超過一定數(shù)值時,door.log 內(nèi)容為“1”,其中開關(guān)門鎖包含兩種情況:一是已注冊的用戶通過指紋識別成功實現(xiàn)開關(guān)門鎖;二是沒有注冊過的用戶指紋識別失敗但是打開了門鎖。文件夾從數(shù)據(jù)庫調(diào)用這一數(shù)據(jù)并將數(shù)據(jù)發(fā)送到指定用戶的郵箱里,然后door.log 重新變?yōu)椤?”,如此循環(huán)檢測門的狀態(tài)。
Raspberry Pi 上的ARM 通過RS232 串口接收來自AVR定時地對門禁狀態(tài)和電流狀態(tài)的查詢信息,并編寫Shell 腳本程序,利用wifi 通過串口傳送給郵件發(fā)送模塊,將報警內(nèi)容發(fā)送到指定的用戶郵箱中來定時監(jiān)控門鎖的狀態(tài)。
4 系統(tǒng)測試
為檢驗該指紋識別門禁系統(tǒng)的性能,打開Linux 程序,注冊登記4 個不同的指紋, 然后用不同的手指作指紋識別測試。分別觀察指紋識別成功和失敗時執(zhí)行機構(gòu)的動作,一共測試50 次,部分系統(tǒng)測試結(jié)果的郵件正文內(nèi)容如表1 所示。
表1 系統(tǒng)測試結(jié)果表
由表1 可以看出,郵件的內(nèi)容包括ID、Name、Action、Date四項。其中前七行是已注冊過的用戶通過指紋識別成功實現(xiàn)開關(guān)門鎖,所以郵件中會有他們的ID 號和姓名信息,而最后一行的用戶指紋識別失敗但是打開了門鎖,所以郵件中將他們的ID 和姓名設(shè)置為NULL,提醒管理員特別注意當(dāng)時門鎖狀態(tài)以實現(xiàn)管理員對門狀態(tài)的定時監(jiān)控。
5 結(jié)論
文中基于指紋識別技術(shù)采用FPI 指紋識別模塊,結(jié)合Linux 設(shè)計了指紋識別門禁系統(tǒng),設(shè)計的一個特點是基于Linux 操作系統(tǒng),建立并發(fā)執(zhí)行環(huán)境,提高CPU 的利用率,并且用Raspberry Pi 主控模塊和無線通訊模塊使得整個結(jié)構(gòu)更加簡單,對系統(tǒng)性能有一個明顯的提高。另外一個特點是定時檢測門鎖狀態(tài)并采用無線通訊方式向用戶發(fā)送報警郵件,大大增強了門鎖的安全性。實用測試結(jié)果表明,系統(tǒng)運行良好,能夠進行可靠安全的指紋識別,準(zhǔn)確、快速地完成個人身
評論