劉世平, 陳 萌, 夏文杰, 馬梓焱, 黃元境, 張文奇
(1.上海市空間飛行器機(jī)構(gòu)重點(diǎn)實(shí)驗(yàn)室, 上海 201108; 2.華中科技大學(xué)機(jī)械科學(xué)與工程學(xué)院, 武漢 430074)
動(dòng)作識(shí)別是計(jì)算機(jī)視覺(jué)領(lǐng)域中的研究熱點(diǎn)與難點(diǎn)。 人類(lèi)可以通過(guò)動(dòng)作來(lái)處理事情和表達(dá)感受,其能承載豐富的語(yǔ)義信息,因此動(dòng)作識(shí)別在人機(jī)交互[1]、視頻監(jiān)控[2]、視頻檢索[3]等領(lǐng)域得到廣泛應(yīng)用。
研究人員提出了許多方法來(lái)對(duì)人體動(dòng)作進(jìn)行準(zhǔn)確快速的識(shí)別。 根據(jù)輸入數(shù)據(jù)的不同,目前主要有RGB 圖像序列[4]、深度圖像序列[5]與人體骨架序列[6]等。 使用RGB 圖像序列與深度圖像序列數(shù)據(jù)的動(dòng)作識(shí)別,會(huì)受到人體所處環(huán)境的干擾,而且需要處理巨大的數(shù)據(jù)量。 對(duì)于使用人體骨架序列的動(dòng)作識(shí)別,由于人體每一幀動(dòng)作序列只包含骨架特征,不會(huì)受到環(huán)境的干擾,而且需要處理的數(shù)據(jù)也更少,所以通過(guò)對(duì)人體骨架序列數(shù)據(jù)進(jìn)行動(dòng)作識(shí)別更加輕量并且具有更好的魯棒性。
傳統(tǒng)的基于人體骨架序列進(jìn)行動(dòng)作識(shí)別的方法為動(dòng)態(tài)時(shí)間規(guī)整(Dynamic Time Warping,DTW)法[7]。 該方法通過(guò)對(duì)采集到的每類(lèi)動(dòng)作進(jìn)行特征提取建立動(dòng)作模板庫(kù),在進(jìn)行動(dòng)作識(shí)別時(shí),對(duì)需要進(jìn)行識(shí)別的動(dòng)作與動(dòng)作模板庫(kù)中的每類(lèi)動(dòng)作進(jìn)行距離比較,距離最短的一類(lèi)動(dòng)作即為所識(shí)別到的動(dòng)作。 由于動(dòng)態(tài)時(shí)間規(guī)整的方法需要與模板庫(kù)中的每類(lèi)動(dòng)作進(jìn)行比較,當(dāng)動(dòng)作種類(lèi)比較多的時(shí)候,計(jì)算時(shí)間會(huì)大大增加。
近年來(lái),隨著深度學(xué)習(xí)的發(fā)展,不少研究人員通過(guò)深度學(xué)習(xí)進(jìn)行骨架序列動(dòng)作識(shí)別。 Ke 等[8]通過(guò)CNN(Convolutional Neural Networks)進(jìn)行骨架序列動(dòng)作識(shí)別,但是該方法需要對(duì)骨架序列進(jìn)行編碼,這會(huì)喪失骨架的空間拓?fù)湫裕⑶也荒芎芎玫靥幚韯?dòng)作的時(shí)間序列關(guān)系;Liu 等[9]通過(guò)LSTM(Long Short-Term Memory)進(jìn)行骨架序列動(dòng)作識(shí)別,該方法能夠較好地處理時(shí)間序列的問(wèn)題,但由于把骨架序列數(shù)據(jù)變?yōu)橄蛄孔鳛槟P偷妮斎耄@同樣會(huì)喪失骨架的空間拓?fù)湫裕籝an 等[10]首次使用時(shí)空?qǐng)D卷積神經(jīng)網(wǎng)絡(luò)(Spatial Temporal Graph Convolutional Networks, ST-GCN)對(duì)骨架序列進(jìn)行特征學(xué)習(xí)實(shí)現(xiàn)動(dòng)作識(shí)別,該方法保留了骨架的空間拓?fù)湫圆⑶乙材茌^好地處理時(shí)間序列;Shi 等[11]對(duì)Yan 等[10]的方法進(jìn)行了改進(jìn),建立了自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)(Adaptive Graph Convolutional Networks, AGCN),增加了骨架長(zhǎng)度信息并且能夠自適應(yīng)地學(xué)習(xí)骨架的拓?fù)浣Y(jié)構(gòu),但是這2種方法都沒(méi)有考慮到局部時(shí)間對(duì)網(wǎng)絡(luò)模型的影響。
針對(duì)上述問(wèn)題,本文設(shè)計(jì)雙擴(kuò)展時(shí)域自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)模型(Dual Dilated Temporal Adaptive Graph Convolutional Networks, DTAGCN)。 首先,對(duì)于月面多功能機(jī)器人在月面復(fù)雜非結(jié)構(gòu)環(huán)境下航天員的輔助活動(dòng)設(shè)計(jì)一套人機(jī)交互動(dòng)作命令集,根據(jù)命令集采集數(shù)據(jù)并進(jìn)行視點(diǎn)無(wú)關(guān)變化預(yù)處理;然后,通過(guò)輸入關(guān)節(jié)點(diǎn)信息與骨架向量信息建立雙擴(kuò)展時(shí)域自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò),通過(guò)雙擴(kuò)展時(shí)域卷積層獲取局部時(shí)間與全局時(shí)間對(duì)動(dòng)作的影響;最后,根據(jù)采集到的數(shù)據(jù)集訓(xùn)練模型進(jìn)行人體骨架動(dòng)作識(shí)別實(shí)驗(yàn)。
針對(duì)月面多功能機(jī)器人在月面復(fù)雜非結(jié)構(gòu)環(huán)境下航天員的伴隨跟蹤、輔助作業(yè)、安全陪護(hù)、緊急救助等任務(wù),設(shè)計(jì)了一套人機(jī)交互動(dòng)作命令集,命令集動(dòng)作的代表幀,如圖1(a)所示,包括需要/無(wú)需攙扶、機(jī)器人停止運(yùn)動(dòng)、提供工具、緊急撤離、拿起/放下/挖掘物體、在我前方/后方/側(cè)方行走、需要救援等12 類(lèi)語(yǔ)義動(dòng)作。 骨架動(dòng)作命令集通過(guò)微軟Kinect 傳感器采集得到,共33 人次進(jìn)行采集,其中每人對(duì)每類(lèi)動(dòng)作采集30 次。 圖1(b)為需要攙扶類(lèi)動(dòng)作所采取的關(guān)鍵幀示意圖。

圖1 數(shù)據(jù)采集示意圖Fig.1 Schematic diagram of data acquisition
從傳感器中得到的數(shù)據(jù)是基于相機(jī)坐標(biāo)系的,這會(huì)造成坐標(biāo)數(shù)據(jù)(x,y,z) 對(duì)視點(diǎn)的變化很敏感。 當(dāng)在不同的位置對(duì)同一個(gè)動(dòng)作進(jìn)行數(shù)據(jù)采集時(shí)會(huì)使數(shù)據(jù)相差很大,因此需要進(jìn)行視點(diǎn)無(wú)關(guān)處理,把相機(jī)坐標(biāo)系轉(zhuǎn)換到人體坐標(biāo)系,使動(dòng)作的空間位置基本接近。
建立相機(jī)坐標(biāo)系與人體坐標(biāo)系,如圖2 所示。圖中相機(jī)坐標(biāo)系已經(jīng)經(jīng)過(guò)平移,坐標(biāo)系ncxncyncz為傳感器所采集數(shù)據(jù)的相機(jī)坐標(biāo)系,坐標(biāo)系npxnpynpz為人體坐標(biāo)系,由于人體運(yùn)動(dòng)時(shí)點(diǎn)1、2、13、17 變化幅度比較小,人體坐標(biāo)系以點(diǎn)1 為原點(diǎn),點(diǎn)13 到點(diǎn)17 方向?yàn)閤軸方向,點(diǎn)1 到點(diǎn)2 方向?yàn)閦軸方向。

圖2 相機(jī)坐標(biāo)系與人體坐標(biāo)系Fig.2 Camera coordinate system and human coordinate system
為了達(dá)到視點(diǎn)無(wú)關(guān)性,首先需要進(jìn)行坐標(biāo)系平移,對(duì)于每一個(gè)動(dòng)作序列,使序列第一幀的點(diǎn)1 為原點(diǎn),對(duì)動(dòng)作序列中所有骨架節(jié)點(diǎn)減去原點(diǎn)坐標(biāo)vSB(xSB,ySB,zSB) 完成得到新的坐標(biāo),以此完成坐標(biāo)系的平移;然后通過(guò)坐標(biāo)系旋轉(zhuǎn)使數(shù)據(jù)從相機(jī)坐標(biāo)系轉(zhuǎn)換到人體坐標(biāo)系,使用四元數(shù)求解旋轉(zhuǎn)矩陣的方法完成坐標(biāo)系旋轉(zhuǎn),對(duì)于相機(jī)坐標(biāo)系的單位軸向量n(nx,ny,nz), 與對(duì)應(yīng)人體坐標(biāo)系軸向量的夾角為θ,則四元數(shù)為式(1):

通過(guò)對(duì)z軸和x軸進(jìn)行旋轉(zhuǎn)完成坐標(biāo)系的旋轉(zhuǎn)。 對(duì)于任意節(jié)點(diǎn)v(x,y,z),其完成坐標(biāo)系轉(zhuǎn)換的節(jié)點(diǎn)v′(x′,y′,z′) 為式(3):

數(shù)據(jù)預(yù)處理前的骨架序列圖如圖3(a)所示,圖中2 人所做的動(dòng)作為同一個(gè)動(dòng)作,但是位置不同導(dǎo)致坐標(biāo)相差較大。 經(jīng)過(guò)視點(diǎn)無(wú)關(guān)處理骨架序列圖如圖3(b)所示,圖中2 人的動(dòng)作序列基本相近,經(jīng)過(guò)視點(diǎn)無(wú)關(guān)處理過(guò)的數(shù)據(jù)用來(lái)訓(xùn)練模型可以使模型識(shí)別準(zhǔn)確率提高。

圖3 數(shù)據(jù)預(yù)處理結(jié)果對(duì)比Fig.3 Comparison of data preprocessing results
本文所設(shè)計(jì)的雙擴(kuò)展時(shí)域自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)模型輸入2 種數(shù)據(jù)信息類(lèi)型。 輸入的第一種數(shù)據(jù)信息類(lèi)型為骨架關(guān)節(jié)點(diǎn)信息vi,t=(xi,t,yi,t,zi,t),如圖4(a)所示;輸入的第二種數(shù)據(jù)信息類(lèi)型為相鄰骨架關(guān)節(jié)點(diǎn)的向量信息bi,j,t=(xj,t-xi,t,yj,t-yi,t,zj,t-zi,t),如圖4(b)所示。 最后得到的結(jié)果通過(guò)對(duì)2 種數(shù)據(jù)結(jié)合得到。

圖4 輸入數(shù)據(jù)信息Fig.4 Enter data information
對(duì)于所輸入的數(shù)據(jù),圖卷積操作可以提取更高維度的特征[10]。 在空間維度的圖卷積操作如式(4)所示。


然而,式(4)中的鄰接矩陣是人為主觀(guān)預(yù)定義的,這并不能捕獲人體動(dòng)作所有關(guān)節(jié)點(diǎn)之間的關(guān)聯(lián)程度,使用自適應(yīng)圖卷積可以解決這個(gè)問(wèn)題,對(duì)式(4)進(jìn)行改進(jìn)[11],得自適應(yīng)圖卷積,如式(5)所示。

式中,Wθk與WΦk通過(guò)高斯函數(shù)計(jì)算得到,Hl-1是第l- 1 層的特征圖,與式(4)和式(5)中的一致。
使用自適應(yīng)空間圖卷積操作可以捕獲人體整體關(guān)節(jié)點(diǎn)之間連接關(guān)系與關(guān)聯(lián)程度,使模型能夠適應(yīng)不同類(lèi)型的動(dòng)作。
Yan 等[10]與Shi 等[11]的方法能在空間圖內(nèi)學(xué)習(xí)到較好的特征,但是卻忽略了人體動(dòng)作的時(shí)間變化性,不同的人做同一個(gè)動(dòng)作的速度會(huì)不一樣,同時(shí)同一個(gè)人做同一個(gè)動(dòng)作也可能會(huì)時(shí)快時(shí)慢,因此人體的動(dòng)作不僅在全局具有關(guān)聯(lián)性,在局部也同樣有關(guān)聯(lián)。 由于膨脹卷積能夠快速良好地處理時(shí)間問(wèn)題[12],為了解決這個(gè)問(wèn)題,本文設(shè)計(jì)了雙擴(kuò)展時(shí)域卷積層,雙擴(kuò)展時(shí)域卷積層對(duì)2 個(gè)不同膨脹因子的卷積進(jìn)行結(jié)合,使模型能夠捕獲動(dòng)作的局部時(shí)間信息與全局時(shí)間信息。
其中第一個(gè)卷積在低層中設(shè)置較小的膨脹因子,并且隨著層數(shù)的增加而增加,使用卷積核大小為3 的非因果卷積,由于膨脹因子不斷擴(kuò)大而卷積核的大小一直為3,這一個(gè)卷積能在不擴(kuò)大核尺寸情況下在較高層獲得較大的感受野,因此可以捕獲全局時(shí)間信息。 第二個(gè)卷積與第一個(gè)卷積相反,在低層中設(shè)置較大的膨脹因子,隨著層數(shù)的增加而減小,使用卷積核的大小與第一個(gè)卷積相同,該卷積可以捕獲局部時(shí)間信息,每一層的操作可以通過(guò)式(7)~(10)描述。

式中,Wd1,Wd2∈?3×Cout×Cout分別是膨脹因子2l-1和2L-l-1核大小為3 的擴(kuò)展卷積操作的權(quán)重向量,其中Cout為當(dāng)前層卷積濾波器的數(shù)目,l為當(dāng)前層,L為總層數(shù);Hl是第l層的輸出;W∈?1×2Cout×Cout是1×1 卷積的權(quán)重;bd1,bd2,b∈?Cout為偏差向量;Relu為激活函數(shù)。
通過(guò)空間自適應(yīng)圖卷積層與雙擴(kuò)展時(shí)域卷積層建立雙擴(kuò)展時(shí)域自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)模型,模型圖如圖5 所示。 模型第一層通過(guò)批量歸一化層(Batch Normalization, BN)對(duì)數(shù)據(jù)做標(biāo)準(zhǔn)化處理,之后通過(guò)7 個(gè)自適應(yīng)圖卷積塊(Adaptive Graph Convolutional Blocks, AGCB)與3 個(gè)雙擴(kuò)展時(shí)域自適應(yīng)圖卷積塊(Dual Dilated Temporal Adaptive Graph Convolutional Blocks, DT-AGCB)對(duì)數(shù)據(jù)特征進(jìn)行提取,除了第一個(gè)網(wǎng)絡(luò)塊沒(méi)有進(jìn)行殘差操作,其他的網(wǎng)絡(luò)塊都增加了殘差操作來(lái)緩解層數(shù)增加帶來(lái)的梯度消失,每一個(gè)網(wǎng)絡(luò)塊的前三個(gè)層為自適應(yīng)空間卷積操作,后三個(gè)層為時(shí)域卷積操作。 AGCB 的時(shí)域卷積操作的卷積核無(wú)膨脹因子,DT-GCB 的時(shí)域卷積操作的卷積核膨脹因子隨層數(shù)變化而變化(圖5 中的小圓點(diǎn)代表時(shí)間幀)。 模型的后面通過(guò)全局池化層(Global Average Pooling, GAP)降低參數(shù)量,最后通過(guò)Soft max 層對(duì)動(dòng)作進(jìn)行分類(lèi),完成動(dòng)作識(shí)別。

圖5 雙擴(kuò)展時(shí)域自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)模型圖Fig.5 Diagram of dual dilated temporal adaptive graph convolutional networks model
本文實(shí)驗(yàn)使用的開(kāi)發(fā)語(yǔ)言為Python3.8,深度學(xué)習(xí)平臺(tái)為T(mén)ensorflow2.4,GPU 為NVIDIA Ge-Force RTX 2080 Ti, CPU 為 Intel Xeon E5-2678 v3。
由于每一類(lèi)動(dòng)作的數(shù)據(jù)比較少,為了使訓(xùn)練的模型效果較好,所采集的數(shù)據(jù)集中76%劃分為訓(xùn)練集,12%劃分為驗(yàn)證集,12%劃分為測(cè)試集。模型的損失函數(shù)為交叉熵?fù)p失函數(shù),batch size 大小設(shè)置為8,參數(shù)初始化采用He 等[13]的方法。通過(guò)epochs 為20 次的訓(xùn)練,得到時(shí)空?qǐng)D卷積神經(jīng)網(wǎng)絡(luò)、自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)與雙擴(kuò)展時(shí)域自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果如圖6 所示。 圖6(a)為訓(xùn)練過(guò)程訓(xùn)練集的準(zhǔn)確率,圖6(b)為訓(xùn)練過(guò)程驗(yàn)證集準(zhǔn)確率,從圖6 可以得出DT-AGCN訓(xùn)練結(jié)果優(yōu)異,優(yōu)于ST-GCN 與AGCN,并且在訓(xùn)練集與驗(yàn)證集上得到的識(shí)別率在98%以上。 并對(duì)模型的識(shí)別效率進(jìn)行了測(cè)試,對(duì)于平均每個(gè)動(dòng)作序列幀,ST-GCN 需要0.3142 s,AGCN 需要0.3162 s,DT-AGCN 需要0.3238 s,因此在識(shí)別效率方面,3 種模型速度相差不大。

圖6 數(shù)據(jù)訓(xùn)練結(jié)果對(duì)比Fig.6 Comparison of data training results
對(duì)訓(xùn)練所得到的模型通過(guò)測(cè)試集進(jìn)行準(zhǔn)確率比較如表1 所示,表中DT-AGCN(Joint)表示對(duì)模型輸入骨架關(guān)節(jié)點(diǎn)信息,DT-AGCN(Bone)表示輸入骨架向量信息,DT-AGCN(Joint+Bone)表示輸入骨架關(guān)節(jié)點(diǎn)信息與骨架向量信息的結(jié)合。

表1 測(cè)試集結(jié)果對(duì)比Table 1 Comparison of test set results
測(cè)試集各個(gè)動(dòng)作類(lèi)識(shí)別準(zhǔn)確率的混淆矩陣如圖7 所示。

圖7 動(dòng)作類(lèi)識(shí)別準(zhǔn)確率的混淆矩陣Fig.7 Confusion matrix of action recognition accuracy
從表1 與圖7 可以得出所建立模型識(shí)別準(zhǔn)確率優(yōu)異,總的識(shí)別率在98.5%,每一類(lèi)動(dòng)作的識(shí)別率在97.5%以上。 通過(guò)對(duì)人體實(shí)際動(dòng)作進(jìn)行測(cè)試得到識(shí)別效果圖如圖8 所示。

圖8 人體動(dòng)作識(shí)別效果圖Fig.8 Effect drawing of human action recognition
本文針對(duì)月面多功能機(jī)器人在月面復(fù)雜非結(jié)構(gòu)環(huán)境下基于動(dòng)作識(shí)別的人機(jī)交互問(wèn)題,設(shè)計(jì)了雙擴(kuò)展時(shí)域自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)對(duì)各個(gè)動(dòng)作類(lèi)別進(jìn)行識(shí)別;針對(duì)具體的人機(jī)交互任務(wù)設(shè)計(jì)了一套動(dòng)作指令集,對(duì)采集到的動(dòng)作幀數(shù)據(jù)通過(guò)坐標(biāo)系變換進(jìn)行數(shù)據(jù)的預(yù)處理;針對(duì)人體運(yùn)動(dòng)的時(shí)間局部性與全局性設(shè)計(jì)了雙擴(kuò)展時(shí)域卷積層,并與空間自適應(yīng)圖卷積層結(jié)合完成了神經(jīng)網(wǎng)絡(luò)模型的建立。 通過(guò)所采集到的數(shù)據(jù)集對(duì)所建立的模型進(jìn)行實(shí)驗(yàn)驗(yàn)證,并與ST-GCN 與AGCN 進(jìn)行對(duì)比。結(jié)果表明,本文所設(shè)計(jì)模型識(shí)別率優(yōu)異,動(dòng)作的總體識(shí)別率為98.5%,每一類(lèi)動(dòng)作的識(shí)別率達(dá)97.5%以上,能滿(mǎn)足人機(jī)交互任務(wù)的需求。