李紅巖,梁紫璇,趙 峰,黃嘉,張世杰
(西安科技大學 電氣與控制工程學院,陜西 西安 710054)
傳統的機械門鎖開關復雜。為了解決這一問題,出現了磁卡鎖和密碼鎖,這在一定程度上方便了人們的生活。然而,隨著這兩種鎖的不斷使用,它們的缺點也暴露了出來—信息容易丟失,安全性低[1]。隨著生物識別技術的發展,人臉識別門禁系統應運而生。門禁系統是指控制口通道的系統,其主要功能是防止盜竊和犯罪事件發生。2020年,新冠疫情在全球爆發,各場所出入口管控力度加大,尤其是無接觸的觀念更加深入人心,智能人臉識別門禁需求急劇增加。這一需求推動了基于人臉識別技術的智能產品的發展,人臉識別也將會是智能門禁中的一大亮點和趨勢。本文采用Socket無線通信技術對門外區域進行無線視頻監控,且遇到陌生人臉會自動記錄信息,若遇到暴力開門會啟動報警系統。本圖像識別智能門禁綜合了傳統的門禁裝置的優點并加以優化,主要監測目標有人臉信息、手勢信息、人的體表溫度,檢測到信息異常的情況還會自動生成表格進行記錄,方便查詢、實用性高、安全可靠。
本課題設計的圖像識別智能門禁由圖像信息采集系統、圖像處理與識別系統、測溫系統、消毒系統和門鎖控制系統組成。圖像信息采集系統主要由光學系統和圖像采集卡組成,負責人臉圖像的采集;圖像處理與識別系統利用圖像處理技術實現人臉定位與識別;測溫系統由紅外測溫儀構成;門鎖控制系統則由磁力鎖和步進電機構成;消毒系統識別人手,并釋放消毒噴霧。其中人臉識別是系統的核心技術,人臉識別對比過程包括人臉識別、預處理、特征提取、人臉比對,并給出比對結果[2]。人臉比對結果是準入人員時,在疫情防控的重點區域,要征詢測溫模塊的指令,當測溫模塊的測溫值正常,門禁控制器驅動磁力鎖產生應答開門。人臉識別主要環節有人臉圖像采集、檢測和識別。攝像模塊將人臉信息成像并采集,對人臉信息進行定位識別,并剔除無用的圖像數據,完成對原始圖像數據的灰度校正、降噪除干擾;信息特征提取、匹配與識別是根據信息特征,利用識別算法進行識別和身份確認[3-4]。同時用紅外測溫模塊輔助活體檢測和疫情防控期間的體溫監測?;铙w檢測是為了防止不法分子利用業主的照片進門;體溫監測在疫情防控期間設置為工作狀態,平時可以關閉。在人臉比對成功后,圖片庫可以適時更新,避免由于年齡變化引起特征變化較大而不能識別,尤其是兒童和青少年。門禁系統總體組成如圖1所示。

圖1 整體結構框圖
圖像識別門禁包括門禁臺1、刷卡組件3、識別組件5和手勢消毒裝置4。門禁臺1的頂部與識別組件5的底部固定安裝,識別組件5的頂部設置有攝像頭6,門禁臺1的頂部與手勢消毒裝置4的底部固定連接,門禁臺1的頂部與刷卡組件3的底部固定安裝,門禁臺1的一側對稱轉動連接有轉動板2。其立體結構如圖2所示。

圖2 系統立體結構
在本實施例中,設置有手勢消毒裝置4,該圖像識別門禁系統是內含手勢識別消毒的門禁系統。通過STM32接收人臉檢測結果并通過紅外測溫系統采集人體體表溫度,以及通過手勢識別系統進行手部消毒,提高防疫效果;STM32芯片會結合采集到的體溫信息、手部消毒信息和避障傳感器傳回來的信息進行綜合處理,將通過人員的信息實時生成表格,方便查詢,實用性高、安全可靠,并且對該門禁系統可以遠程控制,方便遇到特殊或緊急情況時打開。
圖像信息采集系統由樹莓派和攝像頭構成。由12 V可充電航模電池進行供電,通過降壓模塊逐級降壓得到系統運行的穩定電壓。在攝像頭的底部配有舵機云臺。通過樹莓派GPIO口產生的PWM信號來控制舵機轉動的角度。在舵機轉動中需要的電流電壓過大,直接連接樹莓派會使得樹莓派重啟。為保證系統的穩定性,舵機的供電線由另外一組航模鋰電池提供,樹莓派只是提供PWM信號。同時為保證PWM信號的準確性,樹莓派的供電系統應與舵機的供電系統保持共地[5]。
測溫系統主要由MLX90614測溫模塊和ADS1115數模轉化模塊組成。MLX90614具有非接觸、體積小、精度高、成本低等優點。通過對物體自身紅外輻射的測量,能準確地確定其表面溫度,其檢測的溫度信息以模擬量的信息傳輸給ADS1115模塊。ADS1115具有高分辨率(16位)、低電流消耗的特點,非常適合在任何基于微處理器的項目中進行高分辨率的模數轉換。此模塊可以在2 V至5 V之間的電源和邏輯信號下運行,與系統選用的主控制處理器STM32兼容。模塊最多可提供4個單端或2個差分通道,在模塊內部,一種可編程增益放大器為小信號提供高達x16的增益。STM32接收ADS1115模塊轉化后的數字信息,并分析出該時刻的具體溫度[6]。
門鎖控制系統則由磁力鎖、步進電機和ULN2003驅動芯片構成,由單片機判斷門禁的狀態、步進電機來實現門的開關。步進電機需要較大的驅動電流,單片機的引腳無法輸出滿足步進電機驅動的電流,故需要ULN2003驅動芯片來驅動電機。ULN2003是高耐壓、大電流復合晶體管陣列,在5 V的工作電壓下能與TTL和CMOS電路直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數據,實現對于門鎖的精確控制。
本系統的軟件部分分為電腦上位機處理端、樹莓派視頻信息采集端以及STM32控制端。電腦的程序運行在Anaconda上,Python的版本是3.6,主要負責接收分析人臉數據,并將控制結果傳輸給STM32。樹莓派信息傳輸端主要負責收集圖像信息,利用人臉識別算法將視頻中人臉信息進行部分裁剪,并通過Socket技術傳輸給電腦端。STM32端負責接收各類信息,并對各個系統做出控制。
系統的人臉識別依靠Face Recognition庫進行。Face Recognition是世界上最簡潔的人臉識別庫,可以使用Python和命令行工具提取、識別、操作人臉數據[7]。本項目的人臉識別是基于業內領先的C++開源庫 dlib中的深度學習模型,采用Labeled Faces in the Wild人臉數據集進行測試,有高達99.38%的準確率。人臉識別實際上是對人臉進行編碼后再去兩兩計算人臉的相似度,known_image是已知人臉庫的圖像,unknown_image是待檢測的圖像,分別利用face_encodings函數來映射成一個向量;再利用兩個向量的內積來衡量相似度,compare_faces函數就是根據閾值確認是否是同一人臉。上述函數都是支持多個人臉計算的。另外compare_faces中的tolerance參數是控制閾值的,tolerance值越低越嚴格,默認為0.6。
系統通過Face Recognition庫對于數據庫中的人臉進行預處理與特征提取。在監測時,系統通過分析用戶每一幀的圖片與數據庫中的最大相似度來匹配人臉,并判斷是否為陌生人[8],同時會將結果在程序中以布爾變量的形式表達出來。在寫程序時只需要判斷布爾值為多少,即可判斷數據庫中人臉信息是否與之匹配。當系統判斷為陌生人后,會將此人的信息以Excel表格的形式儲存在本地。人臉識別程序流程如圖3所示。

圖3 人臉識別程序流程
系統通過樹莓派連接USB攝像頭來采集數據,利用OpenCV將原始的視頻信息轉化為數字信息。樹莓派與電腦均處于同一局域網下,故可利用Socket技術將轉化好的數字信息傳輸至電腦,利用電腦強大的計算能力來分析對比人臉數據庫。
Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口[9]。在設計模式中,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket接口后面。對用戶來說,一組簡單的接口就是全部,讓Socket去組織數據,以符合指定的協議。
Socket對TCP/IP進行了一層封裝,然后應用程序直接調用Socket API即可進行通信[10]。服務端需要建立Socket來監聽指定的地址,并等待客戶端來連接。而客戶端則需要建立Socket并與服務端Socket地址進行連接。本系統采用樹莓派與電腦構成基于Socket的無線網絡通信系統,系統框圖如圖4所示。

圖4 Socket通信系統框圖
本圖像識別智能門禁系統前端以單片機為中心實現了身份檢測后的控制與體溫監測。借助OpenCV函數實現了人臉識別,并且在檢測到門外有異常人臉信息時會自動生成Excel表格,便于查詢。系統結合了當前社會需要,將紅外測溫、生物識別、手勢消毒集為一體,可以更加智能地篩除異常人員,彌補了傳統門禁中功能單一的不足,提高了門禁的安全性。當然,此門禁系統中還存在不足,隨著科學技術的發展門禁系統會更加智能化。