VSAM(VideoSurveillance and Monitoring)視頻監控系統
Robotics Institute CMU
1:引言
2:試驗床介紹
3:基本的視頻分析算法:運動目標檢測,跟蹤,分類,簡單行為識別
4:地理空間模型,感知網絡標定,三維地理位置估計,目標圖形顯示
5:多攝像機協作
6:成果展示及未來的研究計划
1 引言
VSAM可自動解析場景中的人和車,檢測目標並按語義分類,如人、人群、車,以及在此基礎上的行為分析,如走動、奔跑。利用VSAM,單個人即可監控復雜區域,跟蹤多個人、車以及識別其活動。
2 試驗床介紹
2.1 SPU(Sensor Processing Units)傳感器處理單元
SPU分析視頻中出現的實體和事件,符號化后傳給OCU,可兼容不同類型的傳感器,無縫集成到系統中,在SPU上處理減少了網絡負載,不需要傳輸全部視頻數據。系統可處理不同類型的傳感器,包括帶雲台控制的彩色攝像機,固定視角的單色相機,熱成像傳感器,全景相機,車載移動攝像機,機載移動攝像機。例如在車載相機系統中,目標檢測和跟蹤是在車內系統中完成的,結果通過無線網以符號數據的形式傳給OCU,車載移動相機的問題在於如何快速調整攝像機姿態。
2.2 OCU(Central Operator Control Unit)中央控制單元
OCU接受各個SPU傳回來的處理結果,將信息集成后推斷出用戶可能感興趣的事件,圖形化的呈現給用戶。OCU需要保證各個傳感器都被充分使用,OCU一個由用戶指明的任務列表,任務類型包括跟蹤指定目標、監視指定區域、檢測指定事件等等,這些任務會被分配給指定的傳感器。傳感器的分配采用一個代價函數進行評定,可計算出將某傳感器分配給某項任務的代價,評價指標包括任務的優先級、傳感器的負載、傳感器對目標的可見度等等,通過貪心算法最優化系統性能。
2.3 GUI
VSAM提供一個可交互的圖形用戶界面,包含監控區域的合成地圖,在其中標出人和車,而不直接顯示原始畫面,這樣可大大節省帶寬,只有當用戶主動選擇時才顯示某傳感器的原始畫面。
(1)跟蹤目標,顯示軌跡
(2)顯示傳感器畫面,雲台控制,抓圖
(3)區域監控,創建ROI,設定觸發事件的目標類型(人或車)、事件類型(進入、通過、駐留)
2.4 通信
使用兩種通信協議
(1) CMUPA(Carnegie Mellon UniversityPacket Architecture)
6個數據域封裝成一個包:命令,傳感器,圖像,目標,事件,興趣區,頭部中指明6個數據域中哪幾個可用。
(2) DIS(Distributed InteractiveSimulation)
用於在可視化終端上輸出檢測結果。
2.5 當前試驗床的基礎設施
共14台攝像機,10台通過光纖接入,3台通過無線接入,1台便攜型通過無線接入。其中有6台有可控雲台,萊卡自動跟蹤經緯儀。
3 視頻分析
VSAM可自動解析場景中的人和車,檢測目標並按語義分類,如人、人群、車,以及在此基礎上的行為分析,如走動、奔跑。目標具有地理位置信息,可用來進行更高級別的跟蹤,如多攝像機聯合跟蹤同一目標。
3.1 運動目標檢測
運動目標檢測可為后續的識別、分類、行為分析提供便利。
常用的幾種方法:
(1)幀差法[1],簡單快速,可適應動態背景,但不夠准確,不能分割出完整的運動目標。
(2)背景減除法[13,29],不能適應動態背景以及光照變化。
(3)光流法[3],可檢測出獨立的運動目標,但計算復雜,無法實時應用。
VSAM系統實現了三種方法:第一種是自適應背景減除和三幀差的混合方法,此方法速度快並且效果好(3.1.1)。第二種方法會保存檢測出的目標,這樣對於短時間靜止不動或被遮擋之后繼續運動的目標有較好的表現(3.1.2)。第三種方法可適應持續移動的攝像機(3.1.3)
3.1.1 一種運動目標檢測的混合算法
自適應背景減除算法[18]和三幀差算法的混合方法。
自適應背景減除算法的一個缺點是場景中的固定目標移動出去后會留下空洞,此后背景需要一段時間來適應此空洞。
而幀差法往往無法提取運動目標的完整形狀,因為目標內部具有相同灰度值的像素點經過幀間差后為0,被排除在前景之外。
所以我們先用三幀差法檢測合法運動區域,然后用背景減除法提取整個運動區域。
三幀差法:連續的三幀:I1、I2、I3,只有當(I3-I1) 和(I3-I2) 都大於閾值時才認為此點是運動目標。
將運動區域形成連通域,連通域內部的像素填充為前景像素。
3.1.2 帶有臨時分層的自適應背景減除法
分層檢測基於兩點:像素分析和區域分析。
像素分析:通過一段時間對像素灰度值進行觀察,決定其是固定不變的還是臨時存在的。
區域分析:決定一塊區域是運動區域還是靜止區域。
通過觀察得出像素點的灰度值變化的三個特點:
(1) 有運動目標通過的像素點,在目標到達時有灰度值階躍,然后有一段不穩定期,目標通過后再次階躍到初始值。
(2) 有運動目標到達並停留的像素點,在目標到達時有灰度值階躍,然后有一段不穩定期,目標停留下來后會達到一個新的較穩定點。
(3) 由光照、氣象變化引起的灰度值改變趨向於平滑變動,沒有階躍。
為了找出這些變化的本質,兩個因素很重要:一是是否發生灰度值的階躍,二是經過一段時間的不穩定后穩定下來的灰度值。為了解釋這些階躍的意義,需要觀察階躍發生之后的灰度值變化曲線圖,這會帶來一定的時延。
It:在時間t時的像素灰度值,t距當前有k幀間隔。
觸發值T:當前灰度值與過去5幀灰度值差的絕對值的最大值。
穩定度度量S:從時間t到當前的灰度值變化的方差
對於像素點M
if((M == 背景點或目標停留點) and (T >threshold) )
M= 運動點
else{
if((M == 運動點) and (S <threshold) ) {
if(穩定的灰度值 == 背景灰度值 )
M= 背景點
else
M= 目標停留點
}
}
所有非背景的像素點M(運動點、目標停留點)被聚合成連通域R
if(R == 運動點 ) //R中的所有點都是運動點
R是運動目標
elseif( R == 目標停留點 ) { //R中的所有點都是目標停留點
R= R – ( L(0) + … + L(j) ); //減去所有已指定為其他層的像素點
if(R != 0 ) { //若R中還有剩下的像素
新建一個層L(j+1) = R
R是停留目標
}
else{ //R中既有運動點又有目標停留點
對於R – ( L(0) + … + L(j) )進行空間聚類
對於每一個子區域SR {
if(SR == 運動點 )
SR是運動目標
if(SR == 目標停留點 ) {
新建一個層L(j+1) = SR
SR是停留目標
}
if( SR == (目標停留點 + 運動點) )
SR是運動目標
}
}
所以,每個停留目標被看做背景之上的一個層,並且所有停留目標層和背景都用IIR( Infinite Impulse Response 無限脈沖響應)濾波進行更新,以適應光照變化和噪聲。
3.1.3 適用於雲台移動攝像機的背景減除算法
一般背景減除算法不適用於雲台攝像機的運動目標檢測。
提出一個全球面的背景模型,在其上可以使用背景減除法,
(1) 背景更新:當攝像機巡視球面模型不同區域的時候,背景必須跟着更新,而這依賴於必須精確知道攝像機的視角,也就是當前畫面在整個球形背景中的位置。雖然可以讀取攝像機的平移和傾斜角度,但這要求攝像機時固定的,並且由於通信延時,無法實時的精確的獲取相機的視角信息。我們的解決方法是保存球形背景的多張圖片,借此推斷攝像機的視角。
(2) 背景減除:當攝像機移動的時候,球形背景的不同部分被檢索並與當前畫面相減來獲得獨立的運動目標。
主要的問題是,如何將當前幀與對應的背景圖片實時關聯起來,大多數圖像配准技術都無法實時應用。我們提出了一種新的配准方法,只使用包含關鍵信息的像素子集進行配准,使得處理速度大大加快,可以實時應用,詳情見[8]。
1)當前視頻幀;2)最相近的背景圖;3)將當前幀變換到背景圖坐標;4)與背景圖做絕對差
3.2 目標跟蹤
許多目標跟蹤系統基於Kalman濾波,但純粹的Kalman濾波方法有缺陷,因為他是基於高斯濾波的,不支持同時多目標。我們擴展了基本的Kalman濾波方法,使得可以跟蹤多個目標。
預測目標位置
預測目標位置可減少需要檢測的運動區域個數
P:目標在當前圖像中的位置,δP:位置誤差,V:速度,δV:速度誤差
Δt時間之后的位置:Pn+1 = Pn + Vn*Δt,誤差:δPn+1 = δPn +δVn*Δt
目標匹配
然后通過用當前幀中的目標在將來幀中做模版匹配,找到誤差度量函數值最小的區域作為預測區域。
目標跟蹤
目標跟蹤的很大一部分工作是匹配。有以下五種方案:
1) 已存在的運動區域不匹配任何已知目標,此時應新生成一個目標,其置信度設為較低級別。
2) 已知目標不存在於任何運動區域中,表明或者目標已離開視場,或者被遮擋,或者未被檢測到,這時應降低目標的置信度,如果置信度低於一個閾值則將此目標刪除。
3) 一個已知目標唯一匹配一個運動區域,這是最好的一種情況,目標的軌跡將被更新,置信度增加。
4) 一個已知目標匹配多個運動區域,這種情況發生是因為一個目標分裂為多個獨立目標,例如人群分裂為單個人或人從車中出來,或者是由於同一目標的像素點未被聚類在一起。這時最佳匹配區域被選為新的目標位置,其他運動區域作為新的目標。
5) 多個目標匹配同一個運動區域,這可能由於兩個目標相互遮擋,或兩個目標融合在一起(例如多人融合為人群)。這時,合並后的多個目標被分別跟蹤,如果他們以同一速度維持一段時間,則認為他們已合成為單個目標,否則繼續分別跟蹤。
一般來說,匹配后目標的模版會作為運動區域的模版,並增加置信度,但如果有多目標匹配同一運動區的情況,可暫時不更新。
未匹配的目標保持當前的位置、速度和圖像模版,其置信度下降,當低於閾值時,丟棄此目標,從目標列表中刪除。高置信度的目標(表明已跟蹤了很長一段時間)在置信度低於閾值時暫時不刪除,多保留一段時間,以防止臨時被遮擋后找不到。
消除誤報
搖動的樹,移動的影子,以及視頻信號中的噪聲都可能被檢測為運動目標。合法的運動目標的特點之一是持續性,另一特點是移動軌跡的目的性(樹的搖動軌跡是無目的性的,人和車的移動軌跡是有目的性的)
目標的運動顯著性(salience)檢測。
顯著性檢測算法基於光流(opticflow)的累積,然而,當流的方向改變時,累積值被置為0,所以,對於搖動的樹這類目標,其累積值一直不會很大,而有目的性運動目標的累積值將很大,可用來區分這兩類目標。
3.3 目標分類
VSAM的最終目的是為了能是被單個實體,例如聯邦快遞卡車、下午4:15去奧克蘭的巴士。系統中使用了兩種分類算法,第一種是基於視覺的神經網絡分類器,可識別三類目標:單個人、人群、車輛;第二種方法使用線性判別分析(LDA),可區分車輛類型(箱車、轎車、卡車)和顏色,並且此方法還可以通過訓練來識別一些特別車輛,如UPS卡車和校園警車。
3.3.1 神經網絡
神經網絡的輸入特征是基於圖像和場景的目標參數:周長的平方/面積,面積,目標包圍盒的長寬比,攝像機縮放級別。有三種輸出類別:人、車、人群。
在視頻的每一幀圖像上,對於運動目標都進行分類,分類結果保存在一個直方圖中,每過一個時間段,具有最大概率的類標被描述為此目標的類別(詳見[20])。
實驗結果:
同時還使用了其他特征進行分類實驗,例如根據目標的地理位置信息以及攝像機參數,可大體估計出目標的真實寬度w和高度h,然后根據長寬比例可准確的估計出目標的類別。
另一個分類特征是根據目標是否剛體,通過檢測其外表變化來判斷是否剛體詳見[28],
這種方法用來區分汽車(剛體)和行人(非剛體)非常有效。
3.3.2 LDA分類
系統中的LDA方法有兩個子模塊:一個用來對形狀分類,另一個用來對顏色分類。每個子模塊在獨立的判別空間中進行分類,使用K近鄰(KNN)算法計算最可能的類別。
LDA的原理是,將高維特征空間中的帶上標簽的數據(點),通過投影的方法,投影到維度更低的空間中,使得投影后的點,會形成按類別區分,一簇一簇的情況,相同類別的點,將會在投影后的空間中更接近,即使得投影后類內距離最小,類間距離最大。
在對目標的特征向量x進行分類的時候,首先將x轉換為判定空間中的一個點y,然后計算y到每個帶類標的樣本點的距離,選擇k個距離最近的樣本點(KNN)。根據KNN分類規則,根據這k個樣本的類別來決定目標的類別,k個樣本到y點的距離做權重。
形狀分類,離線處理部分
基於形狀的監督學習目標分類方法分以下幾步:
(1) 人工收集形狀圖片並打上類標,這里我們指定了六種形狀:人(單個以及群體)、轎車、箱車、卡車、高爾夫球車、其他(噪聲),以及三個特殊類別:聯邦快遞車,UPS快遞車,警車。總共有大約2000個樣本圖片。
(2) 系統計算每個樣本圖片中目標區塊的面積、重心、長寬、以及沿x軸和y軸的1階、2階、3階矩,構成11維的圖像特征向量。
(3) 系統使用LDA計算一個形狀的判定空間。
形狀分類,在線處理部分
在線部分全部自動執行,包括:
(1) 計算輸入圖像的面積、重心、長寬、以及沿x軸和y軸的1階、2階、3階矩,構成11維的特征向量。
(2) 將特征向量投影到判定空間。
(3) 計算距離特征點最近的10個樣本點,為目標的類別進行投票。
顏色分類,離線處理部分
目標的主體顏色同樣使用LDA進行分類,由於觀察到的顏色會隨着光照、天氣等原因發生變化,所以使用一些離散的顏色集來適應這些變化。
(1) 人工從訓練圖片中分割顏色,將他們分為六類:
①紅-橙-黃
②綠
③藍-淡藍
④白-銀-灰
⑤深藍-深綠-黑
⑥深紅-深橙
總共收集了天氣狀況良好情況下的1500張圖片,和多雲天氣下的1000張圖片。
(2) 在每張樣本圖片上,采樣25個像素點的RGB灰度值,然后系統使用以下公式將RGB值映射為(I1,I2,I3)顏色空間:
然后對所有計算出的(I1,I2,I3)值取平均得到一個三維顏色特征向量。
(3) 系統使用LDA計算一個顏色的判定空間。
顏色分類,在線處理部分
在線部分全部自動執行,包括:
(1) 系統對輸入區塊的RGB灰度值每隔一個像素進行一次采樣。
(2) 將RGB值轉換為(I1,I2,I3)顏色空間,得到特征向量。
(3) 將特征向量投影到判定空間,計算到每個樣本的距離,找到10個最近的樣本點,為目標的顏色類別進行投票。
實驗結果
實驗精度大約為90%,但遇到下雨、下雪、清晨、夜間、背光、車體反光等情況時結果不理想。
每個車輛的樣本圖片,都要分為車頭向左和車頭向右分別訓練,所以也只能檢測車輛的側面照片,如果出現正對車頭或者車尾視角的圖片,就無法識別。
3.4 行為識別
目標檢測並分類為人和車之后,我們更想知道這些目標在做什么。行為分析是視頻理解領域的一個重要的開放問題。我們開發了兩個原型方法:第一種方法根據目標的幾何形狀改變對行人的走和跑進行步態分析。第二種方法使用馬爾科夫模型學習分析多目標的簡單交互,例如兩個人碰面,或者一輛車開入畫面並放下一個人。
3.4.1 步態識別
在視頻中實時檢測並分析人的行為在最近才變得可行(指2000年),如[29]中的Pfinder和[13]中的W4,這些算法完成了人的識別和分析中的一些初步工作,但還有很多不足。通常來說,這些方法都是首先檢測人的手、腳、頭,然后跟蹤,再和預先設定的模型進行匹配,例如cardboard模型[16]。
我們提出了一種分析行人步態的星型骨架方法,通過檢測目標輪廓上的極值點來構成星型骨架。具體來說,首先找到目標輪廓的幾何中心(centroid),然后計算輪廓上所有點到幾何中心的距離,形成一個距離分布函數,經平滑后求得所有極大值點即為骨架的外端點,如下圖:
分析行人步態的一種方法是分析關節位置的周期運動,但本系統中檢測出的行人太小,無法實時監測出關節位置。另一個與行人步態相關的是其姿勢,通過基於星型骨架的分析,可以判定行人的姿勢:
骨架的最上面部分代表人體的軀干,下面兩個分叉代表人的一雙腿。
θ:左腿的垂直夾角
φ:軀干的垂直夾角
下圖展示了行走和跑動的人體骨架序列,以及θ和φ兩個角度值的變化統計,數據取自8fps的視頻。
可以看出,根據φ的平均值,可以區分出走和跑,同樣,根據θ值的變化頻率也可以區分出走和跑。
3.4.2 基於馬爾科夫模型的多目標行為分析
首先檢測出的目標屬性,設定幾個行為標簽,目標的行為是可以最大化觀察到指定屬性的概率的那個標簽,使用馬爾科夫模型來判定屬性和行為間的概率關系。
測試場景中包含人和車的交互,分為以下幾個屬性集:
目標類別:人、車、人群;
目標行為:出現、移動、停止、消失;
交互:近鄰、遠離、靠近、無交互;
要識別的行為有:
(1) 人進入車中,(2) 人從車中出來,(3) 人離開建築物,(4) 人進入建築物,(5) 車停下,(6) 人碰面
3.5 Web系統
前端設備采集的所有數據,包括目標圖像、日期、時間、天氣信息、溫度、軌跡、攝像機參數、目標分類信息,通過一個基於web頁面的系統都可以隨時隨地查看。用戶可得到場景內所有人和車的行為報告,並可通過點擊超鏈接查看詳細記錄和截圖。
3.6 機載監控
3.6.1 機載目標跟蹤
在移動攝像機中跟蹤運動目標具有很大難度,主要是要克服相機的自移動。當新的一幀到達時,系統將其變換到參考圖像的坐標系中,然后再進行運動目標的檢測。
3.6.2 攝像機固定和瞄准
在移動平台上,人工操作攝像機來跟蹤目標很容易使操作者疲勞,Sarnoff通過圖像校准技術可固定攝像機視角,自動跟蹤目標,或者使攝像機瞄准某一靜止目標不動[4,12,27]。
3.6.3 機載攝像機的多任務
機載攝像機資源寶貴,經常用來跟蹤多目標,但多目標不移動一起出現在同一視野中,所以要求機載攝像機可周期性的轉換視野來監視多個目標區域。
5 多攝像機協作
在戶外環境中,單個攝像機不可能一直盯住某個目標,目標可能被環境中的樹木、建築物等的物體遮擋,而單個攝像機的視野有限。解決辦法是使用多個攝像機聯合跟蹤目標,系統中使用兩種攝像機協作方式:第一種是多攝像機接力跟蹤,第二種是主從攝像機協作,即廣角攝像機跟蹤大范圍內的多個目標,然后控制雲台攝像機來具體跟蹤需要要特別關注的目標。
5.1 多攝像機接力
假設在時間t0,一個pan和tilt值為(θ0, φ0)的攝像機被命令跟蹤一個目標,此目標所在位置為X0,速度為 。設函數G(X)可以將目標的位置X轉換成pan-tilt值(根據攝像機標定信息確定),則可將目標的位置X0轉換為想要的pan-tilt值:
(θd,φd) = G(X0),
pan-tilt系統使用一個線性函數進行估計:
將目標的pan-tilt值(θd, φd)帶入上述公式左邊,求得(t-t0),即雲台設備需要多長時間把鏡頭對准目標。然而,目標是不斷運動的,目標的新位置預測值是:
這個新的位置值被轉換為pan-tilt值,繼續轉動雲台設備,不斷迭代,直到收斂(t-t0很小)
縮放等級可根據想要的目標大小進行調節。
當攝像機指向感興趣的目標並調節好縮放等級后,就需要在新的場景中匹配目標,而只適用於特定場景的目標特征顯然已不能繼續使用,因為不同攝像機的場景可能有很大不同,所以需要使用獨立於特定場景的識別特征,系統中使用歸一化的顏色直方圖在不同場景中進行目標匹配。
5.2 主從攝像機
另一種攝像機協作方式是主從攝像機:使用廣角攝像機控制一個雲台攝像機來跟蹤指定目標以獲得更好的視覺效果。目的是為了能在全景中跟蹤所有的攝像機,同時可以獲得選中目標的高分辨率圖像。
對於已在3D場景中標定好的攝像機,此任務就變得相對簡單。主攝像機獲得目標在3D場景中的位置信息后,很容易將位置信息轉換為從攝像機的pan-tilt值,從而控制雲台攝像機。
6 總結與展望
現在的VSAM試驗床和配套的視頻分析技術是三年來累積的成果,雖然現在此項目已結束,VSAM系統仍具有研究和測試價值。
后續工作目標:
1) 人的行為理解
2) 多目標交互行為分析
3) 系統的改進