董振華*,何 淼
(金陵科技學(xué)院電子信息工程學(xué)院,江蘇 南京)
教育部基礎(chǔ)一司在《致全國(guó)中小學(xué)生家長(zhǎng)的一封信》中表示,溺水排在導(dǎo)致中小學(xué)生非正常死亡因素的第一位[1]。針對(duì)溺水事件的發(fā)生,建立多方合作的預(yù)防機(jī)制,在江河湖泊、水庫(kù)、池塘、水井等易發(fā)生溺水事故的危險(xiǎn)區(qū)域設(shè)立安全警示區(qū)、警示牌和標(biāo)語(yǔ),及時(shí)采取防范措施,切實(shí)增強(qiáng)我國(guó)中小學(xué)生的防溺水安全意識(shí)。
目前大量的研究人員針對(duì)防溺水問(wèn)題產(chǎn)開(kāi)了研究與討論,邱睿等研究了一款基于單片機(jī)的智能防溺水背心,并自主開(kāi)發(fā)了智能手機(jī)終端APP,實(shí)現(xiàn)傳感器數(shù)據(jù)與在線網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的數(shù)據(jù)交換,通過(guò)心率數(shù)據(jù)與液位數(shù)據(jù)經(jīng)模糊算法處理后進(jìn)行溺水狀態(tài)判斷[2]。張晶開(kāi)發(fā)了一款防溺水手環(huán),通過(guò)壓力傳感器測(cè)量人體脈搏,濕度傳感器測(cè)量系統(tǒng)外部水分,當(dāng)觸發(fā)溺水條件后,CPLD(Complex Programmable Logic Device)發(fā)出指令通過(guò)電磁閥對(duì)壓縮氣囊充氣,為佩戴者提供適當(dāng)浮力[3-4]。鄒旭等基于zigbee 技術(shù)開(kāi)展了泳池防溺水智能泳帽的研究,通過(guò)壓力傳感器檢測(cè)溺水條件[5]。
本文介紹一種基于OpenMV 的行人檢測(cè)系統(tǒng),由STM32F4 單片機(jī)作為終端設(shè)備采集傳感器數(shù)據(jù),OpenMV 模塊對(duì)視頻進(jìn)行人像識(shí)別并將處理后的數(shù)據(jù)發(fā)送給單片機(jī),4G 模塊將傳感器數(shù)據(jù)打包后上傳至在線網(wǎng)絡(luò)數(shù)據(jù)庫(kù),Web 應(yīng)用從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)并在網(wǎng)頁(yè)進(jìn)行顯示,本設(shè)計(jì)還加入了FreeRTOS,即實(shí)時(shí)操作系統(tǒng),支持多個(gè)任務(wù)同時(shí)運(yùn)行,提高了測(cè)量的效率,縮短了整體測(cè)量所需的時(shí)間,在運(yùn)行攝像頭識(shí)別任務(wù)的同時(shí)不會(huì)對(duì)溫濕度、水位高度等數(shù)據(jù)的測(cè)量產(chǎn)生干擾,實(shí)現(xiàn)了監(jiān)測(cè)水位、監(jiān)測(cè)行人等功能。
本文是一種基于OpenMV 的行人檢測(cè)系統(tǒng),適用于在池塘、水庫(kù)、河道等水域附近使用,通過(guò)對(duì)攝像頭拍攝到的圖像進(jìn)行實(shí)時(shí)識(shí)別,如果檢測(cè)到人像則會(huì)對(duì)人像位置進(jìn)行數(shù)據(jù)處理,與管理員設(shè)置的安全閾值比較,并判斷風(fēng)險(xiǎn)等級(jí)。
系統(tǒng)是基于傳統(tǒng)的物聯(lián)網(wǎng)架構(gòu)進(jìn)行設(shè)計(jì)的,主要由感知層、網(wǎng)絡(luò)層、應(yīng)用層三部分組成。整體架構(gòu)如圖1 所示。感知層在整個(gè)物聯(lián)網(wǎng)框架中承擔(dān)著數(shù)據(jù)采集的工作,在本設(shè)計(jì)中由北斗傳感器、溫濕度傳感器、姿態(tài)傳感器、OpenMV 模塊、水位傳感器等硬件構(gòu)成。通過(guò)終端設(shè)備完成對(duì)與所需信息的采集任務(wù)。網(wǎng)絡(luò)層在物聯(lián)網(wǎng)架構(gòu)中主要起著信息傳遞的作用,對(duì)比多種長(zhǎng)距離無(wú)線通信技術(shù),4G 通訊具有顯著的特點(diǎn),高數(shù)據(jù)速率、寬帶傳輸、無(wú)線即時(shí)通訊與兼容性好等優(yōu)勢(shì),結(jié)合MQTT 協(xié)議組成了本系統(tǒng)的數(shù)據(jù)傳輸模式。應(yīng)用層在架構(gòu)中主要是完成對(duì)數(shù)據(jù)進(jìn)行處理的工作,阿里云物聯(lián)網(wǎng)平臺(tái)作為本系統(tǒng)的應(yīng)用層,搭載了Web 應(yīng)用,實(shí)現(xiàn)了數(shù)據(jù)校驗(yàn)、閾值報(bào)警、數(shù)據(jù)顯示、位置信息圖像顯示、設(shè)備情況管理等功能。擴(kuò)大了系統(tǒng)監(jiān)管的地理范圍,提高了管理員監(jiān)按的效率,降低了突發(fā)意外事件的風(fēng)險(xiǎn)。

圖1 系統(tǒng)整體框圖
終端設(shè)備選用STM32F4 單片機(jī)作為主按芯片,該款芯片處理速度快,具有USART、ADC、IIC、RS485 等多種外設(shè)接口、同時(shí)具有高性能、低成本、功能小等特點(diǎn)。系統(tǒng)的外設(shè)由OpenMV、溫濕度傳感器、北斗傳感器、水位傳感器、4G 傳感器、姿態(tài)傳感器六個(gè)部分組成,如圖2 所示,外設(shè)都與STM32F4 核心板建立通訊,通過(guò)實(shí)時(shí)操作系統(tǒng)將整體分為四個(gè)任務(wù)運(yùn)行。任務(wù)一:4G 傳感器將數(shù)據(jù)打包通過(guò)MQTT 協(xié)議上傳服務(wù)器;任務(wù)二:設(shè)備安裝環(huán)境的數(shù)據(jù)測(cè)量,如溫濕度測(cè)量、水位測(cè)量、處理攝像頭識(shí)別后的返回結(jié)果,根據(jù)判斷的風(fēng)險(xiǎn)等級(jí)進(jìn)行燈光與蜂鳴器的響應(yīng);任務(wù)三:設(shè)備狀態(tài)數(shù)據(jù)的測(cè)量,姿態(tài)傳感器與GPS/北斗傳感器測(cè)量,保證設(shè)備處在正常姿態(tài)運(yùn)行,無(wú)倒伏、傾斜狀況發(fā)生;任務(wù)四:LCD 顯示,實(shí)現(xiàn)實(shí)時(shí)測(cè)量數(shù)據(jù)顯示,既可在Web 應(yīng)用中查詢歷史與實(shí)時(shí)數(shù)據(jù),又可在本地查看實(shí)時(shí)數(shù)據(jù)。

圖2 系統(tǒng)硬件設(shè)計(jì)框圖
4G 傳感器選用的是EC200U-CN 傳感器,插入SIM 卡實(shí)現(xiàn)4G 通訊,具有高數(shù)據(jù)速率、寬帶傳輸、無(wú)線即時(shí)通訊與兼容性高等優(yōu)勢(shì),即使在網(wǎng)絡(luò)信號(hào)不穩(wěn)定的區(qū)域,也不會(huì)發(fā)生數(shù)據(jù)傳輸不及時(shí),保證了數(shù)據(jù)的實(shí)時(shí)性。每增加一個(gè)設(shè)備只需要單獨(dú)組網(wǎng)即可,不會(huì)破壞原有的通訊線路,具有更好的拓展性。且4G 信息的傳輸種類更加豐富,包括圖片、音頻、視頻等。
終端通過(guò)串口與4G 傳感器通信,發(fā)布AT 指令進(jìn)行交互,通過(guò)MQTT 通訊協(xié)議將測(cè)量的數(shù)據(jù)發(fā)送至網(wǎng)絡(luò)數(shù)據(jù)庫(kù),部分AT 指令如表1 所示。

表1 AT 指令
數(shù)據(jù)的存儲(chǔ)是基于阿里云生活物聯(lián)網(wǎng)平臺(tái),每一臺(tái)設(shè)備都具有其唯一身份的設(shè)備證書,包含ProductKey、DeviceName、DeviceSecret 三要素,設(shè)備證書不僅是作為設(shè)備身份識(shí)別的方法之一,更是設(shè)備后續(xù)與物聯(lián)網(wǎng)平臺(tái)交流的重要憑證。
溫濕度傳感器選用DHT22,該款傳感器可在室外零下環(huán)境中工作,適用全國(guó)大部分地區(qū)的溫濕度采集工作。該器件采用簡(jiǎn)化的單總線通信,當(dāng)主機(jī)(MCU)發(fā)起一次起始信號(hào)后,DHT22 從休眠模式轉(zhuǎn)到高速模式。待主機(jī)開(kāi)始信號(hào)結(jié)束后,DHT22 發(fā)送響應(yīng)信號(hào),從數(shù)據(jù)總線SDA 串行傳輸40Bit 的數(shù)據(jù),先發(fā)送字節(jié)的高位;發(fā)送數(shù)據(jù)結(jié)束觸發(fā)一次信息采集,采集結(jié)束后傳感器自動(dòng)轉(zhuǎn)入休眠模式,直到下一次通信來(lái)臨。
水位測(cè)量選用WT53R-TTL 傳感器,該款傳感器選用高精度激光測(cè)距傳感器,搭配相應(yīng)的光學(xué)過(guò)濾蓋片進(jìn)行有效的濾除光學(xué)干擾。測(cè)距原理是設(shè)備安裝高度減去設(shè)備測(cè)量至水面的距離得到水位高度。
OpenMV 的全稱是open machine vision, 是由美國(guó)克里斯團(tuán)隊(duì)基于MicroPython 發(fā)起的開(kāi)源機(jī)器視覺(jué)項(xiàng)目,其搭載了MicroPython 解釋器,使其可以在嵌入式端進(jìn)行python 開(kāi)發(fā)。OpenMV 具有輕量化的優(yōu)勢(shì),可以運(yùn)行在MCU 上,具備處理高復(fù)雜度圖像信息與高速圖像信息的能力。OpenMV 進(jìn)行人像識(shí)別的原理大致如下,首先利用OpenCV 對(duì)含有人像的正負(fù)樣本數(shù)據(jù)集進(jìn)行訓(xùn)練,生成只可供OpenCV 調(diào)用的cascade.xml 分類器,再將xml 格式的文件通過(guò)python轉(zhuǎn)換成cascade 格式的OpenMV 可識(shí)別文件,后將生成的可識(shí)別格式文件導(dǎo)入OpenMV 即可進(jìn)行圖像識(shí)別。
風(fēng)險(xiǎn)等級(jí)判斷的原理是:首先根據(jù)攝像頭安裝的位置將圖像劃分風(fēng)險(xiǎn)區(qū),再按照邊界擬出相對(duì)貼合的線性方程組,當(dāng)單片機(jī)接收到來(lái)自O(shè)penMV 的數(shù)據(jù),計(jì)算坐標(biāo)位于哪一風(fēng)險(xiǎn)區(qū),當(dāng)坐標(biāo)位于黃色或紅色區(qū)域時(shí),單片機(jī)按制LED 與蜂鳴器發(fā)出警告,并在Web應(yīng)用對(duì)管理員發(fā)出預(yù)警信息。
姿態(tài)傳感器選用JY61P 傳感器,該款傳感器時(shí)基于MEMS 技術(shù)的高性能三維運(yùn)動(dòng)姿態(tài)測(cè)量系統(tǒng)。內(nèi)部采用的是MPU6050 芯片,加入了STM8 的核心處理器,內(nèi)部還結(jié)合了動(dòng)力學(xué)解算與動(dòng)態(tài)卡爾曼濾波算法,可實(shí)現(xiàn)高精度、高動(dòng)態(tài)、實(shí)時(shí)補(bǔ)償?shù)娜S姿態(tài)角度。
GPS/ 北斗傳感器選用ATK-S1216F8-BD GPS/北斗模塊,傳感器與單片機(jī)的通信接口采用UART 方式,輸出的GPS/北斗定位數(shù)據(jù)采用NMEA-0183 協(xié)議(默認(rèn)),按制協(xié)議為SkyTraq 協(xié)議。
該部分旨在為管理員提供更方便、更快捷的查看數(shù)據(jù)的方式,通過(guò)單片機(jī)外接的LCD 顯示屏顯示各個(gè)傳感器實(shí)時(shí)獲取到的數(shù)據(jù),便于安裝時(shí)調(diào)試設(shè)備,一目了然地查看各傳感器是否正常工作,如圖3 所示。

圖3 LCD 顯示
系統(tǒng)軟件部分為物聯(lián)網(wǎng)平臺(tái)、數(shù)據(jù)庫(kù)、Web 應(yīng)用平臺(tái)等,如圖4 所示,物聯(lián)網(wǎng)平臺(tái)用于與4G 傳感器通訊,接收4G 傳感器上傳的數(shù)據(jù),驗(yàn)證格式后存儲(chǔ)進(jìn)數(shù)據(jù)庫(kù),Web 應(yīng)用通過(guò)調(diào)用API 獲取數(shù)據(jù)庫(kù)的數(shù)據(jù)信息。最終將數(shù)據(jù)進(jìn)行分類展示在不同的網(wǎng)頁(yè)。

圖4 軟件系統(tǒng)設(shè)計(jì)框圖
3.2.1 Web 應(yīng)用獲取數(shù)據(jù)
Web 應(yīng)用通過(guò)HTTP 與物聯(lián)網(wǎng)云平臺(tái)交互,流程如圖5 所示。

圖5 云端調(diào)用流程
Web 云端通過(guò)調(diào)用獲取云端資源Token 向阿里云IoT 云端請(qǐng)求資源令牌(Cloud Token);阿里云IoT云端接收到請(qǐng)求后返回CloudToken,以及對(duì)應(yīng)的失效時(shí)間;Web 云端使用獲取到的Cloud Token 調(diào)用阿里云IoT 云端某個(gè)具體的API。阿里云IoT 云端向返回請(qǐng)求的處理結(jié)果;在Cloud Token 失效前,Web 云端通過(guò)調(diào)用刷新云端資源Token 接口對(duì)當(dāng)前Cloud Token進(jìn)行續(xù)期,如果Cloud Token 已經(jīng)失效,則需重新調(diào)用獲取云端資源Token 接口來(lái)獲取新的Cloud Token 及其對(duì)應(yīng)的失效時(shí)間。
3.2.2 Web 應(yīng)用設(shè)計(jì)
Web 應(yīng)用共設(shè)計(jì)有4 個(gè)頁(yè)面,分別是首頁(yè)、設(shè)備管理頁(yè)、設(shè)備屬性頁(yè)、設(shè)備地圖頁(yè)。網(wǎng)站通過(guò)管理員用戶名與密碼登錄;首頁(yè)用于設(shè)備的產(chǎn)品展示與介紹;設(shè)備管理頁(yè)用于查看設(shè)備的所屬、創(chuàng)建時(shí)間以及對(duì)設(shè)備數(shù)量進(jìn)行增刪操作。設(shè)備屬性頁(yè)用于展示設(shè)備的在線狀態(tài)、風(fēng)險(xiǎn)等級(jí)、溫濕度、姿態(tài)角等傳感器數(shù)據(jù)。設(shè)備地圖頁(yè)可以清晰地顯示出設(shè)備所在的地理位置,便于管理員對(duì)大量設(shè)備進(jìn)行管理,提高管按的效率,當(dāng)突發(fā)意外事件時(shí),管理員可以迅速地協(xié)調(diào)人員趕往意外地點(diǎn)。
本文基于物聯(lián)網(wǎng)技術(shù),開(kāi)發(fā)了這款基于OpenMV的行人檢測(cè)系統(tǒng),以STM32F429 單片機(jī)作為終端設(shè)備,利用OpenMV 進(jìn)行人像識(shí)別,通過(guò)4G 傳感器與網(wǎng)絡(luò)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互,實(shí)現(xiàn)了對(duì)視頻中人像的位置數(shù)據(jù)進(jìn)行計(jì)算判斷并生成風(fēng)險(xiǎn)等級(jí)以及周邊環(huán)境數(shù)據(jù)的測(cè)量。通過(guò)軟硬件結(jié)合的方式,在一定程度上實(shí)現(xiàn)了行人檢測(cè)設(shè)備的智能化、自動(dòng)化。但是OpenMV的準(zhǔn)確率還有待進(jìn)一步的提高,技術(shù)上每1%的提高都意味著溺水身亡風(fēng)險(xiǎn)的有效降低,有效地保障溺水者的人身安全。