VSAM:視訊監控系統 A System for Video Surveillance and Monitoring
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) 系統的改進
論文下載地址:http://download.csdn.net/detail/masikkk/6328043
相關文章
- 視訊監控系統的設計
- 雪亮工程視訊監控系統建設方案重點人員監控系統開發
- 專業系統監視器:System Dashboard Pro for MacMac
- 智慧公安雪亮工程系統開發視訊監控系統開發
- Shell 系統資訊監控指令碼指令碼
- 監控系統網路視覺化傳輸視覺化
- 雪亮工程動態視訊監控系統建設動態人臉識別系統搭建
- 提升Mac效能,盡在System Dashboard Pro (專業系統監視器)Mac
- 實時監控系統,統一監控企業APIAPI
- 圖解JanusGraph系列 - JanusGraph指標監控報警(Monitoring JanusGraph)圖解指標
- Design and implementation of database anomaly monitoring system based on AI algorithmDatabaseAIGo
- 手刃前端監控系統前端
- python搭建系統監控Python
- Mac系統監控工具Mac
- 智慧影片監控系統
- Linux 系統監控指南Linux
- 智慧工地監控系統
- 打造前端監控系統前端
- 智慧警務視覺化應用監控系統搭建視覺化
- 境外黑客組織再次蠢蠢欲動,欲對我國視訊監控系統下手?黑客
- 系統監控&JVM監控指標資料查詢JVM指標
- 專業系統監視器:System Dashboard Pro for Mac v1.10.0啟用版Mac
- linux系統 物理硬碟監控Linux硬碟
- Docker 容器監控系統初探Docker
- sysstat——系統效能監控神器
- Prometheus監控報警系統Prometheus
- 前端監控系統Sentry搭建前端
- 影片監控ai分析系統AI
- 影片監控智慧分析系統
- 電力影片監控系統
- 直播間截留監控系統
- Go 系統監控利器-gopsutilGo
- 前端監控基礎篇 — Docker + Sentry 搭建前端監控系統前端Docker
- 一種對雲主機進行效能監控的監控系統及其監控方法
- Nginx R31 doc-15-Live Activity Monitoring 實時活動監控Nginx
- 恆訊科技分析:什麼是伺服器監控系統?伺服器
- 搭建前端錯誤監控系統前端
- Kafka監控系統Kafka Eagle剖析Kafka
- 系統監控工具:MenuBar Stats for macMac