張欣 齊華
(西安工業(yè)大學 西安 710021)
目前公共場合監(jiān)控視頻中對各種人為異常事件的排查和預(yù)警大多依賴人工,而人工排查面臨最大的問題是少量工作人員面臨大量的排查工作,往往造成問題發(fā)現(xiàn)不及時,造成嚴重后果。
在特定場景下的監(jiān)控畫面中,內(nèi)容所涉及到的人體異常行為特征受人體遠近大小、人體重疊遮擋,背景環(huán)境的多變復(fù)雜等影響。這些因素都會對人體異常行為的檢測具有很大的影響,傳統(tǒng)的方法是先將目標通過輪廓信息從視頻序列中分割出來,然后進行特征提取,將提取到的人體行為特征與標準庫中異常行為樣本進行比對,最后通過分類器進行判斷是否為存在異常行為。但是對于在某種真實的場景下,人體的行為存在復(fù)雜多樣,較難明確定義的問題,因此一種打破復(fù)雜傳統(tǒng)方法的方法就是將人體的諸多復(fù)雜行為分為正常及異常行為兩類,將具體行為類別問題轉(zhuǎn)變?yōu)樾袨闋顟B(tài)分類問題。
本文借鑒中國科學院大學劉雪琪[3]的思想,選取室內(nèi)室外兩個場景模擬商場及廣場監(jiān)控畫面中的人體行為狀態(tài)進行實驗任務(wù)的完成,首先需要獲取監(jiān)控場景的視頻數(shù)據(jù),通過幀截取方式獲取具有行為表達性的數(shù)據(jù)樣本,根據(jù)需求進行行為定義,標定后將數(shù)據(jù)樣本送入網(wǎng)絡(luò)模型中進行訓練,將人體檢測及行為分類同時交給網(wǎng)絡(luò)完成,通過訓練得到能夠?qū)斎雸D像或視頻數(shù)據(jù)進行判定人體是否具有異常行為的模型。
YOLOv4[1]網(wǎng)絡(luò)模型主要由CSPDarknet53[1]主干網(wǎng)絡(luò)、特征金字塔網(wǎng)絡(luò)和YOLOHEAD組成。與YOLOv3[2]所使用Darknet53[2]架構(gòu)相比[2],主干網(wǎng)絡(luò)增加了CSP[1]結(jié)構(gòu),將Mish[1]函數(shù)只應(yīng)用于主干網(wǎng)絡(luò)上,不僅確保了檢測的準確率,還降低了算法的計算量。SPP[1]模塊顯著增加了接受場,可以更好地分離出最重要的上下文特征,并且不會降低網(wǎng)絡(luò)訓練速度。路徑聚合使用上下采樣相結(jié)合的方式,通過上采樣提高小目標檢測物的檢測效果,再通過下采樣加強特征金字塔,最后通過多尺度特征層進行預(yù)測。
本實驗應(yīng)用背景面向大型商場及廣場安防系統(tǒng)中的監(jiān)控視頻畫面,選擇室內(nèi)及室外兩種背景完成場景的模擬。對于不同場合人體的異常行為的定義是不同的,所以根據(jù)大型商場及廣場監(jiān)控中人體行為特征,將人體行為分為正常及異常兩類[3]。
其中個人異常行為以暈倒為主,特點為人體橫倒地面并持續(xù)一定的時長;兩人交互異常分別為肢體沖突、盜竊等,其特點分別為雙方人體大幅度肢體交互動作及一方刻意靠近另一人體并且距離異??拷黄溆嗳梭w行為均定義為正常行為。人體行為雖存在部分類間特征差異小的問題,但直觀上特征語義存在明顯的不同。
1)K-Means聚類
K-Means算法[13]是基于距離的算法,其核心思想是基于給定的聚類目標函數(shù),算法采用迭代更新的方法,每一次迭代過程都是向目標函數(shù)減小的方向進行,最終聚類結(jié)果使得目標函數(shù)取得極小值,達到較好的分類結(jié)果。
基于回歸的檢測模型在訓練前首先要指定檢測目標的長寬比和范圍,對于本數(shù)據(jù)集來說,模型默認的anchor box并不合理,所以需要聚類本實驗中的數(shù)據(jù)集,K-Means算法如式(1~2)所示。
其中d表示計算每個標注框與每個聚類中心點的距離時每個標注框中心點距離,i表示第i個類的標注框個數(shù),Wi'表示標注框?qū)挼钠骄?,Hi'表示標注框高的平均值,通過聚類獲得適合本數(shù)據(jù)集的先驗框。
2)分類器設(shè)置
基于YOLOv4原模型分類器中包含80種大小不同的類別,通過聚類后,需要將分類器進行修改。模型使用多尺度特征層對不同大小目標進行檢測,YOLOv4模型對每個網(wǎng)絡(luò)單元設(shè)置3個預(yù)測框,且每個預(yù)測框包含(x,y,w,h,confidence) 5個基本參數(shù),同時需要有80個類別的概率,所以模型輸出的維度為3×(5+80)=255。本實驗根據(jù)需求對人體行為進行分類,所以是正常及異常兩個類別,輸出的維度張量為3×(5+2)=21。所以本實驗在原模型的基礎(chǔ)上修改分類器,將模型的輸出修改為21維度的張量。
3)多尺度特征層對檢測結(jié)果的影響
通常深度神經(jīng)網(wǎng)絡(luò)層數(shù)越深,模型提取到的目標特征信息就越詳細?;赮OLOv4模型分別使用(13×13)、(26×26)、(52×52)三個不同尺度特征層進行預(yù)測,其中(52×52)用來對尺寸較小的目標進行預(yù)測的,為適應(yīng)本數(shù)據(jù)集人體尺寸特征,同時使用(13×13)、(26×26)特征層進行預(yù)測并建立人體行為特征檢測層,并進行實驗分析,得到基于YOLOv4模型結(jié)構(gòu)如圖1所示。
圖1 改進后模型結(jié)構(gòu)圖
本次實驗操作系統(tǒng)為Windows10,實驗顯卡型號為NVIDIA GeForce GTX1080Ti,GPU數(shù)量為2,顯存為8G。使用Pycharm的編譯環(huán)境,預(yù)裝環(huán)境包括python3.6、Tensorflow-GPU1.13.1、keras2.1.5、cuda10.1及cudnn7.3.1等。
本次實驗通過四名人員相互配合,選擇室內(nèi)室外兩種場景以及不同拍攝角度進行不同行為的錄制。將拍攝后獲取的視頻進行視頻幀截取,選擇最具有行為表達性的視頻幀作為數(shù)據(jù)樣本,篩選過的幀圖像使用LamblImg軟件進行標注生成所對應(yīng)的XML標簽文件,最終獲得2000多張標注后的數(shù)據(jù)集,部分數(shù)據(jù)樣本如圖2所示。
圖2 部分數(shù)據(jù)集
將訓練樣本送入改進后的YOLOv4模型中訓練,訓練前按照9∶1比例劃分訓練集及測試集,其中batch_size=16,max_epoch=200,初始學習率設(shè)置為0.01。由于實驗中訓練樣本為自行制作,通過Callback實現(xiàn)早停法[10],同時輸入端選擇mosaic[14]數(shù)據(jù)增強方式,一方面能夠使得訓練樣本更好地擬合網(wǎng)絡(luò),另一方面防止由于訓練過多個epoch造成過擬合問題[10]。當訓練中出現(xiàn)瓶頸時,則降低學習率為原來的1/10繼續(xù)訓練,直到本輪次訓練結(jié)果不如上輪訓練的表現(xiàn)時,則終止訓練。異常行為模型訓練如圖3所示。
圖3 異常行為模型訓練示意圖
基于YOLOv4模型的損失函數(shù)分別由目標置信度損失、目標分類損失以及目標定位偏移量損失組成,總損失函數(shù)如式(3)所示:
公式中表示網(wǎng)格共有K×K個,每個網(wǎng)格產(chǎn)生M個先驗框anchor,每個anchor通過網(wǎng)絡(luò)得到對應(yīng)的邊框,最終形成K×K×M個預(yù)測框,如果框內(nèi)沒有目標,則僅計算框的置信loss。其中,置信度loss采用交叉熵,分為目標框及不含目標框,在不含目標框的loss中增加權(quán)重系數(shù),能夠減少不含目標的框計算部分的貢獻權(quán)重。分類loss采用交叉熵,當?shù)趇個網(wǎng)格的第j個先驗框負責一個真實目標時,那么這個先驗框所產(chǎn)生的的預(yù)測框才回去計算分類損失函數(shù)。YOLOv4模型將目標框loss引入CIOU[12]概念,其中l(wèi) ossCIOU公式如式(4)所示:
其中,ρ2(b,bgt)代表預(yù)測框及真實框的中心點的歐式距離,c表示能夠同時包含預(yù)測框及真實框的最小閉合區(qū)域的對角線,α表示權(quán)衡系數(shù),ν是衡量長寬比一致性的參數(shù),α及ν計算公式如式(5~6)所示:
通過上述損失函數(shù)分析,將數(shù)據(jù)樣本送入模型中訓練得到三種模型的loss曲線如圖5所示,其中(a)為YOLOv4原模型的loss曲線,模型總體趨于收斂,但收斂速度較慢;(b)聚類后的YOLOv4模型loss曲線,在第5個eopch時趨于收斂,總體收斂速度最快;(c)為改進后YOLOv4模型的loss曲線,模型在第10個eopch時loss值趨于穩(wěn)定,總體收斂速度較快。
圖5 三種模型loss曲線
通過多次調(diào)參及模型優(yōu)化訓練后,得到三種模型的P-R曲線如圖6所示。圖6(a)為改進后YOLOv4模型人體行為分類的P-R曲線,可以看出隨著recall值的增長,模型的Precision穩(wěn)定保持很高的數(shù)值,充分說明模型對人體行為特征保持很好的學習水平;圖6(b)為聚類后YOLOv4模型P-R曲線,可以看出隨著recall值的增長,Precision值趨勢不斷降低同時保持平穩(wěn);圖6(c)為YOLOv4原模型對人體行為分類的P-R曲線隨著recall值的增長,precision值不斷降低,在三種模型中的表現(xiàn)最差。
圖6 三種模型P-R曲線
模型訓練完成后,將測試集分別送入三個模型中進行測試,得到三種模型對人體行為的分類結(jié)果。圖中分為深色(異常)及淺色(正常)兩種框,模型在檢測的同時將人體行為的分類結(jié)果通過標簽方式出現(xiàn)在預(yù)測框左上角,部分檢測結(jié)果如圖7所示。
圖7 三種模型測試結(jié)果圖
圖7中(a)部分為基于改進后YOLOv4模型的檢測效果,表明基于YOLOv4模型使用兩個尺度特征層預(yù)測對于人體及行為的特征學習效果較好,能在相同及不同拍攝場景將人體檢測出來,并且準確地進行人體行為狀態(tài)分類;(b)中的效果圖為YOLOv4原模型的檢測結(jié)果,可以看到模型對部分重疊人體狀態(tài)出現(xiàn)漏檢及誤檢問題;(c)中的圖為聚類后基于YOLOv4模型部分檢測結(jié)果,可以看出檢測效果良好,但會出現(xiàn)部分誤檢問題。
本文對廣場及商場監(jiān)控場景下人體異常行為定義并標定數(shù)據(jù),將標定后的數(shù)據(jù)樣本作為輸入送入基于YOLOv4網(wǎng)絡(luò)模型訓練,將人體行為是否異常的分類結(jié)果作為檢測模型的輸出,使網(wǎng)絡(luò)充分提取行為特征并分類,實現(xiàn)端到端實時檢測系統(tǒng)。最終實驗數(shù)據(jù)表明此方法能夠快速高效且準確地對人體異常行為進行檢測,且能達到較高的準確率,將機器視覺應(yīng)用到智能安防系統(tǒng)具有重要意義。