黃晨浩 宋鑫鈺 盧詩驕 薛奇琪
摘 要:筆者基于STM32單片機和機智云平臺,設計了一款智能體溫監測系統。在紅外測溫模塊的基礎上,結合了人臉識別模塊和超聲波測距溫度補償模塊,在被測量人員進入測量范圍時,人臉識別模塊采集人臉信息并與數據庫對比,以確定人員身份信息;同時,啟動紅外測溫模塊檢測體溫,利用超聲波測距補償溫度,降低因測量人員與測溫裝置之間距離的變化而產生的溫漂現象;測量完成后,將人員身份信息和補償后的溫度數據發送給PC端串口助手和機智云App,使管理人員可以實時監測人員的體溫信息。
關鍵詞:體溫監測;人臉識別;溫度補償;STM32;機器學習
中圖分類號:TP332 文獻標識碼:A 文章編號:1674-1064(2021)10-003-02
DOI:10.12310/j.issn.1674-1064.2021.10.002
疫情常態化防控下,體溫監測是一項重要任務,傳統的體溫監測不僅浪費大量人力,而且登記個人信息和體溫的過程過于繁瑣、效率低,增加了病毒傳染的風險。本項目采用人臉識別+體溫檢測,在測量體溫的同時,可以自動識別人臉信息、辨別身份,體溫測量完成后將體溫數據和被測量者的ID上傳到PC端。同時,可以對測量的數據進行數據分析,方便提取。本項目可以應用于學校、車站、工廠、公司等人流密集的場所,可以提前將人臉信息采集進系統并編號,在測量體溫時可以直接識別身份,也可以在測量體溫的同時錄入人臉信息。管理者可以實時監測人員的體溫情況,以便更好地應對突發情況。本項目節省了測量體溫時的人力成本,方便了管理者的監測,提高了測量體溫的效率,應用潛力較大[1]。
1 系統總體設計
本系統主要分為硬件和軟件部分。硬件部分包括STM32連接電路設計、紅外測溫模塊、超聲波測距模塊;軟件部分包括STM32單片機代碼編寫、OpenMV人臉識別模塊相關代碼的編寫、機智云平臺提供的相關代碼的編寫。
該系統能夠利用紅外測溫模塊檢測體溫,并利用超聲波測距補償溫度,減少因測量人員與測溫裝置之間距離的變化而產生的溫漂現象。當測量人員進入測溫范圍時,通過控制開關采集人臉信息,確定人員編號,將人員編號信息和溫度數據通過串口傳給PC端的串口調試助手,使管理人員可以實時監測人員體溫信息。
2 系統硬件設計
硬件主要擔任著溫度采集、溫度補償、人臉識別,以及將溫度數據和人員編號上傳到PC端的串口調試助手等任務。本系統使用ST公司生產的STM32F103ZET6開發板為主控核心板,并配合紅外測溫模塊、超聲波測距模塊以及OpenMV人臉識別模塊等。
2.1 紅外測溫模塊
筆者采用的測溫模塊是Melexis的紅外傳感器MLX90614,基于熱反應堆技術,工作在3 V,工作溫度范圍在-40 ℃~125 ℃,其測量分辨率高達0.02 ℃,可以達到測量人體溫度的要求。但是在實際長距離測溫中,使用MLX90614測量的溫度誤差很大,這是因為紅外傳感器測溫精度與被測熱源距離有關。所以,在這個基礎上,為了提高測量的精確度,筆者使用了超聲波測距溫度補償模塊來降低由于距離造成的誤差。
2.2 超聲波測距溫度補償模塊
在測量過程中,筆者發現隨著測溫者距離的遠近,相應的溫度會有大幅度變化,這還遠遠達不到精準測溫的目的。于是,筆者利用了機器學習中的有監督學習,利用一組已知類別的樣本調整溫度補償模塊的參數,使其達到所要求性能的過程,主要用于新數據的溫度補償。監督學習的最終目標是,根據在學習過程中所獲得的經驗、技能,對沒有學習過的距離和溫度數據進行補償,使溫度數據接近真實的溫度數據[2]。
本次實驗過程中,采集了多組實際溫度為36.5 ℃,與紅外傳感器測溫精度與被測熱源不同距離下的測量溫度,如表1所示,用于構建訓練集模型,該模型如圖1所示。
用訓練集模型擬合溫度補償函數,經過比較,一元三次函數更接近實際溫度,該函數如圖2、圖3、圖4、圖5所示。
f(x)=t0-0.0003595*x^3+0.02385*x^2+(-0.1949)*x+1.039(t0為測量溫度)。
用測試集模型評估構建好的模型。采集實際溫度為36.5 ℃的不同距離下的補償溫度,將補償溫度與實際溫度比較,評估構建好的模型,如圖6所示。
經驗證,溫度補償函數得到的溫度和實際溫度誤差小于0.4 ℃,能夠滿足疫情防控下的體溫測量要求,如圖6所示。
從實踐意義上說,機器學習是一種通過利用數據,訓練出模型,再使用模型進行預測的方法。通過監督學習,紅外測溫模塊結合溫度補償函數,可以比較真實地測量不同距離下的人體溫度。
3 軟件系統設計
該系統的軟件部分采用Python語言編程,Python語言功能強大又易于開發,具有可移植性、可擴展性、豐富的第三方庫等優點。利用Python語言進行編程有很大的優勢,在此基礎上進行開發,可以極大提高開發效率。同時,在電腦端使用機智云,將得到的數據進行最基本的記錄和分析,上傳到手機客戶端實現信息的實時觀測,提醒被檢測人的溫度是否異常。
3.1 OpenMV人臉識別模塊軟件編寫
前文已經詳細介紹了OpenMV人臉識別模塊的硬件部分,OpenMV與STM32通信和人臉識別代碼采用Python語言編程。在OpenMV軟件中采用Python語言編程,構造take_photoes函數、face_recognition1函數。當OpenMV通過串口接收到STM32發送來的“1”指令時,調用take_photoes函數,OpenMV識別現場人員,采集人臉特征值,并將人臉數據編號存在SD中。當OpenMV通過串口接收到STM32發送來的“2”指令時,調用face_recognition1函數,對人員進行拍照,并和SD卡人臉數據進行對比,找到特征值相似度最高的編號,將編號通過串口發給STM32。
3.2 手機App編寫
3.2.1 機智云平臺
機智云平臺為開發者提供了自助式智能硬件開發工具與開放的云端服務。同時,機智云現提供三種App(集成SDK、使用App開源框架、使用App自動生成)開發方式,針對不同開發者的不同需求,幫助開發者更加快速地開發自己的App。因此,筆者的系統接入機智云進行開發,可以實時在移動端監測人員體溫。
3.2.2 App顯示界面
手機App顯示界面可以顯示多人溫度數據和一人溫度數據,手機界面顯示如圖7所示。管理人員可以同時查看多人的溫度數據,也可以實時顯示人員一人的溫度數據。
4 結語
文章旨在用STM32和手機App搭建一套集體溫采集、溫度補償、人臉識別、體溫監測于一體的低成本現代化智能體溫監測系統。通過手機App的實時監測,實現智能化管理,完善數據管理功能。本系統具有實用性,在疫情防控常態化背景下,高校封閉的同時,需要密切關注學生的體溫情況。利用該系統,管理人員可以實時監測人員體溫,及時發現異常情況。同時,該系統還有很大的擴展性,可以應用于學校、車站、工廠、公司等人員密集的場所。可以安裝在學校內,在測量體溫的同時,記錄學生上課的出勤情況,便于學生養成良好的上課習慣。也可以結合門禁系統,安裝在宿舍樓門口,在測量體溫的同時,記錄學生進出宿舍樓的時間。
參考文獻
[1] 李俊杰,劉成林,朱明.基于多任務CNN的監控視頻中異常行人快速檢測[J].計算機系統應用,2018,27(11):78-83.
[2] 司家瑞.淺談機器學習在醫學大數據中的應用[J].科技展望,2016,26(23):304.