莫宏偉,汪海波
人體行為檢測作為人機交互的重要技術始終受到計算機視覺的廣泛關注。但在現實環(huán)境中存在的一些繁雜背景、人體被物體遮蓋、人體動作千姿百態(tài)等問題,使得人體行為檢測任務難度較大。
近幾年深度學習在圖像檢測領域獲得長足發(fā)展,各種網絡結構層出不窮,但是所用的訓練方式都是隨機梯度下降算法,該算法簡單高效,但是需要訓練者自主設置超參數,調參過程乏味而耗時,批量規(guī)范化(batch normalization, BN)[1]算法是針對該問題提出的,作為2016年以來深度學習領域的重要研究結果,已成為深度學習算法的重要組成部分。
R-CNN(regions with CNN features)[2]模型是應用于物體檢測任務的經典算法,該模型的算法思路是首先讀入圖像后為輸入的圖像生成大約2 000個類別獨立的候選區(qū)域,之后使用卷積神經網絡從每個候選區(qū)域中獲取長度相同的特征向量,然后使用支持向量機(SVM)[3]對每一個候選區(qū)域中的物體進行檢測分類[4]。R-CNN模型采用圖像仿射變形計算每一個候選窗口固定大小的卷積神經網絡輸入,不受窗口形狀影響。
在R-CNN基礎上發(fā)展而來的Fast R-CNN[5]、Faster R-CNN[6]等在物體檢測方面更為有效。Fast R-CNN模型基于R-CNN模型融合了SPPNet[7]網絡特點,提高訓練和測試速度,同時提高了模型檢測精度。Fast R-CNN模型主要解決了R-CNN和SPPNet 3個方面的問題:測試速度慢、訓練速度慢和訓練占用空間大。
傳統(tǒng)目標檢測方法包括有區(qū)域建議方法和基于區(qū)域的卷積神經網絡的方法,但基于區(qū)域的卷積神經網絡計算量較大,之后通過共享卷積大大降低了深度計算量,Fast R-CNN可以用非常深的網絡實現了接近實時的檢測速度,這是在忽略生成區(qū)域建議框的基礎之上實現的,因此如何降低區(qū)域建議框的生成時間成為制約卷積神經網絡在目標檢測領域應用的一大瓶頸。Faster R-CNN網絡通過RPN網絡生成區(qū)域建議框,結合到Fast R-CNN網絡進行訓練,兩者共享卷積層,極大降低了計算復雜度。
在人體行為檢測方面,Ji等[8]在研究中將卷積神經網絡拓展到三維形式,設計出了3-D卷積神經網絡(3-D convolutional neural networks,3-D CNN),提出了由3-D卷積操作進行視頻信息時空特性獲取的方法。作者在KTH人體行為數據庫上采用這一方法進行了測試,獲得了90.2%的識別正確率。
Karpathy等[9]采用Sports-1M數據集對卷積神經網絡進行訓練。在框架級別處理所有視頻,使用近似重復查找算法確定了具體視頻中包含的重復幀數,實驗結果顯示了盡管存在著小部分標簽錯誤的干擾,但是網絡仍然能夠保持著較好的學習狀態(tài)。
Sun等[10]采用慢特征分析方法(slow feature analysis,SFA)來實現人體行為檢測任務。慢特征分析方法可以從輸入的圖像信息中學習不變或微弱改變的特征,研究人員將SFA方法與深度學習技術結合起來,用以學習視頻數據本身的層次表示,使用具有3-D卷積和最大池化操作的雙層SFA學習結構,將方法擴展到大型輸入,并從視頻中捕獲抽象的結構特征,這一方法在Hollywood2,KTH和UCF Sports等體行為數據集上的測試也獲得了很好的檢測效果。
Donahue等[11]提出了一個長期遞歸卷積網絡模型。結合深層次的視覺特征提取器(例如CNN)和模型,可以用于學習識別語言、視覺信息等任務,科研人員將這一方法應用到人體行為檢測任務中,并且在UCF101數據集上檢驗了模型的準確性。
Gkioxari等[12]提出了利用卷積神經網絡進行人體姿勢預測和人體行為檢測的方法,在PASCAL VOC數據集上對這一方法進行了檢驗,并將其與已有的主要方法進行了對比。
Gkioxari等[13]提出了一種根據圖像中的情境線索來進行人體行為檢測的方法,并取得了較高的識別正確率,此外這一方法還可用于屬性分類任務。Khan等[14]提出了一種語義金字塔的姿態(tài)歸一化方法來識別靜態(tài)圖像中的人體行為,并在PASCAL VOC 2010和stanford-40數據集上進行測試,取得了較高的識別精度。
Christoph等[15]提出了一種通用卷積構架,這一架構基于時空特征的乘性交互對視頻中人體行為進行檢測。此架構是完全時空卷積,并能夠在單一的視頻通道進行視頻評估。實驗表明,該模型在兩個標準動作數據集上均具有較好的效果。
Gkioxari等[16]通過研究人體部件對動作和屬性分類的重要性,提出了一種基于人體部件,利用卷積神經網絡進行人體行為檢測的方法。實驗表明,該方法對人體動作的分類具有較好的效果。
Kar等[17]提出了一種新的視頻幀合并方法,用于人類行為檢測的任務。該方法發(fā)現少量的視頻幀有可能包含了足夠的信息,以此為依據進行視頻中的行為分類。并在兩個標準數據集上實驗,實現了較高的識別效果。
Feichtenhofer等[18]將雙流卷積神經網絡和殘差網絡ResNet進行結合,提出了一種時空域上的人體行為檢測方法,該方法依然使用了兩個流,運動流和外觀流,運動流接收的輸入依然是堆疊的多幀光流灰度圖片。該方法刷新了HMDB51數據庫和UCF101數據庫行為檢測的精度。
Herath等[19]對過去10年的人體行為檢測從傳統(tǒng)方法到深度學習的方法進行了系統(tǒng)的綜述,籌集了新的問題,對人體行為檢測的進一步研究指明了方向。
中國科學技術大學鄧利群研究團隊[20]提出了一種以動作檢索表為主要依據的識別方法,該方法提出了將動作信息分割成5個片段,然后針對各片段執(zhí)行聚類操作和映射操作等,每種動作的檢測任務都需要經過全局檢索對比和類型匹配等操作來完成。申曉霞等[21]提出了基于深度圖和RGB圖像的行為描述算法,并將其應用到了人體行為檢測領域;王忠民等[22]將卷積神經網絡應用于人體行為檢測中,在應用中將經過簡單處理的原始數據直接作為卷積神經網絡的輸入,然后由卷積神經網絡進行特征獲取,再將得到的特征交由分類器執(zhí)行分類操作,該方法對測試人員的行為識別正確率達到了84.8%,驗證了算法的有效性;遲元峰等[23]通過對卷積神經網絡和循環(huán)神經網絡結構的研究分析,提出了一種新的深度神經網絡結構用于檢測視頻中的人體行為,實驗結果表現出了該方法應用在人體行為檢測方面所取得的良好效果;朱煜等[24]對近年來人體行為檢測方法出現的新進展進行了分析總結和算法綜述。
BN層的基本思想很直觀:BN就是通過一定的規(guī)范化手段,把每層神經網絡任意神經元輸入值的分布強行拉回到均值為0,方差為1的標準正態(tài)分布,這樣可以大大加快訓練速度,同時避免了因參數變化而導致的梯度消失的問題。
如果說批量規(guī)范化算法是在網絡的結構上對算法進行優(yōu)化,那么在線難例挖掘(online-hard-example-mining,OHEM)[25]算法則關注如何利用現有的樣本對網絡進行更有效的訓練。
在Fast R-CNN算法中提出的mini-batch用來進行隨機梯度下降時并不具有高效和最優(yōu)的狀態(tài),而OHEM算法可以取得更低的訓練損失和更高的平均類別和位置精度(mAP)。最初的OHEM算法與Fast R-CNN進行結合使檢測算法得到了一定程度的提升,所以在理論上將OHEM算法與Faster R-CNN算法進行結合,可以進一步提高Faster R-CNN的檢測效果。
簡單來說,OHEM算法就是從RoI中選擇難例,而不是簡單的采用。難例挖掘一般需要迭代地進行模型的訓練和用模型尋找難例,這些難例無非就是那些分錯了并且置信度還很高的樣本,這要是放在網絡里面,這個樣本對應的訓練損失就應該很大,因此一個基本思路是利用網絡訓練損失找到這些難例,具體方法如下:
1)對于一張輸入圖像,首先利用卷積網絡計算出特征圖。
2)RoI網絡利用1)中計算好的特征圖和RPN網絡得到的RoI進行一次前向傳播,最后的loss表示RoI網絡對這個RoI檢測的好壞程度,將每一個RoI對應的loss進行排序,取前面B/N個RoI進行反向傳播。
3)因為在同一張圖中的RoI很多之間相互重疊,如果一個RoI是難例,那么和它重疊較大的RoI很大程度上也是難例,這樣在反向傳播的時候就進行了一次重復的梯度計算。為了避免這種情況,首先根據損失大小進行排序,然后進行非極大值抑制,最后再選擇B/N個RoI進行反向傳播,實驗中,非極大值抑制的閾值選取0.7。
4)提出的在線難例挖掘算法主要是通過兩個RoI網絡實現的:只讀RoI網絡(圖1上部分所示)和標準RoI網絡(圖1下部分所示),只讀的RoI網絡進行前向傳播并計算出所有的RoI的損失;之后標準RoI樣本挖掘模塊進行樣本挖掘,得到困難樣本并輸入到只讀RoI網絡中,網絡只讀困難樣本進行前向和后向傳播,計算梯度并傳播到卷積神經網絡。

圖1 Faster_RCNN_OHEM算法原理圖Fig. 1 Faster R_CNN_OHEM algorithm schematic
在改進算法中,首先使用更深的預訓練模型ResNet進行參數初始化和特征提取。其次使用BN算法對輸入樣本和隱藏層中的每個輸入都進行批量規(guī)范化處理,以允許網絡使用較大的學習速率進行訓練,加快網絡的訓練速度,具體做法如圖2所示。最后使用OHEM算法選擇難例進行前向和后向傳播,計算梯度并傳播到卷積神經網絡,以獲得更低的訓練損失和更高的類別和位置精度。改進算法的整體流程見圖2。

圖2 批量規(guī)范化處理Fig. 2 Batch normalization
本文實驗數據是從VOC 2012 Action選取包括8個目標類別的人體行為數據集,3 347張標記圖像,每類動作大約400張。在數據集中,訓練驗證集大約占整個數據集的50%,測試集大約占整個數據集的50%,訓練集大約是訓練驗證集的50%,驗證集大約占訓練驗證集的50%。算法利用caffe開源框架,在Ubuntu14.04系統(tǒng)下實現,所用的計算機配置是,顯卡為GeForce GTX1080Ti,內存11 GB。
使用變學習率策略訓練改進的Faster R-CNN算法模型,初始學習率Base_lr為:0.001,批大小Batchs為128,訓練步數Stepsize為6 000,變學習率參數gamma為0.1。采用了變學習率策略公式:

式中iter為當前的迭代次數。
合硬件條件和學習效率之后,在用Fast R-CNN進行人體行為檢測時選擇Batch_size為128。
Faster R-CNN模型訓練階段使用訓練好的ResNet模型參數對RPN模型進行初始化,然后獨立地對RPN模型進行訓練,之后依舊采用在ImageNet上訓練好的ResNet模型參數對Fast R-CNN模型參數進行初始化,可以看出RPN網絡與Fast R-CNN模型的訓練是單獨進行的,兩個網絡不進行參數共享,將上一步中RPN模型生成的建議窗口作為輸入樣本對Fast R-CNN模型進行訓練,再使用訓練后的Fast R-CNN模型參數對RPN模型再次初始化,但不更新RPN與Fast R-CNN共享的卷積層參數,僅對RPN網絡特有層參數進行更新,再進行訓練,此時已實現了兩個共享,之后再對Fast R-CNN模型進行訓練,如此交替進行訓練。
在訓練之前首先修改文件中的相關的參數,將類型換成人體行為數據集中的標簽。將相應輸出的類別數改為類別數加一(類別加上背景)。
測試的結果見表1。表2為ZF+RPN、VGG+RPN實驗結果和改進算法的實驗結果。

表 1 改進Faster R-CNN算法檢測各類別的AP值Table 1 AP of actions of improved Faster R-CN

表 2 ZF和VGG16的mAPTable 2 mAP for ZF and VGG16
圖3為ZF+RPN、VGG+RPN和改進算法識別:8個類別的平均精度(AP)柱狀圖。

圖3 3種方法的AP比較Fig. 3 AP comparison of three methods
在測試數據中隨機選取了12張人體行為圖片進行抽樣測試,測試的結果分別展現在圖4~5中。圖4表示未改進算法的測試結果,從左至右從上至下的人體行為分別為騎馬(1.000)、用電腦(0.954)、玩樂器 (0.981)、打電話 (0.994)、閱讀 (0.997)、騎車 (0.996)、閱讀 (1.000)、玩樂器 (1.000)、跳(0.897)、閱讀 (未檢測出)、拍照 (未檢測出)和騎車(未檢測出),其中括號中為檢測的位置精確度。圖5表示改進算法的測試效果,從左至右從上至下的人體行為分別為騎馬(1.000)、用電腦(1.000)、玩樂器 (1.000)、打電話 (1.000)、閱讀(0.999)、騎車 (0.996)、閱讀 (1.000)、玩樂器 (1.000)、跳 (0.999)、閱讀 (0.987)、拍照 (0.934)和騎車(0.926),其中括號中為檢測的位置精確度。對比隨機選取的測試數據,圖4中最后3個動作分別為閱讀、拍照和騎車,使用VGGNet時算法并未檢測出圖中的動作。在圖5中同樣的圖片、同樣的行為,改進算法對3種動作均作出了精確的識別,并且圖片中的動作均比原始算法的識別精確度要高。相比兩種算法,改進的算法不僅能準確地識別出抽樣測試圖像中所有的人體行為,并且在精度上有所提升。

圖4 原始算法檢測結果Fig. 4 The original algorithm detection results.
結合表2和圖5的實驗結果以及隨機抽樣測試的結果可知,在8種不同的人體行為中,改進的Faster R-CNN算法對玩電腦、騎馬和騎車這3種動作的識別效果較好,雖然閱讀和玩樂器這兩種動作的識別效果相比于其他動作效果略差,但是相對于原始算法識別類別和位置的精度都有著較為明顯的改善。并且對于這8種動作,改進Faster R-CNN算法識別效果有著顯著提升,平均分類效果和位置精確度均達到80%以上,證明改進算法對人體行為檢測任務的有效性。

圖5 改進算法檢測結果Fig. 5 The improved algorithm detection results
Faster R-CNN算法在物體檢測方面有著較好的識別效果,本文針對人體行為檢測關鍵問題將OHEM算法和批量規(guī)范化算法與Faster R-CNN算法進行結合改進。在改進算法中,利用OHEM算法的優(yōu)勢可以有效地識別出靜態(tài)圖像中存在的小樣本難例,對于人體行為識別整體的識別正確率都有所改善。今后將在通過搜集更多測試樣本,增加類別,來測試所提出方法的有效性。