,
(浙江工業(yè)大學 機械工程學院,杭州 310014)
隨著社會經(jīng)濟水平的提高和科技的快速發(fā)展,人們對于人身和經(jīng)濟財產(chǎn)的保護意識也在不斷增強[1]。但是人們除了要加強主觀意識之外,更多的還是需要一定的技術手段和設備以實現(xiàn)有效和科學的防范。圖像監(jiān)控就能夠從容應對這些情況,它在預防犯罪、調(diào)查取證、公共財產(chǎn)保護等方面都起到了不可替代的作用[2],其應用范圍主要體現(xiàn)在公共安全監(jiān)控、工業(yè)現(xiàn)場監(jiān)控、居民小區(qū)監(jiān)控等各種監(jiān)控場景中[3]。
同時隨著嵌入式的發(fā)展、4G網(wǎng)絡和Wi-Fi網(wǎng)絡的普及,利用網(wǎng)絡實現(xiàn)遠程控制這個方式也已被人們廣泛地接受,這些均為移動圖像監(jiān)控系統(tǒng)的遠程控制功能提供了保障,使用戶可以將PC端直接作為遠程監(jiān)控平臺。
本系統(tǒng)的總體方案設計如圖1所示。在TQ210開發(fā)板上通過外接的圖像采集模塊來進行實時采集圖像,通過背景減除法對采集到的連續(xù)兩幀圖片進行處理,從而實時地判斷是否有移動物體的產(chǎn)生。
當檢測到移動物體時,此時系統(tǒng)就會通過預警模塊開啟實時預警,并將采集到圖像以及視頻保存在開發(fā)板中,此時PC端用戶可以通過網(wǎng)絡連接到開發(fā)板上的Boa服務器,從而實現(xiàn)遠程監(jiān)控或者查看保存在開發(fā)板上的圖像和視頻。
圖1 總體方案設計圖
運動目標檢測是指在序列圖像中檢測出變化區(qū)域并將運動目標從背景圖像中提取出來。一般通過以下四步來實現(xiàn)運動目標檢測。
1)圖像的二值化:由于USB攝像頭采集到的圖像為RGB格式的圖像,該格式的圖像每個像素需要用3個字節(jié)表示,而YUV格式的圖像只需一個字節(jié)表示[4]。為了降低運算量,加快數(shù)據(jù)的傳輸速率,需要先把彩色(RGB)圖像轉(zhuǎn)化為黑白(YUV)圖像。轉(zhuǎn)換公式采用下式:
Gray(x,y)=0.299×R(x,y)+0.587×G(x,y)+
0.114×B
(1)
式中,Gray(x,y)為坐標(x,y)轉(zhuǎn)化后的灰度值。
將轉(zhuǎn)化后的圖像進行二值化處理,即選取一個閾值thresh與各個像素點進行比較,如果小于閾值,則為黑色,否則為白色,具體公式如下:
(2)
式中,F(x,y)為坐標(x,y)像素的二值圖值,thresh為二值圖閾值。
2)濾波去噪:由于嵌入式平臺對于算法的高度敏感性,去噪采用均值濾波。即對待處理的當前像素點(x,y),選擇一個模版,該模版由相鄰的8個像素組成,求模版中所有像素的均值作為該點像素的值,公式如下:
(3)
式中,f(x,y)—坐標(x,y)的像素值,g(x,y)—坐標(x,y)相鄰坐標的像素值。
3)背景圖像與當前圖像相減,與閥值比較
由于圖像中的所有像素已經(jīng)灰度化,故它是一個0~255的數(shù)值,故可以將當前圖像與背景圖像相對應像素的值進行相減,并將這些值相加后與預設的閥值進行比較,如果該值大于閥值就認為有移動物體產(chǎn)生,其中閥值設置的越小越敏感。具體公式如下:
diffs=F(x,y)-B(x,y)
(4)
式中,—相減后的總值,F(xiàn)(x,y)—當前圖像,B(x,y)—背景圖像。
(5)
式中,thres—設置的閥值。
4)背景建模
在本系統(tǒng)中背景建模采用動態(tài)地去實時更新背景圖像,通過當前背景圖與當前圖像進行對比判斷是否需要更新背景模型,如果需要更新,則采用加權的當前背景圖像與加權的當前圖像之和作為更新后的背景圖像,具體公式如下:
Bnew(x,y)=0.5×Bret(x,y)+(1-0.5)F(x,y)
(6)
式中,B(ret)—更新后的背景圖像,B(ret)—當前背景圖像,F(xiàn)(x,y)—當前圖像
在本系統(tǒng)的檢測移動圖像過程中首先判斷當前輸入的圖像幀是否為第一幀采集圖像。如果是第一幀采集圖像,在對其經(jīng)過圖像的二值化、濾波去噪后將其作為背景圖像,如果不是第一幀圖像,則對其經(jīng)過圖像的二值化、濾波去噪后與系統(tǒng)中的背景圖像進行對比,如果得到的值大于等于預設的閥值時,則判斷為檢測到運動目標,此時將該幀圖像作為系統(tǒng)的背景圖像并將其儲存下來,具體處理過程如圖2所示。
圖2 運動目標檢測流程圖
系統(tǒng)的終端硬件結(jié)構主要可以分為以下四部分:核心控制器、圖像采集模塊、報警模塊、Wi-Fi模塊。
核心控制器采用TQ210開發(fā)板,該開發(fā)板使用了Samsung Cortex-A8 S5PV210芯片,該CPU采用45 nm工藝制程,處理器內(nèi)部為64/32位總線結(jié)構,32 KB數(shù)據(jù)緩存和32 KB指令緩存,512 KB二級緩存,處理器主頻最高可達到1 GHz,擁有2 000 DMIPS的高性能運算能力,保證即時而順暢的執(zhí)行應用程序,并且包含了很多強大的硬件編解碼功能[5]。TQ210核心版采用高密度10層的沉金工藝,尺寸為63×53×7 mm,并配置了1 G主頻、1 G DDR2 RAM、1 G SLC NandFLASH(可擴展至2 G),采用5 V供電,并且引出了各種常用的接口資源。如本系統(tǒng)中需要用到的4路USB_HOST 2.0輸出口,1路USB_OTG 2.0下載接口等。
圖像采集模塊采用中星微ZC301P攝像頭。這款攝像頭采用CMOS圖像感光芯片,內(nèi)置JPEG硬件壓縮引擎,具有USB1.0接口。其最大分辨率可達VGA分辨率即640×480,最大幀頻可達30 fps,并且支持靜態(tài)與動態(tài)視頻的采集。同時該芯片在自動曝光、增益、白平衡、色彩、噪點控制、動態(tài)縮放以及邊緣抗鋸齒算法等方面都有獨到之處,可以獲得清晰度很高的視頻圖像[6]。
報警模塊采用Wolfson Microelectronics音頻轉(zhuǎn)換芯片WM8960,WM8960是一款低功耗、高質(zhì)量的立體編碼解碼器,專為便攜式數(shù)字音頻應用設計。S5PV210芯片通過I2S和I2C與音頻編解碼芯片WM8960進行交互,其中I2S只負責傳輸聲音數(shù)據(jù),而I2C負責傳輸控制信息(如音量調(diào)節(jié)、靜音等),WM8960負責編解碼[7]。WM8960芯片對外引出了1個駐極體話筒、2個功放接口、1個3.5 mm接口的PHONE、1個3.5 mm接口的MIC。
Wi-Fi模塊采用一款基于美國Atheros AR9271為控制器芯片的無線網(wǎng)卡,該網(wǎng)卡具有超強的穩(wěn)定性,完美解決信號虛高、掉線、連接不上等問題[8]。AR9271 WLAN USB單芯片采用全新的架構,集成了可運行更多片上無線LAN功能的CPU與存儲器。同時該網(wǎng)卡外置高增益6dbi全向天線,輕松實現(xiàn)了遠距離傳輸,并且符合IEEE802.11g、IEEE802.11b、IEEE802.11n標準,無線傳輸速率可達150 MBPS;支持WEP、WPA/WPA2、WPA-PSK/WPA2-PSK等高級加密與安全機制;提供簡便的配置、監(jiān)控程序;支持Linux操作系統(tǒng)。
開發(fā)板采用的是嵌入式Linux系統(tǒng)作為操作系統(tǒng)平臺。該系統(tǒng)具有模塊化程度高、源碼公開、安全性及可靠性好、擁有較多的優(yōu)秀開發(fā)工具、有很好的網(wǎng)絡文件系統(tǒng)支持、能支持x86、ARM等多種體系結(jié)構的微處理器等優(yōu)點[9]。Linux系統(tǒng)由bootloader、kernel、rootfs這三部分組成,所以搭建嵌入式Linux操作系統(tǒng)需要完成交叉編譯環(huán)境的搭建、U-Boot的移植、Linux內(nèi)核的裁剪與編譯、文件系統(tǒng)的制作,然后在Linux開發(fā)環(huán)境上完成了系統(tǒng)的應用程序設計。其中在內(nèi)核的裁剪與編譯過程中,為了能夠?qū)崿F(xiàn)警報聲的播放、圖像的采集以及連接無線網(wǎng)絡的功能,需要將內(nèi)核配置中聲卡、攝像頭以及無線網(wǎng)卡的相關選項進行配置。之后需要編寫這些模塊的應用程序,但由于Linux系統(tǒng)的開源性,很多模塊的應用程序只需通過移植就可以直接使用。
首先移植的是報警模塊中的聲音播放程序,選用了Madplay音樂播放程序。移植該程序需要用到以下源碼包libid3tag-0.15.1b.tar.gz、zlib-1.1.4.tar.gz、madplay-0.15.2b.tar.gz、libmad-0.15.1b.tar.gz。由于libid3tag庫的編譯過程中需要依賴zlib庫文件,所以必須先對zlib源碼包通過解壓、配置、編譯、安裝4個步驟進行編譯。但由于程序的編譯與運行在兩個不同架構的平臺上實現(xiàn),所以通過修改解壓目錄中的Makefile文件實現(xiàn)交叉編譯的功能。然后按照相同的步驟編譯另外3個源碼包,但在編譯libmad源碼包的過程中需要將Makefile文件第129行中fforce-mem指令刪掉。最后將編譯好的庫文件和Madplay應用程序分別復制到開發(fā)板的/lib目錄和/sbin目錄中。
其次移植Wi-Fi模塊中用于連接無線網(wǎng)絡的wpa_supplicant應用程序。移植該程序需要用到wpa_supplicant-2.0.tar.gz、openssl-1.0.1d.tar.gz這兩個源碼包以及AR9271芯片需要的固件htc_9271.fw。由于wpa_supplicant源碼包的編譯需要依賴openssl庫,因此需要先編譯openssl源碼包。在對openssl庫進行編譯的過程中,同樣需要修改Makefile文件使其實現(xiàn)交叉編譯。然后將編譯出來的頭文件和庫文件分別復制到虛擬機交叉編譯工具鏈的頭文件和庫文件中,同時將庫文件復制到開發(fā)板的/lib目錄中。接著對wpa_supplicant源碼包進行編譯,在編譯過程中需要在配置文件.config內(nèi)加上一行命令代碼:CONFIG_LIBNL32=y,并修改Makefile文件中的一些內(nèi)容。編譯完成后將usr/local/sbin目錄中所有生成的文件都復制到開發(fā)板的/bin目錄內(nèi),并將生成的應用程序wpa_supplicant復制到開發(fā)板/var/run/目錄中,以及下載的固件htc_9271.fw復制到開發(fā)板的/lib/firmware目錄中,最后在開發(fā)板的/etc目錄中創(chuàng)建配置文件wpa_wpa2.conf,配置文件具體內(nèi)容如下:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="Wi-Fi賬戶名"
psk="Wi-Fi密碼"}
然后移植用于檢測是否有移動物體產(chǎn)生的Motion算法應用程序。移植該程序需要用到motion-3.2.12.tar.gz和ffmpeg-0.5.1.tar.gz這兩個源碼包。為了使其支持錄制視頻功能,所以需要先對ffmpeg源碼包編譯。在對ffmpeg-0.5.1.tar.gz源碼包的編譯過程中,需要在配置生成Makefile文件時額外輸入以下命令代碼:cross-prefix=arm-linux-、arch=arm、enable-shared。在編譯完成后,將/lib目錄中的庫文件復制到開發(fā)板的/lib目錄下。接著移植motion應用程序,由于本系統(tǒng)中motion程序需要使用錄制視頻功能,但不需要使用數(shù)據(jù)庫,所以在配置生成Makefile文件時需要輸入without-mysql、with-ffmpeg=ffmpeg/_install和without-pgsql這三條命令代碼。將編譯好的motion應用程序和配置文件motion-dist.conf分別復制到開發(fā)板/sbin目錄和/etc目錄中。并通過修改配置文件motion-dist.conf中的關鍵參數(shù)threshold、videodevice以及target_dir來配置motion的使用方式。
最后移植用于遠程管理和查看監(jiān)控系統(tǒng)的Boa服務器。移植該程序需要用到boa-0.94.13.tar.gz源碼包,在對Boa編譯的過程中,需要將util.c文件中第100行指令代碼修改為time_offset=0,并修改生成的Makefile文件中一些內(nèi)容,使其進行交叉編譯。最后編譯完成后將生成的Boa應用程序復制到開發(fā)板的/sbin目錄內(nèi),同時將配置文件boa.conf復制到開發(fā)板的/etc/boa目錄下。
WEB客戶端用戶界面在如圖3所示。該網(wǎng)頁可以網(wǎng)絡連接開發(fā)板上BOA服務器。BOA服務器是一個小巧高效的WEB服務器,但其只能進行一些簡單的網(wǎng)頁請求[10],而一些更復雜的設備操作無法實現(xiàn),故瀏覽器端口的網(wǎng)頁為了能夠進行復雜的設備操作需要通過BOA服務器與外部應用程序之間的接口標準CGI來實現(xiàn)[11]。具體實現(xiàn)過程如圖4所示。
圖3 WEB客戶端界面 圖4 WEB客戶端操作實現(xiàn)過程
由于該系統(tǒng)針對的是家居室內(nèi)移動物體的檢測,所以本實驗在室內(nèi)進行測試。將已經(jīng)連接好攝像頭的開發(fā)板放置于室內(nèi)的某個地方,當有物體進入攝像頭的拍攝區(qū)域時,系統(tǒng)會檢測到有移動物體產(chǎn)生,就會開始發(fā)出警報聲,用戶可以如圖5所示的頁面進行實時查看監(jiān)控情況并進行相應的處理,而如果用戶無法及時進行監(jiān)控時,則在如圖6所示的頁面可以在事后查看開發(fā)板保存下來的圖片以及視頻。
在本系統(tǒng)中,影響檢測正確率的主要是對于閥值的選取,選取不同的閥值閥值,對于系統(tǒng)的敏感性有很大的差別,即能
圖5 實時監(jiān)控頁面 圖6 移動圖像查看頁面
檢測到物體的大小。由于實驗環(huán)境處于室內(nèi),所以將閥值選取為1500,此時系統(tǒng)檢測的目標大小正好適合人類。系統(tǒng)經(jīng)過100次測試后發(fā)現(xiàn),此時系統(tǒng)運動物體檢測也不是100%正確的,會產(chǎn)生一定的漏檢和誤檢,具體情況如下表1所示。
表1 實驗檢測結(jié)果
經(jīng)過分析,發(fā)現(xiàn)漏檢產(chǎn)生的因素主要是:運動物體偏小以及運動速度較快;運動物體顏色與背景顏色較接近以及室內(nèi)光線偏暗。誤檢產(chǎn)生的原因主要是攝像頭產(chǎn)生移動。
本文針對入室盜竊,非法入侵等違法行為,設計了一種移動圖像監(jiān)控系統(tǒng)。該系統(tǒng)不僅實現(xiàn)了傳統(tǒng)的視頻實時監(jiān)控功能,還實現(xiàn)了自動預警以及圖像、視頻保存功能,并且在圖像內(nèi)將移動物體通過方框標記出來,讓用戶更加容易辨識或者事后取證。整個系統(tǒng)具有體積小、功耗低、系統(tǒng)穩(wěn)定,具有一定的智能性,擁有良好的應用前景。
參考文獻:
[1] 蔣 坤. 智能家居關鍵技術研究[D]. 寧波:寧波大學, 2015.
[2] 蘇凡江. 基于Linux的動態(tài)圖像監(jiān)控系統(tǒng)的設計與實現(xiàn)[D]. 北京:中國地質(zhì)大學(北京), 2012.
[3] 黃凱奇, 陳曉棠, 康運鋒,等. 智能視頻監(jiān)控技術綜述[J]. 計算機學報, 2015(6):1093-1118.
[4] 楊 耿,和衛(wèi)星. 運動目標圖像識別與跟蹤系統(tǒng)的研究[J]. 計算機測量與控制, 2005, 13(3):267-269.
[5] 徐 超. 三星與Intrinsotu公司聯(lián)手打造ARM CORTEX-A8處理器[J]. 通信世界, 2009(29).
[6] 楊 振, 徐愛鈞, 吳子平. 基于S3C6410的圖像采集與無線傳輸系統(tǒng)的設計[J]. 電腦開發(fā)與應用, 2011, 24(10):20-22.
[7] 劉 麗. 嵌入式WM8960音頻驅(qū)動及多線程播放器的設計[D].哈爾濱: 哈爾濱工業(yè)大學, 2015.
[8] Curtis J W, Parks R A. Using the TP-LINK TL-WN722N on CentOS 6.2 x86_64[J]. 2015.
[9] 宋寶華. Linux設備驅(qū)動開發(fā)詳解[M]. 北京:機械工業(yè)出版社, 2015.
[10] 金 勇. 基于ARM9的Web服務器Boa的軟、硬件設計[J]. 電子世界, 2013(13):83-84.
[11] 黃高見, 陳名松. 基于Linux Web服務器的遠程控制系統(tǒng)[J]. 桂林電子科技大學學報, 2017, 37(1):25-30.