陳明
(成都廣播電視大學 四川成都 610051)
面向云計算的視頻監控人臉識別模型
陳明
(成都廣播電視大學四川成都610051)
視頻監控系統的廣泛使用,使得在大范圍跨平臺利用海量的視頻數據去查找犯罪信息成為關鍵問題。文章在討論云計算具有高性能計算能力和海量存儲能力的基礎上,提出了將大范圍的視頻監控系統中的人臉識別這個難題使用云平臺來解決,并由此設計出面向云計算的視頻監控人臉識別模型。
云計算;視頻監控;人臉識別;模型
目前,隨著電子技術、通訊技術、信息處理技術的高速發展和社會穩定的需要,許多重要的場所都安裝了視頻監控設備,這為人們在處理安全事件時提供了最直接的現場證據。但是,目前很多單位的監控系統都是獨立的,只能在一定的范圍內查找或跟蹤,在遇到需要跟蹤識別目標時,由于攝像頭覆蓋點位少、范圍擴展窄(如大到整個城市,細小到一個單位或者一個很小的住宅小區),要尋找一個人,需要協調多個單位,浪費大量的人力物力,使系統的處理滯后,從而導致跟蹤或識別的失敗。
所以,在此情況下,局部單位的攝像機不能很好地發揮識別和跟蹤的作用,我們需要協調并整合這些攝像機,從而達到協作監控以及視頻跟蹤的目的。
由于視頻監控的特殊需要,畫面質量需要不斷提高,并且視頻線路也在不斷增加,這些因素在導致視頻監控系統的存儲容量成倍增長的同時,也增大了系統的處理需求。特別是海量的視頻數據的識別處理,這遠遠不是一臺或局部服務器群集的處理能力所能承受的。
將云計算的高性能處理能力和海量且廉價的存儲引入到視頻監控系統中來,有利于實現大范圍內進行視頻監控人臉識別和跟蹤。
2.1什么是云計算
云計算作為繼服務計算和網格計算之后的一種新的計算模式,正逐步被人們認可接受。在遠程的數據中心,千萬臺電腦和服務器連接成一片電腦云,可以提供海量的存儲能力和超強的計算能力,并具有高度的可擴展性。用戶通過電腦、手機、其他智能終端等方式接入云計算,就可以按自己的需求進行存儲和運算。
對云計算的定義,不同單位或社會組織有所不同。如:IBM公司在2007年的技術白皮書中對云計算定義這樣描述:云計算一詞用來同時描述一個系統平臺或者一種類型的應用程序。一個云計算的平臺按需進行動態地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服務(deprovision)等。IDC的云計算定義為:云計算是一個新的IT開發和使用模型,它可以通過互聯網實時地提供需要的服務(產品)和解決方案[1]。
這些對于云計算的定義中,包含兩個方面:一方面描述了基礎設施,是用來構造上層應用程序的基礎;另一方面描述了建立在這種基礎設施之上的云計算應用。云計算是從網格計算、集群技術以及超級計算中繼承和發展而來的,擁有比它們更高的靈活性和更強的處理計算能力。它是能夠提供動態資源池、虛擬化和高可用性的下一代計算平臺(見圖1)。

圖1 云計算的技術結構
通過這些技術手段,云計算具備高可擴展性和高可用性。可擴展性表達了云計算能夠無縫地延伸到大規模的集群之上,甚至包含數千個節點同時進行處理。高可用性代表了云計算能夠容忍節點的錯誤,甚至有很大一部分節點發生失效也不會影響程序的正確運行。
2.2云計算和視頻監控人臉識別的結合
在本模型中,前端系統配備攝像頭和視頻服務器,通過攝像頭進行視頻的采集,采集的視頻數據可以直接發送到云計算系統中,也可以通過視頻服務器進行處理。一般情況下,本模型將圖像處于變化中的數據實時發送至云平臺,普通的錄像數據保存在本地,不發送至云平臺,然后這些數據通過云平臺進行處理,最后實現識別的目的[2]。
布置在遠端監控終端能夠實時地請求需要監控視頻數據,這些數據可以由云平臺實時提供,也可以由云平臺請求具體的視頻服務器提供,然后再轉發至監控終端。在識別請求時,由云計算平臺的虛擬計算對被監控的某一區域的視頻數據進行識別計算。對使用該系統的用戶而言,他只需要與云計算平臺聯系,包括視頻的監控、被監控現場的特定目標識別和跟蹤。
本模型的視頻監控數據存儲在本地,變化數據發往云平臺,從而保證了本地和遠程的冗余,即使網絡斷開也不影響本地的使用。
在視頻監控系統中,若有必要去跟蹤或尋找某一個人,則在海量的攝像頭和攝像數據面前,需要的是海量的計算和存儲能力,普通且單一的服務器計算顯然已經不再適合[3];在云計算平臺中,云計算提供的低成本、高性能計算能力和海量存儲能力的特點為海量的視頻數據處理上提供了新的思路。
在云計算平臺中,通過對云系統的存儲資源進行統一整合管理,為用戶提供一個統一的存儲空間。在視頻數據存儲方面,面對PB級的海量存儲需求,云計算這種新型的服務模式要求存儲架構保持很低的成本,這是一種高效的集群存儲技術,不僅突破了SAN的性能瓶頸,而且可以實現性能與容量的線性擴展,滿足視頻取證監控系統的需求。
云計算平臺提供強大的計算能力,這得益于它的計算虛擬化技術。它將服務器物理資源抽象成邏輯資源,讓一臺服務器變成幾臺甚至上百臺相互隔離的虛擬服務器,或者讓幾臺服務器變成一臺服務器來用。硬件資源不再受限于物理上的界限,而是讓CPU、內存、I/O等硬件變成可以動態管理的資源池,從而提高資源的利用率。資源池的動態更新變得容易,可以隨時增加成千上萬的服務器。
3.1面向云計算的視頻監控人臉識別的系統架構
隨著視頻監控技術的發展,視頻監控系統已經由最開始的模擬攝像機發展到現在的網絡攝像機,模擬攝像機的分辨率不高,需要的存儲量相對較小,但是網絡攝像機一般都是高清像素,需要很大的存儲空間,更需要高性能的計算能力,如果要全局的處理聯動跟蹤,小型的存儲和單一的服務器基本無法實現,所以需要使用當前最新技術——“云計算”來處理[4]。
由于視頻監控系統廠家不統一,存儲方式和攝像機也截然不同,故我們這里做出如下假定:
假定1:模型中任何一個單一的監控系統都具有移動偵測能力,一旦圖像有變動那么就主動傳送至云平臺。
假定2:在模型中的每一個視頻服務(包括DVR、和單一的帶視頻服務的攝像頭以及其他一些視頻服務)都能主動和被動向云平臺發送移動偵測視頻流和某一段歷史時間的視頻流,同時也能夠發送實時視頻流數據至云平臺,但其大部分錄像仍然保存在本地,以彌補網絡帶寬不足或網絡斷開的缺陷。
假定3:模型中,每一個和云平臺相連的設備都具有足夠的網絡帶寬。
基于假定1-3,我們給出模型圖(見圖2)。

圖2 模型結構圖
圖2中,模型主要分為4大模塊,即:云計算平臺、管理終端、前端監控系統端、用戶終端。云計算平臺用于存儲和匹配計算;管理終端用于管理系統的用戶、權限、資源使用情況、接入等;前端監控設備為系統提供錄像資料;用戶終端是監控系統的直接用戶、服務的受益者。
3.2基本結構的定義
為實現圖2中的模型,我們需要對系統中的攝像機數據、源人臉圖像、目標數據等做出定義。
定義1:源人臉圖像匹配數據結構
我們設Sp為源圖像數據,定義源圖像數據結構如下:

T=Ticket,為源圖像進入云平臺時,為其分配的識別序號,具有唯一性。
P=Picture,為源圖像數據,包括圖像數據和圖像格式信息。
Ts為源圖像進入云平臺時的時間。
Te為識別成功的時間。
S為識別成功與否的標志,成功為True,失敗為Fa1se。
A為最后一次識別成功的地址。
定義2:視頻攝像機的數據結構定義
視頻服務為視頻數據的提供者,一個視頻服務可以包含一個或多個攝像機數據,系統中數量龐大的攝像機需要進行區分,這就要求對攝像機和視頻服務器進行編碼定義。
設Cb為攝像機編碼,定義為:
Cb={XXXX(國際區號)XXXX(國內區號)XXXX (縣或區編號)XXXX(保留位再細分)XXXXXXXX}
……(2)
系統編碼設計時保證編碼的唯一性,不足位的,前面加0;假如是在中國(0086) 成都(0028)成華區(0001)的某一處攝像機,那么其編碼就為Cb={008600280001000000000001}。
設Cs為攝像機數據結構,由此攝像機的數據結構定義為:

Cb為攝像機編碼,結構見式(2)。
Ip為攝像機所在視頻服務器的IP地址,一般為公共IP地址,如果出現私有IP地址,這臺攝像機需要能夠及時與之連接;當云平臺請求該視頻服務器的信息時,能夠訪問到該IP地址。多臺攝像機可能會對應一個IP地址。
Time為攝像機安裝時間。
Name為攝像機的名稱,命名規則可以按照用途或地址命名。
Work為攝像機是否是處于工作狀態,非工作狀態包括維修、拆除等狀態。
Demo為該攝像機的用戶或其他信息備注。
3.3人臉識別算法設計
人臉識別是根據已有的人臉特征,在待識別的人臉圖像中,找出最接近的圖像。目前所利用的人臉特征一般為形狀特征、灰度分布和頻域特征三種。其中:形狀特征包括人臉各主要部位的形狀以及人臉各部位之間的相對位置;灰度分布特征將人臉圖像看成一維或二維灰度模式,所計算出的不同灰度模式之間的距離就是整體的灰度分布特征;頻域特征,即將人臉圖像變換到頻域后所作的特征臉分析,此時的特征即為頻域特征[5]。
在對特定人物的視頻取證,可能只能得到一幅圖像,也就是要用單樣本來進行人臉識別。人臉識別方法可以分為兩類,即基于幾何特征和基于模板匹配。在基于單樣本的人臉識別方法中,主要有樣本擴張法、特征子空間擴展法、通用學習框架法、圖像增強法、神經網絡法和三維識別法等。
這些方法中,側重點不一樣。比如:樣本擴張法利用各種技術從原樣本圖像合成多個虛擬圖像,擴張每類的訓練樣本數目,使單訓練樣本人臉識別問題變成一般的人臉識別問題。這種方法對解決表情變化的情況較有效,缺點是生成的這些虛擬人臉圖像與原人臉圖像高度相關,并不是真正獨立的人臉圖像。神經網絡法的優點是避免了復雜的特征提取工作[6],以并行方式處理信息,能顯著提高速度。三維人臉識別法在解決單樣本人臉識別中相對有效,但三維圖像的數據量和計算量十分巨大,對計算機硬件要求高。
利用云計算平臺的強大計算能力,采用多種方法的結合,盡量減少由于姿態、光照等因素造成的識別率低的問題。為提高人臉識別的準確率,本文采用兩步檢測識別方法:
a)預識別利用前述的方法進行檢測和識別。當識別相似度在某個閾值K1以上(該閾值K1可以自定義調整),立即啟動精確檢測識別功能,自動啟動攝像機云臺控制模塊,調節到科學合理的位置,以便拍攝到更清晰的人臉等目標。
b)精確識別通過預識別后的一系列操作,可得到更清晰的人臉圖像。然后對該系列人臉圖像深度進行識別。如果出現與待識別目標的相似度小于閾值K2(閾值K2也可自定義為預先設定),則可判斷該目標不是要跟蹤的特定目標;否則,要取證的特定目標需要該目標判定,此時,立即啟動目標跟蹤模塊和協同跟蹤模塊(見圖3)。

圖3 識別流程
(1)用戶提交圖像和識別范圍——用戶將需要識別的源人臉圖像提交給系統,同時提交的圖像可能存在多個,那么就需要進行隊列處理,采用FIFO的方式,發送至圖像處理模塊;識別范圍是指需要在某一個視頻監控系統區域內對該區域源人臉圖像進行比對識別,范圍提交常規可參照前述定義2的編碼方式,比如要對中國(0086)成都(0028)成華區(0001)這個范圍攝像機數據進行對比,那么提交的范圍就為:{008600280001},如果要有選擇的對某幾個范圍進行對比識別,那么就采用集合的方式提交范圍:{范圍1,范圍2,…}。
(2)圖像特征處理—系統獲得源圖像和識別范圍后,對圖像進行特征處理,并將識別范圍解析成為系統識別的每臺攝像機,獲取其編碼集合提交下一流程;
(3) 資源分配—將資源分配成為n個小任務,分別將這些小任務提交給云平臺,進行多線程處理;
(4)云平臺—完成對圖像的對比和視頻監控圖像的調用,最后生成對比結果;
(5)返回結果——結果是一個集合,一個由0個或N個低點和時間組成的集合。
云計算的研究和應用前景廣闊。利用云計算的海量虛擬存儲能力以及強大的虛擬計算能力,文章提出了一種新型的視頻監控系統人臉識別技術的解決方案。布置在遠端的用戶端,只需要提交源人臉圖像和識別范圍,即可獲得對比的數據和結果。但是,基于云計算平臺的視頻控系統中,以下幾個方面還有待進一步研究:(1)將龐大的數據任由云平臺實時調用,現有的網絡帶寬費用昂貴,且視頻流量數據量大;(2) 視頻信息的安全,確保監控的視頻信息保存在云計算系統中以及在與云平臺的傳輸過程中不被竊密或遭到破壞。而基于視頻的實時人臉識別中,遇到人體姿態多樣、現場光線昏暗等情況,將對識別的正確性造成較大影響,這也是下一步需要研究的問題。
[1]云計算的定義和特點.中國云計算網[EB/OL].http://www.chinacloud.en/how.aspxTid= 741&eid=17.(2009-02-15).
[2]陳康,鄭緯民.云計算:系統實例與研究現狀[J].軟件學報,2009(5).
[3]張建勛,古志民,鄭超.云計算研究進展綜述[J].計算機應用研究,2010(2).
[4]彭召意,周玉,文志強.基于云計算的視頻取證監控系統[J].計算機應用研究,2011(8).
[5]蔣建國,孫洪艷,齊美彬.基于mean—shift算法的人臉實時跟蹤方法[J].計算機應用研究,2008(7).
[6]文志強.基于均值偏移算法的運動目標跟蹤技術的研究[D].長沙:中南大學,2008.
[責任編輯何一輝]
G434
A
1008-7656(2015)04-0086-05
2015-10-09
陳明,成都廣播電視大學助教,研究方向:計算機應用、網絡安全。