周岳斌,楊 沫,曹煜暉
(湖北文理學院機械工程學院,湖北 襄陽 441053)
視頻監(jiān)控系統(tǒng)廣泛應(yīng)用于工廠生產(chǎn)、交通、行政辦公大樓和家庭安防等各領(lǐng)域[1-2]。早期的模擬視頻監(jiān)控方式是通過攝像頭獲取圖像,然后在顯示器上顯示。雖然可以監(jiān)測小范圍區(qū)域內(nèi)情況,但局限性太大,排查和維護也比較費時費力;而且視頻存儲一般是在盒式錄像帶中,無法滿足快速查看。近年來,數(shù)字視頻監(jiān)控得到了前所未有的發(fā)展,嵌入式網(wǎng)絡(luò)視頻監(jiān)控漸漸走入大眾視野,各個領(lǐng)域的視頻技術(shù)都有所提高,同時視頻監(jiān)控支持的功能越來越多,相應(yīng)監(jiān)控產(chǎn)品的研發(fā)、制造和應(yīng)用已經(jīng)成為行業(yè)發(fā)展的方向和新增長點,視頻監(jiān)控系統(tǒng)逐步向移動化、全數(shù)字化、智能化方向發(fā)展。目前,視頻監(jiān)控系統(tǒng)主要有2類:一種是以數(shù)控硬件存儲錄像數(shù)據(jù)為核心的視頻監(jiān)控系統(tǒng);另一種是基于嵌入式實時多任務(wù)操作系統(tǒng),以嵌入式Web服務(wù)器為核心的視頻監(jiān)控系統(tǒng)[3-5]。
為實現(xiàn)高質(zhì)量高智能化的視頻監(jiān)測,通過計算機視覺技術(shù)將圖像處理與人臉識別的相關(guān)算法結(jié)合到監(jiān)控系統(tǒng)中,設(shè)計了一種具有人臉跟蹤功能的無線視頻監(jiān)控系統(tǒng),具有視頻采集、人臉識別和傳輸?shù)榷喾N功能。系統(tǒng)利用MicroPython計算機視覺庫,對采集的圖像進行濾波處理,實現(xiàn)更優(yōu)質(zhì)圖像效果,可滿足對于監(jiān)測場景的智能高效分析。采用卷積神經(jīng)網(wǎng)絡(luò)模型(convolutional neural network,CNN)進行機器學習和人臉識別,然后將整理后的監(jiān)控圖像以網(wǎng)絡(luò)通信方式傳輸?shù)绞謾C終端,進行實時監(jiān)控,同時驅(qū)動舵機云臺進行人臉追蹤[6]。
系統(tǒng)結(jié)構(gòu)如圖1所示,主要包括圖像采集模塊、主控模塊、舵機控制器模塊、舵機云臺模塊、Wi-Fi通信模塊、報警模塊和客戶端。圖像采集模塊將采集的視頻數(shù)據(jù)進行處理與識別,然后通過Wi-Fi通信模塊將處理后的視頻數(shù)據(jù)傳輸至客戶端,實現(xiàn)實時監(jiān)控的功能。當識別到人臉后,主控模塊將識別的人臉位置信息傳輸至驅(qū)動模塊。通過解碼處理,驅(qū)動模塊將接收到的位置信息轉(zhuǎn)變?yōu)槎鏅C的控制信息傳輸至舵機云臺,實現(xiàn)同步控制,同時驅(qū)動報警模塊報警[7]。
圖1 系統(tǒng)結(jié)構(gòu)
圖像采集模塊采用MT9V034光感芯片,MT9V034具有全局快門和高動態(tài)范圍操作。在全局快門的模式下,可拍攝清楚高速運動中的物體,避免了運動模糊對系統(tǒng)產(chǎn)生的影響。MT9V034對于6 μm大小的像素,其有源成像像素陣列為752 H×480 V,能夠達到60幀/s的圖像采集速度。MT9V034可通過簡單的雙線串行接口進行編程,可設(shè)置幀大小、曝光時長、增益等參數(shù)。默認模式以 60幀/s的速度輸出寬VGA大小的圖像。
主控模塊采用OpenMV4控制板,OpenMV4是一款低價、可擴展、易于開發(fā)的機器視覺模塊。搭載了MicroPython解釋器,可在嵌入式芯片上運行Python3對底層進行編程。其核心芯片為ARM Cortex_M7系列的STM32H743VI,主頻為400 MHz,運行內(nèi)存為1 MB,有2 MB的Flash。所有的I/O引腳輸出為3.3 V并且有5 V電壓耐受。OpenMV4提供的μSD卡槽擁有100 Mbit/s讀寫速度,為監(jiān)控視頻提供存儲單元。OpenMV4有1個SPI總線,速度高達54 Mbit/s,可將OpenMV4提取的圖像流數(shù)據(jù)傳給Wi-Fi通信模塊;此外,OpenMV4還有1個I2C總線、1個CAN總線、1個異步串口總線,可用來與舵機控制器模塊通信[8]。
Wi-Fi通信模塊采用Microchip公司ATWINC 1500,該芯片是IEEE 802.11b/g/n IoT網(wǎng)絡(luò)控制器SoC。通過SPI連接到OpenMV4實現(xiàn)Wi-Fi和網(wǎng)絡(luò)功能。ATWINC 1500以最少的資源要求連接到任何AVR和SMART MCU。ATWINC 1500可提供高達72 Mbit/s的PHY吞吐量,具有完全集成的功率放大器、LNA、開關(guān)和電源管理。ATWINC 1500還提供內(nèi)部閃存和多個外設(shè)接口,包括UART和SPI接口。ATWINC 1500的視頻流傳輸速度可達48 Mbit/s,能有效提高網(wǎng)絡(luò)視頻監(jiān)控的實時性,可通過OpenMV4固件內(nèi)部的network module進行編程控制。利用MicroPython的BSD socket網(wǎng)絡(luò)接口與TCP/UDP協(xié)議進行數(shù)據(jù)的發(fā)送和接收,省去了寫底層驅(qū)動的環(huán)節(jié)[9-10]。
舵機控制器與云臺模塊采用以STM32單片機為處理核心的Pyboard控制板,作為舵機云臺控制器。Pyboard是一個運行MicroPython解釋器功能強大的開發(fā)板,可在Windows、Mac和Linux平臺上做程序開發(fā)。MicroPython是對Python編程語言的完全重寫,以適應(yīng)在微控制器上的運行。它包括許多軟件配置的優(yōu)化,以便有效運行并使用非常少的RAM。MicroPython實際上是運行在Pyboard上的一個操作系統(tǒng),其內(nèi)置的pyb庫包含了控制電路板上基本所有可用外設(shè)的功能和類,如UART、SPI、I2C、ADC和DAC。縮短了嵌入式程序調(diào)試開發(fā)的時間周期。Pyboard通過Micro USB連接到PC端,可通過USB閃存驅(qū)動器實現(xiàn)保存與修改Python程序腳本的功能。
人臉追蹤即攝像頭的視野方位跟隨人臉做實時調(diào)整,當人要走出攝像頭視野范圍的時候,攝像頭云臺會自動調(diào)整攝像頭的角度來跟隨人臉的位置。為實現(xiàn)人臉追蹤的功能,系統(tǒng)通過1塊Pyboard開發(fā)板控制2個SG90舵機以調(diào)整攝像頭視野方位。一個舵機實現(xiàn)俯仰的角度調(diào)整(俯仰范圍0~90°),另一個舵機實現(xiàn)方位的角度調(diào)整(方位范圍0~180°)。
系統(tǒng)軟件設(shè)計主要包括2部分:一部分是主控模塊的程序設(shè)計,負責圖像采集、人臉識別、人臉位置計算和視頻文件打包的功能;另一部分是舵機控制器模塊的程序設(shè)計,主要負責云臺控制。
系統(tǒng)工作流程如下:
a.采用高靈敏度高性能感光元件MT9V034采集監(jiān)測區(qū)域信息。
b.利用訓練好的改進卷積神經(jīng)網(wǎng)絡(luò)(CNN)識別圖像里面的人臉。如果識別到人臉,則在圖像里將人臉標注,然后將標注后的圖像通過SPI協(xié)議傳輸給ATWINC 1500 Wi-Fi通信模塊,且將人臉與攝像頭的相對位置轉(zhuǎn)換成舵機偏轉(zhuǎn)角度以串口通信的方式發(fā)送給Pyboard控制模塊。如果沒有識別到人臉,則直接將圖像通過SPI協(xié)議傳輸給ATWINC 1500 Wi-Fi通信模塊。實現(xiàn)實時顯示的功能。
c.在識別到人臉的情況下,Pyboard控制板會驅(qū)動報警模塊報警,同時會將接收到的舵機偏轉(zhuǎn)角度轉(zhuǎn)換成對應(yīng)的PWM脈沖調(diào)制信號,通過PID算法控制俯仰電機與方位電機的偏轉(zhuǎn)動作,實現(xiàn)人臉實時追蹤。當沒有識別到人臉時,Pyboard控制板則會停止PWM脈沖調(diào)制信號的輸出。
d.ATWINC 1500的Wi-Fi通信模塊初始化時自動被設(shè)置成ap模式(熱點模式),終端設(shè)備可以通過連接Wi-Fi的方式連接到ATWINC 1500創(chuàng)建的網(wǎng)絡(luò)。用戶可以在瀏覽器中輸入預(yù)先設(shè)定好的IP網(wǎng)址,來查看OpenMV4提供的視頻信息。
人臉識別算法采用圖2所示的改進卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[11-12]。第1層是臉部圖像輸入層,像素規(guī)格為32×32。第2層是擁有20個大小為14×14特征圖的卷積層,采用20個大小為5×5的濾波器來提取圖片特征。第3層為擁有45個大小為5×5特征圖、步長為2×2的卷積層,用來進一步提取特征,即進一步抽象圖片。第4層為有240個神經(jīng)元的全連接層,其作用是通過從圖片中提取的特征識來別人臉,后面是ReLU激活層與dropout遺忘層,用來激活神經(jīng)元與防止過擬合現(xiàn)象。第5層為全連接層,具體神經(jīng)元個數(shù)按人數(shù)來定。最后一層分類器采用非線性分類能力更強的softmax分類器[13-14]。
圖2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
實驗數(shù)據(jù)采用AR面部數(shù)據(jù)庫,包含了116人的3 288張臉部圖像,其像素大小為120×165,且面部表情、光照強度和遮擋層度都有所不同。因為AR數(shù)據(jù)庫里的圖片都是人為事先處理好的灰度化圖片數(shù)據(jù)庫,所以在將數(shù)據(jù)喂入神經(jīng)網(wǎng)絡(luò)之前,不必進行常規(guī)的高斯濾波處理等其他降噪處理。但在實驗之前,需要將圖片按神經(jīng)網(wǎng)絡(luò)架構(gòu)進行調(diào)整,然后才能喂入網(wǎng)絡(luò)中進行訓練。
通過image庫的resize函數(shù)將圖片的尺寸縮小至神經(jīng)網(wǎng)絡(luò)的入口尺寸32×32。其python語句為:img=image.resize(get_image,(32,32))。其中img為結(jié)果變量,其尺寸為32×32;resize為image庫的尺寸修改函數(shù),用來改變?nèi)我獬叽绲膱D片至指定規(guī)格;get_image為從AR數(shù)據(jù)庫里抽取的1張圖像。
將灰度值控制在[0,1]之間。神經(jīng)網(wǎng)絡(luò)在訓練的過程中,計算數(shù)據(jù)量非常龐大,因此在數(shù)據(jù)輸入之前需將數(shù)據(jù)扁平化,從而減小處理器的計算負擔。因為AR庫圖片每個像素點的值位于[0,255]之間,因此將每個像素點的值除以255即可將圖片的像素點壓縮至[0,1]之間。最終進行OpenMV4模塊的視頻流測試,C1層、C2層、特征維數(shù)分別采用20、45、240的參數(shù)配置。
首先對OpenMV4主控模塊做數(shù)據(jù)流人臉識別測試。由于OpenMV4是以MicroPython翻譯器為操作系統(tǒng)的開發(fā)板,因此只需要將訓練好的神經(jīng)網(wǎng)絡(luò)文件燒錄到開發(fā)板內(nèi)存,然后調(diào)用MicroPython固件庫中自帶的sensor庫來設(shè)置攝像頭的一系列參數(shù),如圖片尺寸、灰度或彩色圖、白平衡、曝光時長等。
接著將提取的圖片通過訓練好的神經(jīng)網(wǎng)絡(luò)識別有無人臉圖像。如果檢測到人臉,則采用image庫的繪圖功能將人臉標注出來;如果沒有,則不做處理;最后以USB數(shù)據(jù)線將圖像傳輸至電腦端顯示。
Pyboard開發(fā)板同時控制2個SG90舵機模塊來實現(xiàn)人臉追蹤。Pyboard通過輸出PWM來實現(xiàn)對SG90舵機云臺的控制,不同占空比與不同的脈沖寬度對應(yīng)著SG90舵機的不同角度位置。經(jīng)過測試,SG90具體角度控制參數(shù)如表1所示。
表1 SG90角度控制參數(shù)
為了測試微控制器輸出不同PWM所對應(yīng)的舵機角度,設(shè)定輸出脈沖頻率為50 Hz,即基脈沖為20 ms,分別給方位舵機0.5 ms、1.5 ms、2.5 ms的高電平脈沖,方位舵機對應(yīng)方位如圖3所示;分別給俯仰舵機0.5 ms、1.0 ms、1.5 ms的高電平脈沖,俯仰舵機對應(yīng)俯仰角度如圖4所示;不同角度的人臉跟蹤測試效果如圖5所示。
圖3 不同PWM方位舵機對應(yīng)方位
圖4 不同PWM俯仰舵機對應(yīng)俯仰角度
圖5 不同角度的人臉跟蹤測試
網(wǎng)頁顯示功能是OpenMV4模塊通過SPI通信協(xié)議控制ATWINC 1500通信模塊來實現(xiàn)。
測試步驟如下:
a.將ATWINC 1500通信模塊與OpenMV4主控模塊連接,然后為燒錄好程序的OpenMV4模塊供電,這時2個模塊會自動進行系統(tǒng)初始化,OpenMV4主控模塊的LED燈會先閃紅燈然后亮白燈最后亮綠燈,表示初始化完畢。
b.用手機或電腦端連接名為OpenMV4的Wi-Fi網(wǎng)絡(luò),輸入預(yù)先設(shè)置的密碼(可在程序里面修改)。
c.打開瀏覽器,在瀏覽器里輸入192.168.1.1:8080網(wǎng)站。前面的192.168.1.1為ATWINC 1500模塊的IP地址,后面的8080為端口號。
d.等待接入成功后,網(wǎng)頁就會顯示此時攝像頭正在拍攝的監(jiān)控視頻。
采用嵌入式處理器為核心的無線視頻監(jiān)控系統(tǒng),利用MicroPython計算機視覺庫進行圖像處理,無線圖像傳輸提升了監(jiān)控系統(tǒng)的靈活性與實時性,省去了大量布線工作,只要Wi-Fi模塊連接到路由器就可以查看監(jiān)控圖像。同時,人臉追蹤功能也提高了視頻數(shù)據(jù)的有效性和監(jiān)控安全性。系統(tǒng)結(jié)合了嵌入式、網(wǎng)絡(luò)化和圖像處理技術(shù)的優(yōu)勢,具有智能化的操作管理,實現(xiàn)了小體積、低成本和高可靠性的視頻監(jiān)控功能。