高鶴文, 孫燦燃, 房婷婷, 駱巖林
(北京師范大學 信息科學與技術學院,北京 100875)
腦認知訓練包括記憶力、注意力、感知覺、執行能力、語言和邏輯判斷等訓練。大量研究表明,人的腦認知能力可以通過后天的針對性腦認知訓練手段得以改變并提高[1]。腦認知科學作為人類前沿科學,其重要的研究內容是揭示大腦在生理和病理狀態下的工作機制[2]。
隨著計算機技術的發展,尤其是虛擬現實技術的出現,促進了腦認知訓練方面的發展。虛擬現實技術在腦認知訓練方面有著其他技術無法比擬的優勢[3]。虛擬現實游戲通過自身逼真的游戲效果、多樣的交互方式、立體的三維世界,讓使用者產生接近現實的親身體驗[4]。同時,在虛擬現實游戲中,用戶在虛擬空間中的運動是不受限制的,可以自由出入,這是傳統模擬游戲與虛擬現實游戲之間的最大差別,也是虛擬現實技術賦予游戲的獨特魅力[5]。
目前,虛擬現實技術已經應用于社會生活中的多個領域,同時虛擬交互系統的開發也成為了國內外研究熱點。國外已有眾多相關實例用于腦認知障礙恢復及腦認知能力增強。在芬蘭、美國等國家出現了大腦健身房,主要通過各種電腦軟件對參與者進行腦力訓練,幫助改善記憶力、邏輯判斷等腦認知能力,但患者需要掌握相應電腦技術,對老年用戶操作難度高[6]。Gourlay等[7-8]使用虛擬廚房幫助患者再學習重要的日常生活技能。Lee等[9]通過虛擬超市對患者進行腦認知行為的評估和訓練,使用頭盔及跟蹤器等設備創造自然的沉浸式環境,但是相關硬件不具備普及度。國外游戲公司開發出三維(3D)沉浸式交互游戲《Cerevrum》,提供腦認知訓練,讓用戶更加自然地增進腦認知能力。然而,該游戲主要通過游戲手柄及頭盔交互,而且題材為冒險類游戲,交互方式、游戲畫面及題材均不適合老齡化群體。頭盔的交互方式會使初次接觸的老年人產生恐懼心理和不適感。
由表1可知,目前的腦認知訓練系統缺乏針對性,尤其是針對老年人。現有技術大部分集中于非計算機手段,交互技術較原始,缺乏沉浸感。

表1 現有腦認知訓練系統對比Tab.1 Comparative analysis of the existing brain cognition training systems
本文利用Unity3D軟件,研究基于虛擬現實的腦認知訓練系統的關鍵技術,內容包括開發流程、三維建模、場景交互等。
Unity3D是一個專業級的高質量游戲引擎,提供了可視化編輯工具,可以將藝術資源綁定在一起并對可交互對象進行編碼,產品可以發布在 PC、Web和Mac 等平臺上。Brushes工具是地形繪制畫筆,用戶可選擇合適的畫筆繪制地形;RaycastHit工具用于存儲射線碰撞到的第一個對象信息,所以需要提前創建這個對象,用于碰撞信息的存儲。Rigidbody(剛體)組件可使游戲對象在物理系統的控制下運動,剛體可接受外力與扭矩力,用來保證游戲對象像在真實世界中那樣進行運動。Collider(碰撞器)是物理組件的一類,它要與剛體一起添加到游戲對象上才能觸發碰撞,如果2個剛體相互撞在一起,有碰撞體時物理引擎就會計算碰撞,在物理模擬中,沒有碰撞體的剛體會彼此相互穿過。
系統采用虛擬現實技術配合用戶交互,使得用戶可以佩戴虛擬現實設備在虛擬場景內漫游,實現翻牌、物體撿拾、場景切換等功能。本文基于Unity3D軟件,結合頭盔和手柄開發沉浸式虛擬交互系統。
本文虛擬交互系統主要包括虛擬游戲環境建模、核心腦認知訓練系統、交互接口、評測系統等4個模塊,如圖1所示。具體研究內容涉及以下幾個方面:
(1)虛擬游戲環境建模

圖1 系統主要模塊Fig.1 Main module of the system
虛擬游戲環境建模模塊負責虛擬環境中各類虛擬實體行為的狀態更新、觸碰檢測以及環境特效,創建一個和現實世界相似的虛擬環境。虛擬游戲環境建模主要研究幾何建模、物理建模和行為建模等方法。幾何建模相對比較成熟。物理建模主要研究虛擬實體的運動學和動力學特性,為進一步提高逼真度,必須考慮虛擬實體的材料以及摩擦力、彈塑性和黏稠性等物理特性。
(2)核心腦認知訓練系統的構成及功能設計
核心腦認知訓練系統包括注意力、記憶力、感知覺、執行能力、語言、邏輯判斷等子模塊。本文以記憶力訓練系統為例,實現腦認知訓練模擬。
(3)系統測評技術
研究測評的具體指標和算法,設計簡單、易用的評測界面,對老年人現有腦認知水平進行科學測評,推薦針對性強的腦認知訓練。
(4)直觀交互技術
主要研究如何使用直觀交互工具以實施虛擬操作,使交互工具更加符合老年人的行為特征。采用HTC Vive虛擬現實頭戴式顯示器,通過手勢定義對三維游戲場景進行交互。
外部整體地形中加入了天空、草地、樹林、人物、動物、桌椅、水塔、燈塔、自行車等相應模型,實現了幾何建模和物理建模。同時,草地、人物等按照物理規律進行行為運動,實現行為建模。結合HTC Vive虛擬現實頭戴式顯示器并利用手柄激光實現了瞬移(由于搭建地形較大,依靠定位器感知的位移對場地要求較高,因此添加此項功能),對擁有物理屬性的物體實現了撿起、丟棄、碰撞、彈跳等物理行為屬性。
基于Unity3D軟件,創建三維地形、天空、樹木等場景。以地形為例,首先使用3D object-terrain,根據場景模型進行數學建模,然后基于真實的地形數據進行加工,最后設置 “Brushes”畫筆的Brush Size畫筆寬度的取值范圍為“Opacity”,繪制平滑地形。通過紋理映射的方式實現地面真實感的要求。采用二維數組來定義紋理,通過材質球的方式將二維紋理表面映射到三維場景表面。設置地形碰撞器,使之擁有反彈的性質,提高真實性和沉浸感。
模型的構建是虛擬場景實現的基礎,模型的質感將直接影響到場景的真實感和沉浸感。本文構建的交互場景主要集中于室外場景。模型的構建基于Unity3D軟件實現,并將模型以unitypackage的形式打包再導入Unity3D軟件中。模型主要包括:建筑物、環境裝飾、水塔、桌椅、自行車、柱子、光源等??紤]到系統開銷和系統真實性的平衡,構建的模型主要采用多邊形結構加紋理貼圖的方式實現。
虛擬現實體驗很重要的一點就是能夠有足夠的沉浸感,并且有很好的交互性。采用HTC Vive虛擬現實頭戴式顯示器實現視覺沉浸感,但是如果要進行交互操作,就需要更多的相關實際操控。系統中用戶可以在場景中隨意走動,觀察周圍不同景象,所以首要解決的問題是在虛擬環境中的移動問題。如果要實現最好的場景漫游體驗,就要單純靠自己的定位判斷來操控用戶移動。這個設定在HTC Vive虛擬現實頭戴式顯示器與Unity3D軟件之間有相應接口,實際上每次移動只需要改變用戶角色的位置即可。由于場景所含內容較多,并且占地面積較大,若采用真實移動來代替用戶主角在虛擬場景中的移動則會使工作任務較大,而且使用戶的漫游比較麻煩。同時,HTC Vive虛擬現實頭戴式顯示器場景搭建空間并不很大,不適合在真實場景中移動。因此,利用HTC手柄的TouchPad部分進行相關控制,實現用戶的瞬移,即在場景中用戶可隨時改變自己所在位置,通過手柄操作切換到不同地點位置,同時結合頭戴式顯示器的旋轉,從而實現在豐富場景中的漫游。
首先,在場景中添加激光筆Laser,并去掉 Box Collider 組件,使激光筆居中,漂浮在場景上空。然后,為該物體添加腳本文件,以實現手柄與激光筆的融合,觸動扳機,手柄在場景上空發射出一條藍色射線。從手柄發射激光,如果激光照射到某樣物體,保存照射到的位置并顯示激光。使用Unity3D軟件中所提供的RaycastHit類,得到射線盡頭與場景碰撞的點的坐標信息。松動扳機,切換用戶視角所在照相機位置到射線盡頭端點。通過扳機操作,用戶便可在場景中實現瞬移,使漫游的速度大幅提升。
為實現場景切換,使用碰撞體的觸發器功能。在Unity3D軟件中,游戲物體的碰撞可以通過剛體組件(Rigidbody)和碰撞器組件(Collider)來進行檢測。基于設計的需求,需要檢測物體與物體之間是否發生接觸,但不產生碰撞效果,擬采用觸發器來進行碰撞檢測。為此,首先在場景中添加一個標志性高塔物體,其實質為一個剛體組件,并將高塔的碰撞器設置為觸發類型,具體為在該組件的檢查視圖中找到碰撞器組件,將該組件的IsTrigger屬性勾選上。當有物體對高塔進行碰撞,就不會產生碰撞效果,而是直接穿過去。用戶拾起場景中的錐子,并將其拋至高塔處,系統檢測到碰撞信息,用戶選擇進入某一游戲,此時調動相關函數,進行場景切換。
在HTC Vive虛擬現實頭戴式顯示器中有機發光二極管屏幕的單眼有效分辨率為1 200×1 080,雙眼合并分辨率為2 160×1 200。這種分辨率大大降低了畫面的顆粒感,用戶幾乎感覺不到紗門效應。即使沒有佩戴眼鏡,400度左右近視也能清楚地看到畫面細節。畫面刷新頻率為90 Hz,實際體驗幾乎零延遲,也不覺得惡心和眩暈。
控制器定位系統Lighthouse采用的是Valve公司的專利,它不需要借助攝像頭,而是靠激光和光敏傳感器來確定運動物體的位置,也就是說HTC Vive虛擬現實頭戴式顯示器允許用戶在一定范圍內走動。這是它與另外兩大頭顯 Oculus Rift 和PS VR的最大區別。HTC Vive虛擬現實頭戴式顯示器的使用非常簡單,將SteamVR 官網提供的包導入工程文件,得到以 Prefab預制體形式提供的預設攝像機。預設攝像機包含一個角色控制器預設及攝像機控制器預設。角色控制器控制體驗者的視角高度、轉頭速度、行動速度等,攝像機控制器調節體驗者的瞳距、近視面、遠視面等視線參數。把預設攝像機拖入場景中,調節好初始位置、角色個體大小等即可運行使用。在Unity3D軟件編輯器中編輯HTC Vive虛擬現實頭戴式顯示器左右眼運行畫面。
受訓者通過HTC手柄按鍵控制角色激光來進行預設的前進、后退、左移和右移,并利用HTC Vive虛擬現實頭戴式顯示器探測頭部的旋轉來控制角色控制器攝像機的旋轉,從而達到主動受訓者在虛擬場景中的自由運動。通過編寫 C#代碼,將體驗時主動受訓者控制的角色控制器預設體的空間坐標位置與攝像機旋轉角度等參數值序列化,實時傳輸給遠程客戶端,接收數據后的客戶端再實時控制客戶端角色控制器的空間坐標及視角。如圖2所示,用戶在使用HTC Vive虛擬現實頭戴式顯示器來實現與虛擬場景的交互。

圖2 正視和仰視時使用HTC Vive虛擬現實頭戴式顯示器實現三維交互Fig.2 3D interaction realization with HTC device when facing and looking up
老年人關聯記憶研究是腦認知科學的重要內容之一。對于傳統關聯記憶測評方法,在建立樣本時必須由專業人員定期去社區采用紙質量表的方式測評,再以人工方式處理樣本數據。然而,建立樣本時無法做到具有時效性和普遍性的測查,處理樣本時無法做到高效、快捷的數據記錄和保存。
隨著老年人年齡的增長,老年人的腦認知功能愈加退化,記憶力下降在生活中表現得極其明顯。記憶需要前額區以及海馬等較多大腦區域的參與[10],腦認知記憶測評系統的開發需要運用新的記憶測評模式,使腦認知科學和計算機科學相輔相成,為腦認知關聯記憶的更友好方便的測評研究起到促進作用。
在實現腦認知訓練子系統部分,采用UI控件并添加功能性component,通過編寫C#腳本來完成事件的處理,提高開發效率,增強系統的用戶界面美感。用戶點擊開始按鈕,系統開始計時,界面中呈現12張卡片,共計有6種類型,每種類型各2張。初始時卡片背面朝向用戶,呈現3×3的矩陣,當用戶點擊某一張卡片,相應卡片翻轉,狀態維持1 s,隨機再翻轉。用戶通過每一次的點擊來記憶各個位置卡片的形狀,若當前點擊的卡片與上一次點擊的卡片一致,則該組卡片匹配成功。當6組卡片匹配完成,系統自動結束計時。該游戲通過短時間內顯示卡片內容,以促使用戶記憶各位置的卡片內容來完成游戲。卡牌匹配實現的代碼如下所示:
private void CardOnClick(Card card)
{
if (canPlayerClick)
{
//先判斷是否可以點擊,可點擊則直接翻牌
card.SetFanPai();
//添加到比對數組中
FaceCards.Add(card);
//如果有2張牌了,則不可再點擊,進入協同程序
if (FaceCards.Count == 2)
{
canPlayerClick = false;
StartCoroutine(JugdeTwoCards());
}
}
}
為實現在三維場景中顯示出二維游戲效果,建立canvas并在其下面添加UI控件panel。panel用來對紙牌進行自動布局。為panel添加Gird Layout Group組件和Content Size Fitter 組件。
設定2個監聽按鈕(見圖3),一個是開始游戲、開始計時的Start,一個是暫停計時、暫停游戲的Pause。具體實現代碼如圖4所示。

圖3 Start按鈕代碼Fig.3 Code of Start button

圖4 Pause按鈕代碼Fig.4 Code of Pause button
頁面中測評題目有計時功能,并且會顯示在頁面上,測試者可以隨時查看已花費的時間,計時器所記錄的時間也是最終需要導入數據庫的數據之一。在update函數(見圖5)中,利用time.deltaTime獲取游戲進行時間,每更新一幀就在時間上累計。
用戶通過將某個東西拋至某特定物體后產生碰撞,來表示進入某一游戲。在場景中實現用手柄拾東西,并將東西拋擲遠處。在HTC Vive虛擬現實頭戴式顯示器中,通過觸發器碰撞機和腳本編程為用戶提供沉浸感虛擬體驗。首先,為2只手柄添加剛體Rigidbody和盒子碰撞體Box Collider,并勾上IsTrigger。然后,在腳本中為手柄添加觸發器方法OnTriggerEnter(),當觸發器碰撞體進入并退出另一個碰撞體時,這些方法將被觸發。此外,為實現將某個物體拋出,首先得確定控制器上一定有一個固定連接,然后用戶松動按鈕,刪除這個連接上所連對象,并銷毀這個連接,最后將玩家放開物體時手柄的速度和角度賦給這個物體,這樣就可以以拋物線的形式將物體拋出。

圖5 Update函數代碼Fig.5 Code of Update function
實驗基于Unity3D軟件平臺,編譯環境為 Visual Studio 2015,并結合HTC Vive虛擬現實頭戴式顯示器、2個單手持控制器、1個能于空間內同時追蹤顯示器與控制器的定位系統。
基于幾何建模、物理建模和行為建模的方式進行虛擬場景的構建。首先,根據數學建模計算模型所需基本數據,基于幾何建模的規則進行模型構建;然后,采取紋理映射、光照等數學模型加以渲染;最后,對模型的物理性質進行設置,提高模型的真實性和沉浸感。加入HTC Vive頭戴式顯示器,實現腦認知訓練系統的交互。場景整體效果如圖6所示。

圖6 場景整體效果Fig.6 Whole effects of scene
為實現場景漫游體驗,利用HTC手柄的TouchPad部分進行相關控制,以此來實現用戶的瞬移,即在場景中用戶可隨時改變自己的所在位置,通過手柄操作,切換到不同位置。在場景中實現用手柄拾東西,并能將其拋擲遠處。在HTC Vive虛擬現實頭戴式顯示器中,通過使用觸發器碰撞機和腳本編程,為用戶提供沉浸感良好的虛擬體驗。系統運行結果如圖7~10所示。

圖7 位置轉移前Fig.7 Before the shift

圖8 位置轉移后Fig.8 After the shift

圖9 撿物體前Fig.9 Before picking up objects
本文記憶力訓練系統程序實質上是一款翻牌測驗游戲,用戶人群為參加測試的老年人,考慮到用戶人群的特殊需求,腦認知訓練系統必須滿足操作方便簡單、提示詞明確、界面清晰且利于觀察的要求。游戲界面如圖11所示。

圖10 撿起物體Fig.10 After picking up objects

圖11 記憶力訓練系統界面Fig.11 Interface of memory training system
本文給出了基于虛擬現實的腦認知訓練系統框架及關鍵技術。以記憶力訓練為例,基于Unity3D軟件平臺,利用HTC Vive虛擬現實頭戴式顯示器和HTC手柄開發的沉浸式腦認知訓練系統具有沉浸感強和直觀交互性等特點。場景建模保證了虛擬實體具有重力、質量、黏性、剛性等性質,是重建現實世界的基本保障。場景漫游為用戶提供了2種移動方式,即依據定位移動、手柄激光擊中漫游,使得用戶可以盡情漫游場景或者快速到達目標位置。通過指定物體碰撞達到切換場景的目的,由外緣場景進入記憶力訓練模塊。記憶力訓練模塊作為本文系統內核,是本文系統的靈魂所在,也是區別于其他一般虛擬現實仿真漫游系統的主要創新點。通過計時、暫停、相同紙牌判斷等方式,組織架構起記憶力內核。虛擬現實腦認識系統運用的技術內核為腦認知訓練提供了更加有趣、舒適的訓練方式,避免了紙質量表和人工記錄分析的尷尬,其場景模塊和操作的簡潔性更加適合老年人。