摘 要: 提出了一種通用的基于4G網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方法,介紹了系統(tǒng)的軟、硬件構(gòu)成,重點(diǎn)研究了視頻采集、視頻解碼、圖像實(shí)時(shí)顯示、存儲(chǔ)和播放等關(guān)鍵視頻技術(shù),同時(shí)給出了Windows平臺(tái)下基于OpenCV的播放器設(shè)計(jì)和基于MFC的軟件界面設(shè)計(jì)的具體實(shí)現(xiàn)方法。與傳統(tǒng)的監(jiān)控系統(tǒng)相比,采用4G網(wǎng)絡(luò)傳輸確保了視頻的清晰度和流暢性,移動(dòng)物體檢測(cè)報(bào)警功能可防止監(jiān)控人員錯(cuò)過(guò)重要信息,具有廣闊的應(yīng)用前景。
關(guān)鍵詞: 4G網(wǎng)絡(luò);視頻監(jiān)控;移動(dòng)檢測(cè);異常報(bào)警
0 引言
自2013年12月4日中國(guó)移動(dòng)獲得中國(guó)國(guó)內(nèi)第一個(gè)4G牌照以來(lái),我國(guó)絕大部分城市的居民已經(jīng)可以享受到LTE技術(shù)帶來(lái)的便利。隨著4G網(wǎng)絡(luò)的普及和流量資費(fèi)的不斷降低,無(wú)線視頻監(jiān)控能夠在特殊押運(yùn)、資源監(jiān)控、安防監(jiān)控等眾多領(lǐng)域?yàn)槿藗兲峁└?、更?yōu)質(zhì)的服務(wù)[1-3]。本文所研究的內(nèi)容正是利用目前最新的4G通信網(wǎng)絡(luò),實(shí)現(xiàn)遠(yuǎn)程視頻監(jiān)控和移動(dòng)物體報(bào)警功能。與其他的無(wú)線監(jiān)控系統(tǒng)相比,4G網(wǎng)絡(luò)的高速數(shù)據(jù)傳輸能力確保了視頻的清晰度和流暢性,移動(dòng)物體檢測(cè)報(bào)警功能可以防止監(jiān)控人員因疲勞、暫離崗位等原因錯(cuò)過(guò)重要信息。除攝像頭之外,用戶也可根據(jù)需要外掛不同的傳感設(shè)備,通過(guò)二次開(kāi)發(fā)來(lái)滿足自身需求。
1 系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)基于現(xiàn)有的移動(dòng)4G網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)遠(yuǎn)程監(jiān)控點(diǎn)的實(shí)時(shí)視頻監(jiān)控,主要由支持4G的監(jiān)控終端和監(jiān)控中心軟件兩部分組成。系統(tǒng)的整體結(jié)構(gòu)框圖如圖1所示。監(jiān)控終端通過(guò)攝像頭采集現(xiàn)場(chǎng)圖像,一方面在圖像序列中檢測(cè)是否有移動(dòng)物體,另一方面將圖像數(shù)據(jù)進(jìn)行壓縮處理后發(fā)送到監(jiān)控中心。監(jiān)控中心的上位機(jī)承擔(dān)服務(wù)器和播放器的雙重功能,軟件接收到監(jiān)控終端傳來(lái)的視頻流數(shù)據(jù)后,進(jìn)行解碼、顯示、存儲(chǔ)和播放等,同時(shí)根據(jù)接收到的報(bào)警信息觸發(fā)報(bào)警功能。
信息采集端由低功耗、易安裝的嵌入式系統(tǒng)完成,主要包括嵌入式處理器、電源模塊、攝像頭、存儲(chǔ)設(shè)備、復(fù)位模塊等。在硬件平臺(tái)上搭載Linux嵌入式操作系統(tǒng),既降低了軟件的開(kāi)發(fā)難度,也可以方便地?cái)U(kuò)展其他功能。
監(jiān)控中心軟件在Windows平臺(tái)下設(shè)計(jì)完成,主要包括H.264視頻流接收、解碼、緩存、播放器的設(shè)計(jì)以及報(bào)警等功能。借助域名服務(wù)器、FFmpeg、OpenCV等開(kāi)發(fā)工具自主設(shè)計(jì)視頻播放軟件,使得整個(gè)系統(tǒng)更加完善。具體的功能要求和應(yīng)用場(chǎng)景使得應(yīng)用軟件能在最小的資源要求下為用戶提供良好的監(jiān)控畫(huà)面,簡(jiǎn)潔的用戶管理系統(tǒng)提升了系統(tǒng)的安全性和保密性[4-5]。
2 嵌入式監(jiān)控設(shè)備設(shè)計(jì)
2.1 硬件平臺(tái)設(shè)計(jì)
監(jiān)控終端采用三星公司的S5PV210作為主處理器,該芯片運(yùn)行主頻可高達(dá)1 GHz,內(nèi)部集成了PowerVR SGX540高性能圖像引擎,能流暢地運(yùn)行Android、Linux和WinCE等操作系統(tǒng)。4G模塊為中興公司生產(chǎn)的ME3760,該模塊是一款基于MiniPCI Express接口的多模無(wú)線上網(wǎng)模塊,支持TD-LTE/LTE-FDD/TD-SCDMA網(wǎng)絡(luò),可提供移動(dòng)環(huán)境下的高速數(shù)據(jù)接入服務(wù),4G環(huán)境下最大下行速率可達(dá)100 Mb/s。百萬(wàn)高清松翰SN9C291+OV9712網(wǎng)絡(luò)監(jiān)控專用攝像頭組成了系統(tǒng)的視頻采集模塊。OV9712 CameraChip圖像傳感器體積小、工作電壓低等特點(diǎn),可以輸出整幀、子采樣、取窗口等方式的各種分辨率8 bit影像數(shù)據(jù)。USB2.0的攝像頭控制器采用SN9C291,該芯片具有超強(qiáng)的圖像信號(hào)處理能力,可以確保圖像的質(zhì)量和讀取速度。此外,高性能的Motion-JPEG/H.264壓縮技術(shù)可以滿足不同帶寬的需求、低電壓工作狀態(tài)并支持圖像縮放非常適合嵌入式應(yīng)用[6-7]。
2.2 嵌入式軟件設(shè)計(jì)
嵌入式系統(tǒng)的軟件設(shè)計(jì)主要包括驅(qū)動(dòng)的移植和應(yīng)用程序的設(shè)計(jì)兩部分。驅(qū)動(dòng)移植是根據(jù)Linux內(nèi)核版本的不同更新或者替換原驅(qū)動(dòng)中的功能函數(shù)。應(yīng)用程序通過(guò)調(diào)用驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)硬件設(shè)備的控制,這樣的分層機(jī)制體現(xiàn)了軟件、硬件分離的思想,大大提升了嵌入式應(yīng)用的開(kāi)發(fā)速度[8]。
本系統(tǒng)在開(kāi)發(fā)Linux系統(tǒng)基礎(chǔ)上,移植了ME3760通信模塊和USB攝像頭的驅(qū)動(dòng)程序,完善了PPPOE撥號(hào)功能,并完成了相應(yīng)的程序設(shè)計(jì)。驅(qū)動(dòng)程序分層示意圖如圖2所示。
驅(qū)動(dòng)移植是為應(yīng)用程序服務(wù)的,應(yīng)用程序通過(guò)接口訪問(wèn)、控制硬件設(shè)備來(lái)實(shí)現(xiàn)特定的功能,進(jìn)而將各種功能函數(shù)有序地組合來(lái)完成系統(tǒng)功能的設(shè)計(jì)。視頻監(jiān)控系統(tǒng)嵌入式端的程序設(shè)計(jì)流程圖如圖3所示。
各部分具體功能如下:
?。?)系統(tǒng)初始化將攝像頭、網(wǎng)絡(luò)模塊等切換到工作狀態(tài),申請(qǐng)需要的內(nèi)存空間,通過(guò)PPP撥號(hào)接入移動(dòng)網(wǎng)絡(luò),并建立TCP連接;
(2)從攝像頭讀取原始圖像,父進(jìn)程將圖像原始數(shù)據(jù)壓縮編碼后送給網(wǎng)絡(luò)緩沖區(qū),子進(jìn)程通過(guò)背景差法分析監(jiān)控畫(huà)面中是否闖入了移動(dòng)物體,并根據(jù)檢測(cè)結(jié)果決定是否設(shè)置報(bào)警信息;
?。?)網(wǎng)絡(luò)傳輸將壓縮后的視頻數(shù)據(jù)分包后發(fā)送到移動(dòng)網(wǎng)絡(luò),子進(jìn)程將通過(guò)網(wǎng)絡(luò)傳輸服務(wù)將報(bào)警信息發(fā)送給監(jiān)控端。
以USB攝像頭驅(qū)動(dòng)的移植為例,首先將攝像頭的產(chǎn)品ID添加到Linux UVC(USB Video Class)驅(qū)動(dòng)的device_ID列表中,當(dāng)設(shè)備接入開(kāi)發(fā)板時(shí)系統(tǒng)通過(guò)USB讀取設(shè)備信息。根據(jù)信息內(nèi)容調(diào)用UVC驅(qū)動(dòng)常見(jiàn)設(shè)備節(jié)點(diǎn)/dev/video,當(dāng)查詢到設(shè)備節(jié)點(diǎn)后就可以利用V4L2(Video 4 for Linux 2)驅(qū)動(dòng)架構(gòu)對(duì)攝像頭進(jìn)行操作了,V4L2操作函數(shù)如表1所示,在V4L2驅(qū)動(dòng)中可以看到針對(duì)USB免驅(qū)攝像頭可實(shí)現(xiàn)的基本操作。
3 監(jiān)控軟件設(shè)計(jì)
3.1 播放器功能實(shí)現(xiàn)
監(jiān)控端軟件的設(shè)計(jì)實(shí)現(xiàn)了在PC端從網(wǎng)絡(luò)上接收視頻數(shù)據(jù)并播放、存儲(chǔ)等功能,在此基礎(chǔ)上根據(jù)實(shí)際需要添加了用戶管理和報(bào)警提示的功能,改善了系統(tǒng)的實(shí)際應(yīng)用效果。
3.1.1 基于FFmpeg的視頻流解碼
Windows下視頻流解碼的方法有很多,開(kāi)源的FFmpeg程序是較為常用的一種。FFmpeg是一個(gè)開(kāi)源免費(fèi)跨平臺(tái)的視頻和音頻流方案,采用LGPL或GPL許可證,提供錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案,使用方便、可靠性高,在Windows平臺(tái)下有廣泛的應(yīng)用。
FFmpeg包含了libavcodec庫(kù)、libavformat庫(kù)和ffmpeg轉(zhuǎn)換程序等。FFmpeg編譯成功后獲得FFMPEG庫(kù),包含了編程需要的頭文件,lib運(yùn)行庫(kù)和許多的DLL批處理命令。通過(guò)配置計(jì)算機(jī)的環(huán)境變量,就可以在Windows下使用FFmpeg庫(kù)。
FFmpeg視頻流解碼流程可分為以下幾個(gè)步驟:
?。?)定義變量,申請(qǐng)內(nèi)存空間為解碼器運(yùn)行做好準(zhǔn)備工作;
?。?)初始化解碼器,注冊(cè)編碼器、復(fù)用器等;
?。?)打開(kāi)視頻流文件,取出包含在文件中的流信息;
?。?)找到視頻流起始位置,并記錄該流的編碼信息;
?。?)尋找匹配的視頻流的解碼器,系統(tǒng)只用到了 H.264的解碼函數(shù);
?。?)進(jìn)行解碼并根據(jù)需要轉(zhuǎn)換解碼后的圖片格式。
3.1.2 基于OpenCV的播放器設(shè)計(jì)
OpenCV是Inter公司的開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù),它是輕量級(jí)而且高效,它由一系列的C函數(shù)和少量的C++類構(gòu)成,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法[9-10]。OpenCV開(kāi)發(fā)包提供了讀取各種類型的圖像文件、視頻內(nèi)容以及攝像機(jī)輸入的功能。在屏幕上顯示一張圖像可以通過(guò)編寫(xiě)以下程序?qū)崿F(xiàn)。
#include"highgui.h"
int main(int argc,char**argv)
{cvNamedWindow("Example",CV_WINDOW_AUTOSIZE);
CvCapture*capture=cvCreateFileCapture(argv[1]);
IplImage*frame;
while(1){
frame=cvQueryFrame(capture);
if(!frame)break;
cvShowImage("Example",frame);
char c=cvWaitKey(33);
if(c==27)break;}
cvReleaseCapture(&capture);
cvDestroyWindow("Example");}
3.2 軟件界面設(shè)計(jì)
微軟基礎(chǔ)類庫(kù)(Microsoft Foundation Classes,MFC)是一個(gè)微軟公司提供的類庫(kù),以C++類的形式封裝了Windows API,包含一個(gè)應(yīng)用程序框架,以減少應(yīng)用程序開(kāi)發(fā)人員的工作量。本文用戶登錄界面采用基于對(duì)話框的設(shè)計(jì)模式,每個(gè)交互界面都是一個(gè)窗口,它們都繼承自MFC的基礎(chǔ)對(duì)話框類Cdialog并且都與一個(gè)相關(guān)的資源類綁定。該程序的主要功能是根據(jù)用戶輸入的用戶名和密碼信息,判定用戶是否具有該系統(tǒng)的使用權(quán)限,系統(tǒng)的用戶登錄界面如圖4所示。
視頻監(jiān)控界面的設(shè)計(jì)以播放器為主體內(nèi)容,添加了系統(tǒng)LOGO和報(bào)警指示。報(bào)警指示以圖片插件為基礎(chǔ),當(dāng)收到報(bào)警信息后,黃、紅兩張圖片順序切換展現(xiàn)出指示燈閃爍的效果,并且通過(guò)PC音頻設(shè)備播放警報(bào)聲引起監(jiān)控人員的注意。監(jiān)控人員收到報(bào)警信息后可以通過(guò)停止按鍵終止此次報(bào)警,再進(jìn)行相應(yīng)的處理。監(jiān)控系統(tǒng)的實(shí)際運(yùn)行效果如圖5所示。
4 結(jié)論
結(jié)合當(dāng)前的監(jiān)控技術(shù)和無(wú)線通信技術(shù),實(shí)現(xiàn)了一套基于4G無(wú)線技術(shù)的視頻監(jiān)控系統(tǒng)的設(shè)計(jì)。通過(guò)裝載了Linux系統(tǒng)的嵌入式終端和Windows桌面控制軟件完成了視頻監(jiān)控、移動(dòng)物體報(bào)警等功能,系統(tǒng)涵蓋了無(wú)線監(jiān)控系統(tǒng)的最新技術(shù)的實(shí)現(xiàn),應(yīng)用于實(shí)驗(yàn)研究或者教學(xué)中可以起到很好的啟發(fā)作用,有很好的推廣價(jià)值。在以后的研究過(guò)程中將進(jìn)一步完善系統(tǒng)功能,提高系統(tǒng)的可擴(kuò)展性。
參考文獻(xiàn)
[1] 范泳文,官洪運(yùn),蔣靜學(xué),等.基于3G網(wǎng)絡(luò)的智能交通視頻監(jiān)控系統(tǒng)[J].電視技術(shù),2012,36(5):103-109.
[2] 董向華,楊勇.基于網(wǎng)絡(luò)的視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].通信技術(shù),2013,46(2):64-66.
[3] 江潮,蘇祥芳,劉立海,等.基于網(wǎng)絡(luò)的數(shù)字視頻監(jiān)控系統(tǒng)[J].武漢大學(xué)學(xué)報(bào)(自然科學(xué)版),2000,46(5):608-612.
[4] 毛劍飛,張杰,蔣莉,等.基于改進(jìn)的H.264的視頻監(jiān)控系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(4):84-90.
[5] 朱厲洪,周詮.基于編碼的視頻嵌入視頻方法的研究[J].電子技術(shù)應(yīng)用,2013,39(10):65-68.
[6] 李輝.基于RTP的H.264視頻傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林:吉林大學(xué),2013.
[7] 蔣維,孟利民.3G網(wǎng)絡(luò)H.264視頻監(jiān)控系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].杭州電子科技大學(xué)學(xué)報(bào),2011,31(5):71-74.
[8] 王旭,張自嘉,王慧敏.基于ARM11的塔吊監(jiān)控系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013,39(10):29-32.
[9] 彭濤,趙麗萍.OpenCV在視頻監(jiān)控系統(tǒng)中的應(yīng)用[J].通信與廣播電視,2012(4):30-35.
[10] 岑銀.基于OpenCV的智能視頻監(jiān)控設(shè)計(jì)[J].電子元器件應(yīng)用,2010,12(7):47-48.