馮威翔,楊靜
(河南工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,河南鄭州, 450000)
隨著生活質(zhì)量的提高,普通IC卡等傳統(tǒng)身份識(shí)別工具已不能滿足社會(huì)需求[1]。人臉識(shí)別技術(shù)已日趨成熟,在安防監(jiān)控、身份認(rèn)證等眾多領(lǐng)域都有著重要的作用[2]。
傳統(tǒng)的特征提取算法在復(fù)雜環(huán)境下準(zhǔn)確率不高;而基于空間注意力機(jī)制的3D人臉識(shí)別算法,雖準(zhǔn)確率高,但參數(shù)需根據(jù)經(jīng)驗(yàn)設(shè)置,使得門檻較高,易用性低[3];一些龐大的深度學(xué)習(xí)網(wǎng)絡(luò)模型,通過自學(xué)習(xí)的方式進(jìn)行訓(xùn)練,但運(yùn)行在計(jì)算能力有限的嵌入式設(shè)備上有困難。
針對(duì)傳統(tǒng)人臉識(shí)別方案識(shí)別精度相對(duì)較低,提升識(shí)別精度對(duì)嵌入式設(shè)備的計(jì)算能力和算法優(yōu)化要求比較高,導(dǎo)致易用性低的問題,本文利用云計(jì)算平臺(tái)準(zhǔn)確率高,調(diào)用方便的特性[4],將百度智能云與樹莓派相結(jié)合,設(shè)計(jì)一款人臉識(shí)別門禁系統(tǒng),使得整個(gè)系統(tǒng)更加準(zhǔn)確、便捷化。
該系統(tǒng)由主控制器模塊、人體紅外感應(yīng)模塊、圖像獲取模塊、密碼模塊、顯示模塊、模擬門禁開關(guān)模塊組成,經(jīng)人體紅外傳感器觸發(fā)后調(diào)用攝像頭進(jìn)行圖像采集,經(jīng)過分辨率和格式轉(zhuǎn)換后上傳至百度智能云進(jìn)行人臉的識(shí)別對(duì)比。為了應(yīng)對(duì)一些網(wǎng)絡(luò)故障等情況,本設(shè)計(jì)還添加密碼模塊進(jìn)行輔助解鎖。系統(tǒng)總體結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
考慮到擴(kuò)展性、成本、功耗,本設(shè)計(jì)選擇樹莓派4B作為主控制器,主板有4個(gè)USB接口,可用來連接鼠標(biāo)鍵盤USB攝像頭等。搭載4核1.5GHz CPU,兩個(gè)支持4K顯示的HDMI接口,接上一塊屏幕可以用它來編輯文檔、瀏覽網(wǎng)頁等[5]。具有2.4GHz和5GHz的WiFi模塊以及以太網(wǎng)接口,向上可以提供云端API,指令數(shù)據(jù)通過API調(diào)用下發(fā)至設(shè)備端[6],硬件示意圖如圖2所示。
圖2 樹莓派4B硬件示意圖
為減少資源浪費(fèi),添加紅外觸發(fā)。HCSR501原理圖如圖3所示。人會(huì)發(fā)出10μm左右波長的紅外線。具有熱釋電效應(yīng)的半導(dǎo)體,用于檢測(cè)8~12μm波長的紅外信號(hào)。將產(chǎn)生的微弱電壓變化經(jīng)過BISS0001放大后輸出,調(diào)節(jié)可變電阻RL2和RT1改變放大倍數(shù),來改變傳感器的檢測(cè)距離和靈敏度。信號(hào)輸出接樹莓派的GPIO4接口,本設(shè)計(jì)采用可重復(fù)觸發(fā),距離在3m左右。
圖3 HC—SR501原理圖
圖像獲取模塊采用500萬像素的樹莓派專用攝像頭,尺寸小,功耗低[7]。通過CSI扁平帶狀電纜將相機(jī)板連接到樹莓派上,手動(dòng)使能。查看API文檔,API接口要求輸入的分辨率為1024×768,圖片格式必須為Base64編碼格式,編碼后的圖片大小不超過2M。
為應(yīng)對(duì)網(wǎng)絡(luò)故障等情況,本設(shè)計(jì)添加密碼模塊用來輔助解鎖。矩陣鍵盤控制行的4個(gè)引腳接到樹莓派的GPIO 21~24,控制列的4個(gè)引腳接到樹莓派的GPIO 26~29。初始化GPIO 21~24為輸出高電平。GPIO 26~29為輸入,通過內(nèi)置上拉電阻,上拉為高。
選用0.96寸I2C通信OLED進(jìn)行文字交互提示。手動(dòng)配置開啟樹莓派I2C通信接口。通過HDMI外接7寸IPS電容觸摸屏進(jìn)行圖像采集過程的顯示。
選用常見舵機(jī)SG90進(jìn)行模擬開門,信號(hào)線接到樹莓派的GPIO6引腳。通過PWM脈沖控制,開門后釋放PWM信號(hào)可手動(dòng)關(guān)門,一段時(shí)間后如果沒有識(shí)別到人將控制關(guān)門。
如果成功開門或檢測(cè)到人臉未在人臉庫中或密碼錯(cuò)誤。調(diào)用有源蜂鳴器進(jìn)行聲音警報(bào)。調(diào)用API服務(wù),通過微信將原因、時(shí)間和圖像發(fā)送給用戶。
硬件總體連線如圖4所示。
圖4 硬件總體連線圖
本系統(tǒng)選用官方指定的Raspberry Pi OS,在官網(wǎng)中下載鏡像文件,通過鏡像文件燒錄工具燒錄到SD卡中。
為了方便文件傳輸,整個(gè)開發(fā)過程采用遠(yuǎn)程桌面連接進(jìn)入樹莓派桌面進(jìn)行開發(fā)。使用Python作為開發(fā)語言,樹莓派官方提供的系統(tǒng)中自帶Python編譯器Python3.9,以及Python集成開發(fā)環(huán)境Thonny。運(yùn)行時(shí),實(shí)時(shí)反饋交互的運(yùn)行結(jié)果,給予一些優(yōu)化建議,對(duì)樹莓派支持良好。
本設(shè)計(jì)通過百度智能云平臺(tái)提供的應(yīng)用程序接口(Application Programming Interface,API)接口實(shí)現(xiàn)人臉識(shí)別。
首先,注冊(cè)并登錄百度智能云,創(chuàng)建一個(gè)人臉識(shí)別的應(yīng)用,依次創(chuàng)建用戶組、用戶和添加用戶的人臉照片。用戶組數(shù)量沒有限制,每個(gè)用戶組中的用戶數(shù)量也沒有限制,每個(gè)用戶可以注冊(cè)的人臉數(shù)量為20個(gè)。創(chuàng)建成功后可以得到這個(gè)應(yīng)用的AppID、API Key、Secret Key,也就是在程序中進(jìn)行接口調(diào)用時(shí)的用戶名和密碼等信息。
其次,下載適用于Python的人臉識(shí)別軟件開發(fā)工具包(Software Development Kit,SDK)。將下載的SDK通過VNC Viewer的文件傳輸功能傳入到樹莓派中,用Python編譯SDK文件中的setup.py來安裝百度AI模塊如圖5所示。
圖5 安裝百度AI模塊圖
最后,根據(jù)之前記錄的所創(chuàng)建應(yīng)用的用戶名和密碼進(jìn)行訪問所創(chuàng)建的應(yīng)用,調(diào)用AipFace模塊中的search函數(shù)將返回人臉匹配的結(jié)果,返回值是一個(gè)字典。通過error_mag來判斷是否為人臉,如果檢測(cè)不到人臉就返回-1。如果檢測(cè)到人臉,則獲取相似度score,通過相似度來判斷是否在人臉庫中,如果滿足相似度就返回1,否則返回0。
密碼模塊包括密碼的輸入、清除、判斷和修改。掃描第一行時(shí),設(shè)置GPIO21引腳輸出低電平,延時(shí)20ms來繞過抖動(dòng)區(qū)間進(jìn)行防抖,掃描GPIO 26~29引腳是否為低電平,來判斷S1~S4的按鍵狀態(tài),2、3、4行同理。
密碼的輸入封裝在函數(shù)中,將被按下的按鍵以字符的形式放入列表中。當(dāng)輸入為6位時(shí)返回列表。密碼存放在本地的文本文件中,使用operator函數(shù)進(jìn)行判斷,如果輸入與密碼不匹配返回0,否則返回1。如果判斷鍵盤輸入“*”,則清空列表,來達(dá)到清除的目的。輸入6個(gè)#來進(jìn)行修改密碼,先輸入原密碼,如果密碼正確將修改的密碼替換掉文本文件中的內(nèi)容。
系統(tǒng)開始工作后,判斷人體紅外傳感器的狀態(tài),當(dāng)檢測(cè)到有人時(shí),進(jìn)入人臉識(shí)別部分,點(diǎn)亮發(fā)光二極管來模擬燈光照明,調(diào)用OLED來提示用戶相關(guān)操作,調(diào)用攝像頭進(jìn)行圖像采集,按照技術(shù)文檔進(jìn)行格式轉(zhuǎn)換后上傳到百度智能云。如果返回結(jié)果為不是人臉,判斷為人體紅外誤觸,將回到人體紅外檢測(cè)部分。如果人臉匹配成功,控制舵機(jī)模擬開門,記錄下用戶名及開門時(shí)間在本地文本文件,回到人體紅外檢測(cè)部分。如果人臉匹配失敗,再次進(jìn)行檢測(cè)。如果連續(xù)兩次檢測(cè)失敗將提示進(jìn)入密碼識(shí)別。如果密碼識(shí)別正確,控制舵機(jī)模擬開門;如果密碼識(shí)別錯(cuò)誤兩次,將延時(shí)一段時(shí)間后回到人體紅外檢測(cè)部分。無論是否成功通過都會(huì)將記錄下來的時(shí)間、原因和圖像通過微信公眾號(hào)發(fā)送給用戶。程序流程圖如圖6所示。
圖6 總體程序流程圖
系統(tǒng)測(cè)試一共有3位測(cè)試者參與,分別為2位在圖庫中的人和1位不在圖庫中的人,對(duì)人臉識(shí)別等各模塊功能進(jìn)行測(cè)試。每個(gè)實(shí)驗(yàn)對(duì)象在光線充足和光線暗弱兩種環(huán)境下進(jìn)行多次實(shí)驗(yàn)。實(shí)物圖如圖7所示,測(cè)試過程圖如圖8所示。
圖7 實(shí)物圖
圖8 測(cè)試過程圖
經(jīng)測(cè)試,系統(tǒng)各模塊功能工作正常,人臉識(shí)別測(cè)試結(jié)果如表1所示。在5G網(wǎng)絡(luò)下調(diào)用所需時(shí)間大約在0.9s,4G網(wǎng)絡(luò)下調(diào)用時(shí)間在3s左右,經(jīng)100次測(cè)試,僅有一次在光線暗弱的環(huán)境下出現(xiàn)誤判現(xiàn)象。
表1 人臉識(shí)別測(cè)試結(jié)果
本設(shè)計(jì)以樹莓派4B為主控,通過調(diào)用百度智能云平臺(tái)實(shí)現(xiàn)了以人臉識(shí)別為主的門禁系統(tǒng)。實(shí)驗(yàn)表明該系統(tǒng)性能穩(wěn)定,識(shí)別準(zhǔn)確率為99.8%,保證了門禁系統(tǒng)的真實(shí)、安全。在5G網(wǎng)絡(luò)下,檢測(cè)時(shí)間大約在0.9s,實(shí)現(xiàn)了防盜防范的作用,減少了不必要的安全隱患。