楊玉成 張 乾 岳詩琴 邵定琴
1(貴州民族大學數(shù)據(jù)科學與信息工程學院 貴州 貴陽 550025) 2(貴州省模式識別與智能系統(tǒng)重點實驗室 貴州 貴陽 550025)
人群運動是公共場所中一種極為普遍的行為現(xiàn)象,隨著人口數(shù)量的不斷增加,公共場所人群密集程度也隨之增加,這給公共場所人群管理與安全防控帶來巨大難題[1],因此人群運動行為檢測成為公共安全領域的熱點研究課題。人群運動行為檢測涉及模式識別、計算機視覺、機器學習和人工智能等領域理論知識。經(jīng)過多年發(fā)展,人群運動雖然在理論體系和檢測技術上取得諸多成績,但仍然存在一些技術瓶頸尚未得到很好的解決,例如人群密集的場所中人群個體間存在嚴重的遮擋、其他非行人混入人群中、人群中個體運動方向和速度不一致性等。這些因素給人群運動行為檢測帶來巨大挑戰(zhàn)。
場景人群聚類實質(zhì)是對場景中的運動人群進行檢測[2],目前人群檢測算法主要分為三大類:(1) 基于軌跡點的算法;(2) 基于視圖的算法;(3) 基于深度學習的算法?;谲壽E點的算法主要是根據(jù)人群運動軌跡的位置信息和時間信息進行檢測。Takahashi等[3]利用關鍵軌跡特征識別運動人群動作;Zou等[4]利用關聯(lián)軌跡點檢測運動人群;Zhao等[5]提出一種基于軌跡點光流直方圖的算法檢測異常人群,雖然基于人群運動軌跡點的算法能夠快速檢測異常人群,但是人群的軌跡信息與人群實際運動存在偏差[2],所以該類算法檢測結(jié)果可信度不高?;谝晥D的算法是指從不同的視頻角度對運動人群進行檢測。Peng等[6]提出一種多視圖貝葉斯模型對行人進行檢測;Tian等[7]將三維光譜圖像切分為三個視圖進行聚類;Qian等[8]提出一種基于嵌入圖的多視圖聚類算法,雖然基于多視圖的算法能夠較為準確地檢測人群,但是該類算法需要先驗知識確定閾值,而且算法魯棒性較差;Wang等[2]提出一種自加權(quán)多視圖人群聚類算法框架,雖然該算法不依賴于任何閾值參數(shù)并獲得較強魯棒性,但是該算法計算復雜度較高,在一定程度上增加了計算成本。深度學習算法在圖像識別、姿態(tài)估計和語音識別等領域表現(xiàn)出優(yōu)越的性能[9],同時也被廣泛應用于人群運動行為檢測領域。Shuaibu等[10]提出一種三維CNN(Convolutional Neural Networks)用于人群場景理解。Ke?eli等[11]在遷移學習的基礎上提出一種人群暴力行為檢測算法。Zhang等[12]提出一種基于SSD框架的擁擠場景人群檢測算法。Tzelepi等[13]在CNN的基礎上提出一種無人機自動人群檢測算法,雖然深度學習算法具有強大的特征學習能力,但網(wǎng)絡學習到的特征包含大量異常點信息給計算增加了負擔并影響效率。
針對上述問題,本文提出一種基于深度聚類的人群運動行為檢測算法。首先將人群運動軌跡的位置和速度組合得到運動特征描述符,通過K-medoids算法對運動特征描述符進行聚類得到聚類指數(shù)U1,從而將人群場景劃分為不同的運動區(qū)域;然后通過SqueezeNet輕量級正向加速網(wǎng)絡提取視頻幀圖像特征,再次采用K-medoids算法對圖像特征進行聚類得到聚類指數(shù)U2并將其作為U1的約束條件去除異常點;最后將去除異常點的聚類指數(shù)映射至每一幀圖像,從而實現(xiàn)人群檢測。
由于傳統(tǒng)CNN網(wǎng)絡存在訓練周期長、參數(shù)多、計算內(nèi)存需求大等缺陷,因此Iandola等[14]提出一種輕量級CNN網(wǎng)絡SqueezeNet,其卷積核參數(shù)僅為傳統(tǒng)CNN網(wǎng)絡的1/9;為減少網(wǎng)絡輸入?yún)?shù),在傳統(tǒng)CNN網(wǎng)絡基礎上增加壓縮層,用于壓縮輸入圖像的通道數(shù);為減少信息損失將池化層置于卷積層后。
SqueezeNet網(wǎng)絡結(jié)構(gòu)主要由輸入層、卷積層、Fire模塊、池化層、輸出層構(gòu)成。Fire模塊的結(jié)構(gòu)如圖1所示,該模塊由壓縮卷積層和擴展卷積層組合而成,其中擴展卷積層由1×1卷積核和3×3卷積核構(gòu)成。Fire模塊是SqueezeNet網(wǎng)絡的核心組成部分,主要作用是減少圖像輸入通道數(shù)和卷積參數(shù),其輸出結(jié)果被作為整個網(wǎng)絡的中間參數(shù)。在圖像特征學習過程中,首先對輸入圖像進行卷積操作,然后經(jīng)過8個Fire模塊連續(xù)參數(shù)壓縮,最后通過一層卷積操作得到1×1 000維的特征向量。SqueezeNet的網(wǎng)絡結(jié)構(gòu)如圖2所示。
圖1 Fire模塊
圖2 SqueezeNet網(wǎng)絡
雖然SqueezeNet網(wǎng)絡與傳統(tǒng)CNN網(wǎng)絡相比性能有很大提升,但是網(wǎng)絡計算速度仍然較慢。在CNN網(wǎng)絡中,層與層之間、卷積核之間、輸出特征圖等多為并行結(jié)構(gòu)。鑒于此,Motamedi等[15]提出一種基于FPGA的加速器框架,該框架充分利用網(wǎng)絡的并行結(jié)構(gòu)對SqueezeNet正向網(wǎng)絡加速。
FPGA加速器框架主要由乘法器和加法器組成,具體結(jié)構(gòu)如圖3所示。第一層為乘法器層,由K個乘子構(gòu)成;第二層為加法器層,該層的主要作用是對乘法器層的結(jié)果進行累積。將乘法器層中的乘法子集與加法器中對應位置的加法子集進行組合得到PCE(Parallel Convolution Engine)模塊;在網(wǎng)絡輸出層將PCE模塊與加法子集組合構(gòu)成并行輸出模塊。為使網(wǎng)絡達到最佳性能,需要計算輸入特征映射n、乘子K和并行輸出模塊m的最優(yōu)值。
圖3 FPGA加速器結(jié)構(gòu)
首先定義一個周期函數(shù)T如下:
(1)
該函數(shù)即為乘法運算和加法運算次數(shù)。式中:fp為特征總數(shù);Wp為輸出特征;S為卷積核的大?。籰為信息傳遞損失量。然后定義一個網(wǎng)絡運算總數(shù)計算函數(shù):
N=2×fp×S
(2)
最后定義一個峰值計算函數(shù):
(3)
在式(1)-式(3)中fp、Wp、S為固定值,由此可以計算得到m、n、K的最優(yōu)值。
FPGA加速器強大的加速性能使SqueezeNet正向網(wǎng)絡運行速度達到最佳狀態(tài)。SqueezeNet正向加速網(wǎng)絡提取一幅圖像的特征僅需22±1 s,因此本文采用SqueezeNet正向加速網(wǎng)絡提取圖像特征。
機器學習算法分為監(jiān)督學習和無監(jiān)督學習兩大類別。監(jiān)督學習是對帶有標簽信息的數(shù)據(jù)進行學習從而得到數(shù)據(jù)的類別數(shù);無監(jiān)督學習是對無標簽數(shù)據(jù)進行學習從而得到數(shù)據(jù)的聚類簇。
K-medoids算法是無監(jiān)督學習算法中的經(jīng)典算法,由于在處理聚類問題時表現(xiàn)出優(yōu)越的性能,因此被廣泛應用于人群檢測領域。K-medoids算法的核心思想:首先,選取K個數(shù)據(jù)點;然后,計算每個數(shù)據(jù)點X=(x1,x2,…,xk)與K的距離,將與K距離最近的點劃分為同一聚類簇,同時更新K個數(shù)據(jù)點;最后,聚類函數(shù)收斂,得到總體數(shù)據(jù)的聚類簇個數(shù)[16]C=(c1,c2,…,ck)。聚類函數(shù)定義為[17]:
(4)
式中:οi為K個數(shù)據(jù)點的中心;d(xi,oi)是數(shù)據(jù)點與中心的距離。
(5)
οi的更新準則定義為[17]:
(6)
Dmin的值表示聚類簇內(nèi)各數(shù)據(jù)點接近中心的程度,Dmin的值越小,表明各數(shù)據(jù)點與中心的接近程度越高,各數(shù)據(jù)點間的相似度也就越高。本文采用K-medoids算法對運動特征描述符和視頻幀圖像特征進行聚類。
公共場所人流量較大,人群密集度較高,通?;旌狭瞬煌\動狀態(tài)的人群目標,例如:移動方向、速度、軌跡等不同運動狀態(tài),同時還混合了其他非人群目標,例如:汽車、樹木等目標。本文的研究重點是對不同運動狀態(tài)的人群進行聚類,即檢測不同運動狀態(tài)的人群。
人群遮擋和光照等因素使人群區(qū)域內(nèi)出現(xiàn)大量倒影,由于人群運動過程中倒影也隨之運動,因此產(chǎn)生大量異常點數(shù)據(jù),其次K-medoids的初始聚類中心是隨機選取的,因此在聚類時易出現(xiàn)局部最優(yōu)值[17]。上述因素直接影響聚類效果。鑒于此,本文融合SqueezeNet正向加速網(wǎng)絡與K-medoids算法提出一種深度聚類人群運動行為檢測算法。
運動軌跡和運動速度是人群運動的重要特征,本文通過人群運動軌跡的位置信息和運動速度,定義一個運動特征描述符:
An×4=[Vn×2,Pn×2]
(7)
式中:n為軌跡點數(shù),V是n×2維的速度矩陣,P是n×2維的軌跡矩陣。引入運動特征描述符之后,采用K-medoids算法將人群場景劃分為四個不同的運動區(qū)域,被劃分在同一區(qū)域內(nèi)的人群個體的運動狀態(tài)是相同的,即運動速度和方向相同。具體劃分過程為:(1) 采用K-medoids算法對運動特征描述符An×4進行聚類得到聚類指數(shù)U1=(u1,1,u1,2,…,u1,n),u1,i∈[1,4];(2) 將μ(u1,i,Vn)→M,M表示圖像。劃分結(jié)果如圖4所示。
圖4 人群運動區(qū)域
圖4所示為人群場景運動區(qū)域劃分結(jié)果,不同顏色(圖中用灰度描述)所覆蓋的區(qū)域表示不同的運動區(qū)域,屬于同一運動區(qū)域的人群運動狀態(tài)相同。
本文將SqueezeNet正向加速網(wǎng)絡與K-medoids算法融合,提出一種深度聚類算法用于人群聚類。人群場景圖像能夠直觀地反映人群的運動狀況,深度學習算法可完整地表達圖像特征信息,因此本文將SqueezeNet正向加速網(wǎng)絡用于圖像特征提取,采用K-medoids算法對特征進行聚類。
首先采用SqueezeNet正向加速網(wǎng)絡提取視頻幀圖像特征得到一個1×1 000維的特征向量。然后采用K-medoids算法對所提取的特征向量進行聚類得到聚類指數(shù)U2=(u2,1,u2,2,…,u2,1 000),u2,i∈[1,4],場景中的人群較為密集,在光照等因素影響下,人群之間會產(chǎn)生許多噪聲,即U1和U2中存在異常特征點,這些異常特征點直接影響聚類結(jié)果,因此本文定義一個約束條件如下:
(8)
(9)
由式(8)和式(9)得到去除異常點之后的人群聚類指數(shù)U′1=(u′1,1,u′1,2,…,u′1,n),最后將μ(u′1,i ,Vn )→M,從而實現(xiàn)人群聚類。
本文將K-medoids算法與SqueezeNet正向加速網(wǎng)絡融合,提出一種深度聚類算法,算法流程如算法1所示。
算法1本文算法
輸入視頻幀圖像,人群運動軌跡
SqueezeNet提取圖像特征:f=1×1 000
計算運動特征描述符:An×4=[Vn×2,Pn×2]
計算聚類指數(shù):
K-medoids對f聚類得U1=(u1,1,u1,2,…,u1,n)
K-medoids對An×4聚類得U2=(u2,1,u2,2,…,u2,1 000)
去除異常點:
If |U1|≤|U2|&|u1,i|≤|u2,i|
thenU′1=U1
ElseU′1=0
End if
Ifu1,i>u2,i
u′1,i=u′1,i-1
Elseu1,i=0
End if
輸出U′1=(u′1,1,u′1,2,…,u′1,n)
映射至圖像:μ(u′1,i ,Vn )→M
針對本文提出的基于深度聚類的人群運動行為檢測算法,通過在各種國際公開數(shù)據(jù)集上進行實驗,結(jié)果表明本文算法能夠準確檢測場景中的不同人群,與其他人群運動行為檢測算法相比,本文算法具有更高的異常點去除率(Abnormal Point Removal Rate,APR)和純度值(PU)。
本文所有驗證實驗平臺為Windows 7 64位系統(tǒng),CPU2.5 GHz,RAM 4.0 GB,MATLAB R2017b。本文選取了CCD(CUHK Crowd Dataset)[18]、CMD(Collective Motion Database)[19]、MPT(MPT-20×100)[20]三個公開數(shù)據(jù)集進行實驗,并將本文提出的算法與MCC(Measuring Crowd Collectiveness)[19]、CF(Coherent Filtering)[21]兩種主流人群運動行為檢測算法進行實驗對比。為客觀評價提出算法的性能,選擇人群聚類的PU值和APR值作為綜合評價指標。
圖5所示為本文算法與其他人群聚類算法在三個國際公開數(shù)據(jù)集上的人群聚類結(jié)果,其中相同顏色(圖中用灰度描述)點所覆蓋的區(qū)域表示屬于同一類的人群。圖6所示為本文算法去除人群場景中異常點的結(jié)果,圖中“+”符號表示被去除的異常點。實驗結(jié)果表明,本文算法能夠?qū)鼍爸械牟煌巳哼M行有效聚類,并且能夠有效去除人群場景中由于遮擋和光照影響所產(chǎn)生的異常點數(shù)據(jù),證明了本文算法在人群聚類和異常點去除問題上的優(yōu)越性能。
圖5 各種算法的聚類結(jié)果
圖6 異常點去除
為了進一步驗證本文算法的優(yōu)越性,表1統(tǒng)計出了本文算法與其他算法在三個不同數(shù)據(jù)集上去除的異常點數(shù)和APR值。在CMD數(shù)據(jù)集上,本文算法去除的異常點數(shù)比CF算法多170個點,比MCC算法多48個點;本文算法的APR值比CF算法高0.05,比MCC算法高0.08。在CCD和MPT數(shù)據(jù)集上,本文算法去除的異常點數(shù)和APR值均明顯優(yōu)于其他人群聚類算法。
表1 不同聚類算法去除異常點數(shù)和APR值
為更加客觀地證明本文提出算法的優(yōu)越性能,本文在CCD數(shù)據(jù)集上進行實驗,并比較本文提出算法與其他人群聚類算法的PU值。表2統(tǒng)計了本文算法與其他人群聚類算法在CCD數(shù)據(jù)集上的PU值,可以看出,本文算法的PU值比MCC算法高0.079,比CF算法高0.066,進一步證明了其優(yōu)越性。
表2 不同聚類算法的各項指標值
為更加綜合地證明本文算法的有效性,本文對各種人群聚類算法的聚類數(shù)進行對比。圖7統(tǒng)計了本文算法與其他人群聚類算法的聚類數(shù),本文算法所得聚類數(shù)與Groundtruth一致,CF算法比Groundtruth多2類,MCC算法比Groundtruth多10類,進一步證明了本文算法的優(yōu)越聚類性能。
圖7 各算法聚類數(shù)
為解決現(xiàn)有算法不能有效去除異常點的問題,本文提出一種基于深度聚類的人群運動行為檢測算法。將SqueezeNet正向加速網(wǎng)絡與K-medoids算法融合去除人群異常點,通過在各種國際公開數(shù)據(jù)集進行實驗對比,本文算法在準確率與目前主流算法相同的情況下,得到了更高的異常點去除率和更高的聚類純度,實驗結(jié)果證明了本文算法的有效性。未來將繼續(xù)探索SqueezeNet正向加速網(wǎng)絡的優(yōu)化以及與其他聚類算法的結(jié)合,進一步提高人群檢測算法的準確率和其他各項性能。