王賦攀 吳亞東,2 楊文超 楊 帆 侯佳鑫 廖 競
1(西南科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院 四川綿陽 621010) 2(西南科技大學(xué)四川省軍民融合研究院 四川綿陽 621010) 3(達闥科技成都有限公司 成都 610100) 4(法國國家科學(xué)研究中心電子、計算與成像科學(xué)實驗室(勃艮第大學(xué)) 法國第戎 21078)
手勢交互是一種重要的自然交互方式,在基于手勢的虛擬現(xiàn)實交互應(yīng)用中,手勢定位和識別是交互過程中的關(guān)鍵環(huán)節(jié),良好的交互體驗要求兼顧準(zhǔn)確率和實時性.手勢數(shù)據(jù)的獲取可分為基于視覺的識別和基于可穿戴設(shè)備(數(shù)據(jù)手套)的識別2個基本類別[1-2].與基于視覺的手勢識別技術(shù)相比,基于數(shù)據(jù)手套的手勢識別反應(yīng)靈敏、精度高、實時性好、沉浸感強.數(shù)據(jù)手套不受攝像頭視場區(qū)域約束和遮擋,不受空間限制;其信息獲取通道獨立,高性能傳感器和處理器使之滿足高精度、實時性的要求,避免視覺手勢識別方法復(fù)雜算法支撐造成的資源和時間消耗;可作為輸入/輸出通道,可提供力/觸覺反饋以獲取更自然的體驗感,在特定領(lǐng)域(如虛擬裝配、虛擬手術(shù)等特種操作)中具有重要的實用價值.
目前針對數(shù)據(jù)手套的相關(guān)研究主要集中在虛擬手精確建模、手勢識別、空間定位等方向.高龍琴等人[3]在建立虛擬手模型的基礎(chǔ)上, 以18個傳感器的CyberGlove數(shù)據(jù)手套作為手勢輸入設(shè)備, 通過人體手部運動學(xué)模型建立了數(shù)據(jù)手套與虛擬手之間的聯(lián)系;文獻[4-6]中也對基于數(shù)據(jù)手套的逼真虛擬手進行了討論;手勢識別方面,吳江琴等人[7]提出了用人工神經(jīng)網(wǎng)絡(luò)(artificial neural network, ANN)和隱Markov模型(hidden Markov model, HMM)混合方法訓(xùn)練手勢并應(yīng)用于中國手語識別系統(tǒng);呂蕾等人[8]使用具有噪聲的基于密度的聚類方法對手指特征點進行聚類以構(gòu)造手勢模板,實現(xiàn)高效的手勢識別;Parvini等人[9]提出一種基于手指關(guān)節(jié)生物力學(xué)特征的識別算法,并在美國手語(American sign language, ASL)識別中得以應(yīng)用;Iwasako等人[10]提出了一種基于5DT-14數(shù)據(jù)手套的手語訓(xùn)練系統(tǒng),通過對手勢的3D建模實現(xiàn)了對手勢的精確還原并糾正學(xué)習(xí)者的動作;蔡興泉等人[11]分析了基于無線數(shù)據(jù)手套的手勢識別方法,以空間移動加速度信息判斷手勢動作,以手勢和按鍵組合完成各種復(fù)雜交互;呂美玉等人[12]設(shè)計了一種數(shù)據(jù)手套和雙目視覺技術(shù)相結(jié)合的方法,提出基于2個垂直攝像頭的空間點定位與跟蹤模型.
數(shù)據(jù)手套在實際應(yīng)用中的問題主要體現(xiàn)在:1)手勢識別精度取決于傳感器節(jié)點的布設(shè)數(shù)量和位置,相應(yīng)的標(biāo)定和解算復(fù)雜,對處理芯片運算能力要求高[13];2)采用外骨骼、氣動肌肉等形式獲取力反饋通道造成結(jié)構(gòu)復(fù)雜、重量增加,影響用戶體驗;3)傳感器本身無法提供位置信息,通常需要在手套上加裝位置跟蹤系統(tǒng),采用電磁、超聲、紅外等方式反饋手部的空間信息,需要增加更多的模塊,實現(xiàn)復(fù)雜,效果不穩(wěn)定;4)不同型號與規(guī)格導(dǎo)致相應(yīng)的特征提取、手勢識別算法缺乏通用性.
針對上述問題,本文提出了一種融合視覺信息的空間定位與手勢姿態(tài)解算的數(shù)據(jù)手套解決方案.該方案通過傳感器檢測手勢姿態(tài),借助視覺設(shè)備構(gòu)造模板庫,采用高效特征校驗霍夫變換實現(xiàn)位置追蹤,實現(xiàn)了設(shè)備的輕量化和運行的高效率,具有較強的可擴充性,可以滿足沉浸式實時虛擬現(xiàn)實交互系統(tǒng)的應(yīng)用要求.
視覺信息融合數(shù)據(jù)手套的整體框架由姿態(tài)檢測與解算、彎曲度檢測、手勢識別和空間位置追蹤等模塊組成,如圖1所示.姿態(tài)檢測解算模塊主要獲取手掌在三維空間的旋轉(zhuǎn)角;彎曲度檢測模塊采集手指彎曲程度數(shù)據(jù),該數(shù)據(jù)在視覺設(shè)備輔助下用于建立手勢模板;手勢識別模塊將實時獲取的手指彎曲度數(shù)據(jù)與模板庫進行比對以確定手勢;三維位置追蹤模塊通過視覺檢測與計算獲取手部在三維空間的實時位置移動信息.三維空間位置和經(jīng)過識別的手勢信息最終映射到虛擬手,實現(xiàn)虛擬空間中的交互.
Fig. 1 The design framework of data glove based on visual information fusion圖1 視覺信息融合數(shù)據(jù)手套設(shè)計框架
本文提出了一種簡化的手勢模板匹配方法,將傳感器數(shù)據(jù)與視覺采集信息聯(lián)合建模,實現(xiàn)了手勢的快速匹配與識別.該方法主要包含基于彎曲度傳感器數(shù)據(jù)的手勢采集與模板定義、手勢識別2個環(huán)節(jié).
1) 手勢采集與模板定義
為獲得彎曲度傳感器檢測數(shù)據(jù)與特定手勢的映射關(guān)系,借助了視覺識別設(shè)備.Leap公司的體感控制器LeapMotion可直接獲取手部骨骼點的相對位
置信息并建立靜態(tài)手勢模型.由于本文中的手勢識別主要面向虛擬裝配以及虛擬實驗等應(yīng)用,因此首先預(yù)設(shè)了常用的6種區(qū)分度較高的基本手勢并對其進行定義,如表1所示:
Table 1 The Definition of Hand Gestures表1 手勢定義
在對每種手勢進行模板采集時,需同時連接數(shù)據(jù)手套與體感控制設(shè)備.測試者佩戴數(shù)據(jù)手套,保持手勢穩(wěn)定,同時將LeapMotion置于前額與眼睛觀察視角一致,使手指彎曲度檢測數(shù)據(jù)和視覺設(shè)備獲取的關(guān)節(jié)點相對位置同步.針對不同手勢下的檢測數(shù)組和手型模板,采用多組測試數(shù)據(jù)平均值作為該手勢的最終模板.測試者由多名不同年齡、性別、體型人員組成.由于實際應(yīng)用中拇指、食指和中指3指的組合可以表達多數(shù)常用手勢,本方案中彎曲度傳感器檢測該3指數(shù)據(jù)作為輸入.采集測試結(jié)果如表2所示:
Table 2 Hand Template of Static Gestures表2 靜態(tài)手勢模板
表2中彎曲度檢測值為歸一化處理后的值.關(guān)節(jié)相對位置為虛擬手模型關(guān)節(jié)點相對掌心的位置信息,包括22個關(guān)節(jié)點相對于掌心關(guān)節(jié)的相對位置.視覺設(shè)備所測得的關(guān)節(jié)相對位置還將作為虛擬空間中虛擬手的構(gòu)造參數(shù).
2) 手勢識別
基于彎曲度數(shù)據(jù)與預(yù)定義手勢的映射關(guān)系,可將實時檢測數(shù)據(jù)與模板庫數(shù)據(jù)逐一計算歐氏距離,以最小距離的模板數(shù)據(jù)所對應(yīng)的手勢作為識別結(jié)果.視覺設(shè)備的作用是輔助采集手勢模板,采集完成即不再繼續(xù)使用.手勢的獲取與識別完全由彎曲傳感器數(shù)據(jù)決定.但存在的問題是在只定義6種手勢時,對空間中的虛擬手手勢的關(guān)節(jié)點相對位置數(shù)據(jù)也只有6組,即虛擬手的形狀只有6個.在系統(tǒng)運行中手勢的變化會非常突兀,影響用戶體驗.需要在已定義的手勢模板之間增加若干沒有特定手勢意義的模板,這些模板用來向虛擬手傳遞手勢動態(tài)變化.實驗中在6種基本手勢之外定義了4個無特定意義的模板,并選擇在動作差異相對較大的“Fist”與“Palm”,“Okay”與“Tap”這2組手勢之間采集模板數(shù)據(jù),該2組手勢在使用中通常連續(xù)出現(xiàn),如抓取和釋放、呼出菜單和點擊.由于彎曲度數(shù)據(jù)的獲取、手勢識別,以及手勢在虛擬空間中的映射是一個同步的過程,可采取一種分級的模板匹配識別方法,保證識別準(zhǔn)確率和動作平滑性.其過程如算法1所示.
算法1. 分級的模板匹配識別算法.
輸入:當(dāng)前幀所獲取的實時3指彎曲度檢測數(shù)據(jù)inputFingers;
輸出:手勢識別結(jié)果gestureTemplateList[i],包括預(yù)定義手勢序號i和當(dāng)前手勢對應(yīng)的虛擬手關(guān)節(jié)點相對位置.
① fori←0 to 5*6種預(yù)定義手勢模板*
②distance←sqrt((xi-x)2+(yi-y)2+
(zi-z)2);
③ ifD>distance
④D←distance;
⑤ end if
⑦ ifD≤T*閾值的選取同樣由測試者在每種有效手勢下的彎曲度數(shù)據(jù)計算與模板中對應(yīng)數(shù)據(jù)的歸一化距離取統(tǒng)計平均值*
⑨ end if
⑩ fori←0 to 3*4種無特定意義手勢模板*
(zi-z)2);
旋轉(zhuǎn)姿態(tài)解算模塊實現(xiàn)手部姿態(tài)檢測和解算功能,將手部旋轉(zhuǎn)狀態(tài)映射到虛擬空間的虛擬手,實現(xiàn)虛擬手的旋轉(zhuǎn)控制.使用卡爾曼濾波對本數(shù)據(jù)手套中的3軸加速度計和3軸陀螺儀測量值進行數(shù)據(jù)融合,解算出準(zhǔn)確的3軸旋轉(zhuǎn)姿態(tài)角度.采用四元數(shù)法控制旋轉(zhuǎn)方式以避免歐拉角萬向節(jié)死鎖問題[14],四元數(shù)可看作1個向量與1個實數(shù)的組合形式,向量v=(x,y,z)表示旋轉(zhuǎn)軸,w的值表示旋轉(zhuǎn)的大小,四元數(shù)法可完整表達繞任意軸旋轉(zhuǎn)任意角度:
q=(v,w)=((x,y,z),w).
(1)
馬克點是一種目標(biāo)標(biāo)定方式,本文對手套位置追蹤的基本思想是在手套上固定發(fā)光小球作馬克點,將其在二維平面的圓形位置和尺寸映射為三維空間的位置坐標(biāo),以此實現(xiàn)目標(biāo)的追蹤.該方法的核心是二維圖像中圓形的檢測.霍夫變換(Hough transform)[15]是一種可靠的圓形檢測算法,在實際應(yīng)用中通?;诨舴蛱荻确▽崿F(xiàn)圓的識別.但霍夫梯度法在使用中存在2個問題:1)需要借助高性能邊緣檢測算法如Canny算法來進行邊緣檢測,并且使用遍歷計算二值圖像中非零點的梯度以判決投票點,帶來較大的計算量,特別在圖像中還存在某些干擾輪廓時,會造成資源和時間的巨大消耗,嚴(yán)重影響了實時性;2)若邊緣輪廓質(zhì)量較差時會導(dǎo)致梯度方向的誤差累積,造成圓心定位的偏差.針對以上問題,本文提出了一種高效的利用特征校驗和改進霍夫梯度法的優(yōu)化算法,通過改進霍夫梯度法檢測圓形流程、引入特征校驗、設(shè)置特殊顏色發(fā)光球優(yōu)化邊緣檢測等措施降低復(fù)雜度,其實現(xiàn)過程如圖2所示:
Fig. 2 The workflow of position tracking based on feature checking Hough algorithm圖2 特征校驗霍夫變換位置追蹤算法流程
1) 基于改進霍夫變換的圓形檢測算法
在進行圓檢測時,等間距選取輪廓上的像素點作為圓周點,通過相鄰圓周點估計直徑方程.該直徑與對應(yīng)點的梯度方向相一致,類似霍夫梯度法,可沿該直徑方向設(shè)定一定數(shù)量投票點.圓周掃描完成后以投票數(shù)組中最大值對應(yīng)像素作為圓心,其原理如圖3所示:
Fig. 3 The improved Hough algorithm for circle detection圖3 改進的霍夫梯度法檢測圓
此外,流程中通過對邊界區(qū)域的判別機制可刪除部分非圓輪廓點,進一步提高運行效率.該優(yōu)化算法主要流程如算法2所示.
算法2. 基于改進霍夫變換的快速圓形檢測.
輸入:邊緣輪廓圖像vergemap、圖像尺寸width,height;
輸出:目標(biāo)圓thiscircle.
①vecArray=newVector2[height,width];*創(chuàng)建投票數(shù)組vecArray,存放投票數(shù)和半徑*
② for eachPixels∈vergemap*遍歷圖像以尋找邊緣輪廓點*
③ if 掃描到邊緣點像素X
④dotsList.add(X);
⑤ 更新集合區(qū)域框標(biāo)記T(xt,yt)和B(xb,yb)坐標(biāo);
⑥ ifX有鄰接邊緣點
⑦ 更新X點坐標(biāo);
⑨ end if
⑩ ifdotsList.Count>40*滿足點集數(shù)量的下限*
根據(jù)圓的特征判斷找到的連續(xù)邊緣點集dotsList是否可能為圓形區(qū)域,可以式(2)作為判斷條件,其方法可表達為:若該區(qū)域邊框的長寬比大于等于2(即式中的maxmin),則該點集區(qū)域不符合圓形特征.
max(|xt-xb|,|yt-yb|)<
2min(|xt-xb|,|yt-yb|),
(2)
(3)
y=ml′x+b.
(4)
Fig. 5 The binarization and edge detection of special color ball圖5 特殊顏色發(fā)光球二值化和邊緣檢測
圖3中L1,L2為通過點Ak具有相同弧長的對稱割線,可根據(jù)相鄰前一個點Ak-1和后一個點Ak+1得到,其斜率分別是ml1,ml2.通過點Ak切線L的斜率取ml1,ml2的均值,而過點Ak的直徑L′與切線L垂直(切線L的斜率計算如式(3)所示),因此直徑所在的直線方程為式(4),帶入點Ak坐標(biāo)計算出b值即可求解出直徑的方程.
2) 結(jié)合可信度和特征校驗的快速定位
對逐幀圖像采取改進后的霍夫梯度法進行檢測仍存在計算量較大的問題,為此進一步加入了特征校驗法則以提高算法的整體效率.在霍夫梯度法確定圓心和半徑后,從圓心處獲取圓周上的部分測試點,以半徑作為平均值計算這些測試點到圓心的距離的標(biāo)準(zhǔn)差,以該標(biāo)準(zhǔn)差進行一次可信度的判別.如可信度不低于特定閾值σref,(即標(biāo)準(zhǔn)差小于閾值),則說明該圓心可信度較高,在下一幀圖像中可基于當(dāng)前幀圓心,直接利用圓形特征校驗計算新的圓心位置進行更新.圖4表示了利用圓形特征獲取新的圓心的原理:以上一幀圓心O為極點,等幅度增加角度值向圓外掃描到的系列圓周點a,b,c,…,n,根據(jù)這n個圓周上的點求取質(zhì)心O′作為新的圓心位置,當(dāng)n較大時,質(zhì)心可近似表示圓心.如判斷可信度不夠,則繼續(xù)使用前述改進后的霍夫梯度法檢測圓.
Fig. 4 Locating the center of circle by feature checking圖4 特征校驗定位圓心
3) 使用特殊顏色發(fā)光球作為馬克點
利用發(fā)光球其明顯區(qū)別于環(huán)境背景的亮度、顏色特征,經(jīng)RGB灰度化處理快速實現(xiàn)圖像二值化和邊緣提取.該方法提高了邊緣檢測效率,同時能得到更高質(zhì)量的邊緣輪廓圖像.圖5分別為簡單背景和干擾背景下二值化及邊緣檢測的效果.
當(dāng)發(fā)光球位于攝像頭視場邊緣時會導(dǎo)致所獲球體圖像不完整,對部分區(qū)域邊緣點沿直徑方向仍可進行投票操作,但算法首先會對區(qū)域點數(shù)和區(qū)域框外形進行篩選,因此丟失可能較大.由于本系統(tǒng)在實際應(yīng)用中主要面向頭戴式應(yīng)用,用戶視場可靈活調(diào)整以配合手部移動,在實用中不會造成影響.
視覺信息融合的數(shù)據(jù)手套原型系統(tǒng)如圖6所示.旋轉(zhuǎn)姿態(tài)解算模塊采用MPU6050,彎曲度檢測模塊Flex Sensor完成手指彎曲程度的檢測,選擇安裝在拇指、食指和中指位置;基于ARM的32 b微控制器STM32F103C8T6作為數(shù)據(jù)手套運算中心(MCU).手套上固定設(shè)置發(fā)光球作為馬克點,由攝像頭捕捉發(fā)光球進行目標(biāo)追蹤.
為了驗證數(shù)據(jù)手套的功能,構(gòu)造了一個VR沉浸式虛擬實驗系統(tǒng).系統(tǒng)主題為面向中學(xué)科普教育的虛擬直升機裝配實驗.基于Unity引擎搭建實驗場景,場景模型采用3dMax生成.使用基于視覺融合數(shù)據(jù)手套作為交互輸入設(shè)備,采用Cardboard盒子搭載智能手機.數(shù)據(jù)手套為自主開發(fā)的SDK接口,測試手機平臺基本配置為高通驍龍801處理器,3 GB運行內(nèi)存.
Fig. 6 The prototype of data glove based on visual information fusion圖6 視覺信息融合數(shù)據(jù)手套原型
Fig. 7 Ball recognition test while moving圖7 運動小球識別測試
為驗證算法性能,首先進行了運動小球識別效果對比測試.使用Opencv霍夫梯度法(HoughCircles函數(shù))和本文的特征校驗霍夫變換法在有燈光干擾的環(huán)境捕捉發(fā)光球的運動軌跡,結(jié)果如圖7所示.
從圖7中可以看出,特征校驗的霍夫變換檢測得到的正確定位點更多,軌跡連貫,錯誤點少.2種算法耗時曲線如圖8所示.
Fig. 8 Computation cost of those two algorithms圖8 算法耗時比較
同直接使用霍夫梯度法相比,特征校驗霍夫變換識別算法最大耗時較高(13 ms),但最低耗時僅1 ms,整體耗時平均值低,與算法特征相符.進一步在不同復(fù)雜程度的環(huán)境下采集位于圖像不同區(qū)域的發(fā)光小球圖像共50幅,對比結(jié)果如表3所示.由于合理地控制計算點數(shù)量并結(jié)合特征校驗,算法運行耗時和識別準(zhǔn)確率在復(fù)雜背景下仍達到較好的水平.
Table 3 Comparison of Round Detection Algorithm inDifferent Background
Fig. 9 System scheme demonstration of visual glove圖9 實驗操作演示
實驗征集10名學(xué)生志愿者參與測試,并對志愿者進行了訓(xùn)練以掌握交互操作的方法,最后根據(jù)實驗要求,在虛擬環(huán)境下完成直升機裝配操作.實驗的系統(tǒng)界面操作方式和如圖9、圖10所示.用戶佩戴數(shù)據(jù)手套和搭載智能手機的Cardboard盒子,按以下控制方式進行交互操作:
“Okay”手勢——呼出菜單UI;
“Tap”手勢——點擊菜單,點擊按鈕進入組裝實驗場景;
“Shoot”手勢——通過食指的指向控制視角上下移,結(jié)合頭部轉(zhuǎn)動實現(xiàn)視角移動;
“Fist”手勢——關(guān)閉菜單或抓取零部件;
“Palm”手勢——釋放零部件.
測試完成后通過問卷形式對志愿者的個人主觀體驗從真實感、沉浸感、易用性等方面進行了調(diào)查.對調(diào)查項采用5分制的方法評分,最終統(tǒng)計結(jié)果如圖11所示.
Fig. 10 The experimental system interface圖10 實驗系統(tǒng)界面
Fig. 11 User experience of virtual experiment based on this data glove圖11 虛擬實驗用戶主觀體驗評分統(tǒng)計
統(tǒng)計調(diào)查結(jié)果表明:參與測試的志愿者對基于該型數(shù)據(jù)手套的虛擬實驗系統(tǒng)的真實感、沉浸感、自然性等指標(biāo)打分較高,同時表現(xiàn)出強烈的興趣;受運行平臺性能的影響,易用性指標(biāo)上得分偏低,但總體評分滿意度仍達到了較好的水平,且具有進一步提升的空間.實驗結(jié)果表明:本文的視覺信息融合的數(shù)據(jù)手套方案可以有效滿足虛擬現(xiàn)實系統(tǒng)的交互要求.
本文針對現(xiàn)有數(shù)據(jù)手套交互技術(shù)存在的問題,研究并實現(xiàn)了一種基于視覺融合的數(shù)據(jù)手套系統(tǒng).該數(shù)據(jù)手套綜合傳感器數(shù)據(jù)和視覺信息實現(xiàn)了虛擬手勢的交互,借助特殊顏色發(fā)光球和攝像頭,采用特征校驗霍夫變換算法實現(xiàn)了位置追蹤.系統(tǒng)綜合了數(shù)據(jù)手套和視覺手勢檢測技術(shù)的特點,滿足了沉浸式虛擬現(xiàn)實交互體驗系統(tǒng)的應(yīng)用要求,其較好的沉浸感和體驗感體現(xiàn)了新一代人機交互技術(shù)以用戶為中心的特點,并且具有較強的可擴展性.后續(xù)工作中,在姿態(tài)解算精確度、手勢識別、空間位置定位等方面將進一步進行探索,提高識別準(zhǔn)確率、降低算法復(fù)雜度,加強在移動平臺的運行流暢度,獲取更好的體驗效果.