鄧立,沈繼忠,高鵬輝
(浙江大學信息與電子工程學院,浙江杭州310027)
隨著經(jīng)濟的發(fā)展,監(jiān)控攝像頭應用越來越多,據(jù)調(diào)查,目前上海的攝像頭數(shù)量達100萬,分布密度為158個·km-2,北京的攝像頭數(shù)量達115萬,分布密度為71個·km-2,這些攝像頭給城市安防提供了保障[1]。當然,由于監(jiān)控設備數(shù)量較多,安保人員很難長時間高度關注每一個監(jiān)控視頻畫面。為了實時監(jiān)測視頻并對突發(fā)事件報警,智能監(jiān)控技術應運而生[2-3]。
智能監(jiān)控技術在實時觀測被監(jiān)控場景時,能自動對視頻中的運動目標進行提取、跟蹤和檢測[4-5],并實現(xiàn)對運動行為的描述和分析,如果檢測到異常行為就發(fā)出警報,為保護人身和財產(chǎn)安全提供幫助。
群體行為往往會導致嚴重的安全事件,因此在安防領域,更需關注群體行為的檢測。目前,對人群突發(fā)事件的檢測有提取運動特征進行判斷[6-7]、基于社會力模型分類[8-9]、通過信息熵表示人群分布信息[10-13]等,文獻[11]計算了視頻中每個像素點的行為熵,通過場景行為熵檢測人群異常行為;文獻[12]論證了在人群混亂狀態(tài),信息熵會很高,在人群有序狀態(tài),信息熵會很低;文獻[13]結(jié)合人群狀態(tài)指數(shù)、人群運動強度指數(shù)、人群混亂指數(shù)分析人群狀態(tài)?,F(xiàn)有研究主要通過速度與熵檢測人群狀態(tài),速度反映當前的運動狀態(tài)而非運動狀態(tài)的變化,加速度才能更好地反映突發(fā)事件發(fā)生時人群運動狀態(tài)的變化。目前,人群異常檢測是綜合人群密度、運動狀態(tài)、人群混亂度等信息來判斷的。人群速度突變和混亂程度增加均屬異常,現(xiàn)有研究缺乏對人群異常的細分。人群突發(fā)事件是指由于自然或人為原因使人群的運動狀態(tài)發(fā)生改變,人群突發(fā)事件分為有序和混亂兩類。有序的突發(fā)事件是指盡管加速度很大,但人群向著同一方向有序地撤退;混亂的突發(fā)事件是指加速度很大,人群四散而逃,向多個方向運動。
本文針對視頻監(jiān)控中的人群突發(fā)事件檢測和判斷進行研究,提出了光流法與信息熵相結(jié)合的一種檢測算法,此算法能準確檢測突發(fā)事件并判斷人群狀態(tài),適用于多種不同背景的環(huán)境。通過LK光流算法提取視頻中運動物體的特征點[14-15],得到運動物體特征點的位置、速度和加速度信息,分析運動強度,檢測突發(fā)事件。通過計算各速度矢量的概率分布,得到信息熵,表征視頻中的混亂度,從而判斷視頻中人群的混亂情況,對事件做出判斷。
光流是基于像素點定義的,是一種圖像運動的表達方式。當觀察者與被觀察物體發(fā)生相對運動時,物體的像素點在成像平面上運動,好像是一種光的“流”[16-18]。實際上光流[19-20]是運動物體在二維圖像平面上的投影,光流的集合稱為光流場[21-22]。
LK光流算法[23]有以下3個假設條件[24]:
(1)亮度恒定:在視頻相鄰幀之間,運動目標的亮度保持不變;
(2)時間連續(xù):時間發(fā)生變化很小時,幀間對應的運動目標像素點的運動也足夠??;
(3)空間一致性:相鄰的像素點具有相似的運動。
通過光流法的3個假設可以得到光流值與灰度值的關系矩陣:
I(x,y)是圖像上像素點(x,y)處的灰度值,i是視頻幀數(shù)。Vx與Vy即為像素點在x與y方向上的光流。由式(1),可求出每一像素點對應的光流值。
LK光流法用于提取和跟蹤特征點,是本文檢測算法的基礎。
香農(nóng)將統(tǒng)計物理中熵的概念引進了信息論,是現(xiàn)代信息論的創(chuàng)始人[25]。在信息論中,熵用來衡量系統(tǒng)的無序程度。一個系統(tǒng)信息熵H的大小與該系統(tǒng)的狀態(tài)概率p有關,概率p越小,系統(tǒng)所包含的信息熵H越大[26]。信息熵還可用來度量變量間的相關度,對大型數(shù)據(jù)集的相關性分析非常重要[27]。如果一個系統(tǒng)由狀態(tài)集{a1,a2,…,an}組成,而每一個狀態(tài)所對應的概率分別為p1,p2,…,pn,,那么系統(tǒng)的信息熵H定義為
信息熵具有以下基本性質(zhì)[28]:
(1)最大信息熵:Hn=H(p1,p2,…,pn)≤ logn,當且僅當,i=1,2,…,n時取等號。
(2)最小信息熵:Hn=H(p1,p2,…,pn)≥ 0,Hn=0當且僅當pi=1,p1=p2=…=pi-1=pi+1=…=pn=0。
(3)對稱性:H(p1,p2,…,pn)=H(p2,p1,…,pn),即樣本重新排序后,熵保持不變。
從以上信息熵的性質(zhì)可以看出,若用信息熵來描述一個系統(tǒng)的運動狀態(tài),當系統(tǒng)中運動狀態(tài)趨向一致時,會出現(xiàn)最小的熵值,此時系統(tǒng)是有序的;反之,當系統(tǒng)中各個運動狀態(tài)都不同時,會出現(xiàn)最大的熵值,此時各個方向的運動狀態(tài)出現(xiàn)的概率相等。
信息熵代表了混亂度,是算法的關鍵。將信息熵應用于突發(fā)事件檢測,可方便判斷人群處于混亂還是有序狀態(tài)。
突發(fā)事件發(fā)生時,人群的運動強度會發(fā)生很大的變化,特征點的加速度相對較大;如果人群處于混亂狀態(tài),那么,計算得到的所有特征點的信息熵會很大。為此,提出檢測突發(fā)事件、判斷人群混亂狀態(tài)的算法步驟:
(1)光流法提取并追蹤視頻中圖像的特征點;
(2)根據(jù)每幀圖像中特征點的位置變化,計算其運動加速度,通過設定加速度閾值分析特征點的運動強度,檢測是否有突發(fā)事件發(fā)生;
(3)將速度矢量方向劃分為8個區(qū)域,計算特征點的速度矢量在每個區(qū)域中的分布概率pi;
(4)根據(jù)式(2)由分布概率pi計算信息熵,通過信息熵的大小,判斷事件中人群狀態(tài)是有序還是無序。結(jié)合運動強度與混亂度檢測并判斷突發(fā)事件的緊急程度。
各步驟具體描述如下:
步驟1調(diào)用goodFeaturesToTrack函數(shù)獲得圖像中的特征點,通過光流算法得到特征點(x,y)在視頻的第t幀對應的位置信息(Vx,Vy)。
步驟2通過位置信息計算速度,公式為
前一幀和后一幀的速度差即為加速度。
假設其中共有n個特征點,特征點對應的光流加速度分別為a1,a2,…,an,對光流加速度進行高斯濾波處理,抑制異常的光流加速度,得到高斯濾波后的第m個光流加速度:
加速度閾值的設置方法:檢測一個突發(fā)事件未發(fā)生的場景,獲取一段時間內(nèi)的視頻,并輸出視頻圖像中特征點的加速度數(shù)據(jù),加速度閾值設定為加速度數(shù)據(jù)中最大值的2倍左右,加速度閾值與場景、光照、人群密度等有關。在此基礎上可通過信息熵的大小判斷人群狀態(tài)是有序還是混亂,從而判斷是否易發(fā)生安全性事故。
步驟3如圖1所示,將速度矢量方向劃分為8個區(qū)域,統(tǒng)計各速度矢量在每個區(qū)域的分布數(shù)量,各區(qū)域速度矢量的數(shù)量除以速度矢量的總數(shù)得到速度矢量在方向上的分布概率pi。本文用分布的統(tǒng)計結(jié)果近似代替概率。
圖1 信息熵計算分區(qū)示意圖Fig.1 Partition diagram for information entropy calculation
步驟4根據(jù)式(2)的定義計算信息熵Hn。計算時以10為底取對數(shù),Hn的單位為det(迪特),根據(jù)實驗測試設置信息熵的閾值為0.5 det,當信息熵超過閾值時,人群處于混亂狀態(tài),否則,人群處于有序狀態(tài)。根據(jù)信息熵的性質(zhì),最大熵為lg 8=0.903 det,最小熵為0。測試驗證得到,閾值設置為0.5 det就可很好地區(qū)分混亂和有序狀態(tài)。值得注意的是,本文是對運動矢量統(tǒng)計計算得到信息熵,而非計算靜態(tài)像素分布熵,反映的是視頻中人群的運動情況。
分析了研究者自己拍攝的人群突發(fā)事件視頻、UMN(University of Minnesota)數(shù) 據(jù) 集[29]視 頻 和PETS 2009[30]數(shù)據(jù)集視頻。
突發(fā)事件發(fā)生前人群的行為有自由行走、定向行走、人群靜止等,一共有6段視頻,分辨率為640×480,幀率為 30 fps。
按照1.3節(jié)中的檢測步驟,計算視頻中的加速度和信息熵,圖2(a)顯示了人群突發(fā)事件視頻的截圖,圖2(b)顯示的是加速度隨幀數(shù)變化的檢測結(jié)果,根據(jù)1.3節(jié)中的閾值設置方法,加速度閾值設置為100,加速度的單位是像素/幀2。可以看出,在視頻的0~184幀中,加速度在閾值內(nèi),未發(fā)生人群突發(fā)事件。184~218幀,加速度超過閾值,檢測到有突發(fā)事件發(fā)生。圖2(c)顯示的是加速度超過閾值時信息熵的大小,可以看出,在加速度大于100時,對應時間范圍內(nèi)信息熵均大于閾值0.5 det,說明視頻中的人群處于混亂狀態(tài)。將算法檢測的結(jié)果與視頻的真實情況進行對比,兩者情況相符。當視頻中加速度超過閾值時,判斷人群是否處于混亂狀態(tài),結(jié)合運動強度與混亂度判斷突發(fā)事件的緊急程度,并判斷是否易發(fā)安全性事故。
圖2 自拍攝視頻測試結(jié)果Fig.2 Test results of our video
本文沒有將加速度小于閾值的信息熵輸出,是因為未發(fā)生突發(fā)事件檢測人群的狀態(tài)無太大意義。例如,人群隨意走動時,混亂度也很大,但不會發(fā)生安全事故。而且,減少不必要的計算可以提高算法效率。
突發(fā)事件發(fā)生后人群處于有序狀態(tài)的視頻檢測結(jié)果如圖3所示。
PETS 2009數(shù)據(jù)集的S3部分是人群事件識別的內(nèi)容,包括4種不同的戶外背景,分辨率為768×576。
圖3 自拍攝視頻測試結(jié)果Fig.3 Test results of our video
圖4 顯示了PETS 2009數(shù)據(jù)集的測試結(jié)果,從圖4(b)中可以看出,算法有效地檢測出了人群突發(fā)事件,結(jié)合圖 4(a)和(c)發(fā)現(xiàn),第 1段和第 2段視頻人群處于有序狀態(tài),第2段和第4段視頻人群處于混亂狀態(tài)。檢測結(jié)果表明,算法能有效檢測出突發(fā)事件,并判斷人群處于混亂還是有序狀態(tài)。
UMN數(shù)據(jù)集中人群異常行為檢測的部分包括公園草地、廣場、室內(nèi)走道3種背景的11個視頻片段,分辨率為320×240。
圖4 PETS2009數(shù)據(jù)集測試結(jié)果Fig.4 Test results of PETS 2009 Dataset
圖5 顯示了UMN數(shù)據(jù)集的測試結(jié)果,從圖5(b)中可以看出,算法有效檢測出了人群突發(fā)事件,結(jié)合圖5(a)和(c)可以發(fā)現(xiàn),第1段和第2段視頻人群處于混亂狀態(tài),第3段視頻人群處于有序狀態(tài),檢測結(jié)果與實際情況相符。
2.4.1 對比圖3~圖5中不同背景視頻的檢測結(jié)果發(fā)現(xiàn),在排球場、公園草地、廣場、室內(nèi)走道等背景中,算法能有效檢測突發(fā)事件,判斷人群狀態(tài)。實驗采用多種場景,這些場景的光照、對比度、色彩等各不相同,說明算法適用范圍廣。
2.4.2 實驗結(jié)果對比顯示,算法根據(jù)信息熵的大小判斷人群的狀態(tài),有效區(qū)分人群處于混亂還是有序的狀態(tài),可為突發(fā)事件的緊急程度判斷提供參考,從而有針對性地采取措施。
2.4.3 圖3屬于局部事件,即發(fā)生突發(fā)事件的人群只占整個畫面的一部分;圖5屬于全局事件,發(fā)生突發(fā)事件的人群幾乎占據(jù)了整個畫面。從局部事件和全局事件的測試結(jié)果看,無論視頻中人群的像素點占畫面的小部分還是大部分,對算法均無影響,均能有效檢測出突發(fā)事件,判斷人群處于混亂還是有序狀態(tài)。
圖5 UMN數(shù)據(jù)集測試結(jié)果Fig.5 Test results of UMN dataset
2.4.4 目前視頻監(jiān)控中常用的分辨率為QCIF(176×144)、CIF(352×288)、HALF D1(704×288)、D1(704×576)等[31-32],測試數(shù)據(jù)集中分辨率為320×240,640×480,768×576,本方法仍能準確檢測人群突發(fā)事件。
國際上通常使用受試者工作特征曲線(receiver operating characteristic,ROC)反映人群突發(fā)事件檢測算法的準確性和魯棒性,本文算法的ROC曲線如圖6所示。
定義ROC曲線與x軸和直線x=1圍成的封閉區(qū)域面積為 AUC(area under the curve),AUC值越大,檢測算法的準確性和魯棒性越好[33]。
在眾多人群異常事件檢測算法的文獻中,將UMN數(shù)據(jù)集[29]作為測試集,本文基于UMN數(shù)據(jù)集對不同算法的性能做對比。性能比較好的為KALTSA 等[7]結(jié) 合 histograms of oriented swarms(HOS)和 histograms of oriented gradients(HOG)進行檢測的工作,以及MARSDEN等[6]通過人群聚集和沖突的特征(holistic features)檢測突發(fā)事件的工作,表1為本文算法與這2種算法基于相同的UMN場景的結(jié)果。
從表1看,以上3種算法都具有較高的性能,本文算法較文獻[6]算法的準確性和魯棒性更高,較文獻[7]算法性能稍遜,但費時較文獻[7]少很多,在158×238分辨率下,文獻[7]算法的時間是0.91 s/幀,本算法在320×240分辨率下的時間為0.03 s/幀,并且本文算法能在準確率較高的基礎上區(qū)分突發(fā)事件中人群的混亂或有序狀態(tài),對事件的緊急程度做出判斷。
綜上所述,結(jié)合光流法與信息熵的人群突發(fā)事件檢測與判斷算法可有效檢測突發(fā)事件,判斷人群處于混亂還是有序的狀態(tài),有助于更好地獲得視頻中的信息。實驗結(jié)果表明,該算法適用于多種不同背景的環(huán)境,適用范圍廣;多次實驗結(jié)果與實際相符合,準確率高。
圖6 UMN測試集的ROC曲線Fig.6 ROC of UMN dataset
表1 不同算法AUC比較Table 1 Comparison of different algorithms
提出了一種結(jié)合光流法與信息熵的人群突發(fā)事件檢測與判斷算法。該算法將信息熵的概念與智能視頻監(jiān)控相結(jié)合,表征了視頻中人群的混亂度。通過LK光流算法從視頻中提取運動物體的特征點,得到其位置信息,由位置信息計算速度和加速度,分析運動強度,檢測突發(fā)事件;根據(jù)各速度矢量的概率分布計算信息熵,由此來判斷視頻中的人群是混亂還是有序。與同類研究相比,因本研究將加速度與信息熵相結(jié)合來檢測突發(fā)事件、判斷人群狀態(tài),能更好地反映突發(fā)事件發(fā)生時人群運動狀態(tài)的變化,對人群狀態(tài)是混亂還是有序做了細分,有利于判斷突發(fā)事件的緊急程度,從而合理配置救援資源。本算法在測試視頻中AUC值平均達到0.963,當視頻分辨率為 320×240、640×480、768×576時均有較高的準確性和魯棒性。