王賦攀 吳亞東,2 楊文超 楊 帆 侯佳鑫 廖 競
1(西南科技大學計算機科學與技術學院 四川綿陽 621010) 2(西南科技大學四川省軍民融合研究院 四川綿陽 621010) 3(達闥科技成都有限公司 成都 610100) 4(法國國家科學研究中心電子、計算與成像科學實驗室(勃艮第大學) 法國第戎 21078)
手勢交互是一種重要的自然交互方式,在基于手勢的虛擬現實交互應用中,手勢定位和識別是交互過程中的關鍵環節,良好的交互體驗要求兼顧準確率和實時性.手勢數據的獲取可分為基于視覺的識別和基于可穿戴設備(數據手套)的識別2個基本類別[1-2].與基于視覺的手勢識別技術相比,基于數據手套的手勢識別反應靈敏、精度高、實時性好、沉浸感強.數據手套不受攝像頭視場區域約束和遮擋,不受空間限制;其信息獲取通道獨立,高性能傳感器和處理器使之滿足高精度、實時性的要求,避免視覺手勢識別方法復雜算法支撐造成的資源和時間消耗;可作為輸入/輸出通道,可提供力/觸覺反饋以獲取更自然的體驗感,在特定領域(如虛擬裝配、虛擬手術等特種操作)中具有重要的實用價值.
目前針對數據手套的相關研究主要集中在虛擬手精確建模、手勢識別、空間定位等方向.高龍琴等人[3]在建立虛擬手模型的基礎上, 以18個傳感器的CyberGlove數據手套作為手勢輸入設備, 通過人體手部運動學模型建立了數據手套與虛擬手之間的聯系;文獻[4-6]中也對基于數據手套的逼真虛擬手進行了討論;手勢識別方面,吳江琴等人[7]提出了用人工神經網絡(artificial neural network, ANN)和隱Markov模型(hidden Markov model, HMM)混合方法訓練手勢并應用于中國手語識別系統;呂蕾等人[8]使用具有噪聲的基于密度的聚類方法對手指特征點進行聚類以構造手勢模板,實現高效的手勢識別;Parvini等人[9]提出一種基于手指關節生物力學特征的識別算法,并在美國手語(American sign language, ASL)識別中得以應用;Iwasako等人[10]提出了一種基于5DT-14數據手套的手語訓練系統,通過對手勢的3D建模實現了對手勢的精確還原并糾正學習者的動作;蔡興泉等人[11]分析了基于無線數據手套的手勢識別方法,以空間移動加速度信息判斷手勢動作,以手勢和按鍵組合完成各種復雜交互;呂美玉等人[12]設計了一種數據手套和雙目視覺技術相結合的方法,提出基于2個垂直攝像頭的空間點定位與跟蹤模型.
數據手套在實際應用中的問題主要體現在:1)手勢識別精度取決于傳感器節點的布設數量和位置,相應的標定和解算復雜,對處理芯片運算能力要求高[13];2)采用外骨骼、氣動肌肉等形式獲取力反饋通道造成結構復雜、重量增加,影響用戶體驗;3)傳感器本身無法提供位置信息,通常需要在手套上加裝位置跟蹤系統,采用電磁、超聲、紅外等方式反饋手部的空間信息,需要增加更多的模塊,實現復雜,效果不穩定;4)不同型號與規格導致相應的特征提取、手勢識別算法缺乏通用性.
針對上述問題,本文提出了一種融合視覺信息的空間定位與手勢姿態解算的數據手套解決方案.該方案通過傳感器檢測手勢姿態,借助視覺設備構造模板庫,采用高效特征校驗霍夫變換實現位置追蹤,實現了設備的輕量化和運行的高效率,具有較強的可擴充性,可以滿足沉浸式實時虛擬現實交互系統的應用要求.
視覺信息融合數據手套的整體框架由姿態檢測與解算、彎曲度檢測、手勢識別和空間位置追蹤等模塊組成,如圖1所示.姿態檢測解算模塊主要獲取手掌在三維空間的旋轉角;彎曲度檢測模塊采集手指彎曲程度數據,該數據在視覺設備輔助下用于建立手勢模板;手勢識別模塊將實時獲取的手指彎曲度數據與模板庫進行比對以確定手勢;三維位置追蹤模塊通過視覺檢測與計算獲取手部在三維空間的實時位置移動信息.三維空間位置和經過識別的手勢信息最終映射到虛擬手,實現虛擬空間中的交互.

Fig. 1 The design framework of data glove based on visual information fusion圖1 視覺信息融合數據手套設計框架
本文提出了一種簡化的手勢模板匹配方法,將傳感器數據與視覺采集信息聯合建模,實現了手勢的快速匹配與識別.該方法主要包含基于彎曲度傳感器數據的手勢采集與模板定義、手勢識別2個環節.
1) 手勢采集與模板定義
為獲得彎曲度傳感器檢測數據與特定手勢的映射關系,借助了視覺識別設備.Leap公司的體感控制器LeapMotion可直接獲取手部骨骼點的相對位
置信息并建立靜態手勢模型.由于本文中的手勢識別主要面向虛擬裝配以及虛擬實驗等應用,因此首先預設了常用的6種區分度較高的基本手勢并對其進行定義,如表1所示:

Table 1 The Definition of Hand Gestures表1 手勢定義
在對每種手勢進行模板采集時,需同時連接數據手套與體感控制設備.測試者佩戴數據手套,保持手勢穩定,同時將LeapMotion置于前額與眼睛觀察視角一致,使手指彎曲度檢測數據和視覺設備獲取的關節點相對位置同步.針對不同手勢下的檢測數組和手型模板,采用多組測試數據平均值作為該手勢的最終模板.測試者由多名不同年齡、性別、體型人員組成.由于實際應用中拇指、食指和中指3指的組合可以表達多數常用手勢,本方案中彎曲度傳感器檢測該3指數據作為輸入.采集測試結果如表2所示:

Table 2 Hand Template of Static Gestures表2 靜態手勢模板
表2中彎曲度檢測值為歸一化處理后的值.關節相對位置為虛擬手模型關節點相對掌心的位置信息,包括22個關節點相對于掌心關節的相對位置.視覺設備所測得的關節相對位置還將作為虛擬空間中虛擬手的構造參數.
2) 手勢識別
基于彎曲度數據與預定義手勢的映射關系,可將實時檢測數據與模板庫數據逐一計算歐氏距離,以最小距離的模板數據所對應的手勢作為識別結果.視覺設備的作用是輔助采集手勢模板,采集完成即不再繼續使用.手勢的獲取與識別完全由彎曲傳感器數據決定.但存在的問題是在只定義6種手勢時,對空間中的虛擬手手勢的關節點相對位置數據也只有6組,即虛擬手的形狀只有6個.在系統運行中手勢的變化會非常突兀,影響用戶體驗.需要在已定義的手勢模板之間增加若干沒有特定手勢意義的模板,這些模板用來向虛擬手傳遞手勢動態變化.實驗中在6種基本手勢之外定義了4個無特定意義的模板,并選擇在動作差異相對較大的“Fist”與“Palm”,“Okay”與“Tap”這2組手勢之間采集模板數據,該2組手勢在使用中通常連續出現,如抓取和釋放、呼出菜單和點擊.由于彎曲度數據的獲取、手勢識別,以及手勢在虛擬空間中的映射是一個同步的過程,可采取一種分級的模板匹配識別方法,保證識別準確率和動作平滑性.其過程如算法1所示.
算法1. 分級的模板匹配識別算法.
輸入:當前幀所獲取的實時3指彎曲度檢測數據inputFingers;
輸出:手勢識別結果gestureTemplateList[i],包括預定義手勢序號i和當前手勢對應的虛擬手關節點相對位置.
① fori←0 to 5*6種預定義手勢模板*
②distance←sqrt((xi-x)2+(yi-y)2+
(zi-z)2);
③ ifD>distance
④D←distance;
⑤ end if
⑦ ifD≤T*閾值的選取同樣由測試者在每種有效手勢下的彎曲度數據計算與模板中對應數據的歸一化距離取統計平均值*
⑨ end if
⑩ fori←0 to 3*4種無特定意義手勢模板*
(zi-z)2);
旋轉姿態解算模塊實現手部姿態檢測和解算功能,將手部旋轉狀態映射到虛擬空間的虛擬手,實現虛擬手的旋轉控制.使用卡爾曼濾波對本數據手套中的3軸加速度計和3軸陀螺儀測量值進行數據融合,解算出準確的3軸旋轉姿態角度.采用四元數法控制旋轉方式以避免歐拉角萬向節死鎖問題[14],四元數可看作1個向量與1個實數的組合形式,向量v=(x,y,z)表示旋轉軸,w的值表示旋轉的大小,四元數法可完整表達繞任意軸旋轉任意角度:
q=(v,w)=((x,y,z),w).
(1)
馬克點是一種目標標定方式,本文對手套位置追蹤的基本思想是在手套上固定發光小球作馬克點,將其在二維平面的圓形位置和尺寸映射為三維空間的位置坐標,以此實現目標的追蹤.該方法的核心是二維圖像中圓形的檢測.霍夫變換(Hough transform)[15]是一種可靠的圓形檢測算法,在實際應用中通常基于霍夫梯度法實現圓的識別.但霍夫梯度法在使用中存在2個問題:1)需要借助高性能邊緣檢測算法如Canny算法來進行邊緣檢測,并且使用遍歷計算二值圖像中非零點的梯度以判決投票點,帶來較大的計算量,特別在圖像中還存在某些干擾輪廓時,會造成資源和時間的巨大消耗,嚴重影響了實時性;2)若邊緣輪廓質量較差時會導致梯度方向的誤差累積,造成圓心定位的偏差.針對以上問題,本文提出了一種高效的利用特征校驗和改進霍夫梯度法的優化算法,通過改進霍夫梯度法檢測圓形流程、引入特征校驗、設置特殊顏色發光球優化邊緣檢測等措施降低復雜度,其實現過程如圖2所示:

Fig. 2 The workflow of position tracking based on feature checking Hough algorithm圖2 特征校驗霍夫變換位置追蹤算法流程
1) 基于改進霍夫變換的圓形檢測算法
在進行圓檢測時,等間距選取輪廓上的像素點作為圓周點,通過相鄰圓周點估計直徑方程.該直徑與對應點的梯度方向相一致,類似霍夫梯度法,可沿該直徑方向設定一定數量投票點.圓周掃描完成后以投票數組中最大值對應像素作為圓心,其原理如圖3所示:

Fig. 3 The improved Hough algorithm for circle detection圖3 改進的霍夫梯度法檢測圓
此外,流程中通過對邊界區域的判別機制可刪除部分非圓輪廓點,進一步提高運行效率.該優化算法主要流程如算法2所示.
算法2. 基于改進霍夫變換的快速圓形檢測.
輸入:邊緣輪廓圖像vergemap、圖像尺寸width,height;
輸出:目標圓thiscircle.
①vecArray=newVector2[height,width];*創建投票數組vecArray,存放投票數和半徑*
② for eachPixels∈vergemap*遍歷圖像以尋找邊緣輪廓點*
③ if 掃描到邊緣點像素X
④dotsList.add(X);
⑤ 更新集合區域框標記T(xt,yt)和B(xb,yb)坐標;
⑥ ifX有鄰接邊緣點
⑦ 更新X點坐標;
⑨ end if
⑩ ifdotsList.Count>40*滿足點集數量的下限*
根據圓的特征判斷找到的連續邊緣點集dotsList是否可能為圓形區域,可以式(2)作為判斷條件,其方法可表達為:若該區域邊框的長寬比大于等于2(即式中的maxmin),則該點集區域不符合圓形特征.
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 特殊顏色發光球二值化和邊緣檢測
圖3中L1,L2為通過點Ak具有相同弧長的對稱割線,可根據相鄰前一個點Ak-1和后一個點Ak+1得到,其斜率分別是ml1,ml2.通過點Ak切線L的斜率取ml1,ml2的均值,而過點Ak的直徑L′與切線L垂直(切線L的斜率計算如式(3)所示),因此直徑所在的直線方程為式(4),帶入點Ak坐標計算出b值即可求解出直徑的方程.
2) 結合可信度和特征校驗的快速定位
對逐幀圖像采取改進后的霍夫梯度法進行檢測仍存在計算量較大的問題,為此進一步加入了特征校驗法則以提高算法的整體效率.在霍夫梯度法確定圓心和半徑后,從圓心處獲取圓周上的部分測試點,以半徑作為平均值計算這些測試點到圓心的距離的標準差,以該標準差進行一次可信度的判別.如可信度不低于特定閾值σref,(即標準差小于閾值),則說明該圓心可信度較高,在下一幀圖像中可基于當前幀圓心,直接利用圓形特征校驗計算新的圓心位置進行更新.圖4表示了利用圓形特征獲取新的圓心的原理:以上一幀圓心O為極點,等幅度增加角度值向圓外掃描到的系列圓周點a,b,c,…,n,根據這n個圓周上的點求取質心O′作為新的圓心位置,當n較大時,質心可近似表示圓心.如判斷可信度不夠,則繼續使用前述改進后的霍夫梯度法檢測圓.

Fig. 4 Locating the center of circle by feature checking圖4 特征校驗定位圓心
3) 使用特殊顏色發光球作為馬克點
利用發光球其明顯區別于環境背景的亮度、顏色特征,經RGB灰度化處理快速實現圖像二值化和邊緣提取.該方法提高了邊緣檢測效率,同時能得到更高質量的邊緣輪廓圖像.圖5分別為簡單背景和干擾背景下二值化及邊緣檢測的效果.
當發光球位于攝像頭視場邊緣時會導致所獲球體圖像不完整,對部分區域邊緣點沿直徑方向仍可進行投票操作,但算法首先會對區域點數和區域框外形進行篩選,因此丟失可能較大.由于本系統在實際應用中主要面向頭戴式應用,用戶視場可靈活調整以配合手部移動,在實用中不會造成影響.
視覺信息融合的數據手套原型系統如圖6所示.旋轉姿態解算模塊采用MPU6050,彎曲度檢測模塊Flex Sensor完成手指彎曲程度的檢測,選擇安裝在拇指、食指和中指位置;基于ARM的32 b微控制器STM32F103C8T6作為數據手套運算中心(MCU).手套上固定設置發光球作為馬克點,由攝像頭捕捉發光球進行目標追蹤.
為了驗證數據手套的功能,構造了一個VR沉浸式虛擬實驗系統.系統主題為面向中學科普教育的虛擬直升機裝配實驗.基于Unity引擎搭建實驗場景,場景模型采用3dMax生成.使用基于視覺融合數據手套作為交互輸入設備,采用Cardboard盒子搭載智能手機.數據手套為自主開發的SDK接口,測試手機平臺基本配置為高通驍龍801處理器,3 GB運行內存.

Fig. 6 The prototype of data glove based on visual information fusion圖6 視覺信息融合數據手套原型

Fig. 7 Ball recognition test while moving圖7 運動小球識別測試
為驗證算法性能,首先進行了運動小球識別效果對比測試.使用Opencv霍夫梯度法(HoughCircles函數)和本文的特征校驗霍夫變換法在有燈光干擾的環境捕捉發光球的運動軌跡,結果如圖7所示.
從圖7中可以看出,特征校驗的霍夫變換檢測得到的正確定位點更多,軌跡連貫,錯誤點少.2種算法耗時曲線如圖8所示.

Fig. 8 Computation cost of those two algorithms圖8 算法耗時比較
同直接使用霍夫梯度法相比,特征校驗霍夫變換識別算法最大耗時較高(13 ms),但最低耗時僅1 ms,整體耗時平均值低,與算法特征相符.進一步在不同復雜程度的環境下采集位于圖像不同區域的發光小球圖像共50幅,對比結果如表3所示.由于合理地控制計算點數量并結合特征校驗,算法運行耗時和識別準確率在復雜背景下仍達到較好的水平.

Table 3 Comparison of Round Detection Algorithm inDifferent Background

Fig. 9 System scheme demonstration of visual glove圖9 實驗操作演示
實驗征集10名學生志愿者參與測試,并對志愿者進行了訓練以掌握交互操作的方法,最后根據實驗要求,在虛擬環境下完成直升機裝配操作.實驗的系統界面操作方式和如圖9、圖10所示.用戶佩戴數據手套和搭載智能手機的Cardboard盒子,按以下控制方式進行交互操作:
“Okay”手勢——呼出菜單UI;
“Tap”手勢——點擊菜單,點擊按鈕進入組裝實驗場景;
“Shoot”手勢——通過食指的指向控制視角上下移,結合頭部轉動實現視角移動;
“Fist”手勢——關閉菜單或抓取零部件;
“Palm”手勢——釋放零部件.
測試完成后通過問卷形式對志愿者的個人主觀體驗從真實感、沉浸感、易用性等方面進行了調查.對調查項采用5分制的方法評分,最終統計結果如圖11所示.

Fig. 10 The experimental system interface圖10 實驗系統界面

Fig. 11 User experience of virtual experiment based on this data glove圖11 虛擬實驗用戶主觀體驗評分統計
統計調查結果表明:參與測試的志愿者對基于該型數據手套的虛擬實驗系統的真實感、沉浸感、自然性等指標打分較高,同時表現出強烈的興趣;受運行平臺性能的影響,易用性指標上得分偏低,但總體評分滿意度仍達到了較好的水平,且具有進一步提升的空間.實驗結果表明:本文的視覺信息融合的數據手套方案可以有效滿足虛擬現實系統的交互要求.
本文針對現有數據手套交互技術存在的問題,研究并實現了一種基于視覺融合的數據手套系統.該數據手套綜合傳感器數據和視覺信息實現了虛擬手勢的交互,借助特殊顏色發光球和攝像頭,采用特征校驗霍夫變換算法實現了位置追蹤.系統綜合了數據手套和視覺手勢檢測技術的特點,滿足了沉浸式虛擬現實交互體驗系統的應用要求,其較好的沉浸感和體驗感體現了新一代人機交互技術以用戶為中心的特點,并且具有較強的可擴展性.后續工作中,在姿態解算精確度、手勢識別、空間位置定位等方面將進一步進行探索,提高識別準確率、降低算法復雜度,加強在移動平臺的運行流暢度,獲取更好的體驗效果.