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