劉智慧,周 媛,苗耀鋒
(西安外事學(xué)院 現(xiàn)代教育技術(shù)中心,西安 710077)
近年來(lái),數(shù)字監(jiān)控設(shè)備的普及使得所需儲(chǔ)存的數(shù)字視頻內(nèi)容大量增加,從這些視頻內(nèi)容中分析取得重要的信息與事件將依賴(lài)于視頻處理的技術(shù):人臉識(shí)別、車(chē)牌識(shí)別、對(duì)象檢索及移動(dòng)檢測(cè)等技術(shù)。由于視頻處理運(yùn)算的復(fù)雜度是相當(dāng)高的,有此需求的個(gè)人、商家、公司或政府等單位,都要花費(fèi)很大的成本去購(gòu)置高性能的設(shè)備來(lái)進(jìn)行復(fù)雜視頻處理運(yùn)算。而云計(jì)算平臺(tái)具有并行化運(yùn)算及集中式資源共享的特性,剛好可以解決這樣的問(wèn)題[1]。如何將視頻處理模塊進(jìn)行云端化的架構(gòu)及流程即是本文探討的主要問(wèn)題。
要將視頻處理模塊功能整合到云端平臺(tái)中,可采用下列三種方式:1)視頻處理模塊直接執(zhí)行:等同于在單臺(tái)個(gè)人計(jì)算機(jī)執(zhí)行一支視頻處理程序,無(wú)法有效利用云端資源。2)替原本的視頻處理模塊,重寫(xiě)工作分配程序:在租賃的多臺(tái)虛擬主機(jī)上,自行重寫(xiě)Client/Server程序及負(fù)載平衡機(jī)制,來(lái)分派視頻處理工作到這些主機(jī)上,并以Socket方式進(jìn)行虛擬主機(jī)間的溝通。3)使用某種PaaS的平臺(tái),利用它提供的框架,修改視頻處理算法:例如使用Hadoop,利用Hadoop提供的應(yīng)用程序開(kāi)發(fā)接口,采用如Java/C/C++語(yǔ)言修改既有的視頻處理模塊,以實(shí)作Hadoop的MapReduce機(jī)制。
圖1 云端視頻處理平臺(tái)的系統(tǒng)架構(gòu)與運(yùn)行流程
本論文以Hadoop并行化架構(gòu)為基礎(chǔ),著重PaaS層的中介平臺(tái)開(kāi)發(fā),開(kāi)發(fā)一套云端視頻處理平臺(tái)來(lái)作為視頻處理與云端平臺(tái)的媒介。
我們提出的平臺(tái)架構(gòu)及其運(yùn)作流程如圖1所示,系統(tǒng)的前端用戶(hù)接口采用GWT工具[2]所開(kāi)發(fā),是一個(gè)網(wǎng)絡(luò)桌面系統(tǒng)。系統(tǒng)主要包含三個(gè)功能:1)Web Server;2)Hadoop;3)VA Server。Web Server服務(wù)器端程序采用GWT工具開(kāi)發(fā),主要將前端用戶(hù)所傳來(lái)的視頻分析要求和參數(shù)轉(zhuǎn)送給Hadoop系統(tǒng)。Hadoop系統(tǒng)主要分為二個(gè)部份,第一部份是MapReduce,主要是處理分布式并行運(yùn)算;第二個(gè)部份是HDFS,用來(lái)進(jìn)行分布式儲(chǔ)存和備份系統(tǒng)的數(shù)據(jù)及分析結(jié)果。VA Server安裝有多種視頻處理模塊VA-1,VA-2,…,VA-N,當(dāng)它接收到VA Client所傳送過(guò)來(lái)的task時(shí),會(huì)利用VA loader加載需要的視頻處理模塊,然后由Processor模塊進(jìn)行分析,再將分析的結(jié)果回傳給VA Client,然后由VA Client直接將分析結(jié)果寫(xiě)入HDFS。
接下來(lái),我們將介紹整個(gè)系統(tǒng)的運(yùn)作流程,每個(gè)流程都用帶括號(hào)的數(shù)字表示。
使用者利用前端網(wǎng)絡(luò)桌面系統(tǒng)的使用者接口來(lái)啟動(dòng)某個(gè)云端視頻處理應(yīng)用程序,并輸入需要的分析參數(shù),這個(gè)request將被傳送給后端的Web Server。
1)Web Server依據(jù)request的需求,自動(dòng)產(chǎn)生Hadoop系統(tǒng)執(zhí)行所需要的input config files,然后將input config files儲(chǔ)存在HDFS,以供Hadoop MapReduce platform使用。
2) Web Server開(kāi)始啟動(dòng)Hadoop系統(tǒng)的Map-Reduce程序。
3)由HDFS讀取需要的input config files,針對(duì)requested job的MapReduce運(yùn)作,作需要的配置,并且將此job分割為許多較小的tasks,然后分散到TaskTrackers,然后每個(gè)TaskTrackers再傳送task給自己的VA Client模塊。
4)VA Client模塊將此task,傳送給自己的VA Server。
5)VA Server根據(jù)task的參數(shù),讀取要分析的live/stored video sources。
6)VA loader加載要使用的VA模塊,然后Processor開(kāi)始對(duì)接收到的視頻進(jìn)行分析,再將所得到的分析結(jié)果,回傳給VA Client。
7)VA Client將分析結(jié)果寫(xiě)入HDFS。
8)Web Server周期性去讀取儲(chǔ)存于HDFS的分析結(jié)果。
9)Web Server將分析結(jié)果回傳給前端網(wǎng)絡(luò)桌面系統(tǒng)的使用者接口來(lái)顯示。
圖2 車(chē)牌識(shí)別系統(tǒng)流程圖
本文的車(chē)牌識(shí)別方法主要有三個(gè)步驟:車(chē)牌定位、字符切割與字符識(shí)別,個(gè)別模塊分述如下。
1)車(chē)牌定位:采用垂直方向的影像梯度做前處理,利用預(yù)先設(shè)定大小的移動(dòng)窗口快速掃描整張影像,同時(shí)利用統(tǒng)計(jì)的車(chē)牌樣本的邊緣密度、長(zhǎng)寬比、最小長(zhǎng)寬等信息,檢查掃描區(qū)域是否為影像中的車(chē)牌候選區(qū)域。
2)字符切割:字符切割采用X-Y切割的方式[3],首先針對(duì)車(chē)牌候選區(qū)塊做X方向掃描以定出字符區(qū)域的最高及最低的水平位置。接著對(duì)Y方向進(jìn)行掃描,以車(chē)牌候選區(qū)塊的1/6高度為搜尋區(qū)域,找出垂直灰階投影的區(qū)部峰值,并針對(duì)峰值間以最符合字符區(qū)塊長(zhǎng)寬比為原則進(jìn)行區(qū)塊合并。
3)字符識(shí)別:步驟2)求得車(chē)牌字符后,將每個(gè)字符影像進(jìn)行正規(guī)化,并擷取局部特征為Zone、Cross、Histogram和Profile等四大類(lèi)。
我們使用了八臺(tái)e-Box主機(jī)(Atom 1.8GHz)來(lái)構(gòu)建一個(gè)小型的實(shí)驗(yàn)性云計(jì)算平臺(tái),我們的云端視頻處理系統(tǒng)安裝于此云計(jì)算平臺(tái)。在前端的行動(dòng)攝影機(jī)部份,此行動(dòng)式攝影機(jī)可通過(guò)3G/WiMax/WiFi的無(wú)線(xiàn)網(wǎng)絡(luò)上傳實(shí)時(shí)取得的影音信息到中央服務(wù)器組以進(jìn)行視頻及分析。我們的云端視頻處理平臺(tái),將針對(duì)行動(dòng)式攝影機(jī)取得的實(shí)時(shí)影音數(shù)據(jù)流,作并行化的視頻處理運(yùn)算,來(lái)驗(yàn)證此云端平臺(tái)的可行性及有效性。
在網(wǎng)絡(luò)桌面系統(tǒng)的實(shí)作部份,我們使用了Ext GWT[4]來(lái)加以實(shí)作,Ext GWT是一個(gè)以GWT為基礎(chǔ)的因特網(wǎng)應(yīng)用程序框架,可幫助程序設(shè)計(jì)者快速開(kāi)發(fā)GWT的使用者接口。如圖3所示,是我們的前端網(wǎng)絡(luò)桌面的畫(huà)面,為了同時(shí)分析四個(gè)行動(dòng)式攝影機(jī)所傳送過(guò)來(lái)的實(shí)時(shí)影像,我們同時(shí)開(kāi)啟四個(gè)分析窗口,當(dāng)開(kāi)始車(chē)牌識(shí)別分析時(shí),這些分析要求會(huì)被傳送給后面的云端視頻處理平臺(tái),然后將這些分析工作,分散給不同的云端主機(jī)進(jìn)行運(yùn)算,最后再回傳結(jié)果并顯示在前端的應(yīng)用程序窗口,如圖3的(1)所顯示的車(chē)牌號(hào)碼6797QD,即為視頻中所行駛的車(chē)輛所掛的車(chē)牌號(hào)碼。此外,我們的網(wǎng)絡(luò)桌面可實(shí)時(shí)顯示目前每個(gè)云端主機(jī)的CPU使用率,來(lái)觀(guān)察每個(gè)云端主機(jī)目前的負(fù)載情況,如圖3的(2)所示,并證明分析工作有被分散到多個(gè)云端主機(jī)上,所以每個(gè)云端主機(jī)的CPU使用率都很低,表示分析工作并沒(méi)有集中到同一個(gè)云端主機(jī),而造成某個(gè)主機(jī)過(guò)高的CPU使用率。
我們使用了八臺(tái)e-Box主機(jī)來(lái)測(cè)量車(chē)牌識(shí)別的執(zhí)行時(shí)間,來(lái)觀(guān)察多臺(tái)主機(jī)并行化視頻處理的效能??偣驳膱?zhí)行時(shí)間(Total Time)分為:
1)從儲(chǔ)存裝置讀取要分析的影像數(shù)據(jù),然后通過(guò)網(wǎng)絡(luò)傳輸?shù)皆贫酥鳈C(jī)的時(shí)間(Query Time);
2)將識(shí)別出的車(chē)牌號(hào)碼通過(guò)網(wǎng)絡(luò)傳輸,寫(xiě)入到儲(chǔ)存裝置的時(shí)間(InsertResult Time);
3)作車(chē)牌檢測(cè)及識(shí)別的時(shí)間(VA Time)。
本次實(shí)驗(yàn)總共測(cè)量處理1000 frames所需的時(shí)間,frame的大小為352×240,并且每張frame都具有車(chē)牌,所以每張frame都會(huì)被檢測(cè)并且識(shí)別出正確的車(chē)牌號(hào)碼。Query Time和InsertResult Time在不同的云端主機(jī)個(gè)數(shù)的實(shí)驗(yàn)結(jié)果如圖4所示,VA Time和Total Time在不同的云端主機(jī)個(gè)數(shù)的實(shí)驗(yàn)結(jié)果如圖5所示。如同所預(yù)期的,當(dāng)可以并行作車(chē)牌識(shí)別的云端主機(jī)個(gè)數(shù)增加時(shí),InsertResult Time、VA Time、Total Time都隨之減少,尤其是占最大比例計(jì)算時(shí)間的VA Time,當(dāng)主機(jī)個(gè)數(shù)呈倍數(shù)增加時(shí),VA Time即呈倍數(shù)減少。
然而,Query Time卻沒(méi)有隨著主機(jī)個(gè)數(shù)的增加而減少,這是因?yàn)槭芟抻诰W(wǎng)絡(luò)的頻寬,存取影像數(shù)據(jù)的I/O速度和主機(jī)間互相競(jìng)爭(zhēng)存取網(wǎng)絡(luò)和儲(chǔ)存裝置所導(dǎo)致,即使有多臺(tái)主機(jī)的并行化處理,仍然無(wú)法減少Q(mào)uery Time。當(dāng)主機(jī)個(gè)數(shù)增加到3臺(tái)時(shí),是能夠減少Q(mào)uery Time的,但是當(dāng)主機(jī)個(gè)數(shù)過(guò)多時(shí),由于大家同時(shí)競(jìng)爭(zhēng)存取網(wǎng)絡(luò)和儲(chǔ)存裝置,而導(dǎo)致Query Time小量增加。然而這個(gè)問(wèn)題應(yīng)該可以通過(guò)增加云端平臺(tái)局域網(wǎng)絡(luò)的頻寬及使用高速且分布式的儲(chǔ)存裝置來(lái)加以改善。然而,Query Time只占了整體執(zhí)行時(shí)間的一小部份,因此并不會(huì)嚴(yán)重地影響到執(zhí)行的效能,整體的執(zhí)行時(shí)間仍然依賴(lài)于VA Time,當(dāng)視頻分析的主機(jī)個(gè)數(shù)增加時(shí),確實(shí)大量地減少所需要的VA Time來(lái)提升效能。
本論文提出了一個(gè)云端視頻處理平臺(tái),可通過(guò)云端化的程序及流程將視頻處理模塊整合到云端平臺(tái)上,以進(jìn)行有效率的并行化運(yùn)算。對(duì)于需要云端化視頻處理平臺(tái)的公司而言,如保安公司,此平臺(tái)可簡(jiǎn)便地云端化即有的視頻處理模塊。對(duì)具有大型云端主機(jī)出租的供貨商,如中國(guó)電信、中國(guó)聯(lián)通,此平臺(tái)可為供貨商提供的云端硬件資源,構(gòu)建應(yīng)用程序云端化的架構(gòu)。對(duì)制造視頻處理模塊的廠(chǎng)商而言,可讓設(shè)計(jì)者不需要考慮云端化應(yīng)用程序設(shè)計(jì)實(shí)作的復(fù)雜度,仍然用原來(lái)的概念及方式來(lái)編寫(xiě)應(yīng)用程序。
圖4 Query和InsertResult Time的執(zhí)行時(shí)間
圖5 車(chē)牌識(shí)別時(shí)間(VA Time)和總執(zhí)行時(shí)間
[1]祝家鈺,肖丹,等.云計(jì)算下負(fù)載均衡的多維QoS 約束任務(wù)調(diào)度機(jī)制[J].計(jì)算機(jī)工程與應(yīng)用,2012,25(3): 90-95.
[2]曾誼暉,鄂加強(qiáng),等.基于Berkeley DB和GWT的對(duì)象持久性研究[J].微計(jì)算機(jī)信息,2011,27(2):195-150.
[3]王睿,李斌,等.基于形狀上下文識(shí)別算法的車(chē)牌識(shí)別研究[J].計(jì)算機(jī)仿真,2011,28(11): 343-345.
[4]胡曉紅,付永軍,等.基于策略的Web服務(wù)安全解決方案研究[J].微計(jì)算機(jī)信息,2008,16(3): 93-94.