云計算技術以大系統、大數據為最顯著的特征,而安防行業是一個非常典型的大數據應用場景,安防行業中的卡口監控系統、視頻監控系統由大量的設備組成(包括大量的前端采集設備、后端平臺和云計算服務器集群等),每天產生呈幾何級增長的數據,隨著智慧城市大型項目的不斷成功落地,整個安防平臺呈現出數據量超大、數據類型多樣、數據處理邏輯復雜、數據清洗、數據共享、數據挖掘難度高等處理難題,對安防廠商提出了巨大的挑戰。其中主要表現在智能交通行業領域中海量的交通流信息和卡口過車抓拍圖片、智慧城市行業領域中的海量視頻錄像文件等非結構化數據,安防行業的主要用戶公安、交警都有著需要對海量圖片和視頻文件進行安全有效的數據存儲、高性能并行計算、智能化的數據分析挖掘后進行實戰方面的強烈需求,這些都與云計算特性非常吻合。提供海量存儲的同時,如何快速有效的定位多維度數據,挖掘出各類孤島數據在多維度的潛在關聯關系,一直是我們致力于解決的問題。云計算、大數據等技術正在慢慢滲入安防行業,隨著這些技術的發展成熟,將對安防行業帶來革命性的影響。
大規模混合計算技術
監控系統產生的大量視頻圖像數據如果只靠人工來進行處理,效率會非常低,借助于視頻智能化處理算法,已經可以從視頻圖像數據中獲取一些簡單的特征進行比對,或者進行模式匹配產生報警事件,提高了處理的效率。這種方式能夠處理的數據量,數據組合的程度,數據的類型等等都還處于較低的水平,無法應對海量數據和日益增長的需求。大規模計算技術的目的就是為了提供一種統一的數據處理平臺,上面可以集成各種智能化算法和計算模型,綜合處理海量監控數據,以更快的速度得到更有價值的數據。
統一資源管理技術
監控系統產生的主要數據就是視頻和圖像數據,原始數據經過處理后,會產生更豐富的數據,處理的方式也會有很大不同。比如對于歷史視頻數據可以在后臺處理的視頻數據檢索,對于卡口的車牌和人臉特征數據需要實時布控,對歷史卡口信息需要做到實時檢索。這些數據都需要不同的計算框架進行處理,通過引入統一的資源管理平臺,可以在同一個資源池里運行不同的計算框架,大幅提高資源的利用率,同時在資源被某種業務獨占時,又能最大限度的發揮系統的性能。
實時檢索技術
傳統的結構化數據都采用關系型數據庫進行保存,通過RAC等技術形成數據庫集群,通過索引方式進行加速,但是核心還是基于行存儲和關系運算,面對海量記錄時在各個方面都已經遇到了瓶頸。實時檢索技術通過引入分布式數據庫,列式存儲,內存計算,索引引擎等技術,能應對100億級別的結構化數據,在存儲容量,可擴展性,檢索速度等多個方面都可以得到大幅提升。該系統在智能交通、刑事偵查等視頻監控領域具備重要的研究價值和廣闊的應用前景。
復雜事件處理技術
隨著安防行業的發展,業務變的也來越復雜,比如智能交通領域,出現了車輛積分研判、套牌車分析、同行車分析等需求。這些需求存在產生結果所依賴的條件多、處理過程實時性的要求高、需要處理的數據量巨大等特點。
傳統的方式是采用關系數據庫,通過復雜的SQL語句組合,不斷查詢比對的方式,很難滿足實時性的要求。復雜事件處理通過引入流式計算等技術,動態地對輸入數據進行實時的分析,處理速度可以大幅提供。不符合條件的數據都被丟棄掉,系統中只存在處理的結果或者可能有用的中間數據,這樣對存儲的要求也變小了,完全在內存中進行全過程的分析,實時性得到了保證。
人臉檢索技術
人臉檢索的技術在單臺服務器上的應用已經比較成熟,可以應用在身份鑒別、在逃人員抓捕、可疑人員排查、身份證查重等領域。人臉檢測過程可以分為以下幾個階段:視頻或圖像解碼、人臉檢測、特征提取、特征比對,前三個步驟都是每次請求對應一次計算,計算量相對可控,而最后一個步驟特征比每次請求則需要和達億級的人臉特征進行比對,是運算量最大的一個階段。
一些實時應用的請求數每秒鐘可達請求數達到數百次,每次人臉比對次數可達百萬級別時,則整個系統需要支持每秒億級的人臉特征比對計算。如此大規模的計算,單機上是無法完成的,必須采用集群完成。特征庫本身規模不大,但是比對次數很大,屬于典型的計算密集型集群,特征庫可以全部倒入到內存,在內存中完成計算。
海量視頻檢索技術
圖像傳感器采集到的視頻數據保存到后端存儲后,用戶可以隨時選擇目標區域的多個攝像頭,提交給視頻檢索集群,檢索集群按照目標物體的特征快速檢索的所有對應攝像頭產生視頻數據,找到目標物體特征所出現的視頻,并定位到準確的時間點。其中主要使用了智能化技術實現視頻數據到物體特征結構化數據的轉換,支持車輛顏色,車牌,衣著顏色,人臉等特征。基于統一的計算資源池,實現智能化算法的并行運算,線性提高檢索效率。
結構化之后的數據可以保存到數據庫,下次檢索可以直接通過結構化數據進行二次檢索,大幅提高檢索效率。
分布式對象存儲技術
安防云在系統架構和設計上,充分考慮大規模集群環境下軟硬件發生故障的現實,采用先進的管理思想和軟件系統,實現對大量普通存儲服務器存儲空間資源進行虛擬化整合,實現軟硬件故障高度容錯,搭建高度穩定可靠的存儲集群。
系統將控制流與數據流分離,以及充分優化元數據節點控制系統,使得系統具備極高的性能和良好的線性擴展能力。系統整體為應用提供統一命名空間,使得系統具備極好的數據共享能力。系統將負載均衡到集群內的各節點上,充分利用集群各節點性能,以獲得很好的性能聚合能力以保證系統的穩定。集群采用高度靈活自組網技術,提供簡易部署和維護功能。系統在數據可靠方面,采用智能冗余重建技術,保證較高磁盤利用率的前提下,提供最佳冗余策略。另外,系統在節點軟硬件故障容錯方面,也進行充分考慮,具備屏蔽所有可屏蔽錯誤能力。
快速文件索引技術
云存儲系統可以支持上億級的文件,同時還需要支持上千個用戶同時訪問。這么大規模的元數據和并發訪問量,采用傳統的內存加磁盤多級存儲,以及多級索引方式,尋址的開銷將非常大,直接影響到系統的可用性。
為了提高系統的響應速度,云存儲采用粗粒度的管理方式,以64M作為典型的塊大小進行索引,大幅減小元數據的數量,即使如此,系統的元數據規模還是會達到GB級別。基于這種情況,系統采用全內存態的元數據訪問模式,可以將文件尋址時間降到毫秒級別。
為了保證元數據的可靠性,需要對元數據的訪問做日志記錄,并定期將元數據持久化到硬盤。
負載自動均衡技術
采用中心服務器模式來管理整個云存儲文件系統,所有元數據均保存在元數據服務器上,文件則被按塊劃分存儲在不同的數據節點上。
元數據維護了統一的命名空間,同時掌握整個系統內數據節點的使用情況,當客戶端向元數據服務器發送數據讀寫的請求時,元數據服務器根據數據節點的磁盤使用情況、網絡負擔等情況,選擇負擔最輕的節點服務器對外提供服務,自動調節集群的負載狀態。
數據節點內同時有提供磁盤級的負載均衡,根據磁盤的IO負載,空間容量等情況,自動選擇負載最輕的磁盤存儲新的數據文件。
當有一個數據節點因為機器故障或者其他原因造成離線時,元數據服務器會將此機器自動屏蔽掉,不再將此數據節點提供給客戶端使用,同時存儲在此數據節點上的數據也會自動恢復到其他可用的節點服務器上,自動屏蔽數據單節點故障對系統的影響。
另外對故障的數據節點上的數據快速恢復,只需將數據節點上的硬盤拔出,插入到其他數據節點,這樣即減少集群對數據恢復的壓力,又不對客戶端讀寫產生影響。
高速并發訪問技術
客戶端在訪問云存儲時,首先訪問元數據服務器,獲取將要與之進行交互的數據節點信息,然后直接訪問這些數據節點完成數據存取。
客戶端與元數據服務器之間只有控制流,而無數據流,這樣就極大地降低了元數據服務器的負載,使之不成為系統性能的一個瓶頸。客戶端與數據節點之間直接傳輸數據流,同時由于文件被分成多個節點進行分布式存儲,客戶端可以同時訪問多個節點服務器,從而使得整個系統的I/O高度并行,系統整體性能得到提高。
通常情況下,系統的整體吞吐率與節點服務器的數量呈正比。
高可靠性保證技術
對于元數據,通過操作日志來提供容錯功能。主服務器本地SSD盤組建高可靠RAID1,提供高可靠容錯能力。當元數據服務器發生故障時,在磁盤數據保存完好的情況下,可以迅速恢復以上元數據。且操作日志在主備元數據服務器之間實時同步,實現更高程度的可靠性。
對于節點服務器,采用Erasure Code冗余方式實現容錯,數據冗余分布存儲在不同的數據節點上。任一數據節點的損壞,不會導致任何數據丟失,不會影響任何的數據訪問和寫入過程。之后,通過靈活數據恢復機制,進行數據重建過程。集群規模越大,恢復速度越快。
高可用技術
系統中的所有服務節點均是通過網絡連接在一起,由于采用了高可靠的容錯機制,系統增減節點不必停止服務,可在線增減存儲節點。
元數據服務器采用主備雙機熱備技術,主機故障,備機自動接替其工作,對外服務不停止;存儲節點可采用Erasure code冗余備份機制,如采用4+1節點間冗余容錯,任意損失一個節點,數據不丟失,服務不停止,客戶端無感知。