李嘯天,黃 進(jìn),李劍波,楊 旭,秦澤宇,付國棟
1(西南交通大學(xué) 電氣工程學(xué)院,成都 611756)
2(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 611756)
人體行為檢測是計(jì)算機(jī)視覺領(lǐng)域的熱點(diǎn)之一,其目的是檢測圖片或者視頻中的人體行為.傳統(tǒng)的檢測算法可以分為3 個(gè)步驟:首先采用多尺度、不同長寬比的滑動窗口[1]選取圖片中感興趣區(qū)域.其次,從選取區(qū)域中提取SIFT[2]、HOG[3]以及 Haar-like[4]等人工特征.最后,對選取的特征進(jìn)行分類.由于滑動窗口會產(chǎn)生大量冗余窗口計(jì)算量大,人工特征進(jìn)行分類只能提取物體的部分特征,魯棒性較差,傳統(tǒng)的目標(biāo)檢測算法有待改進(jìn).
近幾年來,基于深度學(xué)習(xí)的目標(biāo)檢測算法得到快速發(fā)展,這些算法主要分為兩類:非端到端檢測和端到端檢測.以Faster-RCNN[5]為代表的非端到端類算法首先采用區(qū)域建議網(wǎng)絡(luò)(RPN)篩選可能含有目標(biāo)的候選框,然后通過深度卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征進(jìn)行分類.端到端類算法通過深度卷積網(wǎng)絡(luò)提取特征,然后采用回歸方式輸出圖像中目標(biāo)的位置和類別,代表性的算法有SSD[6]、YOLO[7–9].
相比于傳統(tǒng)人體行為檢測算法,基于深度學(xué)習(xí)的行為檢測算法使用神經(jīng)網(wǎng)絡(luò)自動提取更深層次的圖像特征,避免了人工特征易受干擾的缺陷,檢測效果明顯優(yōu)于傳統(tǒng)方法.在兩類深度學(xué)習(xí)目標(biāo)檢測算法中,非端到端檢測網(wǎng)絡(luò)產(chǎn)生大量候選框,然后對每一個(gè)候選框進(jìn)行預(yù)測,檢測精度高,但是比較耗時(shí).端到端檢測網(wǎng)絡(luò)采用回歸方式直接預(yù)測,具有良好的實(shí)時(shí)性,但是不能很好的分割圖片中的前景區(qū)域和背景區(qū)域,容易產(chǎn)生誤檢和漏檢.因此如何在保證檢測效率的前提下提升端到端檢測算法的精度具有重要意義.
目前在行為檢測方面主要采用深度卷積神經(jīng)網(wǎng)絡(luò)提取特征,經(jīng)過特征融合后進(jìn)行檢測.Ji 等[10]采用三維卷積神經(jīng)網(wǎng)絡(luò),提出3-D 卷積神經(jīng)網(wǎng)絡(luò) (3-D Convolutional Neural Networks,3-D CNN),提取視頻中時(shí)空信息.在KTH 人體行為數(shù)據(jù)庫上測試,獲得了90.2% 的識別正確率.Gkioxari 等[11]利用卷積神經(jīng)網(wǎng)絡(luò)對人體姿勢和行為進(jìn)行檢測,在 PASCAL VOC 數(shù)據(jù)集該方法取得了很好的檢測效果,并對已有的方法進(jìn)行了對比.Gkioxari 等[12]通過研究人體部件的動作和屬性,提出了一種基于人體部件的行為檢測方法.實(shí)驗(yàn)結(jié)果表明,該方法能夠?qū)θ梭w動作較好的分類.Feichtenhofer 等 [13]提出一種時(shí)空域上的人體行為檢測方法.該方法將雙流卷積神經(jīng)網(wǎng)絡(luò)和殘差網(wǎng)絡(luò) ResNet 進(jìn)行結(jié)合,采用運(yùn)動流和外觀流進(jìn)行檢測,在 HMDB51 數(shù)據(jù)庫和UCF101 數(shù)據(jù)庫取得了較高檢測的精度.莫宏偉等[14]將Faster R-CNN與OHEM 算法結(jié)合,提出在線難例挖掘算法.該算法包含兩個(gè) RoI 網(wǎng)絡(luò),在VOC 2012 Action 數(shù)據(jù)集上實(shí)驗(yàn)結(jié)果表明,改進(jìn)后Faster R-CNN 算法具有識別精度高的特點(diǎn).黃友文等[15]提出基于卷積神經(jīng)網(wǎng)絡(luò)與長短期記憶神經(jīng)網(wǎng)絡(luò)的多特征融合人體行為識別算法.該算法將不同層次的特征進(jìn)行連接,通過卷積融合后輸入LSTM 單元,在KTH和UCF Sports 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果表明,模型有效地提高了行為識別精度.
同時(shí),朱煜等[16]對傳統(tǒng)行為識別方法和基于深度學(xué)習(xí)的人體行為識別方法進(jìn)行了分析總結(jié).向玉開等[17]對主流人體行為數(shù)據(jù)集進(jìn)行對比,分析了基于可見光波段、傳統(tǒng)方法、深度學(xué)習(xí)等人體行為檢測研究現(xiàn)狀及趨勢,并總結(jié)面臨的挑戰(zhàn).
雖然基于深度學(xué)習(xí)的行為檢測算法在各種數(shù)據(jù)集上取得了不錯(cuò)的檢測效果,但仍然存在一些問題,如基于3D CNN、雙流網(wǎng)絡(luò)、Faster R-CNN 的行為檢測算法網(wǎng)絡(luò)參數(shù)量巨大無法實(shí)現(xiàn)實(shí)時(shí)性檢測.由于相同行為差異大,不同行為相識度高,檢測過程中需要更加注重行為的細(xì)粒度特征,基于人體部件的檢測方法雖然能夠提取局部和全局特征但額外增加數(shù)據(jù)標(biāo)注成本.端到端目標(biāo)檢測算法YOLOv3 在COCO 數(shù)據(jù)集上的測試結(jié)果mAP為57.9%,比SSD 算法高出7.5%,并且滿足實(shí)時(shí)性檢測要求,因此本文選擇YOLOv3 作為行為檢測的基本網(wǎng)絡(luò)并改進(jìn),在保證檢測效率的前提下提高網(wǎng)絡(luò)對細(xì)粒度特征的提取能力,從而提升檢測的精度.
在早期的研究中,基于Bilinear CNN 模型的細(xì)粒度分類網(wǎng)絡(luò)[18]的有效性已經(jīng)在實(shí)驗(yàn)中得到驗(yàn)證.Hierarchical Bilinear Pooling 網(wǎng)絡(luò)模型[19]在Bilinear CNN 模型的基礎(chǔ)上提出分層雙線性池化結(jié)構(gòu),增加不同層之間的交互,對多個(gè)分層雙線性池化模塊進(jìn)行集成,從網(wǎng)絡(luò)中間的卷積層中提取細(xì)粒度互補(bǔ)信息,其網(wǎng)絡(luò)框架如圖1所示.
圖1 Hierarchical Bilinear Pooling 網(wǎng)絡(luò)框架圖
該模型選取3 個(gè)不同層、大小相同的特征圖作為的輸入,如采用VGG-16[20]的relu5_1,relu5_2,relu5_3層.然后相互作元素積(Hadamard product[21])進(jìn)行層間信息互補(bǔ),采用和池化操作降維,經(jīng)過非線性變換和L2 正則化提升網(wǎng)絡(luò)模型表達(dá)能力,最后將3 個(gè)特征圖進(jìn)行維度拼接,通過全連接層進(jìn)行分類.
YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)可以分為兩個(gè)部分:Darknet-53特征提取網(wǎng)絡(luò)和特征金字塔預(yù)測網(wǎng)絡(luò).Darknet-53 采用全卷積層和殘差結(jié)構(gòu)提取圖像特征,每個(gè)卷積層包括二維卷積、歸一化、LeakyReLU 三個(gè)操作.特征金字塔預(yù)測網(wǎng)絡(luò)中高分辨率的特征圖通過低分辨率特征圖上采樣并與Darknet-53 網(wǎng)絡(luò)中的特征圖拼接得到,每一個(gè)尺度上的特征圖都融合了不同分辨率、不同語義強(qiáng)度的特征.YOLOv3 預(yù)測過程如圖2所示.
圖2 YOLOv3 預(yù)測結(jié)構(gòu)圖
416 ×416 的原始圖像經(jīng)過YOLOv3 網(wǎng)絡(luò)后產(chǎn)生13×13、26×26、52×52 三個(gè)尺度上的網(wǎng)格區(qū)域,每個(gè)網(wǎng)格區(qū)域預(yù)測3 個(gè)邊框,每個(gè)邊框?qū)?yīng)四個(gè)邊框預(yù)測值、一個(gè)網(wǎng)格區(qū)域置信度值和n個(gè)類別值,每個(gè)預(yù)測框輸出向量y如式(1)所示:
原Hierarchical Bilinear Pooling 網(wǎng)絡(luò)主要用于圖片的分類,即單張圖片上只有一個(gè)目標(biāo)的情況.為了使網(wǎng)絡(luò)能夠檢測多個(gè)目標(biāo),實(shí)現(xiàn)目標(biāo)定位,對原網(wǎng)絡(luò)進(jìn)行以下兩個(gè)方面的改進(jìn):(1)省去原網(wǎng)絡(luò)中的和池化操作,保留特征圖的每一個(gè)像素特征;(2)采用1×1 卷積分類層代替原網(wǎng)絡(luò)中的的L2 歸一化層和全連接分類層,直接輸出目標(biāo)的類別和坐標(biāo)信息.改進(jìn)之后的Hierarchical Bilinear 網(wǎng)絡(luò)如圖3所示.
圖3 改進(jìn)后的Hierarchical Bilinear 網(wǎng)絡(luò)結(jié)構(gòu)圖
將選取的3 個(gè)大小為W×H×C的特征圖相互作元素積進(jìn)行層間信息互補(bǔ)得到3 個(gè)大小為W×H×C的特征圖,其中W、H、C分別為特征圖的寬、高、深度.經(jīng)過非線性變換,其表達(dá)式為:
其中,x為輸入特征向量,b為浮點(diǎn)數(shù)常量.將經(jīng)過非線性變換后的特征圖相加,通過1×1 卷積分類,其表達(dá)式為:
其中,ZHB為分類結(jié)果矩陣,PT是分類矩陣,x、y、z為特征矩陣,tx、ty、tw、th為目標(biāo)坐標(biāo)信息,P0置信度值,P1,…,Pn為n個(gè)類別值.
每個(gè)邊框的預(yù)測坐標(biāo)值計(jì)算公式如下:
其中,tx、ty、tw、th為網(wǎng)絡(luò)預(yù)測輸出值,Cx和Cy是網(wǎng)格區(qū)域相對于圖片左上角的偏移量,Ph和Pw表示預(yù)設(shè)邊界框的長和寬,bx和by表示預(yù)測邊界框的中心坐標(biāo),bh和bw是預(yù)測邊界框的長和寬.
置信度P0的計(jì)算公式如下:
其中,P表示的是物體處于預(yù)測框中的輸出值.
對預(yù)測框所在網(wǎng)格區(qū)域進(jìn)行物體類別得分計(jì)算時(shí)采用邏輯分類,計(jì)算公式如下:
其中,xi表示預(yù)測該網(wǎng)格區(qū)域?yàn)槟骋活悇e的輸出值.
為了增強(qiáng)YOLOv3 網(wǎng)絡(luò)層間局部特征交互,提升網(wǎng)絡(luò)對細(xì)粒度特征的提取能力,在特征金字塔分類網(wǎng)絡(luò)中選取3 個(gè)3×3 卷積特征圖作為改進(jìn)后的Hierarchical Bilinear 網(wǎng)絡(luò)的輸入,經(jīng)過層間信息互補(bǔ)后,采用回歸方式直接在3 個(gè)尺度輸出預(yù)測結(jié)果,1×1 分類卷積核的深度為(4+1+類別)×3.改進(jìn)后的YOLOv3 網(wǎng)絡(luò)如圖4所示.
圖4 改進(jìn)后的YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)圖
原網(wǎng)絡(luò)和改進(jìn)后的Hierarchical Bilinear 網(wǎng)絡(luò)均會在3 個(gè)不同尺度上輸出預(yù)測結(jié)果,將輸出結(jié)果進(jìn)行融合,計(jì)算公式如下:
其中,y為融合結(jié)果,yyolo指原YOLOv3 網(wǎng)絡(luò)輸出,yhb 代表細(xì)粒度分類結(jié)果,α為調(diào)節(jié)參數(shù),取值為0.6.
改進(jìn)后YOLOv3 的損失函數(shù)計(jì)算公式如下:
其中,loss為函數(shù)總損失,lossyolo為原YOLOv3 網(wǎng)絡(luò)的損失,losshb為改進(jìn)后的Hierarchical Bilinear 網(wǎng)絡(luò)損失,α為權(quán)重調(diào)節(jié)參數(shù),取值為0.6.
改進(jìn)后的Hierarchical Bilinear 網(wǎng)絡(luò)損失包括xy損失、wh損失、置信度損失、分類損失,其中wh損失采用誤差平方和損失函數(shù),剩余的使用交叉熵?fù)p失函數(shù),計(jì)算公式如下:
本文選用PASCAL VOC 2012 action 數(shù)據(jù)集,該數(shù)據(jù)集包含10 種不同的行為:跳、打電話、彈奏樂器、閱讀、騎車、騎馬、跑步、拍照片、使用電腦、走路,每張圖片包含類別信息、位置信息和語義分割信息.數(shù)據(jù)集包含3448 張圖像,分為訓(xùn)練集、驗(yàn)證集、測試集,三者的比例為6:2:2,標(biāo)簽采用類別信息和標(biāo)注框信息.
實(shí)驗(yàn)平臺采用Ubuntu 16.04 系統(tǒng),Intel(R) Xeon(R) Silver 4116 CPU,主頻2.10 GHz,48 內(nèi)核,使用NVIDIA Tesla K80 GPU 進(jìn)行加速.
網(wǎng)絡(luò)輸入大小固定為416×416,初始化方法采用He 等[22]所提出的MSRA Initialization,實(shí)驗(yàn)訓(xùn)練迭代次數(shù)為200 輪,參數(shù)更新方法采用Adam,初始學(xué)習(xí)率為0.001,L2 權(quán)重衰減設(shè)置為0.0005.
本文提出的Hierarchical Bilinear-YOLOv3 網(wǎng)絡(luò)模型與原YOLOv3 模型檢測結(jié)果對比如圖5所示.
圖5 兩種模型檢測結(jié)果對比圖
當(dāng)IOU=0.5 時(shí),兩種模型在測試集上的AP (Average Precision)結(jié)果如圖6所示.
圖6 兩種模型AP 測試結(jié)果
上述實(shí)驗(yàn)結(jié)果表明,通過加入改進(jìn)后的Hierarchical Bilinear 網(wǎng)絡(luò)增強(qiáng)特征圖的層間交互,能夠提升原網(wǎng)絡(luò)的細(xì)粒度提取能力和小目標(biāo)檢測率,從而提高行為檢測精度.本文使用平均準(zhǔn)確率均值(mean Average Precision,mAP)和每秒幀率(Frame Per Second,FPS)這兩個(gè)指標(biāo)來評價(jià)模型的檢測效果,并選擇當(dāng)前行為檢測領(lǐng)域比較有代表性的模型進(jìn)行對比,實(shí)驗(yàn)結(jié)果如表1所示.實(shí)驗(yàn)結(jié)果表明,本文提出的Hierarchical Bilinear-YOLOv3網(wǎng)絡(luò)模型相比原YOLOv3 網(wǎng)絡(luò)、文獻(xiàn)[23]、文獻(xiàn)[24]在行為檢測上的性能指標(biāo)均有所提升,改進(jìn)后的模型雖然在mAP 指標(biāo)上沒有文獻(xiàn)[12]、文獻(xiàn)[25]高,但檢測精度已經(jīng)非常接近,同時(shí)FPS 性能指標(biāo)上大幅度優(yōu)于這些算法,能夠?qū)崿F(xiàn)實(shí)時(shí)行為檢測.
表1 各種行為檢測模型實(shí)驗(yàn)結(jié)果對比數(shù)據(jù)
本文針對YOLOv3 網(wǎng)絡(luò)在人體行為檢測中精度低等問題,提出一種基于Hierarchical Bilinear 模型的YOLOv3 改進(jìn)算法.該模型在YOLOv3 原特征金字塔分類網(wǎng)絡(luò)上選取一些特征輸出層作為改進(jìn)后Hierarchical Bilinear 網(wǎng)絡(luò)的輸入,增強(qiáng)層間局部信息交互,進(jìn)行細(xì)粒度分類,然后與YOLOv3 網(wǎng)絡(luò)分類結(jié)果進(jìn)行融合.實(shí)驗(yàn)結(jié)果表明改進(jìn)模型的參數(shù)量僅增加了0.4%,相比于原YOLOv3 網(wǎng)絡(luò)檢測精度提升了1.5%mAP,在保證檢測效率的前提下提高了檢測精度.