周惠,劉洋,朱秀委,白思思(通信作者)
1 溫州醫科大學附屬第一醫院 (浙江溫州 325015);2 溫州醫科大學眼視光學院 (浙江溫州 325035)
據統計,新型冠狀病毒肺炎疫情暴發至今國內外確診總人數累計高達2.4億,盡管已研發出有效的重組滅活疫苗,但想要完全消滅病毒不是短時間內能實現的。在此背景下設計的無線通道測溫系統可安裝在人員流動較密集的各入口位置,如火車站、校園等入口處,進行高效快速的體溫篩查,對及時發現潛在感染源、阻斷疫情快速傳播具有良好的幫助。
日常接觸式體溫測量不利于疫情防控,存在較大交叉感染風險。因此,具有測量速度快、非接觸式測量等優點的紅外測溫技術在體溫篩查中被大量使用。有研究報道紅外測溫可替代探頭溫度計在尸體上記錄耳溫,用以估計死后時間間隔[1]。但基于熱像儀的測溫方式價格較高,而本研究設計的基于GY-906溫度傳感器的通道測溫系統成本低、精度高、且應用范圍廣,發展前景好。
紅外測溫儀一般用于檢測物體表面溫度,無法直接應用于人體溫度檢測。利用紅外測溫技術對目標進行溫度測量時,隨著工作距離的增大,大氣透過率逐漸減小,導致測溫準確度降低。因此,準確度試驗距離必須在制造商規定的工作距離范圍內[2]。
本研究將圖像處理技術與紅外測溫技術相結合,提出一種基于紅外測溫(Infrared Temperature Measurament,ITM)和OpenMV4機器視覺模塊的非接觸式通道測溫方法。擬采用OpenMv4 H7 Plus 和紅外溫度傳感器GY-906測得相應信息,然后借助單片機處理系統,結合軟件算法修正等實現實時體溫顯示和口罩佩戴情況的檢測與預警;并加入無線模塊,將數據上傳至PC 端,在上位機上實時顯示,以便對實時數據進行記錄和分析。
本系統為基于正點原子STM32F103ZET6最小系統板設計的無線通道測溫裝置,同時使用GY-906型紅外測溫傳感器與DS18B20型數字溫度傳感器進行溫度校準補償,結合人體發射率、距離等影響測溫準確度的因素擬合出符合實際溫度值的相關函數,將GY-906型紅外測溫傳感器放置于攝像頭上方,以實現對人體面部中額溫度的檢測。前額部分面積較寬闊且平坦,適合用作溫度采集[3]。此外利用圖像處理技術對OpenMV4機器視覺模塊捕捉的圖像進行識別,一方面結合Haar 算子及TF 特征檢測判斷是否有行人通過,TF 特征檢測是一種用于設備端特征提取的開源深度學習算法框架[4];另一方面通過構建神經網絡模型來分析捕捉人臉佩戴口罩信息。將體溫數據、實時圖像傳輸至上位機顯示并分析,當通過行人體溫值大于單片機設定閾值時,啟動報警模塊達到實時監控的目的。
1.2.1 系統框圖
本研究設計的測溫系統主要由正點原子STM32F103ZET6最小系統板微控制器、OpenMV4 H7 Plus 機器視覺模塊及STM32單片機的外圍電路,如電源模塊、通用串行總線轉TTL 接口、A/D 轉換電路等組成。系統中的測溫及溫度補償功能主要由STM32單片機來完成,測得的溫度值再由串口通信上傳至上位機平臺;實時圖像顯示及口罩檢測部分借助OpenMV4機器視覺模塊檢測人臉來實現目標人物的檢測,最終得到的數據及圖像統一通過WIFI 模塊傳送至上位機平臺實時顯示,見圖1.

圖1 通道測溫系統框圖
1.2.2 測溫與校準
GY-906型紅外測溫傳感器支持帶有10 K 上拉電阻的集成電路總線(inter integrated circuit,IIC)接口,溫度范圍為-40~125℃,誤差約為0.5℃,其測得的數據為物體表面溫度,但物體表面溫度的發射率與人體不同,無法直接等同于人體溫度,需將傳感器的發射率通過帶電可擦可編程只讀存儲器(electrically erasable programmable read only memory,EEPROM)[5]轉換成人體發射率。此外,環境溫度、測溫距離、空氣流通等因素均對測溫數據的準確性有影響。其中,環境溫度的變化對測溫結果準確性的影響最大。因此本研究加入DS18B20數字傳感器用以校準環境溫度帶來的誤差。單片機同時采集環境溫度及人體表面溫度,統計數據后進行計算并進行溫度補償。
1.2.3 圖像捕捉及傳輸
電荷耦合器件(charge coupled device,CCD)的感光元件可將外界光線轉化為電信號,電信號經模/數轉化裝置變成計算機能識別的數字信號,數字信號通過編碼、解碼、壓縮最終合成圖像或視頻。相同像素的感光元件,尺寸越大,單位像素的面積就越大,具有500萬高清像素的OV5640攝像頭所記錄的畫面也更加細膩清晰。通過WIFI 模塊將得到的圖像經瀏覽器網絡傳輸形成視頻流,再將其傳輸到Visual Studio 自制上位機平臺顯示。
GY-906紅外測溫傳感器模塊,包括光學系統、光電探測器、信號放大器和信號處理及輸出等部分。采集物體發出的紅外電磁波,將紅外信號轉化成電信號,經過放大、整形、模數轉換后成為數字信號[6],單片機接收相關數據進行處理。紅外測溫傳感器實物圖及原理圖如圖2所示。STM32單片機通過串行總線與紅外數據采集模塊進行通信,通信協議采用IIC 協議。IIC 總線由串行數據線和串行時鐘線及上拉電阻組成,通過對串行數據線和串行時鐘線高低電平時序的控制,來產生IIC 總線協議所需要的信號進行數據傳遞。

圖2 GY-906紅外測溫傳感器模塊實物圖及原理圖
本系統采用DS18B20型數字溫度傳感器模塊及人體發射率校準來實現測量溫度校正與補償。DS18B20型數字溫度傳感器具有體積小、硬件開銷低、抗干擾能力強、精度高等特點,在工作溫度-10~85℃精度誤差僅為±0.5℃。通過內部溫度采集、A/D 轉換等將溫度值按規定格式轉換為數據輸出,并采用簡單算法將數據還原為溫度值。DS18B20型數字溫度傳感器的分辨率可達到12位,可以滿足環境溫度測量的需要[7]。
報警部分采用S8050三極管驅動,當設定的外接I/O單片機輸入高電平時,蜂鳴器即可發聲。STM32單片機對采集到的數據A/D轉換成溫度值并進行判斷分析,當測得實時溫度值大于設定溫度閾值(37.3℃)時,發送命令抬高報警模塊引腳使之發出警報聲,提醒體溫異常。
OpenMV4 H7 Plus 機器視覺模塊采用STM32H7處理器,標配OV5640攝像頭,顯示效果良好,內置的圖像處理算法可通過Micro Python 語言實現對人臉圖像的處理,實時捕捉圖像,并對圖像中是否有人臉且是否佩戴口罩進行判斷分析。
OpenMV4配套的ATWINC1500 WiFi 模塊,在連接無線局域網絡后,可以借助socket 網絡接口,使用TCP/UDP收發數據以實現網絡通信、文本傳輸、視頻流傳輸等功能。本研究采用該模塊獲取網絡時間、并使用視頻流一幀幀地傳輸圖片以實現實時視頻顯示。
本裝置的軟件編程涉及MDK、OpenMV IDE、Edge Impulse、Visual Studio 等部分,本系統的軟件流程如圖3所示,圖中涵蓋了各部分的獨立處理流程及不同部分的交互通信。

圖3 軟件流程圖
GY-906紅外測溫傳感器模塊采用MLX90614系列測溫芯片,最大溫度范圍為-70~380 ℃,如需較小的測溫范圍,可通過SMBus 修改EEPROM 中相應控制字來改變測溫范圍,從而提高精度[8]。GY-906紅外測溫傳感器模塊的精度與溫度關系范圍圖如圖4所示。

圖4 GY-906紅外測溫傳感器模塊精度-溫度關系圖
SMBus 工作時序如圖5所示,當單片機讀取GY-906紅外測溫傳感器模塊數據時,先向從器件發送器件地址和寫數據命令,未收到應答信號則再次發送器件地址,收到則發送所要進行的操作命令字節,再次收應答信號,未收到全部重發。隨后從器件連續向單片機發送要讀取的字節和錯誤信息碼,單片機每收到一個字節,單片機發給從器件一個應答信號。當讀取到數據之后對數據按照公式(1)及(2)進行計算,得出可直接閱讀的溫度值。

圖5 SMBus 讀寫時序

式中T為校準前溫度,Data 為SMBus 讀取的數據,Tc為補償后溫度,Te為環境溫度。
將數據集上傳到Edge Impulse 后自行訓練神經網絡模型進行分類識別。將數據集按照一定的比例分為建模集和測試集,主要分為數據集采集、上傳、訓練以及部署4 個步驟。(1)需要收集帶有口罩和沒有佩戴口罩的人臉數據集,本研究中總共收集了大約5 000 張人臉圖像作為檢測口罩佩戴情況的數據集;(2)將數據集上傳到網站后可通過API Key 實現OpenMV IDE 和Edge Impulse 的連通,按照8‥2 比例將數據集分為訓練集和測試集;(3)進行分類訓練的數據集將會形成特性,對其中的數據進行可視化處理;在特征資源管理器中分離良好的集群更便于機器學習模型學習[9],3D 集群分離圖(圖6a)可以看出,本研究所上傳的佩戴口罩的數據集和無口罩的數據集具有較好的分離特性,隨后可以通過設置訓練周期數、學習率等參數建立遷移學習模型(圖6b)并進行數據增強處理;(4)訓練完成后,將使用測試數據來檢驗模型,訓練模型的準確率為84.3%,其中誤差可能是由于數據集中目標特征不夠明顯,如頭發遮住大半的人臉,或數據集中并未出現口罩導致出現任何分類都不匹配的數據(圖7)。根據上述結果,可以知道在完成了訓練設計、模型訓練和模型驗證的步驟后,此次建立的神經網絡模型已經可以較為準確的進行口罩佩戴情況的檢測。

圖6 3D 機器學習模型

圖7 訓練模型成功率
連接WiFi 模塊的OpenMV4可傳輸壓縮的JPEG 圖像、視頻流。本系統采用Micro Python 內置的socket 網絡模塊來傳輸數據、圖片或MJPEG視頻流。WiFi 通過自建一個AP 熱點,將電腦連接到AP 熱點上,在瀏覽器中輸入帶特定端口的網址(192.168.1.1:8080)即可直接查看OpenMV4的圖像和數據。此外,WiFi 模塊還具有編程功能,可通過WiFi 對OpenMV4進行重新編程實現數據的控制。
采用OpenMV4內置庫函數實現視頻傳輸功能,初始化WINC 后將模式設置為AP 熱點模式,通過自設熱點來傳輸視頻流。從感光元件中截取一張照片后,將圖像壓縮至適合JPEG 圖像傳輸的壓縮質量,向客戶端發送視頻的頭文件及壓縮后圖片,循環圖片傳輸過程即可得到視頻流。傳輸過程中需在while 循環中創建服務器套接字以綁定服務器和端口,實現實時監聽。
創建一個Winform 窗體應用后,放置不同容器、文本、視頻控件,并設置相應控件屬性,在對應區域放置Button、Label、TextBox 等控件即可完成上位機界面的設計。開發環境為Visual Studio2017,運行環境為.Net Framework 4.5.2。
測溫部分通過C#提供的計時器類進行定時-2 s掃描串口,將可用串口實時顯示到當前TextBox 控件;視頻顯示部分采用基于Chrome Canary 內核的Webview2控件,實現與網頁通信。上位機顯示平臺最終效果圖如圖8所示。

圖8 上位機顯示平臺
將擬合好的溫度誤差補償公式寫入STM32單片機,使單片機控制紅外測溫傳感器GY-906、DS18B20,分別測量環境溫度和目標溫度,代入補償公式即可獲到補償后的人體溫度值。為驗證補償公式準確性,選擇不同距離進行額頭溫度測量,查看溫度補償效果。距離在10~50 cm 之間,補償后的溫度值與實際溫度值之間的差值較小,保持在0.3 ℃之內。當距離大于60 cm 后,補償溫度值與實際溫度之間的差值開始變得更加的明顯,補償溫度曲線迅速降低[10]。在對環境溫度進行誤差校正后,測溫傳感器GY-906在20~50 cm 之間距離范圍內測量精確度得到有效提升(表1和圖9)。

圖9 補償后不同距離測量效果

表1 補償后不同距離測溫數據
建立神經網絡模型可較好的捕捉目標特征,完成口罩佩戴情況識別功能。此外,在OpenMV IDE中可輸出檢測效果為戴口罩和未戴口罩的概率。其中,檢測到為正臉佩戴口罩時,識別準確度更高;當用側臉佩戴口罩進行檢測時,識別準確度欠佳,推測為進行人臉識別時頭發的干擾因素,導致人臉范圍較小引起目標特征無法精準捕捉??谡肿R別神經網絡模型建立后導入測試集進行在線檢測,準確率高達100%,模型驗證結果如圖10所示。

圖10 測試模型準確率
根據上述方案制作通道測溫系統,包括測溫裝置及拍攝裝置兩部分。經測試,GY-906紅外傳感器模塊固定在OpenMV4機器視覺模塊正上方,可較準確地測量人臉額部溫度。另外,在攝像頭模塊外加補光燈及固定夾,可穩固安裝在任意需要進行測溫篩查的通道內(圖11)。行人由入口處經過測溫通道,站在指定范圍內進行體溫篩查及口罩佩戴情況檢查[11]。由GY-906采集紅外數據,發送至單片機,經溫度補償后將數據通過串口傳送至上位機顯示。若測得人體溫度大于單片機設定的閾值,發出警報。同時攝像頭檢測到環境范圍內存在行人,捕捉口罩特征進行口罩佩戴情況檢測,再通過固定在OpenMV4上的WiFi模塊將視頻流傳輸上位機平臺顯示。

圖11 實物效果圖
本研究設計的非接觸式通道測溫系統及口罩佩戴情況檢測裝置,可直觀、方便地遠程對行人進行檢測,成本低、體積小、易攜帶,在疫情防控工作中能夠起到很好地預防和監控作用。