摘 要: 提出了一種通用的基于4G網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)方法,介紹了系統(tǒng)的軟、硬件構(gòu)成,重點研究了視頻采集、視頻解碼、圖像實時顯示、存儲和播放等關(guān)鍵視頻技術(shù),同時給出了Windows平臺下基于OpenCV的播放器設(shè)計和基于MFC的軟件界面設(shè)計的具體實現(xiàn)方法。與傳統(tǒng)的監(jiān)控系統(tǒng)相比,采用4G網(wǎng)絡(luò)傳輸確保了視頻的清晰度和流暢性,移動物體檢測報警功能可防止監(jiān)控人員錯過重要信息,具有廣闊的應(yīng)用前景。
關(guān)鍵詞: 4G網(wǎng)絡(luò);視頻監(jiān)控;移動檢測;異常報警
0 引言
自2013年12月4日中國移動獲得中國國內(nèi)第一個4G牌照以來,我國絕大部分城市的居民已經(jīng)可以享受到LTE技術(shù)帶來的便利。隨著4G網(wǎng)絡(luò)的普及和流量資費的不斷降低,無線視頻監(jiān)控能夠在特殊押運、資源監(jiān)控、安防監(jiān)控等眾多領(lǐng)域為人們提供更好、更優(yōu)質(zhì)的服務(wù)[1-3]。本文所研究的內(nèi)容正是利用目前最新的4G通信網(wǎng)絡(luò),實現(xiàn)遠(yuǎn)程視頻監(jiān)控和移動物體報警功能。與其他的無線監(jiān)控系統(tǒng)相比,4G網(wǎng)絡(luò)的高速數(shù)據(jù)傳輸能力確保了視頻的清晰度和流暢性,移動物體檢測報警功能可以防止監(jiān)控人員因疲勞、暫離崗位等原因錯過重要信息。除攝像頭之外,用戶也可根據(jù)需要外掛不同的傳感設(shè)備,通過二次開發(fā)來滿足自身需求。
1 系統(tǒng)總體設(shè)計

本系統(tǒng)基于現(xiàn)有的移動4G網(wǎng)絡(luò),實現(xiàn)對遠(yuǎn)程監(jiān)控點的實時視頻監(jiān)控,主要由支持4G的監(jiān)控終端和監(jiān)控中心軟件兩部分組成。系統(tǒng)的整體結(jié)構(gòu)框圖如圖1所示。監(jiān)控終端通過攝像頭采集現(xiàn)場圖像,一方面在圖像序列中檢測是否有移動物體,另一方面將圖像數(shù)據(jù)進(jìn)行壓縮處理后發(fā)送到監(jiān)控中心。監(jiān)控中心的上位機承擔(dān)服務(wù)器和播放器的雙重功能,軟件接收到監(jiān)控終端傳來的視頻流數(shù)據(jù)后,進(jìn)行解碼、顯示、存儲和播放等,同時根據(jù)接收到的報警信息觸發(fā)報警功能。
信息采集端由低功耗、易安裝的嵌入式系統(tǒng)完成,主要包括嵌入式處理器、電源模塊、攝像頭、存儲設(shè)備、復(fù)位模塊等。在硬件平臺上搭載Linux嵌入式操作系統(tǒng),既降低了軟件的開發(fā)難度,也可以方便地擴(kuò)展其他功能。
監(jiān)控中心軟件在Windows平臺下設(shè)計完成,主要包括H.264視頻流接收、解碼、緩存、播放器的設(shè)計以及報警等功能。借助域名服務(wù)器、FFmpeg、OpenCV等開發(fā)工具自主設(shè)計視頻播放軟件,使得整個系統(tǒng)更加完善。具體的功能要求和應(yīng)用場景使得應(yīng)用軟件能在最小的資源要求下為用戶提供良好的監(jiān)控畫面,簡潔的用戶管理系統(tǒng)提升了系統(tǒng)的安全性和保密性[4-5]。
2 嵌入式監(jiān)控設(shè)備設(shè)計
2.1 硬件平臺設(shè)計
監(jiān)控終端采用三星公司的S5PV210作為主處理器,該芯片運行主頻可高達(dá)1 GHz,內(nèi)部集成了PowerVR SGX540高性能圖像引擎,能流暢地運行Android、Linux和WinCE等操作系統(tǒng)。4G模塊為中興公司生產(chǎn)的ME3760,該模塊是一款基于MiniPCI Express接口的多模無線上網(wǎng)模塊,支持TD-LTE/LTE-FDD/TD-SCDMA網(wǎng)絡(luò),可提供移動環(huán)境下的高速數(shù)據(jù)接入服務(wù),4G環(huán)境下最大下行速率可達(dá)100 Mb/s。百萬高清松翰SN9C291+OV9712網(wǎng)絡(luò)監(jiān)控專用攝像頭組成了系統(tǒng)的視頻采集模塊。OV9712 CameraChip圖像傳感器體積小、工作電壓低等特點,可以輸出整幀、子采樣、取窗口等方式的各種分辨率8 bit影像數(shù)據(jù)。USB2.0的攝像頭控制器采用SN9C291,該芯片具有超強的圖像信號處理能力,可以確保圖像的質(zhì)量和讀取速度。此外,高性能的Motion-JPEG/H.264壓縮技術(shù)可以滿足不同帶寬的需求、低電壓工作狀態(tài)并支持圖像縮放非常適合嵌入式應(yīng)用[6-7]。
2.2 嵌入式軟件設(shè)計
嵌入式系統(tǒng)的軟件設(shè)計主要包括驅(qū)動的移植和應(yīng)用程序的設(shè)計兩部分。驅(qū)動移植是根據(jù)Linux內(nèi)核版本的不同更新或者替換原驅(qū)動中的功能函數(shù)。應(yīng)用程序通過調(diào)用驅(qū)動程序?qū)崿F(xiàn)對硬件設(shè)備的控制,這樣的分層機制體現(xiàn)了軟件、硬件分離的思想,大大提升了嵌入式應(yīng)用的開發(fā)速度[8]。
本系統(tǒng)在開發(fā)Linux系統(tǒng)基礎(chǔ)上,移植了ME3760通信模塊和USB攝像頭的驅(qū)動程序,完善了PPPOE撥號功能,并完成了相應(yīng)的程序設(shè)計。驅(qū)動程序分層示意圖如圖2所示。

驅(qū)動移植是為應(yīng)用程序服務(wù)的,應(yīng)用程序通過接口訪問、控制硬件設(shè)備來實現(xiàn)特定的功能,進(jìn)而將各種功能函數(shù)有序地組合來完成系統(tǒng)功能的設(shè)計。視頻監(jiān)控系統(tǒng)嵌入式端的程序設(shè)計流程圖如圖3所示。

各部分具體功能如下:
?。?)系統(tǒng)初始化將攝像頭、網(wǎng)絡(luò)模塊等切換到工作狀態(tài),申請需要的內(nèi)存空間,通過PPP撥號接入移動網(wǎng)絡(luò),并建立TCP連接;
?。?)從攝像頭讀取原始圖像,父進(jìn)程將圖像原始數(shù)據(jù)壓縮編碼后送給網(wǎng)絡(luò)緩沖區(qū),子進(jìn)程通過背景差法分析監(jiān)控畫面中是否闖入了移動物體,并根據(jù)檢測結(jié)果決定是否設(shè)置報警信息;
?。?)網(wǎng)絡(luò)傳輸將壓縮后的視頻數(shù)據(jù)分包后發(fā)送到移動網(wǎng)絡(luò),子進(jìn)程將通過網(wǎng)絡(luò)傳輸服務(wù)將報警信息發(fā)送給監(jiān)控端。
以USB攝像頭驅(qū)動的移植為例,首先將攝像頭的產(chǎn)品ID添加到Linux UVC(USB Video Class)驅(qū)動的device_ID列表中,當(dāng)設(shè)備接入開發(fā)板時系統(tǒng)通過USB讀取設(shè)備信息。根據(jù)信息內(nèi)容調(diào)用UVC驅(qū)動常見設(shè)備節(jié)點/dev/video,當(dāng)查詢到設(shè)備節(jié)點后就可以利用V4L2(Video 4 for Linux 2)驅(qū)動架構(gòu)對攝像頭進(jìn)行操作了,V4L2操作函數(shù)如表1所示,在V4L2驅(qū)動中可以看到針對USB免驅(qū)攝像頭可實現(xiàn)的基本操作。

3 監(jiān)控軟件設(shè)計
3.1 播放器功能實現(xiàn)
監(jiān)控端軟件的設(shè)計實現(xiàn)了在PC端從網(wǎng)絡(luò)上接收視頻數(shù)據(jù)并播放、存儲等功能,在此基礎(chǔ)上根據(jù)實際需要添加了用戶管理和報警提示的功能,改善了系統(tǒng)的實際應(yīng)用效果。
3.1.1 基于FFmpeg的視頻流解碼
Windows下視頻流解碼的方法有很多,開源的FFmpeg程序是較為常用的一種。FFmpeg是一個開源免費跨平臺的視頻和音頻流方案,采用LGPL或GPL許可證,提供錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案,使用方便、可靠性高,在Windows平臺下有廣泛的應(yīng)用。
FFmpeg包含了libavcodec庫、libavformat庫和ffmpeg轉(zhuǎn)換程序等。FFmpeg編譯成功后獲得FFMPEG庫,包含了編程需要的頭文件,lib運行庫和許多的DLL批處理命令。通過配置計算機的環(huán)境變量,就可以在Windows下使用FFmpeg庫。
FFmpeg視頻流解碼流程可分為以下幾個步驟:
?。?)定義變量,申請內(nèi)存空間為解碼器運行做好準(zhǔn)備工作;
(2)初始化解碼器,注冊編碼器、復(fù)用器等;
?。?)打開視頻流文件,取出包含在文件中的流信息;
?。?)找到視頻流起始位置,并記錄該流的編碼信息;
?。?)尋找匹配的視頻流的解碼器,系統(tǒng)只用到了 H.264的解碼函數(shù);
?。?)進(jìn)行解碼并根據(jù)需要轉(zhuǎn)換解碼后的圖片格式。
3.1.2 基于OpenCV的播放器設(shè)計
OpenCV是Inter公司的開源計算機視覺庫,它是輕量級而且高效,它由一系列的C函數(shù)和少量的C++類構(gòu)成,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法[9-10]。OpenCV開發(fā)包提供了讀取各種類型的圖像文件、視頻內(nèi)容以及攝像機輸入的功能。在屏幕上顯示一張圖像可以通過編寫以下程序?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è)計
微軟基礎(chǔ)類庫(Microsoft Foundation Classes,MFC)是一個微軟公司提供的類庫,以C++類的形式封裝了Windows API,包含一個應(yīng)用程序框架,以減少應(yīng)用程序開發(fā)人員的工作量。本文用戶登錄界面采用基于對話框的設(shè)計模式,每個交互界面都是一個窗口,它們都繼承自MFC的基礎(chǔ)對話框類Cdialog并且都與一個相關(guān)的資源類綁定。該程序的主要功能是根據(jù)用戶輸入的用戶名和密碼信息,判定用戶是否具有該系統(tǒng)的使用權(quán)限,系統(tǒng)的用戶登錄界面如圖4所示。

視頻監(jiān)控界面的設(shè)計以播放器為主體內(nèi)容,添加了系統(tǒng)LOGO和報警指示。報警指示以圖片插件為基礎(chǔ),當(dāng)收到報警信息后,黃、紅兩張圖片順序切換展現(xiàn)出指示燈閃爍的效果,并且通過PC音頻設(shè)備播放警報聲引起監(jiān)控人員的注意。監(jiān)控人員收到報警信息后可以通過停止按鍵終止此次報警,再進(jìn)行相應(yīng)的處理。監(jiān)控系統(tǒng)的實際運行效果如圖5所示。

4 結(jié)論
結(jié)合當(dāng)前的監(jiān)控技術(shù)和無線通信技術(shù),實現(xiàn)了一套基于4G無線技術(shù)的視頻監(jiān)控系統(tǒng)的設(shè)計。通過裝載了Linux系統(tǒng)的嵌入式終端和Windows桌面控制軟件完成了視頻監(jiān)控、移動物體報警等功能,系統(tǒng)涵蓋了無線監(jiān)控系統(tǒng)的最新技術(shù)的實現(xiàn),應(yīng)用于實驗研究或者教學(xué)中可以起到很好的啟發(fā)作用,有很好的推廣價值。在以后的研究過程中將進(jìn)一步完善系統(tǒng)功能,提高系統(tǒng)的可擴(kuò)展性。
參考文獻(xiàn)
[1] 范泳文,官洪運,蔣靜學(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è)計與實現(xiàn)[J].通信技術(shù),2013,46(2):64-66.
[3] 江潮,蘇祥芳,劉立海,等.基于網(wǎng)絡(luò)的數(shù)字視頻監(jiān)控系統(tǒng)[J].武漢大學(xué)學(xué)報(自然科學(xué)版),2000,46(5):608-612.
[4] 毛劍飛,張杰,蔣莉,等.基于改進(jìn)的H.264的視頻監(jiān)控系統(tǒng)[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è)計與實現(xiàn)[D].吉林:吉林大學(xué),2013.
[7] 蔣維,孟利民.3G網(wǎng)絡(luò)H.264視頻監(jiān)控系統(tǒng)的設(shè)計和實現(xiàn)[J].杭州電子科技大學(xué)學(xué)報,2011,31(5):71-74.
[8] 王旭,張自嘉,王慧敏.基于ARM11的塔吊監(jiān)控系統(tǒng)設(shè)計[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].電子元器件應(yīng)用,2010,12(7):47-48.
