李婷婷,王相海
1.大連東軟信息學院 數字藝術與設計學院,遼寧 大連 116023
2.遼寧師范大學 計算機與信息技術學院,遼寧 大連 116029
兒童智力開發是指通過積極有效的方法對兒童早期智力發展進行有意識的影響,從而提高兒童的觀察力、記憶力、想像力和思維能力。學者們普遍認為,兒童智力發展情況一方面是由先天因素所決定,另一方面則是受周圍環境的影響。兒童在后天學習過程中通過豐富多彩的世界體驗不同的新鮮事物,大腦受到的刺激越多,越有利于開發兒童智力。近年來,虛擬現實技術和增強現實技術發展迅速并日趨成熟,如何有效利用科技手段為兒童構建學習環境,提升兒童智力開發水平及效果是學者們一直關注的問題。Padgett 等人開發了一個虛擬現實教學系統,研究虛擬現實技術適用于兒童消防安全教育的可行性[1];Smith 等人基于虛擬現實技術,搭建虛擬火災環境,并加入交互功能,兒童可以在虛擬環境中進行火災演習[2];Sue 等人為自閉癥兒童進行社交干預實驗[3];Lin等人利用增強現實仿真系統構建學習內容并對兒童協作能力進行研究[4]。
虛擬現實技術[5(]Virtual Reality,VR)借助其沉浸特性可以有效地將聲音、圖像、文字、動畫、圖形等元素有機地結合起來,全方位、多視角地將學習內容呈現在兒童面前,而增強現實技術[6(]Augmented Reality,AR)則是通過顯示技術、計算機圖形、計算機多媒體等技術將真實環境與虛擬信息相結合,通過不斷變化的交互提示,延長兒童的學習時間,使兒童記憶更加深刻。但是,以上研究都是針對單一的技術展開,單一的VR技術或AR技術弱化了兒童對真實世界的觀察和感知能力[7],如果能將AR 技術與VR 技術相結合,采用雙向互動的方式使兒童在基于VR技術構建的虛擬世界和基于AR技術構建的真實世界中互相切換,將極大提升兒童學習興趣。因此,本文在分析兒童智力開發理論基礎上,提出基于AR-VR 混合技術設計開發兒童智力開發系統,將AR技術和VR技術混合,通過積極健康的學習內容,豐富的視聽體驗,積極多樣化的交互方式來吸引兒童的注意力,達到開發兒童智力的目的,未來將具有廣泛的應用發展空間。
2.1.1 系統模塊設計
本系統一共由六個模塊構成,如圖1 所示。其中,攝像機模塊主要實現第一人稱和第三人稱視角切換。VR 漫游模塊利用虛擬搖桿實現角色在場景中漫游,培養兒童對身邊事物的認知及觀察能力。計數模塊中引入競爭機制,以游戲計時的方式開展任務學習,激發兒童學習興趣,提高學習效果。聲音模塊包括卡片朗讀和背景音樂,兒童通過在環境場景中找尋發現,根據系統聲音交互提示進行學習。環境模塊主要實現場景加載功能。AR識圖模塊將兒童讀物圖片通過手機掃描疊加相應的多媒體資源,體驗3D 的學習方式,通過視覺、聽覺的雙層刺激,為兒童傳遞更豐富更具體的經驗。系統模塊間相互作用,兒童在虛擬情境中參與學習活動,通過自主學習、任務學習、協作學習,在游戲實踐中完成知識體系的建構。

圖1 系統結構圖
2.1.2 系統流程設計
兒童智力開發系統流程設計如圖2所示。

圖2 系統設計流程圖
首先,啟動系統后,兒童根據需要選擇不同的學習內容,系統會根據兒童的輸入初始化場景環境,加載場景模型及人物角色。此時,兒童可以利用虛擬搖桿在虛擬場景中進行漫游,在虛擬世界中盡情參觀,找尋發現新鮮事物,一旦找尋到任務卡中的目標,就可以靠近點擊,系統會在點擊的同時發射粒子特效表示目標找尋正確。接下來就可以進行知識學習,學習卡片上面有物品的名稱以及中英文注釋。此時,兒童有兩種方式可供選擇。一種是開啟語音功能,系統自動發音,兒童可以進行跟讀。還有一種是切換到AR系統中進行3D交互,若選擇AR交互,系統自動開啟攝像頭進行視頻采集,并進行標識識別、跟蹤注冊等一系列活動,將虛擬場景和真實場景的數據進行疊加,并將虛實融合后的景象呈現在兒童面前。最后系統判斷是否學習完本章所有知識,如果沒有則繼續返回VR場景漫游,否則退出當前場景繼續學習其他內容。系統基于AR-VR交互創新性學習方式使兒童在虛擬世界中發現新鮮事物,點擊即可學習知識,生動有趣,激發兒童學習積極性。
2.2.1 虛擬環境搭建
虛擬環境搭建是兒童智力開發系統中的重要組成部分。幾何法和物理法是經典的兩種常用建模方法。基于物理的建模方法能夠表現模型真實的物理運動,但是需要求解一組復雜的微分方程,計算開銷大,計算效率受數值方法的穩定性限制。由于兒童智力開發系統對實時性和穩定性要求較高,所以基于幾何建模的方法更加適合,因為基于幾何建模方法無需進行復雜的運算,計算速度快,效率高[8]。因此,兒童智力開發系統中的模型采用幾何建模方式進行構建,包括樹木、花兒、房屋等模型。在構建模型時盡量采用多邊形加紋理貼圖的方式實現,主要代碼如下:
void Draw(float x,float y,float z,float tx,float ty,float tz,float a,float rx,float ry,float rz)
{
glPushMatrix();
glTranslatef(tx,ty,tz);
glRotate(fa,rx,ry,rz);
glEnable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
glBindTexture(GL_TEXTURE_2D,texture[95]);
glBegin(GL_QUADS);
glTexCoord2f(0.0,0.0); glVertex3(f?x,?y,z);
glTexCoord2f(0.0,1.0); glVertex3(f?x,y,z);
glTexCoord2f(1.0,1.0); glVertex3(fx,y,z);
glTexCoord2f(1.0,0.0); glVertex3(fx,?y,z);
glEnd();
glEnable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
glPopMatrix();
}
2.2.2 粒子特效實現
在虛擬環境中,粒子特效能夠增強兒童學習時的體驗感,絢麗的粒子特效可以讓激發兒童的學習積極性。系統設計當兒童學習到知識后會出現粒子的爆炸發光效果,提示兒童完成學習任務。
(1)粒子屬性
首先,設計粒子系統屬性包括:粒子數量、粒子大小、粒子顏色、粒子速度、粒子加速度、粒子生命值等信息。然后初始化所有粒子的初始屬性值,設粒子的坐標為(x,y,z),則粒子系統中粒子初始坐標通過公式(1)計算隨機得出。
近年來,因火災引起的車輛事故時有發生,按照起火原因,汽車火災大致分為自燃、引燃、碰撞起火、爆炸和雷擊五種類型,這五種類型的前三項,成為了司法鑒定的重點。本文結合一起實際案例,利用激光拉曼光譜法對現場殘留物進行成分分析,使用“排除法”確證了現場起火的根本原因。保險公司的理賠工作提供了法律依據。[1-3]

其中,R為常數,取值100。
(2)粒子運動
粒子在運動過程可被近似為斜拋運動,如圖3 所示。其中,系統粒子速度位移更新過程可以描述為:

其中,Vx為系統粒子水平方向速度,Vy為系統粒子豎直方向速度,Sx為系統粒子水平方向位移,Sy為系統粒子豎直方向位移,V為系統粒子瞬時速度,α為速度V與水平方向夾角,t為粒子運行時間。

圖3 爆炸粒子運動示意圖
(3)觸發實現
粒子觸發檢測采用射線技術實現。射線是一條從物體上的一點向其運動方向發出的射線,通過判斷射線與其他物體的碰撞器是否相交以及物體間距離來進行檢測。系統中,當點擊鼠標左鍵時,從鼠標點擊處向目標物體發射一條射線,若在檢測范圍內,則產生粒子效果,代碼如下所示:
if(Input.GetMouseButtonDown(0)){
if(Physics.Raycas(tray,out hit)){
hitname=hit.collider.name;
GameObject particles=Instantiate(onClickparticle,hit.point,Quaternion.identity)as GameObject;
2.2.3 導航地圖實現
兒童在虛擬世界中可以對身邊事物隨時學習。為此,場景中加入導航地圖功能,系統中的導航地圖可以使兒童在虛擬場景學習時獲得實時的位置信息,快速地找到知識卡片信息。系統將地形按比例縮放到導航地圖的大小,場景中架設2 個攝像機,主攝像機照射主場景,另一個攝像機將以俯視的角度獲取地形信息,設置垂直投影,照射的部分縮小在制定位置呈現,并將人物角色作為導航地圖攝像機的跟隨目標。然后將投影的畫面送到顯示在UI 的Textrue 上面,如圖4 所示。角色移動時,導航地圖中場景也相應地伴隨著移動,映射物體在導航地圖中坐標計算按照導航地圖寬和地形寬比例進行換算得到,如式(6)~式(9)所示:


其中,地形寬為W,地形長為L,導航地圖寬為w,導航地圖長為l,目標物體坐標為(X,Y),映射物體坐標為(x,y)。

圖4 導航地圖示意圖
2.2.4 跟蹤注冊實現
跟蹤注冊技術是AR系統的前提和基礎,是決定AR系統性能優劣的關鍵。目前常見的跟蹤注冊技術有三種[9]:第一種是基于方位傳感器的跟蹤注冊即利用方位跟蹤傳感器來檢測真實世界里AR系統使用者的方向和位置。第二種是基于計算機視覺的跟蹤注冊即利用計算機視覺理論對攝像頭捕捉到的視頻進行實時處理,計算出攝像頭在三維空間中所處的位置與姿態。第三種是將兩者混合的跟蹤注冊方式。綜合比較,基于計算機視覺的跟蹤注冊方法硬件成本低、系統構成簡單、實現相對簡單,被廣泛應用于AR系統中。
基于計算機視覺跟蹤注冊方法按照有無標記可以分為基于自然特征的方式和基于人工標記方式[10]。基于自然特征的方法需要將拍攝對象物體所得圖像上提取的自然特征數據和對象物體的自然特征數據進行對應配對,計算量大。而基于人工標記法相對計算量較小,而且穩定準確。因此,本系統采用基于計算機視覺中的人工標記方式進行跟蹤注冊[11],具體實現步驟如下:
步驟1通過攝像頭來獲取現實世界的真實視頻,并將其傳送到計算機中。
步驟2對采集的圖像進行二值化預處理[12],如公式(10)所示。對于圖像中任意一點(x,y),如果其灰度值S(x,y)≥t則可以認為該像素點為背景點,否則認為該點為興趣點。

通常設置a0=0,a1=1,得到的即為二值化的圖像。
步驟3利用圖像分割及邊緣檢測技術識別出該二值圖像中所有的興趣點。
步驟4根據模式識別匹配算法,將標記圖像與標記庫中的模板標記圖像進行匹配來判斷此標記是否為合法標記,如果匹配成功則認為找到了一個興趣區。
步驟5模版匹配成功后,確定當前標志物的特定ID,進行標志識別。
2.2.5 標志識別實現
傳統識別標志物大多采用二維碼實現,具有識別速度快、精度高等優點,但同時也存在著不美觀、信息表達不直觀等缺陷[13]。為了避免二維碼標志物的缺陷,系統中的標志物利用卡通形象的學習卡片實現,待掃描的標志物卡片為學習內容的形象化表達,更加直觀形象地體現出AR交互內容,并且可以在標識物所在的空間上注冊虛擬場景。如圖5所示,為系統部分標志物卡片識別效果圖。

圖5 標志物識別圖
具體實現時,系統將攝像頭捕獲的視頻流轉換為二值圖像進行計算分析,查找是否有和目標一致的特征點,實現跟蹤識別功能,識別效果如圖6所示,黃色小叉為圖像特征點,部分實現代碼如下:
for(int tIdx=0;tIdx {constQCAR::Trackable*trackable=state.getActiveTrack -able(tIdx); QCAR::Matrix44F modelViewMatrix= QCAR::Tool::convertPose2GLMatrix(trackable->getPose()); int textureIndex=(!strcmp(trackable->getName(),"stones"))?0:1; constTexture*constthisTexture=textures[textureIndex];} 圖6 標志識別效果圖 2.2.6 虛實融合實現 虛實融合可以提高兒童體驗的真實感,向兒童呈現出具有高度逼真感的虛實融合新環境[14]。系統在完成標識模板的識別后,得到標識的編號ID,由于每個標識都與某個預先設計好的三維虛擬物體對應。根據識別標識的ID號可以匹配得到需要加載的虛擬物體。然后根據攝像機定標法求出攝像機位姿數據,從而得到需要加載的3D 虛擬物體的具體位置。最后,在計算機顯示器、智能手機或頭盔顯示設備上完成圖像的輸出。 2.2.7 系統交互實現 交互性是兒童智力開發系統的一個重要特征[15],AR-VR交互方式是本系統的一大特點。虛擬世界與增強現實世界的結合為系統增添了趣味性,提高兒童的專注力。當在虛擬場景中點擊AR 交互,系統會從VR 切換到AR 系統中觀看知識點的完整3D 動畫效果。如果選擇學習,系統將以文字加拼音輔助的方式顯示知識點,兒童可以根據系統發聲進行跟讀,實現兒童與虛擬物體的交互,AR-VR交互流程如圖7所示。 圖7 AR-VR交互流程圖 系統中采用虛擬搖桿技術操縱角色在虛擬場景中漫游,兒童通過手指的觸摸控制虛擬拖動點。設定虛擬搖桿的控制區域在圓o范圍內,通過虛擬搖桿的拖動點a在圓o內的位置來反映應用中第三人稱的位置移動以及轉換漫游視角,如圖8 所示。虛擬搖桿功能計算,如式(11)所示: 其中,圓o為虛擬搖桿控制范圍,r為控制半徑,a為虛擬搖桿控制范圍外點,其坐標為(xa,ya),e為虛擬搖桿邊界上的點,其坐標為(xe,ye)。 圖8 虛擬搖桿示意圖 兒童在虛擬世界中與虛擬物體(房屋、地面、石頭、樹木等)進行交互基于AABB 包圍盒碰撞檢測技術實現[16]。其算法是基于每一條坐標軸并利用盒子的邊緣去檢測,將實際檢測碰撞對象包含進該觸發盒中,實現碰撞檢測,為簡化碰撞對象之間的運算,在碰撞對象的外圍包裹一個規則的幾何體。碰撞檢測原理如圖9 所示,圖中為物體A和物體B在XY平面投影效果,其中中間斜線區域為物體A與物體B的重疊區域。如果在三維坐標系下,如下表達式成立,則可判斷發生了碰撞。 圖9 AABB碰撞檢測原理示意圖 (AminX≤BmaxX&&AmaxX≥BminX)&&(AminY≤BmaxY&&AmaxY≥BminY)&&(AminZ≤BmaxZ&&AmaxZ≥BminZ) 為了驗證兒童智力開發系統運行效果,本文進行了大量仿真實驗。仿真實驗在配置為(Intel)Core i5-8400 CPU(2.8~4.0 GHz)、DDR4 8 GB 內存以及 Nvidia GTX1060 6 GB顯卡的PC機,編譯環境為Visual Studio 2017,代碼編寫采用C#語言,基于Unity3D 平臺結合Vuforia SDK實現。 啟動系統后,進入場景選擇模式,一共有4 個場景可以選擇,如圖10、11 所示。當進入場景后,通過手指觸摸可以控制場景中第三人稱的位置移動以及轉換漫游視角,實現個性化的自主參觀,欣賞森林風景并且根據任務卡提示在虛擬場景中學習對應知識。當完成任務后即可出現粒子特效,并彈出相應知識介紹,如圖12、13所示。系統中引入游戲化學習方式通過設定任務數量以及時間增加緊張感。系統右上方是導航地圖,提示任務區域所在位置。VR 部分采用Oculus Rift DK2 虛擬頭盔進行測試,具有良好沉浸感,并且可以實現360°自由視角實現對事物全面觀察,測試效果如圖14、15所示。 圖10 系統界面效果圖 圖11 關卡選擇效果圖 圖12 虛擬漫游效果圖 圖13 學習內容效果圖 圖14 自由視角測試效果圖 圖15 虛擬沉浸感測試效果圖 切換到AR 系統后,可以通過掃描識別圖疊加三維虛擬物體,實現多感官交互學習。為了驗證系統性能,將標志識別圖分別進行遮擋以及明暗處理,分別驗證標志識別圖被遮擋30%、50%和60%情況下以及在弱光源和強光源下的識別效果,測試效果如圖16、17所示。實驗結果表明,AR 系統在遮擋環境下和光線條件較差環境中能夠根據殘留的標志物信息來獲得準確的跟蹤注冊數據,具有很好的魯棒性,可以很好地適應環境。 圖16 遮擋處理測試效果圖 圖17 光線影響測試效果圖 將VR技術和AR技術結合開發了兒童智力開發系統。通過虛擬世界和現實世界之間的交互切換充分調動了兒童的學習積極性,讓兒童從視覺、聽覺和觸覺上感受虛擬世界場景,為兒童傳遞更豐富、更具體的經驗,達到良好的教育效果,這種新穎的學習模式,是兒童智力開發的一種新手段。未來AR-VR混合技術的應用將會擴展到高危虛擬場景模擬、城市規劃等多個領域。




3 實驗與分析








4 結束語