馬興錄,孫 昊,王先鵬,李曉旭
(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島 266061)
自1800年英國F.W.赫歇耳發(fā)現(xiàn)紅外輻射、紅外技術(shù)發(fā)展至今,基礎(chǔ)設(shè)施建設(shè)、工業(yè)生產(chǎn)、消防安保等領(lǐng)域都離不開紅外成像技術(shù)[1-2]。1934年Hard研究了皮膚對紅外線發(fā)射率的影響,確立了紅外對人體測溫的意義[3]。2003年,非典型性肺炎爆發(fā)時期,為了確保人群流動安全以及減少交叉感染,紅外熱像儀的應(yīng)用就體現(xiàn)出了巨大的優(yōu)勢,對進出醫(yī)院的人群進行發(fā)熱檢查[4]。2010年,Nguyen等人對紅外檢測系統(tǒng)溫度值進行測試,在常規(guī)情況下,熱成像測溫的準確值與靈敏度較高[5]。
2019年12月在武漢發(fā)現(xiàn)的新型冠狀病毒患者初期會出現(xiàn)發(fā)熱乏力、干咳等癥狀[6],在這個特殊時期使用非接觸式紅外測溫儀篩選發(fā)熱人員十分必要[7]。傳統(tǒng)的醫(yī)用紅外測溫儀大多以單片機為主控制器:由許新建等人設(shè)計的紅外測溫儀穩(wěn)定性高、各項參數(shù)優(yōu)越,可以實現(xiàn)患者體溫的準確檢測[8]。但是這樣的紅外測溫儀機動性差,不滿足疫情下的靈活的非接觸式檢測應(yīng)用需求。由張菁設(shè)計的紅外體溫計[9],具有基本的非接觸式測溫及報警功能,其以單片機為核心主板,不利于二次開發(fā),且不能實現(xiàn)針對移動目標的溫度測量。
本文設(shè)計的測溫儀可在多種環(huán)境下進行非接觸式的體溫檢測,同時可識別人員是否佩戴口罩。使用樹莓派為主控板搭配紅外熱成像模組,基于移動目標檢測的紅外測溫算法實現(xiàn)了能夠快速準確地探測測量范圍內(nèi)的人體溫度。
在自然界中一切高于絕對零度的物體表面不斷地向周圍空間輻射紅外線[10],根據(jù)物體的紅外輻射特性:物體的紅外輻射能量大小及波長的分布與物體的溫度有密切聯(lián)系[11]。因此,通過對物體自身輻射的紅外能量的測量,便能準確地測定它的表面溫度[12]。斯特藩—玻耳茲曼定律給出了物體溫度的紅外輻射的關(guān)系,在紅外測溫中,該定律可用來實現(xiàn)溫度標定[13]。
斯特藩—玻耳茲曼定律提到,物體輻射能量的大小與該物體絕對溫度的4次方為正比例關(guān)系。定律給出了一個黑體的輻射度與溫度的關(guān)系:黑體表面單位面積在單位時間內(nèi)輻射出的總能量W與黑體本身的熱力學(xué)溫度T(又稱絕對溫度)的四次方成正比[14]。即:
W=εσT4
(1)
其中:ε為黑體的輻射系數(shù),絕對黑體的輻射系數(shù)ε為1;非絕對黑體的輻射系數(shù)小于ε1,與物體的本身的溫度及其形成材料的特征有關(guān)。比例系數(shù)σ稱為斯特藩-玻爾茲曼常數(shù)為固定值??梢钥吹剑簻囟群秃隗w輻射出射度成指數(shù)關(guān)系,且隨著溫度上升,黑體輻射度將極具升高[15]。實際待測物體通常不是黑體,對于非黑體的輻射定律一般比較復(fù)雜,但仍可借助于黑體輻射定律來研究[16]。
如圖1所示,本文設(shè)計的QUST-CWY01型非接觸式智能測溫儀采用樹莓派4電腦為核心,以點陣式紅外成像模組為主要測溫部件,結(jié)合可見光攝像頭,編寫相關(guān)軟件及算法,實現(xiàn)了非接觸式自動測溫、口罩佩戴檢測、語音報警、檢測界面可視化以及手機及PC端與測溫儀界面同步顯示等功能。
其中,紅外測溫部分采用點陣式紅外成像儀進行測溫,基于移動目標檢測的測溫算法,準確判斷人員靠近及遠離情況。當人員在測溫范圍(約50 cm)之內(nèi),能進行準確測量時,系統(tǒng)將根據(jù)距離自動校準發(fā)射系數(shù),針對室外復(fù)雜環(huán)境,自適應(yīng)外界溫度的變化,測量進行多次測量取平均,獲得可靠的溫度值??谡謾z測部分采用機器視覺算法檢測人臉及口罩。能針對戴口罩與否發(fā)出報警信息。如果被檢測人未佩戴口罩,視頻界面中人臉將會被紅框標注,并且語音設(shè)備會發(fā)出報警信號進行提醒。
本設(shè)計中使用的核心板樹莓派4b配置1.5 GHz 運行的64位四核處理器,2 GB RAM,2.4/5.0 GHz 雙頻無線 LAN,藍牙5.0/BLE,千兆以太網(wǎng)接口,USB3.0接口。
設(shè)計搭配YKHTPA32DA型紅外熱像儀模塊。使用TTL串口直接輸出熱源信息,工作電壓+5 V,功耗:≤0.3 W。光學(xué)視場為32*32溫度點輸出。具有體積小、成本低、易集成的特點。
該測溫儀功耗低且散熱能力強,系統(tǒng)可連續(xù)工作數(shù)日。其重量約1 kg,方便攜帶和安裝,測溫距離為10~50 cm;測溫精度為±0.3 ℃;測溫視場角為90*90;測溫周期是0.5 s;工作溫度-200 ~ +85 ℃。
設(shè)計中系統(tǒng)硬件組成結(jié)構(gòu)如圖2所示,包括樹莓派4b、7寸電容帶外殼觸摸屏、可見光攝像頭、YKHTPA32DA紅外熱成像模組、115 200 bps串行通訊接口和音箱。
使用樹莓派4b為核心控制板,其操作系統(tǒng)基于Linux,具有較高的開放性、實時性以及高效的處理能力。利用點陣式紅外熱成像傳感器進行溫度測量,測量到的區(qū)域內(nèi)的熱源信息將其轉(zhuǎn)換為常見的溫度值,實現(xiàn)32×32點實時溫度輸出。如圖3所示,模塊的測溫光學(xué)視場中可解析出1 024個溫度像素值組成的一幀溫度圖像。
紅外測溫模塊與樹莓派之間通過TTL串口進行通信,可選用USB口和UART口,不同的接口波特率不同。本設(shè)計中使用UART串口波特率為115 200,UART串口有4個引腳分別為供電5 V,地線GND,TX和引腳RX引腳分別為發(fā)送端和接收端。UART串口連接樹莓派需要用到一個TTL串口轉(zhuǎn)USB的模塊,模塊的型號(編號)為CH340,轉(zhuǎn)串口模塊的引腳和紅外模組的UART串口焊接,接線方式為5 V連接5 V, GND連接GND, TX與RX引腳交叉連接。
報警與頁面顯示部分選擇的是適配樹莓派4b的基礎(chǔ)音箱以及可見光攝像頭,其中音箱與樹莓派之間使用3.5 mm耳機接口連接,可見光攝像頭使用的是常見的USB接口。
測溫儀系統(tǒng)軟件總體結(jié)構(gòu)如圖4所示,系統(tǒng)的功能主要有人體測溫、口罩識別、語音報警、界面顯示以及同步顯示5個功能。其中的server服務(wù)端主要是對測溫功能模塊和口罩識別模塊的數(shù)據(jù)進行處理,是一個單獨的進程。其通過穩(wěn)定的TCP網(wǎng)絡(luò)通信獲取其他功能模塊發(fā)來的數(shù)據(jù),數(shù)據(jù)處理之后如出現(xiàn)異常則會進行語音報警。
同時,測溫儀配置WiFi功能并且實現(xiàn)測溫及口罩識別頁面可視化。設(shè)備開機后,在附近的范圍內(nèi)使用PC端或手機端可搜索到“qust_car”的WiFi熱點,連接該熱點,手機端或者PC端利用VNCViewer軟件可同步顯示設(shè)備畫面。
3.2.1 溫度檢測流程
體溫檢測系統(tǒng)以紅外熱像儀模塊為輸入點,其軟件功能流程如圖5所示。當人員在0.5 m之內(nèi)時,系統(tǒng)對人體溫度值進行多次測量取平均,獲得準確的溫度值。當測得的溫度低于37.3 ℃發(fā)出“體溫正?!碧崾疽?,液晶屏溫度背景色顯示為安全溫度綠色;當溫度在37.3~38.2 ℃時,發(fā)出“體溫低燒”報警,液晶屏溫度背景色顯示為低燒黃色;當溫度在超過38.2 ℃時,發(fā)出“體溫高燒”報警,液晶屏溫度背景色顯示為高燒紅色并閃爍。
3.2.2 基于移動目標檢測的測溫算法
1)溫度獲取:
根據(jù)測溫模塊的通訊協(xié)議,主機向模塊發(fā)送一段指令數(shù)據(jù),模塊返回一串約2 060個字符帶有溫度數(shù)據(jù)的數(shù)據(jù)串。需要將其中溫度相關(guān)的數(shù)據(jù)切分出來,每4個為一個像素點的溫度數(shù)據(jù)(每個像素點的溫度是有兩個字節(jié)組成,高 8 位在左,低 8 位在右),然后將溫度數(shù)據(jù)轉(zhuǎn)換成溫度。溫度的計算公式如下:
(2)
其中:Th為模塊返回的溫度數(shù)據(jù)的高八位,Tl為模塊返回的溫度數(shù)據(jù)的低八位,均以16進制的形式呈現(xiàn),公式中的常量2 731的確定方法為紅外模塊協(xié)議設(shè)定的固定值,其他各項用于溫度計算的參數(shù)均為實際值的10倍。使用hex2D函數(shù)(hex to decimal)將其轉(zhuǎn)換之后進行計算獲得溫度值T。隨后將一幀溫度圖像中的所有溫度數(shù)據(jù)存在一個列表中,按1 024像素點順序排列。
2)移動目標溫度校準算法:
與傳統(tǒng)的測溫方式不同,本文考慮外界環(huán)境的變化影響測溫的準確性,因此提出了在多變的外界背景環(huán)境下基于移動目標檢測的體溫檢測算法。
該算法的思路是:外界背景溫度變化很慢,早上、中午、晚上會有所不同,但在某時間段(10 min左右)之內(nèi)基本不變。保留背景數(shù)據(jù),當有人進入時(測試人員為移動的測溫目標),部分數(shù)據(jù)會有較大變化(可能變大,也可能變小,考慮到夏季人體溫度低于環(huán)境溫度所以會變小),當前數(shù)據(jù)減去背景數(shù)據(jù),就是變化區(qū)域的數(shù)據(jù)。求取變化區(qū)域中按最高值降序排列取第5~15點共10個點然后進行平均計算獲得可信的溫度值數(shù)據(jù)。
算法具體實現(xiàn):
設(shè)備在默認環(huán)境中進行初始化,初始化時間內(nèi)將每次的獲取到的溫度數(shù)據(jù)進行緩慢平均,即0.7乘以背景溫度加上0.3乘以當前溫度,進行多次平均相加之后,除以次數(shù)獲取到的平均值即作為背景溫度。
背景溫度初始化之后,獲得測溫數(shù)據(jù)突變點(突變點的確定是通過限定一個溫度閾值,每當有測溫點的溫度變化超出了這個閾值即判定為突變點。)的個數(shù),并記錄這些突變點位置及數(shù)據(jù)。獲得突變點的個數(shù)之后,通過突變點個數(shù)確定人員與設(shè)備之間的大體距離,公式:
(3)
其中:x為距離(m),count為突變點個數(shù)。其中的常量820為人臉在距離設(shè)備0.1 m時的突變點個數(shù),常量0.1即為設(shè)定的固定距離0.1 m。并且經(jīng)過多次測試,我們認為當突變點個數(shù)較多(>800)時,判定為距離過近,此時將距離x設(shè)為固定值x=-1用于后面校準方式的選擇判定;當突變點較少(約<5)時,認為無人,此時通過緩慢跟隨算法繼續(xù)平均背景溫度。獲得距離之后,根據(jù)溫度距離補償算法公式計算距離系數(shù)disc:
disc=0.6839x3-0.7337x2+0.2992x+0.9995
(4)
式(4)中,x為測到的距離,其他參數(shù)之前的系數(shù)(如0.683 9、0.733 7等常量)為模塊根據(jù)發(fā)射率溫度校準協(xié)議通過上位機設(shè)置的人體發(fā)射率參數(shù)確定,僅用于對人體表面溫度的測量校正時使用。
溫度校正公式:
FT=T0×disc+dr
(5)
其中:FT為校正之后的溫度值,T0為初始溫度,disc為上式中所得的距離系數(shù),dr為環(huán)境溫度偏差。該差值需要和高精度額溫槍校準。比如紅外模塊測量計算得到初始溫度*距離系數(shù)之后,計算溫度為35.7 ℃,額溫槍得到36.2 ℃,那么偏差為0.5 ℃,該參數(shù)根據(jù)實際情況進行調(diào)整。
3.2.3 核心算法偽代碼
Function:GetTemp(blist)用于測量溫度校正計算。
Input:當前時刻溫度數(shù)據(jù)列表blist,包含32*32共1 024個像素溫度值。
Process1:首先進行20次左右的初始化循環(huán)操作獲得背景溫度(backtemp),backTemp[p]=backTemp[p]*0.7+blist[p]*0.3。
Process2:當有人進入時,根據(jù)溫度突變點個數(shù)(countVar)開始判斷人員與設(shè)備的距離。
If:blist(p)-backtemp(p)的絕對值>前期通過額溫槍測得的人體環(huán)境溫度差。
Do:認為該點為突變點,即countVar值+1。
再根據(jù)突變點的個數(shù)及當前時刻的變化情況計算人員距離(dis)
dis = (820-countVar)/800 - 0.1
Process3:通過process2過程中獲得的距離計算溫度。
if(countStatus==0):top10=heapq.nlargest(10, backTemp)
elif(countStatus==1):top10=heapq.nlargest(10, blist)
elif(countStatus==2): top10=heapq.nlargest(10, blistVar)
if(countStatus==0):
avgcount= np.mean(backTemp)
else:avgcount = np.mean(top10)
得到一個未校準的溫度值avgcount。
Process4:將process3中的溫度值結(jié)合測量實驗測得的校準系數(shù)一同傳入校正公式得到最終可靠的溫度值(wendu)。
temp = round(((avgcount - 2731) / 10), 1)
if(dis==0):
wendu=round((temp*xishu+0.5),1)
else: wendu=round((temp*xishu+TEMPADJUST),1)
return wendu
Final Output:校正后的溫度wendu
攝像頭捕捉到圖像信息傳回到樹莓派中進行數(shù)據(jù)處理,人臉口罩識別系統(tǒng)流程如圖6所示。通過口罩檢測算法和防誤判算法檢測是否戴口罩。如果被檢測人未佩戴口罩,視頻中人臉將會被紅框標注進行提醒,系統(tǒng)抓取人臉圖像保存并且語音設(shè)備會發(fā)出報警信號。如果人員佩戴口罩,則會被綠框標注。
口罩識別的核心算法采用了SSD架構(gòu)的人臉檢測算法。搭建的神經(jīng)網(wǎng)絡(luò)中主干網(wǎng)絡(luò)有8層,并且有5個定位和分類層,一共只有28個卷積層,而每個卷積層的通道數(shù),是32、64、128這3種,所以這個模型非常小,它只有101.5萬個參數(shù)。因此處理圖片的速度得到了提升,在樹莓派4上處理一張圖片只需200~300 ms。
完成了對系統(tǒng)的軟硬件設(shè)計后需要進行測試驗證人體測溫系統(tǒng)的工作是否處于穩(wěn)定狀態(tài)。給樹莓派通電成功啟動系統(tǒng),靠近攝像頭,系統(tǒng)可及時反映溫度變化及口罩情況。圖7為紅外熱像模塊在測溫過程中當有人進入時的溫度變化曲線,左框部分為人員進入時的刻度點,右側(cè)框為人員離開時的刻度點。
在測溫過程中像素點的溫度值是上下有小幅浮動的,為了使溫度更加穩(wěn)定可以將所測區(qū)域的溫度值取一定數(shù)目的像素溫度值進行平均如圖8所示,圖8(a)中為平均之前,圖8(b)為平均之后的曲線,可以看出圖8(b) 中的曲線較圖8(a)更加平整穩(wěn)定。
后期修改了核心算法,提高了人員判斷的靈敏度:參照移動目標檢測算法,扣除背景溫度,目前檢測比較靈敏。人員靠近及遠離判斷準確。針對室外復(fù)雜環(huán)境,可以自適應(yīng)外界溫度的變化,可以準確識別人員進入和離開。室外由于受天氣影響較大,特別是大風天氣影響更甚,這時臉部溫度較低,需要靠近至10~20 cm之內(nèi)可測得溫度,無風的情況下,可在30~50 cm距離內(nèi)測到溫度,需要定期與額溫槍進行校準。使用時可安裝防雨防風通道進行測溫,以保證最佳準確度。
表1是在校準誤差為0.5 ℃的情況下進行了測試得到的校準后的人體溫度的反饋情況。
表1 設(shè)備測試結(jié)果
測溫儀投入實際使用測試,一星期內(nèi)從周一至周六,連續(xù)運行,系統(tǒng)穩(wěn)定可靠,沒有出現(xiàn)死機或重啟現(xiàn)象,硬件可靠性得到驗證,測試反饋總統(tǒng)效果良好
本文設(shè)計的QUST-CWY01型非接觸式智能測溫儀利用樹莓派搭載紅外熱成像模組,基于移動目標檢測的測溫算法實現(xiàn)了在復(fù)雜多變的外界環(huán)境中測量獲取準確可靠的人體溫度,測量誤差不高于0.3 ℃。在人員進入測溫范圍內(nèi)可對人員進行自動測溫并且能夠識別人員口罩佩戴情況,識別率約95%以上。
后期該測溫儀通過選擇性能更好、分辨率更高的紅外熱成像模組,可以實現(xiàn)更精確的體溫檢測。系統(tǒng)后續(xù)可添加更多的功能,比如將智能人行閘道與測溫儀實現(xiàn)數(shù)據(jù)通信,通過測溫儀的反饋結(jié)果來控制人行閘道的開關(guān)等等。
綜上,該設(shè)計可以實現(xiàn)篩選發(fā)熱及未戴口罩人員,在防疫測溫領(lǐng)域具有較大應(yīng)用前景。