高南
摘要:設(shè)計(jì)了一種體溫及口罩佩戴情況識(shí)別裝置,以單片機(jī) STM32F103為核心組成測溫及控制系統(tǒng),溫度監(jiān)測使用紅外線溫度傳感器,目標(biāo)人員體溫的跟蹤檢測與個(gè)人身份識(shí)別。使用OpenMV攝像頭由單片機(jī)對(duì)紅外線測溫儀和OpenMV的檢測數(shù)據(jù)實(shí)時(shí)作出反應(yīng),并輸出控制指令,由核心控制電路完成測量溫度、超標(biāo)預(yù)警和攝像頭身份識(shí)別等基本操作,以及被測人物不符報(bào)警、個(gè)人信息錄入控制及識(shí)別等功能。電路采取了多種抗干擾措施,減少測量誤差,工作穩(wěn)定可靠,提高了測量多種數(shù)據(jù)的效率。
關(guān)鍵詞:OpenMV;STM32F103單片機(jī)紅外線測溫
本文在傳統(tǒng)的人工檢測方法的基礎(chǔ)上設(shè)計(jì)了一種體溫監(jiān)測及口罩佩戴情況識(shí)別裝置,該裝置具有體溫監(jiān)測、身份識(shí)別、是否佩戴口罩、自動(dòng)報(bào)警、數(shù)值顯示等功能,可在人員流動(dòng)較大且人工檢測復(fù)雜的地方安裝,彌補(bǔ)了傳統(tǒng)人力疲勞缺陷,進(jìn)一步確保了疫情期間的人員安全。
1總體結(jié)構(gòu)
體溫監(jiān)測及口罩佩戴情況識(shí)別裝置系統(tǒng)由五大模塊組成,分別是核心控制模塊、身份識(shí)別模塊、溫度測量模塊、LED 顯示模塊、Wi-Fi 接收模塊和語音輸出模塊。核心控制模塊選擇 STM32F103單片機(jī),既能搭載OpenMV攝像頭,又能實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)處理。身份識(shí)別模塊采用OpenMV攝像頭。OpenMV搭載MicroPython解釋器,可在 PC 機(jī)上使用 Python 來編程,并且?guī)幚黼娐?,使機(jī)器視覺算法的編程簡單化,同時(shí)可獲得預(yù)處理后的圖像信息,提高身份識(shí)別的速度。溫度測量模塊 MLX90614是一款用于非接觸式的紅外溫度傳感器,得益 MLX90614良好性能﹐體積小、成本低、易集成等,應(yīng)用廣泛。Wi-Fi 接收模塊使用 ESP8266, 是一款串口轉(zhuǎn)無線模芯片,內(nèi)部自帶固件,用戶操作簡單,無需編寫時(shí)序信號(hào)等。LED 模塊和語音模塊均為本裝置的創(chuàng)新設(shè)計(jì),分別使用 TFTLCD 液晶顯示屏和 DY-SV17F 模塊驅(qū)動(dòng)語音,裝置下位機(jī)結(jié)構(gòu)見圖1所示。
2硬件設(shè)計(jì)
根據(jù)本裝置設(shè)計(jì)的基本功能和發(fā)揮部分功能的要求,本裝置選用 STM32F103單片機(jī)為智能控制核心,并采用12 MHz 晶振和上電復(fù)位電路。該單片機(jī)內(nèi)部有256kB ROM 和48kB RAM 以及定時(shí)器、計(jì)數(shù)器等,其配置對(duì)于本系統(tǒng)已完全夠用。再配合上述方案中應(yīng)用的電子元器件,通過對(duì)多個(gè)模塊的組裝,完成簡易無接觸溫度測量與身份識(shí)別裝置的全部設(shè)計(jì)和制作。
2.1身份識(shí)別電路設(shè)計(jì)
OpenMV是低功耗的 Python3可編程機(jī)器視覺硬件,結(jié)合攝像頭可以支持一系列廣泛的圖像處理功能和神經(jīng)網(wǎng)絡(luò)。OpenMV使用跨平臺(tái) IDE 進(jìn)行編程,該 IDE 允許查看攝像機(jī)的幀緩沖器、訪問傳感器控件、通過 USB 串行(或 Wi-Fi/BLE 將腳本上傳到攝像機(jī)。OpenMV基板基于在400 MHz 下運(yùn)行的 STM32H743 MCU,具有1 MB SRAM、2 MB 閃存、FPU、DSP 和硬件 JPEG 編碼器。
2.2溫度測量的電路設(shè)計(jì)
適合人體溫度測量的小外形精確 MLX90614紅外測溫模塊正適合本裝置的使用。MLX90614電路圖見圖2,此高精度的溫度傳感器,溫度分辨率要達(dá)到0.02℃;距離系數(shù)需要達(dá)到 S:D=10:1,既測溫儀探頭到目標(biāo)之間的距離與被測目標(biāo)直徑之比;采用3.3 V 電源。通上電 MLX90614就會(huì)輸出所檢測出的數(shù)據(jù),但此時(shí)的數(shù)據(jù)并非溫度數(shù)據(jù),而是電壓,需要按照精確的電壓溫度轉(zhuǎn)換計(jì)算公式進(jìn)行運(yùn)算,才能使返回的數(shù)據(jù)為溫度數(shù)據(jù)。
紅外測溫模塊 MLX90614有 MLX81101紅外熱電堆傳感器和包括含有穩(wěn)壓電路、低噪聲放大器、A/D 轉(zhuǎn)換器、DSP 單元、脈寬調(diào)制電路及邏輯控制電路的 MLX90302信號(hào)處理芯片構(gòu)成,見圖3。
其中紅外熱電堆傳感器輸出的溫度信號(hào)經(jīng)過內(nèi)部低噪聲、低失調(diào)的運(yùn)算放大器(OPA)放大后經(jīng)過 A/D 轉(zhuǎn)換器(ADC)轉(zhuǎn)換為17位數(shù)字信號(hào)通過可編程 FIR 及 IIR 低通數(shù)字濾波器(即 DSP)處理后輸出,輸出結(jié)果存儲(chǔ)在其內(nèi)部 RAM 存儲(chǔ)單元中。
2.3語音輸出的電路設(shè)計(jì)
語音輸出功能選用語音播放芯片 DY-SV17F,內(nèi)置 MP3及 WAV 解碼,能簡單實(shí)現(xiàn)語音播放功能?!癐/O 組合(獨(dú)立)模式0”與“I/O 組合(獨(dú)立)模式1”的區(qū)別在于前者模式釋放電平后繼續(xù)播放當(dāng)前曲目至結(jié)束,后者模式釋放電平后立即停止播放曲目。提示音需要完整播放,故此裝置使用 IO 獨(dú)立模式0播放報(bào)警提示音。I/O 獨(dú)立模式可以播放8首曲目,分別由8個(gè) I/O 單獨(dú)控制,見圖4。
2.4 LED 顯示屏的電路設(shè)計(jì)
TFTLCD 顯示模塊的特點(diǎn)是響應(yīng)時(shí)間短,畫面清晰,但功耗稍高,顯示模式
采用16位的并方式與外部連接。其對(duì)外接口見圖5所示。
由于數(shù)字接口標(biāo)準(zhǔn)尚未統(tǒng)一,所以使用 LCD 時(shí)需要根據(jù)其手冊(cè)了解具體接口定義。字符型 LCD 通常有14條引腳線或16條引腳線的 LCD,多出來的2條線是背光電源線 VCC(15腳)和地線 GND(16腳),其控制原理與14腳的 LCD 完全一樣,說明如表1所示。
顯示屏內(nèi)部 SoC 的 LCD 控制器引出一定的引腳與 LCD 驅(qū)動(dòng)器連接,按照標(biāo)準(zhǔn)設(shè)置一定的時(shí)序,再將 LCD 要顯示的像素信息放入內(nèi)存中,在通過設(shè)置 LCD 控制器中的寄存器,與 LCD 控制器建立映射,就能在 LCD 中顯示出字符或圖像。
2.5按鍵控制的電路設(shè)計(jì)
按鍵與 STM32F103單片機(jī)直接連接,只要在程序輸入相應(yīng)的代碼就可以正常使用,當(dāng)按下 KEY1按鍵時(shí),報(bào)警溫度闕值降低1℃,按下 KEY0按鍵時(shí),報(bào)警溫度闕值升高1℃。
2.6測量溫度功能
MLX90614紅外測溫模塊使用SMBus協(xié)議。對(duì)照時(shí)序圖,首先初始化函數(shù)內(nèi)部參數(shù),接著產(chǎn)生停止位,用于判斷是否可繼續(xù)讀取,接著發(fā)送起始位,然后發(fā)送從機(jī)地址和讀取指令,如果一切正常就從發(fā)起始位,開始讀取低8位和高8位數(shù)據(jù),再讀取校驗(yàn)位,發(fā)送停止位表示讀取完成,最后對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),數(shù)據(jù)正確就送回?cái)?shù)據(jù),否則重新讀取。讀取后的數(shù)據(jù)為被測物體表面溫度,在測量體溫時(shí),通過對(duì)多種數(shù)據(jù)進(jìn)行直線擬合,得到結(jié)果數(shù)據(jù)繪圖。切換成體溫測量模式時(shí),紅外測溫模塊所得的數(shù)據(jù)會(huì)經(jīng)過以下函數(shù)的計(jì)算,將表面溫度數(shù)據(jù)轉(zhuǎn)換成體溫?cái)?shù)據(jù)輸出,見圖6。
所得函數(shù)為: y=0.4639x +20.841
2.7自動(dòng)報(bào)警功能
由上文可知,語音輸出功能選用語音播放芯片 DY-SV17F,自動(dòng)報(bào)警功能即將語音播放芯片 DY-SV17F與 STM32F103單片機(jī)搭配,單片機(jī)接收從 LMT70溫度檢測電路輸入的邏輯信號(hào)和脈沖信號(hào),并將輸入的信號(hào)進(jìn)行處理運(yùn)算,以控制電流或控制電壓的形式輸出給語音播放芯片 DY-SV17F,完成各項(xiàng)語音播報(bào)和警告提醒。
2.8數(shù)值顯示功能
由原理圖可知,TFTLCD 顯示屏有128×64個(gè)像素點(diǎn),這為字符及漢字的顯示提供了基礎(chǔ)。讓數(shù)值顯示在固定位置的流程如下:
首先在文件夾中找到液晶屏驅(qū)動(dòng)文件 LQ12864.c,輸入文件中的 LCD_P6x8Str()函數(shù)用來打印字符串,之后為 LCD_P6x8Str()函數(shù)進(jìn)行解釋,輸入 x 和 y 的坐標(biāo),即字符串初始打印的坐標(biāo),測量溫度及身份識(shí)別后,數(shù)據(jù)將會(huì)傳輸至 STM32F103單片機(jī)里進(jìn)行處理,再通過LCD 顯示在屏幕上。
2.9下位機(jī) App 功能
手機(jī)客戶端由 APP Inventor 編程完成,可對(duì)該裝置的圖像信息及溫度,口罩佩戴情況進(jìn)行觀測。AppInventor是一款完全在線開發(fā)的編程軟件,拋去復(fù)雜化的程序代碼而采用積木式的推疊法來完成 Android 程式。該系列軟件自行研發(fā)適合手機(jī)使用的任意應(yīng)用程序。通過 ESP8266模塊連接上位機(jī)和下位機(jī),使服務(wù)端信息發(fā)送給手機(jī)頁面,通過 TCP/IP 協(xié)議,使其一體化。
2.10 WI-FI 接收模塊的電路設(shè)計(jì)
此芯片使用了 3.3 V 的直流電源,體積小,功耗低,支持透傳,丟包現(xiàn)象不嚴(yán)重,價(jià)格低。ESP8266 還允許用戶自己編寫 rom,不僅可以實(shí)現(xiàn)數(shù)據(jù)傳輸功能,還可控制建立 Wi-Fi 熱點(diǎn),或者作為 Wi-Fi 客戶端連接到某指定路由器,同時(shí)還可編程控制所有的 GPIO。Wi-Fi 接收模塊電路原理圖見圖 7 所示。
3 軟件設(shè)計(jì)
該裝置的身份識(shí)別功能由身份學(xué)習(xí)功能、人臉識(shí)別功能、口罩識(shí)別功能組成。身份學(xué)習(xí)功能。OpenMV將所有的與攝像頭有關(guān)的功能全部封裝在了傳感器模塊中,可以很方便的調(diào)用。先使用sensor.reset() 函數(shù)初始化攝像頭,設(shè)置采集照片的格式為灰度圖像,灰度圖像每個(gè)像素僅占 1 字節(jié),在之后的圖像特征的提取中處理速度快。再設(shè)置每幀的大小,等待攝像頭設(shè)置完成后會(huì)自動(dòng)拍攝人臉圖像,每位拍攝者需要拍攝 20 張人臉圖像,存入帶有人員編號(hào)的文件夾里。常用圖像特征提取方法有Haar-like、HoG、LBP 這三種方法,其中 LBP 為嵌入式開發(fā)最為推薦的方法,雖然精確度不如前者,但其運(yùn)算速度快,適合題目實(shí)時(shí)檢測人臉的要求。LBP(Local Binary Pattern,局部二值模式)是一種用來描述圖像局部紋理特征的算子;它具有旋轉(zhuǎn)不變性和灰度級(jí)不變性等顯著的優(yōu)點(diǎn)。
由于OpenMV擁有圖片提取 LBP 特征功能,在拍攝被測人員人臉樣本時(shí),先運(yùn)行OpenMV的sensor.setpixformat(sensor.GRAYSCALE)灰度轉(zhuǎn)換函數(shù),出來的圖片已經(jīng)轉(zhuǎn)化為灰度圖,再提取出當(dāng)前拍攝圖像的 LBP 特征函數(shù),將圖片與之前文件夾里存入的被測人員的圖像逐一比對(duì),比對(duì)時(shí)會(huì)逐一比對(duì)所有被測人員的圖片,比對(duì)完成一組文件夾的圖片后會(huì)輸出比對(duì)闕值,之后跳轉(zhuǎn)至下一文件夾再次進(jìn)行比對(duì),全部識(shí)別完畢后找出比對(duì)闕值最低的文件夾,最后輸出文件夾對(duì)應(yīng)的人員編號(hào)或姓名。
口罩識(shí)別功能運(yùn)用了口罩特征點(diǎn)檢測和尋找口罩色塊的功能,在程序運(yùn)行前將不同口罩的特征點(diǎn)及各種色塊提取完成,方便后續(xù)比對(duì)。在拍攝出的灰度圖中,若被測者戴著口罩,OpenMV會(huì)尋找口罩的邊緣并畫出特征點(diǎn),當(dāng)口罩的特征點(diǎn)匹配正確至一定數(shù)量時(shí),則程序?qū)@示正確識(shí)別口罩并顯示被測人員已戴口罩;若特征點(diǎn)識(shí)別較少,OpenMV將會(huì)尋找口罩色塊,匹配成功將正確識(shí)別口罩,匹配失敗則顯示被測人員未佩戴口罩??谡肿R(shí)別流程圖見圖9。
4結(jié)束語
基于32位微控制器 STM32F103,使用 MX90614紅外測溫傳感器和OpenMV攝像頭,再配合 TFTLCD顯示屏、ESP8266模塊、語音播放芯片 DY-SV17F 等設(shè)計(jì)了簡易無接觸溫度測量與口罩佩戴情況識(shí)別裝置。經(jīng)過測試證明該系統(tǒng)可實(shí)現(xiàn)較高精度的溫度測量,能夠通過藍(lán)牙向計(jì)算機(jī)傳輸溫度數(shù)據(jù),并且具有顯示、識(shí)別、報(bào)警等輔助功能,可滿足日常生活的需要。不過,該裝置的精度和穩(wěn)定性等有待進(jìn)一步提高,以實(shí)現(xiàn)更好的紅外測溫。經(jīng)驗(yàn)證,該裝置測量數(shù)據(jù)都達(dá)到預(yù)期目標(biāo),實(shí)驗(yàn)結(jié)果準(zhǔn)確。
參考文獻(xiàn):
[1]劉志軍.基于SSD算法的口罩檢測[J].科學(xué)技術(shù)創(chuàng)新,2021(24):68-69.
[2]劉啟剛,孫向陽,徐偉.針對(duì)實(shí)時(shí)場景的口罩檢測模型設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2021,38(8):76-81.
[3]余阿祥,李承潤,于書儀,等.多注意力機(jī)制的口罩檢測網(wǎng)絡(luò)[J].南京師范大學(xué)學(xué)報(bào)(工程技術(shù)版),2021,21(1):23-29.
[4]張秀麗,宋蔚.紅外體溫檢測專利技術(shù)綜述[J].河南科技,2021,40(11):144-146.
[5]淮旭鴿,莊未,梁才航,等.一種身高自適應(yīng)智能體溫檢測系統(tǒng)[J].桂林電子科技大學(xué)學(xué)報(bào),2021,41(5):407-413.
[6]李天睿,謝衛(wèi)平.體溫檢測在人臉識(shí)別門禁終端的應(yīng)用[J].電腦與電信,2021(7):68-70.