劉智慧,周 媛,苗耀鋒
(西安外事學院 現代教育技術中心,西安 710077)
近年來,數字監控設備的普及使得所需儲存的數字視頻內容大量增加,從這些視頻內容中分析取得重要的信息與事件將依賴于視頻處理的技術:人臉識別、車牌識別、對象檢索及移動檢測等技術。由于視頻處理運算的復雜度是相當高的,有此需求的個人、商家、公司或政府等單位,都要花費很大的成本去購置高性能的設備來進行復雜視頻處理運算。而云計算平臺具有并行化運算及集中式資源共享的特性,剛好可以解決這樣的問題[1]。如何將視頻處理模塊進行云端化的架構及流程即是本文探討的主要問題。
要將視頻處理模塊功能整合到云端平臺中,可采用下列三種方式:1)視頻處理模塊直接執行:等同于在單臺個人計算機執行一支視頻處理程序,無法有效利用云端資源。2)替原本的視頻處理模塊,重寫工作分配程序:在租賃的多臺虛擬主機上,自行重寫Client/Server程序及負載平衡機制,來分派視頻處理工作到這些主機上,并以Socket方式進行虛擬主機間的溝通。3)使用某種PaaS的平臺,利用它提供的框架,修改視頻處理算法:例如使用Hadoop,利用Hadoop提供的應用程序開發接口,采用如Java/C/C++語言修改既有的視頻處理模塊,以實作Hadoop的MapReduce機制。

圖1 云端視頻處理平臺的系統架構與運行流程
本論文以Hadoop并行化架構為基礎,著重PaaS層的中介平臺開發,開發一套云端視頻處理平臺來作為視頻處理與云端平臺的媒介。
我們提出的平臺架構及其運作流程如圖1所示,系統的前端用戶接口采用GWT工具[2]所開發,是一個網絡桌面系統。系統主要包含三個功能:1)Web Server;2)Hadoop;3)VA Server。Web Server服務器端程序采用GWT工具開發,主要將前端用戶所傳來的視頻分析要求和參數轉送給Hadoop系統。Hadoop系統主要分為二個部份,第一部份是MapReduce,主要是處理分布式并行運算;第二個部份是HDFS,用來進行分布式儲存和備份系統的數據及分析結果。VA Server安裝有多種視頻處理模塊VA-1,VA-2,…,VA-N,當它接收到VA Client所傳送過來的task時,會利用VA loader加載需要的視頻處理模塊,然后由Processor模塊進行分析,再將分析的結果回傳給VA Client,然后由VA Client直接將分析結果寫入HDFS。
接下來,我們將介紹整個系統的運作流程,每個流程都用帶括號的數字表示。
使用者利用前端網絡桌面系統的使用者接口來啟動某個云端視頻處理應用程序,并輸入需要的分析參數,這個request將被傳送給后端的Web Server。
1)Web Server依據request的需求,自動產生Hadoop系統執行所需要的input config files,然后將input config files儲存在HDFS,以供Hadoop MapReduce platform使用。
2) Web Server開始啟動Hadoop系統的Map-Reduce程序。
3)由HDFS讀取需要的input config files,針對requested job的MapReduce運作,作需要的配置,并且將此job分割為許多較小的tasks,然后分散到TaskTrackers,然后每個TaskTrackers再傳送task給自己的VA Client模塊。
4)VA Client模塊將此task,傳送給自己的VA Server。
5)VA Server根據task的參數,讀取要分析的live/stored video sources。
6)VA loader加載要使用的VA模塊,然后Processor開始對接收到的視頻進行分析,再將所得到的分析結果,回傳給VA Client。
7)VA Client將分析結果寫入HDFS。
8)Web Server周期性去讀取儲存于HDFS的分析結果。
9)Web Server將分析結果回傳給前端網絡桌面系統的使用者接口來顯示。

圖2 車牌識別系統流程圖
本文的車牌識別方法主要有三個步驟:車牌定位、字符切割與字符識別,個別模塊分述如下。
1)車牌定位:采用垂直方向的影像梯度做前處理,利用預先設定大小的移動窗口快速掃描整張影像,同時利用統計的車牌樣本的邊緣密度、長寬比、最小長寬等信息,檢查掃描區域是否為影像中的車牌候選區域。
2)字符切割:字符切割采用X-Y切割的方式[3],首先針對車牌候選區塊做X方向掃描以定出字符區域的最高及最低的水平位置。接著對Y方向進行掃描,以車牌候選區塊的1/6高度為搜尋區域,找出垂直灰階投影的區部峰值,并針對峰值間以最符合字符區塊長寬比為原則進行區塊合并。
3)字符識別:步驟2)求得車牌字符后,將每個字符影像進行正規化,并擷取局部特征為Zone、Cross、Histogram和Profile等四大類。
我們使用了八臺e-Box主機(Atom 1.8GHz)來構建一個小型的實驗性云計算平臺,我們的云端視頻處理系統安裝于此云計算平臺。在前端的行動攝影機部份,此行動式攝影機可通過3G/WiMax/WiFi的無線網絡上傳實時取得的影音信息到中央服務器組以進行視頻及分析。我們的云端視頻處理平臺,將針對行動式攝影機取得的實時影音數據流,作并行化的視頻處理運算,來驗證此云端平臺的可行性及有效性。
在網絡桌面系統的實作部份,我們使用了Ext GWT[4]來加以實作,Ext GWT是一個以GWT為基礎的因特網應用程序框架,可幫助程序設計者快速開發GWT的使用者接口。如圖3所示,是我們的前端網絡桌面的畫面,為了同時分析四個行動式攝影機所傳送過來的實時影像,我們同時開啟四個分析窗口,當開始車牌識別分析時,這些分析要求會被傳送給后面的云端視頻處理平臺,然后將這些分析工作,分散給不同的云端主機進行運算,最后再回傳結果并顯示在前端的應用程序窗口,如圖3的(1)所顯示的車牌號碼6797QD,即為視頻中所行駛的車輛所掛的車牌號碼。此外,我們的網絡桌面可實時顯示目前每個云端主機的CPU使用率,來觀察每個云端主機目前的負載情況,如圖3的(2)所示,并證明分析工作有被分散到多個云端主機上,所以每個云端主機的CPU使用率都很低,表示分析工作并沒有集中到同一個云端主機,而造成某個主機過高的CPU使用率。
我們使用了八臺e-Box主機來測量車牌識別的執行時間,來觀察多臺主機并行化視頻處理的效能。總共的執行時間(Total Time)分為:
1)從儲存裝置讀取要分析的影像數據,然后通過網絡傳輸到云端主機的時間(Query Time);
2)將識別出的車牌號碼通過網絡傳輸,寫入到儲存裝置的時間(InsertResult Time);
3)作車牌檢測及識別的時間(VA Time)。
本次實驗總共測量處理1000 frames所需的時間,frame的大小為352×240,并且每張frame都具有車牌,所以每張frame都會被檢測并且識別出正確的車牌號碼。Query Time和InsertResult Time在不同的云端主機個數的實驗結果如圖4所示,VA Time和Total Time在不同的云端主機個數的實驗結果如圖5所示。如同所預期的,當可以并行作車牌識別的云端主機個數增加時,InsertResult Time、VA Time、Total Time都隨之減少,尤其是占最大比例計算時間的VA Time,當主機個數呈倍數增加時,VA Time即呈倍數減少。
然而,Query Time卻沒有隨著主機個數的增加而減少,這是因為受限于網絡的頻寬,存取影像數據的I/O速度和主機間互相競爭存取網絡和儲存裝置所導致,即使有多臺主機的并行化處理,仍然無法減少Query Time。當主機個數增加到3臺時,是能夠減少Query Time的,但是當主機個數過多時,由于大家同時競爭存取網絡和儲存裝置,而導致Query Time小量增加。然而這個問題應該可以通過增加云端平臺局域網絡的頻寬及使用高速且分布式的儲存裝置來加以改善。然而,Query Time只占了整體執行時間的一小部份,因此并不會嚴重地影響到執行的效能,整體的執行時間仍然依賴于VA Time,當視頻分析的主機個數增加時,確實大量地減少所需要的VA Time來提升效能。
本論文提出了一個云端視頻處理平臺,可通過云端化的程序及流程將視頻處理模塊整合到云端平臺上,以進行有效率的并行化運算。對于需要云端化視頻處理平臺的公司而言,如保安公司,此平臺可簡便地云端化即有的視頻處理模塊。對具有大型云端主機出租的供貨商,如中國電信、中國聯通,此平臺可為供貨商提供的云端硬件資源,構建應用程序云端化的架構。對制造視頻處理模塊的廠商而言,可讓設計者不需要考慮云端化應用程序設計實作的復雜度,仍然用原來的概念及方式來編寫應用程序。

圖4 Query和InsertResult Time的執行時間

圖5 車牌識別時間(VA Time)和總執行時間
[1]祝家鈺,肖丹,等.云計算下負載均衡的多維QoS 約束任務調度機制[J].計算機工程與應用,2012,25(3): 90-95.
[2]曾誼暉,鄂加強,等.基于Berkeley DB和GWT的對象持久性研究[J].微計算機信息,2011,27(2):195-150.
[3]王睿,李斌,等.基于形狀上下文識別算法的車牌識別研究[J].計算機仿真,2011,28(11): 343-345.
[4]胡曉紅,付永軍,等.基于策略的Web服務安全解決方案研究[J].微計算機信息,2008,16(3): 93-94.