陳鵬展, 李斯琛, 李 芳
(華東交通大學(xué) 電氣與自動(dòng)化工程學(xué)院,江西 南昌 330013)
機(jī)器人和人協(xié)同合作,共同完成工作任務(wù),這種新的工作模式有望填補(bǔ)手工裝配線和全自動(dòng)生產(chǎn)線之間的空白。高效安全的人機(jī)協(xié)作,需要機(jī)器人對(duì)人的動(dòng)作能夠?qū)崟r(shí)并精準(zhǔn)預(yù)測(cè),發(fā)現(xiàn)和學(xué)習(xí)有區(qū)別的重復(fù)模式[1],及時(shí)快速的人體動(dòng)作預(yù)測(cè)和準(zhǔn)確地判斷動(dòng)作序列對(duì)于有效地避免碰撞至關(guān)重要,根據(jù)當(dāng)前動(dòng)作的初始部分序列,對(duì)后期的動(dòng)作序列提前做出預(yù)測(cè),從而可以做出自身運(yùn)動(dòng)規(guī)劃,保證有效避免碰撞。
傳統(tǒng)的動(dòng)作預(yù)測(cè)依賴傳感器等裝置通過(guò)接觸式識(shí)別獲取信息,在這種方式下,實(shí)驗(yàn)操作者需要佩戴數(shù)據(jù)手套、穿戴動(dòng)捕服、粘貼標(biāo)識(shí)點(diǎn),雖然能獲取較高準(zhǔn)確度,但給動(dòng)作執(zhí)行者帶來(lái)了諸多不便,而且穿戴式傳感器造價(jià)高昂,不宜應(yīng)用于動(dòng)作預(yù)測(cè)[2]。人的動(dòng)作過(guò)程在時(shí)空范圍內(nèi)可以用一種復(fù)雜的動(dòng)作序列表示,神經(jīng)網(wǎng)絡(luò)是一種被廣泛應(yīng)用于機(jī)器學(xué)習(xí)的一種算法,可以對(duì)這種復(fù)雜的動(dòng)作序列進(jìn)行非常復(fù)雜的非線性分類。卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)擁有特有的參數(shù)共享機(jī)制,減少了參數(shù)數(shù)量和需要學(xué)習(xí)的自由變量個(gè)數(shù)從而節(jié)約計(jì)算成本[3],然而CNN在池化過(guò)程中容易使許多有用的信息丟失,會(huì)忽略掉整體與部分之間的關(guān)聯(lián),造成特征不匹配;CNN在時(shí)域數(shù)據(jù)上也無(wú)法建模,即當(dāng)動(dòng)作樣本序列對(duì)時(shí)域變化存在依賴時(shí),CNN無(wú)法被應(yīng)用。循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)可以應(yīng)用于對(duì)時(shí)間序列敏感的模型[4],但當(dāng)時(shí)間序列較長(zhǎng)時(shí),RNN難以學(xué)習(xí)和保留長(zhǎng)期的信息,在時(shí)間軸上易出現(xiàn)梯度消失或梯度爆炸等問(wèn)題,不適合對(duì)有遠(yuǎn)距離依賴關(guān)系的場(chǎng)景建模[5]。
深度學(xué)習(xí)在多媒體數(shù)據(jù)識(shí)別模式中具有更強(qiáng)大的能力[6]。長(zhǎng)短期記憶(long short-term memory,LSTM)算法在時(shí)間上具有記憶性,在空間上通過(guò)多層連接、權(quán)值共享的網(wǎng)絡(luò)結(jié)構(gòu)能夠得到更加理想的數(shù)據(jù)分類效果,在語(yǔ)音識(shí)別[7]、動(dòng)作識(shí)別[8]、入侵檢測(cè)分類[9]等方向的應(yīng)用有很好的效果。因?yàn)閯?dòng)作具有很強(qiáng)的時(shí)空關(guān)聯(lián)性且序列長(zhǎng)度大,故LSTM網(wǎng)絡(luò)適合用于動(dòng)作預(yù)測(cè)。人體骨骼具有耦合性質(zhì),因此復(fù)雜的人體具有一定的規(guī)律性與傾向性,動(dòng)作序列的變換具有約束性,所有的數(shù)據(jù)都是在有約束的條件下產(chǎn)生。
本文針對(duì)融合人體骨骼具有耦合性的性質(zhì),在有約束條件下將人體動(dòng)作序列作為輸入送入LSTM網(wǎng)絡(luò)訓(xùn)練,減少不合理數(shù)據(jù)的生成,加強(qiáng)動(dòng)作預(yù)測(cè)模型的可行性與實(shí)用性,提高預(yù)測(cè)準(zhǔn)確度。在測(cè)試中,輸入新的人體動(dòng)作序列,獲取未來(lái)可能的動(dòng)作序列。
將人體幾何特征簡(jiǎn)化成骨架姿態(tài),對(duì)判斷人的狀態(tài)和行為有很好的分類效果,可以降低因?yàn)橐蕾囉谌梭w幾何形狀的數(shù)據(jù)建模帶來(lái)的困難。如圖1(a)所示,本文研究利用OpenPose[10]提取的25個(gè)人體聯(lián)系關(guān)鍵點(diǎn)并將其作為人體置信圖。利用多視圖二維關(guān)節(jié)三角化的方式可提取三維關(guān)節(jié)點(diǎn),能夠?qū)崟r(shí)地獲取人體關(guān)節(jié)的空間坐標(biāo),構(gòu)成人體關(guān)節(jié)的空間軌跡,三維人體骨架姿態(tài)如圖1(b)所示。
圖1 OpenPose提取人體關(guān)鍵點(diǎn)和三維人體骨架姿態(tài)
將人體關(guān)節(jié)的空間坐標(biāo)在T時(shí)段內(nèi)的變化表示為多元時(shí)間序列,在裝配工作中,人體肢體雙臂為主要活動(dòng)部位,即圖1(b)中關(guān)鍵點(diǎn)1—7連線(4—3—2—1—5—6—7),此7個(gè)點(diǎn)的坐標(biāo)變化可以反映人體雙臂的運(yùn)動(dòng)情況,因此,將人體雙臂7個(gè)關(guān)鍵點(diǎn)的坐標(biāo)及變化作為主要研究對(duì)象。
使用拉普拉斯評(píng)分(Laplacian scoring,LS)算法從位姿數(shù)據(jù)空間中實(shí)行降維過(guò)濾出鑒別特征向量。它的基本思想是2個(gè)特征之間的距離越近,它們被歸為同一類的概率越高,解決了高維數(shù)據(jù)處理中耗時(shí)問(wèn)題及運(yùn)動(dòng)數(shù)據(jù)的數(shù)據(jù)冗余造成關(guān)鍵數(shù)據(jù)性能降低的問(wèn)題。
利用運(yùn)動(dòng)向量集構(gòu)造一個(gè)K近鄰圖,然后通過(guò)評(píng)估第i個(gè)節(jié)點(diǎn)xi和第j個(gè)節(jié)點(diǎn)xj之間的相似性Sij計(jì)算運(yùn)動(dòng)矢量的評(píng)分,在K近鄰圖的定義中
(1)
式中t為一個(gè)常量。Sij體現(xiàn)了人體各關(guān)鍵點(diǎn)動(dòng)作的局部拓?fù)浣Y(jié)構(gòu)特征。
fri為節(jié)點(diǎn)i的第r個(gè)動(dòng)作特征,frj為節(jié)點(diǎn)j的第r個(gè)動(dòng)作特征,fr=[Jr1,Jr2,…,Jrm]T為第r個(gè)特征在所有樣本中的值所組成的向量,定義LS目標(biāo)函數(shù)
(2)
式中 Var(fr)為第r個(gè)動(dòng)作特征的估計(jì)方差,隨機(jī)變量a的估計(jì)方差定義
(3)
式中M為數(shù)據(jù)流形,a為隨機(jī)變量,μ為a的期望值,dP(a)為a的概率分布函數(shù)。通過(guò)最小化目標(biāo)函數(shù)(2)表示姿態(tài)的運(yùn)動(dòng)值,將評(píng)分較低的Lr值作為人體動(dòng)作特征判別向量。
f′r,r+29=[J′r,J′r+1,…,J′r+29]T
(4)
采用LS算法,利用式(2)從f′r,r+29獲取各個(gè)運(yùn)動(dòng)向量的Lr值,從評(píng)分低的運(yùn)動(dòng)向量中獲取具有判別性的運(yùn)動(dòng)特征向量fsub。根據(jù)最小二乘法的定義,fsub可以準(zhǔn)確地表征每一幀中位姿的局部運(yùn)動(dòng)特征;再選取判別特征向量fsub曲線上的局部極值點(diǎn)作為一組候選關(guān)鍵幀fc,將原始輸出層中得到的數(shù)據(jù)擁有極值的幀插入到fc中,形成關(guān)鍵幀f′c的初始集合。
采用動(dòng)態(tài)聚類算法ISODATA算法[11]并結(jié)合動(dòng)作極值點(diǎn)實(shí)行細(xì)化初始化f′c,用所有聚類的代表性的幀構(gòu)造一組關(guān)鍵幀f*。最后得到的f*為通過(guò)該約束條件算法得到的輸出。
LSTM網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 LSTM網(wǎng)絡(luò)結(jié)構(gòu)
LSTM網(wǎng)絡(luò)的訓(xùn)練方法是基于時(shí)間的反向傳播(back propagation through time,BPTT)算法,主要由4個(gè)步驟組成:1)前向計(jì)算方法計(jì)算LSTM網(wǎng)絡(luò)的輸出值;2)反向計(jì)算每個(gè)LSTM單元的誤差項(xiàng),包括按時(shí)間和網(wǎng)絡(luò)層級(jí)2個(gè)反向傳播的方向;3)根據(jù)相應(yīng)的誤差項(xiàng),計(jì)算各個(gè)權(quán)重的梯度;4)使用基于梯度下降(gradient descent)的優(yōu)化算法更新權(quán)重。
本文對(duì)傳統(tǒng)的原始LSTM網(wǎng)絡(luò)進(jìn)行了改進(jìn),在原始輸出層后通過(guò)全連接方式增加了一個(gè)原始輸出處理層,作用是融合人體骨骼具有耦合性的性質(zhì),以此作為約束條件應(yīng)用在模型訓(xùn)練中,原始輸出層數(shù)據(jù)在約束條件作用下進(jìn)行變換,原始輸出處理層通過(guò)式(1)~式(4)與ISODATA聚類算法將原始輸出層中得到的初始結(jié)果經(jīng)變換輸出f*,再通過(guò)全連接輸出層、SoftMax激活函數(shù)層、最終輸出層后得到預(yù)測(cè)結(jié)果。網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 網(wǎng)絡(luò)模型結(jié)構(gòu)示意
全連接層對(duì)來(lái)自原始輸出處理層的數(shù)據(jù)執(zhí)行線性變換,使其輸出與網(wǎng)絡(luò)的最終輸出維度相等;通過(guò)一個(gè)SoftMax層,將全連接層的輸出歸一化并轉(zhuǎn)換為每個(gè)可能的最終位置相對(duì)應(yīng)的概率;最后,選擇具有最大后驗(yàn)概率的關(guān)鍵點(diǎn)坐標(biāo)作為預(yù)測(cè)結(jié)果。每個(gè)網(wǎng)絡(luò)的輸入分別通過(guò)OpenPose中提取到的7個(gè)人體上半身部位在0~30幀內(nèi)的空間坐標(biāo),最終輸出為預(yù)測(cè)的7個(gè)部位在未來(lái)15幀內(nèi)可能的動(dòng)作序列,由此表示為對(duì)人體可能的運(yùn)動(dòng)軌跡的預(yù)測(cè)。
實(shí)驗(yàn)臺(tái)布置如圖4所示,機(jī)器人前實(shí)驗(yàn)臺(tái)上擺放的工具是實(shí)驗(yàn)人員要對(duì)其做出抓取、傳遞或接收等動(dòng)作的對(duì)象;機(jī)器人后方的雙目攝像頭對(duì)著實(shí)驗(yàn)人員,作為OpenPose簡(jiǎn)化人體肢體的工具;計(jì)算機(jī)控制系統(tǒng)采集雙目攝像頭中的肢體數(shù)據(jù)并將其轉(zhuǎn)換為三維動(dòng)作序列,訓(xùn)練階段處理訓(xùn)練集,測(cè)試階段處理測(cè)試集;實(shí)驗(yàn)人員在實(shí)驗(yàn)臺(tái)前進(jìn)入雙目攝像頭視線范圍內(nèi),對(duì)實(shí)驗(yàn)臺(tái)上的工具做出抓取、傳遞、接收等一系列動(dòng)作,提供動(dòng)作序列。
基于該裝配實(shí)驗(yàn)場(chǎng)景,人的肢體是主要運(yùn)動(dòng)部位,根據(jù)人體肢體關(guān)鍵點(diǎn)的坐標(biāo)變化表示對(duì)人體動(dòng)作的執(zhí)行情況,機(jī)器人視角如圖5所示,雙目攝像頭中的肢體數(shù)據(jù)傳輸給計(jì)算機(jī)控制系統(tǒng)。
在實(shí)驗(yàn)中,計(jì)算機(jī)控制系統(tǒng)對(duì)上半身7個(gè)關(guān)鍵點(diǎn)(1,2,3,4,5,6,7)數(shù)據(jù)進(jìn)行提取并合成處理,將雙目視覺中的二維像素點(diǎn)轉(zhuǎn)換為三維空間點(diǎn),再將三維空間點(diǎn)送入改進(jìn)后的LSTM網(wǎng)絡(luò)模型中訓(xùn)練,獲取訓(xùn)練好的權(quán)重模型。多次重復(fù)這些動(dòng)作,因?yàn)槿说膭?dòng)作具有隨機(jī)性,所以多次執(zhí)行同一種動(dòng)作(抓取、傳遞、接收等)的動(dòng)作軌跡不會(huì)完全相同,送入模型的訓(xùn)練集更具代表性,模型的泛化能力可以隨之增強(qiáng)。
圖4 實(shí)驗(yàn)臺(tái)布置 圖5 實(shí)驗(yàn)場(chǎng)景中機(jī)器人視角
在Ubuntu16.04 64位操作系統(tǒng)下,GTX TITAN XP GPU的臺(tái)式機(jī),使用Python3.5,參照第2節(jié)網(wǎng)絡(luò)模型搭建LSTM網(wǎng)絡(luò)。
訓(xùn)練樣本是前30幀初始動(dòng)作軌跡序列與后15幀動(dòng)作軌跡的組合,組合形式為(f1,30,f31,45)。設(shè)置學(xué)習(xí)率、迭代步數(shù)等超參數(shù),采用正交初始化對(duì)網(wǎng)絡(luò)的權(quán)重和偏置參數(shù)隨機(jī)初始化,將一組數(shù)據(jù)輸入經(jīng)網(wǎng)絡(luò)權(quán)值矩陣W計(jì)算得到的網(wǎng)絡(luò)輸出J與本組數(shù)據(jù)標(biāo)簽J′做計(jì)算交叉熵(cross-entropy)作為誤差函數(shù),表達(dá)式如下
(5)
使用Adam算法作為梯度下降的優(yōu)化算法,優(yōu)化誤差函數(shù)Loss對(duì)權(quán)值矩陣W的梯度,更新網(wǎng)絡(luò)權(quán)重直至網(wǎng)絡(luò)收斂。實(shí)驗(yàn)相關(guān)參數(shù)設(shè)置如表1所示。
表1 LSTM預(yù)測(cè)模型網(wǎng)絡(luò)相關(guān)參數(shù)
當(dāng)經(jīng)過(guò)10 000次迭代訓(xùn)練后,誤差函數(shù)在局部極小值附近振蕩,模型基本收斂,將此時(shí)的模型保存用于預(yù)測(cè)測(cè)試。
在測(cè)試階段,將采集到的實(shí)驗(yàn)人員對(duì)實(shí)驗(yàn)臺(tái)上的工具做出抓取傳遞等動(dòng)作數(shù)據(jù)作為測(cè)試數(shù)據(jù)并輸入送入LSTM網(wǎng)絡(luò),根據(jù)當(dāng)前的動(dòng)作軌跡預(yù)測(cè)后期的動(dòng)作軌跡。各網(wǎng)絡(luò)預(yù)測(cè)模型對(duì)關(guān)鍵點(diǎn),預(yù)測(cè)軌跡結(jié)果如圖6所示。
在一次抓取實(shí)驗(yàn)測(cè)試中,以關(guān)鍵點(diǎn)7(左手)為例,實(shí)際軌跡與預(yù)測(cè)軌跡效果如圖6(a)所示。實(shí)際動(dòng)作軌跡(粗線)的提取與預(yù)測(cè)動(dòng)作軌跡(細(xì)線)的擬合程度體現(xiàn)了該網(wǎng)絡(luò)的預(yù)測(cè)效果與泛化能力。作為對(duì)比,基于模型訓(xùn)練實(shí)驗(yàn)中采集到的數(shù)據(jù),將此數(shù)據(jù)分別訓(xùn)練未做改進(jìn)的LSTM模型和改進(jìn)后的RNN模型,未做改進(jìn)的LSTM(LSTM—2)在訓(xùn)練中沒有將骨骼耦合性質(zhì)作為約束條件,無(wú)本文網(wǎng)絡(luò)預(yù)測(cè)模型中的原始輸出處理層,是無(wú)任何改進(jìn)的傳統(tǒng)LSTM網(wǎng)絡(luò);RNN的改進(jìn)點(diǎn)同樣在訓(xùn)練時(shí)將骨骼耦合性質(zhì)作為約束條件。關(guān)鍵點(diǎn)7的實(shí)際軌跡與預(yù)測(cè)軌跡效果如圖6(b)和(c)所示。
圖6 各網(wǎng)絡(luò)模型預(yù)測(cè)軌跡
準(zhǔn)確率=
(6)
在對(duì)關(guān)鍵點(diǎn)7的研究實(shí)驗(yàn)中,融合了骨骼耦合性質(zhì)的LSTM神經(jīng)網(wǎng)絡(luò)對(duì)其軌跡預(yù)測(cè)的準(zhǔn)確率達(dá)到了83.79 %,比未融合骨骼耦合性質(zhì)的LSTM神經(jīng)網(wǎng)絡(luò)(72.19 %)與RNN(44.85 %)要高,本文設(shè)計(jì)的預(yù)測(cè)模型效果更好。
各網(wǎng)絡(luò)預(yù)測(cè)模型對(duì)7個(gè)關(guān)鍵點(diǎn)軌跡預(yù)測(cè)的準(zhǔn)確率對(duì)比如圖7所示,融合了骨骼耦合性質(zhì)的LSTM神經(jīng)網(wǎng)絡(luò)(LSTM—1)預(yù)測(cè)模型對(duì)7個(gè)關(guān)鍵點(diǎn)軌跡預(yù)測(cè)的準(zhǔn)確率均達(dá)到了80 %以上,優(yōu)于未融合骨骼耦合性質(zhì)的LSTM神經(jīng)網(wǎng)絡(luò)(LSTM—2),遠(yuǎn)超過(guò)RNN。
圖7 不同網(wǎng)絡(luò)預(yù)測(cè)模型對(duì)比實(shí)驗(yàn)結(jié)果
LSTM因?yàn)槠涮厥獾拈T結(jié)構(gòu),所以LSTM模型的預(yù)測(cè)效果優(yōu)于RNN,尤其當(dāng)時(shí)間序列較長(zhǎng)時(shí),LSTM優(yōu)勢(shì)更加明顯,當(dāng)融合了骨骼耦合性質(zhì)并將其作為約束條件時(shí),LSTM預(yù)測(cè)效果得到了進(jìn)一步提升。該對(duì)比實(shí)驗(yàn)證明,當(dāng)融合了骨骼耦合性質(zhì)的LSTM動(dòng)作軌跡預(yù)測(cè)模型擁有更加準(zhǔn)確的預(yù)測(cè)效果。
本文的創(chuàng)新點(diǎn)在于提出的動(dòng)作預(yù)測(cè)模型融合了人體骨骼具有耦合性的性質(zhì),并將其性質(zhì)作為動(dòng)作預(yù)測(cè)模型訓(xùn)練的約束條件,該方法提升了動(dòng)作預(yù)測(cè)的準(zhǔn)確率。對(duì)比CNN,RNN及未改進(jìn)的LSTM,CNN在時(shí)域上無(wú)法建模,RNN在長(zhǎng)距離序列上建模表現(xiàn)差,未改進(jìn)的LSTM會(huì)有部分不合理數(shù)據(jù)生成進(jìn)而會(huì)影響到人機(jī)協(xié)作效率,本文所提出的動(dòng)作預(yù)測(cè)模型效果更好,優(yōu)勢(shì)更明顯,該模型不僅保留了LSTM自身已擁有的優(yōu)勢(shì),并且其優(yōu)越的性能擴(kuò)大了LSTM的優(yōu)勢(shì),輸出的數(shù)據(jù)合理性更強(qiáng),進(jìn)一步提升了動(dòng)作預(yù)測(cè)的準(zhǔn)確性,使人機(jī)協(xié)作在安全高效的狀態(tài)下執(zhí)行有了更大的保障。
但本文所提出的基于骨骼耦合性質(zhì)的約束條件也有局限性。1)OpenPose在人體出現(xiàn)遮擋時(shí)容易出現(xiàn)漏識(shí)別,在多人聚集或有接觸時(shí)容易出現(xiàn)誤識(shí)別,此時(shí)的關(guān)鍵幀提取也會(huì)不合理,魯棒性差,優(yōu)化效果不強(qiáng);2)ISODATA聚類算法和基于Laplacian評(píng)分的特征選擇不能保證關(guān)鍵幀提取的最優(yōu)性,當(dāng)動(dòng)作出現(xiàn)較劇烈的變化時(shí),有很大概率會(huì)出現(xiàn)數(shù)據(jù)冗余造成準(zhǔn)確率低下,此時(shí)得到的數(shù)據(jù)耦合性不強(qiáng)、結(jié)果不緊湊。因此,本文所提出的方法適用于在遮擋少、實(shí)驗(yàn)人員少的簡(jiǎn)單環(huán)境中,后期將重點(diǎn)研究對(duì)復(fù)雜以及在多人環(huán)境下的建模。