摘 要: 引入開源項目ZoneMinder,搭建基于Linux平臺的網絡視頻監控系統。介紹了整體方案和ZoneMinder的基本原理,重點講述了視頻的多觸發監控方式。基于此方案,只需采用普通的攝像頭和簡單的配置,無需額外布線和昂貴的監控設備,即可以快速地搭建一套經濟實用的網絡監控系統,為智能家居、樓宇安保提供了一個新的解決方案,具有較高的應用價值。
關鍵詞: 網絡視頻監控;區域;ZoneMinder;熱釋紅外;動作檢測
網絡視頻監控是通過網絡把視頻信息以數字化的形式進行傳輸,與傳統的監控方案相比,其具有效率高、使用方便和易于擴展等特性。隨著近年來物聯網技術的飛速發展,網絡視頻監控也被越來越多地應用在智能家居、倉儲物流、辦公樓宇和圖書館等領域。本文所講述的ZoneMinder即是一款Linux平臺上的網絡視頻監控軟件,基于此平臺,用戶可以快速搭建一套網絡視頻監控系統,所需硬件設備僅僅為若干個普通攝像頭和一臺運行Linux的服務器。圖1是ZonMinder監控方案的一種實現。
1 ZoneMinder介紹
ZoneMinder[1]是一套基于Linux操作系統的視頻數據監控的開源軟件,應用范圍廣泛,包括商業或家居CCTV、防盜和家庭成員的監聽等場所。ZoneMinder支持單一或多臺視頻攝像頭應用,具有攝取、分析、記錄和監視來源等功能。另外,它提供了一個友好的Web界面,使得用戶可以方便地配置、查看、歸檔、回放和刪除所監控視頻。
ZoneMinder源代碼由一些PHP代碼(提供Web server功能)、C++代碼(提供圖像處理功能)和腳本語言(提供外部接口和web接口)共同組成。另外,ZoneMinder的數據存放在MySQL數據庫里,因此,MySQL數據庫和Apache Webserver共同構成了ZoneMinder的基礎。
1.1 ZoneMinder的安裝
在Ubuntu主機環境下,可以采用一條命令快速安裝:sudo apt-get install zoneminder。由于ZoneMinder依賴于MySQL和PHP,系統會自動檢測并安裝這些依賴包。也可以從下載頁面下載源代碼(http://www.zoneminder.com/downloads),最新的穩定版本是1.25,通過對源代碼進行編譯而得到可執行文件[2]。
1.2 ZoneMinder的啟動、配置與訪問
在順利安裝好ZoneMinder之后,ZoneMinder即作為一個后臺服務存在[3],在Ubuntu主機環境下可以通過service命令來啟動ZoneMinder服務(系統默認是開機啟動ZoneMinder和Apache[4]服務)。如果ZoneMinder服務啟動成功,則可以在局域網上的任意節點通過瀏覽器來訪問ZoneMinder,默認的訪問地址是http://zm.home/zm。圖2是某一個客戶端在訪問ZoneMinder時獲得的實時視頻信息。
用戶可以通過web頁面獲得ZoneMinder的監控列表,如圖3所示,反映了整個監控系統中的所有監控節點:
圖3中每一行即代表一個監控點,其中:Name列代表監控節點的名稱;Function列代表監控節點的功能(模式);Soure列代表監控節點對應的Linux設備節點;Events列代表該節點已錄制的事件信息;Zones代表該節點的監控區域。用戶可以通過鼠標單擊相應列,即可對這些屬性進行更改。
2 監控觸發方式
傳統的監控系統通常采取一直錄像的方式,而ZoneMinder則可以采用靈活的錄像觸發方式,目前共有以下5種監控模式,管理員可以在Web頁面中進行設置。
(1)Monitor:只能觀察攝像頭拍攝到實時視頻,但對視頻頁面不分析,也不會產生事件或警告。
(2)Modect:所有捕捉到的圖像將被分析,進行圖像檢測。
(3)Record:如同傳統的錄像機一樣,錄制固定長度的視頻,不會進行運動檢測。
(4)Mocord:是Modect和Record的結合,不僅錄制視頻,還會對視頻中的運動圖像高亮顯示。
(5)Nodect:需要外部觸發源來觸發監控。
3 熱釋紅外觸發
如果監控點的模式選擇為Nodect,同時開啟外部觸發選項的話,則可以通過發送一個外部中斷給ZoneMinder來觸發監控事件。ZoneMinder會打開6802端口,進行監聽。如果接收到符合格式的外部信息,則會執行相應操作。如圖4所示。
ZoneMinder定義了所能處理的外部信息的格式:"<id>|<action>|<score>|<cause>|<text>|<showtext>"。其中:id為目標監控節點的編號。action有“on”,“off”,“cancel”和“show”4個選擇,“on”觸發監控,“off”關閉監控,“cancel”取消之前的打開或者關閉行為,“show”顯示圖像的輔助文本。ZoneMinder額外支持時間補償機制,即發送“on+20”將會打開監控20 s之后自動關閉監控。score為警告級別,通常為一個非零的數值。cause為32個字符以內的警報原因。text為256個字符以內的警報描述。showtext為將添加到圖像上的32個字符以內的文本。
基于以上討論,可以采用熱釋紅外傳感器來觸發監控事件。項目中使用的傳感器可以檢測到5 m范圍內的人體紅外輻射,當有人體靠近傳感器時,傳感器被觸發,即發送一個ZoneMinder外部信息至ZoneMinder,啟動監控。根據發送信息的內容,系統將會對監控時間進行設定。
4 運動檢測觸發
ZoneMinder不僅具有視頻監控的功能,還可以對視頻進行實時分析,對劃定區域內(外)進行運動檢測[5]。在ZoneMinder的配置界面中,可以對ZoneMinder進行區域劃定,如圖5所示,同時也可以根據圖6所示對選定區域進行設置,例如相鄰兩幀圖像的差異度達到多少時認為檢測到動作,也可以配置是對區域內的運動進行檢測還是針對區域外進行檢測。
在設置好監控區域之后,ZoneMinder如果檢測到區域有圖像變化則會觸發報警事件。在報警事件列表中,可以逐個選中事件,并可回放活動視頻。
ZoneMiner實現運動檢測的原理是對相鄰的兩幀圖像進行分析比對,如果圖像圖影之差大于設定范圍,則認為是有運動發生,這也避免了光線誤差或者環境所帶來的細微誤差。
依據本文所提出的基于ZoneMinder的監控方案,可以快速地搭建起網絡視頻監控方案,這使得智能家居、辦公樓宇的監控方案變得簡單易行。同時,ZoneMinder強大的圖像分析能力,也為實現無人值守的監控方案提供了堅實的基礎。
參考文獻
[1] http://www.ZoneMinder.com/.
[2] http://www.ZoneMinder.com/wiki/.
[3] WELLING L, THOMSON L.PHP和MySQL Web開發[M].武欣,譯.北京:機械工業出版社,2009.
[4] CHOPRA V, LI S, GENENDER J. Apache Tomcat 6高級編程[M].楊金奎,馮佳,李波,譯.北京:人民郵電出版社,2009.
[5] 文全剛.嵌入式Linux操作系統原理與應用[M].北京:北京航空航天大學出版社,2002.
[6] 奧萊理軟件臺灣公司.構建嵌入式Linux系統(第二版)[M].北京:中國電力出版社,2011.