胡徐勝,陶彬彬,曾 勝
(1.馬鞍山市無線傳感網(wǎng)與智能感知工程技術(shù)研究中心,安徽 馬鞍山243031;2.皖江工學(xué)院電氣信息工程學(xué)院,安徽 馬鞍山243031)
席卷全球的新型冠狀病毒讓人類的生活方式發(fā)生了極大的變化,讓溫度測(cè)量尤其是無接觸式的溫度測(cè)量和身份識(shí)別發(fā)揮了前所未有的重要作用。本設(shè)計(jì)實(shí)現(xiàn)了無接觸式溫度測(cè)量和身份識(shí)別,提升了測(cè)量速度和身份識(shí)別效率。
常見的測(cè)溫一般有熱成像溫度測(cè)量和紅外測(cè)溫兩種實(shí)現(xiàn)方式。采用電子技術(shù)和計(jì)算機(jī)軟件與紅外線技術(shù)的結(jié)合,用來檢測(cè)和測(cè)量熱輻射[1]。不同物體表面對(duì)外輻射熱量的大小不同,熱敏感傳感器獲取不同熱量差,通過電子技術(shù)和軟件技術(shù)的處理,呈現(xiàn)出明暗或色差各不相同的圖像,也就是通常說的紅外線熱成像。將輻射源表面熱量通過熱輻射算法運(yùn)算轉(zhuǎn)換后,可實(shí)現(xiàn)熱量與溫度之間的換算,從而測(cè)量出溫度,但是其技術(shù)復(fù)雜且成本昂貴。本設(shè)計(jì)采用紅外測(cè)溫模塊MLX90614,它是一款由Melexis研發(fā)并生產(chǎn)的溫度傳感器。它包括:1)紅外熱電堆感應(yīng)器MLX81101;2)專為適用于這款感應(yīng)器輸出而設(shè)計(jì)的信號(hào)處理芯片MLX90302。這款產(chǎn)品應(yīng)用了工業(yè)標(biāo)準(zhǔn)的TO-39封裝,系統(tǒng)的控制和配合較為容易,且體積小,成本低。
主控芯片選用STM32F103C8T6,它是一款基于ARM Cortex-M內(nèi)核的32位系列微控制器芯片(STMicroelectronics 32 bit,STM32)。STM32F103-C8T6產(chǎn)品得益于Cortex-M3,在架構(gòu)上進(jìn)行的多項(xiàng)改進(jìn),包括在提升性能的同時(shí)又提高了代碼密度的Thumb-2指令集,大幅度提高的中斷響應(yīng)速度等,而且所有新功能都同時(shí)具有業(yè)界最優(yōu)的功耗水平[2]。目前,STMicroelctronics(ST)是第一個(gè)推出基于這個(gè)內(nèi)核的主要微控制器廠商。STM32F103C8T6在結(jié)合了計(jì)算高性能、低功耗和低電壓特性的同時(shí),保持了高度的集成性能和簡易的開發(fā)特性,具有良好的通用性能。各種外設(shè)操作起來簡單方便,適合此次程序設(shè)計(jì)。
身份識(shí)別采用開源機(jī)器視覺(open machine vision,OpenMV),它是一種低成本、功能強(qiáng)大的機(jī)器視覺模塊[3]。它以STM32F427CPU為核心,集成了OV7725攝像頭芯片,在小巧的硬件模塊上,用匯編語言高效地實(shí)現(xiàn)了核心機(jī)器視覺算法。
本系統(tǒng)以STM32單片機(jī)為主控芯片,通過獲取紅外溫度傳感器測(cè)得的溫度,并將其準(zhǔn)確地輸出到有機(jī)發(fā)光二極管(organic light emitting diode,OLED)顯示屏上。OpenMV通過控制舵機(jī)云臺(tái)檢測(cè)人臉,將識(shí)別結(jié)果傳遞給單片機(jī),并將結(jié)果顯示在OLED顯示屏上[4],系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 System structure diagram
先對(duì)系統(tǒng)進(jìn)行初始化,然后檢測(cè)I/O口的狀態(tài)。若是高電平,則讀取紅外溫度傳感器數(shù)據(jù),并將結(jié)果輸出到OLED屏上;若是低電平,則讀取攝像頭數(shù)據(jù),隨后控制云臺(tái)電機(jī)轉(zhuǎn)動(dòng)。判斷攝像頭是否對(duì)準(zhǔn)人臉,若已對(duì)準(zhǔn),停止云臺(tái)電機(jī)轉(zhuǎn)動(dòng),識(shí)別人臉,并將結(jié)果通過OLED屏幕和蜂鳴器顯示;若沒有,則云臺(tái)電機(jī)繼續(xù)轉(zhuǎn)動(dòng)直到對(duì)準(zhǔn)人臉,該系統(tǒng)流程圖如圖2所示。
圖2 系統(tǒng)流程圖Fig.2 System flow chart
2.1.1 溫度測(cè)量設(shè)計(jì)
溫度測(cè)量電路設(shè)計(jì)圖如圖3所示,系統(tǒng)通過MLX90614紅外測(cè)溫模塊采集溫度信息,當(dāng)MLX90614采集到人體溫度之后會(huì)通過I/O口將電壓進(jìn)行線性傳輸。系統(tǒng)使用STM32單片機(jī)接受調(diào)節(jié)到合適量程的MLX90614紅外測(cè)溫模塊的輸出電壓,再在STM32單片機(jī)上通過ADC功能進(jìn)行準(zhǔn)確的電壓檢測(cè),隨后將采集到的電壓通過模數(shù)轉(zhuǎn)換得出溫度信息的數(shù)值,并通過顯示屏顯示。
圖3 溫度測(cè)量電路設(shè)計(jì)圖Fig.3 Circuit design of temperature measurement
2.1.2 電壓轉(zhuǎn)化溫度設(shè)計(jì)
通過單片機(jī)的模數(shù)轉(zhuǎn)換(analog to digital converter,ADC)功能采集MLX90614紅外測(cè)溫模塊的電壓,當(dāng)ADC采集到電壓信息之后會(huì)返回一個(gè)值。STM32F103C8T6的ADC有12位且212=4 096,所以可通過以下算法將0~3.3 V的輸入電壓精確讀?。篤精=V采集×3 300/4 096。當(dāng)讀取到輸入電壓并在系統(tǒng)中轉(zhuǎn)化為具體數(shù)值后,通過以下轉(zhuǎn)化算法的計(jì)算,轉(zhuǎn)換成由MLX90614所采集到的溫度信息的數(shù)值,從而得到被測(cè)物體的溫度信息。
如果不加入控制算法修正,那么由于硬件系統(tǒng)中各模塊之間連接的不穩(wěn)定性,會(huì)產(chǎn)生電壓波動(dòng)。此算法經(jīng)過多次測(cè)試,精度在±0.7℃內(nèi)。如需降低誤差還需更新硬件系統(tǒng)連接才能實(shí)現(xiàn)。
攝像頭控制流程如圖4所示。機(jī)器視覺模塊采用的是OpenMV,首先采用Haar算子實(shí)現(xiàn)人臉識(shí)別。若檢測(cè)到人臉,OpenMV控制云臺(tái)就采用局部二值模式(local binary patterns,LBP)特征進(jìn)行人臉識(shí)別[5],使用FAST/AGAST算法進(jìn)行特征提取,對(duì)當(dāng)前人臉與建立的圖像數(shù)據(jù)庫進(jìn)行模板匹配;若未檢測(cè)到人臉則繼續(xù)尋找[6],通過程序整體算法判斷是否符合參賽人員身份。若不符合,則與單片機(jī)通信,控制蜂鳴器報(bào)警以及屏幕顯示;若符合,則表明身份符合[7]。
圖4 攝像頭控制流程Fig.4 Camera control process
云臺(tái)構(gòu)架圖如圖5所示。整個(gè)系統(tǒng)的構(gòu)架由3D打印技術(shù)設(shè)計(jì),它是負(fù)責(zé)攝像頭的轉(zhuǎn)動(dòng)裝置,可實(shí)現(xiàn)攝像頭在水平方向上360°、垂直方向上90°高速旋轉(zhuǎn)和精確定位的依托[8]。選用兩個(gè)舵機(jī)用于對(duì)云臺(tái)的控制,分別負(fù)責(zé)水平旋轉(zhuǎn)和垂直旋轉(zhuǎn)。
圖5 云臺(tái)構(gòu)架圖Fig.5 Pan tilt frame diagrams
3.1.1 紅外溫度模塊測(cè)試
將手掌放置于紅外感應(yīng)模塊前方2~3 cm處,同時(shí)將額溫槍對(duì)準(zhǔn)待測(cè)點(diǎn)進(jìn)行測(cè)量,對(duì)得到的數(shù)據(jù)值進(jìn)行比較,然后得到差異值。再將由上位機(jī)打印的電壓信息合并、分析,進(jìn)行溫度調(diào)整。再次測(cè)量直到溫度誤差范圍達(dá)到并穩(wěn)定在可允許范圍內(nèi)。紅外溫度模塊測(cè)試數(shù)據(jù)如表1所示。
表1 紅外溫度模塊測(cè)試數(shù)據(jù)Tab.1 Test data of infrared temperature module
3.1.2 攝像頭及云臺(tái)測(cè)試
將攝像頭安裝在云臺(tái)上,攝像頭開始檢測(cè)人臉位置,并判斷人臉位置是否在圖像的中心位置,將判斷的情況整合成數(shù)據(jù)反饋給單片機(jī),并通過控制舵機(jī)進(jìn)而控制云臺(tái)的轉(zhuǎn)動(dòng)。但由于步進(jìn)電機(jī)的步距角較大,且易產(chǎn)生較大的跳動(dòng),尤其在低速情況下,系統(tǒng)的平穩(wěn)性差,所以很難滿足精確定位的要求。因此,采用舵機(jī)云臺(tái),用OpenMV控制,以達(dá)到良好的位置精度和運(yùn)動(dòng)平穩(wěn)性。
攝像頭無法引導(dǎo)云臺(tái)準(zhǔn)確對(duì)準(zhǔn)識(shí)別目標(biāo),其原因是攝像頭像素為離散點(diǎn),當(dāng)距離遠(yuǎn)時(shí)像素間表述水平位移間隔較大。由于本系統(tǒng)目標(biāo)物距離較近,因此對(duì)準(zhǔn)確度影響較小。攝像頭及云臺(tái)測(cè)試數(shù)據(jù)如表2所示。
表2 攝像頭及云臺(tái)測(cè)試數(shù)據(jù)Tab.2 Camera and pan tilt test data
3.1.3 身份識(shí)別和口罩識(shí)別測(cè)試
人臉識(shí)別是通過眼睛、眉毛等全臉關(guān)鍵特征點(diǎn)定位來實(shí)現(xiàn)的,而口罩遮擋了鼻子、嘴巴等大部分面部有效信息,會(huì)影響識(shí)別準(zhǔn)確率。本系統(tǒng)對(duì)口罩檢測(cè)和面部識(shí)別檢測(cè)是分開檢測(cè)而后再將像素整合導(dǎo)入人像數(shù)據(jù)庫的,從而實(shí)現(xiàn)對(duì)人臉與口罩的識(shí)別。在測(cè)試過程中考慮到人臉相似度差異問題,對(duì)識(shí)別到的當(dāng)前人臉進(jìn)行特征點(diǎn)匹配,算法過程及聯(lián)級(jí)較大,識(shí)別準(zhǔn)確性不夠高。后采用導(dǎo)入的人臉數(shù)據(jù)庫進(jìn)行分析匹配,縮短了算法識(shí)別時(shí)間以及靈敏性,可準(zhǔn)確識(shí)別被測(cè)人身份和口罩佩戴情況。
人臉識(shí)別和口罩識(shí)別測(cè)試數(shù)據(jù)如表3所示,測(cè)試主要針對(duì)人體手掌溫度和是否戴口罩檢測(cè)及人臉識(shí)別。由于系統(tǒng)設(shè)計(jì)精度較低,設(shè)計(jì)當(dāng)中簡化了系統(tǒng)模型,多次忽略對(duì)系統(tǒng)影響較小的參數(shù),導(dǎo)致人臉識(shí)別誤差較大。最后通過多次識(shí)別記錄像素偏差數(shù)據(jù)的方法調(diào)整系統(tǒng)誤差,優(yōu)化整體識(shí)別代碼,最終完成系統(tǒng)改良。
表3 人臉識(shí)別和口罩識(shí)別測(cè)試數(shù)據(jù)Tab.3 Test data of face recognition and mask recognition
本設(shè)計(jì)以STM32為主控制器,采用OpenMV進(jìn)行身份識(shí)別,使用紅外溫度傳感器進(jìn)行無接觸溫度測(cè)量。OpenMV準(zhǔn)確識(shí)別人臉并將數(shù)據(jù)傳給單片機(jī),使其控制LED燈和蜂鳴器進(jìn)行相應(yīng)輸出。紅外溫度傳感器測(cè)量溫度,數(shù)據(jù)通過單片機(jī)準(zhǔn)確地輸出在OLED屏幕上。實(shí)驗(yàn)數(shù)據(jù)表明,溫度測(cè)量以及身份識(shí)別效果明顯,但精度仍有明顯提升空間。正值新型冠狀病毒疫情期間,該設(shè)計(jì)有助于疫情防控提升效率,具有一定的實(shí)用性。