張立志,李學(xué)文
(1. 西安外事學(xué)院,陜西 西安 710077; 2. 西安西科安全技術(shù)有限公司,陜西 西安 710054)
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)不斷發(fā)展,以通信技術(shù)、網(wǎng)絡(luò)技術(shù)等作為平臺的網(wǎng)絡(luò)視頻監(jiān)控成為研究重點(diǎn),并且應(yīng)用范圍越來越廣泛。社會經(jīng)濟(jì)的不斷發(fā)展使我國城市面貌也出現(xiàn)了一定的變化,對城市治安管理提出了較高的要求,城市視頻監(jiān)控系統(tǒng)成為研究重點(diǎn),視頻監(jiān)控范圍也不斷擴(kuò)大[1]。所以,如何使監(jiān)控系統(tǒng)海量視頻數(shù)據(jù)安全存儲與處理成為安防領(lǐng)域研究中的重點(diǎn),而云計(jì)算為海量視頻數(shù)據(jù)存儲與處理奠定了基礎(chǔ)。本文提出的基于Hadoop技術(shù)的城市視頻監(jiān)控系統(tǒng),在現(xiàn)代智能化監(jiān)控系統(tǒng)發(fā)展過程中具有重要意義。
基于Hadoop的模式與城市監(jiān)控需求相結(jié)合,通過4個(gè)方面進(jìn)行規(guī)劃建設(shè),包括應(yīng)用服務(wù)層、展示層、平臺接入層、技術(shù)支撐層[2],圖1為系統(tǒng)總體架構(gòu)。
圖1 系統(tǒng)總體架構(gòu)
平臺接入層:前段感知層主要包括轄區(qū)內(nèi)的航道、道路、重要場所、路口等。因?yàn)楦鱾€(gè)監(jiān)控點(diǎn)大部分都是在室外并且光線環(huán)境改變比較大的地區(qū),所以監(jiān)控點(diǎn)使用勻速一體球結(jié)合日夜型一體攝像機(jī),從而保證各不同光線都能夠得到良好圖像質(zhì)量[3]。根據(jù)H.264實(shí)現(xiàn)收集視頻信號的編碼,利用多路MPEG-Ⅱ壓縮,使用視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)安防標(biāo)準(zhǔn)實(shí)現(xiàn)網(wǎng)絡(luò)傳輸,各個(gè)視頻監(jiān)控設(shè)備使用RTSP接口互聯(lián)。視頻流壓縮編碼之后封裝在網(wǎng)絡(luò)傳輸IP數(shù)據(jù)包,利用Internet在云資源池中上傳[4]。
網(wǎng)絡(luò)層為視頻監(jiān)控系統(tǒng)和前段監(jiān)控點(diǎn)控制信號傳輸通道,使用光纜傳輸方式實(shí)現(xiàn)前端監(jiān)控點(diǎn),以不同地點(diǎn)使用就近原則,多個(gè)點(diǎn)共用光纜。監(jiān)控位視頻資源在監(jiān)控中心傳輸,并且存儲到部門機(jī)房中,利用IP視頻專網(wǎng)和市局、分局的視頻系統(tǒng),構(gòu)成三級視頻專網(wǎng)[5]。在分布式監(jiān)控節(jié)點(diǎn)虛擬機(jī)中實(shí)現(xiàn)流媒體服務(wù)器的安裝,虛擬機(jī)實(shí)現(xiàn)網(wǎng)絡(luò)帶寬和計(jì)算資源的共享。利用內(nèi)存映射文件技術(shù)對臨時(shí)視頻數(shù)據(jù)進(jìn)行存儲,對實(shí)時(shí)監(jiān)控視頻實(shí)現(xiàn)分辨率轉(zhuǎn)碼與格式轉(zhuǎn)碼[6]。
應(yīng)用服務(wù)層:能夠提供云視頻的分析服務(wù),比如車輛數(shù)據(jù)、人臉數(shù)據(jù)、視頻圖像、聯(lián)動報(bào)警等分析服務(wù),統(tǒng)一化管理視頻監(jiān)控?cái)?shù)據(jù)。
技術(shù)支撐層:對不同監(jiān)控點(diǎn)傳輸視頻信息進(jìn)行匯聚,云存儲使用MySQL對非關(guān)系型數(shù)據(jù)庫進(jìn)行存儲。
展示層:監(jiān)控中心為系統(tǒng)主要管理部門,實(shí)施24h監(jiān)控記錄,主要包括管理軟件、矩陣主機(jī)、電視墻等。監(jiān)控中心要管理所管轄的區(qū)域,實(shí)現(xiàn)前段圖像調(diào)看、錄像、控制等,并且對遠(yuǎn)程錄像文件進(jìn)行備份、調(diào)看和檢索。
為了能夠存儲不同設(shè)備,本文設(shè)計(jì)存儲接口調(diào)用上層軟件,利用Adapter適配器模式適配不同存儲設(shè)備。Adapter模式使一個(gè)類接口轉(zhuǎn)變成為另外一類接口,因?yàn)榫唧w設(shè)備可通過不同訪問來實(shí)現(xiàn),所以要實(shí)現(xiàn)統(tǒng)一操作。圖2為存儲接口具體設(shè)計(jì)。
圖2 存儲接口具體設(shè)計(jì)
存儲模塊與VOD模塊中的接口利用SeorageInterface實(shí)現(xiàn)訪問,以不同存儲設(shè)備得出不同派生類即可。假如要支持另外分布式文件系統(tǒng),只需要派生得出另外存儲類型,在派生類中對相應(yīng)存儲設(shè)備進(jìn)行調(diào)用。
系統(tǒng)視頻流主要對普通PC創(chuàng)建分布式存儲集群進(jìn)行存儲,系統(tǒng)通過應(yīng)用層實(shí)現(xiàn)云存儲。云存儲管理模塊通過單獨(dú)進(jìn)程在HDFS集群中運(yùn)行,平臺事物中心對相應(yīng)業(yè)務(wù)存儲,并且直接和云存儲模塊交互。云存儲系統(tǒng)屬于HDFS集群中間同心建,對存儲方式屏蔽,平臺服務(wù)器只需要和云存儲接入系統(tǒng)進(jìn)行通信。圖3為云存儲總體架構(gòu)。
圖3 云存儲總體架構(gòu)
云存儲服務(wù)器包括存儲層、基礎(chǔ)管理層、訪問層和應(yīng)用接口層。存儲層為基礎(chǔ),包括NAS網(wǎng)絡(luò)存儲設(shè)備、SATA等。云存儲系統(tǒng)一般實(shí)現(xiàn)水平擴(kuò)展,在不同地方分布,利用以太網(wǎng)連接?;A(chǔ)管理層利用HDFS分布式文件系統(tǒng)管理基本存儲設(shè)備,實(shí)現(xiàn)設(shè)備協(xié)同工作,使數(shù)據(jù)訪問性能得到提高。應(yīng)用接口層為接口部分,對基礎(chǔ)管理層API進(jìn)行訪問。訪問層能夠?qū)崿F(xiàn)接口層封裝,系統(tǒng)直接利用訪問層在云系統(tǒng)中存儲數(shù)據(jù)。圖4為云存儲服務(wù)器層次接口。
圖4 云存儲服務(wù)器層次接口
通過多文件塊構(gòu)成分布式文件系統(tǒng)中的錄像,通常在存儲接口層包括一個(gè)文件。為了能夠?qū)Σ煌曨l流進(jìn)行存儲,就要實(shí)現(xiàn)文件封裝,并且在每個(gè)視頻文件開始的地方設(shè)置文件原信息,對視頻信息進(jìn)行記錄,實(shí)現(xiàn)接收碼流的切割分片。其中的文件原信息主要對攝像機(jī)中視頻信息和錄像開始、結(jié)束時(shí)間進(jìn)行記錄。因?yàn)榉植际较到y(tǒng)內(nèi)部就能夠處理文件,那么要求上層直接寫入即可,不需要考慮文件是否過大。
每個(gè)錄像段都包含如下信息,如,錄像段開始的MagicNumber能夠?qū)ふ艺_錄像段開頭,CRC校驗(yàn)值能夠校驗(yàn)錄像段信息,序列號指的是錄像段序列標(biāo)志,對網(wǎng)絡(luò)傳輸過程中出現(xiàn)丟包的問題進(jìn)行處理,長度指的是錄像段大小,數(shù)據(jù)段之后MagicNumber能夠結(jié)束錄像段。
客戶端在實(shí)現(xiàn)前端實(shí)時(shí)視頻監(jiān)控過程中并不是利用視頻監(jiān)控軟件直接交互,而是與HDFS分布式視頻存儲服務(wù)器交互,由流媒體服務(wù)器使視頻數(shù)據(jù)流在處理模塊實(shí)時(shí)監(jiān)控模塊中發(fā)送實(shí)現(xiàn)的。實(shí)時(shí)監(jiān)控模塊和HDFS分布式存儲服務(wù)器master數(shù)據(jù)接收部分是利用TCP/IP協(xié)議實(shí)現(xiàn)通信,并且得到空閑slave,然后利用監(jiān)控視頻的存儲部分和轉(zhuǎn)發(fā)模塊創(chuàng)建連接。實(shí)時(shí)監(jiān)控模塊得到空閑slave信息之后,利用TCP協(xié)議對此節(jié)點(diǎn)發(fā)送請求,實(shí)時(shí)監(jiān)控某個(gè)路前端采集視頻,接收并請求slave確認(rèn)后,利用標(biāo)準(zhǔn)RTSP實(shí)時(shí)流傳輸協(xié)議使此路前端收集視頻數(shù)據(jù)流對實(shí)時(shí)監(jiān)控部分發(fā)送,監(jiān)控軟件監(jiān)控端能夠利用網(wǎng)頁實(shí)時(shí)監(jiān)控視頻。歷史視頻回放部分利用TCP協(xié)議和存儲服務(wù)器通信,得出歷史視頻信息,并且對此視頻slave發(fā)送視頻調(diào)用命令,然后此slave通過確認(rèn)之后就能夠使歷史視頻文件利用流媒體在歷史視頻錄像查看模塊中轉(zhuǎn)發(fā),監(jiān)控端能夠通過web客戶端對此歷史視頻進(jìn)行播放。圖5為存儲端和監(jiān)控端通信。實(shí)時(shí)監(jiān)控流程如圖6所示,歷史視頻回放流程如圖7所示。
圖5 存儲端和監(jiān)控端通信
圖6 實(shí)時(shí)監(jiān)控流程
圖7 歷史視頻回放流程
實(shí)時(shí)視頻監(jiān)控由RTSP流媒體實(shí)時(shí)流傳輸協(xié)議、視頻處理軟件、轉(zhuǎn)碼部分等實(shí)時(shí)模塊構(gòu)成。在某路視頻采集前端視頻到了一定容量的時(shí)候,存儲管理系統(tǒng)會重新調(diào)度存儲節(jié)點(diǎn),選擇全新的slave節(jié)點(diǎn)創(chuàng)建監(jiān)控軟件的通信,從而提供視頻存儲服務(wù),保證負(fù)載均衡,避免某slave持續(xù)對某路視頻監(jiān)控,使系統(tǒng)出現(xiàn)異常,以此使系統(tǒng)穩(wěn)定性得到提高。歷史視頻調(diào)用回放要求客戶能夠提交請求,以用戶請求在HDFS存儲服務(wù)器中得到用戶指定視頻文件存儲信息,之后以視頻文件存儲節(jié)點(diǎn)IP地址、視頻文件時(shí)間、在節(jié)點(diǎn)中路徑等信息利用master尋找存儲此slave節(jié)點(diǎn)并且發(fā)送、得到視頻請求命令,從而找到用戶指定的視頻文件,利用流媒體使視頻到監(jiān)控軟件監(jiān)控端回放。
視頻監(jiān)控系統(tǒng)數(shù)據(jù)實(shí)體信息主要包括特殊用戶、各級管理員、視頻與一般用戶。利用MySQL數(shù)據(jù)庫對數(shù)據(jù)實(shí)體信息進(jìn)行管理。
首先,對用戶數(shù)據(jù)庫進(jìn)行設(shè)計(jì)。利用字段u_group對用戶級別進(jìn)行記錄。用戶數(shù)據(jù)庫包括區(qū)管理員、系統(tǒng)管理員、公安、小區(qū)管理員等。不同用戶的級別也各有不同,有級別高的,也有較高用戶權(quán)限,表1為用戶數(shù)據(jù)庫。
表1 用戶數(shù)據(jù)庫
視頻數(shù)據(jù)庫的設(shè)計(jì)。利用字段限定視頻地域范圍,比如:v_firsub指的是一級地域,是指某學(xué)?;蛘叱鞘?;v_secsub指的是二級地域,是指學(xué)?;蛘叱鞘懈綄俚亍1?為視頻數(shù)據(jù)庫。
表2 視頻數(shù)據(jù)庫
然后,對用戶訪問視頻數(shù)據(jù)庫進(jìn)行設(shè)計(jì)。既方便今后統(tǒng)計(jì)視頻訪問情況和系統(tǒng)訪問量,還能夠?qū)σ曨l安全性進(jìn)行保證,如果視頻受到惡意破壞也能夠?qū)τ脩暨M(jìn)行追蹤,表3為用戶訪問視頻數(shù)據(jù)庫。
表3 用戶訪問視頻數(shù)據(jù)庫
最后,是進(jìn)行視頻分割數(shù)據(jù)庫的設(shè)計(jì)。對無損分割之后的視頻塊信息進(jìn)行記錄。表4為視頻分割數(shù)據(jù)庫。
表4 視頻分割數(shù)據(jù)庫
針對本次設(shè)計(jì)的人臉系統(tǒng)展開實(shí)時(shí)測試,分別對于系統(tǒng)10004與20004類人臉分別進(jìn)行系統(tǒng)測試,設(shè)計(jì)了共計(jì)5幅不同圖像下的人臉(表5)作為運(yùn)用本文設(shè)計(jì)的系統(tǒng)實(shí)時(shí)監(jiān)控的人臉識別平均用時(shí)。測試后發(fā)現(xiàn),基于Katta分布式搜索耗費(fèi)時(shí)間較少,基本達(dá)到了系統(tǒng)預(yù)期目標(biāo)。
表5 人臉圖像識別用時(shí) 單位:s
在大數(shù)據(jù)時(shí)代中,信息爆炸對傳統(tǒng)視頻監(jiān)控提出了挑戰(zhàn)。在科技不斷發(fā)展的過程中,使用基于Hadoop大數(shù)據(jù)技術(shù)視頻監(jiān)控能夠解決傳統(tǒng)視頻監(jiān)控的問題。數(shù)據(jù)分析和數(shù)據(jù)挖掘技術(shù)的應(yīng)用,拓展了城市頻視監(jiān)控的應(yīng)用范圍,從而保證了各個(gè)領(lǐng)域安全性。