李嘯天,黃 進,李劍波,楊 旭,秦澤宇,付國棟
1(西南交通大學 電氣工程學院,成都 611756)
2(西南交通大學 信息科學與技術學院,成都 611756)
人體行為檢測是計算機視覺領域的熱點之一,其目的是檢測圖片或者視頻中的人體行為.傳統的檢測算法可以分為3 個步驟:首先采用多尺度、不同長寬比的滑動窗口[1]選取圖片中感興趣區域.其次,從選取區域中提取SIFT[2]、HOG[3]以及 Haar-like[4]等人工特征.最后,對選取的特征進行分類.由于滑動窗口會產生大量冗余窗口計算量大,人工特征進行分類只能提取物體的部分特征,魯棒性較差,傳統的目標檢測算法有待改進.
近幾年來,基于深度學習的目標檢測算法得到快速發展,這些算法主要分為兩類:非端到端檢測和端到端檢測.以Faster-RCNN[5]為代表的非端到端類算法首先采用區域建議網絡(RPN)篩選可能含有目標的候選框,然后通過深度卷積神經網絡提取圖像特征進行分類.端到端類算法通過深度卷積網絡提取特征,然后采用回歸方式輸出圖像中目標的位置和類別,代表性的算法有SSD[6]、YOLO[7–9].
相比于傳統人體行為檢測算法,基于深度學習的行為檢測算法使用神經網絡自動提取更深層次的圖像特征,避免了人工特征易受干擾的缺陷,檢測效果明顯優于傳統方法.在兩類深度學習目標檢測算法中,非端到端檢測網絡產生大量候選框,然后對每一個候選框進行預測,檢測精度高,但是比較耗時.端到端檢測網絡采用回歸方式直接預測,具有良好的實時性,但是不能很好的分割圖片中的前景區域和背景區域,容易產生誤檢和漏檢.因此如何在保證檢測效率的前提下提升端到端檢測算法的精度具有重要意義.
目前在行為檢測方面主要采用深度卷積神經網絡提取特征,經過特征融合后進行檢測.Ji 等[10]采用三維卷積神經網絡,提出3-D 卷積神經網絡 (3-D Convolutional Neural Networks,3-D CNN),提取視頻中時空信息.在KTH 人體行為數據庫上測試,獲得了90.2% 的識別正確率.Gkioxari 等[11]利用卷積神經網絡對人體姿勢和行為進行檢測,在 PASCAL VOC 數據集該方法取得了很好的檢測效果,并對已有的方法進行了對比.Gkioxari 等[12]通過研究人體部件的動作和屬性,提出了一種基于人體部件的行為檢測方法.實驗結果表明,該方法能夠對人體動作較好的分類.Feichtenhofer 等 [13]提出一種時空域上的人體行為檢測方法.該方法將雙流卷積神經網絡和殘差網絡 ResNet 進行結合,采用運動流和外觀流進行檢測,在 HMDB51 數據庫和UCF101 數據庫取得了較高檢測的精度.莫宏偉等[14]將Faster R-CNN與OHEM 算法結合,提出在線難例挖掘算法.該算法包含兩個 RoI 網絡,在VOC 2012 Action 數據集上實驗結果表明,改進后Faster R-CNN 算法具有識別精度高的特點.黃友文等[15]提出基于卷積神經網絡與長短期記憶神經網絡的多特征融合人體行為識別算法.該算法將不同層次的特征進行連接,通過卷積融合后輸入LSTM 單元,在KTH和UCF Sports 數據集實驗結果表明,模型有效地提高了行為識別精度.
同時,朱煜等[16]對傳統行為識別方法和基于深度學習的人體行為識別方法進行了分析總結.向玉開等[17]對主流人體行為數據集進行對比,分析了基于可見光波段、傳統方法、深度學習等人體行為檢測研究現狀及趨勢,并總結面臨的挑戰.
雖然基于深度學習的行為檢測算法在各種數據集上取得了不錯的檢測效果,但仍然存在一些問題,如基于3D CNN、雙流網絡、Faster R-CNN 的行為檢測算法網絡參數量巨大無法實現實時性檢測.由于相同行為差異大,不同行為相識度高,檢測過程中需要更加注重行為的細粒度特征,基于人體部件的檢測方法雖然能夠提取局部和全局特征但額外增加數據標注成本.端到端目標檢測算法YOLOv3 在COCO 數據集上的測試結果mAP為57.9%,比SSD 算法高出7.5%,并且滿足實時性檢測要求,因此本文選擇YOLOv3 作為行為檢測的基本網絡并改進,在保證檢測效率的前提下提高網絡對細粒度特征的提取能力,從而提升檢測的精度.
在早期的研究中,基于Bilinear CNN 模型的細粒度分類網絡[18]的有效性已經在實驗中得到驗證.Hierarchical Bilinear Pooling 網絡模型[19]在Bilinear CNN 模型的基礎上提出分層雙線性池化結構,增加不同層之間的交互,對多個分層雙線性池化模塊進行集成,從網絡中間的卷積層中提取細粒度互補信息,其網絡框架如圖1所示.

圖1 Hierarchical Bilinear Pooling 網絡框架圖
該模型選取3 個不同層、大小相同的特征圖作為的輸入,如采用VGG-16[20]的relu5_1,relu5_2,relu5_3層.然后相互作元素積(Hadamard product[21])進行層間信息互補,采用和池化操作降維,經過非線性變換和L2 正則化提升網絡模型表達能力,最后將3 個特征圖進行維度拼接,通過全連接層進行分類.
YOLOv3 網絡結構可以分為兩個部分:Darknet-53特征提取網絡和特征金字塔預測網絡.Darknet-53 采用全卷積層和殘差結構提取圖像特征,每個卷積層包括二維卷積、歸一化、LeakyReLU 三個操作.特征金字塔預測網絡中高分辨率的特征圖通過低分辨率特征圖上采樣并與Darknet-53 網絡中的特征圖拼接得到,每一個尺度上的特征圖都融合了不同分辨率、不同語義強度的特征.YOLOv3 預測過程如圖2所示.

圖2 YOLOv3 預測結構圖
416 ×416 的原始圖像經過YOLOv3 網絡后產生13×13、26×26、52×52 三個尺度上的網格區域,每個網格區域預測3 個邊框,每個邊框對應四個邊框預測值、一個網格區域置信度值和n個類別值,每個預測框輸出向量y如式(1)所示:

原Hierarchical Bilinear Pooling 網絡主要用于圖片的分類,即單張圖片上只有一個目標的情況.為了使網絡能夠檢測多個目標,實現目標定位,對原網絡進行以下兩個方面的改進:(1)省去原網絡中的和池化操作,保留特征圖的每一個像素特征;(2)采用1×1 卷積分類層代替原網絡中的的L2 歸一化層和全連接分類層,直接輸出目標的類別和坐標信息.改進之后的Hierarchical Bilinear 網絡如圖3所示.

圖3 改進后的Hierarchical Bilinear 網絡結構圖
將選取的3 個大小為W×H×C的特征圖相互作元素積進行層間信息互補得到3 個大小為W×H×C的特征圖,其中W、H、C分別為特征圖的寬、高、深度.經過非線性變換,其表達式為:

其中,x為輸入特征向量,b為浮點數常量.將經過非線性變換后的特征圖相加,通過1×1 卷積分類,其表達式為:

其中,ZHB為分類結果矩陣,PT是分類矩陣,x、y、z為特征矩陣,tx、ty、tw、th為目標坐標信息,P0置信度值,P1,…,Pn為n個類別值.
每個邊框的預測坐標值計算公式如下:

其中,tx、ty、tw、th為網絡預測輸出值,Cx和Cy是網格區域相對于圖片左上角的偏移量,Ph和Pw表示預設邊界框的長和寬,bx和by表示預測邊界框的中心坐標,bh和bw是預測邊界框的長和寬.
置信度P0的計算公式如下:

其中,P表示的是物體處于預測框中的輸出值.
對預測框所在網格區域進行物體類別得分計算時采用邏輯分類,計算公式如下:

其中,xi表示預測該網格區域為某一類別的輸出值.
為了增強YOLOv3 網絡層間局部特征交互,提升網絡對細粒度特征的提取能力,在特征金字塔分類網絡中選取3 個3×3 卷積特征圖作為改進后的Hierarchical Bilinear 網絡的輸入,經過層間信息互補后,采用回歸方式直接在3 個尺度輸出預測結果,1×1 分類卷積核的深度為(4+1+類別)×3.改進后的YOLOv3 網絡如圖4所示.

圖4 改進后的YOLOv3 網絡結構圖
原網絡和改進后的Hierarchical Bilinear 網絡均會在3 個不同尺度上輸出預測結果,將輸出結果進行融合,計算公式如下:

其中,y為融合結果,yyolo指原YOLOv3 網絡輸出,yhb 代表細粒度分類結果,α為調節參數,取值為0.6.
改進后YOLOv3 的損失函數計算公式如下:

其中,loss為函數總損失,lossyolo為原YOLOv3 網絡的損失,losshb為改進后的Hierarchical Bilinear 網絡損失,α為權重調節參數,取值為0.6.
改進后的Hierarchical Bilinear 網絡損失包括xy損失、wh損失、置信度損失、分類損失,其中wh損失采用誤差平方和損失函數,剩余的使用交叉熵損失函數,計算公式如下:

本文選用PASCAL VOC 2012 action 數據集,該數據集包含10 種不同的行為:跳、打電話、彈奏樂器、閱讀、騎車、騎馬、跑步、拍照片、使用電腦、走路,每張圖片包含類別信息、位置信息和語義分割信息.數據集包含3448 張圖像,分為訓練集、驗證集、測試集,三者的比例為6:2:2,標簽采用類別信息和標注框信息.
實驗平臺采用Ubuntu 16.04 系統,Intel(R) Xeon(R) Silver 4116 CPU,主頻2.10 GHz,48 內核,使用NVIDIA Tesla K80 GPU 進行加速.
網絡輸入大小固定為416×416,初始化方法采用He 等[22]所提出的MSRA Initialization,實驗訓練迭代次數為200 輪,參數更新方法采用Adam,初始學習率為0.001,L2 權重衰減設置為0.0005.
本文提出的Hierarchical Bilinear-YOLOv3 網絡模型與原YOLOv3 模型檢測結果對比如圖5所示.

圖5 兩種模型檢測結果對比圖
當IOU=0.5 時,兩種模型在測試集上的AP (Average Precision)結果如圖6所示.

圖6 兩種模型AP 測試結果
上述實驗結果表明,通過加入改進后的Hierarchical Bilinear 網絡增強特征圖的層間交互,能夠提升原網絡的細粒度提取能力和小目標檢測率,從而提高行為檢測精度.本文使用平均準確率均值(mean Average Precision,mAP)和每秒幀率(Frame Per Second,FPS)這兩個指標來評價模型的檢測效果,并選擇當前行為檢測領域比較有代表性的模型進行對比,實驗結果如表1所示.實驗結果表明,本文提出的Hierarchical Bilinear-YOLOv3網絡模型相比原YOLOv3 網絡、文獻[23]、文獻[24]在行為檢測上的性能指標均有所提升,改進后的模型雖然在mAP 指標上沒有文獻[12]、文獻[25]高,但檢測精度已經非常接近,同時FPS 性能指標上大幅度優于這些算法,能夠實現實時行為檢測.

表1 各種行為檢測模型實驗結果對比數據
本文針對YOLOv3 網絡在人體行為檢測中精度低等問題,提出一種基于Hierarchical Bilinear 模型的YOLOv3 改進算法.該模型在YOLOv3 原特征金字塔分類網絡上選取一些特征輸出層作為改進后Hierarchical Bilinear 網絡的輸入,增強層間局部信息交互,進行細粒度分類,然后與YOLOv3 網絡分類結果進行融合.實驗結果表明改進模型的參數量僅增加了0.4%,相比于原YOLOv3 網絡檢測精度提升了1.5%mAP,在保證檢測效率的前提下提高了檢測精度.