期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
摘要:隨著信息技術的發展及學習生活節奏加快,教室、宿舍等場所智能化管理需求日益增加。本文在Linux平臺下基于OpenCV、Face Recognition等開源算法開發人臉識別和RFID門禁考勤系統,一方面解決教師、學生進入宿舍、教室需要鑰匙的不便以及教室鑰匙管理的煩瑣;另一方面可以快速地對上課和夜間歸宿情況考勤記錄,實現了教室宿舍的智能化管理。
關鍵詞:Linux;人臉識別;門禁;考勤;RFID
開放科學(資源服務)標識碼(OSID):
校園教室、宿舍管理一直都是學校管理工作的重難點,以往傳統的管理方式依賴于人工,需要消耗大量的人力物力,且安全性和實時性也不能得到很好的保證,隨著電子信息技術發展,校園的很多設施都趨向自動化、智能化發展,但在教室、宿舍管理方面的信息化應用還不夠普遍。
人臉識別[1]應用已經十分廣泛,而且安全性也日益提高,即使在支付、認證這類高要求場合也能勝任。人臉識別[2,3]具有便捷、速度較快、非接觸、非侵入性、適應性強、可并發等特點,非常適用于考勤與門禁,而RFID[4](無線射頻識別)技術具有抗干擾、速度快、容量大、體積小、成本低、實現容易等特點,在校園卡、地鐵公交、高速計費等很多場合都有應用。
該系統的教室門禁功能可以根據教室安排分配不同教師及學生的權限,讓學生課前無須等待及時進入教室準備學習;教室考勤功能利用學生進教室時快速識別,考勤信息自動上傳教務系統,將節省寶貴的課堂時間。該系統的宿舍門禁功能可以方便學生進入寢室同時保障了宿舍財產安全;宿舍考勤功能可以記錄學生回寢時間,夜間考勤信息及時上傳,保障學生安全[5,6]。
1 系統總體設計
本系統以BCM2711處理器作為主控,運行嵌入式linux系統,配置Python-OpenCV、Face Recognition環境,首先通過攝像頭實時采集圖像,并對圖像進行人臉檢測、人臉區域裁剪、灰度變換、直方圖均衡化等預處理[7];其次通過Face Recognition與之前學習的人臉數據比對,返回匹配的人臉ID;再次把相應信息上傳服務器;最后服務器判斷是否有開門權限后下達指令,并進行考勤統計、整理、存檔,以Web界面的方式進行展示和管理,信息與教務系統[8]共享。RFID與人臉識別互補,增加了系統的靈活性。本文系統總體設計的框圖如圖1所示。
2 系統硬件設計
2.1 核心模塊
系統選用了高性能BCM2711處理器,該處理器為四核Cortex-A72架構,主頻1.5GHz,保障系統穩定流暢運行,集成工作頻率為500Mhz的Video core VI GPU,為人臉識別并行運算提供硬件加速,支持4K 60FPS HEVC視頻解碼,芯片工藝為28納米,有利于系統低功耗、低發熱設計。內存采用的是LPDDR4內存芯片,容量2G,滿足系統運行需求,Flash為外擴16G MicroSD卡。
2.2 圖像采集
系統選用的攝像頭為OV5647,它是500萬像素的cmos圖像傳感器,具有低電壓、高性能的特點,圖像分辨率最高可達2592*1944,為系統準確人臉識別提供基礎保障,通過CSI接口與處理器連接,減少I/O占用。視角為65°,適合近距離采集人像,在1080P分辨率下,FPS可以達到30,滿足系統要求。本文選用的圖像采集攝像頭的功能塊描述如圖2所示。
2.3 射頻識別
系統選用的射頻識別芯片為MFRC522,它工作在13.56MHZ,支持協議多、低功耗、低成本, 傳輸速率高達424Kbit/s,與處理器使用SPI協議通信。13.56MHZ是目前RFID使用最為廣泛的頻率,許多校園卡、公交卡、門禁、手機NFC都使用此頻率,因此還可添加支持NFC功能的手機、手環等作為認證設備,該頻率兼顧了速度和安全性,通信距離一般不超過10cm。該系統選用的卡片是Mifare S50,該卡片有1K的存儲容量,滿足系統要求,遵守ISO14443A標準,具有安全、防干擾、速度快、價格低等優點。對全扇區進行加密,防止復制,加強系統的安全性。
2.4 以太網通信
系統的以太網選用常見的RJ45接口,驅動芯片為BCM54213PE,它是一款三速1000BASE-T / 100BASE-TX / 10BASE-T千兆以太網收發器,完全符合RGMII標準,支持IEEE 802.3az標準,與處理器使用RGMII接口連接,可與標準的以太網交換機、路由器相連,兼容性好,方便系統安裝。
2.5 電控門鎖
電控門鎖采用電磁鎖,當通電時,電磁鐵產生巨大吸力吸住鐵板,達到把門鎖住的效果,當電源斷開,磁力消失,門即可打開。同時電磁鎖可以方便實現閉環檢測,當有暴力開門時,可以發出報警信號,且當斷電時,門為常開狀態,符合消防安全規范。
3 系統軟件設計
3.1 客戶端軟件設計
客戶端安裝linux系統,移植部署OpenCV、Face Recognition,主程序為Python編寫,客戶端軟件設計流程圖如圖3所示。客戶端運行時先從服務器更新已經處理好的已知人員的面部編碼,并從攝像頭采集圖像,使用OpenCV檢測、裁剪人臉,然后進行灰度變換,減少后期運算量,加快識別速度;并進行直方圖均衡化處理,弱化光線的影響,接著使用face_recognition.face_encodings對當前人臉進行編碼,將結果使用face_recognition.face_distance得出與已知人員面部編碼的歐拉距離,通過歐氏距離判斷該人臉是否屬于已知人臉,并得出與哪一個人臉最匹配。最后,將識別結果上傳服務器,由服務器記錄考勤信息并判斷當前個人是否有開門權限后下達開門指令,RFID作為備份,當檢測到正確的卡片,執行開門操作的同時上傳服務器記錄。
推薦閱讀:發表人臉識別論文的計算機類期刊