摘 要: 網絡視頻監控系統對海量視頻數據存儲和智能視頻分析服務的需求日益突出,針對系統硬件計算能力有限,不能滿足用戶需求的多樣性,系統擴展性受到存儲設備容量的限制等問題,通過虛擬化技術構建云計算基礎資源池,以Hadoop分布式文件系統存儲海量視頻數據,使用MapReduce編程模型實現大規模并行計算,提高了系統的可擴展性和可靠性,為用戶提供實時視頻監控和智能視頻分析服務。
關鍵詞: 云計算;視頻監控;Hadoop
近年來,隨著視頻編碼技術、視頻存儲技術、視頻內容分析以及IT技術的發展,視頻監控正在向網絡化、高清化、智能化的方向發展。網絡視頻監控方案改變了模擬監控中的視頻傳輸及存儲方式,系統架構更簡潔、部署實施更便捷。盡管網絡視頻監控系統有諸多優點,但用戶的需求也在不斷提高,用戶希望系統要有更高的清晰度,更完善的功能,更穩定的性能,更豐富的終端等。要實現大規模智能高清監控,就必須從視頻源采集、視頻信號編解碼和傳輸、視頻實時監控與分析、視頻文件存儲與回放等環節全面支持大規模智能高清。這樣就給系統設計、部署帶來了一系列現實的問題:網絡帶寬緊張、存儲空間龐大、對計算性能的要求成倍增長、投資與維護成本高昂、系統擴容升級壓力等。
云計算通過虛擬化技術將大量異構的服務器和網絡存儲設備構建成統一的資源池,為大規模智能高清視頻監控系統提供可擴展的海量存儲資源和超強計算能力,靈活地為用戶提供所需的視頻監控服務,同時減少系統建設、升級及運維管理的成本,提高資源利用率及系統運行可靠性。
1 云計算與虛擬化技術
1.1 云計算
NIST將云計算(Cloud Computing)定義為用戶可以方便地、按需通過網絡訪問共享資源池(網絡、服務器、存儲、應用和服務等),并且具有快速部署、最小的管理代價或最少的服務提供商干預的一種新型IT基礎運營模式[1]。Google、亞馬遜、IBM(藍云)、Oracle、微軟等公司出于不同的商業模式,對云計算給出了不同的商業概念,它們都體現了云計算五個方面的特征:超大規模、高可靠性、高可擴展性、按需服務、高可用性,同時提供三種類型的服務,分別是基礎設施即服務(IaaS),平臺即服務(PaaS)和軟件即服務(SaaS)。
1.2 虛擬化技術
云計算通過互聯網提供動態分配的、可擴展的和虛擬化的資源。虛擬化技術是所有云計算架構的基礎技術,為快速實施存儲和計算性能的無縫擴展提供了保障。虛擬化既可以將單個的物理資源(比如一臺服務器,一個操作系統,一個應用程序,一個存儲設備)劃分成多個虛擬資源,也可以將多個物理資源(比如存儲設備或服務器)整合成一個虛擬資源池,虛擬化對上層應用或用戶隱藏了物理資源的底層屬性。虛擬化技術可以分為存儲虛擬化、計算虛擬化、操作系統虛擬化、應用虛擬化等[2]。
2 基于云計算的智能高清視頻監控系統設計
2.1 網絡視頻監控系統
大型網絡視頻監控系統通常由多個分布式的監控節點組成[3],每個監控節點主要由三部分組成:前端視頻采集設備、集中管理系統(CMS)及客戶端。前端視頻采集設備包括IP攝像機和網絡視頻存儲設備(NVR),視頻數據存儲在NVR中,并由NVR向CMS和用戶轉發。視頻智能分析通常由單獨的硬件或嵌入到CMS中的軟件來實現。這種方案便于對設備和視頻數據進行集中管理,但是在可擴展性、資源利用率及系統性能方面卻存在不足。在可擴展性方面,隨著前端攝像機數量的增加,要相應地增加NVR。在資源利用率方面,NVR的剩余存儲容量不能進行靈活分配。在系統性能方面,當有多個用戶并發訪問同一NVR或對多個視頻流進行實時智能分析時,網絡帶寬和硬件計算能力成為系統瓶頸。
2.2 系統功能架構
基于云計算的智能高清視頻監控系統在邏輯上可分為前端視頻輸入、云計算部分及視頻輸出。視頻數據從前端設備上傳到“云”端,在大規模視頻監控系統中前端攝像機的數量可能達到數以千計,需要設計可擴展的存儲架構來優化視頻數據的存儲和分發,同時提供進行實時視頻智能分析所需的計算性能。
基于云計算的智能高清視頻監控系統功能架構如圖1所示。
系統主要由以下組件構成:
?。?)虛擬化資源池:使用虛擬化技術將監控節點的物理資源構建成統一的資源池,形成視頻監控系統的基礎設施。圖2表示了在虛擬機資源的分配情況。在可擴展的系統架構中,所有系統資源都是模塊化的,并且可以根據實際使用情況進行動態分配。
?。?)視頻流采集:將前端設備輸入的視頻流轉換為標準視頻格式,通過動態地分配實時負載,支持大規模視頻流采集。
(3)流媒體服務器:在分布式監控節點中的每臺虛擬機上安裝流媒體服務器,虛擬機之間共享計算資源和網絡帶寬。使用內存映射文件技術(memrory-mapped file)來存儲臨時視頻數據,減少了用戶進行實時監控視頻時的磁盤I/O開銷。通過集成開源軟件FFmpeg,對實時監控視頻進行格式和分辨率轉碼。
(4)Hadoop文件系統:實現分布式的視頻數據存儲和備份機制。在視頻流采集模塊處理完輸入視頻流后,使用Hadoop-Fuse協議將視頻數據存儲在Hadoop文件系統中[4]。
?。?)策略控制模塊:該模塊通過操作分布式數據庫HBase,實現訪問控制并記錄用戶操作日志。
?。?)智能分析模塊:由于視頻數據存儲在Hadoop文件系統中,可以使用Hadoop Map/Reduce分布式計算模型來進行智能視頻分析。
?。?)Web服務器:用戶不需要安裝單獨的軟件,通過Web瀏覽器就可進行內容管理及視頻檢索服務。
2.3 系統部署方式
如圖3所示,部署基于云計算的智能高清視頻監控系統主要包括中心節點和監控節點兩部分。中心節點為所有監控節點提供命名節點集群(Name node cluster)、視頻分析算法函數庫及控制策略,對監控節點資源進行統一分配[5]。監控節點提供計算和存儲資源,負責接收處理本地輸入視頻流,視頻數據存儲在本地或相鄰的監控節點上,并為用戶提供遠程實時視頻監控和智能分析服務。
3 關鍵技術及實現
3.1 視頻數據存儲備份
系統基于Hadoop分布式文件系統的數據副本機制對視頻數據進行備份。一個視頻數據塊有三個副本,副本的存儲位置如圖4所示,第一個、第二個副本放在監控節點本地的兩個數據節點上,而第三個副本放在其他監控節點的數據節點上,當某一節點上的數據被破壞后,可以讀取其他節點上的副本,提高了系統穩定性。
3.2 視頻智能分析
視頻監控系統智能分析包括實時視頻分析和離線視頻分析。視頻數據存儲在Hadoop文件系統中,可以使用Map/Reduce大規模并行計算處理圖像識別、人臉識別、行為檢測、移動跟蹤等需要大量CPU計算能力的任務。
3.3 實時轉碼(Transcending)
由于用戶端設備所支持的視頻格式不同,并且圖像顯示分辨率受到傳輸帶寬的限制,需要對源視頻流進行轉碼,以適合用戶實際的格式和分辨率。開源軟件FFmpeg能夠動態地對視頻進行轉碼,但是軟件本身是CPU敏感的應用,如果有大量用戶訪問同一服務器,會造成系統瓶頸,通過在多臺服務器上存放視頻流不同的副本,由多臺服務器分擔轉碼任務,較好地滿足了不同的用戶請求。
本文提出了一種基于云計算的智能高清視頻監控系統的解決方案。通過整合視頻監控系統中計算和存儲硬件資源,實現了對硬件資源的統一配置,提高了系統的可擴展性、資源的使用效率,滿足了用戶對高清化、智能化的需求,同時對視頻數據備份、視頻智能分析、實時轉碼等關鍵技術進行了闡述和分析。
參考文獻
[1] MELL P, GRANCE T. The NIST Definition of Cloud Computing(Draft). NIST Special Publication 800-145, January 2011.
[2] LI P. Selecting and using virtualization solutions: our experiences with VMware and VirtualBox[J]. Journal of Computing Sciences in Colleges, 2010,25(3):11-17.
[3] OSTHEIMER D, LEMAY S, GHAZAL M, et al. A modular distributed video surveillance system over IP [C]. 2006 Canadian Conference on Electrical and Computer Engineering, CCECE′06, May 7-10 2006:518-521
[4] KUO T, NI Z, DE LEO C, et al. Design and Implementation of a Wide Area, Large-Scale Camera Network[C]. IEEE Computer Society Conference on Computer Vision and Pattern Recognition, IEEE Workshop on Camera Networks, Jun. 2010.
[5] DETMOLD H, HENGEL A, DICK A, et al. Topology Estimation for Thousand-Camera Surveillance Networks[C]. IEEE Distributed Smart Cameras(ICDSC),2007:195-202.