周惠,劉洋,朱秀委,白思思(通信作者)
1 溫州醫(yī)科大學(xué)附屬第一醫(yī)院 (浙江溫州 325015);2 溫州醫(yī)科大學(xué)眼視光學(xué)院 (浙江溫州 325035)
據(jù)統(tǒng)計(jì),新型冠狀病毒肺炎疫情暴發(fā)至今國(guó)內(nèi)外確診總?cè)藬?shù)累計(jì)高達(dá)2.4億,盡管已研發(fā)出有效的重組滅活疫苗,但想要完全消滅病毒不是短時(shí)間內(nèi)能實(shí)現(xiàn)的。在此背景下設(shè)計(jì)的無(wú)線通道測(cè)溫系統(tǒng)可安裝在人員流動(dòng)較密集的各入口位置,如火車站、校園等入口處,進(jìn)行高效快速的體溫篩查,對(duì)及時(shí)發(fā)現(xiàn)潛在感染源、阻斷疫情快速傳播具有良好的幫助。
日常接觸式體溫測(cè)量不利于疫情防控,存在較大交叉感染風(fēng)險(xiǎn)。因此,具有測(cè)量速度快、非接觸式測(cè)量等優(yōu)點(diǎn)的紅外測(cè)溫技術(shù)在體溫篩查中被大量使用。有研究報(bào)道紅外測(cè)溫可替代探頭溫度計(jì)在尸體上記錄耳溫,用以估計(jì)死后時(shí)間間隔[1]。但基于熱像儀的測(cè)溫方式價(jià)格較高,而本研究設(shè)計(jì)的基于GY-906溫度傳感器的通道測(cè)溫系統(tǒng)成本低、精度高、且應(yīng)用范圍廣,發(fā)展前景好。
紅外測(cè)溫儀一般用于檢測(cè)物體表面溫度,無(wú)法直接應(yīng)用于人體溫度檢測(cè)。利用紅外測(cè)溫技術(shù)對(duì)目標(biāo)進(jìn)行溫度測(cè)量時(shí),隨著工作距離的增大,大氣透過(guò)率逐漸減小,導(dǎo)致測(cè)溫準(zhǔn)確度降低。因此,準(zhǔn)確度試驗(yàn)距離必須在制造商規(guī)定的工作距離范圍內(nèi)[2]。
本研究將圖像處理技術(shù)與紅外測(cè)溫技術(shù)相結(jié)合,提出一種基于紅外測(cè)溫(Infrared Temperature Measurament,ITM)和OpenMV4機(jī)器視覺(jué)模塊的非接觸式通道測(cè)溫方法。擬采用OpenMv4 H7 Plus 和紅外溫度傳感器GY-906測(cè)得相應(yīng)信息,然后借助單片機(jī)處理系統(tǒng),結(jié)合軟件算法修正等實(shí)現(xiàn)實(shí)時(shí)體溫顯示和口罩佩戴情況的檢測(cè)與預(yù)警;并加入無(wú)線模塊,將數(shù)據(jù)上傳至PC 端,在上位機(jī)上實(shí)時(shí)顯示,以便對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行記錄和分析。
本系統(tǒng)為基于正點(diǎn)原子STM32F103ZET6最小系統(tǒng)板設(shè)計(jì)的無(wú)線通道測(cè)溫裝置,同時(shí)使用GY-906型紅外測(cè)溫傳感器與DS18B20型數(shù)字溫度傳感器進(jìn)行溫度校準(zhǔn)補(bǔ)償,結(jié)合人體發(fā)射率、距離等影響測(cè)溫準(zhǔn)確度的因素?cái)M合出符合實(shí)際溫度值的相關(guān)函數(shù),將GY-906型紅外測(cè)溫傳感器放置于攝像頭上方,以實(shí)現(xiàn)對(duì)人體面部中額溫度的檢測(cè)。前額部分面積較寬闊且平坦,適合用作溫度采集[3]。此外利用圖像處理技術(shù)對(duì)OpenMV4機(jī)器視覺(jué)模塊捕捉的圖像進(jìn)行識(shí)別,一方面結(jié)合Haar 算子及TF 特征檢測(cè)判斷是否有行人通過(guò),TF 特征檢測(cè)是一種用于設(shè)備端特征提取的開(kāi)源深度學(xué)習(xí)算法框架[4];另一方面通過(guò)構(gòu)建神經(jīng)網(wǎng)絡(luò)模型來(lái)分析捕捉人臉佩戴口罩信息。將體溫?cái)?shù)據(jù)、實(shí)時(shí)圖像傳輸至上位機(jī)顯示并分析,當(dāng)通過(guò)行人體溫值大于單片機(jī)設(shè)定閾值時(shí),啟動(dòng)報(bào)警模塊達(dá)到實(shí)時(shí)監(jiān)控的目的。
1.2.1 系統(tǒng)框圖
本研究設(shè)計(jì)的測(cè)溫系統(tǒng)主要由正點(diǎn)原子STM32F103ZET6最小系統(tǒng)板微控制器、OpenMV4 H7 Plus 機(jī)器視覺(jué)模塊及STM32單片機(jī)的外圍電路,如電源模塊、通用串行總線轉(zhuǎn)TTL 接口、A/D 轉(zhuǎn)換電路等組成。系統(tǒng)中的測(cè)溫及溫度補(bǔ)償功能主要由STM32單片機(jī)來(lái)完成,測(cè)得的溫度值再由串口通信上傳至上位機(jī)平臺(tái);實(shí)時(shí)圖像顯示及口罩檢測(cè)部分借助OpenMV4機(jī)器視覺(jué)模塊檢測(cè)人臉來(lái)實(shí)現(xiàn)目標(biāo)人物的檢測(cè),最終得到的數(shù)據(jù)及圖像統(tǒng)一通過(guò)WIFI 模塊傳送至上位機(jī)平臺(tái)實(shí)時(shí)顯示,見(jiàn)圖1.
圖1 通道測(cè)溫系統(tǒng)框圖
1.2.2 測(cè)溫與校準(zhǔn)
GY-906型紅外測(cè)溫傳感器支持帶有10 K 上拉電阻的集成電路總線(inter integrated circuit,IIC)接口,溫度范圍為-40~125℃,誤差約為0.5℃,其測(cè)得的數(shù)據(jù)為物體表面溫度,但物體表面溫度的發(fā)射率與人體不同,無(wú)法直接等同于人體溫度,需將傳感器的發(fā)射率通過(guò)帶電可擦可編程只讀存儲(chǔ)器(electrically erasable programmable read only memory,EEPROM)[5]轉(zhuǎn)換成人體發(fā)射率。此外,環(huán)境溫度、測(cè)溫距離、空氣流通等因素均對(duì)測(cè)溫?cái)?shù)據(jù)的準(zhǔn)確性有影響。其中,環(huán)境溫度的變化對(duì)測(cè)溫結(jié)果準(zhǔn)確性的影響最大。因此本研究加入DS18B20數(shù)字傳感器用以校準(zhǔn)環(huán)境溫度帶來(lái)的誤差。單片機(jī)同時(shí)采集環(huán)境溫度及人體表面溫度,統(tǒng)計(jì)數(shù)據(jù)后進(jìn)行計(jì)算并進(jìn)行溫度補(bǔ)償。
1.2.3 圖像捕捉及傳輸
電荷耦合器件(charge coupled device,CCD)的感光元件可將外界光線轉(zhuǎn)化為電信號(hào),電信號(hào)經(jīng)模/數(shù)轉(zhuǎn)化裝置變成計(jì)算機(jī)能識(shí)別的數(shù)字信號(hào),數(shù)字信號(hào)通過(guò)編碼、解碼、壓縮最終合成圖像或視頻。相同像素的感光元件,尺寸越大,單位像素的面積就越大,具有500萬(wàn)高清像素的OV5640攝像頭所記錄的畫面也更加細(xì)膩清晰。通過(guò)WIFI 模塊將得到的圖像經(jīng)瀏覽器網(wǎng)絡(luò)傳輸形成視頻流,再將其傳輸?shù)絍isual Studio 自制上位機(jī)平臺(tái)顯示。
GY-906紅外測(cè)溫傳感器模塊,包括光學(xué)系統(tǒng)、光電探測(cè)器、信號(hào)放大器和信號(hào)處理及輸出等部分。采集物體發(fā)出的紅外電磁波,將紅外信號(hào)轉(zhuǎn)化成電信號(hào),經(jīng)過(guò)放大、整形、模數(shù)轉(zhuǎn)換后成為數(shù)字信號(hào)[6],單片機(jī)接收相關(guān)數(shù)據(jù)進(jìn)行處理。紅外測(cè)溫傳感器實(shí)物圖及原理圖如圖2所示。STM32單片機(jī)通過(guò)串行總線與紅外數(shù)據(jù)采集模塊進(jìn)行通信,通信協(xié)議采用IIC 協(xié)議。IIC 總線由串行數(shù)據(jù)線和串行時(shí)鐘線及上拉電阻組成,通過(guò)對(duì)串行數(shù)據(jù)線和串行時(shí)鐘線高低電平時(shí)序的控制,來(lái)產(chǎn)生IIC 總線協(xié)議所需要的信號(hào)進(jìn)行數(shù)據(jù)傳遞。
圖2 GY-906紅外測(cè)溫傳感器模塊實(shí)物圖及原理圖
本系統(tǒng)采用DS18B20型數(shù)字溫度傳感器模塊及人體發(fā)射率校準(zhǔn)來(lái)實(shí)現(xiàn)測(cè)量溫度校正與補(bǔ)償。DS18B20型數(shù)字溫度傳感器具有體積小、硬件開(kāi)銷低、抗干擾能力強(qiáng)、精度高等特點(diǎn),在工作溫度-10~85℃精度誤差僅為±0.5℃。通過(guò)內(nèi)部溫度采集、A/D 轉(zhuǎn)換等將溫度值按規(guī)定格式轉(zhuǎn)換為數(shù)據(jù)輸出,并采用簡(jiǎn)單算法將數(shù)據(jù)還原為溫度值。DS18B20型數(shù)字溫度傳感器的分辨率可達(dá)到12位,可以滿足環(huán)境溫度測(cè)量的需要[7]。
報(bào)警部分采用S8050三極管驅(qū)動(dòng),當(dāng)設(shè)定的外接I/O單片機(jī)輸入高電平時(shí),蜂鳴器即可發(fā)聲。STM32單片機(jī)對(duì)采集到的數(shù)據(jù)A/D轉(zhuǎn)換成溫度值并進(jìn)行判斷分析,當(dāng)測(cè)得實(shí)時(shí)溫度值大于設(shè)定溫度閾值(37.3℃)時(shí),發(fā)送命令抬高報(bào)警模塊引腳使之發(fā)出警報(bào)聲,提醒體溫異常。
OpenMV4 H7 Plus 機(jī)器視覺(jué)模塊采用STM32H7處理器,標(biāo)配OV5640攝像頭,顯示效果良好,內(nèi)置的圖像處理算法可通過(guò)Micro Python 語(yǔ)言實(shí)現(xiàn)對(duì)人臉圖像的處理,實(shí)時(shí)捕捉圖像,并對(duì)圖像中是否有人臉且是否佩戴口罩進(jìn)行判斷分析。
OpenMV4配套的ATWINC1500 WiFi 模塊,在連接無(wú)線局域網(wǎng)絡(luò)后,可以借助socket 網(wǎng)絡(luò)接口,使用TCP/UDP收發(fā)數(shù)據(jù)以實(shí)現(xiàn)網(wǎng)絡(luò)通信、文本傳輸、視頻流傳輸?shù)裙δ堋1狙芯坎捎迷撃K獲取網(wǎng)絡(luò)時(shí)間、并使用視頻流一幀幀地傳輸圖片以實(shí)現(xiàn)實(shí)時(shí)視頻顯示。
本裝置的軟件編程涉及MDK、OpenMV IDE、Edge Impulse、Visual Studio 等部分,本系統(tǒng)的軟件流程如圖3所示,圖中涵蓋了各部分的獨(dú)立處理流程及不同部分的交互通信。
圖3 軟件流程圖
GY-906紅外測(cè)溫傳感器模塊采用MLX90614系列測(cè)溫芯片,最大溫度范圍為-70~380 ℃,如需較小的測(cè)溫范圍,可通過(guò)SMBus 修改EEPROM 中相應(yīng)控制字來(lái)改變測(cè)溫范圍,從而提高精度[8]。GY-906紅外測(cè)溫傳感器模塊的精度與溫度關(guān)系范圍圖如圖4所示。
圖4 GY-906紅外測(cè)溫傳感器模塊精度-溫度關(guān)系圖
SMBus 工作時(shí)序如圖5所示,當(dāng)單片機(jī)讀取GY-906紅外測(cè)溫傳感器模塊數(shù)據(jù)時(shí),先向從器件發(fā)送器件地址和寫數(shù)據(jù)命令,未收到應(yīng)答信號(hào)則再次發(fā)送器件地址,收到則發(fā)送所要進(jìn)行的操作命令字節(jié),再次收應(yīng)答信號(hào),未收到全部重發(fā)。隨后從器件連續(xù)向單片機(jī)發(fā)送要讀取的字節(jié)和錯(cuò)誤信息碼,單片機(jī)每收到一個(gè)字節(jié),單片機(jī)發(fā)給從器件一個(gè)應(yīng)答信號(hào)。當(dāng)讀取到數(shù)據(jù)之后對(duì)數(shù)據(jù)按照公式(1)及(2)進(jìn)行計(jì)算,得出可直接閱讀的溫度值。
圖5 SMBus 讀寫時(shí)序
式中T為校準(zhǔn)前溫度,Data 為SMBus 讀取的數(shù)據(jù),Tc為補(bǔ)償后溫度,Te為環(huán)境溫度。
將數(shù)據(jù)集上傳到Edge Impulse 后自行訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型進(jìn)行分類識(shí)別。將數(shù)據(jù)集按照一定的比例分為建模集和測(cè)試集,主要分為數(shù)據(jù)集采集、上傳、訓(xùn)練以及部署4 個(gè)步驟。(1)需要收集帶有口罩和沒(méi)有佩戴口罩的人臉數(shù)據(jù)集,本研究中總共收集了大約5 000 張人臉圖像作為檢測(cè)口罩佩戴情況的數(shù)據(jù)集;(2)將數(shù)據(jù)集上傳到網(wǎng)站后可通過(guò)API Key 實(shí)現(xiàn)OpenMV IDE 和Edge Impulse 的連通,按照8‥2 比例將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集;(3)進(jìn)行分類訓(xùn)練的數(shù)據(jù)集將會(huì)形成特性,對(duì)其中的數(shù)據(jù)進(jìn)行可視化處理;在特征資源管理器中分離良好的集群更便于機(jī)器學(xué)習(xí)模型學(xué)習(xí)[9],3D 集群分離圖(圖6a)可以看出,本研究所上傳的佩戴口罩的數(shù)據(jù)集和無(wú)口罩的數(shù)據(jù)集具有較好的分離特性,隨后可以通過(guò)設(shè)置訓(xùn)練周期數(shù)、學(xué)習(xí)率等參數(shù)建立遷移學(xué)習(xí)模型(圖6b)并進(jìn)行數(shù)據(jù)增強(qiáng)處理;(4)訓(xùn)練完成后,將使用測(cè)試數(shù)據(jù)來(lái)檢驗(yàn)?zāi)P?,?xùn)練模型的準(zhǔn)確率為84.3%,其中誤差可能是由于數(shù)據(jù)集中目標(biāo)特征不夠明顯,如頭發(fā)遮住大半的人臉,或數(shù)據(jù)集中并未出現(xiàn)口罩導(dǎo)致出現(xiàn)任何分類都不匹配的數(shù)據(jù)(圖7)。根據(jù)上述結(jié)果,可以知道在完成了訓(xùn)練設(shè)計(jì)、模型訓(xùn)練和模型驗(yàn)證的步驟后,此次建立的神經(jīng)網(wǎng)絡(luò)模型已經(jīng)可以較為準(zhǔn)確的進(jìn)行口罩佩戴情況的檢測(cè)。
圖6 3D 機(jī)器學(xué)習(xí)模型
圖7 訓(xùn)練模型成功率
連接WiFi 模塊的OpenMV4可傳輸壓縮的JPEG 圖像、視頻流。本系統(tǒng)采用Micro Python 內(nèi)置的socket 網(wǎng)絡(luò)模塊來(lái)傳輸數(shù)據(jù)、圖片或MJPEG視頻流。WiFi 通過(guò)自建一個(gè)AP 熱點(diǎn),將電腦連接到AP 熱點(diǎn)上,在瀏覽器中輸入帶特定端口的網(wǎng)址(192.168.1.1:8080)即可直接查看OpenMV4的圖像和數(shù)據(jù)。此外,WiFi 模塊還具有編程功能,可通過(guò)WiFi 對(duì)OpenMV4進(jìn)行重新編程實(shí)現(xiàn)數(shù)據(jù)的控制。
采用OpenMV4內(nèi)置庫(kù)函數(shù)實(shí)現(xiàn)視頻傳輸功能,初始化WINC 后將模式設(shè)置為AP 熱點(diǎn)模式,通過(guò)自設(shè)熱點(diǎn)來(lái)傳輸視頻流。從感光元件中截取一張照片后,將圖像壓縮至適合JPEG 圖像傳輸?shù)膲嚎s質(zhì)量,向客戶端發(fā)送視頻的頭文件及壓縮后圖片,循環(huán)圖片傳輸過(guò)程即可得到視頻流。傳輸過(guò)程中需在while 循環(huán)中創(chuàng)建服務(wù)器套接字以綁定服務(wù)器和端口,實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽(tīng)。
創(chuàng)建一個(gè)Winform 窗體應(yīng)用后,放置不同容器、文本、視頻控件,并設(shè)置相應(yīng)控件屬性,在對(duì)應(yīng)區(qū)域放置Button、Label、TextBox 等控件即可完成上位機(jī)界面的設(shè)計(jì)。開(kāi)發(fā)環(huán)境為Visual Studio2017,運(yùn)行環(huán)境為.Net Framework 4.5.2。
測(cè)溫部分通過(guò)C#提供的計(jì)時(shí)器類進(jìn)行定時(shí)-2 s掃描串口,將可用串口實(shí)時(shí)顯示到當(dāng)前TextBox 控件;視頻顯示部分采用基于Chrome Canary 內(nèi)核的Webview2控件,實(shí)現(xiàn)與網(wǎng)頁(yè)通信。上位機(jī)顯示平臺(tái)最終效果圖如圖8所示。
圖8 上位機(jī)顯示平臺(tái)
將擬合好的溫度誤差補(bǔ)償公式寫入STM32單片機(jī),使單片機(jī)控制紅外測(cè)溫傳感器GY-906、DS18B20,分別測(cè)量環(huán)境溫度和目標(biāo)溫度,代入補(bǔ)償公式即可獲到補(bǔ)償后的人體溫度值。為驗(yàn)證補(bǔ)償公式準(zhǔn)確性,選擇不同距離進(jìn)行額頭溫度測(cè)量,查看溫度補(bǔ)償效果。距離在10~50 cm 之間,補(bǔ)償后的溫度值與實(shí)際溫度值之間的差值較小,保持在0.3 ℃之內(nèi)。當(dāng)距離大于60 cm 后,補(bǔ)償溫度值與實(shí)際溫度之間的差值開(kāi)始變得更加的明顯,補(bǔ)償溫度曲線迅速降低[10]。在對(duì)環(huán)境溫度進(jìn)行誤差校正后,測(cè)溫傳感器GY-906在20~50 cm 之間距離范圍內(nèi)測(cè)量精確度得到有效提升(表1和圖9)。
圖9 補(bǔ)償后不同距離測(cè)量效果
表1 補(bǔ)償后不同距離測(cè)溫?cái)?shù)據(jù)
建立神經(jīng)網(wǎng)絡(luò)模型可較好的捕捉目標(biāo)特征,完成口罩佩戴情況識(shí)別功能。此外,在OpenMV IDE中可輸出檢測(cè)效果為戴口罩和未戴口罩的概率。其中,檢測(cè)到為正臉佩戴口罩時(shí),識(shí)別準(zhǔn)確度更高;當(dāng)用側(cè)臉佩戴口罩進(jìn)行檢測(cè)時(shí),識(shí)別準(zhǔn)確度欠佳,推測(cè)為進(jìn)行人臉識(shí)別時(shí)頭發(fā)的干擾因素,導(dǎo)致人臉?lè)秶^小引起目標(biāo)特征無(wú)法精準(zhǔn)捕捉??谡肿R(shí)別神經(jīng)網(wǎng)絡(luò)模型建立后導(dǎo)入測(cè)試集進(jìn)行在線檢測(cè),準(zhǔn)確率高達(dá)100%,模型驗(yàn)證結(jié)果如圖10所示。
圖10 測(cè)試模型準(zhǔn)確率
根據(jù)上述方案制作通道測(cè)溫系統(tǒng),包括測(cè)溫裝置及拍攝裝置兩部分。經(jīng)測(cè)試,GY-906紅外傳感器模塊固定在OpenMV4機(jī)器視覺(jué)模塊正上方,可較準(zhǔn)確地測(cè)量人臉額部溫度。另外,在攝像頭模塊外加補(bǔ)光燈及固定夾,可穩(wěn)固安裝在任意需要進(jìn)行測(cè)溫篩查的通道內(nèi)(圖11)。行人由入口處經(jīng)過(guò)測(cè)溫通道,站在指定范圍內(nèi)進(jìn)行體溫篩查及口罩佩戴情況檢查[11]。由GY-906采集紅外數(shù)據(jù),發(fā)送至單片機(jī),經(jīng)溫度補(bǔ)償后將數(shù)據(jù)通過(guò)串口傳送至上位機(jī)顯示。若測(cè)得人體溫度大于單片機(jī)設(shè)定的閾值,發(fā)出警報(bào)。同時(shí)攝像頭檢測(cè)到環(huán)境范圍內(nèi)存在行人,捕捉口罩特征進(jìn)行口罩佩戴情況檢測(cè),再通過(guò)固定在OpenMV4上的WiFi模塊將視頻流傳輸上位機(jī)平臺(tái)顯示。
圖11 實(shí)物效果圖
本研究設(shè)計(jì)的非接觸式通道測(cè)溫系統(tǒng)及口罩佩戴情況檢測(cè)裝置,可直觀、方便地遠(yuǎn)程對(duì)行人進(jìn)行檢測(cè),成本低、體積小、易攜帶,在疫情防控工作中能夠起到很好地預(yù)防和監(jiān)控作用。