劉瑞男 劉建國 付天舒
摘 要:在開發(fā)監(jiān)控軟件前,需要驗證圖像處理算法的正確行和可行性,但直接調(diào)用微機和攝像設(shè)備的底層硬件比較復(fù)雜。這里介紹一種通過Matlab軟件設(shè)計USB接口的視頻監(jiān)控方案。經(jīng)實驗驗證,這種方法簡單易行,非常適合做監(jiān)控與圖像處理算法的前期驗證工作。
關(guān)鍵詞:Matlab;USB接口;視頻監(jiān)控;圖形用戶界面
1 視頻監(jiān)控技術(shù)
視頻監(jiān)控是保障社會生活與生產(chǎn)安全的重要方法,通常視頻監(jiān)控由監(jiān)視設(shè)備、傳輸設(shè)備、存儲單元、控制單元和顯示設(shè)備設(shè)備組成。按技術(shù)發(fā)展分類,可分為:第一代模擬監(jiān)控系統(tǒng)、第二代數(shù)字化硬盤監(jiān)控系統(tǒng)和第三代網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)。模擬監(jiān)控系統(tǒng)結(jié)構(gòu)復(fù)雜、設(shè)備繁多,特別是在需要遠(yuǎn)距離傳輸時,架設(shè)成本高。第二代數(shù)字化硬盤監(jiān)控系統(tǒng)可以通過現(xiàn)有的電信通信網(wǎng)絡(luò)傳輸數(shù)據(jù),解決了遠(yuǎn)距離傳輸問題,但實時性差、延時長、多路實時監(jiān)控困難。第三代網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)利用圖像處理技術(shù)、嵌入式技術(shù)和寬帶網(wǎng)絡(luò)把監(jiān)控中心和監(jiān)控終端目標(biāo)融合為一個整體,實現(xiàn)了監(jiān)控的遠(yuǎn)程化、實時化和集成化。
由于第三代網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)的興起,視頻監(jiān)控的開發(fā)方案也變得多樣化、平臺化。以前開發(fā)視頻監(jiān)控系統(tǒng)的開發(fā)難度較高,其是純硬件開發(fā)或利用調(diào)用硬件能力強的少量上位機開發(fā)軟件開發(fā),如VC++等,硬件接口包括復(fù)合視頻接口、二分量視頻接口、色差分量視頻接口、VGA接口和DVI接口?,F(xiàn)在可以在PC平臺上利用通用的USB接口進(jìn)行視頻通信,開發(fā)軟件也有更多的選擇,這樣就降低了開發(fā)和調(diào)試工作的難度,更有利于家用和小型監(jiān)控系統(tǒng)的開發(fā)。這里就介紹一種基于Matlab軟件的USB接口視頻監(jiān)控設(shè)計方案。
2 USB接口的驅(qū)動
USB接口的全稱是通用串行總線,是一種計算機通信的串口總線標(biāo)準(zhǔn),具有的熱拔插、體積小、標(biāo)準(zhǔn)統(tǒng)一、可串接的優(yōu)點。Matlab軟件可以對USB接口進(jìn)行調(diào)用,是一款基于矩陣計算的數(shù)學(xué)軟件,但其具有強大的、多樣的開發(fā)工具箱,利用工具箱可以方便的進(jìn)行科學(xué)研究和工程設(shè)計。其也可以設(shè)計GUI界面的應(yīng)用程序,并可以編譯成可執(zhí)行文件,在通用的PC平臺上使用。Matlab工具箱中提供了調(diào)用USB攝像頭的命令,如表1所示:
在驅(qū)動USB攝像頭之前必須了解它的相關(guān)參數(shù),可以通過產(chǎn)品說明書查閱,也可以利用Matlab提供的imaqhwinfo()函數(shù)查詢攝像頭參數(shù),包括圖片的默認(rèn)格式、設(shè)備名稱、設(shè)備號碼、圖像目標(biāo)的構(gòu)建方式、所有可支持的圖像格式和圖像分辨率等等。一般情況下,后面就是視頻圖像的預(yù)覽、采集和保存這三個過程。Videoinput(a1,a2,a3)用于建立一個新的視頻對象,參數(shù)a1是適配器的名稱,a2是設(shè)備號碼,a3是需要采集的視頻格式。利用preview(b1,b2)可以在PC機打開圖像的預(yù)覽窗口,參數(shù)b1是前面建立的視頻對象,參數(shù)b2是預(yù)覽窗口中對象的句柄。利用imwrite(c1,c2,c3)命令可以保存矩陣格式的視頻圖像在PC機中,參數(shù)c1是待保存的圖像矩陣,參數(shù)c2是保存的文件名,c3是圖像文件格式。
3 系統(tǒng)設(shè)計與實驗調(diào)試
首先要組建硬件平臺,然后在這個平臺的基礎(chǔ)上開發(fā)監(jiān)控軟件,在進(jìn)行實驗測試,進(jìn)而完善程序?;A(chǔ)的硬件平臺很容易組建,只需要一個免驅(qū)的USB攝像頭和一臺PC機。圖1是系統(tǒng)結(jié)構(gòu)圖。首先要驅(qū)動USB攝像頭,把采集的視頻信息通過USB接口發(fā)送到PC機,PC機進(jìn)行視頻信號的預(yù)處理,再通過圖像處理算法判斷是否達(dá)到報警要求,達(dá)到報警要求時進(jìn)行報警。
程序設(shè)計要考慮到環(huán)境的背景變化因素。當(dāng)環(huán)境背景有微弱的明暗變化時,畫面的所有像素亮度值之和就會改變很大,所以要有算法來去除背景環(huán)境的變化因素,去除背景環(huán)境的變化因素的方法是當(dāng)前計算的RGB像素的變化值之和小于某一值時,忽略這個像素的RGB亮度變化值。在系統(tǒng)運行開始時取一幀圖像作為標(biāo)準(zhǔn)幀圖像,這一幀標(biāo)準(zhǔn)幀圖像用于進(jìn)行亮度閾值比較。在程序設(shè)計時遇到兩個難點,分別是攝像頭分辨率的選取程序和音頻報警程序,這里分別給出關(guān)鍵的程序代碼并解釋。在攝像頭分辨率選取程序中用的控件是下拉列表框控件,控件名是popupmenu3,首先用get命令得到popupmenu3控件的所有列表,再用get命令得到popupmenu3控件當(dāng)前備選的字符的索引號val1,通過索引號val1把當(dāng)前選的的字符賦給字符串變量m。在使用videoinput命令驅(qū)動輸入的視頻設(shè)備時使用字符串變量m做為視頻設(shè)備的分辨率參數(shù)。在播放報警音頻時,首先用wavread命令導(dǎo)入報警聲音文件,然后用audioplayer命令生成生成音頻數(shù)據(jù),再用play命令按照剛才生成的音頻數(shù)據(jù)的固有格式播放報警音頻。
創(chuàng)建Matlab的GUI程序,加入所需控件,寫入程序代碼后,生成視頻監(jiān)控程序。軟件界面如圖2所示,其中分辨率下拉列表框可以選擇攝像頭支持的分辨率,整體閾值參數(shù)可以調(diào)整報警的靈敏度,整體閾值參數(shù)越小,靈敏度越高,單像素像素參數(shù)可以調(diào)整背景光的影響程度,單像素像素參數(shù)越大,越不容易受到背景光的影響。
在實驗時發(fā)現(xiàn)系統(tǒng)剛啟動時由于成像設(shè)備有一個亮度偏低的初始狀態(tài),不能把這一時期的某一幀圖像作為標(biāo)準(zhǔn)幀。通過實驗發(fā)現(xiàn)在40幀以后的圖像比較穩(wěn)定,所以可以選擇40幀以后的一幀圖像作為標(biāo)準(zhǔn)幀進(jìn)行閾值比較。通過實驗發(fā)現(xiàn)單像素參數(shù)大于20時,對背景光的抗干擾性比較好,但這一數(shù)值也不宜大于50,過大后會影響整體閾值參數(shù)的比較結(jié)果。
4 結(jié)束語
通過實驗可以看出Matlab的軟件工具箱可以非常方便地驅(qū)動usb接口攝像頭,也可以驅(qū)動聲卡發(fā)出設(shè)定的報警聲音。利用其圖形用戶界面設(shè)計功能進(jìn)行監(jiān)控軟件的開發(fā)簡單易行。這種設(shè)計方案可以繞過攝像頭和微機的底層硬件驅(qū)動工作,在真正開發(fā)監(jiān)控系統(tǒng)之前,非常適合做監(jiān)控與圖像處理算法的前期驗證工作。
參考文獻(xiàn)
[1]李洪.城域視頻監(jiān)控系統(tǒng)事務(wù)中心平臺軟件設(shè)計[D].杭州:浙江大學(xué),2014.
[2]周燦,余仲秋,張暉.畸變校正與幀差法相結(jié)合的運動目標(biāo)檢測[J].光學(xué)技術(shù),2014(6).
[3]鐘彬.視頻監(jiān)控系統(tǒng)及智能視頻監(jiān)控技術(shù)分析[J].電子技術(shù)與軟件工程,2014(23).
[4]萬宇平,羅曉琴,蔣金峰.微光探測裝置自成暗室設(shè)計開發(fā)[J].光學(xué)儀器,2014(5).
[5]趙雨境,劉海英.智能家居視頻監(jiān)控系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2015(1).