趙 倩, 程 祥
(上海電力學(xué)院 電子與信息工程學(xué)院, 上海 200090)
隨著世界各地恐怖事件、踩踏事件、群體突發(fā)事件的頻發(fā),人們對公共場所中的安全問題越來越重視。因此,密集場景中的人群運(yùn)動分析、群體事件及異常行為檢測是當(dāng)前智能監(jiān)控研究領(lǐng)域的熱點(diǎn)課題,也是視頻監(jiān)控系統(tǒng)和智能交通研究的重要方向之一。其在維護(hù)社會治安、提高城市交通規(guī)劃的科學(xué)性等方面都具有重要的研究價(jià)值。
密集場景的傳統(tǒng)分析思路是將場景看作目標(biāo)的運(yùn)動集合,以實(shí)現(xiàn)提取目標(biāo)軌跡及行為識別的目的[1-3]。如基于目標(biāo)中心對象的處理方法,將密集人群看作大量個(gè)體的集合,從個(gè)體分析角度出發(fā)提取其速度和方向,然后采用加權(quán)的連接圖和由底向上的多層聚類方法實(shí)現(xiàn)群體檢測[4]。這類算法的有效性保證條件為目標(biāo)聚集密度低,目標(biāo)個(gè)體的像素分辨率高。但在無序運(yùn)動密集場景中,人群之間的遮擋非常嚴(yán)重且遮擋關(guān)系通常未知,導(dǎo)致目標(biāo)的正確分割成為一個(gè)難點(diǎn)。另一類方法是基于場景類的,如光流法、動態(tài)紋理和網(wǎng)格粒子算法等,這些算法通常用于人群高度集中的狀況,個(gè)體跟蹤根本無法實(shí)現(xiàn)[5]。如WANG W等人[6]利用光流建立了一個(gè)連續(xù)運(yùn)動判別區(qū)域,并按照連續(xù)運(yùn)動類型劃分實(shí)現(xiàn)區(qū)域分析,但該算法未提供非連續(xù)運(yùn)動場景的試驗(yàn)結(jié)果。
由于人類行為固有的社會屬性,人們的群體行為通常涉及少數(shù)行人即“三五成群”的小團(tuán)體,而不常發(fā)生在個(gè)體級或者場景級上[7]。ZHOU B等人采用一致性運(yùn)動濾波算法,實(shí)現(xiàn)了密集群體的分群檢測。不同于其他方法,他采用在預(yù)先提供背景信息的基礎(chǔ)上提取特征點(diǎn),而不是通過個(gè)體目標(biāo)來建立相關(guān)運(yùn)動過濾器,從而得到了更適用于一般場景的群體運(yùn)動分析算法[8]。文獻(xiàn)[9]在該方法的基礎(chǔ)上,引入自動前景提取策略,在前景上提取特征點(diǎn),采用分層聚類的方法進(jìn)行人群分割。該算法受噪聲的干擾比較明顯。
不同于光流法、特征點(diǎn)或行人跟蹤法,文獻(xiàn)[10]建議采用由特征點(diǎn)構(gòu)成具體而穩(wěn)定的小團(tuán)體,并根據(jù)人群結(jié)構(gòu)的改進(jìn)對小團(tuán)體進(jìn)行連接,算法集成了底層特征點(diǎn)跟蹤、小團(tuán)體跟蹤以及高層群體跟蹤,從而實(shí)現(xiàn)了群體檢測。文獻(xiàn)[11]采用社會力模式,通過對行人間相互作用的建模來跟蹤多個(gè)行人,該方法是建立在對場景結(jié)構(gòu)具有大量的先驗(yàn)信息的基礎(chǔ)上。
本文主要是在無序運(yùn)動的密集場景中對復(fù)雜運(yùn)動模式的人群進(jìn)行分群檢測,進(jìn)而用于后續(xù)的視頻分析、監(jiān)控和場景理解。當(dāng)行人構(gòu)成群體時(shí),這群行人的運(yùn)動通常表現(xiàn)為朝著同一目標(biāo)方向的集體運(yùn)動[5]。在密集人群中,由于嚴(yán)重的遮擋問題使得行人跟蹤非常困難,而在視頻圖像的一定時(shí)間窗口中,特征點(diǎn)的跟蹤可以提供有關(guān)人群分析的精確信息[10]。因此,本文以前景中的目標(biāo)特征點(diǎn)為分析對象,提出一種無監(jiān)督的自動人群分群檢測算法。該算法不需要任何先驗(yàn)知識,用特征點(diǎn)的運(yùn)動狀態(tài)估計(jì)人群的運(yùn)動狀態(tài),僅根據(jù)特征點(diǎn)統(tǒng)計(jì)特性如空間距離、運(yùn)動特性及運(yùn)動軌跡等,以實(shí)現(xiàn)對無序運(yùn)動密集場景中運(yùn)動流的分割和一致性運(yùn)動的檢測。
當(dāng)行人成群結(jié)隊(duì)時(shí),與鄰近的行人通常表現(xiàn)出一致的運(yùn)動特性,而相距一定距離的行人雖然屬于同一人群,但有時(shí)候表現(xiàn)出相反的運(yùn)動方向。比如向北游行的隊(duì)伍繞過某棟大樓改成向南行走,隊(duì)首和隊(duì)尾行人運(yùn)動方向表現(xiàn)相反,但他們依舊屬于一個(gè)運(yùn)動人群,因?yàn)樗麄兊倪\(yùn)動軌跡是一致的,隊(duì)尾行人通過與自己鄰近行人的行為相似,逐步與隊(duì)首行人運(yùn)動間接一致[12]。如果直接計(jì)算隊(duì)尾和隊(duì)首行人的運(yùn)動相關(guān)性,則得到的相關(guān)值可能很小。因此,可以利用運(yùn)動軌跡相似性來評價(jià)非鄰域行人之間的群體關(guān)系。
本文采用的無序運(yùn)動場景中群體檢測算法如圖1所示。
圖1 群體算法流程
主要包括以下3部分。
(1) 運(yùn)動前景提取 通過運(yùn)用混合高斯模型(Gaussian Mixture Models,GMMs)對監(jiān)控場景進(jìn)行背景建模,然后采用背景差法,將背景和前景分割開來,得到運(yùn)動前景。
(2) 前景中特征點(diǎn)的提取 采用KLT(Kanade-Lucas-Tomasi)算法提取前景中的特征點(diǎn)并進(jìn)行跟蹤。
(3) 行為一致性過濾 采用空間距離計(jì)算將前景中的每個(gè)特征點(diǎn)劃分為鄰域特征點(diǎn)和非鄰域特征點(diǎn)。對各特征點(diǎn)的鄰域特征點(diǎn)進(jìn)行速度方向一致性和運(yùn)動相關(guān)性過濾;對非鄰域特征點(diǎn)采用運(yùn)動軌跡相似性進(jìn)行過濾。遍歷每幀圖像的所有特征點(diǎn),并對特征點(diǎn)一一歸類,以完成群體檢測。
在對視頻信息進(jìn)行分析判斷的過程中,只對監(jiān)控場景中運(yùn)動的行人感興趣。GMMs是常用的背景提取方法,該模型對圖像中的每個(gè)像素建立N個(gè)高斯分布來表示該點(diǎn)的特征,通過模型匹配的方法判定像素點(diǎn)是否為背景點(diǎn)。這里的N值非常難確定。圖2為前景中特征點(diǎn)提取結(jié)果。
本文采用自適應(yīng)N值的混合高斯算法[13]得到前景區(qū)域,并運(yùn)用形態(tài)算法去除區(qū)域中孤立的白點(diǎn),提取的前景目標(biāo)如圖2(b)所示。在此基礎(chǔ)上,采用KLT算法提取前景中的特征點(diǎn)并進(jìn)行跟蹤。圖2(a)中前景中的特征點(diǎn)如圖2(c)所示。
KLT跟蹤算法最早由KANADA L提出,是一種典型的利用幀間連續(xù)性信息的特征點(diǎn)跟蹤算法。它采用KLT算子提取特征點(diǎn),利用基于最優(yōu)估計(jì)的KLT匹配算子實(shí)現(xiàn)特征點(diǎn)之間的匹配。為了減少背景噪聲和不穩(wěn)定點(diǎn)帶來的誤差,在前景區(qū)域提取KLT特征點(diǎn)并進(jìn)行幀間跟蹤,ζt為第t幀的KLT特征點(diǎn)集合。從圖2(c)提取的前景區(qū)域的特征點(diǎn)可以看到,特征點(diǎn)基本聚集在前景目標(biāo)區(qū)域。
圖2 前景中特征點(diǎn)提取結(jié)果
在密集場景中,行人以不同的方式聚集在不同的位置,有的地點(diǎn)行人比較集中,兩人之間的距離比較短;有的地點(diǎn)可能比較稀疏,兩人之間的距離比較遠(yuǎn)。關(guān)于每個(gè)聚集點(diǎn)的人數(shù)聚集的形式我們沒有任何先驗(yàn)信息。由于聚集人數(shù)(k值)未知,故采用固定k值的均值聚類法并不合理。本文在一幀圖像中,依據(jù)相鄰特征點(diǎn)最大的高斯權(quán)值wmax進(jìn)行分類,當(dāng)相鄰特征點(diǎn)之間的高斯權(quán)值等于或者大于0.5wmax,則表示該特征點(diǎn)與指定特征點(diǎn)距離鄰近。由于高斯權(quán)值是隨著距離的增大而減小的,因此wmax實(shí)際上是與指定特征點(diǎn)最近距離的高斯權(quán)值。由此可以推斷,如果行人越集中,兩者之間的距離越短,則wmax值越大,得到與指定點(diǎn)鄰近的特征數(shù)量也應(yīng)該越大。高斯權(quán)值wi,j的計(jì)算式為
(1)
式中:D(i,j)——特征點(diǎn)i和j(i,j∈ζt)之間的歐氏距離;
r——常數(shù),本文設(shè)定為20;
(xi,yi),(xj,yj)——i和j的坐標(biāo)。
由式(1)可知,wi,j將隨著D(i,j)的增大而減小,反之則增大。這也就意味人群越密集,wi,j越大。
一般來說,大部分行人趨向于跟朋友或家人結(jié)伴而行,表現(xiàn)出在一定時(shí)間內(nèi)他們之間有穩(wěn)定的時(shí)空關(guān)系、共同的行進(jìn)方向和一致的速度。根據(jù)這些特點(diǎn),首先計(jì)算出前景中相鄰特征點(diǎn)之間的速度夾角及其運(yùn)動相關(guān)性,并給出一定的過濾標(biāo)準(zhǔn),從而完成鄰域特征點(diǎn)的行為一致性檢測。
1.3.1 速度方向一致性過濾
方向信息是運(yùn)動流分割和一致性運(yùn)動檢測中非常重要的信息。當(dāng)行人形成群體時(shí),其行走方向是一致的,也即他們之間的速度夾角應(yīng)該約束在一定的范圍內(nèi)。
(2)
從幀t→t+d,兩特征點(diǎn)j和i速度夾角θi,j的計(jì)算公式為
(3)
1.3.2 運(yùn)動相關(guān)性過濾
如果兩個(gè)特征點(diǎn)運(yùn)動軌跡一致,則這兩個(gè)特征點(diǎn)的運(yùn)動相關(guān)性比較高[8]。從時(shí)刻t→t+d,兩特征點(diǎn)j和i運(yùn)動相關(guān)性計(jì)算公式為
(4)
如果j和i運(yùn)動軌跡不一致,Ci,j將隨著d的增加而減小,否則,Ci,j保持較高值。
(5)
(i,j)
(6)
Z=(I-zC)-1-I
(7)
式中:ρ(W)——矩陣W的譜半徑。
對特征點(diǎn)進(jìn)行分類標(biāo)號,具體步驟如下。
(4) 將分類標(biāo)號相同的特征點(diǎn)歸為同一類群體,在視頻圖像中用相同顏色表示出來,以實(shí)現(xiàn)分群檢測。
試驗(yàn)中,所用測試數(shù)據(jù)由兩個(gè)數(shù)據(jù)集組成:CUHK密集群體數(shù)據(jù)集[5]和課題組自行收集的由真實(shí)密集人群的視頻圖像建立的數(shù)據(jù)集。這些數(shù)據(jù)包括不同人群密度和多種運(yùn)動類型。本文算法采用MATLAB軟件實(shí)現(xiàn),工作于Intel i5 CPU,4 G RAM,能夠?qū)崿F(xiàn)5幀/s的計(jì)算速度。對本文算法、MC算法[12]、自適應(yīng)聚類算法(AC算法)[9]和CF算法[8]進(jìn)行了定性和定量分析。試驗(yàn)中,采用不同顏色對不同群體的特征點(diǎn)進(jìn)行標(biāo)注。圖3給出了4種算法對4個(gè)真實(shí)拍攝的密集場景視頻的分群檢測結(jié)果。
圖3 典型密集場景分群檢測結(jié)果
圖3中第1排和第4排所示場景為室外場景,第2排和第3排為室內(nèi)場景。場景人群散亂,方向各異且人群混疊現(xiàn)象嚴(yán)重,個(gè)體間間隔不明顯,場景中運(yùn)動類型的復(fù)雜性加大了分群檢測的難度。在第1排室外場景中,MC算法和AC算法檢測出8個(gè)小團(tuán)體,CF算法和本文算法各檢測出6至7個(gè)團(tuán)體。但是本文的7個(gè)團(tuán)體從視覺效果上看全部是正確的。MC算法、AC算法和CF算法正確的團(tuán)體數(shù)為6個(gè)。此外,在MC算法、AC算法和CF算法結(jié)果中,分布在同一個(gè)人身上的特征點(diǎn)顏色卻不同,如第3排的第2個(gè)圖左下角,此人上半身和下半身特征點(diǎn)顏色不同;而不同群體上的特征點(diǎn)卻有相同的,如第3排的第3幅、第4幅圖左下角的兩個(gè)行進(jìn)方向不同的行人身上的特征點(diǎn)顏色卻是相同的。顯然這是錯(cuò)誤的。AC算法采用基于空間距離及角度進(jìn)行分層聚類,這種算法容易受噪聲干擾且沒有考慮到特征點(diǎn)的運(yùn)動特性。CF和MC算法根據(jù)運(yùn)動特性一致性進(jìn)行檢測,沒有區(qū)別速度的方向特性,因此出現(xiàn)了比本文算法更多的錯(cuò)誤。
從圖3可以看出,本文算法從視覺上看有一定的優(yōu)勢,但也存在少量錯(cuò)誤分類。比如,第3排第1個(gè)圖右下角處,向右上方行走的拎包女士和向左下方行走的拎包男士被錯(cuò)分到同一群,說明本文算法在基于路徑相似性非鄰域特征點(diǎn)過濾算法部分還有待進(jìn)一步完善。
本文采用特征點(diǎn)錯(cuò)檢率(Point Detecting Error Rates,PDER)和分群數(shù)量錯(cuò)誤率(average Group Detecting Number Error,GDNE)兩個(gè)指標(biāo)定量評價(jià)不同算法密集人群的分群效果。兩個(gè)指標(biāo)的計(jì)算公式為
(8)
(9)
式中:Nerr(t)——圖3中錯(cuò)誤劃分特征點(diǎn)個(gè)數(shù);
Ntotal(t)——圖3中所有有效特征點(diǎn)個(gè)數(shù);
Nd(t)——算法正確分群個(gè)數(shù);
Ngt(t)——實(shí)際圖像真實(shí)分群個(gè)數(shù);
t——視頻幀數(shù)。
從測試數(shù)據(jù)集中每次隨機(jī)抽取20段真實(shí)場景進(jìn)行視頻測試,共抽取3次,將得到的平均值進(jìn)行比較,結(jié)果如表1所示。由表1可以看到,本文算法的特征點(diǎn)錯(cuò)檢率和分群數(shù)量錯(cuò)誤率略小于其他3種算法。
表1 PDER和GDNE比較 %
分群檢測是密集場景群體行為、群體事件以及異常行為檢測的基本步驟。本文通過對局部鄰域和全局特征點(diǎn)運(yùn)動一致性的過濾,實(shí)現(xiàn)對密集場景復(fù)雜人群的檢測和分類。該算法不需要對群體運(yùn)動場景類型進(jìn)行任何限制,也無需任何先驗(yàn)知識,通過對代表目標(biāo)的每個(gè)KLT特征點(diǎn)進(jìn)行跟蹤和分析,對鄰域特征點(diǎn)采用速度方向和運(yùn)動相關(guān)性過濾,對非鄰域特征點(diǎn)采用運(yùn)動軌跡相似性過濾,從而完成了特征點(diǎn)的分類,最終實(shí)現(xiàn)了分群檢測。通過對大量真實(shí)密集運(yùn)動場景視頻圖像數(shù)據(jù)的試驗(yàn),驗(yàn)證了本文算法的檢測效果和穩(wěn)定性均高于現(xiàn)有算法。