岑志剛,王勇,李存龍,高亞楠,楊瑞祺
(北京信息科技大學信息與通信工程學院,北京 100101)
隨著科技不斷發展,碳排放逐漸上升導致全球溫度日益上升,而高溫常常會給人們的日常生活帶來不好的影響。據相關調查可知,密閉環境下溫度超過38 ℃時人體將出現明顯不適,若高于40 ℃,人的生命將受到威脅。
我國人口和車輛數量都位于世界前列,各地區受夏季高溫的影響更是不可忽視,并且近年來各地區連續發生多起幼童在車內被遺忘的事件,從而導致兒童窒息死亡或患熱射病的事件。但是通過知網論文和國內現有產品的調查[1-2]可知,目前大多數就該問題提出的方案尚不夠完善,其不僅功能單一,而且人臉識別精度還遠遠不足以滿足日常應用,所以該文就如何解決該問題提出一套多功能完整的系統,該系統在Openmv[3]利用Haar 算子和LBP 特征算法完成圖像處理和云臺輔助進行全方位人臉追蹤的基礎上,通過NB-IOT BC26、SIM900A 模塊完成多種預警、實時監控溫度、遠程查看與物理降溫的功能,具有一定的可行性、創新性、實用性。
該系統設計主要分為三大部分:車內攝像監控、溫度檢測[4-5]、預警及處理。
第一部分的設計基于Openmv 在圖像處理速度方面強大的優勢,采用舵機控制云臺360°無死角跟蹤人臉,通過Haar 算子和LBP 特征算法對車內人員進行人臉識別和分辨。第二部分的設計是在NBIOT BC26 技術[6-7]上利用DS18B20 傳感器完成溫度檢測,根據LWM2M 協議,通過NB-IOT BC26 向Onenet 實時上傳數據,實現遠程檢測[8]。第三部分預警及處理主要依托于蜂鳴器鳴笛預警、風扇的物理降溫和SIM900A 模塊,將車內溫度情況通過短信發送給特定用戶以作出提醒的方式進行實現。系統總體設計框圖如圖1 所示,實物如圖2 所示。

圖1 系統設計框圖

圖2 整體實物圖
車內攝像模塊作為整個系統中最基本和最重要的部分,需要保證較高的人臉識別精確度和較低的反映時延。故該文綜合考慮實際情況,采用舵機控制云臺進行人臉的360°跟蹤以及基于LBP 特征[9]和Haar 算子[10]的人臉識別兩種策略,綜合提高人臉識別的準確性和可信性。
該模塊以Pin7 管腳的高低電平作為拍照和識別模式切換的判斷依據,當Pin7 管腳為高電平時,進入拍照錄入模式,利用OV7725 模組將視野范圍中的人物循環拍照5 次,并將5 張照片作為一組,保存至本地作為人臉分辨的圖像庫[11]。當Pin7 管腳為低電平時,則利用img_find_features 獲得人臉特征矩形元組的列表后,通過內置函數將其用矩形框進行標記并根據矩形框所返回的坐標位置不斷控制舵機,調整云臺的角度和位置,從而達到人臉跟蹤的效果。
該模塊通過分別將數千張標記出含有人的圖片和數千張標記出不含有人的照片對發生器算法進行訓練,從而生成一個Haar Cascades 來作為后續識別的主要憑據。在完成前期準備工作后,通過調用內置函數sensor.set_pixformat 將拍攝到的圖片轉化為灰度圖并利用LBP 完成提取圖像紋理的局部特征,將人臉像素窗口定義為3×3 大小后,匹配攝像頭中獲取的圖像特征像素點與周圍像素的關系,設定某個中心像素點為初始閾值,不斷循環計算二者的差值并在二值化后進行求和,最后結合Haar 算子[12],通過計算LBP 特征值,反映灰度變換的情況,從而實現人臉識別和分辨,其LBP[13]和Haar 算子的計算方法分別如式(1)、式(2)所示。


其中,LBP 表示目標區域像素點的LBP 特征值,jx和jy分別代表相鄰趨于像素點的灰度值,jcx和jcy分別代表所選中充當閾值的像素點的灰度值。D代表對矩形區域右下角區域的像素灰度進行積分,H1~H4分別代表矩形區域左上角、右上角、左下角、右下角區域像素和。
利用相關算法實現云臺360°無死角跟蹤人臉[14]的同時,采用Haar Cascade 特征檢測器不斷循環進行特征檢測,并實時在攝像頭拍攝到的矩形區域內完成對比度檢查與匹配,根據匹配特征的大小與初始設定的閾值進行匹配,完成人臉識別。識別人臉后,采用LBP 特征算法完成人臉分辨。當Pin7 管腳為低電平時,Openmv 進入特征匹配模式,利用Find_lbp 函數從攝像頭拍攝到的圖片中提取LBP 人臉特征點,不斷遍歷每一個文件夾,將LBP 特征值與文件圖庫中的照片依次進行差值計算,并記錄該文件夾序號和實時更新特征最小值,算法推導如式(3)所示。

當遍歷完最后一個文件夾后,將特征最小值與匹配閾值進行對比,當特征最小值小于匹配閾值時,Pin1 輸出高電平,表示目標人物出現在車內;當特征最小值大于匹配閾值時,則認為目標人物不在車內。其循環判斷邏輯如式(4)所示。

其中,dis為特征差值匹配總值,為特征差異平均值,N為單人照片數目,M為本地圖庫人數,H1為攝像頭拍攝圖像的特征值,Hij為圖庫中各圖片特征值,Res為虛擬變量,0 表示沒有找到目標人物,1表示成功找到目標人物,X為匹配閾值。
文中綜合比較不同技術之間的優缺點,最終決定采用STM32 和NB-IOT 結合的方式完成溫度檢測與預警模塊的設計方案。
首先,溫度檢測模塊[15]采用DS18B20 傳感器進行溫度的測量,利用高溫度系數晶振和低溫度系數晶振各自產生的信號作為輸入,通過對脈沖的計數和利用斜率累加器來完成測溫時非線性過程的補償和修正,從而實現溫度的測量。
其次,車內預警和降溫模塊主要利用AT+CGPADDR=1、AT+MIPCLREATE、AT+MIPLADDOB等AT 指令集,通過LWM2M 協議完成單片機與Onenet 云平臺的連接,建立和發送實時數據,將溫度數據的大小作為降溫報警的限定條件進行實現,部分AT 命令如表1 所示。

表1 部分連接云平臺的AT命令
通過Onenet 平臺建立應用,完成選擇數據流3303_0_5700 以及刷新頻率為3 s 等配置后,即可遠程使用設備云APP 查看溫度,設備云APP 畫面如圖3 所示。

圖3 設備云APP畫面顯示
當所檢測到的溫度大于設定閾值時,則采用具有傳輸功能的GPRS_SIM900A 模塊[16],通過AT+CMGSAT、AT+CSMP 等指令實現連接命令、消息格式、IP 設置等操作,完成基于GSM 的報警短信的發送,并設計開機自動發送一條提示短信表示系統工作正常。
對于短時間內收到重復短信而造成資源浪費的問題,通過設定兩個定時標志位i和n來解決,通過判斷標志位m來對系統工作條件進行限定,通過判斷標志位大小完成短信選擇性發送,從而減少發送次數和降低功耗,具體流程如圖4 所示。

圖4 短信發送流程框圖
發送數據部分代碼如下所示:

標志位清除部分代碼如下所示:


在發送短信的同時開啟蜂鳴器和風扇,實現物理降溫[17]和簡單預警等輔助功能,使得周邊環境里的人能夠被車內的異常環境所吸引,從而及時發現被困人員,保證在一定程度內通過風扇降低被困人員的不適感,使得系統更加貼切實際生活運用以及更具有實際使用價值。
為增加人臉圖像庫數據的多樣性以及更貼切實際生活應用,人臉圖像數據庫中初始共有3 個目標保護人物,平均每人有21 組圖像,共63 組圖像,每組共5 幅圖像,共315 幅圖片,其中每人在不同表情、狀態和環境背景[18]下共拍攝21 幅圖片。
實驗過程中,通過人工方式改變密閉狹小空間的溫度,不斷調整溫度閾值模擬車內情況,并在改變光照強度、光照方向等外界因素的同時觀察1 min 內人臉識別是否成功,為保證實驗結果的準確性,將上述過程重復20 次并取平均值,測量結果如表2 所示。

表2 系統測量結果
為進一步確定該系統功能算法的優劣,通過采用文中算法和傳統算法[19]進行多次實驗,記錄系統花費時間和識別準確率并取平均值,結果如表3所示。

表3 算法對比結果
由表2 和表3 可知,系統在利用文中算法后識別精度總體達到了85.43%,較傳統算法提高了55.06%,系統總體耗時降低了77.77%,其根本原因在于圖庫本身的多樣性以及綜合利用LBP 和Haar 算子對灰度圖進行處理,對于現實環境變化更具有魯棒性,總體結果更加可信。
實驗發現通過拍攝不同照片豐富圖庫,從而降低不同情緒和不同妝容對于特征點提取的影響,同時在識別過程中通過Haar 算子和LBP 特征的結合優化了人臉識別算法,云臺360°無死角跟蹤的方法較好地減小了人在車內移動時的識別難度,提高了對灰度圖的處理速度、人臉識別準確率和可信度,降低了反應時延。并且系統整體能夠在較短時間內完成短信發送和蜂鳴器雙重報警以及用風扇物理降溫,具有一定實際意義。
該文以充分分析當前社會問題和系統設計可能存在的問題為基礎,提出一種基于Openmv 和STM32的車內溫度預警系統,該系統功能豐富,在精度與時延上均有較好的提升,能夠減少人在車內因高溫而發生危險的情況,具有一定的實際意義和創新性。