黑龍江科技大學(xué)電子與信息工程學(xué)院 王赫 于梁 楊慶江 郭陽
隨人工智能產(chǎn)品的體驗(yàn)式增強(qiáng),手勢姿態(tài)估計(jì)作為一種經(jīng)典的計(jì)算機(jī)視覺任務(wù),具有廣泛的應(yīng)用場景。針對目前應(yīng)用在移動(dòng)端智能產(chǎn)品都需輕量化的網(wǎng)絡(luò)模型,本文基于CPM(Convolutional Pose Machine)多階段人體姿態(tài)估計(jì)網(wǎng)絡(luò),設(shè)計(jì)出一種輕量級的手勢姿態(tài)估計(jì)模型?;赗HD開源數(shù)據(jù)集進(jìn)行對比實(shí)驗(yàn),對比分析了輕量級的CPM手勢估計(jì)模型在保證精度的同時(shí),可以有效的減小模型參數(shù)量,為研發(fā)實(shí)時(shí)移動(dòng)端手勢姿態(tài)估計(jì)提供了基礎(chǔ)。
姿態(tài)估計(jì),就是將關(guān)節(jié)點(diǎn)聯(lián)系起來判斷人體部位的狀態(tài)和行為[1]。姿態(tài)估計(jì)包括自頂向下[2]與自底向上[3]兩種方法。其中,手勢姿態(tài)作為一種重要的人體姿態(tài)部分,是一種根據(jù)精確定位出手部關(guān)鍵點(diǎn)上之間的位置關(guān)系,進(jìn)而去推理出相應(yīng)的姿態(tài)估計(jì)方法。根據(jù)研究方法可將手勢姿態(tài)估計(jì)分為生成法(Generative Methods)、判別法(Discriminative Methods)和混合法(Discriminative Methods and Generative Methods)三種方法。生成法是通過對輸入的圖像與預(yù)先定義好的手模型進(jìn)行匹配。判別法是一種基于外貌直接對輸入的深度圖像進(jìn)行手關(guān)節(jié)的定位的方法。隨機(jī)森林就是較為傳統(tǒng)的判別方法,其可以快速準(zhǔn)確處理大量的輸入變數(shù),但對于手深度圖存在的自我遮擋、分辨率低等缺點(diǎn),使其結(jié)果存在大量的誤差。利用卷積神經(jīng)網(wǎng)絡(luò)對手勢姿態(tài)估計(jì)的處理方式正不斷克服這些問題。Tompson等人初次使用CNN對手部的關(guān)鍵點(diǎn)進(jìn)行定位且估計(jì)每個(gè)關(guān)節(jié)點(diǎn)的2D熱土進(jìn)行估計(jì)。Ge等人通過3D CNN直接將2D輸入深度圖轉(zhuǎn)換為估計(jì)的3D坐標(biāo)。將生成法和判別法結(jié)合的方法的混合法,是通過先使用判別法,然后通過生成的方法對結(jié)果進(jìn)行校正。Ye等人使用混合方法,通過多階段和分層的方式進(jìn)行手勢估計(jì),具有較好的魯棒性。
我們處于大數(shù)據(jù)普及的時(shí)代,人工智能等電子產(chǎn)品相繼研發(fā)出現(xiàn),取得了顯著的發(fā)展。隨深度學(xué)習(xí)的發(fā)展,人機(jī)交互領(lǐng)域中人體姿態(tài)識別、手勢姿態(tài)估計(jì)等較為先進(jìn)且新穎的方式,具有較為廣泛的應(yīng)用前景。其中,基于機(jī)器視覺的手勢估計(jì)作為人機(jī)交互的核心技術(shù)之一,取得了較好的進(jìn)展。綜上而言,對手勢進(jìn)行姿態(tài)估計(jì)是一個(gè)涉及到自然語言處理、模式識別與計(jì)算機(jī)視覺等多個(gè)領(lǐng)域交叉的任務(wù)。對于手勢進(jìn)行有效估計(jì)識別促進(jìn)了機(jī)器學(xué)習(xí)等領(lǐng)域技術(shù)的進(jìn)步,為全球化的實(shí)現(xiàn)加快了進(jìn)程,因此具有一定的研究意義。
手勢姿態(tài)估計(jì)隨著計(jì)算機(jī)視覺領(lǐng)域的發(fā)展,其常被應(yīng)用于人機(jī)交互、視頻監(jiān)控等多種場景中。通常卷積神經(jīng)網(wǎng)絡(luò)存在較大的參數(shù)量和計(jì)算量,不能較好的應(yīng)用于移動(dòng)端或嵌入式設(shè)備中。為更好的實(shí)現(xiàn)在移動(dòng)端或嵌入式設(shè)備上進(jìn)行實(shí)時(shí)手勢姿態(tài)估計(jì),需對網(wǎng)絡(luò)模型進(jìn)行輕量化處理。本文基于人體姿態(tài)估計(jì)中的多階段卷積姿態(tài)機(jī)CPM(Convolutional Pose Machine)網(wǎng)絡(luò),進(jìn)行手勢姿態(tài)估計(jì)網(wǎng)絡(luò)的設(shè)計(jì),同時(shí)設(shè)計(jì)了輕量化的網(wǎng)絡(luò),在保證精度穩(wěn)定的同時(shí),極大程度上降低了模型的參數(shù)量。
Convolutional Pose Machines(CPM)算法是一種基于序列化的全卷積網(wǎng)絡(luò)結(jié)構(gòu),學(xué)習(xí)空間信息的多階段姿態(tài)估計(jì)網(wǎng)絡(luò)。其是將卷積網(wǎng)絡(luò)整合進(jìn)Pose Machines,以學(xué)習(xí)圖像特征和圖像相關(guān)的空間模型;由全卷積網(wǎng)絡(luò)組成的序列化結(jié)構(gòu),卷積網(wǎng)絡(luò)直接在前一階段的置信圖(Belief Maps)操作,輸出更為精細(xì)化的關(guān)節(jié)點(diǎn)位置估計(jì)結(jié)果,以處理結(jié)構(gòu)化的預(yù)測任務(wù);利用中間監(jiān)督損失解決梯度消失問題的一種端到端學(xué)習(xí)網(wǎng)絡(luò)。CPM算法是一種由多階段的卷積神經(jīng)網(wǎng)絡(luò)組成的多層的網(wǎng)絡(luò)結(jié)構(gòu)。其通過各個(gè)階段的卷積神經(jīng)網(wǎng)絡(luò)來生成置信圖,進(jìn)而預(yù)測各階段的每個(gè)關(guān)鍵點(diǎn)的位置。其中,gt表示各階段卷積神經(jīng)網(wǎng)絡(luò),bt表示置信圖,使用t表示多層次順序結(jié)構(gòu)中的每個(gè)階段,且當(dāng)t>1成為強(qiáng)化階段。
對于初級階段,利用特征提取網(wǎng)絡(luò)對圖像提取特征,通過g1預(yù)測每個(gè)位置的位置置信度。對于強(qiáng)化階段,CPM網(wǎng)絡(luò)使用特征提取網(wǎng)絡(luò)對原圖像重新提取特征,與其哪一階段的置信圖進(jìn)行映射融合。通過每個(gè)階段最后得到的階段損失函數(shù)值,對CPM算法進(jìn)行局部監(jiān)督。
同時(shí),CPM算法由于特征提取網(wǎng)絡(luò)并未統(tǒng)一,存在每次提取原圖像特征需消耗大量算力的缺點(diǎn)。且CPM在強(qiáng)化階段,需進(jìn)行前向映射特征,存在消耗較大算力且較為復(fù)雜等問題。
卷積姿態(tài)機(jī)CPM(Convolutional Pose Machine)姿態(tài)估計(jì)網(wǎng)絡(luò)常常被用于人體姿態(tài)檢測,本文基于CPM多層次順序姿態(tài)估計(jì)網(wǎng)絡(luò)思路,將設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu),將其應(yīng)用于手勢姿態(tài)估計(jì)中。針對CPM算法提取特征過程中的計(jì)算量巨大,本文將部分標(biāo)準(zhǔn)卷積層結(jié)構(gòu)更改為深度可分離卷積層,并將各階段所得損失進(jìn)行融合,得到輕量級CPM手勢姿態(tài)估計(jì)網(wǎng)絡(luò)。為手勢估計(jì)在移動(dòng)端或嵌入式設(shè)備上實(shí)時(shí)進(jìn)行估計(jì)檢測提供了基礎(chǔ)。
由卷積結(jié)構(gòu)與姿態(tài)機(jī)結(jié)構(gòu)組合的結(jié)構(gòu)稱為卷積姿態(tài)機(jī),該結(jié)構(gòu)可以從訓(xùn)練數(shù)據(jù)集中自動(dòng)學(xué)習(xí)特征,且對關(guān)鍵點(diǎn)之間的距離結(jié)構(gòu)關(guān)系進(jìn)行推理學(xué)習(xí),可將其應(yīng)用于本文的手勢姿態(tài)估計(jì)中的關(guān)鍵點(diǎn)的定位。
遷移的CPM手部姿態(tài)估計(jì)網(wǎng)絡(luò)在對圖像進(jìn)行關(guān)鍵節(jié)點(diǎn)回歸坐標(biāo)位置信息的過程為:利用表示各個(gè)關(guān)節(jié)點(diǎn)之間的空間約束信息的響應(yīng)熱力圖Heatmap和特征圖作為數(shù)據(jù)在網(wǎng)絡(luò)中進(jìn)行傳遞;使用多階段的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行監(jiān)督訓(xùn)練,處理關(guān)鍵節(jié)點(diǎn)的響應(yīng)信息。
從CPM手勢姿態(tài)估計(jì)網(wǎng)絡(luò)的結(jié)構(gòu)圖中可以看出網(wǎng)絡(luò)在進(jìn)行手部姿態(tài)估計(jì)的整體流程。其中,CPM姿態(tài)估計(jì)網(wǎng)絡(luò)的卷積部分包含卷積和最大池化層。基于VGGNet網(wǎng)絡(luò)修改而成的網(wǎng)絡(luò)用于主干特征提取網(wǎng)絡(luò)特征。圖中CONVx(x=1,2,3)由一系列的卷積層與池化層堆疊組成。
CPM姿態(tài)估計(jì)網(wǎng)絡(luò)是一種多階段預(yù)測網(wǎng)絡(luò),基于手勢關(guān)鍵點(diǎn)之間的拓?fù)潢P(guān)系,使用較低階段就可滿足手勢姿態(tài)估計(jì)的精度要求。因此,本文使用的CPM手勢姿態(tài)估計(jì)網(wǎng)絡(luò)總共包含三個(gè)階段。使用各個(gè)階段的熱力圖來表征關(guān)鍵節(jié)點(diǎn)的位置信息,對應(yīng)較小感受野的階段位于網(wǎng)絡(luò)的前階段,因此得到的預(yù)測結(jié)果相對誤差較大。而位于后面強(qiáng)化層階段對應(yīng)較大的感受野,且能夠得到前面階段上下文信息及圖像特征,因此得到相對誤差較小的預(yù)測結(jié)果。該階段型姿態(tài)估計(jì)網(wǎng)絡(luò)可以對人手姿態(tài)進(jìn)行一步一步更為精確的推理,最終對得到的損失值進(jìn)行融合,得出最終的預(yù)測關(guān)節(jié)點(diǎn)位置信息。
鑒于移動(dòng)端或嵌入式進(jìn)行姿態(tài)估計(jì)任務(wù),需要較為輕量化模型,本文為降低模型整體的參數(shù)量,對三階段的CPM手勢姿態(tài)估計(jì)網(wǎng)絡(luò)中的卷積核替換成1×1和3×3大小,可以較為精確的估計(jì)關(guān)鍵點(diǎn)位置和降低模型參數(shù)量,得到較為輕量化的手勢姿態(tài)估計(jì)網(wǎng)絡(luò)。
深度可分離卷積是將普通卷積分解為深度卷積與1×1逐點(diǎn)卷積兩部分操作實(shí)現(xiàn)的一種因式化卷積。第一步,深度卷積操作利用單個(gè)卷積和對輸入的通道進(jìn)行輕量化濾波操作,即實(shí)現(xiàn)卷積核與特征圖逐個(gè)進(jìn)行的卷積操作。第二步,利用前一個(gè)得到的特征圖的基礎(chǔ)上使用1×1卷積核進(jìn)行逐點(diǎn)卷積操作,對輸出的特征圖進(jìn)行線性組合。相比于普通卷積層一步操作,深度可分離卷積利用深度卷積和逐點(diǎn)卷積兩步,對單個(gè)通道進(jìn)行卷積再將其結(jié)合??梢詷O大程度上減小模型的參數(shù)量和計(jì)算量。
其中,深度可分離卷積的計(jì)算量和參數(shù)量與標(biāo)準(zhǔn)卷積層進(jìn)行對比如下:
標(biāo)準(zhǔn)卷積的計(jì)算量:
標(biāo)準(zhǔn)卷積的參數(shù)量:
深度卷積的計(jì)算量:
逐點(diǎn)卷積的計(jì)算量:
深度卷積的參數(shù)量:
逐點(diǎn)卷積的參數(shù)量:
深度可分離卷積的參數(shù)量:
深度可分離卷積的計(jì)算量:
以上公式表明,深度可分離卷積可極大程度上減小網(wǎng)絡(luò)參數(shù)量和計(jì)算量,因此本文引入深度可分離卷積替代CPM多階段姿態(tài)估計(jì)網(wǎng)絡(luò)中的部分卷積層結(jié)構(gòu),得到較為輕量化的CPM手勢姿態(tài)估計(jì)網(wǎng)絡(luò)。
文中使用的環(huán)境是anaconda+keras2.24+Tensor Flow1.14+cuda9.2,顯卡NVDIAGTX2080。
本文使用RHD開源手勢姿態(tài)數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù)集。該數(shù)據(jù)集是由41258張訓(xùn)練圖像和2728張測試圖像組成的合成RGB圖像的手勢數(shù)據(jù)集。它是通過要求20個(gè)不同的人體模型隨機(jī)執(zhí)行39個(gè)不同的動(dòng)作并隨即生成任意而畢竟而獲得的。由于視點(diǎn)和手比例的巨大變化,以及由圖像的隨機(jī)噪聲和模糊性引起的巨大視覺差異,數(shù)據(jù)集具有相當(dāng)大的挑戰(zhàn)性。對于每個(gè)RGB圖像,它提供相應(yīng)的深度圖像、遮擋標(biāo)簽、2D標(biāo)簽以及21個(gè)關(guān)鍵點(diǎn)的3D標(biāo)簽。
我們使用RHD數(shù)據(jù)集將其分成訓(xùn)練集、測試集、驗(yàn)證集之比為8∶1∶1的比例進(jìn)行訓(xùn)練。設(shè)置Batch Size為8,初始學(xué)習(xí)率為0.0001,迭代次數(shù)為60000次,每次迭代10000時(shí)學(xué)習(xí)率下降為10倍,且使用Adam優(yōu)化方法。
3.2.1 測試集評估模型
本文使用模型精度和模型大小來衡量本文提出的手勢姿態(tài)估計(jì)模型的相關(guān)性能。
模型精度:PCK(Percentage of Correct Keypoints)表示對于手勢的21個(gè)實(shí)際關(guān)鍵點(diǎn)與預(yù)測關(guān)鍵點(diǎn)歸一化的距離小于指定閾值的百分比。而以閾值為橫坐標(biāo),PCK值為縱坐標(biāo),繪制出不同誤差閾值下的PCK曲線下的面積為AUC(Area Under Curve,AUC)。
由表可知,相比于原始CPM手勢姿態(tài)估計(jì)網(wǎng)絡(luò),引入了深度可分離對CPM手勢姿態(tài)做輕量化處理的網(wǎng)絡(luò)模型,能夠在保證模型精度穩(wěn)定的前提下,使模型大小縮小為原來的4倍多。Flops值將為原來的四倍左右。可以有效的減小模型參數(shù)量,為研發(fā)實(shí)時(shí)移動(dòng)端手勢姿態(tài)估計(jì)提供了基礎(chǔ)。
3.2.2 檢測效果可視化
檢測效果在anaconda+keras2.24+TensorFlow1.1 4+cuda9.2實(shí)驗(yàn)環(huán)境下對RHD數(shù)據(jù)集驗(yàn)證的效果如圖1所示。
圖1 檢測效果可視化Fig.1 Visualization of detection effect
手勢姿態(tài)估計(jì)隨著計(jì)算機(jī)視覺領(lǐng)域的發(fā)展,其常被應(yīng)用于人機(jī)交互、視頻監(jiān)控等多種場景中。通常卷積神經(jīng)網(wǎng)絡(luò)存在較大的參數(shù)量和計(jì)算量,不能較好的應(yīng)用于移動(dòng)端或嵌入式設(shè)備中。為更好的實(shí)現(xiàn)在移動(dòng)端或嵌入式設(shè)備上進(jìn)行實(shí)時(shí)手勢姿態(tài)估計(jì),需對網(wǎng)絡(luò)模型進(jìn)行輕量化處理。本文對基于人體姿態(tài)估計(jì)的CPM更改其網(wǎng)絡(luò)結(jié)構(gòu),將其遷移到手勢姿態(tài)估計(jì)。同時(shí),引入深度可分離卷積替代網(wǎng)絡(luò)結(jié)構(gòu)中的部分卷積層結(jié)構(gòu),極大程度上減低的模型的計(jì)算量和運(yùn)算量。
通過實(shí)驗(yàn)對比和可視化表明,輕量化的CPM姿態(tài)估計(jì)網(wǎng)絡(luò)能夠在被遮擋、形變等復(fù)雜環(huán)境下仍然有良好的檢測效果,能夠在保證精度穩(wěn)定的前提下,極大程度上降低模型的參數(shù)量和計(jì)算量,為在移動(dòng)端或嵌入式設(shè)備上實(shí)時(shí)運(yùn)行手勢姿態(tài)算法奠定了基礎(chǔ)。