占 宏, 吳碧霄, 楊辰光
(華南理工大學(xué)自動(dòng)化科學(xué)與工程學(xué)院,廣州 510641)
近年來(lái),機(jī)器視覺(jué)和人工智能技術(shù)的發(fā)展有力推動(dòng)了人機(jī)交互技術(shù)在各領(lǐng)域中的應(yīng)用,如康復(fù)醫(yī)療、教育培訓(xùn)、智能家居、娛樂(lè)游戲等[1-4]。與傳統(tǒng)的鼠標(biāo)、鍵盤(pán)等接觸式交互方式相比,基于人體手勢(shì)的交互模式更加方便、自然、直觀,有著廣闊的應(yīng)用前景?,F(xiàn)有的手勢(shì)交互技術(shù)主要包括基于非視覺(jué)和基于視覺(jué)兩大類(lèi),前者主要采用數(shù)據(jù)手套等可穿戴設(shè)備來(lái)進(jìn)行手部相關(guān)數(shù)據(jù)的采集,但該類(lèi)設(shè)備價(jià)格昂貴,舒適性不夠;后者利用相機(jī)以非接觸方式獲取手部信息,更加友好、安全,因此基于視覺(jué)的手勢(shì)交互技術(shù)成為研究熱點(diǎn)[5-6]。
基于視覺(jué)手勢(shì)交互技術(shù)的關(guān)鍵是手勢(shì)識(shí)別,傳統(tǒng)的手勢(shì)識(shí)別技術(shù)通常采集手勢(shì)的二維圖像經(jīng)預(yù)處理,再利用模板匹配等方式完成手勢(shì)識(shí)別。一方面,采集的二維圖像相比于深度相機(jī)所獲取的三維圖像信息少;另一方面,由于易受環(huán)境背景、光線問(wèn)題以及手勢(shì)角度等因素影響,導(dǎo)致該類(lèi)算法效率低、識(shí)別率不高[7-9]。因此,本文利用3D手勢(shì)傳感器Leap Motion采集手部運(yùn)動(dòng)數(shù)據(jù),采用基于深度學(xué)習(xí)的手勢(shì)預(yù)測(cè)識(shí)別算法提高識(shí)別率,同時(shí)將手勢(shì)識(shí)別與機(jī)器人控制相結(jié)合,搭建人機(jī)交互實(shí)驗(yàn)平臺(tái),用于實(shí)驗(yàn)教學(xué)中。
本文設(shè)計(jì)的平臺(tái)主要包括操作者、Leap Motion手勢(shì)傳感器、機(jī)器人、計(jì)算機(jī)等4部分,整體設(shè)計(jì)框圖如圖1所示,平臺(tái)可實(shí)現(xiàn)Leap Motion數(shù)據(jù)采集、手部特征提取、手勢(shì)預(yù)測(cè)識(shí)別3大功能。其中,Leap Motion是一款基于視覺(jué)的3D手勢(shì)交互設(shè)備,內(nèi)置有2個(gè)深度攝像頭和3個(gè)紅外發(fā)光二極管,能夠捕捉操作者手部運(yùn)動(dòng)數(shù)據(jù)信息并通過(guò)USB接口與計(jì)算機(jī)通信[10-11]。該實(shí)驗(yàn)平臺(tái)中的機(jī)器人可以是仿人機(jī)器人、工業(yè)機(jī)械手等,算法采用Python編程語(yǔ)言進(jìn)行開(kāi)發(fā),具有一定通用性。
圖1 平臺(tái)整體框圖
平臺(tái)的整體實(shí)施方案:①采用Leap Motion檢測(cè)并跟蹤用戶(hù)的手部運(yùn)動(dòng),將所采集的手部數(shù)據(jù)信息進(jìn)行處理;②提取用戶(hù)手勢(shì)動(dòng)作執(zhí)行過(guò)程中手部坐標(biāo)、長(zhǎng)度、角度特征;③利用長(zhǎng)短期記憶網(wǎng)絡(luò)(Long-Short Term Memory network,LSTM)對(duì)用戶(hù)行為意圖進(jìn)行提前預(yù)測(cè)識(shí)別;④根據(jù)預(yù)測(cè)結(jié)果實(shí)時(shí)做出決策并生成相應(yīng)控制指令傳輸至機(jī)器人。本文以猜拳游戲?yàn)槔M(jìn)行人機(jī)交互實(shí)驗(yàn),同時(shí)提高人機(jī)交互過(guò)程中的趣味性、體驗(yàn)感。
(1)數(shù)據(jù)采集。手部?jī)?nèi)骨骼中每個(gè)手指都包括掌骨、近節(jié)指骨、中節(jié)指骨和遠(yuǎn)節(jié)指骨4部分(由于大拇指無(wú)中節(jié)指骨,為了各手指的統(tǒng)一性,將其中節(jié)指骨的長(zhǎng)度假設(shè)為0),由Leap Motion獲取手部信息,并采用卡爾曼濾波算法對(duì)所采集的手部原始數(shù)據(jù)進(jìn)行處理,以減小Leap Motion在獲取手部數(shù)據(jù)信息時(shí)發(fā)生抖動(dòng)和跳變等現(xiàn)象對(duì)精度的影響。
(2)坐標(biāo)系定義。Leap Motion坐標(biāo)系Oxyz,以設(shè)備頂部表面中心位置為原點(diǎn)O,x和z分別指向設(shè)備長(zhǎng)邊和側(cè)邊方向,y為豎直方向,如圖2(a)所示。為后續(xù)處理方便,定義手掌坐標(biāo)系O′x′y′z′,以手掌心為原點(diǎn)O′,掌心到中指根部方向?yàn)閥′軸方向,x′軸為垂直于y′軸的方向,z′軸為垂直于x′軸與y′軸形成的平面方向,如圖2(b)所示。Leap Motion獲取的手部信息主要包括手指?jìng)€(gè)數(shù)n(n=1,2,…,5),三維空間中第i個(gè)手指關(guān)節(jié)位置坐標(biāo)pi(xi,yi,zi)(i=1,2,…,20)以及手部掌心位置坐標(biāo)p0(x0,y0,z0)。
圖2 坐標(biāo)系定義
為提升手勢(shì)預(yù)測(cè)識(shí)別精度,此模塊提取手部數(shù)據(jù)的3種特征,即:坐標(biāo)特征、長(zhǎng)度特征和角度特征[12]。
(1)坐標(biāo)特征。表示手指關(guān)節(jié)在手掌坐標(biāo)系中的位置。假設(shè)采集的手指關(guān)節(jié)pi(xi,yi,zi)在手掌坐標(biāo)系中的坐標(biāo)為p′i(x′i,y′i,z′i),其中i=1,2,…,20。顯然,向量、My=(x9-x0,y9-y0,z9-z0)和分別在手掌坐標(biāo)系中x′、y′、z′軸的正方向上。定義Ex′、Ey′和Ez′分別為x′、y′、z′軸的單位向量,P(p0,pi)為點(diǎn)p0到點(diǎn)pi的向量。那么,由幾何關(guān)系可知:
式中:Ex′=。
(2)長(zhǎng)度特征。表示每個(gè)手指指尖與手掌心之間的距離,即:L(n)(n=1,2,…,5),定義變量k=4×n,那么由幾何關(guān)系有:
(3)角度特征。表示每個(gè)手指(除大拇指外)的近節(jié)指骨和中節(jié)指骨之間的角度,大拇指則提取遠(yuǎn)節(jié)指骨和近節(jié)指骨之間的角度,用αn表示角度。定義P(pi,pj)為點(diǎn)pi到點(diǎn)pj的向量,且i≠j,變量m=4×n(n=2,3,4,5),那么由幾何關(guān)系有:
LSTM結(jié)構(gòu)如圖3所示,它是一種改進(jìn)的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),增加了3個(gè)門(mén)來(lái)控制信息記憶與遺忘,有效地解決了RNN的長(zhǎng)期依賴(lài)問(wèn)題[13]。因此,LSTM在時(shí)間序列相關(guān)問(wèn)題處理中應(yīng)用廣泛[14-15]。
圖3 LSTM網(wǎng)絡(luò)結(jié)構(gòu)
為增強(qiáng)趣味性,本文采用“石頭、剪刀、布”猜拳游戲人機(jī)交互實(shí)驗(yàn)。游戲中手勢(shì)變換過(guò)程通??煞譃?個(gè)階段,以“石頭”手勢(shì)變換為“布”為例:①初始階段,手勢(shì)剛開(kāi)始,仍處于“石頭”狀態(tài);②中間階段,手勢(shì)與初始階段明顯不同,5個(gè)手指有一定程度張開(kāi);③完成階段,手勢(shì)接近于完成狀態(tài),基本是布的狀態(tài)。由于不同人出拳速度不一樣,每個(gè)手勢(shì)包含2-6幀,因此,在LSTM網(wǎng)絡(luò)中設(shè)置輸入幀數(shù)T=4,即4幀數(shù)據(jù)作為網(wǎng)絡(luò)的輸入信息。網(wǎng)絡(luò)的輸入層為提取的3種手部運(yùn)動(dòng)特征,隱藏層節(jié)點(diǎn)個(gè)數(shù)設(shè)置為100,網(wǎng)絡(luò)輸出為手勢(shì)預(yù)測(cè)的3種結(jié)果,即石頭、剪刀、布。
本文以猜拳游戲?yàn)槔M(jìn)行人機(jī)交互實(shí)驗(yàn)驗(yàn)證的案例實(shí)驗(yàn),搭建實(shí)驗(yàn)平臺(tái)采用的主要硬件有:Magic Leap公司生產(chǎn)的Leap Motion手勢(shì)傳感器,內(nèi)置有2個(gè)深度攝像頭和3個(gè)紅外發(fā)光二極管,視場(chǎng)范圍可達(dá)120×150°;聯(lián)想品牌thinkpad計(jì)算機(jī),CPU為i5-6200U,用WIN10操作系統(tǒng);Active8 Robots公司的AR-10仿人多指機(jī)械手,有10自由度,具有10個(gè)伺服電動(dòng)機(jī),可實(shí)現(xiàn)多種姿勢(shì);Aldebaran Robotics公司的第一代NAO雙足人形機(jī)器人,高58 cm,質(zhì)量約5.4 kg,具有25自由度,配置有攝像頭、擴(kuò)音器、紅外發(fā)射器、觸覺(jué)傳感器等,支持跨平臺(tái)及多種編程語(yǔ)言,能夠通過(guò)語(yǔ)音系統(tǒng)、肢體動(dòng)作靈活地與人進(jìn)行互動(dòng)響應(yīng)。
(1)手勢(shì)預(yù)測(cè)識(shí)別。由Leap Motion采集5人不同手勢(shì)數(shù)據(jù),其中每人分別以快、中、慢速度出拳各300次,共4500個(gè)不同數(shù)據(jù)樣本。將樣本數(shù)據(jù)經(jīng)卡爾曼濾波處理,提取坐標(biāo)特征、長(zhǎng)度特征、角度特征作為L(zhǎng)STM網(wǎng)絡(luò)模型的輸入并進(jìn)行模型訓(xùn)練,實(shí)驗(yàn)的手勢(shì)預(yù)測(cè)結(jié)果正確率可達(dá)到99.31%。同時(shí),本文對(duì)手勢(shì)預(yù)測(cè)和識(shí)別模塊的實(shí)時(shí)性進(jìn)行了驗(yàn)證,如圖4所示。實(shí)驗(yàn)中,操作者的手勢(shì)由石頭變換為剪刀時(shí),LSTM網(wǎng)絡(luò)能夠在操作者所有手指完成剪刀動(dòng)作之前準(zhǔn)確預(yù)測(cè)出其出拳動(dòng)作。
圖4 手勢(shì)預(yù)測(cè)過(guò)程
(2)猜拳游戲?qū)嶒?yàn)。在猜拳游戲中,由于NAO機(jī)器人手部的3根手指連在一起,因此定義手部完全握緊狀態(tài)為“石頭”、非完全張開(kāi)為“剪刀”、完全打開(kāi)為“布”狀態(tài)。采用NAO機(jī)器人的左手與操作者進(jìn)行互動(dòng),將所訓(xùn)練的LSTM網(wǎng)絡(luò)模型應(yīng)用于機(jī)器人,由Leap Motion采集操作者的手部數(shù)據(jù)信息并經(jīng)卡爾曼濾波處理;然后提取手部特征,由LSTM網(wǎng)絡(luò)對(duì)手勢(shì)動(dòng)作進(jìn)行預(yù)測(cè);并根據(jù)猜拳游戲規(guī)則,即“石頭”贏“布”、“布”贏“剪刀”、“剪刀”贏“石頭”,實(shí)時(shí)做出決策并將結(jié)果傳輸給機(jī)器人執(zhí)行相應(yīng)出拳動(dòng)作。經(jīng)多次實(shí)驗(yàn),AR-10機(jī)械手和NAO機(jī)器人都能夠?qū)崟r(shí)地完成出拳動(dòng)作并獲勝,如圖5所示。
圖5 人機(jī)互動(dòng)實(shí)驗(yàn)
本文設(shè)計(jì)并搭建的機(jī)器人手勢(shì)預(yù)測(cè)識(shí)別實(shí)驗(yàn)平臺(tái),由Leap Motion跟蹤并采集手部運(yùn)動(dòng)數(shù)據(jù),通過(guò)提取手部多個(gè)特征,并采用LSTM網(wǎng)絡(luò)模型對(duì)手勢(shì)動(dòng)作進(jìn)行提前預(yù)測(cè)識(shí)別,模型訓(xùn)練及測(cè)試結(jié)果表明手勢(shì)預(yù)測(cè)實(shí)時(shí)性高、正確率可達(dá)99.31%,同時(shí)由猜拳游戲驗(yàn)證了實(shí)驗(yàn)平臺(tái)的有效性。該平臺(tái)具有通用性強(qiáng)、綜合實(shí)踐性強(qiáng)的特點(diǎn),可開(kāi)展不同應(yīng)用研究,為機(jī)器人工程專(zhuān)業(yè)相關(guān)實(shí)踐教學(xué)提供創(chuàng)新實(shí)驗(yàn)平臺(tái),提升實(shí)驗(yàn)教學(xué)效果[14-15]。