視頻監控系統從最初的單機模擬式CCTV系統發展到如今分布式網絡環境下的綜合視頻信息處理系統,在體系結構上日趨復雜。系統包括眾多布控于現場的視覺傳感器(攝像機)、傳輸鏈路、智能前端設備以及高級監控管理中心。
視頻監控已成為現代社會改善公共安全水平的基礎設施。它可幫助系統操作員分析已發生的異常事件進行事后追憶;或檢測到正在發生的威脅,以便及時安排警力處理(快速做出反應)。視頻監控系統從最初的單機模擬式CCTV系統發展到如今分布式網絡環境下的綜合視頻信息處理系統,在體系結構上日趨復雜。系統包括眾多布控于現場的視覺傳感器(攝像機)、傳輸鏈路、智能前端設備以及高級監控管理中心。
視覺監控的架構設計
系統架構
基于眾多視頻安防監控工程解決方案,我們總結出這樣一條經驗:一個實際的分布式智能視覺監控系統不僅應具備強大的視頻分析功能,且還應具有“多層遞階”信息處理結構。如圖1所示結構圖,系統主要包括如下組件:
.多個節點工作站;
.一個數據中心平臺站;
.一個監控管理站。
在圖1所示拓撲圖中,節點工作站實現形式位于視頻監控現場的攝像機(IP攝像機或SDI攝像機)和智能終端(嵌入式硬盤錄像機NVR或支持高清的SDI硬盤錄像機),NVR或SDI硬盤錄像機同時管理著多臺攝像機。在IP視頻監控解決方案中,高清IP攝像機將壓縮后的視頻流以略帶延遲的方式傳入NVR,NVR可有選擇地分析收集到的各路視頻的圖像內容,并把分析結果和壓縮視頻流通過IP網絡上傳到監控數據中心平臺站。在智能交通業務中,NVR除收集從一體化攝像機中傳來的視頻流外還包括該路視頻中的智能視覺分析結果。在SDI-CCTV解決方案中,高清視頻流通過同軸電纜以無壓縮的方式高速地傳入SDI硬盤錄像機。SDI硬盤錄像機上的智能分析軟件直接對原始高清視頻流進行視覺內容分析,并經由視頻線向監控數據中心平臺站上傳分析結果和非壓縮視頻流。每個節點工作站上的操作系統通常為Linux且運行智能視頻分析軟件。
數據的分層傳輸方法
我們還提出了一種基于TCP/IP協議集的“數據的分層傳輸方法”——無論網絡上有無“路由解析”或是“防火墻”(通常會對多媒體通信會話的建立造成干擾)設置,智能分析的結果數據和實時的音視頻流數據都可以直接在開放的網際間傳輸。其具體技術方案以下兩個:
1、底層通信協議采用XMPP即可擴展消息和呈現協議,這是專門為建立即時消息系統設計的。其虛擬的非限制性擴展功能使它被廣泛應用在通用型服務器和分布式系統中。XMPP協議使用為保證安全消息完整性層(基于TLS標準)、認證、尋址策略提供了一種增值能力。XMPP協議還提供了一種基于XML消息的容器來存儲自描述的結構化信息。本方案中,我們在此協議層實現智能分析結果數據(元數據)的路由傳輸。
2、XMPP協議的擴展部分用于建立視頻監控中的多媒體通信會話。在本方案中,我們采用加密后的RTP協議來實現網絡上的各種音頻數據流和海量視頻數據流的傳輸功能。當網絡上設置有路由轉發設備或在路由器上有防火墻時,為了保證高效的數據流傳輸,我們在系統中實現了代理服務功能。
移動目標的檢測和跟蹤
移動目標的檢測
移動目標檢測是視頻分析處理鏈條的第一個環節,檢測結果可為后續處理和分析使用。很多視頻目標分割的算法通常使用空間和時間模型來產生目標的二值掩膜(對于精細的目標分割而言,而這也是圖像分割的終極理想),而實際上得到的是對這個掩膜逼近的像素塊Blob。在我們的系統框架中,我們采用基于時空復合模型的背景減除方法來檢測前景目標。這種方法對很多應用場景都很適用,因它可有效地處理光照條件變化帶來的干擾,很好地自適應背景變化帶來的背景模型的更新方式,如:靜止不動的目標逐漸融入到背景中,背景中的目標突然啟動而容易使原來的背景模型難以適應更新的速度而產生“鬼影”(檢測效果如圖2所示)。
目標分割之外,還有一個輔助算法用于消除目標在光照作用下投射的陰影。首先是陰影的檢測,然后是陰影的消除。通常,投射的陰影會成為檢出的前景的一部分,陰影檢測算法只要依據這部分在背景減除時誤判的區域在連續若干幀之間的色度分量基本保持不變,且亮度分量很低(低于某一個閾值)的特性。每一個被檢測為前景的像素都要經過上述的這種基于規則的判斷,從而得到真實的前景。為了保證算法的實時性,我們在背景建模時擯棄了多維模型,從而避免了在線EM算法復雜的迭代和多分布模型排隊的過程。另一種方法是采用灰度紋理相似度匹配的方式。
目標的跟蹤
目標從連續幀中被檢測到之后,我們需要知道目標在幀序列中的運動規律,以便在這個動態時間序列中確定每個移動目標各自唯一的身份,這就是目標跟蹤模塊任務。圖3所示為多目標視覺跟蹤的場景。對多個目標進行視覺跟蹤可借助動態地維護一個相互關聯的鏈表系統來實現,包括:檢測鏈表、中間跟蹤鏈表和輸出跟蹤鏈表。當場景內多個目標在空間上相對獨立時,目標跟蹤處于常態,鏈表系統的維護僅是完成節點匹配和節點搬移的工作。當檢測鏈表和另外兩個跟蹤鏈表內的節點發生目標失配時,目標跟蹤進入非常態,跟蹤系統須馬上進入失配處理程序,且鏈表系統需要對失配的節點進行保持連續的多幀,以決定是否從跟蹤鏈表中刪除節點或是恢復節點,以及建立新的節點。非常態跟蹤的任務就是處理目標在場景中被局部遮擋(暫時消失)或是徹底消失,以及新目標進入場景的情況。
page
多目標跟蹤系統還要判斷和處理的另外兩種情形:目標合并(含目標之間相互的局部遮擋)和目標分離。在檢測鏈表和跟蹤鏈表僅是基于獨立數據關聯時,這種目標分合情況的判別條件相對比較復雜。具體來說,在基于像素集合(Blobs)進行跟蹤的系統中,當多個目標相互靠得很近或發生局部遮擋時,一個大尺度單目標將覆蓋多個原來的小尺度目標,這時可在跟蹤鏈表中觸發相關目標合并的標志。由于此時各個小尺度目標已失去觀測值,因此它們需要單獨保持原先的預測跟蹤狀態(基于預測器),輸入各自預測器的觀測向量值由如下表其中p表示在本幀內**剛輸出的先驗預測值,由此帶入**得到本幀內后驗輸出值。該過程稱為“盲跟蹤”階段。在每一幀跟蹤中,都要檢測目標是否被覆蓋,若覆蓋始終存在,則跟蹤鏈表中相關目標合并標志不能解除。
5.人臉檢測、跟蹤和識別
在圖4所示智能視頻分析功能所采用的多層遞階結構內,人臉目標的檢測、跟蹤和識別都是針對實時視頻場景而言的。在實際應用中,人臉目標具有如下一些特點:
a、有些非高清場景視頻中,圖像質量不高;即便是高清視頻,對于某些應用場合(如智能交通的卡口業務),獲取的人臉目標尺度(20×20像素)相比基于靜止圖片的人臉識別應用(如公安機關的靜態人臉比對系統)的人臉圖片尺寸(128×128像素)小很多;這直接影響到定位人臉區域內的特征點精度,從而降低了識別算法的準確度。
b、在場景監控內的人臉目標通常容易受到光照條件、局部遮擋、人臉姿態和表情等因素的干擾,從而使得身份聚類的類內距離大于類間距離,導致誤識率顯著增加。
在多層遞階式場景視覺監控系統中,人臉識別通常建立在人臉目標檢測和跟蹤之上,為某種具體應用業務服務,其中跟蹤功能和識別業務相對獨立。這就決定著視頻中人臉識別方式是一種“視頻——圖像(多幅圖像)”模式的人臉識別,后臺利用靜止圖像人臉數據庫進行識別或驗證。我們的做法是:對輸入視頻中的人臉進行跟蹤, 尋找滿足一定規則(如大小、姿態、清晰度等)的人臉圖像, 然后再利用基于靜止圖像的人臉識別方法(如圖5所示)。在圖5中,多個人臉目標首先被檢測和在視頻的各幀之間連續可靠地跟蹤到,然后依次與人臉數據庫中的特征模型進行匹配,最終找到與之最相似的身份信息作為該人臉的視覺標簽。
考慮到實用性效果,人臉檢測的特征通常選取Haar特征或擴展后的Haar特征,可采用瀑布式級聯分類器,通過Boosting學習算法得到分類器模型參數。多人臉跟蹤原理和大致方法同前面章節所述,多人臉在場景內動態變化由一個鏈表系統來管理,特定人臉在場景中運動模型由Kalman預測器來描述。當人臉在場景中丟失觀測時,可采用Harris角點信息作為提供可能的人臉特征點所在場景中位置的校驗方案。
車牌檢測和牌號識別
多層遞階式的視覺監控系統中還有一種觸發事件檢測的功能模塊(子系統)就是針對車輛牌號的識別系統。它在智能交通系統和停車場安全監控中具有廣泛的應用。
車牌識別的正確率除了字符識別(OCR)的性能外,還極大地依賴于車牌分割定位的準確性。傳統車牌定位算
法主要根據車牌幾何特征及圖像紋理特征進行定位,而在相當多的復雜背景條件下,車牌外觀表象經常不符合標準的特征,這使得車牌定位算法的可靠性受到嚴重的挑戰:
.攝像機的安裝位置和拍攝角度不規范;
.白天環境光較強及背景陰影的干擾下,邊緣檢測的準確性會降低;
.夜晚光照不足,夜間車燈干擾會發生誤判;
.采集的圖像質量導致車牌區域字符分辨率降低;
.車牌泥點遮擋或其它文字干擾了正常的車牌字符識別區。
要把車牌檢測納入機器學習框架內,垂直邊緣信息和角點信息特征提取通常基于統計量方式。我們可基于一個48×16像素大小的掃描窗口對圖像進行車牌模式信號檢測。如可定義統計量區域密度為DG和區域密度方差VG,
其中,G(i,j)表示位于(i,j)位置上的梯度幅值,N是掃描窗口區域內的像素數量。 其中,n表示掃描窗口內被平均分成的子塊數量,gi表示第i個子塊內梯度幅值的平均值,g表示整個掃描窗口內梯度幅值的平均值。這清楚地刻畫出車牌區域與非車牌區域的明顯差異。
車牌識別的環節基于字符識別(OCR)核心算法的軟件模塊,這與通用的OCR軟件相比比較簡單,我們可以加入一些啟發式的約束條件以提高識別的正確率:
.通過現場攝像機定標的方式,得到以像素為單位的具體字符的尺寸規則;
.字符濾波器:漢字僅在省市簡稱的字符集內,字母在A~Z之間,數字在0~9之間;
.字符串的規則:車牌字符串的漢字之后,不能以數字開始,所有字母都是大寫。
車牌識別的OCR環節是在車輛出現在業務場景中的每幀進行的,可以把每次識別的結果存入一個緩沖區,當緩沖區填滿后采用一種投票仲裁的方式,把識別結果相同率最高的那個字符串作為最終的識別結果。對于實際的工程(如重大的智能交通工程),為了使車牌識別的準確度達到最高的水平,最好能構造一個符合具體應用場景的字符數據庫,以供OCR軟件能事先學習得到最好的識別性能。
具備規則屬性的事件檢測
事件檢測是多層遞階式視覺監控系統的最后一層,這層有承上啟下的作用,它把來自視頻現場的經過前置智能分析層析出的視覺元素數據(如檢測出的前景目標,被跟蹤的場景中有唯一ID的目標跟蹤軌跡,目標運動時序,場景中目標身份)統籌起來,檢查是否有定義的規則及受到的觸發,然后向語義層輸出視覺監控最終結果,最終以兩種方式提交:一種是以視覺告警、事件記錄或快球聚焦的方式給現場操作員,另一種是把這個事件機器翻譯成用語義表達的接近自然語言的格式,且保存在數據庫中供用戶層調用,追求的目標就是構造一個完整的W6(What、Where、When、Who、Why、How)系統。其中事件檢測就是回答How的問題。
規則解釋系統的操作對象是從底層視覺分析模塊中輸出的視覺元素數據,這些數據包括場景中目標的位置,它們當前的狀態、類別及特定目標身份信息。事件檢測器還識別目標之間的交互行為兩個和場景的侵入。另外事件檢測器還利用事件的歷史記錄,因此事件檢測是支持閉環邏輯分析的。
在公共場所(如機場和火車站)的安全業務中,遺留包裹或行李包長時間無人看管是值得關注的,因出于安全考慮這有可能預示著恐怖爆炸案的發生。作為演示事件觸發報警的例子,在這里用圖6來說明。
這是一個聯合使用底層事件檢測器和高層事件檢測器的例子。第一個條件是一個人離開行李箱:這個行為被檢測到,當一個被識別為人(或拉行李箱的人)的目標分裂為兩個目標:即這個人的目標(現在沒行李箱了,但原來的**仍然鎖定他),和行李箱目標(處于靜止狀態且被分配了新跟蹤id)。第二個規則檢查行李箱是否在被監控區域內保持靜止長達相應時間,第三個規則檢查剛才離開行李箱的人是否與行李箱離開了相應的距離。第四個規則檢查人與離開的行李箱是否達到了相應的時間。最后,高層事件檢測器檢查在最近分析的若干幀內,是否上面四個規則定義的事件都被底層事件檢測器探測到了。如果是,則高層事件檢測器輸出一個類似的事件描述:“一個人在監控區域A內離開了行李箱,并不在那里看管箱子了”。那么這個警告信息將直接發送到操作員的人機界面上。
上述基于規則的推理算法可以采用如圖7所示的“IF-THEN結構”自然語言機制來現。當然還可采用模糊集方法實現更加準確的判斷結果。
結語
本文提出的系統方案具備柔性的算法功能結構,為適應各種工程應用領域對目標識別和場景事件檢測的需求,可選擇不同功能模塊來構建智能節點上視頻分析組件,進而實現一個工程化分布式智能視覺監控系統。隨著視覺物聯網時代到來,基于大數據環境下的云存儲和智能視頻分析云計算架構,分布式智能視頻監控系統可向云端視頻監控管理中心提供結構化的海量視頻數據和元數據。