張欣 齊華
(西安工業大學 西安 710021)
目前公共場合監控視頻中對各種人為異常事件的排查和預警大多依賴人工,而人工排查面臨最大的問題是少量工作人員面臨大量的排查工作,往往造成問題發現不及時,造成嚴重后果。
在特定場景下的監控畫面中,內容所涉及到的人體異常行為特征受人體遠近大小、人體重疊遮擋,背景環境的多變復雜等影響。這些因素都會對人體異常行為的檢測具有很大的影響,傳統的方法是先將目標通過輪廓信息從視頻序列中分割出來,然后進行特征提取,將提取到的人體行為特征與標準庫中異常行為樣本進行比對,最后通過分類器進行判斷是否為存在異常行為。但是對于在某種真實的場景下,人體的行為存在復雜多樣,較難明確定義的問題,因此一種打破復雜傳統方法的方法就是將人體的諸多復雜行為分為正常及異常行為兩類,將具體行為類別問題轉變為行為狀態分類問題。
本文借鑒中國科學院大學劉雪琪[3]的思想,選取室內室外兩個場景模擬商場及廣場監控畫面中的人體行為狀態進行實驗任務的完成,首先需要獲取監控場景的視頻數據,通過幀截取方式獲取具有行為表達性的數據樣本,根據需求進行行為定義,標定后將數據樣本送入網絡模型中進行訓練,將人體檢測及行為分類同時交給網絡完成,通過訓練得到能夠對輸入圖像或視頻數據進行判定人體是否具有異常行為的模型。
YOLOv4[1]網絡模型主要由CSPDarknet53[1]主干網絡、特征金字塔網絡和YOLOHEAD組成。與YOLOv3[2]所使用Darknet53[2]架構相比[2],主干網絡增加了CSP[1]結構,將Mish[1]函數只應用于主干網絡上,不僅確保了檢測的準確率,還降低了算法的計算量。SPP[1]模塊顯著增加了接受場,可以更好地分離出最重要的上下文特征,并且不會降低網絡訓練速度。路徑聚合使用上下采樣相結合的方式,通過上采樣提高小目標檢測物的檢測效果,再通過下采樣加強特征金字塔,最后通過多尺度特征層進行預測。
本實驗應用背景面向大型商場及廣場安防系統中的監控視頻畫面,選擇室內及室外兩種背景完成場景的模擬。對于不同場合人體的異常行為的定義是不同的,所以根據大型商場及廣場監控中人體行為特征,將人體行為分為正常及異常兩類[3]。
其中個人異常行為以暈倒為主,特點為人體橫倒地面并持續一定的時長;兩人交互異常分別為肢體沖突、盜竊等,其特點分別為雙方人體大幅度肢體交互動作及一方刻意靠近另一人體并且距離異常靠近;其余人體行為均定義為正常行為。人體行為雖存在部分類間特征差異小的問題,但直觀上特征語義存在明顯的不同。
1)K-Means聚類
K-Means算法[13]是基于距離的算法,其核心思想是基于給定的聚類目標函數,算法采用迭代更新的方法,每一次迭代過程都是向目標函數減小的方向進行,最終聚類結果使得目標函數取得極小值,達到較好的分類結果。
基于回歸的檢測模型在訓練前首先要指定檢測目標的長寬比和范圍,對于本數據集來說,模型默認的anchor box并不合理,所以需要聚類本實驗中的數據集,K-Means算法如式(1~2)所示。


其中d表示計算每個標注框與每個聚類中心點的距離時每個標注框中心點距離,i表示第i個類的標注框個數,Wi'表示標注框寬的平均值,Hi'表示標注框高的平均值,通過聚類獲得適合本數據集的先驗框。
2)分類器設置
基于YOLOv4原模型分類器中包含80種大小不同的類別,通過聚類后,需要將分類器進行修改。模型使用多尺度特征層對不同大小目標進行檢測,YOLOv4模型對每個網絡單元設置3個預測框,且每個預測框包含(x,y,w,h,confidence) 5個基本參數,同時需要有80個類別的概率,所以模型輸出的維度為3×(5+80)=255。本實驗根據需求對人體行為進行分類,所以是正常及異常兩個類別,輸出的維度張量為3×(5+2)=21。所以本實驗在原模型的基礎上修改分類器,將模型的輸出修改為21維度的張量。
3)多尺度特征層對檢測結果的影響
通常深度神經網絡層數越深,模型提取到的目標特征信息就越詳細。基于YOLOv4模型分別使用(13×13)、(26×26)、(52×52)三個不同尺度特征層進行預測,其中(52×52)用來對尺寸較小的目標進行預測的,為適應本數據集人體尺寸特征,同時使用(13×13)、(26×26)特征層進行預測并建立人體行為特征檢測層,并進行實驗分析,得到基于YOLOv4模型結構如圖1所示。

圖1 改進后模型結構圖
本次實驗操作系統為Windows10,實驗顯卡型號為NVIDIA GeForce GTX1080Ti,GPU數量為2,顯存為8G。使用Pycharm的編譯環境,預裝環境包括python3.6、Tensorflow-GPU1.13.1、keras2.1.5、cuda10.1及cudnn7.3.1等。
本次實驗通過四名人員相互配合,選擇室內室外兩種場景以及不同拍攝角度進行不同行為的錄制。將拍攝后獲取的視頻進行視頻幀截取,選擇最具有行為表達性的視頻幀作為數據樣本,篩選過的幀圖像使用LamblImg軟件進行標注生成所對應的XML標簽文件,最終獲得2000多張標注后的數據集,部分數據樣本如圖2所示。

圖2 部分數據集
將訓練樣本送入改進后的YOLOv4模型中訓練,訓練前按照9∶1比例劃分訓練集及測試集,其中batch_size=16,max_epoch=200,初始學習率設置為0.01。由于實驗中訓練樣本為自行制作,通過Callback實現早停法[10],同時輸入端選擇mosaic[14]數據增強方式,一方面能夠使得訓練樣本更好地擬合網絡,另一方面防止由于訓練過多個epoch造成過擬合問題[10]。當訓練中出現瓶頸時,則降低學習率為原來的1/10繼續訓練,直到本輪次訓練結果不如上輪訓練的表現時,則終止訓練。異常行為模型訓練如圖3所示。

圖3 異常行為模型訓練示意圖
基于YOLOv4模型的損失函數分別由目標置信度損失、目標分類損失以及目標定位偏移量損失組成,總損失函數如式(3)所示:

公式中表示網格共有K×K個,每個網格產生M個先驗框anchor,每個anchor通過網絡得到對應的邊框,最終形成K×K×M個預測框,如果框內沒有目標,則僅計算框的置信loss。其中,置信度loss采用交叉熵,分為目標框及不含目標框,在不含目標框的loss中增加權重系數,能夠減少不含目標的框計算部分的貢獻權重。分類loss采用交叉熵,當第i個網格的第j個先驗框負責一個真實目標時,那么這個先驗框所產生的的預測框才回去計算分類損失函數。YOLOv4模型將目標框loss引入CIOU[12]概念,其中l ossCIOU公式如式(4)所示:

其中,ρ2(b,bgt)代表預測框及真實框的中心點的歐式距離,c表示能夠同時包含預測框及真實框的最小閉合區域的對角線,α表示權衡系數,ν是衡量長寬比一致性的參數,α及ν計算公式如式(5~6)所示:

通過上述損失函數分析,將數據樣本送入模型中訓練得到三種模型的loss曲線如圖5所示,其中(a)為YOLOv4原模型的loss曲線,模型總體趨于收斂,但收斂速度較慢;(b)聚類后的YOLOv4模型loss曲線,在第5個eopch時趨于收斂,總體收斂速度最快;(c)為改進后YOLOv4模型的loss曲線,模型在第10個eopch時loss值趨于穩定,總體收斂速度較快。


圖5 三種模型loss曲線
通過多次調參及模型優化訓練后,得到三種模型的P-R曲線如圖6所示。圖6(a)為改進后YOLOv4模型人體行為分類的P-R曲線,可以看出隨著recall值的增長,模型的Precision穩定保持很高的數值,充分說明模型對人體行為特征保持很好的學習水平;圖6(b)為聚類后YOLOv4模型P-R曲線,可以看出隨著recall值的增長,Precision值趨勢不斷降低同時保持平穩;圖6(c)為YOLOv4原模型對人體行為分類的P-R曲線隨著recall值的增長,precision值不斷降低,在三種模型中的表現最差。

圖6 三種模型P-R曲線
模型訓練完成后,將測試集分別送入三個模型中進行測試,得到三種模型對人體行為的分類結果。圖中分為深色(異常)及淺色(正常)兩種框,模型在檢測的同時將人體行為的分類結果通過標簽方式出現在預測框左上角,部分檢測結果如圖7所示。

圖7 三種模型測試結果圖
圖7中(a)部分為基于改進后YOLOv4模型的檢測效果,表明基于YOLOv4模型使用兩個尺度特征層預測對于人體及行為的特征學習效果較好,能在相同及不同拍攝場景將人體檢測出來,并且準確地進行人體行為狀態分類;(b)中的效果圖為YOLOv4原模型的檢測結果,可以看到模型對部分重疊人體狀態出現漏檢及誤檢問題;(c)中的圖為聚類后基于YOLOv4模型部分檢測結果,可以看出檢測效果良好,但會出現部分誤檢問題。
本文對廣場及商場監控場景下人體異常行為定義并標定數據,將標定后的數據樣本作為輸入送入基于YOLOv4網絡模型訓練,將人體行為是否異常的分類結果作為檢測模型的輸出,使網絡充分提取行為特征并分類,實現端到端實時檢測系統。最終實驗數據表明此方法能夠快速高效且準確地對人體異常行為進行檢測,且能達到較高的準確率,將機器視覺應用到智能安防系統具有重要意義。