劉笑平,曾文芳
(湖北理工學(xué)院 電氣與電子信息工程學(xué)院,湖北 黃石 435003)
體溫作為人體重要生命特征之一,能直接反映人體的健康狀況,是疾病檢測(cè)的重要指標(biāo)之一。傳統(tǒng)的體溫檢測(cè)不僅效率低,無(wú)法準(zhǔn)確鑒別被檢測(cè)人的身份,而且還存在相互傳染的風(fēng)險(xiǎn)。因此,開(kāi)發(fā)高效、快速、安全、成本低的體溫監(jiān)測(cè)與身份驗(yàn)證裝置具有重要的實(shí)際意義[1]。本文以STM32作為主控芯片,設(shè)計(jì)了一款集身份驗(yàn)證與體溫監(jiān)控為一體的裝置,旨在為安全、高效地進(jìn)行體溫檢測(cè)提供新思路。
基于STM32的身份驗(yàn)證與體溫監(jiān)測(cè)一體化系統(tǒng)由核心控制芯片STM32F103C8T6、K210機(jī)器視覺(jué)模塊、MLX90614ESF高精度紅外測(cè)溫電路模塊、電源模塊、USART串口屏顯示模塊、語(yǔ)音提示模塊、輸入輸出信號(hào)檢測(cè)電路等組成,共同完成系統(tǒng)的數(shù)據(jù)傳輸與處理。其中,電源模塊為系統(tǒng)裝置供電,機(jī)器視覺(jué)模塊通過(guò)K210芯片進(jìn)行人臉檢測(cè)和辨別,紅外溫度傳感器收集溫度檢測(cè)數(shù)據(jù)[2]。系統(tǒng)以STM32芯片為核心進(jìn)行總體控制,處理各種檢測(cè)到的信號(hào),以確定被測(cè)者是否佩戴口罩、身份是否正確、體溫是否正常,然后利用顯示和語(yǔ)音模塊進(jìn)行人機(jī)交互,實(shí)現(xiàn)非接觸式身份驗(yàn)證和體溫監(jiān)測(cè)。系統(tǒng)的工作原理如圖1所示。
圖1 系統(tǒng)的工作原理
STM32F103C8T6芯片為中央控制單元,采用32位ARM Cortex-M3 CPU,處理速度高達(dá)72 MHz,內(nèi)含高速嵌入式存儲(chǔ)器,具有高達(dá)1 MB 的閃存。STM32單片機(jī)配置資源十分豐富,有足夠的I/O端口,還有內(nèi)置的定時(shí)器,具有封裝體積小、性能高、功耗低、價(jià)格低、性能好的優(yōu)點(diǎn)。Cortex-M3 體系的結(jié)構(gòu)增強(qiáng)功能使中斷更快,具有超速12位模數(shù)轉(zhuǎn)換器,轉(zhuǎn)換速度高達(dá)1 μs,特別適用于數(shù)據(jù)的快速處理和高分辨率定時(shí)器(217 ps),對(duì)供電和溫度漂移可自補(bǔ)償,帶動(dòng)電動(dòng)機(jī)控制外圍設(shè)備以及 CAN 和 USB 全速接口,其工作電源為2~3.6 V。STM32單片機(jī)供應(yīng)商提供初始化程序和驅(qū)動(dòng)程序模板,開(kāi)發(fā)時(shí)用戶不需從最底層編程[3-4]。
為了防止在測(cè)量體溫時(shí)發(fā)生病毒二次傳染,系統(tǒng)選用MLX90614ESF非接觸式類紅外傳感器,利用輻射與溫度的關(guān)系,根據(jù)所接收到的人體表面輻射的能量推算出溫度具體值,測(cè)量精度可達(dá)到醫(yī)用高精度標(biāo)準(zhǔn)[5]。
MLX90614集成了紅外熱電堆感應(yīng)器MLX81101與信號(hào)處理專用集成芯片MLX90302,計(jì)算出來(lái)的結(jié)果通過(guò)PWM或SMBus輸出[6]。MLX90614作為一種非接觸式溫度測(cè)量傳感器,由于出廠前已校驗(yàn),應(yīng)用時(shí)無(wú)需校正,可直接輸出線性信號(hào),應(yīng)用方便。測(cè)溫時(shí)其內(nèi)部紅外感應(yīng)熱元件的電壓為:
(1)
式(1)中,B為元件靈敏度系數(shù);T0為被測(cè)物體溫度,K;T1為傳感器環(huán)境溫度,K。
MLX90614ESF高精度紅外測(cè)溫傳感器的工作電源為3~5 V。其最大的優(yōu)點(diǎn)是體積小,內(nèi)含低噪聲放大器、17位ADC以及功能強(qiáng)大的DSP單元;測(cè)溫范圍達(dá)到-40~125 ℃,測(cè)量精度及分辨率高,測(cè)溫分辨率高達(dá)0.001 ℃;具有PWM數(shù)據(jù)輸出方式,可直接連接STM32F103C8T6的I2C,支持兩線串行通信協(xié)議,采用符合工業(yè)標(biāo)準(zhǔn)的T0-39金屬封裝。測(cè)溫元件熱電偶輸出的被測(cè)物體溫度信號(hào)和環(huán)境溫度信號(hào)分別經(jīng)模塊內(nèi)部的低噪聲放大器放大,經(jīng)17位ADC和DSP單元輸出。MLX90614紅外測(cè)溫模塊應(yīng)用電路如圖2所示。
圖2 MLX90614紅外測(cè)溫模塊應(yīng)用電路
LMS1117電源轉(zhuǎn)換芯片精度高、穩(wěn)定性好、線性度高,能將5~15 V的輸入電壓轉(zhuǎn)換為3.3 V的電壓。本系統(tǒng)應(yīng)用LMS1117芯片將5 V的電源電壓轉(zhuǎn)換成3.3 V的電源供系統(tǒng)使用。
面部識(shí)別采用pyAI-K210機(jī)器視覺(jué)模塊。該模塊包含一個(gè)雙核64位處理器和獨(dú)立內(nèi)置的FPU,含有專門用于語(yǔ)音數(shù)據(jù)處理的APU單元以及用于神經(jīng)網(wǎng)絡(luò)模型計(jì)算加速的KPU單元,具有視覺(jué)及聽(tīng)覺(jué)處理能力,功耗低、性能高,被廣泛應(yīng)用于集成環(huán)境下的視覺(jué)檢測(cè)或識(shí)別任務(wù)中[7]。
pyAI-K210機(jī)器視覺(jué)模塊主要用于完成2個(gè)任務(wù):①識(shí)別被檢測(cè)人是否佩戴口罩;②基于面部特征的身份識(shí)別,即將采集到的人臉與系統(tǒng)庫(kù)中存貯的人臉進(jìn)行匹配,確定其身份。在訓(xùn)練樣本集準(zhǔn)備階段,收集大量的人臉口罩佩戴情況照片,并制作數(shù)據(jù)標(biāo)簽。標(biāo)簽應(yīng)同時(shí)包括人臉是否佩戴口罩、人臉位置以及人臉身份3類信息。在模型訓(xùn)練階段,采用PyCharm深度學(xué)習(xí)架構(gòu),選用YOLOv5深度學(xué)習(xí)模型對(duì)擴(kuò)增后的樣本數(shù)據(jù)集進(jìn)行訓(xùn)練,并將訓(xùn)練好的模型移植到pyAI-K210模塊。在檢測(cè)和識(shí)別階段,實(shí)時(shí)處理攝像頭采集的圖像,利用訓(xùn)練好的模型檢測(cè)和識(shí)別圖像中的人臉,并將檢測(cè)結(jié)果以串口通信的方式發(fā)送給STM32單片機(jī)。
軟件程序主要包括人臉特征點(diǎn)的提取和存儲(chǔ)、高精度紅外測(cè)溫、顯示界面、控制算法等。單片機(jī)主要采用C語(yǔ)言編程,能完成測(cè)溫、顯示、語(yǔ)音提示等功能。面部識(shí)別程序是通過(guò)K210進(jìn)行面部識(shí)別,并采用python語(yǔ)言直接面對(duì)對(duì)象編程。溫度測(cè)量程序使用多種濾波算法和數(shù)據(jù)擬合方法測(cè)量溫度,縮小溫度測(cè)量值與實(shí)際值之間的差距。
為降低深度學(xué)習(xí)模型的存儲(chǔ)消耗和計(jì)算復(fù)雜度,采用YOLOv5算法識(shí)別人臉的同時(shí)識(shí)別口罩佩戴情況。針對(duì)人臉識(shí)別任務(wù),實(shí)時(shí)獲取攝像頭拍攝的單幀圖像,采用訓(xùn)練好的YOLOv5神經(jīng)網(wǎng)絡(luò)作為編碼器,提取出人臉圖像的高層語(yǔ)義特征,并以候選區(qū)域框的形式定位人臉,再將計(jì)算出的特征與存儲(chǔ)單元內(nèi)的特征標(biāo)簽匹配,若誤差小于一定閾值,則判定是同一人。同樣地,在口罩識(shí)別任務(wù)中,對(duì)于單幀人臉圖像,利用訓(xùn)練好的YOLOv5計(jì)算出圖像的高層語(yǔ)義特征,定位人臉并識(shí)別其是否佩戴口罩。身份識(shí)別與口罩檢測(cè)工作程序流程如圖3所示。
圖3 身份識(shí)別與口罩檢測(cè)工作程序流程
紅外測(cè)溫模塊收到測(cè)溫指令后,將采集到的數(shù)據(jù)傳送到單片機(jī)進(jìn)行解碼計(jì)算,最后顯示在屏幕上。測(cè)溫模塊的工作流程如圖4所示。
圖4 測(cè)溫模塊的工作流程
系統(tǒng)總體設(shè)計(jì)完成后對(duì)其功能進(jìn)行測(cè)試,以驗(yàn)證監(jiān)測(cè)系統(tǒng)的準(zhǔn)確性及其穩(wěn)定性。為此,搭建測(cè)試平臺(tái),制作測(cè)試板樣機(jī)。系統(tǒng)功能測(cè)試板實(shí)物如圖5所示。
圖5 系統(tǒng)功能測(cè)試板實(shí)物
開(kāi)機(jī)后,各模塊開(kāi)始工作,MLX90614ESF紅外傳感器模塊和pyAI-K210機(jī)器視覺(jué)模塊同步采集人臉圖像。溫度測(cè)量時(shí),程序會(huì)不斷等待測(cè)溫信號(hào)。被測(cè)人將一只手放在紅外測(cè)溫傳感器上,按下串口屏的測(cè)溫按鈕,串口屏?xí)⒓达@示體溫。如果溫度正常,語(yǔ)音提示“體溫正?!?;反之,提示“體溫異?!薄囟葴y(cè)量對(duì)照表見(jiàn)表1。由表1可知,系統(tǒng)測(cè)溫精度在0.1 ℃左右。
表1 溫度測(cè)量對(duì)照表
人臉面部識(shí)別時(shí),利用YOLOV5算法對(duì)人臉圖像進(jìn)行檢測(cè),提取高層語(yǔ)義特征,確定人臉位置及其佩戴口罩的情況。如果是正常佩戴,系統(tǒng)語(yǔ)音模塊會(huì)提示“已佩戴口罩”;若出現(xiàn)異常情況(判斷出的概率在0.5以下),語(yǔ)音模塊會(huì)提示“請(qǐng)佩戴口罩”。此外,定位到的人臉區(qū)域與存貯在TF卡中的人臉數(shù)據(jù)進(jìn)行比較。面部對(duì)比成功,語(yǔ)音提示“身份驗(yàn)證通過(guò)”,反之則警告“身份不匹配”。對(duì)于身份不匹配的人員,若按下串口屏中身份錄入模式按鈕,pyAI-K210會(huì)進(jìn)入自學(xué)模式系統(tǒng)開(kāi)啟面部數(shù)據(jù)錄入功能,將拍攝到的人臉數(shù)據(jù)存入到TF卡中,從而建立新的人臉數(shù)據(jù)庫(kù)。
以STM32芯片作為主控芯片,與高精度紅外溫度傳感器、智能圖像識(shí)別傳感器技術(shù)相結(jié)合,設(shè)計(jì)了集無(wú)接觸式人體體溫檢測(cè)、面部身份識(shí)別和口罩檢測(cè)于一體的裝置。該裝置可實(shí)時(shí)采集可見(jiàn)光與紅外圖像數(shù)據(jù),采用YOLOV5智能識(shí)別算法定位人臉位置,可進(jìn)行身份識(shí)別、口罩佩戴判斷及溫度異常檢測(cè)。經(jīng)過(guò)多次測(cè)量和調(diào)試,結(jié)果表明該系統(tǒng)具有良好的準(zhǔn)確性、穩(wěn)定性和便攜性。