關百勝 ,卞春江 ,馮水春 ,陳 實
(1.中國科學院國家空間科學中心北京100190;2.中國科學院大學北京100094)
人的行為識別一直是計算機視覺領域的一個重要研究方向。近年來隨著深度學習技術的不斷發展,行為識別已經成為了計算機視覺方向的一個研究熱點[1]。在智能安防領域中,人的行為識別研究范圍主要包括越界檢測、遺留物力檢測、徘徊檢測和打架斗毆等異常行為。
目前,行為識別研究方面的一些綜述性文章[2-7]對最近幾年行為識別的發展現狀進行了分析和總結。行為識別特征提取的方法分為傳統的特征提取方法和基于深度學習的特征提取方法。針對人的行為分析主要包括人的姿態分析[8]、單人行為分析[9]、交互式行為分析[10]和人群行為分析[11]。
交互式行為識別的研究工作主要開始于2010[12]年。在2014年的Computer Vision and Pattern Recognition(CVPR)會議上,相關專家對交互式行為識別的研究現狀以及存在的問題進行了討論分析。之前的研究方法主要是通過傳統的圖像特征提取方法和分類算法等手段進行交互式行為的識別,因此無法對復雜的交互式異常行為進行識別,算法的魯棒性較差。考慮到目前深度學習在行為識別上已經取得初步的成果,故本文提出基于神經網絡的交互式異常行為識別方法,對異常行為進行識別。神經網絡技術能夠自動提取視頻中的交互式行為特征,避免了設計復雜的行為特征提取算法,減化了算法的設計流程,同時也提高了系統的魯棒性。
交互式異常行為識別的主要目的是自動識別出監控視頻中的異常行為,保障公共安全,減輕人力資源。文獻[14]提出了基于Hough-Voting的行為識別方法,文獻[15]提出了基于Spatio-Temporal的行為識別方法,文獻[16]提出了基于Poselet Key-framing的行為識別方法。以上研究都是通過圖像處理技術提取行為特征,而本文通過深度學習技術對兩個人的交互式行為進行識別,研究的交互式行為種類有握手、擁抱、踢腿、挑逗、推動和出拳6種,其中握手和擁抱屬于正常行為,踢腿,挑逗,推動和出拳屬于異常行為。交互式行為示例如圖1所示。

圖1 6種交互式行為
交互式異常行為識別分為視頻數據預處理、特征提取和行為特征判斷3步,整體框架如圖2所示。首先需要對視頻數據進行預處理,例如濾波去噪、圖像增強和圖像背景減除等處理;其次需要提取視頻中的交互式行為特征,例如通過提取Hog特征、輪廓模板特征和神經網絡自提取特征等方法提取行為特征;然后通過已經訓練好的分類器對交互式異常行為進行判斷,區分正常行為和異常行為。
交互式異常行為識別系統方案設計如圖3所示。系統方案中包括3部分,分別是背景減除、AlexNet網絡和雙隱層網絡。

圖2 交互式異常行為識別框架

圖3 系統方案設計
背景減除的作用是去除視頻圖像背景,保留前景目標圖像,并將前景圖像作為ALexNet網絡的輸入;ALexNet網絡的作用是根據輸入的目標圖像提取人體行為特征,作為特征分類的依據;雙隱層網絡的作用是根據已標注的標簽數據和ALexNet網絡已提取的行為特征訓練分類模型,并根據訓練后的模型判斷異常行為。
背景減除是對視頻圖像進行預處理,提取運動目標,為AlexNet網絡提供輸入。基于運動的目標檢測算法是指從圖像序列中將運動的目標區域檢測出來。目前常用的基于運動的目標檢測方法有幀差法、光流法和背景差(背景減除)法[17]。考慮到基于高斯混合模型(Gaussian mixture model)的背景差法可以在線更新背景模型,很好地解決了光照變化、背景混亂變化的干擾,并且可以檢測視頻中停止運動的物體,因此本文選擇基于高斯混合模型的背景差法來檢測視頻中運動的人體,去除圖像背景并保存提取到的前景人體行為圖像。高斯混合模型是指具有如下形式的概率分布模型[19]:



稱為第k個分模型。
ALexNet是一個經典的卷積神經網絡(ConvolutionalNeural Networks,CNN),包含5個卷積層和3個全連接層,最后一個全連接層的輸出被送到softmax層中。文中通過ALexNet提取視頻中的交互式行為特征,并生成概率模型。AlexNet網絡的結構如圖4所示[20],輸入圖像大小為224×224×3(RGB),輸出為1000個float類型的值,即提取出的行為特征概率值。
文中設計的雙隱層網絡是對已標注的行為和ALexNet網絡生成的概率模型進行訓練,最終生成一個行為分類器,對異常行為進行判斷。雙隱層網絡包含一個輸入層,一個輸出層和兩個隱藏層。雙隱層網絡的結構如圖5所示。

圖4 ALexNet網絡結構圖

圖5 雙隱層網絡示例
圖5中的雙隱層網絡有3個輸入單元,一個輸出單元,隱藏層1有3個輸入單元,隱藏層2有兩個輸入單元,圖中的“+1”表示偏置節點。
本實驗在Ubuntu16.04環境下搭建深度學習開發平臺,系統開發環境如表1所示。
其中OpenCV3.3是一個開源的計算機視覺庫,包含許多圖像處理和計算機視覺的通用算法,用戶可以通過OpenCV快速實現相關功能,不需要關注底層算法的具體實現過程;TensorFlow1.4是Google的第二代人工智能學習系統,可用于機器學習或圖像識別等多項機器學習和深度學習領域,借助TensorFlow開發平臺可以方便設計自己的神經網絡。

表1 開發環境介紹
在算法的具體實現中,考慮到OpenCV視覺庫中已有基于混合高斯模型的背景減除算法,并通過BackgroundSubtrctorMOG2函數實現,因此本文對該函數進行研究分析并利用BackgroundSubtrctorMOG2函數實現視頻圖像的背景減除。該算法的一個重要特點是它為每個像素選擇一個合適的高斯分布。原圖與背景減除后的圖像如圖6所示。

圖6 背景減除前后
利用TensorFlow深度學習平臺實現ALexNet網絡,并根據實際需求對相關參數進行重新設置。AlexNet網絡實現中用到的函數主要有7個,分別是fully_connected()、tf.reshape()、local_response_nor?malization()、conv_2d()、max_pool_2d()、dropout()和regression()。其中conv_2d()用于神經網絡卷積操作;local_response_normalization()用于數據標準化;tf.reshape()用于格式化輸入數據;max_pool_2d()用于池化操作;dropout()用于防止數據過擬合;ful?ly_connected()用于全連接操作;regression()用于回歸分析。AlexNet網絡實現流程如圖7所示。

圖7 AlexNet網絡實現流程
完成ALexNet網絡的實現并通過AlexNet網絡提取交互式行為特征,提取過程中損失函數的變化如圖8所示,最終的損失值為0.127。
利用TensorFlow深度學習平臺設計并實現雙隱層網絡,其設計結構簡圖如圖9所示。雙隱層網絡可以將交互式行為分為正常行為和異常行為,其中輸入層有20個輸入單元,隱藏層1有16個輸入單元,隱藏層2有8個輸入單元,輸出層有1個單元。關于雙隱層網絡的詳細設計請參考圖5。

圖8 AlexNet網絡損失值

圖9 雙隱層網絡結構簡圖
完成雙隱層網絡的實現并訓練模型,訓練過程中損失函數的變化如圖10所示,最終的損失值為0.112。

圖10 雙隱層網絡損失值
經過對6種交互式行為進行測試分析,計算出行為分類的準確率為85%,識別的準確率為73%;文獻[21]對目前交互式行為識別的準確率進行了總結,分類準確率范圍基本在70%~90%之間。
在行為識別的準確率上,本文提出的方法與當前的方法沒有明顯差異,主要原因是樣本數據較少,無法進行大規模的深度學習。如果能夠增加樣本數量,進行大規模數據的學習,會再次提高識別的準確率。在行為識別的方法上,本文提出的基于深度學習的方法可以自學習行為特征,不需要人工進行特征標注并提取行為特征,簡化了行為特征的提取過程,更有利于算法的工程化實現。
文中通過神經網絡方法提取行為特征進行交互式異常行為的識別,驗證了神經網絡技術可以用于交互式行為識別,并且取得了很好的效果,準確率也不低于傳統的行為識別方法。但是本文目前只是針對單組的交互式行為進行研究,對于多組交互式行為的分類問題還在研究中,后續將在本文研究的基礎上,對多組交互式行為進行分析研究,提高算法模型的適應性。