張 琦, 黃展鵬
(廣東藥科大學 醫藥信息工程學院,廣州 510006)
在目前的“互聯網+”的大背景下,高等教育信息化是促進高等教育改革創新和提高質量的有效途徑,推進信息技術與高等教育的深度融合,利用先進的信息技術,建立高等教育資源共建共享機制[1],來實現教育信息化可持續發展。以信息技術應用為本質特征的虛擬仿真實驗教學,適應了信息時代高等教育開放辦學、資源共享的變革要求,為實驗教學改革和實驗室建設增添了活力[2]。通過虛擬實驗的真實感,使學生模擬實驗的全部操作過程,可加強學生的主觀能動性和對知識的理解,克服傳統教學方式呆板、師生間互動不足、趣味性不強的弊端,真正提升醫學實驗教學價值[3]。而數據手套是目前比較流行的虛擬現實交互設備之一,當用戶穿戴設備之后,可以在虛擬的三維環境中實時操控虛擬手。因此,虛擬手模型的構建,以及與真實手之間的運動匹配決定了虛擬交互中自然與否,同時也是進行虛擬醫學實驗平臺建設的首要任務。
近年來,國內外對于虛擬手的三維構建方法多數是以人手的解剖學特性為根據,利用三維軟件3DsMax進行幾何模型的構建[4-7], 再利用其他軟件或算法實現虛擬手的運動模型,最后實現與數據手套相關聯。而本文則選用三維動畫軟件Maya作為建模工具,因為它是世界頂級的三維動畫制作軟件,雖然在游戲工業領域,稍遜于3DsMax,但在動畫制作行業可以稱得上是絕對的創立者和領先者[8]。特別是在醫學虛擬仿真開發方面,Maya更為適合構建醫學虛擬模型[9]。在實現交互方面,Unity3D是一款輕量級的開發引擎,在開發虛擬現實方面易于操作,且開發成本低,適合開發虛擬現實教育類的產品[10]。因此,本文提出一種基于數據手套進行虛擬現實交互過程的更簡便的解決方案,通過Maya建立逼真虛擬手的幾何模型,并利用其強大的動畫優勢實現虛擬手的運動變形,最后在虛擬現實引擎Unity3D對虛擬手術訓練的常用手勢進行測試,仿真效 果良好,手勢匹配度高。
本文采用的是新型數據手套WiseGlove,采用高質量彈性料制作,在手指關節彎曲處設置傳感器,以測量每個手指關節的彎曲度及每相鄰兩個手指之間的夾角。WiseGlove系列手套的型號有5、14、18和19等傳感的數據手套。傳感器個數越多,采集手部各關節數據越多,則可以實現的手勢動作越復雜。而本文采用的是14傳感的右手數據手套,傳感器分布如圖1所示。可作每個手指的第1關節MP與第2關節PIP的屈伸,以及手指并攏分開的手勢動作。
建立虛擬手的運動模型,模擬人手的運動,首先要了解人手的生理結構以及每個手指的運動特點,才能保證在手勢仿真過程中取得良好的效果。重點是針對五個手指的位置信息在空間上的變化進行研究。人手骨包括腕骨、掌骨和指骨共有27塊,腕骨8塊,掌骨5塊,指骨有14塊[11]。由于數據手套捕獲的是手部關節的運動數據,因此本文只對手指骨以及手指間關節的運動進行研究。如圖2所示為簡化的右手手部關節結構圖,其中A、B、C分別代表第1關節MP、第2關節PIP和第3關節DIP。基于人手的這種呈樹狀關系的結構,手指的運動主要分為屈伸,內收和外展(簡稱為收展)。結合本文中數據手套的傳感器的角度定義范圍,各關節的運動形式及范圍如表1所示。由于傳感器個數的限制,食指、中指、無名指以及小姆指的第3個關節處沒有設置傳感器,因此無法實現彎曲。另外,數據手套規定中指不能作收展動作。
文獻[12]中指出,三維化的人體結構也就是一種拓撲結構,研究掌握了人體的相關拓撲結構,就能夠很容易地使用三維方法將該結構描繪出來,圖3所示為手掌與手背的結構。

圖1 14個傳感器的分布圖2 右手手部關節結構圖

表1 數據手套中各傳感器的彎曲范圍值


圖3 手掌與手背的結構
按照真實手部的結構特征,所創建三維模型的布線必須與之相符合,才能達到仿真的目的。因此在對手部進行三維構建時,布線合理與否直接影響到后續的變形效果。在構建過程中,從最簡單的正方體開始,通過加環線和擠出先將手部的大致輪廓構建出來,特別在可彎曲的關節處需要3條環線來保證彎曲的平滑,并且在每根手指指根處進行切分線保證虛擬手的正確拓撲結構。在正確的基礎模型上,再進行細節刻畫,例如關節的細節以及指甲的結構等。
最終創建出來的虛擬手是由949個四邊面組成的低多邊形模型,簡稱低模,經過一級平滑效果之后為3 796個四邊面的高多邊形模型,簡稱高模,如圖4所示。低模與高模的主要區別為低面數的三維多邊形模型主要以互動操作為主,運行在游戲程序或虛擬現實設計中;而高面數的三維多邊形模型由于面數較多,多應用在預設的演示動畫中[13],因此本文的后續實驗中將采用低模版本進行。
通過上述方法構建虛擬手三維模型之后,為了將其最盡可能地做到逼真,必須為模型展UV繪制貼圖來達到。UV提供了一種模型表面與紋理圖像之間的連接關系,UV負責確定紋理圖像上的一個點(像素)應該放置在模型表面的哪一個頂點上,由此可將整個紋理都鋪蓋到模型上[14]。特別需要注意的是,展UV時的分割線不要出現在虛擬手手背顯眼的地方,應盡可能安排在手掌面。之后采用人類皮膚的素材圖片為其繪制手部紋理貼圖,如圖5所示。可以看出,虛擬手視覺仿真效果良好,具有一定的逼真性,從而達到增加用戶沉浸感的目的。

圖4 高模(右)與低模(左)圖5 手部貼圖效果
在目前虛擬交互技術中,使虛擬物體實現運動,大多是通過手動為其創建骨骼結構,再與網格模型進行蒙皮關聯,最后調節網格模型的權重值而實現的。為了模擬虛擬手運動可以像真實手那樣,本文利用Maya中骨骼系統作為工具,為虛擬手進行骨骼綁定工作,包括創建手部骨骼,蒙皮以及權重的設定。
按照人手真實骨骼結構為虛擬手創建骨骼,其中腕骨處用一個關節來代替多塊骨頭,其它關節按照真實手部各關節的位置進行創建。需要注意的是,虛擬手的每個關節都擁有獨立的局部坐標系,因此每個關節的坐標方向,必須是統一向上的,否則將影響虛擬手的運動變形效果,如圖6所示。
在計算機圖形學上,蒙皮網格技術的雛形就是模型皮膚完全包圍著骨骼模型,關節附近處的皮膚頂點同時被幾塊骨骼作用,而它們有著不同的權重,共同影響著這個頂點的位置,這種方法的關鍵就是頂點混合算法[15]。而目前的三維軟件會依照某種頂點混合算法自動為網格頂點分配的權重值,但效果并不會十分理想,需要用戶手動對頂點的權重值進行微調,以減少網格變形時的畸變現象,達到正確彎曲變形的效果。其原理是網格模型中的每個頂點受到某個骨骼變形約束的程度用0到1之間的數字表示,0表示不受約束,1表示受最大程度的約束,并且規定每個頂點所受到的所有骨骼控制的權重總和為1。圖7所示當手指發生大角度彎曲時,通過調節權重值的前后皮膚變形情況的對比。為網格模型分配準確的權重值,力保虛擬手動作變形正確,才不會影響在后續虛擬實驗中的視覺效果。在完成權重值的調整之后,將虛擬手的頂點坐標,骨骼以及頂點權重值等完整信息,以FBX文件格式導出。

圖6 手部綁骨及各關節的局部坐標方向

圖7 調整權重值的前后對比
在創建好虛擬手網格模型之后,需要與數據手套實現關聯,將數據手套傳感器采集的數據值傳遞給虛擬手,并驅動虛擬手做出正確的相應動作手勢。在本文中使用Unity 3D作為虛擬實驗平臺來完成這一過程。主要有以下幾個重要步驟:
(1) WiseGlove數據手套通過計算機RS-232串口采集到的傳感器原始數據范圍是0~255,通過公式將它們轉換為彎曲角度,即:
(1)
式中:θ為所求的彎曲角度;β和γ分別為傳感器的最大與最小值;Φ為當前手套值;α為手指的活動角度。利用式(1)對手指進行歸一化活動范圍[0,1]:
當(Φ-β)/(γ-β)<0.5時手指為展開動作;
當(Φ-β)/(γ-β)>0.5時為手指收攏動作。
(2) 將14個傳感器的彎曲角度逐個分配給虛擬手與之相對應骨骼關節,一一對應。
(3) 由于每個用戶的手部尺寸大小各不相同,因此當用戶帶上手套后,作握拳手勢為其進行標定,更新此用戶手指各關節的最大最小的彎曲范圍。
(4) 為防止各手指收展動作時發生穿插面的情況,可以乘上一個系數來控制手指收展過度的情況。
實驗硬件包括臺式計算機一臺(采用Intel Core i7-4790 四核CPU,8GB內存)和 14傳感的WiseGlove右手手套一個,軟件包括Maya 2012三維建模軟件,WiseGlove SDK開發包以及虛擬現實引擎Unity3D v5.0.1版本。在本實驗的驗證中,所使用的虛擬手為低模版本,進行了兩類測試,一類是對基本手勢進行驗證,另外一類是針對術者在手術中常用手勢來進行驗證。
(1) 圖8所示為握拳手勢效果,分別是實驗過程中實拍圖與Unity3D中正面與側面的實時效果截圖。



圖8 實拍(左)、握拳側面截圖(中)、握拳正面截圖(右)
(2) 國內外醫務工作者形成并普遍地接受和遵循著一種手語,即術者以手勢向助手及器械護士表達意圖。為的是在手術時配合默契,保持肅靜,同時可以減少飛沫污染切口,防止語音訊息對患者的刺激。在本實驗中挑選幾個大家共同認可的手術中常用手語作為手勢進行驗證效果,圖9~11所示為模擬術者在手術過程中要手術刀、剪刀以及要鑷子時的開合動作。


圖9 要手術刀的手勢實拍與截圖


圖10 要剪刀的手勢實拍與截圖
實驗結果表明虛擬手在作各類動作時,彎曲平滑,沒有破面穿插的情況,且各手指彎曲流暢自然,沒有手指抖動或卡頓的情況,說明虛擬手運動與數據手套的匹配精度高,達到了視覺仿真的效果,增加了用戶的沉浸感。

圖11 要鑷子的開合手勢截圖
本文完成了虛擬手的三維幾何模型的構建,實現了與數據手套進行關聯裝配的過程,實驗效果良好,虛擬手與人手的運動匹配精度高,達到了虛擬仿真的目的。特別是將數據手套應用到醫學虛擬實驗方面,無疑增加了用戶的交互性與沉浸感,為未來的虛擬醫學實驗教學平臺建設打下良好的基礎。在日后進一步的研究里,可引入數據手套的定位器,使虛擬手可在虛擬環境中自由移動,并可以與場景中的物體發生交互碰撞,豐富用戶的體驗性,使數據手套在虛擬醫學仿真這方面的應用更加廣泛且有意義。
參考文獻(References):
[1] 摘編自教育部《教育信息化十年發展規劃 -年 》. 推動信息技術與高等教育深度融合,創新人才培養模式[J]. 中國信息技術教育, 2014(14):1.
[2] 王衛國, 胡今鴻, 劉 宏. 國外高校虛擬仿真實驗教學現狀與發展[J]. 實驗室研究與探索, 2015, 34(5):214-219.
[3] 諶新興, 龔興牡, 石慧娟,等. 醫學虛擬實驗平臺在實驗教學中的應用[J]. 衛生職業教育, 2016, 34(2):45-46.
[4] 任 程, 戴樹嶺. 基于數據手套的逼真虛擬手的實現[J]. 系統仿真學報, 2008(22):6214-6217.
[5] 安 明, 陳善廣, 劉玉慶. 基于數據手套的虛擬手精確建模的研究與實現[J]. 計算機仿真, 2010, 27(1):241-244.
[6] 李 波, 王增輝, 曹福毅. 基于5點數據手套的虛擬手精確控制方法[J]. 沈陽工程學院學報(自然科學版), 2015(2):155-158.
[7] 胡 弘, 晁建剛, 林萬洪,等. 基于虛擬手交互的航天員虛擬裝配訓練仿真方法[J]. 計算機應用, 2015(s2):200-203.
[8] 鄭 直. MAYA三維技術在動漫領域立體造型中的應用研究[D]. 北京:北京工業大學, 2013.
[9] 劉文苗, 楊 雪, 王 麗,等. 基于Maya技術的醫學虛擬實驗模型構建[J]. 實驗技術與管理, 2011, 28(4):76-79.
[10] 汪騰浪, 田 元. 基于Unity 3D的教育產品開發研究[J]. 軟件導刊·教育技術, 2017, 16(5):83-85.
[11] 李 鋒, 葉 銘, 付增良,等. 人手部骨組織建模的B樣條擬合方法研究[J]. 計算機仿真, 2009, 26(9):184-186.
[12] 邱兆平. 人體解剖學在寫實三維游戲角色制作中的應用研究[D]. 上海:東華大學, 2009.
[13] 尹愛菊. 高職動漫專業三維建模教學研究[D]. 昆明:云南師范大學, 2015.
[14] 鄭利平, 張 娟, 周乘龍,等. 人群仿真中角色紋理多樣化方法[J]. 圖學學報, 2014, 35(1):110-114.
[15] 陳志榮, 陳福民. 基于骨骼混合的蒙皮網格技術[J]. 計算機輔助工程, 2006, 15(4):57-60.