0 引言
隨著Internet和個人計算機的普及, Internet用戶已達到了空前的數量, 而對網絡的利用也已經逐漸滲透到了各個行業, 現在已出現了如視頻會議、電子商務等新型業務, 這些業務的推出大大方便了人們的生活, 提高了社會效率。同樣, 視頻監控技術發展也經歷了模擬監控、數字監控階段, 現在正在向大規模網絡監控技術方向發展。
網絡監控系統具有能夠克服地域的限制、傳輸信號不易受干擾、網絡帶寬可復用的巨大優勢, 因而較之傳統監控模式具有更廣闊的發展空間。為此, 本文結合相關技術, 提出了一種基于嵌入式Web服務器的遠程監控系統方案, 該方案整合了門禁、紅外監測、煙霧探測等外圍設備, 并具有監控智慧化、存儲設備成本低、網絡資源占用率小、方便擴展等特點。
1 系統硬件設計
本系統以S3C2410為控制核心, 并基于嵌入式Linux操作系統來開發設計。nand FLASH設備采用cramfs文件系統, 上電后掛載yaffs文件系統來保存臨時數據文件, 并提供有SD卡接口以用于保存視頻文件。
本系統中的視頻采集設備采用中芯微的ZC301芯片中的USB Camera.該芯片目前在市場上已被廣泛應用, 它能夠支持Video4linux.
Video4linux作為Linux系統中可支持影像設備的一組API, 只要配合適當的視頻采集設備和驅動,就可以實現影像采集。
網絡接入系統一般有兩種設計方式, 一是通過外部擴展網絡芯片RTL8019AS來實現, 另一種是通過外部擴展的GPRS模塊(設計中, GPRS核心模塊可采用wavecomQ2403A) 來實現。前者適合應用在檢測地點固定的情況下, 而后一種方式既能提供事件觸發短信發送功能, 又可以提供GPRS網絡接入功能, 從而使得視頻監控系統在汽車、野外現場等環境中也能夠得到應用。
此外, 本系統還擴展了紅外、煙霧測控設備、門禁系統, 并配備了報警裝置, 其系統硬件設計的整體框圖如圖1所示。
圖1 系統硬件設計整體框圖
【!=={$pagepage}==】
2 軟件設計
本系統軟件由后臺進程和前臺用戶接口兩部分組成。為了防止競態的出現, 在軟件實現時,用戶CGI接口可利用system V的郵箱通信機制向后臺進程提出請求。后臺開設有線程接收請求并對各設備功能模塊進行統一調度。圖2所示是本系統的軟件整體結構框架。下面分別對系統的各個模塊進行介紹。
圖2 系統軟件整體框架圖
2.1 紅外探測模塊及煙霧檢測模塊
目前多數家居監控方案主要采用網絡攝像頭作為監控終端設備, 用戶可通過Web瀏覽器隨時隨地的監控家中狀況, 這給用戶帶來了巨大的便捷。但是, 由于它連續不間斷的監控, 缺點也是顯而易見。首先是對存儲設備容量有巨大的要求, 由于被迫記錄了大量的非必要視頻, 存儲空間被嚴重浪費。面對這個問題, 智能化成為對數字視頻監控系統的又一個主要要求。本文提出的方案是一種基于事件觸發的機制, 系統可以實現智能控制并只保存發生異常時的視頻文件。這種設計能有效節省系統存儲開支、靈活控制監控設備, 為用戶提供很大方便。在基于事件觸發機制的方案設計中, 主要有針對軟、硬件的兩種設計方向。
其一是軟件主導的觸發方案, 這種方式可以參考motion開源軟件項目的設計思路, 其原理是對采集到的jpeg圖片進行比對, 當差異超過規定閾值則觸發相應動作。motion是一個運行在Linux操作系統環境下的應用軟件, 它最大的特點就是能夠探測采集到畫面有效部分的變化, 也就是說, 能夠監測到運動。當畫面有變化時, motion將以一定的頻率采集jpeg文件, 并將其壓縮為視頻文件自動保存。
這種軟件的實現機制依托實時的數據分析,對系統的處理和運算能力要求較高, 因此, 在實際使用中會有一些限制, 但是, 隨著處理器運算能力的提高, 作為監控系統的智能化發展方向,將會有很好的發展前景。
其二是硬件主導的觸發方案, 本設計使用的便是這種方式。本系統采用紅外傳感器來探測異常, 同時整合了煙霧傳感器來監控火災, 當監控范圍內出現異常時便觸發中斷, 并由中斷處理程序啟動視頻采集和火災報警等功能。采集到的視頻和資料將保存在外部存儲設備上。而門禁系統中的報警開關, 則可在用戶刷卡回到家中后, 自動關閉監控功能。
【!=={$pagepage}==】
2.2 數字壓縮單元
本系統采用MPEG-4視頻編碼器來對視頻圖像進行壓縮編碼, 并利用FFmpeg視頻處理工具來實現。H.264算法具有很高的編碼效率, 在相同的重建圖像質量下, 能夠比H.263節約50%左右的碼率。H.264的碼流結構網絡適應性強, 同時增加了差錯恢復能力, 能夠很好地適應IP和無線網絡。可以說, H.264是目前壓縮率最高的視頻壓縮標準, 并已在數字監控系統中得到應用。
本系統的設計主要是針對家居監控應用, 家庭中的大部分都采用ADSL等設備接入網絡。由于會受到上行帶寬的限制, 故導致在進行網絡視頻監控時視頻信號傳輸不流暢, 影響監控效果。
針對這種情況, 通過對MPEG系列壓縮算法的核心進行分析, 發現其采用了I幀、P幀和B幀的模式, 其中I幀是關鍵幀, P幀是前向預測幀, B幀是后向預測幀。譯碼器收到一個I幀, 可無條件立刻解碼; 而當譯碼器收到P幀或B幀, 則必須先譯碼前面的P幀或I幀, 然后才能進行譯碼。這樣, P幀對于I幀的依賴就形成了很大的延時。之后, 借鑒相關技術來對MPEG算法進行優化, 便可以通過對GOP (Group Of Picture) 這一值進行設置來縮短I幀產生的間隔。這樣, 在以后的擴展中, 就可以利用帶寬實時檢測技術動態的設置GOP, 從而最大限度地利用帶寬進行視頻傳輸。
2.3 嵌入式web服務器模塊
嵌入式Web系統提供有一種經濟實用的互聯網嵌入式接入方案, 故可為管理、控制和監測多種設備提供一個很好的途徑。由于嵌入式設備中的資源有限, 只能選擇輕量級的Web Server (如:thttpd、boa等), 考慮到應用的廣泛性, 本系統也選擇了boa服務器。作為與用戶交互的主要方式,Web page力求簡潔, 并可提供很多的功能接口。
這些功能接口基本可以分為兩種類型, 一種是觸發動作功能, 主要利用button觸發實現現場圖片的采集等動作的操作。另一種是文件交互功能,這種功能的實現相對比較復雜, 它不只需要button觸發, 還需要一些文本域作為用戶配置的傳遞機制。動態Web交互功能主要通過form窗體來實現, 當用戶點擊功能接口, 瀏覽器將窗體內容通過http協議傳輸給服務器后, 服務器再根據form中的action字段來調用相應的CGI文件。在經過CGI的一系列URL解析動作后, 即可得到對應參數, 系統根據得到的參數調用相應的功能函數,最終實現用戶對動態頁面的操作功能。
本系統在文件交互功能Web頁設計中采用了iframe嵌入CGI文件的方式, CGI代碼同時擔負讀寫文件和頁面顯示兩個功能。這種實現方式有時會遇到iframe高度自適應問題, 系統如果禁止scrolling (下拉列表) 功能, 那么, iframe的高度是不能變化的, 需要預先設置。而實際情況是CGI將要顯示的高度往往是不確定的, 系統無法預知所要顯示的數據的長度或表格行數。為此,本系統使用javascript腳本來在客戶端進行調節,并通過在CGI代碼中加入如下代碼來實現iframe高度的自動調節:
onload=" this.height=0 ;
var fdh = ( this.Document ?
this.Document.body.scrollHeight:this.content-
Document.body.offsetHeight ) ;
this.height=fdh"
在iframe子頁面中實現對父頁面刷新功能時,可使用如下的javascript代碼來完成:
<script language =javascript >window.parent.location.href=\" /Video_Processor.html\" ;</script>
2.4 文件系統
根據需保存文件的類型, 本系統提供有兩種文件系統, 其中不會被修改的文件使用cramfs文件系統進行保存, 而將臨時數據保存在yaffs文件系統中。用于與用戶交互的文件類型主要有三種, 分別為配置文件、實時數據文件以及臨時文件。配置文件主要進行系統設置, 包括常溫范圍、短信發送對方手機號碼等配置信息; 實時數據文件中包括實時采集到的煙霧信息和視頻信息等; 臨時文件則用于一些需要臨時存放在系統中的文件。另外, 系統上電后需要檢測并掛載外部大容量存儲設備, 如SD卡或U盤等, 以用于存放歷史數據文件, 實際操作時,用戶可以通過網頁來配置當前需要采用哪種外圍存儲設備以及存儲容量等相關信息。
3 結束語
本文介紹的系統可為用戶提供良好的用戶接口。它結合事件驅動機制, 能夠讓用戶在節約大量存儲成本的同時, 在更大范圍內更靈活的得到監控信息, 并具有很好的實用性和擴展性。