付佳怡 李 森 何會(huì)遠(yuǎn) 田洪海 楊林波
(河北建筑工程學(xué)院,河北 張家口 075000)
目前,海外疫情呈上升趨勢(shì),而中國(guó)對(duì)外反進(jìn)口壓力持續(xù)加大,國(guó)內(nèi)疫情形勢(shì)的復(fù)雜性也在增加。2022年,我國(guó)個(gè)別省份出現(xiàn)了大規(guī)模繼發(fā)病例,意味在整個(gè)防控全鏈條大數(shù)據(jù)管理中,如果某一環(huán)節(jié)出現(xiàn)管控力度薄弱或管理盲區(qū),就會(huì)增加疫情傳播的風(fēng)險(xiǎn)。然而在發(fā)展和防控并行的情況下,客觀問題凸顯,人力資源短缺,大量通行點(diǎn)無人看守,出現(xiàn)感染者和密接者。
對(duì)機(jī)場(chǎng)、火車站和地鐵站等人員密集的綜合交通樞紐以及學(xué)校、娛樂園區(qū)等公共場(chǎng)所來說,在出入口需要逐個(gè)進(jìn)行人體測(cè)溫、健康碼檢測(cè)等初步篩查,由于上述公共場(chǎng)所通常有較多通道和出入口,因此為了保障公共場(chǎng)所的安全性,有必要對(duì)各個(gè)人流口逐個(gè)排查進(jìn)行在線監(jiān)測(cè),以減少盲區(qū)。
選用DS18B20測(cè)溫的原因是低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,與傳統(tǒng)的熱敏電阻相比,它通過編程就可以控制測(cè)溫,當(dāng)讀寫時(shí)序時(shí),僅需要1根Wire總線就可以傳遞信息;其測(cè)溫需要經(jīng)過以下3個(gè)步驟:1)初始化定時(shí)。首先,主機(jī)將發(fā)出480 μs~960 μs的低電平脈沖。其次,跳過高電平總線,并在隨后的480 μs內(nèi)檢測(cè)總線的高、低電平,如果一直出現(xiàn)高電平且沒有低電平,就表示總線沒有設(shè)備響應(yīng),如果出現(xiàn)低電平,就表明總線上已經(jīng)有一個(gè)設(shè)備作出響應(yīng)。2) 寫時(shí)序。寫周期時(shí)長(zhǎng)最少為60 μs,最長(zhǎng)不超過120 μs,寫時(shí)序包括寫1時(shí)序和寫0時(shí)序。當(dāng)寫入時(shí)間序列0時(shí),主機(jī)輸出低電平,延時(shí)60 μs,然后釋放總線,延時(shí)2 μs[1],具體操作如下。
當(dāng)寫入時(shí)間序列1時(shí),主機(jī)輸出低電平,延時(shí)2 μs,然后釋放總線,延時(shí)60 μs。
3)讀時(shí)序。主機(jī)輸出低電平延時(shí)2 μs,主機(jī)切換到輸人模式延時(shí)12 μs,讀取1-Wire總線當(dāng)前的電平,再延時(shí)50 μs,具體操作如下。
完成以上步驟后,就可以得出溫度測(cè)量數(shù)據(jù)。
不能直接獲取戴口罩的照片對(duì)OpenCV進(jìn)行訓(xùn)練,其原因是在一整張照片中,其他部位(例如手、肩膀以及動(dòng)作等)對(duì)OpenCV來說都是噪聲,臉和口罩所占比例卻非常小,如果直接拿這種照片去進(jìn)行訓(xùn)練,那么它不但會(huì)增加CPU的計(jì)算量,而且還會(huì)干擾模型,因此在進(jìn)行訓(xùn)練前要先對(duì)照片進(jìn)行裁剪處理,裁剪出僅有面部和口罩的照片[2],具體操作如下。
通過上一步的裁減來采集不同人戴口罩和不戴口罩的面部形態(tài),在圖像中通過分類器比對(duì)找到匹配的數(shù)據(jù)后,對(duì)所得到的數(shù)據(jù)進(jìn)行畫框并輸出。當(dāng)全臉未帶口罩時(shí),opencv顯示器識(shí)別出鼻子和人臉,使用紅色框圖(紅色框圖是對(duì)識(shí)別對(duì)比的說明,由opencv顯示器進(jìn)行識(shí)別,顏色也會(huì)顯示在顯示器中)進(jìn)行表示,為未戴口罩狀態(tài);當(dāng)佩戴口罩時(shí),顯示器將會(huì)識(shí)別佩戴口罩的人臉,其無法識(shí)別鼻子和人臉,用綠色框圖表示,具體識(shí)別流程如圖1所示。
圖1 攝像頭識(shí)別流程
雖然照片訓(xùn)練成功,但是OpenCV的引腳十分有限,即便官方網(wǎng)站自帶各種庫,還是無法實(shí)現(xiàn)大部分功能,因此基于該智能檢測(cè),采用STM32與OpenCV之間實(shí)現(xiàn)串口通信;將OpenCV作為傳感器,STM32作為主控制芯片,以控制攝像識(shí)別,從而提高系統(tǒng)運(yùn)行的效率。
在進(jìn)行測(cè)試前,首先進(jìn)行白平衡校準(zhǔn),白平衡校準(zhǔn)是為后續(xù)系統(tǒng)的顏色識(shí)別檢測(cè)作準(zhǔn)備。在該裝置中,調(diào)整白平衡的具體步驟和方法如下:每次操作時(shí),在模塊前放置一個(gè)白色物塊進(jìn)行第一次識(shí)別,然后再識(shí)別其他顏色,通過白平衡校準(zhǔn)得到的R值、G值和B值均為255。白平衡結(jié)束后,分別按照上述方法掃描紅色、黃色和綠色健康碼進(jìn)行測(cè)試,就可計(jì)算所需的3個(gè)參數(shù)。如圖2所示,當(dāng)校準(zhǔn)結(jié)束、TCS230開始識(shí)別顏色時(shí),就用這3個(gè)參數(shù)對(duì)所測(cè)顏色的R、G和B進(jìn)行調(diào)整。通過R、G和B這3個(gè)值就可以得出投射到TCS230傳感器上的光的顏色,即能在小誤差范圍內(nèi)識(shí)別通行者的健康碼是否符合要求[3]。
圖2 進(jìn)行白平衡校準(zhǔn)
通過上述分析,系統(tǒng)針對(duì)健康碼顏色識(shí)別設(shè)計(jì)了1個(gè)以STM32作為主控制芯片控制TCS230運(yùn)行的裝置。該裝置具有結(jié)構(gòu)簡(jiǎn)單、操作便捷以及用途廣泛的特點(diǎn),并且能夠與主控芯片通信,通過串口的方式實(shí)時(shí)傳送識(shí)別結(jié)果。在子程序中設(shè)置循環(huán)語句,檢測(cè)是否需要進(jìn)行白平衡調(diào)整。如果系統(tǒng)需要進(jìn)行調(diào)整,則跳出循環(huán),執(zhí)行白平衡程序;如果不需要,則進(jìn)入下一循環(huán),以檢測(cè)系統(tǒng)是否需要顏色識(shí)別。如果需要顏色識(shí)別,系統(tǒng)就跳出循環(huán)執(zhí)行顏色識(shí)別子程序,直至識(shí)別完成。
溫度檢測(cè)選用DS18B20,其探頭對(duì)準(zhǔn)手腕或額頭,與程序預(yù)定值進(jìn)行對(duì)比,超標(biāo)則紅燈亮,合格則綠燈亮;選用TCS230來識(shí)別顏色,辨別健康碼是否符合要求,如果是綠色,那么綠燈亮;如果是紅色或黃色,那么紅燈亮;將嵌入ARM Cortex-M3系列的STM32F1系列的芯片作為主控制芯片;通過OpenCV識(shí)別系統(tǒng)來判斷出行人是否佩戴口罩;主控制芯片控制上述模塊的正常運(yùn)行,如果全部滿足以上要求,就亮綠燈;如果有一項(xiàng)不達(dá)標(biāo),就亮紅燈,同時(shí)蜂鳴器報(bào)警警告不允許通行。通過這種方式對(duì)過往行人進(jìn)行檢測(cè),從而實(shí)現(xiàn)智能化的抗疫通行系統(tǒng)。
3.2.1 TCS230模塊介紹
TCS230是TAOS公司開發(fā)的可編程的彩色光頻轉(zhuǎn)換器,這是業(yè)界首個(gè)具有數(shù)字兼容接口的RGB彩色傳感器,它在一個(gè)CMOS電路上集成了1個(gè)可配置的硅光電二極管和1個(gè)電流頻率轉(zhuǎn)換器,同時(shí)在1個(gè)芯片上集成了紅、綠和藍(lán)(RGB)3種濾光器。濾波器不同則投射的入射光也不同,由于不同的光有不同的顏色方波,因此可以通過控制引腳S0、S1來調(diào)節(jié),以滿足不同的要求。S0、S1、S2和S3的可用組合形式見表1。
表1 高低電平時(shí)顏色識(shí)別
3.2.2 DS18B20溫度識(shí)別模塊
模塊內(nèi)部主要由64位ROM和便箋式儲(chǔ)存器構(gòu)成,其內(nèi)部存儲(chǔ)器包括1個(gè)上電狀態(tài)的暫存器和1個(gè)存取器E2PROM,見表2。中間結(jié)果暫存器包括8個(gè)連續(xù)的字節(jié),Byte1和Byte2分別為測(cè)得溫度的低8位和高8位;Byte3、Byte4和Byte5對(duì)應(yīng)的字節(jié)可以保存在只讀存儲(chǔ)器中,存放高溫度報(bào)警TH、低溫度報(bào)警TL和配置寄存器的值,以確保系統(tǒng)故障后不會(huì)丟失數(shù)據(jù)[4]。
表2 便箋式存儲(chǔ)器標(biāo)識(shí)
DS18B20在執(zhí)行溫度轉(zhuǎn)換后,將溫度值與報(bào)警觸發(fā)值進(jìn)行比較,如果測(cè)量的溫度小于或等于TL值(或者大于或等于TH值),則在DS18B20內(nèi)部形成報(bào)警條件。因此,使單片機(jī)和DS18B20測(cè)溫傳感器相互組合,再結(jié)合相關(guān)的電路模塊就可以制作電子溫度計(jì),直接測(cè)量各個(gè)部位的溫度,從而直觀、準(zhǔn)確地得到所測(cè)部位的溫度。在實(shí)際應(yīng)用中,電子體溫計(jì)不僅易于操作,而且測(cè)量結(jié)果直觀、準(zhǔn)確。因此,將溫度傳感器與單片機(jī)相結(jié)合制成的電子溫度計(jì)在日常生活中有廣闊的市場(chǎng)[5]。
3.2.3 OLED顯示屏
與LCD顯示屏相比,OLED的功耗低,更適合小型系統(tǒng),由于發(fā)光材料的不同,因此OLED在不同的環(huán)境下都具有良好的顯示效果。模塊電源支持3.3 V或5.0 V,不需要修改模塊電路。OLED屏幕具有多個(gè)控制指令,可以控制OLED的亮度、對(duì)比度和開關(guān)升壓電路等指令,操作便捷,功能豐富,可顯示漢字、ASCII碼以及圖案等。
綜合上述研究,抗疫通行系統(tǒng)的執(zhí)行流程如圖3所示。
圖3 方案流程圖
該文所介紹的智能抗疫通行系統(tǒng)可以檢測(cè)所處環(huán)境的各項(xiàng)參數(shù),且檢測(cè)的數(shù)據(jù)可以通過OLED平臺(tái)實(shí)時(shí)顯示,該產(chǎn)品操作簡(jiǎn)單,只要熟悉幾個(gè)基本操作就可以進(jìn)行操控。系統(tǒng)運(yùn)行穩(wěn)定可靠,傳遞信息迅速,能夠適應(yīng)所有環(huán)境,不會(huì)受人為因素的限制。與傳統(tǒng)的檢測(cè)方式相比,基于STM32的智能抗疫通行檢測(cè)系統(tǒng)的特點(diǎn)無論是在大規(guī)模檢測(cè)中還是定期安全檢測(cè)中都能檢測(cè)出其突出的優(yōu)勢(shì)。該產(chǎn)品可以實(shí)時(shí)檢測(cè)疫情時(shí)代下各數(shù)據(jù)情況,實(shí)現(xiàn)報(bào)警功能,盡可能保障人民生命安全,減少不必要的損失,這種防控工作還可以有效保證疫情防控人員的健康,避免交叉感染。