王雪嬌,智 敏
(內(nèi)蒙古師范大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,內(nèi)蒙古 呼和浩特 010020)
人體動(dòng)作識(shí)別是計(jì)算機(jī)視覺(jué)領(lǐng)域中一個(gè)具有巨大潛力的研究方向,其在監(jiān)控系統(tǒng)、智能家居和虛擬現(xiàn)實(shí)[1 - 4]等領(lǐng)域均具有重要的研究?jī)r(jià)值。與簡(jiǎn)單的圖像識(shí)別不同,人體動(dòng)作識(shí)別會(huì)受到許多因素的影響,例如背景雜亂、影像采集設(shè)備各異、人體動(dòng)作數(shù)據(jù)庫(kù)類別不足等。目前國(guó)內(nèi)外常用的人體動(dòng)作識(shí)別方法主要有傳統(tǒng)機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法。
在傳統(tǒng)人體動(dòng)作識(shí)別方法中,廣泛使用手動(dòng)設(shè)計(jì)特征進(jìn)行識(shí)別,例如HOG/HOF等[5]。文獻(xiàn)[6]設(shè)計(jì)了一種新的動(dòng)作識(shí)別方法,將得到的行為特征送入向量機(jī)中以訓(xùn)練模型。但是,傳統(tǒng)方法在真實(shí)場(chǎng)景的數(shù)據(jù)集上的識(shí)別準(zhǔn)確率不太高,也得不到很好的識(shí)別結(jié)果[7]。近些年,深度學(xué)習(xí)受到了人體動(dòng)作識(shí)別領(lǐng)域的關(guān)注。卷積神經(jīng)網(wǎng)絡(luò)(CNN)是深度學(xué)習(xí)中常用的模型,通過(guò)對(duì)輸入圖像進(jìn)行卷積池化等步驟,實(shí)現(xiàn)對(duì)圖像的識(shí)別。2012年的Alex Net網(wǎng)絡(luò)[8]將CNN結(jié)構(gòu)變得更深。2015年提出的Inception v2網(wǎng)絡(luò)[9]則是將CNN變得更寬。文獻(xiàn)[10]將視頻數(shù)據(jù)的時(shí)間和圖像信息都送入CNN中,但雙流網(wǎng)絡(luò)的效果并不理想,而且消耗了大量的內(nèi)存和訓(xùn)練時(shí)間。文獻(xiàn)[11]為了提高微小動(dòng)作的識(shí)別準(zhǔn)確率提出了一種新的投影策略,將圖像投影到多個(gè)笛卡爾平面,以保留更多行為信息。文獻(xiàn)[12]將CNN的卷積核變成3D,在卷積核中加入了時(shí)間維度,提高了準(zhǔn)確率,同時(shí)也增加了訓(xùn)練難度。文獻(xiàn)[13]將CNN與長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)相結(jié)合來(lái)提高識(shí)別的準(zhǔn)確率。文獻(xiàn)[14]提出了可變形的卷積神經(jīng)網(wǎng)絡(luò)DCN(Deformable Convolutional Networks),其與普通卷積網(wǎng)絡(luò)相比有著更加靈活的位置形變能力。文獻(xiàn)[15]將可變形部件模型DPM(Deformable Part Model)與CNN相結(jié)合,提高了行人檢測(cè)的準(zhǔn)確率。文獻(xiàn)[16]為了學(xué)習(xí)圖像中的不穩(wěn)定卷積特征而對(duì)池化層進(jìn)行了改進(jìn),實(shí)驗(yàn)驗(yàn)證結(jié)果較好。雖然卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別時(shí)提高了準(zhǔn)確率,但是在人體動(dòng)作識(shí)別過(guò)程中,容易丟失前期特征信息。
綜上所述,本文在可變形卷積神經(jīng)網(wǎng)絡(luò)(DCN)的基礎(chǔ)上融合改進(jìn)的DPM來(lái)進(jìn)行人體動(dòng)作識(shí)別,將傳統(tǒng)機(jī)器學(xué)習(xí)與深度學(xué)習(xí)相結(jié)合,提高人體動(dòng)作識(shí)別的準(zhǔn)確率和檢測(cè)速度。
可變形卷積神經(jīng)網(wǎng)絡(luò)DCN提出通過(guò)可變形卷積和可變形感興趣區(qū)域池化來(lái)提高卷積神經(jīng)網(wǎng)絡(luò)對(duì)幾何形變的適應(yīng)能力,這2種方法都是基于在卷積池化過(guò)程中對(duì)卷積核采樣位置信息做更進(jìn)一步不規(guī)則偏移的想法,偏移量均通過(guò)增加新模塊得到,不需要額外的監(jiān)督??勺冃尉矸e即在普通卷積的采樣位置添加一個(gè)偏移量。可變形池化是為候選感興趣區(qū)域的每個(gè)bin位置添加一個(gè)偏移量,偏移量則是通過(guò)附加的一層全連接得到。新增模塊后的可變形卷積神經(jīng)網(wǎng)絡(luò)仍舊可以使用標(biāo)準(zhǔn)反向傳播算法進(jìn)行訓(xùn)練。具體結(jié)構(gòu)說(shuō)明見4.1節(jié)。
普通卷積與可變形卷積的對(duì)比如圖1所示。其中,卷積核大小均為3×3。圖1a表示普通卷積,3×3卷積核為形似于矩形的9個(gè)點(diǎn);圖1b和圖1c表示可變形卷積,在圖1a的基礎(chǔ)上加一個(gè)偏移量(箭頭),圖1b表示在可變形卷積中增加了偏移量(箭頭指向點(diǎn));圖1c展示了可變形卷積可以翻轉(zhuǎn)角度的特殊情況。
Figure 1 Traditional convolution and deformable convolution圖1 普通卷積與可變形卷積的對(duì)比圖
可變形部件模型(DPM)是一種基于人體部件的識(shí)別檢測(cè)系統(tǒng)。識(shí)別人體動(dòng)作的模型DPM由根濾波器、部件濾波器和濾波器之間的相對(duì)位置構(gòu)成。一般情況下根濾波器的分辨率較低,部件濾波器的分辨率較高。假設(shè)每個(gè)目標(biāo)都指定了模型中每個(gè)濾波器在特征金字塔中的位置, 用z=(t0,…,tm)表示DPM識(shí)別模型,其中,m為濾波器數(shù)量,可自行設(shè)定,ti=(xi,yi,li)表示第i個(gè)濾波器所在位置的坐標(biāo)(xi,yi)和層數(shù)li。
總測(cè)試窗口的得分如式(1)所示:
(1)
其中
(dxi,dyi)=(xi,yi)-(2(x0,y0)+vi)
(2)
傳統(tǒng)的卷積操作使用的卷積核均為固定的形狀,一般為矩形,可變形卷積為每個(gè)卷積采樣點(diǎn)增加了一個(gè)偏移量使卷積窗口根據(jù)感興趣區(qū)域進(jìn)行卷積,如圖2所示。標(biāo)準(zhǔn)卷積在識(shí)別人體時(shí)窗口形狀為規(guī)則矩形,而可變形卷積網(wǎng)絡(luò)的窗口形狀則可以根據(jù)物體實(shí)例進(jìn)行變化。以卷積核為3×3大小的二維卷積舉例,M表示有效感受野:
M={(-1,-1),(-1,0),…,(0,-1),(1,1)}
(3)
在輸入特征圖x上采樣后,對(duì)每個(gè)采樣點(diǎn)加上偏移量再與權(quán)重w相乘并求和。對(duì)于輸出特征圖上的位置P0,可變形卷積表示為:
(4)
其中,偏移量參數(shù){ΔPn|n=1,…,N},N=|M|,Pn表示M中任一位置,ΔPn只是對(duì)輸入層像素有一定的影響,并不影響權(quán)重w,所以w和ΔPn都需要進(jìn)行訓(xùn)練。
Figure 2 Example comparison of normal convolution and deformable convolution圖2 普通卷積和可變形卷積的實(shí)例對(duì)比
圖3在普通卷積的基礎(chǔ)上增加了一層卷積層,得到偏移量offset,也就是式(4)中的△Pn,產(chǎn)生的offset有橫縱坐標(biāo)2個(gè)方向。
Figure 3 Structure of deformable convolution圖3 可變形卷積結(jié)構(gòu)示意圖
圖3先通過(guò)一個(gè)增加的卷積層(conv)得到可變形卷積的偏移量offset,然后偏移量在卷積核中進(jìn)行位移,完成可變形的卷積。其中x為輸入特征圖,y為輸出特征圖,感興趣池化將特征圖劃分為k×k個(gè)bins(k是自由設(shè)定的參數(shù),本文設(shè)為7),bin中第i行,第j列(0≤i,j≤k)的可變形感興趣池化表示為:
(5)
其中,Q0是bin中左上角的點(diǎn),Qn表示bin中的任一位置,nij表示bin中的像素?cái)?shù)量,ΔQij為偏移量??勺冃纬鼗W(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
Figure 4 Structure of deformable pool of interest圖4 可變形感興趣池化的結(jié)構(gòu)示意圖
特征圖先經(jīng)普通的感興趣區(qū)域池化得到候選感興趣區(qū)域,然后感興趣區(qū)域經(jīng)過(guò)新加的全連接層(fc)得到感興趣區(qū)域的偏移量。
可變形卷積網(wǎng)絡(luò)與普通卷積網(wǎng)絡(luò)的輸入輸出相同,只是在訓(xùn)練中,新加的用于學(xué)習(xí)偏移量的卷積層和全連接層的權(quán)重被初始化為零。
通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),隨著部件濾波器的增加,雖然檢測(cè)準(zhǔn)確率提高了,但會(huì)導(dǎo)致運(yùn)行速度變慢。本文為了提高實(shí)驗(yàn)效果,需要尋求部件濾波器個(gè)數(shù)與運(yùn)行速度之間的平衡點(diǎn)。如圖5所示,傳統(tǒng)的DPM部件模型數(shù)為5個(gè)時(shí),在自搜集的人體動(dòng)作數(shù)據(jù)集上的準(zhǔn)確率為83.75%,當(dāng)部件濾波器數(shù)增加到8個(gè)時(shí),準(zhǔn)確率達(dá)到了95.67%,人體動(dòng)作識(shí)別的精度提高了11%以上。但是,濾波器數(shù)達(dá)到8個(gè)以上時(shí),準(zhǔn)確率提升不再明顯,也給實(shí)驗(yàn)帶來(lái)了一定的計(jì)算難度。所以本文將DPM中的部件模型增加為8個(gè)[17]。
Figure 5 Relationship between component filter and experimental accuracy圖5 部件濾波器和實(shí)驗(yàn)精度之間的關(guān)系
DPM在人體動(dòng)作識(shí)別中常把人體分為5部分,分別為頭、左上身、右上身、腿和腳。本文增加3個(gè)模型后變?yōu)轭^部、左肩部、右肩部、左腹部、右腹部、腿部和左右腳。改進(jìn)的點(diǎn)是將原先的左上身進(jìn)一步分為左肩和左腹;右上身分為右肩和右腹;腳部分為左右腳。細(xì)分之后的模型可以更準(zhǔn)確地識(shí)別比較類似的動(dòng)作,比如跑步和踢足球等。
為了解決DPM人為設(shè)計(jì)特征工作量過(guò)大的問(wèn)題,本文在DPM模型中融入分支定界BB(Branch and Bound)算法來(lái)進(jìn)行人體定位。分支表示將整個(gè)圖像劃分為若干個(gè)小區(qū)域,分別計(jì)算出每個(gè)分支在小區(qū)域內(nèi)的得分值;定界是為每個(gè)區(qū)域設(shè)定最優(yōu)解函數(shù)界限,并自動(dòng)找出該區(qū)域內(nèi)的最大值。BB算法得到的區(qū)域最大值可以作為識(shí)別人體動(dòng)作的感興趣區(qū)域。
傳統(tǒng)的DPM識(shí)別人體動(dòng)作大約需要的時(shí)間為11 s。融合BB算法并將濾波器個(gè)數(shù)增加為8個(gè)后,DPM檢測(cè)速度提高了3倍左右,大概只需要3.8 s就可以得到結(jié)果。從實(shí)驗(yàn)數(shù)據(jù)看出,傳統(tǒng)DPM需要的時(shí)間較長(zhǎng),結(jié)合BB算法后,能快速得到圖像中的函數(shù)最大值,同時(shí)去除了大部分不可能的假設(shè)目標(biāo)動(dòng)作,從而有效地提高了檢測(cè)速度。
改進(jìn)的DPM識(shí)別人體動(dòng)作的步驟如下所示:
步驟1提取特征。DPM采用方向梯度直方圖(HOG)來(lái)進(jìn)行特征提取。
步驟2DPM建模。式(1)為DPM的語(yǔ)義模型,而建模就是通過(guò)式(1)的語(yǔ)義模型來(lái)建立結(jié)構(gòu)模型。DPM結(jié)構(gòu)模型由一個(gè)根濾波器和幾個(gè)部件濾波器組成。本文經(jīng)過(guò)實(shí)驗(yàn)證明,將部件濾波器由5個(gè)增加為8個(gè)可以有效提高人體動(dòng)作的檢測(cè)準(zhǔn)確率。
步驟3DPM模型訓(xùn)練。首先初始化根濾波器。在BB算法確定的感興趣區(qū)域中用根模型掃描,將分?jǐn)?shù)最高的確定為根濾波器的位置。然后初始化部件濾波器。根據(jù)部件濾波器與根濾波器的位置關(guān)系確定部件濾波器的位置,在確定了一個(gè)部件后再繼續(xù)尋找下一個(gè)部件的位置,直到確定了所有部件濾波器的位置。最后不斷地更新DPM,直到準(zhǔn)確率提升小于0.01。
步驟4利用訓(xùn)練好的模型來(lái)對(duì)數(shù)據(jù)集中的動(dòng)作進(jìn)行識(shí)別和分類。
本文提出可變形卷積神經(jīng)網(wǎng)絡(luò)和DPM模型的特征圖實(shí)現(xiàn)對(duì)人體動(dòng)作的分類。卷積神經(jīng)網(wǎng)絡(luò)雖然檢測(cè)速度與精度都優(yōu)于傳統(tǒng)機(jī)器方法,但存在著低層特征提取準(zhǔn)確率不高的問(wèn)題。將改進(jìn)的DPM與可變形卷積網(wǎng)絡(luò)提取的特征圖在可變形池化層之前進(jìn)行融合,可以有效地提高卷積神經(jīng)網(wǎng)絡(luò)低層特征提取的精度,從而提高全局網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率。本文系統(tǒng)的結(jié)構(gòu)如圖6所示,將預(yù)處理后的數(shù)據(jù)集分別輸入到可變形卷積網(wǎng)絡(luò)和改進(jìn)的DPM模型中,可變形卷積網(wǎng)絡(luò)得到候選感興趣區(qū)域后融合DPM得到特征圖,將融合后的特征圖作為可變形感興趣池化的輸入,最后利用全連接層來(lái)判斷動(dòng)作的類別。
本文識(shí)別系統(tǒng)共有4個(gè)步驟:
步驟1利用改進(jìn)的DPM獲取人體部件。將數(shù)據(jù)集預(yù)處理后輸入到網(wǎng)絡(luò)中,DPM依次進(jìn)行特征提取、建模和訓(xùn)練模型的步驟。DPM進(jìn)行人體動(dòng)作檢測(cè)時(shí)應(yīng)用BB算法可以在全局圖上快速得到最優(yōu)解,從而使DPM模型可以更快獲得感興趣區(qū)域。
Figure 6 Flowchart of the recognition system in this paper圖6 本文識(shí)別系統(tǒng)流程圖
步驟2可變形卷積網(wǎng)絡(luò)提取特征。與可變形部件模型選用同樣的數(shù)據(jù)集作為輸入。先經(jīng)過(guò)3個(gè)卷積塊(包含普通卷積層和池化層)獲得低層特征;然后將特征圖通過(guò)2層可變形卷積塊(包含普通卷積層、可變形卷積層和池化層)后輸入?yún)^(qū)域建議網(wǎng)絡(luò)RPN(Region Proposal Network)來(lái)獲得候選感興趣區(qū)域R。用反向傳播算法對(duì)參數(shù)進(jìn)行優(yōu)化,同時(shí)也能防止過(guò)擬合。
步驟4輸入數(shù)據(jù)集中的訓(xùn)練集來(lái)對(duì)模型進(jìn)行訓(xùn)練,之后分別將測(cè)試集和驗(yàn)證集數(shù)據(jù)輸入訓(xùn)練好的模型得出實(shí)驗(yàn)結(jié)果。
本文識(shí)別系統(tǒng)使用的硬件有NVIDIA GPU,操作系統(tǒng)為Windows 10。在PyCharm中結(jié)合TensorFlow來(lái)保證實(shí)驗(yàn)的運(yùn)行。
本文選用了人體動(dòng)作識(shí)別中主流的2個(gè)數(shù)據(jù)集:MPII數(shù)據(jù)集和MSCOCO Person Keypoints 2017數(shù)據(jù)集(以下簡(jiǎn)稱MSCOCO數(shù)據(jù)集)。這2個(gè)數(shù)據(jù)集都是在不同的場(chǎng)景下收集的圖像,場(chǎng)景包含許多復(fù)雜情況下的人體動(dòng)作,比如擁擠、尺度變化、遮擋和旋轉(zhuǎn)等,把MPII數(shù)據(jù)集中含有注釋的幀分成多種動(dòng)作類別,如跑步、滑雪和踢足球等,并用未加注釋的幀作為測(cè)試集。對(duì)MSCOCO數(shù)據(jù)集也采用類似的預(yù)處理方法,MSCOCO數(shù)據(jù)集常見的動(dòng)作類別有演講、打網(wǎng)球、沖浪和做飯等在復(fù)雜場(chǎng)景下的動(dòng)作。
網(wǎng)絡(luò)的前向傳播階段,先用訓(xùn)練集作為樣本輸入設(shè)計(jì)好的模型中,圖像從輸入層逐層采樣到輸出層。網(wǎng)絡(luò)的反向傳播階段,通過(guò)計(jì)算實(shí)際輸出圖像與原始圖像的誤差來(lái)更新權(quán)重,重復(fù)該過(guò)程直至誤差小于預(yù)先設(shè)定的值。本文實(shí)驗(yàn)的損失函數(shù)為交叉熵函數(shù)。
實(shí)驗(yàn)準(zhǔn)確率定義為:
(6)
其中,t為準(zhǔn)確率,數(shù)據(jù)集中目標(biāo)的動(dòng)作類別為Ci,S為數(shù)據(jù)集中的場(chǎng)景數(shù)。
表1和表2分別是在MPII數(shù)據(jù)集和MSCOCO Person Keypoints 2017數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。由于將傳統(tǒng)方法與CNN結(jié)合的識(shí)別系統(tǒng)較少,所以對(duì)比實(shí)驗(yàn)主要選用了基于卷積神經(jīng)網(wǎng)絡(luò)的動(dòng)作識(shí)別中表現(xiàn)較好的識(shí)別系統(tǒng)。
Table 1 Comparison of accuracy on MPII dataset表1 MPII數(shù)據(jù)集上準(zhǔn)確率對(duì)比
Table 2 Comparison of accuracy on MSCOCO dataset表2 MSCOCO 數(shù)據(jù)集上準(zhǔn)確率對(duì)比
文獻(xiàn)[18,19]的識(shí)別系統(tǒng)都是在普通卷積上檢測(cè)出人體后再識(shí)別動(dòng)作,文獻(xiàn)[19]的識(shí)別系統(tǒng)準(zhǔn)確率提高是因?yàn)閷NN網(wǎng)絡(luò)變得更深。文獻(xiàn)[20]的識(shí)別系統(tǒng)則是利用普通卷積網(wǎng)絡(luò)將人體關(guān)節(jié)點(diǎn)識(shí)別出后再分析人體的位置。本文也采用文獻(xiàn)[18]的方式,但是將可變形卷積與改進(jìn)的DPM結(jié)合來(lái)識(shí)別人體動(dòng)作,從表1數(shù)據(jù)中看出本文識(shí)別系統(tǒng)準(zhǔn)確率更高。此外,由于本文結(jié)合了BB算法,所以在運(yùn)算速度上也有了較大的提升。相同實(shí)驗(yàn)條件下普通識(shí)別系統(tǒng)處理單幅圖像需要1.43 s,而本文識(shí)別系統(tǒng)僅需0.2 s左右。
在MPII數(shù)據(jù)集上,選取了部分動(dòng)作類別的混淆矩陣,如圖7所示。由圖7可以看出,本文識(shí)別系統(tǒng)對(duì)有明顯特征的動(dòng)作識(shí)別比較容易,比如跑步、踢足球等,但對(duì)復(fù)雜動(dòng)作的識(shí)別稍微不足,比如瑜伽和跳舞就比跑步和踢足球更容易混淆,因?yàn)殍べ?dòng)作種類繁多并且和跳舞有很多相似之處。
Figure 7 Confusion matrix on MPII dataset圖7 MPII數(shù)據(jù)集混淆矩陣
由表2可以看出,本文識(shí)別系統(tǒng)在復(fù)雜場(chǎng)景下也有較好的實(shí)驗(yàn)效果,比全卷積網(wǎng)絡(luò)[22]的準(zhǔn)確率更高;文獻(xiàn)[21]的識(shí)別系統(tǒng)雖然增加了人體上的追蹤點(diǎn),但效果卻不太理想;多級(jí)堆疊沙漏網(wǎng)絡(luò)[23]可以提取出更深層的特征,今后本文可以嘗試與文獻(xiàn)[23]的識(shí)別系統(tǒng)結(jié)合來(lái)獲得深層信息。
圖8為MSCOCO數(shù)據(jù)集中部分動(dòng)作類別的混淆矩陣。MSCOCO中多為復(fù)雜的動(dòng)作,所以準(zhǔn)確率比MPII數(shù)據(jù)集上的準(zhǔn)確率低。如圖8所示,自拍和打電話一般都是相似的手持移動(dòng)設(shè)備動(dòng)作,比較容易混淆;吃飯和喝水一般為坐著的動(dòng)作,也容易發(fā)生誤檢。但是,姿勢(shì)不同的動(dòng)作,例如自拍和做飯,本文識(shí)別系統(tǒng)的誤檢率可以低于1%甚至達(dá)到0。
Figure 8 Confusion matrix on MSCOCO dataset圖8 MSCOCO數(shù)據(jù)集混淆矩陣
本文為了提高復(fù)雜場(chǎng)景下人體動(dòng)作識(shí)別的準(zhǔn)確率,提出了改進(jìn)的DPM和可變形卷積網(wǎng)絡(luò)結(jié)合的識(shí)別系統(tǒng)。融入了BB算法和增加了部件濾波器的DPM對(duì)人體動(dòng)作識(shí)別的準(zhǔn)確率較高,但計(jì)算量太大,使得檢測(cè)速度變慢,而可變形卷積網(wǎng)絡(luò)模型在低層特征提取時(shí)準(zhǔn)確率較低,所以本文在DCN的基礎(chǔ)上結(jié)合了傳統(tǒng)識(shí)別算法DPM,提高了CNN特征提取準(zhǔn)確率,也提高了人體動(dòng)作識(shí)別的速度。但是,本文提出的識(shí)別系統(tǒng)在實(shí)際應(yīng)用中還存在遮擋識(shí)別準(zhǔn)確率低(如滑雪常被樹木遮擋動(dòng)作)和復(fù)雜動(dòng)作的漏檢誤檢等問(wèn)題,今后將在可變形卷積網(wǎng)絡(luò)中融入沙漏網(wǎng)絡(luò)模型,利用堆疊沙漏網(wǎng)絡(luò)模型中復(fù)用全身關(guān)節(jié)來(lái)提高單個(gè)關(guān)節(jié)的識(shí)別準(zhǔn)確率,進(jìn)一步提升人體動(dòng)作識(shí)別的準(zhǔn)確率。