針對(duì)目前開發(fā)數(shù)字化的視頻監(jiān)控設(shè)備普遍成本較高、周期較長(zhǎng)的特點(diǎn),在ARM+Linux嵌入式平臺(tái),應(yīng)用開源免費(fèi)軟件MJPG_Streamer實(shí)現(xiàn)視頻圖像的采集以及通過TCP/IP網(wǎng)絡(luò)協(xié)議傳輸?shù)缴衔粰C(jī)進(jìn)行遠(yuǎn)程顯示。同時(shí)提出了一種結(jié)合三幀差分算法和背景減法的目標(biāo)檢測(cè)算法,實(shí)現(xiàn)智能控制。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能夠進(jìn)行實(shí)時(shí)的、遠(yuǎn)程的監(jiān)控,同時(shí)能夠快速對(duì)入侵目標(biāo)進(jìn)行語(yǔ)音報(bào)警。
近年來(lái),隨著計(jì)算機(jī)技術(shù)、光電技術(shù)、數(shù)字圖像處理技術(shù)、嵌入式技術(shù)和網(wǎng)絡(luò)通信技術(shù)的不斷發(fā)展,高度集成的數(shù)字化、網(wǎng)絡(luò)化、智能化的數(shù)字視頻技術(shù)已經(jīng)了取代傳統(tǒng)的模擬視頻監(jiān)控技術(shù)。目前,世界各國(guó)對(duì)視頻監(jiān)控的需求與應(yīng)用不斷擴(kuò)大,推動(dòng)著全球視頻監(jiān)控市場(chǎng)迅速的發(fā)展。根據(jù)市場(chǎng)調(diào)查公司IMSResearch的預(yù)測(cè),全球視頻監(jiān)控市場(chǎng)將從2008年的115億美元增加至2015年的377億美元,年復(fù)合增長(zhǎng)率達(dá)到20.4%.在這一市場(chǎng)中,監(jiān)控?cái)z像頭、服務(wù)器、編碼器以及軟件是視頻監(jiān)控系統(tǒng)的主角。
本文提出一種基于ARM+Linux嵌入式平臺(tái)的的智能視頻監(jiān)控系統(tǒng),充分利用開源操作系統(tǒng)和開源免費(fèi)軟件MJPG_Streamer的特點(diǎn),實(shí)現(xiàn)了在線實(shí)時(shí)監(jiān)控。同時(shí)提出了一種目標(biāo)檢測(cè)算法,該算法在后臺(tái)運(yùn)行,實(shí)現(xiàn)了智能控制,能夠?qū)θ肭帜繕?biāo)進(jìn)行語(yǔ)音報(bào)警。該監(jiān)控適合針對(duì)一些特定場(chǎng)合的監(jiān)控。
1 系統(tǒng)硬件平臺(tái)
視頻監(jiān)控系統(tǒng)以S3C2440處理器為核心,外圍器件有Flash、SDRAM、以太網(wǎng)卡DM9000、聲卡UDA1341以及CMOS接口攝像頭OV9650,在Linux環(huán)境下對(duì)攝像頭采集到的原始圖像幀進(jìn)行處理以及壓縮,通過網(wǎng)絡(luò)協(xié)議傳輸?shù)絇C上位機(jī)進(jìn)行顯示。系統(tǒng)硬件平臺(tái)結(jié)構(gòu)如圖1所示。
2 構(gòu)建ARM+Liunx嵌入式平臺(tái)
在系統(tǒng)硬件平臺(tái)上構(gòu)建嵌入式Liunx系統(tǒng),需要引導(dǎo)程序BootLoader和Linux源碼,本系統(tǒng)需要移植bootloader源碼,然后用Jtag接口將其燒寫到Flash中,從Flash中啟動(dòng),引導(dǎo)在PC機(jī)上交叉編譯后的Linux鏡像及根文件系統(tǒng),之后啟動(dòng)Linux系統(tǒng)。
2.1 網(wǎng)卡和聲卡驅(qū)動(dòng)移植
由于在Linux內(nèi)核中提供了以太網(wǎng)卡DM9000設(shè)備驅(qū)動(dòng)功能層主要的數(shù)據(jù)結(jié)構(gòu)和函數(shù),所以在實(shí)際移植網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序時(shí),要完成的工作就是根據(jù)實(shí)際以太網(wǎng)卡DM9000參數(shù)修改相應(yīng)的內(nèi)核代碼。同樣,在Linux內(nèi)核源碼中的標(biāo)準(zhǔn)音頻編程模型已經(jīng)包含一套完整的內(nèi)核驅(qū)動(dòng)程序模塊,為各種各樣的聲卡提供了統(tǒng)一并且簡(jiǎn)單易用的編程接口,如open()、read()、ioctl(()等函數(shù),所以在聲卡UDA1341移植過程中對(duì)內(nèi)核源碼做簡(jiǎn)單修改即可。
2.2 語(yǔ)音播放功能的實(shí)現(xiàn)
完成了聲卡驅(qū)動(dòng)移植后,為了方便對(duì)音頻文件的播放,停止等操作進(jìn)行控制,還需要移植專業(yè)的高精度解碼器Madplay.Madplay是一個(gè)根據(jù)MAD算法寫的MP3播放器,解碼效果相當(dāng)出色,而且支持命令行,特別適合于在嵌入式系統(tǒng)使用。移植過程中分別編譯zlib庫(kù)、libid3tag庫(kù)和libmad庫(kù),最后編譯madplay源碼并且把編譯出來(lái)的madplay下載到系統(tǒng)中即可,之后就可以對(duì)錄制好的音頻文件進(jìn)行播放。
嵌入式平臺(tái)構(gòu)建完成后,先后用命令ifcongfig和madplay進(jìn)行網(wǎng)卡和語(yǔ)音模塊測(cè)試,從圖2可以看出Linux系統(tǒng)啟動(dòng)成功,網(wǎng)卡和聲卡驅(qū)動(dòng)配置成功了,并且可以使用Madplay播放器播放錄制的音頻文件。