鄭爽,張軼
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)
異常行為檢測是計(jì)算機(jī)視覺領(lǐng)域具有重要應(yīng)用價(jià)值的一個(gè)領(lǐng)域。異常行為檢測在公共安全防護(hù),家庭老人防護(hù)中都有重要的意義。隨著時(shí)間的發(fā)展,公共場所,如ATM 機(jī)附近,交通要道的安全越來越受重視,監(jiān)控隨處可見,但要24 小時(shí)監(jiān)控,預(yù)防或阻止異常時(shí)間的發(fā)生需要投入極大的人力和物力[1]。若監(jiān)控設(shè)備能夠檢測異常事件并報(bào)警,則能有效地阻止異常事件的發(fā)生。如在家庭中,如果獨(dú)居老人摔倒或者暈倒,監(jiān)控可以及時(shí)報(bào)警,也能使老人得到及時(shí)的救治;在智能交通中,如能及時(shí)發(fā)現(xiàn)撞人逃逸則能讓交管部門采取主動(dòng)行動(dòng)。
在深度學(xué)習(xí)興起以后,將其應(yīng)用到異常行為檢測領(lǐng)域中,使得這個(gè)領(lǐng)域有了很大的進(jìn)步。但要做到準(zhǔn)確、及時(shí)地檢測到異常行為依然存在巨大的困難,其主要體現(xiàn)在:①不同場景下的異常行為類型不同,很難直接定義。②在某個(gè)場景下正常行為發(fā)生的次數(shù)多,異常行為發(fā)生的次數(shù)少,數(shù)據(jù)非常不平衡。本文采用了如文獻(xiàn)[2]的異常檢測方法直接使用正常數(shù)據(jù)進(jìn)行訓(xùn)練,通過重構(gòu)誤差來檢測異常行為、應(yīng)對數(shù)據(jù)不平衡問題,并提出結(jié)合姿態(tài)特征來提高網(wǎng)絡(luò)的準(zhǔn)確率。
異常行為檢測是行為識(shí)別的子領(lǐng)域[1],近年來在基于深度學(xué)習(xí)的行為識(shí)別領(lǐng)域,最突出的兩種網(wǎng)絡(luò)就是雙流網(wǎng)絡(luò)和C3D 網(wǎng)絡(luò)[3],其他的方法大多數(shù)是兩種網(wǎng)絡(luò)的改進(jìn)。
雙流網(wǎng)絡(luò)利用了兩個(gè)二維深度卷積網(wǎng)絡(luò),分別處理視頻幀和幀間的光流。視頻幀中包含了行為的空間信息,而光流包含了視頻的運(yùn)動(dòng)信息。在分別提取兩種信息特征以后進(jìn)行混合,得以同時(shí)利用視頻幀的空間和運(yùn)動(dòng)信息[4]。最初的雙流網(wǎng)絡(luò)缺點(diǎn)是能處理的行為時(shí)間比較短,不能提取長時(shí)間行為的特征,且準(zhǔn)確率有待提高[3]。于是有了許多改進(jìn)的網(wǎng)絡(luò)架構(gòu):如文獻(xiàn)[5-6]中提到的方法,通過在訓(xùn)練過程中混合特征來提高準(zhǔn)確率。文獻(xiàn)[7]提出分段提取行為特征并進(jìn)行混合使網(wǎng)絡(luò)可以處理更長時(shí)間段的行為。上述網(wǎng)絡(luò)都依賴光流,但光流的提取也耗費(fèi)時(shí)間。Tran D 等人[8]提出了一個(gè)三維網(wǎng)絡(luò),可向網(wǎng)絡(luò)直接輸入連續(xù)的幀。端到端的訓(xùn)練,使之快于雙流網(wǎng)絡(luò),但是輸入幀的數(shù)量是有限的,依舊限制了行為的時(shí)長。文獻(xiàn)[9-10]中又提出通過擴(kuò)展輸入大小來提升網(wǎng)絡(luò)。
上述網(wǎng)絡(luò)都采用了監(jiān)督學(xué)習(xí),要進(jìn)行異常行為檢測,只需要將需要檢測的行為設(shè)置為異常類,就可以識(shí)別檢測,但訓(xùn)練這樣的網(wǎng)絡(luò)通常需要大量的異常類數(shù)據(jù),而真實(shí)情況下異常行為的數(shù)據(jù)非常稀少,且難以收集[11]。例如在銀行ATM 機(jī)附近的監(jiān)控中,很難收集到搶劫、偷竊的視頻,一是因?yàn)檫@些行為發(fā)生的次數(shù)較少,二是因?yàn)楸O(jiān)控?cái)?shù)據(jù)量非常大,要從大量的數(shù)據(jù)中找出這些行為非常困難[12]。因?yàn)橛写罅康恼?shù)據(jù),Akcay 等人[2]提出了僅使用正常數(shù)據(jù)做訓(xùn)練的異常檢測方法。
本文受文獻(xiàn)[2]的啟發(fā),用同樣的方法來應(yīng)對數(shù)據(jù)不平衡問題。但是這種方法更關(guān)注整個(gè)視頻幀的分布,其中存在許多冗余信息。受文獻(xiàn)[13-14]啟發(fā),本文利用了人體姿態(tài)信息,使網(wǎng)絡(luò)更關(guān)注視頻中人的行為,提高異常行為檢測的準(zhǔn)確率。為提取人體姿態(tài)信息,本文采用了基于深度學(xué)習(xí)的姿態(tài)估計(jì)網(wǎng)絡(luò)。
姿態(tài)估計(jì)算法又分單人姿估計(jì)和多人姿態(tài)估計(jì)[15],在異常行為檢測的場景中一般會(huì)有多人存在,所以使用多人姿態(tài)估計(jì)。多人姿態(tài)估計(jì)分為兩種,自頂向下的或者自底向上的[16]。自頂向下的方法是指先檢測出視頻幀中的人,然后檢測每個(gè)人的關(guān)節(jié)點(diǎn),估計(jì)人體的姿態(tài)[17]。自底向上的方法則是,向檢測出視頻幀中人體的關(guān)節(jié)點(diǎn),然后聚類[16]。
Insafutdinov 等人[16]提出的就是自底向上的方法,先找人體出關(guān)節(jié)點(diǎn),然后對關(guān)節(jié)點(diǎn)進(jìn)行聚類。文獻(xiàn)[18]中的方法也是自底向上的,并將姿態(tài)估計(jì)應(yīng)用到了視頻追蹤中。Cao 等人[19]改進(jìn)了自底向上的方法,使之速度更快。但自底向上的方法準(zhǔn)確率并不高。文獻(xiàn)[17]使用了自頂向下的方法,通過YOLO、SSD 等網(wǎng)絡(luò)先檢測人體,然后對檢測到對人體進(jìn)行姿態(tài)估計(jì),雖然速度有所下降,但是準(zhǔn)確率得到了提高。為了得到較高準(zhǔn)確率的姿態(tài)信息,本文采用文獻(xiàn)[17]中的網(wǎng)絡(luò)提取視頻幀中行人的姿態(tài)信息。
針對異常行為數(shù)據(jù)難以獲取的問題,本文采用了基于生成對抗網(wǎng)絡(luò)思想的半監(jiān)督的異常檢測算法[2-3]。生成對抗網(wǎng)絡(luò)最初在文獻(xiàn)[20]中提出,其主要目的是生成足夠真實(shí)的圖片。一般生成對抗網(wǎng)絡(luò)包含兩個(gè)子網(wǎng)絡(luò),一個(gè)生成器子網(wǎng)絡(luò),一個(gè)判別器自網(wǎng)絡(luò)。生成器生成圖片,判別器判斷輸入圖片的真假,經(jīng)過對抗訓(xùn)練,使生成器最終可以生成足夠真實(shí)的圖片。Makhzani 等人[21]提出了對抗自編碼器與生成對抗網(wǎng)絡(luò)有同樣的訓(xùn)練思想。它有一個(gè)編碼器和一個(gè)解碼器,編碼器從圖片中提取特征向量,解碼器通過特征向量重構(gòu)圖片。鑒別器的作用與生成對抗網(wǎng)絡(luò)一致。
本文采用與文獻(xiàn)[2]一致的網(wǎng)絡(luò)結(jié)構(gòu),在對抗自編碼器的基礎(chǔ)上再添加一個(gè)編碼器,對比真實(shí)視頻幀和生成視頻幀特征向量的差異。網(wǎng)絡(luò)結(jié)構(gòu)如圖1。
圖1 子網(wǎng)絡(luò)結(jié)構(gòu)
故實(shí)驗(yàn)可以只使用含有正常行為的數(shù)據(jù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。向網(wǎng)絡(luò)輸入含有正常行為的視頻幀,對抗自編碼器提取特征向量并重構(gòu)視頻幀,判別器判斷圖片的真假,使重構(gòu)的視頻幀與輸入視頻幀一致,然后提取重構(gòu)視頻幀的特征向量與輸入圖片的特征向量對比。
在訓(xùn)練結(jié)束后,僅使用生成器加編碼器部分進(jìn)行推測。如圖1 所示,假設(shè)輸入幀為x,編碼器提取特征向量z:
解碼器通過特征向量z 重構(gòu)幀x':
編碼器提取重構(gòu)幀x'的特征向量z':
然后對比z 和z'之間的差異。因?yàn)橛?xùn)練的時(shí)候僅使用正常數(shù)據(jù),網(wǎng)絡(luò)只學(xué)習(xí)到了正常數(shù)據(jù)的分布,所以可以很好地重構(gòu)正常視頻幀,不能很好地重構(gòu)異常幀。如果輸入幀是正常幀,z 和z'的差異就很小,如果是異常幀,則差異較大。
模型訓(xùn)練好后,進(jìn)行測試,網(wǎng)絡(luò)[2]在測試時(shí)其性能會(huì)隨著batch size 的減小而退化,因?yàn)槲墨I(xiàn)[2]提出的網(wǎng)絡(luò)使用了Batch Norm 層。Batch Norm 是Ioffe 等人[22]在2015 年提出的,其使用具有重大的意義。Batch Norm層對每層數(shù)據(jù)進(jìn)行批量歸一化,加速了網(wǎng)絡(luò)的訓(xùn)練,使以前許多難以訓(xùn)練的網(wǎng)絡(luò)可以進(jìn)行訓(xùn)練。Batch Norm通過估計(jì)數(shù)據(jù)的方差和均值對數(shù)據(jù)進(jìn)行歸一化,但是其方差和均值的估計(jì)依賴batch size,所以測試時(shí)如果減小batch size 就會(huì)使方差和均值的估計(jì)不準(zhǔn)確導(dǎo)致性能的下降,所以我們修改文獻(xiàn)[2]中網(wǎng)絡(luò)的Batch Norm 層,將其替換為Group Norm 層。Group Norm[23]是在2018 年提出的,這種歸一化方式是基于分組思想的,將輸入數(shù)據(jù)的通道分組,通過組內(nèi)數(shù)據(jù)進(jìn)行方差和均值的估計(jì),這樣數(shù)據(jù)的歸一化就不再依賴batch size,即使在測試時(shí)減小batch size 也不會(huì)導(dǎo)致模型性能的下降。Group Norm 分組的多少對于模型的性能也有一定的影響,越少越接近Batch Norm,所以我們使每層的分組數(shù)不定,但保證每組內(nèi)有兩個(gè)通道。
現(xiàn)在大多數(shù)異常檢測網(wǎng)絡(luò)都只使用了視頻幀的像素信息,對于異常行為檢測任務(wù),像素信息中存在許多復(fù)雜而冗余的信息,而異常檢測網(wǎng)絡(luò)會(huì)關(guān)注整個(gè)幀的信息,也會(huì)學(xué)習(xí)整個(gè)幀的分布,而不僅僅是行為的分布,所以我們希望網(wǎng)絡(luò)能更加關(guān)注視頻幀中的人體。但因?yàn)槿说男袨楹铜h(huán)境有關(guān)系,我們又不能完全放棄環(huán)境信息,所以希望能夠利用環(huán)境信息的同時(shí)更加關(guān)注視頻幀中的人類行為。受文獻(xiàn)[13-14]的啟發(fā),本文采用了姿態(tài)信息,姿態(tài)信息包含了人體的關(guān)節(jié)點(diǎn)和關(guān)節(jié)之間的關(guān)系,它是結(jié)構(gòu)化的信息,可以過濾掉冗余信息,更容易表達(dá)語義。人體的姿態(tài)的變化更能表現(xiàn)人的行為,如果出現(xiàn)異常,其特征更為顯著,使得網(wǎng)絡(luò)更加關(guān)注人體的行為。也使網(wǎng)絡(luò)可以更好地學(xué)習(xí)行為的分布。文獻(xiàn)[4]提出的算法同時(shí)利用了像素信息和光流信息,受此啟發(fā),本文也采用兩個(gè)子網(wǎng)絡(luò)來分別處理像素信息和姿態(tài)信息。
由于像素信息的分布和姿態(tài)信息的分布完全不同,所以本文沒有選擇在訓(xùn)練過程中對兩個(gè)網(wǎng)絡(luò)提取的特征進(jìn)行混合,而是在最后對網(wǎng)絡(luò)預(yù)測結(jié)果進(jìn)行加權(quán)平均。因?yàn)樵诓煌沫h(huán)境下,異常行為不同,所以環(huán)境對結(jié)果的影響也不同,故針對不同的數(shù)據(jù)集應(yīng)該有不同的權(quán)值。故提出如圖2 的雙路網(wǎng)絡(luò)。
對于像素信息處理子網(wǎng)絡(luò),采用上述改進(jìn)的網(wǎng)絡(luò),使網(wǎng)絡(luò)能夠很好地學(xué)習(xí)整個(gè)幀的分布,并能生成足夠真實(shí)的幀。對于處理姿態(tài)的子網(wǎng)絡(luò),本文提出在上述改進(jìn)的網(wǎng)絡(luò)前面加上姿態(tài)提取處理過程,本文采用Alphapose[17]提取人體的姿態(tài),Alphapose 是一個(gè)自頂向下的姿態(tài)估計(jì)網(wǎng)絡(luò),在估計(jì)人體姿態(tài)后使用非極大抑制來提高估計(jì)的準(zhǔn)確率,本文采用姿態(tài)信息包含了17 個(gè)關(guān)節(jié)點(diǎn),分別是雙眼、雙耳、鼻子、肩、手肘、手腕、左右臀、膝蓋、腳踝。這些關(guān)節(jié)點(diǎn)和其關(guān)系能夠很好地表達(dá)一個(gè)人的姿態(tài)。在提取姿態(tài)信息后,對其進(jìn)行二值化處理,進(jìn)一步去掉冗余信息。然后GAN 的輸入為姿態(tài)圖,使得上述改進(jìn)的GAN 可以很好地關(guān)注人的正常行為,并能夠重構(gòu)正常行為的姿態(tài)。
圖2 雙路網(wǎng)絡(luò)結(jié)構(gòu)
最后對兩種信息進(jìn)行混合,混合方式如下。最后得到一個(gè)重構(gòu)差異分?jǐn)?shù)來判斷幀中是否存在異常,分?jǐn)?shù)計(jì)算如下:
S' 是最后的分?jǐn)?shù),S 是兩路網(wǎng)絡(luò)的混合結(jié)果。 w1是像素子網(wǎng)絡(luò)輸出結(jié)果的權(quán)重,w2是姿態(tài)子網(wǎng)絡(luò)輸出結(jié)果的權(quán)重。 scorer是像素子網(wǎng)絡(luò)輸出的分?jǐn)?shù),scorep是姿態(tài)子網(wǎng)絡(luò)輸出的分?jǐn)?shù),其計(jì)算公式如下:
本文采用PyTorch 框架實(shí)現(xiàn)。學(xué)習(xí)率為0.0002,使用Adam 優(yōu)化,設(shè)置其動(dòng)量參數(shù)為0.5,輸入幀大小為256。所有的參數(shù)都參照了文獻(xiàn)[2]。本文使用公開數(shù)據(jù)集Avenue ped1 ped2 來驗(yàn)證模型效果。
Avenue 數(shù)據(jù)集:這是香港中文大學(xué)大道的監(jiān)控視頻,其中包含16 個(gè)訓(xùn)練視頻,21 個(gè)測試視頻,一共30652 幀,其中15328 個(gè)訓(xùn)練幀,15324 個(gè)測試幀,訓(xùn)練幀中僅包含正常行走的視頻,而測試幀中包含正常行走的正常幀和跑步,扔垃圾等異常行為的異常幀。
UCSD 數(shù)據(jù)集:整個(gè)數(shù)據(jù)集是一條人行道的監(jiān)控,又分為ped1 和ped2 兩個(gè)部分。Ped1 共有70 個(gè)視頻,其中包含了34 個(gè)訓(xùn)練視頻,36 個(gè)測試視頻,其中訓(xùn)練視頻只包含正常行走的幀,而測試視頻中包含行走和騎自行車等異常幀。Ped2 中共有28 個(gè)視頻,其中16個(gè)訓(xùn)練視頻。12 個(gè)測試視頻。訓(xùn)練視頻如以上兩個(gè)數(shù)據(jù)集一樣只包含行走視頻,而測試視頻同時(shí)包含正常和異常視頻幀。
常用于評價(jià)異常檢測模型優(yōu)劣的是受試者工作特征曲線(ROC)。曲線的橫軸為假正例率,即測試為真,但實(shí)際為假的樣本占負(fù)樣本的比例;縱軸為真正例率,即,測試為正,且實(shí)際為正的樣本占所有正樣本的比例。每個(gè)點(diǎn)代表不同閾值下的真正率和假正率。圖3是模型在CUHK Avenue 數(shù)據(jù)集上測試的ROC 曲線。
圖3 在CUHK Avenue 數(shù)據(jù)集上測試的ROC曲線
AUC 則是ROC 曲線下的面積,作為評價(jià)的標(biāo)量,AUC 值大的模型優(yōu)于AUC 值小的模型。為了驗(yàn)證雙路網(wǎng)絡(luò)的有效性,本文對比了雙路網(wǎng)絡(luò)和其他算法在不同數(shù)據(jù)集上的AUC 值,為評估不同歸一化層帶來的影響,本文對比了使用不同歸一化層在不同數(shù)據(jù)集上的AUC 值,結(jié)果如表1 所示。
表1 算法在不同數(shù)據(jù)集上的AUC 值
從表1 可以看出其中Avenue 數(shù)據(jù)集的效果優(yōu)于其他兩個(gè)數(shù)據(jù)集,通過分析可知,Avenue 數(shù)據(jù)集中的圖像更清晰,人物并不密集,距離攝像頭較近,能夠提取到的姿態(tài)信息更明確,而UCSD 數(shù)據(jù)集中行人比較密集,相對Avenue 中的人更小,提取到的姿態(tài)信息顯得比較模糊,所以導(dǎo)致Avenue 的效果優(yōu)于其他數(shù)據(jù)集。由此可知姿態(tài)信息對模型的性能有明顯的影響。從表中結(jié)果可以看出,使用Group Norm 層并不會(huì)太大地影響網(wǎng)絡(luò)的性能,且使用Group Norm 層后,模型性能也不會(huì)隨著batch size 的下降而降低。測試視頻幀結(jié)果如圖4-圖5。
圖4 提取到的視頻序列中的姿態(tài)圖
圖5 子網(wǎng)絡(luò)重構(gòu)視頻序列姿態(tài)圖
圖4 是從視頻幀中提取出來并進(jìn)行二值化處理后的姿態(tài)信息,圖5 是網(wǎng)絡(luò)中間生成的姿態(tài)信息。從圖中可以看出,網(wǎng)絡(luò)可以很好地學(xué)習(xí)姿態(tài)圖的分布,并重構(gòu)。
圖6 展示了包含正常行為的視頻幀,而圖7 是子網(wǎng)絡(luò)重構(gòu)的視頻幀可以看出兩者之間的差別并不大。
圖6 包含正常行為的視頻幀序列
圖7 子網(wǎng)絡(luò)重構(gòu)包含正常行為的視頻幀序
圖8 包含異常行為的視頻幀序列
圖8 為包含異常行為的視頻幀序列,其中異常行為由紅框標(biāo)出。圖9 為子網(wǎng)絡(luò)中間重構(gòu)的視頻幀,可以看出,網(wǎng)絡(luò)并不能很好地重構(gòu)包含異常行為的幀。其差異較大。通過對比其特征向量的差異,則能檢測出是否存在異常行為。
圖9 子網(wǎng)絡(luò)重構(gòu)包含異常行為的視頻幀序列
本文采用了半監(jiān)督的方法來進(jìn)行異常行為檢測以應(yīng)對數(shù)據(jù)不平衡問題,并因異常檢測方法并不只關(guān)注人類行文而提出了一個(gè)雙路網(wǎng)絡(luò)來加強(qiáng)異常檢測網(wǎng)絡(luò)對人體行為的關(guān)注,以增加異常行為的準(zhǔn)確率。從本文的實(shí)驗(yàn)可以看出,將姿態(tài)應(yīng)用于其中是非常有效的,姿態(tài)越準(zhǔn)確對網(wǎng)絡(luò)性能的提升幫助越大。在后續(xù)的工作中將會(huì)使用更加準(zhǔn)確的姿態(tài)信息,并針對群體異常行為和單人異常行的姿態(tài)特征做研究。