胡徐勝,陶彬彬,曾 勝
(1.馬鞍山市無線傳感網與智能感知工程技術研究中心,安徽 馬鞍山243031;2.皖江工學院電氣信息工程學院,安徽 馬鞍山243031)
席卷全球的新型冠狀病毒讓人類的生活方式發生了極大的變化,讓溫度測量尤其是無接觸式的溫度測量和身份識別發揮了前所未有的重要作用。本設計實現了無接觸式溫度測量和身份識別,提升了測量速度和身份識別效率。
常見的測溫一般有熱成像溫度測量和紅外測溫兩種實現方式。采用電子技術和計算機軟件與紅外線技術的結合,用來檢測和測量熱輻射[1]。不同物體表面對外輻射熱量的大小不同,熱敏感傳感器獲取不同熱量差,通過電子技術和軟件技術的處理,呈現出明暗或色差各不相同的圖像,也就是通常說的紅外線熱成像。將輻射源表面熱量通過熱輻射算法運算轉換后,可實現熱量與溫度之間的換算,從而測量出溫度,但是其技術復雜且成本昂貴。本設計采用紅外測溫模塊MLX90614,它是一款由Melexis研發并生產的溫度傳感器。它包括:1)紅外熱電堆感應器MLX81101;2)專為適用于這款感應器輸出而設計的信號處理芯片MLX90302。這款產品應用了工業標準的TO-39封裝,系統的控制和配合較為容易,且體積小,成本低。
主控芯片選用STM32F103C8T6,它是一款基于ARM Cortex-M內核的32位系列微控制器芯片(STMicroelectronics 32 bit,STM32)。STM32F103-C8T6產品得益于Cortex-M3,在架構上進行的多項改進,包括在提升性能的同時又提高了代碼密度的Thumb-2指令集,大幅度提高的中斷響應速度等,而且所有新功能都同時具有業界最優的功耗水平[2]。目前,STMicroelctronics(ST)是第一個推出基于這個內核的主要微控制器廠商。STM32F103C8T6在結合了計算高性能、低功耗和低電壓特性的同時,保持了高度的集成性能和簡易的開發特性,具有良好的通用性能。各種外設操作起來簡單方便,適合此次程序設計。
身份識別采用開源機器視覺(open machine vision,OpenMV),它是一種低成本、功能強大的機器視覺模塊[3]。它以STM32F427CPU為核心,集成了OV7725攝像頭芯片,在小巧的硬件模塊上,用匯編語言高效地實現了核心機器視覺算法。
本系統以STM32單片機為主控芯片,通過獲取紅外溫度傳感器測得的溫度,并將其準確地輸出到有機發光二極管(organic light emitting diode,OLED)顯示屏上。OpenMV通過控制舵機云臺檢測人臉,將識別結果傳遞給單片機,并將結果顯示在OLED顯示屏上[4],系統結構圖如圖1所示。

圖1 系統結構圖Fig.1 System structure diagram
先對系統進行初始化,然后檢測I/O口的狀態。若是高電平,則讀取紅外溫度傳感器數據,并將結果輸出到OLED屏上;若是低電平,則讀取攝像頭數據,隨后控制云臺電機轉動。判斷攝像頭是否對準人臉,若已對準,停止云臺電機轉動,識別人臉,并將結果通過OLED屏幕和蜂鳴器顯示;若沒有,則云臺電機繼續轉動直到對準人臉,該系統流程圖如圖2所示。

圖2 系統流程圖Fig.2 System flow chart
2.1.1 溫度測量設計
溫度測量電路設計圖如圖3所示,系統通過MLX90614紅外測溫模塊采集溫度信息,當MLX90614采集到人體溫度之后會通過I/O口將電壓進行線性傳輸。系統使用STM32單片機接受調節到合適量程的MLX90614紅外測溫模塊的輸出電壓,再在STM32單片機上通過ADC功能進行準確的電壓檢測,隨后將采集到的電壓通過模數轉換得出溫度信息的數值,并通過顯示屏顯示。

圖3 溫度測量電路設計圖Fig.3 Circuit design of temperature measurement
2.1.2 電壓轉化溫度設計
通過單片機的模數轉換(analog to digital converter,ADC)功能采集MLX90614紅外測溫模塊的電壓,當ADC采集到電壓信息之后會返回一個值。STM32F103C8T6的ADC有12位且212=4 096,所以可通過以下算法將0~3.3 V的輸入電壓精確讀取:V精=V采集×3 300/4 096。當讀取到輸入電壓并在系統中轉化為具體數值后,通過以下轉化算法的計算,轉換成由MLX90614所采集到的溫度信息的數值,從而得到被測物體的溫度信息。

如果不加入控制算法修正,那么由于硬件系統中各模塊之間連接的不穩定性,會產生電壓波動。此算法經過多次測試,精度在±0.7℃內。如需降低誤差還需更新硬件系統連接才能實現。
攝像頭控制流程如圖4所示。機器視覺模塊采用的是OpenMV,首先采用Haar算子實現人臉識別。若檢測到人臉,OpenMV控制云臺就采用局部二值模式(local binary patterns,LBP)特征進行人臉識別[5],使用FAST/AGAST算法進行特征提取,對當前人臉與建立的圖像數據庫進行模板匹配;若未檢測到人臉則繼續尋找[6],通過程序整體算法判斷是否符合參賽人員身份。若不符合,則與單片機通信,控制蜂鳴器報警以及屏幕顯示;若符合,則表明身份符合[7]。

圖4 攝像頭控制流程Fig.4 Camera control process
云臺構架圖如圖5所示。整個系統的構架由3D打印技術設計,它是負責攝像頭的轉動裝置,可實現攝像頭在水平方向上360°、垂直方向上90°高速旋轉和精確定位的依托[8]。選用兩個舵機用于對云臺的控制,分別負責水平旋轉和垂直旋轉。

圖5 云臺構架圖Fig.5 Pan tilt frame diagrams
3.1.1 紅外溫度模塊測試
將手掌放置于紅外感應模塊前方2~3 cm處,同時將額溫槍對準待測點進行測量,對得到的數據值進行比較,然后得到差異值。再將由上位機打印的電壓信息合并、分析,進行溫度調整。再次測量直到溫度誤差范圍達到并穩定在可允許范圍內。紅外溫度模塊測試數據如表1所示。

表1 紅外溫度模塊測試數據Tab.1 Test data of infrared temperature module
3.1.2 攝像頭及云臺測試
將攝像頭安裝在云臺上,攝像頭開始檢測人臉位置,并判斷人臉位置是否在圖像的中心位置,將判斷的情況整合成數據反饋給單片機,并通過控制舵機進而控制云臺的轉動。但由于步進電機的步距角較大,且易產生較大的跳動,尤其在低速情況下,系統的平穩性差,所以很難滿足精確定位的要求。因此,采用舵機云臺,用OpenMV控制,以達到良好的位置精度和運動平穩性。
攝像頭無法引導云臺準確對準識別目標,其原因是攝像頭像素為離散點,當距離遠時像素間表述水平位移間隔較大。由于本系統目標物距離較近,因此對準確度影響較小。攝像頭及云臺測試數據如表2所示。

表2 攝像頭及云臺測試數據Tab.2 Camera and pan tilt test data
3.1.3 身份識別和口罩識別測試
人臉識別是通過眼睛、眉毛等全臉關鍵特征點定位來實現的,而口罩遮擋了鼻子、嘴巴等大部分面部有效信息,會影響識別準確率。本系統對口罩檢測和面部識別檢測是分開檢測而后再將像素整合導入人像數據庫的,從而實現對人臉與口罩的識別。在測試過程中考慮到人臉相似度差異問題,對識別到的當前人臉進行特征點匹配,算法過程及聯級較大,識別準確性不夠高。后采用導入的人臉數據庫進行分析匹配,縮短了算法識別時間以及靈敏性,可準確識別被測人身份和口罩佩戴情況。
人臉識別和口罩識別測試數據如表3所示,測試主要針對人體手掌溫度和是否戴口罩檢測及人臉識別。由于系統設計精度較低,設計當中簡化了系統模型,多次忽略對系統影響較小的參數,導致人臉識別誤差較大。最后通過多次識別記錄像素偏差數據的方法調整系統誤差,優化整體識別代碼,最終完成系統改良。

表3 人臉識別和口罩識別測試數據Tab.3 Test data of face recognition and mask recognition
本設計以STM32為主控制器,采用OpenMV進行身份識別,使用紅外溫度傳感器進行無接觸溫度測量。OpenMV準確識別人臉并將數據傳給單片機,使其控制LED燈和蜂鳴器進行相應輸出。紅外溫度傳感器測量溫度,數據通過單片機準確地輸出在OLED屏幕上。實驗數據表明,溫度測量以及身份識別效果明顯,但精度仍有明顯提升空間。正值新型冠狀病毒疫情期間,該設計有助于疫情防控提升效率,具有一定的實用性。