摘 要:傳統的模擬視頻監控系統存在諸多不足#65377;由于數字視頻的壓縮#65380;處理和傳輸技術的發展,數字視頻監控系統正成為視頻監控的主流技術和研究方向#65377;提出一種基于網絡的銀行視頻監控系統解決方案,該系統采用Client/server模式,通過視頻采集#65380;視頻傳輸#65380;視頻顯示#65380;遠程用戶的管理和監測以及串口的控制五個軟件模塊實現系統的功能#65377;
關鍵詞:網絡;視頻監控;銀行系統
中圖分類號:TP393文獻標識碼:A
1 視頻監控技術的發展狀況
視頻監控系統的發展從圖像處理技術的層面來講,可大致分為3個階段[1,2]:
1)模擬視頻監控系統#65377;20世紀90年代前,監控系統處理以采集的模擬信號為主#65377;由于模擬信號在傳輸過程中易產生衰耗#65380;畸變以及延遲等現象[3],故這一時期的視頻監控系統主要應用于小范圍區域,如單棟樓房#65380;居民小區等[4]#65377;
2)準數字化視頻監控系統#65377;20世紀90年代中期,隨著數字壓縮#65380;顯示與控制技術的發展,出現了模擬與數字混合的視頻監控系統[5],標志著視頻監控系統從模擬向數字的過渡#65377;
3)數字化視頻監控系統#65377;20世紀90年代末期,隨著網絡寬帶,計算機處理能力和存儲容量的進一步提高,視頻監控系統中視頻從采集#65380;傳輸到處理#65380;存儲都能以數字化方式實現[3],視頻監控進入了數字化時代#65377;
數字視頻較模擬視頻有著明顯的優勢:首先,數字視頻易于壓縮#65380;存儲和檢索;其次,數字視頻使其他數字技術更容易在視頻監控系統中被采用,使得視頻監控系統呈現出硬件化#65380;智能化的趨勢#65377;
2 數字視頻監控的關鍵技術
數字視頻監控系統的關鍵技術有:數字視頻壓縮技術#65380;數字視頻信息處理技術和數字視頻傳輸技術[6,7]#65377;
2.1 數字視頻壓縮技術
視頻的每幀圖像中存在空間冗余和視覺冗余,并且相鄰兩幀圖像之間存在時間冗余,這為視頻壓縮技術提供了廣闊的應用前景,實際應用中常采用幀內壓縮算法消除空間和視覺冗余;采用運動補償編碼方法消除時間冗余[8,9]#65377;
2.2 數字視頻信息處理技術
視頻信息處理的研究內容很廣,主要包括視頻回放#65380;視頻存儲等[10]#65377;為避免出現丟幀#65380;抖動#65380;馬賽克等現象,必須實現各路視頻實時平滑顯示和回放,支持視頻的質量分級性,盡可能減小CPU的時間占有#65377;視頻的存儲策略有兩種,一種是在監控對象狀態發生變化時存儲數據;另一種是每隔一段時間存儲數據#65377;為了方便視頻信息檢索,需要對視頻數據進行結構化存儲,達到隨機查詢的目的#65377;
2.3 數字視頻傳輸技術
由于視頻信號的信息量大,而網絡帶寬卻又非常有限,為了提高視頻信號的傳輸質量和效率,一方面要選用具有高壓縮比的壓縮算法,盡可能減少視頻信號的傳輸量,另一方面,要通過選擇恰當的傳輸方式和通信協議[11],以求獲得較好傳輸效果#65377;
3 系統設計
本系統的設計遵循數字化#65380;網絡化的原則,運用靈活#65380;完善的手段,保證整個平臺的可運營#65380;可管理特點#65377;分別在ATM自動取款機#65380;營業柜臺前#65380;部分銀行工作場所以及其他地方安裝監控設備,對其進行實時監控和錄像#65377;并在相應地點安裝報警輸入#65380;輸出設備,利用數字視頻監控系統對其進行聯動設置,加強銀行系統安全防范措施#65377;
3.1 系統結構
基于網絡的銀行視頻監控系統可分為監控前端#65380;后臺管理系統#65380;用戶監控終端三個部分#65377;系統業務結構示意如圖1:
[FL)]計算技術與自動化2007年6月第26卷第2期張 洪等:一種基于網絡的銀行視頻監控系統的研究與設計
在圖1中,攝像頭#65380;視頻服務器以及相應的報警輸入#65380;輸出裝置屬于前端系統#65377;前端系統采集的信號通過視頻線路傳送給視頻服務器,視頻服務器負責對信號進行數字化轉化和編碼壓縮,然后利用銀行系統內部專用網絡將其傳送給后臺管理系統,即中心平臺服務器#65377;中心平臺服務器對所有的接入設備進行統一管理,用戶監控終端可以對監控圖像進行實時瀏覽#65377;
3.2 后臺管理系統的設計
本系統采用Client/server模式,處于Server端的后臺管理系統是整個銀行視頻監控系統的核心軟件#65377;它包括了控制調度中心#65380;操作執行中心和Internet訪問網關三個功能模塊#65377;他們的模塊結構如圖2所示#65377;
控制調度中心是為客戶提供視頻監控業務的核心管理平臺,它實現整個系統的配置管理#65377;它包括了平臺管理子模塊#65380;控制服務子模塊#65380;報警管理子模塊#65380;調度子模塊#65380;業務管理子模塊5個子模塊#65377;操作執行中心,它實現對監控的視頻文件進行接收#65380;存放#65380;檢索和管理等工作;內置流媒體視頻服務器,實現對視頻文件的回放;實現對監控前端設備的配置#65380;管理#65380;設置,并控制對監控視頻文件的錄制#65377;它包括前端應用子模塊#65380;存儲子模塊#65380;分發子模塊三個子模塊#65377;Internet 訪問網關實現客戶端接入以及接收并處理來自客戶端子模塊的各種操作命令(如用戶管理,錄像,回放),并提交平臺管理子模塊做系統日志#65377;它主要有客戶端應用子模塊#65377;
3.3 系統軟件模塊的實現
系統以上功能模塊及其子模塊的實現,主要涉及以下幾個數據處理過程#65377;
1)視頻數據和本地狀態數據的采集與存儲;
2)視頻#65380;控制和狀態數據在網絡中的傳輸;
3)視頻數據在終端的顯示#65377;
在這些數據處理過程中,狀態和控制數據的處理相對簡單,而視(音)頻的采集#65380;傳輸和顯示部分相對復雜#65377;本系統通過以下幾個軟件模塊進行實現#65377;
1)視頻采集模塊;
2)視頻傳輸模塊;
3)視頻顯示模塊;
4)遠程用戶的管理和監測模塊;
5)串口的控制模塊#65377;
上述各實現模塊的框圖如圖3所示#65377;
3.3.1 視頻采集模塊
視頻采集模塊是實現視頻監控程序的基礎#65377;要實現遠程視頻監控,首要要做的就是能夠把監控現場圖像的模擬信號轉換為數字信號,本系統是通過使用\"Video for Windows(VFW)\"開發包(微軟提供)來實現對視頻的處理,設計了一個VideoCapture類,用來實現對視頻的采集#65377;VideoCapture類的成員函數主要完成以下兩個方面的工作#65377;
1) 對VideoCapture類的初始化,即對捕獲過程的參數設置;
2) 控制,即開啟或關閉捕獲過程#65377;
3.3.2 視頻傳輸模塊
視頻傳輸模塊用以保證視頻圖像在Intranet/Internet上的傳輸質量,它分為服務器端和客戶端兩部分#65377;以服務器端為例,系統實現了一個DSocket類,用于實現Socket通信功能,它不僅實現了服務器和客戶機Socket的發送和接收數據的功能,而且在它的數據成員和所有數據處理中引入一個整型的type標識,用來識別它是數據還是控制Socket#65377;DSocket類的成員函數主要完成以下3個部分的工作#65377;
1)對DSocket類的初始化,即Socket的IP地址和端口的參數設置;
2)接收并處理數據,即完成接收函數OnReceive(),這個函數用來設置當Socket接收到一個控制或視頻數據包時作什么操作;
3)發送數據,主要是完成發送控制信號的函數SendControlMessage()#65377;
3.3.3 視頻顯示模塊
視頻顯示模塊負責在一個窗體實體中繪制實時(30fps)捕獲或接收到的視頻幀圖像#65377;系統通過MyCapWinDlg類的一部分數據成員和成員函數來實現對視頻的顯示(另一部分數據成員和成員函數用來完成視頻傳輸功能)#65377;與視頻顯示相關的MyCapWinDlg類的定義如下:
由于視頻數據已經在指定的緩存區(捕獲緩存區或接收緩存區)內存放,所以該模塊只需做兩件事:①獲取窗體實體的參數,以備計算和顯示;②調用Win32 API函數或MFC封裝函數顯示指定的緩存區的視頻內容#65377;
其中調用Win32 API函數或MFC封裝函數,顯示指定的緩存區的視頻內容這部分工作由ShowVideo()函數完成#65377;它的實現代碼如下:
ShowVideo()函數從其參數列表中獲取指定的緩存區和大小,從中讀取視頻數據,然后使用預先設置好的與顯示視頻相關的各個參數,最后調用系統顯示函數DrawDibDraw()在對話框窗體上繪制出一幀視頻圖像#65377;指定緩存區無論是捕獲緩存區還是接收緩存區,都會以30fps的速度更新,這樣一來,在窗體上就顯示出連續的視頻畫面#65377;
3.3.4 遠程用戶的管理和檢測模塊
建立遠程用戶的管理和檢測模塊的主要目的是對連接到服務器的遠程端有統一的管理和對其狀態有整體的認識,解決利用互連網對分散在不同地點的運行設備實施集中監控和管理的問題#65377;在程序中,自定義了USERMAG類,作為對遠程用戶進行管理的途徑#65377;
在程序中建立USERMAG類的指針對象,并且設置相應的操作對話框#65377;在程序中利用鏈表的編程方法可以較為容易地完成遠程用戶的建立和刪除,另外遠程用戶的管理和檢測信息(即:USERMAG類)在網絡中的傳輸處理與一幀視頻數據在網絡中的傳輸處理相似,兩者的不同之處僅在于:前者通過控制Socket傳輸;而后者通過數據Socket傳輸,在此不作贅述#65377;
3.3.5 串口的控制模塊
串口通訊控制模塊通過計算機串口實現應用程序與解碼器之間的通訊,從而完成主機對云臺#65380;鏡頭等的控制#65377;本系統通過Visual C++實現RS232串行通信#65377;
客戶端通過CclientCtrlSock套接m_ClientCtrlSock, 利用TCP/IP協議,與服務器端連接#65377;連接成功后,利用串口向服務器端發送云臺和鏡頭的控制信息#65377;服務器收到后做相應的控制,對串口進行參數配置,用戶可以根據場合#65380;用途和功能的不同對串口采取不同的配置方式#65377;系統通過對串口的參數進行設置,完成了對攝像頭的方位#65380;俯仰#65380;變焦#65380;光圈的控制等攝像頭的控制#65377;
4 系統測試
在各個模塊完成編碼之后,分別對其進行了單元測試,包括對鏡頭#65380;云臺等前端外設的操作控制測試,對視頻圖像的采集#65380;回放和錄像的測試等#65377;在每個模塊都正確地完成了規定的功能測試后,又將各模塊按設計要求集成在一起,進行系統的綜合測試#65377;綜合測試按照一個完整的監控系統的功能要求進行測試,在多臺主機上進行#65377;測試的內容包括:發送端以IP組播方式發出的視頻圖像,對于多個接收端來說,能否做到同時接收;視頻圖像的傳輸,能否達到系統的實時性要求;接收端能否對視頻圖像進行實時接收#65380;播放和錄像;播放的效果如何;系統能否長時間穩定完好的運行等#65377;測試表明,系統結構合理,操作簡單,適合銀行對監控系統的要求#65377;
5 結束語
本文在分析了數字視頻監控系統的技術基礎上,提出了一種基于網絡的銀行數字化視頻監控系統,該系統的軟件部分由視頻采集模塊#65380;視頻傳輸模塊#65380;視頻顯示模塊#65380;遠程用戶的管理和監測模塊及串口的控制模塊組成#65377;這種系統結構合理,操作簡便#65380;運行可靠#65377;可對銀行原有的模擬監控系統進行改造,最大限度的利用資源#65377;減少無謂的浪費#65377;
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。