岑志剛,王勇,李存龍,高亞楠,楊瑞祺
(北京信息科技大學(xué)信息與通信工程學(xué)院,北京 100101)
隨著科技不斷發(fā)展,碳排放逐漸上升導(dǎo)致全球溫度日益上升,而高溫常常會給人們的日常生活帶來不好的影響。據(jù)相關(guān)調(diào)查可知,密閉環(huán)境下溫度超過38 ℃時人體將出現(xiàn)明顯不適,若高于40 ℃,人的生命將受到威脅。
我國人口和車輛數(shù)量都位于世界前列,各地區(qū)受夏季高溫的影響更是不可忽視,并且近年來各地區(qū)連續(xù)發(fā)生多起幼童在車內(nèi)被遺忘的事件,從而導(dǎo)致兒童窒息死亡或患熱射病的事件。但是通過知網(wǎng)論文和國內(nèi)現(xiàn)有產(chǎn)品的調(diào)查[1-2]可知,目前大多數(shù)就該問題提出的方案尚不夠完善,其不僅功能單一,而且人臉識別精度還遠(yuǎn)遠(yuǎn)不足以滿足日常應(yīng)用,所以該文就如何解決該問題提出一套多功能完整的系統(tǒng),該系統(tǒng)在Openmv[3]利用Haar 算子和LBP 特征算法完成圖像處理和云臺輔助進(jìn)行全方位人臉追蹤的基礎(chǔ)上,通過NB-IOT BC26、SIM900A 模塊完成多種預(yù)警、實(shí)時監(jiān)控溫度、遠(yuǎn)程查看與物理降溫的功能,具有一定的可行性、創(chuàng)新性、實(shí)用性。
該系統(tǒng)設(shè)計(jì)主要分為三大部分:車內(nèi)攝像監(jiān)控、溫度檢測[4-5]、預(yù)警及處理。
第一部分的設(shè)計(jì)基于Openmv 在圖像處理速度方面強(qiáng)大的優(yōu)勢,采用舵機(jī)控制云臺360°無死角跟蹤人臉,通過Haar 算子和LBP 特征算法對車內(nèi)人員進(jìn)行人臉識別和分辨。第二部分的設(shè)計(jì)是在NBIOT BC26 技術(shù)[6-7]上利用DS18B20 傳感器完成溫度檢測,根據(jù)LWM2M 協(xié)議,通過NB-IOT BC26 向Onenet 實(shí)時上傳數(shù)據(jù),實(shí)現(xiàn)遠(yuǎn)程檢測[8]。第三部分預(yù)警及處理主要依托于蜂鳴器鳴笛預(yù)警、風(fēng)扇的物理降溫和SIM900A 模塊,將車內(nèi)溫度情況通過短信發(fā)送給特定用戶以作出提醒的方式進(jìn)行實(shí)現(xiàn)。系統(tǒng)總體設(shè)計(jì)框圖如圖1 所示,實(shí)物如圖2 所示。
圖1 系統(tǒng)設(shè)計(jì)框圖
圖2 整體實(shí)物圖
車內(nèi)攝像模塊作為整個系統(tǒng)中最基本和最重要的部分,需要保證較高的人臉識別精確度和較低的反映時延。故該文綜合考慮實(shí)際情況,采用舵機(jī)控制云臺進(jìn)行人臉的360°跟蹤以及基于LBP 特征[9]和Haar 算子[10]的人臉識別兩種策略,綜合提高人臉識別的準(zhǔn)確性和可信性。
該模塊以Pin7 管腳的高低電平作為拍照和識別模式切換的判斷依據(jù),當(dāng)Pin7 管腳為高電平時,進(jìn)入拍照錄入模式,利用OV7725 模組將視野范圍中的人物循環(huán)拍照5 次,并將5 張照片作為一組,保存至本地作為人臉分辨的圖像庫[11]。當(dāng)Pin7 管腳為低電平時,則利用img_find_features 獲得人臉特征矩形元組的列表后,通過內(nèi)置函數(shù)將其用矩形框進(jìn)行標(biāo)記并根據(jù)矩形框所返回的坐標(biāo)位置不斷控制舵機(jī),調(diào)整云臺的角度和位置,從而達(dá)到人臉跟蹤的效果。
該模塊通過分別將數(shù)千張標(biāo)記出含有人的圖片和數(shù)千張標(biāo)記出不含有人的照片對發(fā)生器算法進(jìn)行訓(xùn)練,從而生成一個Haar Cascades 來作為后續(xù)識別的主要憑據(jù)。在完成前期準(zhǔn)備工作后,通過調(diào)用內(nèi)置函數(shù)sensor.set_pixformat 將拍攝到的圖片轉(zhuǎn)化為灰度圖并利用LBP 完成提取圖像紋理的局部特征,將人臉像素窗口定義為3×3 大小后,匹配攝像頭中獲取的圖像特征像素點(diǎn)與周圍像素的關(guān)系,設(shè)定某個中心像素點(diǎn)為初始閾值,不斷循環(huán)計(jì)算二者的差值并在二值化后進(jìn)行求和,最后結(jié)合Haar 算子[12],通過計(jì)算LBP 特征值,反映灰度變換的情況,從而實(shí)現(xiàn)人臉識別和分辨,其LBP[13]和Haar 算子的計(jì)算方法分別如式(1)、式(2)所示。
其中,LBP 表示目標(biāo)區(qū)域像素點(diǎn)的LBP 特征值,jx和jy分別代表相鄰趨于像素點(diǎn)的灰度值,jcx和jcy分別代表所選中充當(dāng)閾值的像素點(diǎn)的灰度值。D代表對矩形區(qū)域右下角區(qū)域的像素灰度進(jìn)行積分,H1~H4分別代表矩形區(qū)域左上角、右上角、左下角、右下角區(qū)域像素和。
利用相關(guān)算法實(shí)現(xiàn)云臺360°無死角跟蹤人臉[14]的同時,采用Haar Cascade 特征檢測器不斷循環(huán)進(jìn)行特征檢測,并實(shí)時在攝像頭拍攝到的矩形區(qū)域內(nèi)完成對比度檢查與匹配,根據(jù)匹配特征的大小與初始設(shè)定的閾值進(jìn)行匹配,完成人臉識別。識別人臉后,采用LBP 特征算法完成人臉分辨。當(dāng)Pin7 管腳為低電平時,Openmv 進(jìn)入特征匹配模式,利用Find_lbp 函數(shù)從攝像頭拍攝到的圖片中提取LBP 人臉特征點(diǎn),不斷遍歷每一個文件夾,將LBP 特征值與文件圖庫中的照片依次進(jìn)行差值計(jì)算,并記錄該文件夾序號和實(shí)時更新特征最小值,算法推導(dǎo)如式(3)所示。
當(dāng)遍歷完最后一個文件夾后,將特征最小值與匹配閾值進(jìn)行對比,當(dāng)特征最小值小于匹配閾值時,Pin1 輸出高電平,表示目標(biāo)人物出現(xiàn)在車內(nèi);當(dāng)特征最小值大于匹配閾值時,則認(rèn)為目標(biāo)人物不在車內(nèi)。其循環(huán)判斷邏輯如式(4)所示。
其中,dis為特征差值匹配總值,為特征差異平均值,N為單人照片數(shù)目,M為本地圖庫人數(shù),H1為攝像頭拍攝圖像的特征值,Hij為圖庫中各圖片特征值,Res為虛擬變量,0 表示沒有找到目標(biāo)人物,1表示成功找到目標(biāo)人物,X為匹配閾值。
文中綜合比較不同技術(shù)之間的優(yōu)缺點(diǎn),最終決定采用STM32 和NB-IOT 結(jié)合的方式完成溫度檢測與預(yù)警模塊的設(shè)計(jì)方案。
首先,溫度檢測模塊[15]采用DS18B20 傳感器進(jìn)行溫度的測量,利用高溫度系數(shù)晶振和低溫度系數(shù)晶振各自產(chǎn)生的信號作為輸入,通過對脈沖的計(jì)數(shù)和利用斜率累加器來完成測溫時非線性過程的補(bǔ)償和修正,從而實(shí)現(xiàn)溫度的測量。
其次,車內(nèi)預(yù)警和降溫模塊主要利用AT+CGPADDR=1、AT+MIPCLREATE、AT+MIPLADDOB等AT 指令集,通過LWM2M 協(xié)議完成單片機(jī)與Onenet 云平臺的連接,建立和發(fā)送實(shí)時數(shù)據(jù),將溫度數(shù)據(jù)的大小作為降溫報(bào)警的限定條件進(jìn)行實(shí)現(xiàn),部分AT 命令如表1 所示。
表1 部分連接云平臺的AT命令
通過Onenet 平臺建立應(yīng)用,完成選擇數(shù)據(jù)流3303_0_5700 以及刷新頻率為3 s 等配置后,即可遠(yuǎn)程使用設(shè)備云APP 查看溫度,設(shè)備云APP 畫面如圖3 所示。
圖3 設(shè)備云APP畫面顯示
當(dāng)所檢測到的溫度大于設(shè)定閾值時,則采用具有傳輸功能的GPRS_SIM900A 模塊[16],通過AT+CMGSAT、AT+CSMP 等指令實(shí)現(xiàn)連接命令、消息格式、IP 設(shè)置等操作,完成基于GSM 的報(bào)警短信的發(fā)送,并設(shè)計(jì)開機(jī)自動發(fā)送一條提示短信表示系統(tǒng)工作正常。
對于短時間內(nèi)收到重復(fù)短信而造成資源浪費(fèi)的問題,通過設(shè)定兩個定時標(biāo)志位i和n來解決,通過判斷標(biāo)志位m來對系統(tǒng)工作條件進(jìn)行限定,通過判斷標(biāo)志位大小完成短信選擇性發(fā)送,從而減少發(fā)送次數(shù)和降低功耗,具體流程如圖4 所示。
圖4 短信發(fā)送流程框圖
發(fā)送數(shù)據(jù)部分代碼如下所示:
標(biāo)志位清除部分代碼如下所示:
在發(fā)送短信的同時開啟蜂鳴器和風(fēng)扇,實(shí)現(xiàn)物理降溫[17]和簡單預(yù)警等輔助功能,使得周邊環(huán)境里的人能夠被車內(nèi)的異常環(huán)境所吸引,從而及時發(fā)現(xiàn)被困人員,保證在一定程度內(nèi)通過風(fēng)扇降低被困人員的不適感,使得系統(tǒng)更加貼切實(shí)際生活運(yùn)用以及更具有實(shí)際使用價值。
為增加人臉圖像庫數(shù)據(jù)的多樣性以及更貼切實(shí)際生活應(yīng)用,人臉圖像數(shù)據(jù)庫中初始共有3 個目標(biāo)保護(hù)人物,平均每人有21 組圖像,共63 組圖像,每組共5 幅圖像,共315 幅圖片,其中每人在不同表情、狀態(tài)和環(huán)境背景[18]下共拍攝21 幅圖片。
實(shí)驗(yàn)過程中,通過人工方式改變密閉狹小空間的溫度,不斷調(diào)整溫度閾值模擬車內(nèi)情況,并在改變光照強(qiáng)度、光照方向等外界因素的同時觀察1 min 內(nèi)人臉識別是否成功,為保證實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,將上述過程重復(fù)20 次并取平均值,測量結(jié)果如表2 所示。
表2 系統(tǒng)測量結(jié)果
為進(jìn)一步確定該系統(tǒng)功能算法的優(yōu)劣,通過采用文中算法和傳統(tǒng)算法[19]進(jìn)行多次實(shí)驗(yàn),記錄系統(tǒng)花費(fèi)時間和識別準(zhǔn)確率并取平均值,結(jié)果如表3所示。
表3 算法對比結(jié)果
由表2 和表3 可知,系統(tǒng)在利用文中算法后識別精度總體達(dá)到了85.43%,較傳統(tǒng)算法提高了55.06%,系統(tǒng)總體耗時降低了77.77%,其根本原因在于圖庫本身的多樣性以及綜合利用LBP 和Haar 算子對灰度圖進(jìn)行處理,對于現(xiàn)實(shí)環(huán)境變化更具有魯棒性,總體結(jié)果更加可信。
實(shí)驗(yàn)發(fā)現(xiàn)通過拍攝不同照片豐富圖庫,從而降低不同情緒和不同妝容對于特征點(diǎn)提取的影響,同時在識別過程中通過Haar 算子和LBP 特征的結(jié)合優(yōu)化了人臉識別算法,云臺360°無死角跟蹤的方法較好地減小了人在車內(nèi)移動時的識別難度,提高了對灰度圖的處理速度、人臉識別準(zhǔn)確率和可信度,降低了反應(yīng)時延。并且系統(tǒng)整體能夠在較短時間內(nèi)完成短信發(fā)送和蜂鳴器雙重報(bào)警以及用風(fēng)扇物理降溫,具有一定實(shí)際意義。
該文以充分分析當(dāng)前社會問題和系統(tǒng)設(shè)計(jì)可能存在的問題為基礎(chǔ),提出一種基于Openmv 和STM32的車內(nèi)溫度預(yù)警系統(tǒng),該系統(tǒng)功能豐富,在精度與時延上均有較好的提升,能夠減少人在車內(nèi)因高溫而發(fā)生危險的情況,具有一定的實(shí)際意義和創(chuàng)新性。