鐘經(jīng)謀 陳俊洪 黃可思 劉文印
(廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院 廣東 廣州 510006)
近年來,機(jī)器人在各行各業(yè)的應(yīng)用變得越來越廣泛,例如制造業(yè)、醫(yī)療服務(wù)、家庭服務(wù)等,然而現(xiàn)有的機(jī)器人工作模式大多為預(yù)編程模型,無法自主學(xué)習(xí)操作。對此近年來人們提出從視頻中學(xué)習(xí)動(dòng)作指令的學(xué)習(xí)方法,該方法不僅可以免除人工編程時(shí)間,而且能夠抑制外界環(huán)境的干擾。其中視頻學(xué)習(xí)的關(guān)鍵是對視頻中演示者動(dòng)作的準(zhǔn)確識別,動(dòng)作識別的準(zhǔn)確率影響物體分類的準(zhǔn)確率。因而動(dòng)作的準(zhǔn)確性和時(shí)效性將直接影響機(jī)器人的技能學(xué)習(xí)的效果。
為了達(dá)到準(zhǔn)確高效的學(xué)習(xí)效果,人們提出許多視頻動(dòng)作識別方法,例如,Feichtenhofer等[1]提出結(jié)合時(shí)間和空間特征的雙流卷積網(wǎng)絡(luò),通過在相同像素位置融合空域卷積網(wǎng)絡(luò)和時(shí)域卷積網(wǎng)絡(luò),提高動(dòng)作識別的準(zhǔn)確率。Wang等[2]通過在雙流卷積網(wǎng)絡(luò)的基礎(chǔ)上改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的形式和以更小的學(xué)習(xí)速率、更高Dropout系數(shù)進(jìn)行訓(xùn)練,提高動(dòng)作的識別率。然而,由于視頻環(huán)境變化、人體外貌改變等不確定因素,基于圖像視頻的動(dòng)作識別具有一定的局限性。為了解決該問題,人們開始通過對人體骨骼節(jié)點(diǎn)運(yùn)動(dòng)進(jìn)行分析,Yan等[3]首次提出運(yùn)用時(shí)空圖卷積網(wǎng)絡(luò)在人體骨架上進(jìn)行卷積,它有效地提取了人體骨架序列運(yùn)動(dòng)的時(shí)空特征,進(jìn)而識別出動(dòng)作。Tang等[4]提出利用強(qiáng)化學(xué)習(xí)對動(dòng)作進(jìn)行識別,該方法通過分析人體骨架的運(yùn)動(dòng)信息提取骨架序列中信息量最多的視頻幀,并丟棄不明確的幀,最終利用挑選的視頻幀進(jìn)行動(dòng)作識別,提高了識別效果。雖然這些方法都可以有效地捕捉到人體的操作動(dòng)作,但是對于一些細(xì)微的操作動(dòng)作,例如切、倒、攪拌等動(dòng)作卻難以進(jìn)行識別。
針對該問題,本文提出一種基于人體骨架、手部骨架和物體屬性的動(dòng)作技能學(xué)習(xí)方法,該方法包含兩個(gè)模塊。第一個(gè)模塊是動(dòng)作識別模塊,該模塊首先使用OpenPose算法識別RGB視頻中每一幀的人體骨架和手部骨架,然后我們基于人體骨架和手部骨架構(gòu)建自然連接拓?fù)鋱D,當(dāng)骨架鏈接拓?fù)鋱D構(gòu)建完畢后,我們使用時(shí)空圖卷積網(wǎng)絡(luò)提取人體骨架和手部骨架序列的時(shí)空特征,并根據(jù)時(shí)空特征識別出演示視頻中演示者的操作動(dòng)作類別。第二個(gè)操作模塊是操作物體識別模塊,通過使用Mask R-CNN找出所有物體的位置并提取相應(yīng)特征,再將物體特征與第一個(gè)模塊所提取的動(dòng)作特征進(jìn)行融合,最后輸入到兩個(gè)LightGBM分類器將物體分為主體物體和受體物體。當(dāng)?shù)玫絼?dòng)作、主體物體和受體物體后,我們將其進(jìn)行組合用于表示視頻的語義。
本文的主要貢獻(xiàn)包括:
(1) 提出一種基于人體骨架和手部骨架序列的動(dòng)作識別方法,通過構(gòu)建人體和手部自然連接拓?fù)鋱D,使用時(shí)空圖卷積網(wǎng)絡(luò)識別操作動(dòng)作,提高了細(xì)微操作動(dòng)作的識別率。
(2) 提出將基于人體骨架和手部骨架所提取到的動(dòng)作特征與物體屬性相結(jié)合,進(jìn)一步細(xì)分物體的操作角色,并提高了物體角色的識別準(zhǔn)確率。
(3) 通過在MPII烹飪活動(dòng)數(shù)據(jù)集2.0上進(jìn)行實(shí)驗(yàn),我們有效地將視頻轉(zhuǎn)換成指令三元組。
對于機(jī)器人技能學(xué)習(xí)來說,動(dòng)作的正確識別是機(jī)器人學(xué)習(xí)到技能的前提。動(dòng)作識別的研究大致可以分為兩類。第一類是基于RGB視頻的動(dòng)作識別,例如,Simonyan等[5]提出雙流卷積網(wǎng)絡(luò)提取視頻的時(shí)空特征進(jìn)行動(dòng)作分類,Tran等[6]提出在視頻動(dòng)作識別中使用三維神經(jīng)網(wǎng)絡(luò)代替二維的神經(jīng)網(wǎng)絡(luò),以捕獲視頻中更多的時(shí)空信息,Wang等[7]提出Temporal Segment Network(TSN),通過稀疏時(shí)間采樣,降低長視頻識別的計(jì)算量。第二類是基于人體骨架序列的動(dòng)作識別,然而由于早期基于RGB視頻的姿態(tài)估計(jì)算法對背景嘈雜、光照變化和外觀變化等因素?zé)o法較好地適應(yīng),導(dǎo)致其識別效果并不是很好,但隨著微軟Kinect[8]深度傳感器的出現(xiàn)和改進(jìn),以及姿勢估計(jì)算法[9]的不斷優(yōu)化,對光照變化和場景變化具有魯棒性的人體骨架被廣泛地應(yīng)用于動(dòng)作識別。Yan等[3]提出時(shí)空圖卷積網(wǎng)絡(luò),該網(wǎng)絡(luò)從視頻中提取骨架序列的時(shí)空特征并進(jìn)行動(dòng)作分類。Li等[10]提出動(dòng)作-結(jié)構(gòu)圖卷積,通過A-link推理模塊和自監(jiān)督算法捕獲更豐富的關(guān)節(jié)信息和動(dòng)作信息。該算法雖然可以很好地預(yù)測人的運(yùn)動(dòng),但由于只包含人體骨架特征,缺少手部骨架特征,導(dǎo)致其對于細(xì)微的操作卻取得不好的效果。為了解決該問題,在本文中,我們保留了時(shí)空圖卷積網(wǎng)絡(luò),并在此基礎(chǔ)上擴(kuò)展人體和手部的無向時(shí)空圖,將人體骨架和手部骨架特征用于動(dòng)作識別。我們更改了時(shí)空圖卷積網(wǎng)絡(luò)的大小和配置,并將其重新訓(xùn)練到新的骨架序列數(shù)據(jù)集上,從而獲得了動(dòng)作識別的高準(zhǔn)確率。
為了更好的人機(jī)交互,完整的視頻語義是必不可少的。關(guān)于演示視頻的語義表示的研究大致可以分為兩類。第一類是基于語義上下文無關(guān)的語法規(guī)則組合,通過建立語法規(guī)則組合出復(fù)雜的動(dòng)作。例如,Summers-stay等[11]提出樹結(jié)構(gòu)語法規(guī)則,通過結(jié)合手、工具、物體等對演示者的操作過程進(jìn)行描述。Yang等[12]提出操作上下文無關(guān)語法,該語法分別定義了動(dòng)作和物體以及手與物體的關(guān)系,最后通過語法規(guī)則進(jìn)行鏈接。第二類是基于語言學(xué)的描述,利用語言學(xué)表達(dá)視頻的語義。例如Yang等[13]提出使用GNet和CNet兩個(gè)分支網(wǎng)絡(luò)分別處理抓取方案和視頻描述,該方法能產(chǎn)生準(zhǔn)確的命令和強(qiáng)大的抓取性能。Nguyen等[14]提出了<手-動(dòng)作-物體>的結(jié)構(gòu)語義語法,該方法為端到端的學(xué)習(xí)方法,將演示視頻輸入即可得到指令。然而以上方法沒有解決多物體操作時(shí)的操作方式,對此,我們使用(動(dòng)作(主體物體,受體物體))的指令三元組對操作過程進(jìn)行表達(dá),該方式可以解決機(jī)器人使用道具的難題,完整地保存了演示者的操作語義。
本文方法如圖1所示。本文方法分別使用基于人體骨架以及手部骨架的時(shí)空圖卷積網(wǎng)絡(luò)進(jìn)行視頻動(dòng)作識別和Mask RCNN識別物體,然后使用兩個(gè)LightGBM分類器將物體分類,最后使用動(dòng)作三元組表達(dá)學(xué)習(xí)的技能。

圖1 本文方法框架
人體骨架通常以二維或三維人體關(guān)節(jié)點(diǎn)坐標(biāo)表示,連續(xù)的人體關(guān)節(jié)點(diǎn)移動(dòng)可以有效地表達(dá)人類的運(yùn)動(dòng)。不同于日常的人類運(yùn)動(dòng),人類的操作往往包含有更多手部的細(xì)節(jié)。為了更好地識別人類的操作,我們提出將手部關(guān)節(jié)點(diǎn)加入人體骨架序列中進(jìn)行分析。具體來說,我們首先使用OpenPose算法識別演示視頻中的人體關(guān)節(jié)點(diǎn)和手部關(guān)節(jié)點(diǎn),在獲得N個(gè)身體關(guān)節(jié)點(diǎn)和M個(gè)手部關(guān)節(jié)點(diǎn)后,我們在T幀骨架序列上構(gòu)造一個(gè)無向時(shí)空圖G=(V,E)。其中,V表示點(diǎn)集合,它包含每一幀人體骨架和手部骨架的所有關(guān)節(jié)點(diǎn),其表示如下:
V={vti|t=1,2,…,T,i=1,2,…,N+M}
(1)
式中:vti表示視頻中第t幀第i個(gè)關(guān)節(jié)點(diǎn),并且我們使用特征向量F(vti)表示第t幀第i個(gè)關(guān)節(jié)點(diǎn)的二維坐標(biāo)向量和估計(jì)置信度。E表示邊集合,它由兩個(gè)子集組成,其中第一個(gè)子集描述了每幀的身體關(guān)節(jié)點(diǎn)連接和手部關(guān)節(jié)點(diǎn)連接,其表示為:
Es={vtivtj|(i,j)∈H}
(2)
式中:H是自然連接的人類骨架和手部骨架關(guān)節(jié)點(diǎn)集合。第二個(gè)子集描述連續(xù)幀間相同關(guān)節(jié)點(diǎn)的連接,其表示為:
Ef={vtiv(t+1)i}
(3)
其中第二個(gè)子集中的所有邊代表骨架序列隨時(shí)間的軌跡。本文使用25個(gè)關(guān)節(jié)點(diǎn)表示身體骨架,使用42個(gè)關(guān)節(jié)點(diǎn)表示手部骨架,其可視化效果如圖2所示。

圖2 無向時(shí)空圖
在構(gòu)造無向時(shí)空圖后,我們使用時(shí)空圖卷積網(wǎng)絡(luò)提取人類操作的時(shí)空特征。在空間圖上,我們對每個(gè)節(jié)點(diǎn)進(jìn)行采樣,選擇每個(gè)節(jié)點(diǎn)連接范圍為一的相鄰域集作為采樣函數(shù),并使用空間配置分區(qū)策略實(shí)現(xiàn)標(biāo)簽映射,空間配置分區(qū)如圖3所示。人體各部分的運(yùn)動(dòng)大致可以劃分為向心運(yùn)動(dòng)和離心運(yùn)動(dòng),因此,對于每個(gè)節(jié)點(diǎn)的相鄰集,根據(jù)與人體重心的距離將其劃分成三個(gè)子集:1) 根節(jié)點(diǎn)本身;2) 比根節(jié)點(diǎn)更靠近人體重心的相鄰節(jié)點(diǎn);3) 比根節(jié)點(diǎn)更遠(yuǎn)離人體重心的相鄰節(jié)點(diǎn)。具體的標(biāo)簽映射表示如下:

圖3 空間配置分區(qū)
式中:lti(vtj)是單幀中節(jié)點(diǎn)vtj在節(jié)點(diǎn)vti的標(biāo)簽圖;rj是節(jié)點(diǎn)vtj到人體重心的距離;ri是節(jié)點(diǎn)vti到人體重心的距離。在時(shí)域方面,擴(kuò)展節(jié)點(diǎn)vti領(lǐng)域集如下:
B(vti)={vqj|d(vtj,vti)≤1,|q-t|≤Γ/2}
(5)
式中:d(vtj,vti)表示節(jié)點(diǎn)vti與節(jié)點(diǎn)vtj的距離;Γ控制時(shí)域采樣范圍;q為采樣時(shí)域。對于擴(kuò)展的鄰域集,其標(biāo)簽映射表示如下:
式中:lST(vqj)是節(jié)點(diǎn)vqj在采樣函數(shù)B(vti)的標(biāo)簽映射。在給定時(shí)空圖的采樣函數(shù)和標(biāo)簽映射后,時(shí)空圖卷積表示如下:
式中:j是分區(qū)策略的各個(gè)子集;Λ=A+I,A是人體骨架和手部骨架的鄰接矩陣,即人體骨架和手部骨架自然連接的拓?fù)浣Y(jié)構(gòu),I是單位矩陣;fin為T幀人體骨架和手部骨架的關(guān)節(jié)點(diǎn)坐標(biāo)序列;Wj為可學(xué)習(xí)參數(shù)。
圖4展示了視頻動(dòng)作模塊網(wǎng)絡(luò)框架。在該模塊中,我們將骨架序列輸入到批處理歸一化層進(jìn)行數(shù)據(jù)規(guī)范處理,然后使用時(shí)空圖卷積網(wǎng)絡(luò)進(jìn)行人類操作的時(shí)空特征提取。時(shí)空圖卷積網(wǎng)絡(luò)由六層時(shí)空圖卷積組成,前面三層網(wǎng)絡(luò)輸出64個(gè)通道,后面三層網(wǎng)絡(luò)輸出128個(gè)通道。經(jīng)過時(shí)空圖卷積后,輸入的特征圖和輸出的特征圖大小一致。該網(wǎng)絡(luò)一共有6個(gè)時(shí)間卷積核大小,在每個(gè)時(shí)空圖卷積使用殘差連接。將第4層時(shí)間卷積層的步伐設(shè)置為2作為池化層,之后,對每個(gè)骨架序列輸出的128個(gè)通道特征進(jìn)行全局池化成128維的向量。最后,我們將該向量放入SoftMax分類器。該模型采用隨機(jī)梯度下降學(xué)習(xí),學(xué)習(xí)率為0.1,在50個(gè)Epoch后,下降為0.01,在150個(gè)Epoch后下降為0.001。由于MPII烹飪活動(dòng)數(shù)據(jù)集2.0中視頻長短差異大,我們將骨架序列劃分為長度為T幀的片段,在實(shí)驗(yàn)中,T設(shè)置為300。在訓(xùn)練時(shí)空圖卷積時(shí),對劃分的骨架序列給定相同的動(dòng)作標(biāo)簽,在測試時(shí),將劃分的骨架序列的平均預(yù)測值作為動(dòng)作預(yù)測的標(biāo)準(zhǔn)。

圖4 時(shí)空圖卷積網(wǎng)絡(luò)框架
表達(dá)完整的視頻語義,不僅需要準(zhǔn)確地識別動(dòng)作,而且還要識別演示者操作的物體。為了更加精確地識別演示者所操作的物體和排除遠(yuǎn)離演示者物體信息的干擾,我們使用在COCO數(shù)據(jù)集[15]上經(jīng)過預(yù)訓(xùn)練的Mask R-CNN[16]獲取演示者的邊框,并設(shè)計(jì)一個(gè)比該邊框高1.4倍的感興趣區(qū)域(ROI)邊框,效果如圖5所示。在得到包含操作者的ROI框后,我們使用在COCO數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練的,并在MPII Cooking Activities 2.0[17]中進(jìn)行微調(diào)的Mask R-CNN作為物體識別網(wǎng)絡(luò)。其中Mask R-CNN為兩階段網(wǎng)絡(luò)模型,第一階段使用Region Pro-posal Network(RPN)生成物體候選邊框,第二階段對這些候選邊框進(jìn)行分類、定位,并找出掩模。

圖5 ROI邊框例子
在本文中,我們使用Mask R-CNN識別的物體的出現(xiàn)次數(shù)、平均置信度和平均位置作為物體特征,并將動(dòng)作識別模塊所得到的動(dòng)作特征與其進(jìn)行拼接,最終分別輸入兩個(gè)LightGBM[18]分類器對主體物體和受體物體進(jìn)行分類。為了更好地表達(dá)視頻的語義,我們使用動(dòng)作三元組表示演示的操作,動(dòng)作三元組的表示形式如下:
動(dòng)作(主體物體,受體物體)
(8)
通過該動(dòng)作三元組,機(jī)器人可以有效地區(qū)分出操作物體的邏輯,準(zhǔn)確執(zhí)行從視頻中所學(xué)習(xí)到的動(dòng)作指令,并完成相應(yīng)的模仿。
在這一部分,我們首先將介紹所使用的數(shù)據(jù)集,然后分別評估動(dòng)作識別、操作物體分類的性能,最后展示所學(xué)習(xí)得到的動(dòng)作指令效果。
我們選擇MPII Cooking Activities 2.0作為我們提出框架的數(shù)據(jù)集,該數(shù)據(jù)集在273個(gè)視頻中記錄了三十多種菜譜,總時(shí)長達(dá)到27 h。在本文中,我們挑選了7個(gè)動(dòng)作和48種常見的物體進(jìn)行研究,類別如表1所示。

表1 動(dòng)作和物體類別
在本文中,由于只考慮單指令任務(wù),因此首先把視頻分割成視頻段,并選擇3 168個(gè)視頻段作為實(shí)驗(yàn)的數(shù)據(jù)集,各個(gè)動(dòng)作的視頻段的個(gè)數(shù)如表2所示。我們隨機(jī)選擇2 852(90%)個(gè)視頻段來訓(xùn)練時(shí)空圖卷積網(wǎng)絡(luò),剩下的316(10%)個(gè)視頻段作為本文提出的框架的性能評估。對于物體識別模塊,從訓(xùn)練集中隨機(jī)選取3 000幀進(jìn)行人工標(biāo)注,并將其用于Mask R-CNN微調(diào)。

表2 挑選的數(shù)據(jù)集統(tǒng)計(jì)
如表3所示,與基于RGB視頻的動(dòng)作識別方法相比,例如CNN3D[19]、LSTM[20]和Two-Stream[5],本文所提出來的基于人體骨架的動(dòng)作識別方法(ST-GCN)在精確度、準(zhǔn)確率、召回率、F1值等表現(xiàn)得最好,這表明視頻的背景噪聲、光照變化、外觀變化對人體骨架的影響小。同時(shí),增加手部骨架的時(shí)空圖卷積比僅有人體骨架的時(shí)空圖卷積網(wǎng)絡(luò)在準(zhǔn)確率上高出5.37百分點(diǎn),在精度、召回率、F1-score上表現(xiàn)更是高出7百分點(diǎn)至10百分點(diǎn),這表明手部骨架信息對細(xì)微的操作動(dòng)作識別具有一定的指導(dǎo)作用。在圖6中,我們使用混淆矩陣來顯示基于人體骨架和手部骨架動(dòng)作識別方法的性能。

表3 動(dòng)作識別效果對比(%)

圖6 混淆矩陣
由于物體分類包含主體物體和受體物體兩個(gè)部分,因此我們對這兩個(gè)部分的性能分別進(jìn)行評估。為了體現(xiàn)物體分類的性能,我們使用了決策樹、隨機(jī)森林、Gradient Boosting、XGBoost[21]和LightGBM方法進(jìn)行對比,分類性能如表4所示。可以看出,LightGBM取得了最優(yōu)的性能,正確識別主體對象和受體對象的準(zhǔn)確率達(dá)到了78.07%。我們選擇最優(yōu)的物體分類方法,在該方法上我們測試了不同動(dòng)作識別方法識別出來的動(dòng)作對物體分類的影響。從表5中可以看出,隨著動(dòng)作預(yù)測準(zhǔn)確率的提高,物體分類的總準(zhǔn)確率也在提高。除此之外,我們還分析了物體出現(xiàn)次數(shù)、物體平均置信度、物體平均位置和動(dòng)作對物體分類的影響。從圖7可以看出,無論是主體物體分類還是受體物體分類,動(dòng)作特征都具有重要的影響,這有效地驗(yàn)證了動(dòng)作識別準(zhǔn)確率影響物體分類準(zhǔn)確率,進(jìn)一步影響動(dòng)作指令學(xué)習(xí)的準(zhǔn)確率。

表4 物體分類效果對比(%)

表5 不同動(dòng)作模型在物體分類上的表現(xiàn)(%)

圖7 不同特征的重要性
在識別動(dòng)作、主體物體和受體物體后,我們使用指令三元組來表示演示視頻操作的語義,其中本文所提出的框架準(zhǔn)確率達(dá)到78.07%。表6展示了一些從視頻學(xué)習(xí)三元組的實(shí)例,其中不正確的指令由加粗字體標(biāo)出。錯(cuò)誤指令的產(chǎn)生可能是因?yàn)槲矬w類別的錯(cuò)誤識別,也可能是動(dòng)作的錯(cuò)誤識別,而動(dòng)作的錯(cuò)誤識別往往也導(dǎo)致主體物體和受體物體的錯(cuò)誤分類。

表6 動(dòng)作指令實(shí)例
在本文中,我們提出一個(gè)機(jī)器人技能學(xué)習(xí)框架,它使機(jī)器人可以從真實(shí)環(huán)境中的演示視頻中自動(dòng)學(xué)習(xí)操作技能。該框架采用時(shí)空圖卷積網(wǎng)絡(luò)和Mask-RCNN分別識別演示視頻中的操作動(dòng)作和物體,然后將動(dòng)作特征和對象特征的融合并應(yīng)用兩個(gè)LightGBM分類器將物體分為主體物體和受體物體。之后,該框架使用動(dòng)作指令三元組表示演示視頻的語義。實(shí)驗(yàn)結(jié)果表明,我們的框架能夠很好地識別演示視頻的操作動(dòng)作和物體,并有效地將演示視頻轉(zhuǎn)化為動(dòng)作指令三元組。
在未來的工作中,我們將在以下方面擴(kuò)展我們的框架:(1) 改進(jìn)骨架序列無向時(shí)空圖,發(fā)掘人體關(guān)節(jié)點(diǎn)和手部關(guān)節(jié)點(diǎn)之間的潛在聯(lián)系,更好地提取演示者的操作特征;(2) 進(jìn)一步擴(kuò)大適用場景的范圍,例如工業(yè)操作等。