摘 要: 網(wǎng)絡視頻監(jiān)控系統(tǒng)對海量視頻數(shù)據(jù)存儲和智能視頻分析服務的需求日益突出,針對系統(tǒng)硬件計算能力有限,不能滿足用戶需求的多樣性,系統(tǒng)擴展性受到存儲設備容量的限制等問題,通過虛擬化技術構建云計算基礎資源池,以Hadoop分布式文件系統(tǒng)存儲海量視頻數(shù)據(jù),使用MapReduce編程模型實現(xiàn)大規(guī)模并行計算,提高了系統(tǒng)的可擴展性和可靠性,為用戶提供實時視頻監(jiān)控和智能視頻分析服務。
關鍵詞: 云計算;視頻監(jiān)控;Hadoop
近年來,隨著視頻編碼技術、視頻存儲技術、視頻內(nèi)容分析以及IT技術的發(fā)展,視頻監(jiān)控正在向網(wǎng)絡化、高清化、智能化的方向發(fā)展。網(wǎng)絡視頻監(jiān)控方案改變了模擬監(jiān)控中的視頻傳輸及存儲方式,系統(tǒng)架構更簡潔、部署實施更便捷。盡管網(wǎng)絡視頻監(jiān)控系統(tǒng)有諸多優(yōu)點,但用戶的需求也在不斷提高,用戶希望系統(tǒng)要有更高的清晰度,更完善的功能,更穩(wěn)定的性能,更豐富的終端等。要實現(xiàn)大規(guī)模智能高清監(jiān)控,就必須從視頻源采集、視頻信號編解碼和傳輸、視頻實時監(jiān)控與分析、視頻文件存儲與回放等環(huán)節(jié)全面支持大規(guī)模智能高清。這樣就給系統(tǒng)設計、部署帶來了一系列現(xiàn)實的問題:網(wǎng)絡帶寬緊張、存儲空間龐大、對計算性能的要求成倍增長、投資與維護成本高昂、系統(tǒng)擴容升級壓力等。
云計算通過虛擬化技術將大量異構的服務器和網(wǎng)絡存儲設備構建成統(tǒng)一的資源池,為大規(guī)模智能高清視頻監(jiān)控系統(tǒng)提供可擴展的海量存儲資源和超強計算能力,靈活地為用戶提供所需的視頻監(jiān)控服務,同時減少系統(tǒng)建設、升級及運維管理的成本,提高資源利用率及系統(tǒng)運行可靠性。
1 云計算與虛擬化技術
1.1 云計算
NIST將云計算(Cloud Computing)定義為用戶可以方便地、按需通過網(wǎng)絡訪問共享資源池(網(wǎng)絡、服務器、存儲、應用和服務等),并且具有快速部署、最小的管理代價或最少的服務提供商干預的一種新型IT基礎運營模式[1]。Google、亞馬遜、IBM(藍云)、Oracle、微軟等公司出于不同的商業(yè)模式,對云計算給出了不同的商業(yè)概念,它們都體現(xiàn)了云計算五個方面的特征:超大規(guī)模、高可靠性、高可擴展性、按需服務、高可用性,同時提供三種類型的服務,分別是基礎設施即服務(IaaS),平臺即服務(PaaS)和軟件即服務(SaaS)。
1.2 虛擬化技術
云計算通過互聯(lián)網(wǎng)提供動態(tài)分配的、可擴展的和虛擬化的資源。虛擬化技術是所有云計算架構的基礎技術,為快速實施存儲和計算性能的無縫擴展提供了保障。虛擬化既可以將單個的物理資源(比如一臺服務器,一個操作系統(tǒng),一個應用程序,一個存儲設備)劃分成多個虛擬資源,也可以將多個物理資源(比如存儲設備或服務器)整合成一個虛擬資源池,虛擬化對上層應用或用戶隱藏了物理資源的底層屬性。虛擬化技術可以分為存儲虛擬化、計算虛擬化、操作系統(tǒng)虛擬化、應用虛擬化等[2]。
2 基于云計算的智能高清視頻監(jiān)控系統(tǒng)設計
2.1 網(wǎng)絡視頻監(jiān)控系統(tǒng)
大型網(wǎng)絡視頻監(jiān)控系統(tǒng)通常由多個分布式的監(jiān)控節(jié)點組成[3],每個監(jiān)控節(jié)點主要由三部分組成:前端視頻采集設備、集中管理系統(tǒng)(CMS)及客戶端。前端視頻采集設備包括IP攝像機和網(wǎng)絡視頻存儲設備(NVR),視頻數(shù)據(jù)存儲在NVR中,并由NVR向CMS和用戶轉發(fā)。視頻智能分析通常由單獨的硬件或嵌入到CMS中的軟件來實現(xiàn)。這種方案便于對設備和視頻數(shù)據(jù)進行集中管理,但是在可擴展性、資源利用率及系統(tǒng)性能方面卻存在不足。在可擴展性方面,隨著前端攝像機數(shù)量的增加,要相應地增加NVR。在資源利用率方面,NVR的剩余存儲容量不能進行靈活分配。在系統(tǒng)性能方面,當有多個用戶并發(fā)訪問同一NVR或對多個視頻流進行實時智能分析時,網(wǎng)絡帶寬和硬件計算能力成為系統(tǒng)瓶頸。
2.2 系統(tǒng)功能架構
基于云計算的智能高清視頻監(jiān)控系統(tǒng)在邏輯上可分為前端視頻輸入、云計算部分及視頻輸出。視頻數(shù)據(jù)從前端設備上傳到“云”端,在大規(guī)模視頻監(jiān)控系統(tǒng)中前端攝像機的數(shù)量可能達到數(shù)以千計,需要設計可擴展的存儲架構來優(yōu)化視頻數(shù)據(jù)的存儲和分發(fā),同時提供進行實時視頻智能分析所需的計算性能。
基于云計算的智能高清視頻監(jiān)控系統(tǒng)功能架構如圖1所示。
系統(tǒng)主要由以下組件構成:
(1)虛擬化資源池:使用虛擬化技術將監(jiān)控節(jié)點的物理資源構建成統(tǒng)一的資源池,形成視頻監(jiān)控系統(tǒng)的基礎設施。圖2表示了在虛擬機資源的分配情況。在可擴展的系統(tǒng)架構中,所有系統(tǒng)資源都是模塊化的,并且可以根據(jù)實際使用情況進行動態(tài)分配。
?。?)視頻流采集:將前端設備輸入的視頻流轉換為標準視頻格式,通過動態(tài)地分配實時負載,支持大規(guī)模視頻流采集。
?。?)流媒體服務器:在分布式監(jiān)控節(jié)點中的每臺虛擬機上安裝流媒體服務器,虛擬機之間共享計算資源和網(wǎng)絡帶寬。使用內(nèi)存映射文件技術(memrory-mapped file)來存儲臨時視頻數(shù)據(jù),減少了用戶進行實時監(jiān)控視頻時的磁盤I/O開銷。通過集成開源軟件FFmpeg,對實時監(jiān)控視頻進行格式和分辨率轉碼。
?。?)Hadoop文件系統(tǒng):實現(xiàn)分布式的視頻數(shù)據(jù)存儲和備份機制。在視頻流采集模塊處理完輸入視頻流后,使用Hadoop-Fuse協(xié)議將視頻數(shù)據(jù)存儲在Hadoop文件系統(tǒng)中[4]。
(5)策略控制模塊:該模塊通過操作分布式數(shù)據(jù)庫HBase,實現(xiàn)訪問控制并記錄用戶操作日志。
?。?)智能分析模塊:由于視頻數(shù)據(jù)存儲在Hadoop文件系統(tǒng)中,可以使用Hadoop Map/Reduce分布式計算模型來進行智能視頻分析。
(7)Web服務器:用戶不需要安裝單獨的軟件,通過Web瀏覽器就可進行內(nèi)容管理及視頻檢索服務。
2.3 系統(tǒng)部署方式
如圖3所示,部署基于云計算的智能高清視頻監(jiān)控系統(tǒng)主要包括中心節(jié)點和監(jiān)控節(jié)點兩部分。中心節(jié)點為所有監(jiān)控節(jié)點提供命名節(jié)點集群(Name node cluster)、視頻分析算法函數(shù)庫及控制策略,對監(jiān)控節(jié)點資源進行統(tǒng)一分配[5]。監(jiān)控節(jié)點提供計算和存儲資源,負責接收處理本地輸入視頻流,視頻數(shù)據(jù)存儲在本地或相鄰的監(jiān)控節(jié)點上,并為用戶提供遠程實時視頻監(jiān)控和智能分析服務。
3 關鍵技術及實現(xiàn)
3.1 視頻數(shù)據(jù)存儲備份
系統(tǒng)基于Hadoop分布式文件系統(tǒng)的數(shù)據(jù)副本機制對視頻數(shù)據(jù)進行備份。一個視頻數(shù)據(jù)塊有三個副本,副本的存儲位置如圖4所示,第一個、第二個副本放在監(jiān)控節(jié)點本地的兩個數(shù)據(jù)節(jié)點上,而第三個副本放在其他監(jiān)控節(jié)點的數(shù)據(jù)節(jié)點上,當某一節(jié)點上的數(shù)據(jù)被破壞后,可以讀取其他節(jié)點上的副本,提高了系統(tǒng)穩(wěn)定性。
3.2 視頻智能分析
視頻監(jiān)控系統(tǒng)智能分析包括實時視頻分析和離線視頻分析。視頻數(shù)據(jù)存儲在Hadoop文件系統(tǒng)中,可以使用Map/Reduce大規(guī)模并行計算處理圖像識別、人臉識別、行為檢測、移動跟蹤等需要大量CPU計算能力的任務。
3.3 實時轉碼(Transcending)
由于用戶端設備所支持的視頻格式不同,并且圖像顯示分辨率受到傳輸帶寬的限制,需要對源視頻流進行轉碼,以適合用戶實際的格式和分辨率。開源軟件FFmpeg能夠動態(tài)地對視頻進行轉碼,但是軟件本身是CPU敏感的應用,如果有大量用戶訪問同一服務器,會造成系統(tǒng)瓶頸,通過在多臺服務器上存放視頻流不同的副本,由多臺服務器分擔轉碼任務,較好地滿足了不同的用戶請求。
本文提出了一種基于云計算的智能高清視頻監(jiān)控系統(tǒng)的解決方案。通過整合視頻監(jiān)控系統(tǒng)中計算和存儲硬件資源,實現(xiàn)了對硬件資源的統(tǒng)一配置,提高了系統(tǒng)的可擴展性、資源的使用效率,滿足了用戶對高清化、智能化的需求,同時對視頻數(shù)據(jù)備份、視頻智能分析、實時轉碼等關鍵技術進行了闡述和分析。
參考文獻
[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.