文獻標識碼: A
文章編號: 0258-7998(2011)01-0114-03
現有的遠程監控系統在實現原理上大致分為兩類,一類為基于傳統Internet的有線式遠程監控系統,另一類為基于GSM等無線移動網絡的監控系統[1],后者在工程造價、產品維護和市場前景上有絕對的優勢。但現有的無線監控設備功能相對單一。隨著3G" title="3G" target="_blank">3G等高速無線網絡的普及,基于無線網絡的綜合監控系統將成為新的研究熱點。“遠程無線綜合監控系統”正是利用了無線網絡,實現對多個分散的遠程地點的綜合監控,如視頻、溫度、電氣設備使用情況等。還可以根據需要增加如濕度監測等其他監測。由于其具有良好的適應性以及相對低廉的價格,易于進行推廣,有廣闊的市場前景。
1 系統整體設計
本系統采用兩臺計算機分別作為客戶機和服務機,服務端由服務機及以單片機為中心的各個控制模塊組成,包括攝像頭采集圖像模塊、云臺控制模塊、無線發送和接收模塊及現場監控模塊。現場監控模塊具有溫度采集、人體紅外檢測、電氣設備通斷控制和聲光報警功能。現場監控模塊與服務機之間通過無線傳輸模塊進行數據傳輸,使現場監控模塊不受服務機位置的限制,而且可為多個,分別監控不同地點的數據。服務機接收到圖像信息、溫度和紅外等數據后,將其壓縮打包,通過3G網絡發送給客戶機。客戶機接收到圖像后通過雙線性內插算法對圖像進行呈現,并實時顯示被檢測環境數據,如繪制現場溫度曲線、電氣通斷狀態、有人進入時報警等,而且能遠程控制現場電氣的狀態。系統整體框圖如圖1所示。
2 服務機編程實現
2.1 MFC程序構架
遠程控制端MFC程序框架如圖2所示。
2.2現場采集端程序構架的實現
圖像采集使用數字視頻軟件開發包VFW(Video for Windows)提供的圖像采集接口函數:
m_capwnd=capCreateCaptureWindow("Capture",WS_CHILD|
S_VISIBLE,x,y,WIDTH,HEIGHT,pDlg->GetSafeHwnd( ), 0);
為了實現圖像的實時傳輸,必須減少發送圖像的冗余信息,本系統的圖像編碼和壓縮使用H.264編碼圖像[2],遠程監控端通過注冊回調函數,在采集到一幀圖像后調用回調函數,在回調函數中調用圖像壓縮函數進行圖像的編碼壓縮。
3 客戶機編程實現
3.1 MFC程序構架
客戶機端MFC程序構架如圖3所示。
3.2 客戶機程序構架的實現
客戶機端接收到的圖像數據必須經過解碼才能進行預覽,系統的解碼器實現函數如下:
bool VideoCodec::EncodeVideoData(char* pin, int inlen, char*pout,long*outlen,BOOL*pKey) //配置解碼器參數
系統采集的圖像分辨率為176×144,圖像的尺寸很小。為了能更好地預覽圖像,系統采用了雙線性內插值算法[3]來放大圖像。算法描述如下:
對于一個目的像素,設置通過反向變換得到的浮點坐標為(i+u,j+v)。其中,i、j均為浮點坐標的整數部分,u、v為浮點坐標的小數部分,為取值[0,1)區間的浮點數。則這個像素值f(i+u,j+v)可由原圖像中坐標為(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對應的周圍4個像素的值決定,即:
f(i+u,j+v)=(1-u)(1-v)f(i,j)+(1-u)vf(i,j+1)+u(1-v)f(i+1,j)+uvf(i+1,j+1)
其中,f(i,j)表示源圖像(i,j)處的像素值,以此類推。雙線性內插值算法的計算量大,但是比最鄰近插值法[4]放大的圖像好,不會出現像素不連續的情況。
4 傳輸協議的選擇
4.1視頻數據傳輸協議
視頻監控系統處理后的圖像需要通過網絡進行傳輸。由于數字視頻傳輸的信息量大而傳輸帶寬有限,使得網絡協議的選擇成為視頻在網絡傳輸中的關鍵技術,它將直接影響到數字視頻傳輸的實時性能和通過網絡傳輸以后客戶端接收的視頻圖像質量。由于TCP協議具有錯誤重傳機制、擁塞控制機制、報文頭比較大以及啟動需要建立連接等特性,因此無法保證實時性,很難適應視頻通信[5]。而實時傳輸協議RTP由底層協議UDP承載[6],由二者共同完成傳輸層協議功能。而UDP協議只是傳輸數據包,不管數據包傳輸的時間順序,RTP協議則提供時間標簽、序列號以及用于控制適時數據的流放的其他結構。UDP的多路復用可使RTP協議利用支持顯式的多點投遞,可以滿足多媒體會話的需求。
RTP相關設置函數:
m_sessparams.SetOwnTimestampUnit(1.0/10.0);
//設置時間同步
m_sessparams.SetUsePollThread(1);
//開啟Poll線程
m_sessparams.SetMaximumPacketSize(64*1024-1);
//設置最大包大小
m_transparams.SetPortbase(REMOT_PORT_VIDEO);
//本地端口
var=m_sess.Create(m_sessparams,&m_transparams);
//創建會話
4.2環境監測數據及客戶控制數據傳輸協議
TCP協議提供了可靠的傳輸服務,包括報文序列、流控制、差錯檢驗、優先級等。因無線采集端送到服務器端的數據量很小(大約12 B/s),在傳輸過程中監控數據不容許有丟包、誤碼等錯誤的發生,因此采用TCP作為監測數據及控制命令數據的傳輸協議,以保證傳輸過程中數據的可靠性。
TCP相關設置函數:
m_CtrlSocket.TcpSocketInit(LOCAL_PORT_CONTROL,0,0,
s_add); //TCP初始化
m_CtrlSocket.SetTimeOut(5); //設置連接超時時間
LRESULT CClientDlg::OnComSocket(WPARAM wParam,
LPARAM lParam); //事件通知函數
5 實驗結果及分析
當監控系統獨占網絡運行時,通過網絡數據抓包,根據數據包端口分析的視頻數據每秒可達到30幀(每6幀一個關鍵幀),接收端圖像大小為640×480,網絡流量約為30 KB/s,如圖4所示,而如圖5所示的有線傳輸時流量約為35 KB/s。其原因是服務端上行速率遠遠小于下行速率,表現在宏觀上,當用3G傳輸時較有線傳輸有約3 s的延遲。通過分析VC++輸出,可知現場環境數據大約為每秒接收6個數據包(采集端1和采集端2各3個數據包),流量約為12 B/s。
通過分析以上實驗數據可知,系統數據流量基本能適應3G網絡的帶寬,系統也基本實現了視頻傳輸的快速性、實時性,而控制數據和監控端采集的數據包均無丟失,從而實現了監測與控制的可靠性,系統運行效果良好。
遠程無線綜合監控系統將會在眾多領域中得到應用,例如無人車間、電站以及需要測量實時數據但不便于鋪設線纜的場所。本系統采用的是采集端與服務器分離的結構,通過無線模塊實現數據的傳輸,在空間上打破了利用電纜傳輸數據的局限性,所有的數據均經過特定的編碼,編碼范圍為0~255。用戶可以根據自己的需要配上合適的編碼即可實現多點監控,具有良好的可擴展性。如果應用于工業生產,系統中的客戶機和服務機均可由工控機代替,數據采集端為簡單的單片機系統,用戶在具備客戶機與服務器的情況下若要增加監控端,僅需要增加數據采集端即可,價格非常低。另外,伴隨著無線網絡技術的發展,網絡帶寬會有更大的提高,而基于3G網絡的無線智能綜合監控系統可以利用網絡的快速性,更好地滿足人們的需求,實現實時、快速、準確。因此,在未來幾年里,無線綜合監控系統將會有極大的推廣價值。
參考文獻
[1] CHAVEZ J L. A remote irrigation monitoring and control system for continuous move systems. Part
A: description and development[J]. Precision Agriculture,2010,11(1):1-10.
[2] 斯文克.Visual C++ MFC編程實例[M].北京:機械工業出版社,2000.
[3] WANG J X. On parallelizing H.264/AVC rate-distortion optimization baseline profile encoder[J].
Jorunal of Information Science and Engineering, 2000,26(2):409-426.
[4] 馮永明, 楊東勇, 盧瑾.全方位圖像展開的雙線性內插值法[J].計算機工程與應用,2008,44
(15):54-55,78
[5] 劉麗君,駱婷.插值法在圖像處理中的應用[J]. 電子科學,2009,15:9-10.
[6] 孫桂斌.基于TCP/IP協議多客戶連接的服務端程序實 現[J].網絡與通信,2009,29(7):83-85.
[7] SEO K D. A practical RTP packetization scheme for SVC video transport over IP networks[J].Etri Journal, 2010,32(2):281-291.