謝鑫焱,祁晉東,楊 晨,楊 翔
(西藏大學 信息科學技術(shù)學院 電子信息系,拉薩 850011)
本研究設(shè)計核心是人臉識別、健康碼核驗、口罩識別。人臉識別技術(shù)在樹莓派4b上搭載環(huán)境,借助百度智能云,通過攝像頭,采集人臉信息,上傳至百度云進行對比,返回識別結(jié)果。健康碼識別在OpenMV攝像頭上實現(xiàn),采用顏色和二維碼識別算法,對綠碼紅碼進行識別??谡肿R別采用YOLO2網(wǎng)絡(luò)檢測算法,通過訓練后部署在K210攝像頭上進行識別。主要功能如下:對未佩戴口罩的人員進行口罩佩戴提醒;核驗人員健康碼信息為綠碼后進行人臉識別;對人員進行無接觸測溫,溫度過高會自動報警;對人員進行噴霧和無接觸雙手消毒。
在樹莓派4b上搭載人臉識別環(huán)境。先在百度智能云上錄入人臉信息,通過樹莓派4b攝像頭采集人臉信息,上傳至云端進行對比,最后返回一個識別結(jié)果(圖1)。
采用顏色識別和二維碼識別算法,通過調(diào)用OpenMV尋找色塊函數(shù),設(shè)置顏色閾值,找到色塊后用矩形框出來,完成健康碼識別。圖2為OpenMV攝像頭,圖3為健康碼識別結(jié)果。
圖1 人臉識別流程圖Fig.1 Flow chart of face recognition
圖2 OpenMV攝像頭Fig.2 Open MV camera
圖3 健康碼識別結(jié)果Fig.3 Results of health code recognition
采用基于YOLO2的人臉口罩識別模型,訓練集收集了大約10 000張不同的圖片,使用Image_tool,將數(shù)據(jù)集分辨率轉(zhuǎn)換為224×224,使用vott對轉(zhuǎn)換后的數(shù)據(jù)集進行標注。標注類型為mask、no_mask兩類。使用云端訓練方式訓練一個用于人臉口罩識別的YOLO2模型,輸出一個smodel文件,將該模型文件下載到 K210處理器FLASH中。K210會將 smodel 轉(zhuǎn)換為識別模型并將訓練好的參數(shù)加載到KPU中,對輸入的人臉圖像進行卷積運算,通過YOLO2口罩識別模型,識別人臉口罩。K210識別置信度可達到80%以上(圖4、圖5)。
圖4 進行未佩戴口罩識別Fig.4 Recognition of not wearing mask
圖5 進行口罩佩戴識別Fig.5 Recognition of mask wearing
硬件由K210處理器、樹莓派4b處理器、OpenMV攝像頭、STM32單片機、舵機、紅外測溫傳感器、超聲波傳感器、紅外傳感器、水泵、霧化模塊、語音播報模塊、數(shù)碼管組成,系統(tǒng)主要通過K210處理器對行人進行口罩佩戴檢測,當行人未佩戴口罩時,語音播報模塊會發(fā)出請佩戴口罩的語音提示。其余信息檢查流程通過OpenMV攝像頭對人員健康碼進行核驗、無接觸測溫,并在數(shù)碼管上顯示溫度,當以上兩個信息無異常,將會打開樹莓派4b上的CSI攝像頭采集人臉信息,通過百度云進行對比。如果對比成功,將會控制舵機打開門禁,同時發(fā)出相應(yīng)的語音提示,最后在以上信息核驗完成后,人員走到消毒區(qū)經(jīng)超聲波感應(yīng),通過霧化消毒模塊進行霧化消毒,雙手伸至消毒區(qū)消毒液會自動噴灑至雙手,實現(xiàn)全身消毒。人臉識別、健康碼核驗及無接觸測溫端如圖6所示,口罩識別端如圖7所示,無接觸消毒端如圖8所示。
圖6 人臉識別、健康碼核驗及無接觸測溫端Fig.6 Face recognition, health code verification and non-contact temperature measurement
圖7 口罩識別端Fig.7 Mask recognition end
圖8 無接觸消毒端Fig.8 Non-contact disinfection end
樹莓派4b主控板:樹莓派4b主控板擁有四核64位ARMCortex-A72,主頻達1.5 GHz,擁有4 GB內(nèi)存、2個USB 2.0和2個USB 3.0 接口、1個5.0藍牙。樹莓派支持很多操作系統(tǒng),可滿足本項目的開發(fā)。
K210處理器:口罩識別采用嘉楠科技K210處理器,有著雙核64位CPU處理器,內(nèi)置FPU、KPU、FFT加速器,板載OV2640攝像頭。其特點為芯片架構(gòu)中包含了1個自研的神經(jīng)網(wǎng)絡(luò)硬件加速器KPU,可以高性能地進行卷積神經(jīng)網(wǎng)絡(luò)運算。
OpenMV攝像頭:OpenMV是一款功能強大的機器視覺模塊。OpenMV 攝像頭以STM32H7為核心,集成了OV7725攝像頭芯片,方便開發(fā)者使用Python進行編程。OpenMV 攝像頭在該設(shè)計的主要功能為核驗健康碼信息,并通過串口通信發(fā)送指令至樹莓派4b。
STM32單片機:STM32F103ZET6 單片機具有 32 位基于ARM核心的微控制器及2個基本定時器、4個通用定時器、2個高級定時器、3個SPI、2 個IIC、5個串口、1個 USB、3個12位 ADC、1個12位DAC及112個通用IO口。通過該單片機實現(xiàn)無接觸消毒端各個模塊的控制。
紅外測溫模塊:MLX90614是一款無接觸的紅外測溫傳感器,集成了紅外探測熱電堆芯片與信號處理專用集成芯片。由于集成了低噪聲放大器、17位ADC和強大的DSP處理單元,使得高精度和高分辨度的溫度計得以實現(xiàn)。使用MLX90614模塊與數(shù)碼管結(jié)合,實現(xiàn)防疫系統(tǒng)的無接觸測溫。
人臉識別、健康碼核驗及無接觸測溫端:該部分的設(shè)計將樹莓派4b作為系統(tǒng)的主控,將自己的健康碼信息放入識別區(qū)進行識別。若為綠碼,將進行測溫。溫度如果正常,將打開攝像頭采集人臉信息,經(jīng)過百度云對比成功之后,門禁將會開啟(圖9)。
圖9 主程序軟件流程圖Fig.9 Flow chart of main program software
口罩識別端:當行人走到口罩識別區(qū)時,加載至K210上的口罩識別模型將會通過攝像頭采集信息,對未佩戴口罩的行人進行口罩佩戴的提醒(圖10)。
圖10 口罩識別軟件流程圖Fig.10 Flow chart of mask recognition software
無接觸消毒端:使用STM32單片機作為主控,當測得行人距離超聲波10 cm時就會讓霧化消毒模塊噴出霧化消毒液,對行人進行表面消毒。當行人雙手伸至紅外傳感器1 cm的位置,水泵將會開啟,噴灑出液體消毒液,對雙手進行消毒(圖11、12)。
圖11 霧化消毒Fig.11 Atomization disinfection
圖12 雙手消毒Fig.12 Disinfection of hands
經(jīng)測試,該防疫系統(tǒng)可識別人臉信息,核驗健康碼信息,對未佩戴口罩的人進行口罩佩戴提醒,并進行無接觸測溫和消毒(圖13)。
圖13 系統(tǒng)實物圖Fig.13 System physical diagram
提出的智慧社區(qū)防疫門禁系統(tǒng),可實現(xiàn)無人化防疫,做到無人化進行人臉識別、藏易通健康碼核驗、口罩識別、無接觸測溫和消毒。這種方式可減少交叉感染風險,減少人工對各類信息核驗時的疏漏,適合廣泛用于公共場合。