徐 敏 ,童 強,2,張行文,2,熊旭輝,許新山
(1.湖北師范大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,湖北 黃石 435002;2.湖北師范大學(xué) 文理學(xué)院,湖北 黃石 435003)
增強現(xiàn)實技術(shù)在移動學(xué)習(xí)上的應(yīng)用研究
徐 敏1,童 強1,2,張行文1,2,熊旭輝1,許新山1
(1.湖北師范大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,湖北 黃石 435002;2.湖北師范大學(xué) 文理學(xué)院,湖北 黃石 435003)
隨著新一代互聯(lián)網(wǎng)時代的迅速到來,市場上絕大多數(shù)手持設(shè)備或是智能終端自身己經(jīng)集成了無線網(wǎng)絡(luò)、攝像頭、GPS和傳感器等功能完善的硬件模塊,這為繼續(xù)研究移動增強現(xiàn)實技術(shù)的廣泛應(yīng)用提供了良好的硬件條件。介紹項目的總體結(jié)構(gòu)圖以及關(guān)鍵代碼分析,并提出“借助vysor將安卓手機的屏幕畫面實時同步到電腦屏幕上,直接在電腦上對手機進行遠程控制操作”的想法,給出了實踐效果圖。結(jié)果表明,該方法能夠在終端連續(xù)移動過程中無縫切換虛實疊加的效果,更展示了增強現(xiàn)實技術(shù)在移動學(xué)習(xí)上的應(yīng)用優(yōu)勢。
增強現(xiàn)實技術(shù);同步投影;移動學(xué)習(xí)
在國外,增強現(xiàn)實技術(shù)是近幾年開始被應(yīng)用在教育領(lǐng)域。其中,將增強現(xiàn)實技術(shù)融入課堂學(xué)習(xí)實踐的有Shelton和Hedley、Kaufmann教授、Dunser和Horneker、EI Sayed等人在這一塊做了突出貢獻。El Sayed等人設(shè)計了一款增強現(xiàn)實的手機學(xué)習(xí)卡片(ARSC),將卡片和立體模型相結(jié)合,提供豐富的用戶體驗[1]。至于國內(nèi),比國外要晚幾年,研究機構(gòu)主要集中在高校的科研單位,如:北京理工大學(xué)、北京航空航天大學(xué)、國防大學(xué)、浙江大學(xué)、上海大學(xué)等。目前,我國的增強現(xiàn)實技術(shù)現(xiàn)處在從算法實現(xiàn)、算法優(yōu)化本身向具體應(yīng)用的過渡階段,增強現(xiàn)實型的教學(xué)產(chǎn)品在市場上還不多見。李燁, 楊敏等人提出了基于移動終端的增強現(xiàn)實系統(tǒng),通過攝像頭捕獲文字信息識別對象,按照預(yù)設(shè)內(nèi)容在視頻界面上添加不同的虛擬物體,實現(xiàn)實物與虛擬信息的完美融合[2]。張金穎, 姚志強等人提出了兒童讀物移動增強現(xiàn)實系統(tǒng),通過攝像頭等采集設(shè)備,從周邊真實場景中實時采集視頻流,并據(jù)此計算觀察者當(dāng)前的位姿,然后生成虛擬場景并進行渲染,最后融合到真實場景中,并輸出[3]。從目前我國在教育領(lǐng)域的研究方向來看,相關(guān)研究人員還是很認同把增強現(xiàn)實技術(shù)推廣到移動學(xué)習(xí)中去的做法。
綜合國內(nèi)外研究現(xiàn)狀,我們不難看出:目前增強現(xiàn)實技術(shù)在教育領(lǐng)域的應(yīng)用主要集中在立體書籍、幼兒教育和技能培訓(xùn)等幾個方向[4]。另外,基于增強現(xiàn)實技術(shù)的移動學(xué)習(xí)已然成為國內(nèi)外研究的熱點,但受限于技術(shù)的限制,它還處于初級階段。智能終端設(shè)備的GPS及各種衛(wèi)星定位、定向技術(shù)可以當(dāng)即獲取學(xué)習(xí)者所處環(huán)境的各種信息,為他們提供情景化學(xué)習(xí)氛圍,讓隨時隨地獲取知識成為可能,真正實現(xiàn)了移動學(xué)習(xí)的意義[5]。目前,人機交互技術(shù)正處于多通道、多媒體的智能人機交互階段,雖然國內(nèi)外已經(jīng)取得了很多的研究成果,但這項技術(shù)在教學(xué)應(yīng)用上的關(guān)注度仍居高不下。
移動增強現(xiàn)實技術(shù),主要是指增強現(xiàn)實技術(shù)在手持設(shè)備上的應(yīng)用,除了要具備傳統(tǒng)增強現(xiàn)實的虛實結(jié)合、實時交互和三維注冊的特點外,還需要具備較高的自由移動性,不會因為環(huán)境因素而只能固定在一個較小范圍內(nèi)活動[6]。在電子書的應(yīng)用基礎(chǔ)上,本文提出了一種基于Unity3D的移動增強現(xiàn)實開發(fā)技術(shù),能夠?qū)崿F(xiàn)多種復(fù)雜標(biāo)識物的自動切換識別,并將其應(yīng)用在教育領(lǐng)域,具體到兒童的書籍當(dāng)中。在整個交互過程中,Vuforia引擎負責(zé)檢測和跟蹤標(biāo)識物特征點,并根據(jù)不同標(biāo)識物的位姿信息在視平面上疊加對應(yīng)的文字圖像、3D模型、動畫、音頻、視頻等虛擬信息,讓用戶隨心所欲在移動過程中進行虛實交互。其中,這三者之間的包含關(guān)系如圖1所示。
圖1 虛擬現(xiàn)實技術(shù)、增強現(xiàn)實技術(shù)和移動增強現(xiàn)實技術(shù)包含關(guān)系圖
對比了移動設(shè)備 iOS、Android 兩大操作系統(tǒng)平臺,總結(jié)了二者各自的優(yōu)缺點,結(jié)合開放性、通用性等優(yōu)點選取 Android 硬件平臺作為本文移動增強現(xiàn)實系統(tǒng)的開發(fā)平臺??v觀市場上,支持Android平臺增強現(xiàn)實技術(shù)的開發(fā)工具包,主要有Metaio、AndAR、OpenCV和Vuforia等。其中較常使用的是AndAR和Vuforia,Vuforia是由高通發(fā)布的一款基于嵌入式設(shè)備的增強現(xiàn)實開發(fā)包,支持Android平臺、IOS平臺和Unity3D三個版本的平臺。Vuforia AR SDK是一個功能豐富的商業(yè)增強現(xiàn)實SDK,其SDK許可管理允許開發(fā)者采用SDK來進行開發(fā)和發(fā)布商業(yè)的增強現(xiàn)實應(yīng)用。文中項目整體設(shè)計框架是基于Unity3D增強現(xiàn)實技術(shù)上實現(xiàn)的,即結(jié)合三維建模工具、javascript語言和C #語言在Unity3D中實現(xiàn)交互,由Vuforia引擎負責(zé)檢測和跟蹤標(biāo)識物特征點,并根據(jù)不同標(biāo)識物的相對位置和攝像機的位姿信息在移動設(shè)備視平面上疊加對應(yīng)的文字圖像、3D模型、動畫、音頻、視頻等多種虛擬的多媒體信息,借助Vysor將安卓手機的屏幕畫面實時同步投影顯示在電腦、投影儀的屏幕上,甚至還能直接在電腦上對手機進行遠程控制操作,其系統(tǒng)的總體結(jié)構(gòu)圖如圖2所示。
圖2 系統(tǒng)的總體結(jié)構(gòu)
該系統(tǒng)包括真實環(huán)境、Android智能終端、服務(wù)端和數(shù)據(jù)庫4個部分。真實環(huán)境,是為增強現(xiàn)實系統(tǒng)有效運行而提供的真實場景,主要和Android智能終端交互。Android智能終端主要包括終端信息獲取、標(biāo)識識別、手勢識別和增強信息顯示四個模塊。其中,終端信息獲取模塊采用GPS和Android手機傳感器獲取當(dāng)前手機的經(jīng)緯度信息和位姿信息。標(biāo)識識別模塊則能識別攝像頭下的標(biāo)識圖,并將獲取的數(shù)據(jù)信息跟數(shù)據(jù)庫里的事先匹配好虛擬物體的標(biāo)識圖進行比對,給出一定信息反饋。手勢識別模塊則根據(jù)用戶手指在屏幕上的點擊,實現(xiàn)基本的交互操作。增強信息顯示模塊,即實現(xiàn)現(xiàn)實世界和虛擬世界的完美融合。而服務(wù)器負責(zé)跟MySQL數(shù)據(jù)庫、Android客戶端進行通信,數(shù)據(jù)庫則負責(zé)存儲興趣點信息。
目前,在移動設(shè)備上實現(xiàn)的增強現(xiàn)實系統(tǒng)比較常見的還是采用屏幕觸摸、手勢以及基于標(biāo)記的交互方式,通過設(shè)計合理的圖形用戶界面引導(dǎo)用戶進行功能的選擇和調(diào)用。同時,高通的SDK就是采用了無標(biāo)記跟蹤,即從圖像里提取自然特征,實時對手機進行定位,支持大量的Android平臺并且在持續(xù)的開發(fā)中,這點正好跟移動端增強現(xiàn)實系統(tǒng)的功能需求吻合。智能交互技術(shù)是移動增強現(xiàn)實系統(tǒng)中與顯示技術(shù)和跟蹤注冊技術(shù)有著緊密聯(lián)系的技術(shù),交互技術(shù)的優(yōu)劣直接影響著虛擬世界與現(xiàn)實世界交互的好壞。此項目涉及的UI元素及關(guān)鍵代碼分析如下:
判斷手指是否選中模型:
if (touch.phase == TouchPhase.Began){
RaycastHit hit = new RaycastHit();// 判斷是否有碰撞到對象
if (Physics.Raycast(ray, out hit, 1000)) {
pickedObject = hit.transform;
lastPlanePoint = planePoint;
}
else{
pickedObject = null;
}
}
3.1 3D模型
1)功能:根據(jù)不同的標(biāo)識圖顯示不同的3D模型。
2)操作形式:
放大/縮?。簝墒种阜謩e由里向外拖曳,實現(xiàn)模型的放大效果;反之,由外向內(nèi)拖曳,則實現(xiàn)模型的縮小效果。
旋轉(zhuǎn):只需用一個手指分別沿X、Y、Z軸三個方向拖曳,便可以依次實現(xiàn)模型在這三個方向的旋轉(zhuǎn)。這個功能可用來360度觀察3D模型。
上下左右移動:一個手指分別向上、向下、向左、向右滑動,便可以上下左右的移動模型。
3)關(guān)鍵代碼
放大/縮小:
bool isEnlarge(Vector2 oP1, Vector2 oP2, Vector2 nP1, Vector2 nP2){
//函數(shù)傳入上一次觸摸兩點的位置與本次觸摸兩點的位置計算出用戶的手勢
var leng1 = Mathf.Sqrt((oP1.x - oP2.x) * (oP1.x - oP2.x) + (oP1.y - oP2.y) * (oP1.y - oP2.y));
var leng2 = Mathf.Sqrt((nP1.x - nP2.x) * (nP1.x - nP2.x) + (nP1.y - nP2.y) * (nP1.y - nP2.y));
if (leng1 < leng2){
return true;//放大手勢
}
else{
return false;//縮小手勢
}
}
旋轉(zhuǎn)/移動:
var angle:float=Time.deltaTime*100;//設(shè)置旋轉(zhuǎn)角度范圍
var translate:float=Time.deltaTime*100;//設(shè)置移動范圍
transform.Rotation(angle,0,0); //沿X軸旋轉(zhuǎn)angle度
transform.Rotation(0, angle,0);//沿Y軸旋轉(zhuǎn)angle度
transform.Rotation(0,0, angle);//沿Z軸旋轉(zhuǎn)angle度
transform.Translate(translate,0,0); //沿X軸移動translate個單位
transform.Translate(0,translate,0); //沿Y軸移動translate個單位
transform.Translate(0,0, translate); //沿Z軸移動translate個單位
3.2 文字信息
1)功能:對3D模型進行相應(yīng)的解釋說明。
2)操作形式:
顯示/隱藏:單擊一次按鈕,頁面上會顯示當(dāng)前模型所對應(yīng)的文字說明材料;再單擊一次按鈕,頁面上模型所對應(yīng)的文字說明材料會被隱藏。
3)關(guān)鍵代碼
void OnGUI(){
if(GUILayout.Button("顯示/隱藏")){
if(gameObject.active == false) {
gameObject.active = true;
}
else{
gameObject.active = false;
}
}
}
隱藏:gameObject.SetActive(false);
顯示:gameObject.SetActive(true);
3.3 音頻
Unity3D游戲引擎一共支持4種音樂格式的文件:
.AIFF:適用于較短的音樂文件可用作游戲打斗音效
.WAV:適用于較短的音樂文件可用作游戲打斗音效
.MP3:適用于較長的音樂文件可用作游戲背景音樂
.OGG:適用于較長的音樂文件可用作游戲背景音樂
1)功能:對3D模型進行補充說明。
2)操作形式:
播放/暫停/結(jié)束:單擊按鈕,系統(tǒng)會播放跟當(dāng)前頁面上顯示的模型相對應(yīng)的音頻說明材料;單擊按鈕,系統(tǒng)會暫停剛才所播放的音頻;單擊按鈕,系統(tǒng)會結(jié)束當(dāng)前播放的音頻材料。
3)關(guān)鍵代碼
播放/暫停/結(jié)束:
if(GUI.Button(new Rect(420,10,70,30),"播放音樂")){
if (!music.isPlaying){
music.Play();
}
if (GUI.Button(new Rect(420,90,70,30), "暫停音樂")){
if (music.isPlaying){
music.Pause();
}
}
if (GUI.Button(new Rect(420,50,70,30),"結(jié)束音樂")){
if (music.isPlaying){
music.Stop();
}
}
3.4 UI按鈕:真實存在于頁面的固定按鈕
1)功能:單擊按鈕,調(diào)用某個功能代碼,從而實現(xiàn)某個功能,完成一次事件的觸發(fā)操作。比如:實現(xiàn)頁面的跳轉(zhuǎn);單擊暫?;虿シ艑?yīng)的音頻;單擊顯示或隱藏輔助的文字說明。
2)操作形式:
跳轉(zhuǎn):單擊按鈕,可跳轉(zhuǎn)到事先設(shè)置超鏈接的頁面。
3)關(guān)鍵代碼
事件促發(fā)觸發(fā):
if (toolbarID == 2) {
Application.LoadLevel ("model");//單擊第二個按鈕,頁面跳轉(zhuǎn)到model
}
3.5 虛擬按鈕:通過識別標(biāo)識圖顯示對應(yīng)虛擬按鈕
處理事件的按鈕是通過實現(xiàn)IVirtualButtonEventHandler接口,這個接口有兩個方法:OnVirtualButtonPressed和OnVirtualButtonReleased。
1)功能:單擊可顯示標(biāo)識圖所對應(yīng)分解模型(化學(xué):單擊可顯示標(biāo)識圖所對應(yīng)虛擬3D模型的分解模型;動物學(xué):單擊可顯示動物的部分肢體圖片)。
2)操作形式:
顯示/隱藏:單擊一次虛擬按鈕,顯示對應(yīng)的虛擬信息;再單擊一次虛擬按鈕,隱藏對應(yīng)的虛擬信息。
3)關(guān)鍵代碼
public void OnButtonPressed(VirtualButtonBehaviour vb){
Debug.Log("OnButtonPressed");
switch (vb.VirtualButtonName){
case "VB1": GameObject.Find("ARdemo1").transform.animation.wrapMode=WrapMode.Loop;
GameObject.Find("ARdemo1").transform.animation.Play("bike");
break;
case "VB2": GameObject.Find("ARdemo1").transform.animation.wrapMode=WrapMode.Loop;
GameObject.Find("ARdemo1").transform.animation.Stop("bike");
break;
}
}
public void OnButtonReleased(VirtualButtonBehaviour vb){
}
4.1 技術(shù)路線和開發(fā)環(huán)境
1)技術(shù)路線
本系統(tǒng)采用基于Unity3D的移動增強現(xiàn)實技術(shù)實現(xiàn)的。
2)開發(fā)環(huán)境
開發(fā)語言:javascript/c#
操作系統(tǒng):Windows 7
集成開發(fā)環(huán)境:Vuforia AR SDK+Unity3D集成Android開發(fā)環(huán)境
三維建模工具:3Dmax
3)研究準(zhǔn)備:
i)移動設(shè)備的配置,根據(jù)系統(tǒng)功能和性能需求,選用Android移動設(shè)備作為硬件調(diào)試平臺。表1中向數(shù)據(jù)是本次測試機向相關(guān)參數(shù)配置。
表1 Android終端參數(shù)配置
ii)開發(fā)環(huán)境搭建,首先配置一臺硬件性能優(yōu)良的Windows7系統(tǒng)PC,然后完成開發(fā)環(huán)境搭建,安裝Unity3D集成Android開發(fā)環(huán)境,安裝JDK、Vuforia AR SDK、Cygwin Terminal 等底層支持(環(huán)境搭建具體步驟這里不詳述,可參考相關(guān)通用公開資料)。
4.2 Vysor實現(xiàn)同步投影顯示
Vysor是一款Chrome瀏覽器插件應(yīng)用,可以將安卓手機的屏幕畫面實時同步投影顯示在電腦的屏幕上,甚至還能直接在電腦上對手機進行遠程控制操作,并且跨平臺支持Win / Mac / Linux,用途非常廣泛。
1)安裝Vysor
i)下載Vysor并安裝Vysor ;
ii)手機開啟USB調(diào)試模式;
iii)安裝ADB Driver驅(qū)動:如果你在Windows系統(tǒng)下使用Vysor,需要安裝一個ADB Driver驅(qū)動(Mac下不需要);
iv)將手機通過USB數(shù)據(jù)線連接到電腦,并啟動Vysor,找到對應(yīng)的移動設(shè)備并按下選擇鍵即可連接;
一般地,首次連接成功后,手機上會彈出對話框問你是否允許連接,選擇“是”即可。此時Vysor會自動在你的手機上安裝Vysor的APP,提示連接成功后,我們便可在電腦上看到手機的同步畫面。通過鼠標(biāo)對手機進行操作,手機跟著同步響應(yīng);反之在手機上操作,電腦上的顯示也會隨之變化。Vysor可以支持一次連接多臺Android手機或平板設(shè)備。
2)同步投影效果展示
Vysor鍵盤和鼠標(biāo)對手機進行操作的對應(yīng)關(guān)系如下:鼠標(biāo)左鍵 = 手指點擊、鍵盤Esc / 鼠標(biāo)右鍵 = 手機返回鍵、F1 = 菜單鍵、鍵盤Home鍵 / 鼠標(biāo)中鍵 = 手機Home鍵。其同步效果圖如圖3所示。
圖3 同步投影效果
相比于傳統(tǒng)的印刷教材、老套的教學(xué)方式,其最大的意義在于突破空間、時間以及其他客觀因素的約束,實現(xiàn)了虛擬世界和真實世界的實時同步,讓師生有身臨其境的感覺。2008年,徐紀(jì)濤、李鑫曾在《虛擬現(xiàn)實技術(shù)的教學(xué)應(yīng)用探析》一文中提出虛擬現(xiàn)實技術(shù)的四種應(yīng)用:課件制作、網(wǎng)絡(luò)協(xié)作學(xué)習(xí)、基礎(chǔ)課虛擬實驗室、訓(xùn)練科目。Kikuo Hideaki曾指出,增強現(xiàn)實技術(shù)可以為學(xué)習(xí)者提供一種新型的學(xué)習(xí)工具,而且具有很大的發(fā)展空間。在實踐層面上,基于增強現(xiàn)實技術(shù)設(shè)計、開發(fā)針對性的教育教學(xué)資源或?qū)W習(xí)實驗平臺,是對主流教學(xué)形式的豐富和補充,為教學(xué)和學(xué)習(xí)提供了多樣化的手段和方法,也對教學(xué)演示、實驗指導(dǎo)、課程教學(xué)等方面有很大的幫助。增強現(xiàn)實技術(shù)作為新興技術(shù)的代表之一,在教育教學(xué)中的應(yīng)用對推進教育信息化,促進教育教學(xué)改革具有積極的意義和深遠的影響。人性化的交互方式給學(xué)習(xí)者帶來全新的學(xué)習(xí)體驗,真正實現(xiàn)數(shù)字反哺現(xiàn)實,技術(shù)改變生活。
[1]El Sayed N A M,Zayed H H ,Sharawy M I. ARSC: Augmented Reality Student Card[J].Computers & Education,2011,56(4):1045~1061.
[2]李 燁,楊 敏,李玉三.基于增強現(xiàn)實技術(shù)的移動虛擬電子書研究[J].軟件導(dǎo)刊,2013,12(1):12~14.
[3]張金穎,姚志強,吳 獻,等.兒童讀物移動增強現(xiàn)實系統(tǒng)的研究[J].信息系統(tǒng)工程, 2016,(3):53~56.
[4]董子龍,章國鋒,邵元龍,等.基于漢字標(biāo)志的增強現(xiàn)實系統(tǒng)[J].中國圖像圖形學(xué)報,2009,(7):1463~1468.
[5]程 志,金義富,智能手機增強現(xiàn)實系統(tǒng)的架構(gòu)及教育應(yīng)用研究[J].中國電化教育,2012,(8):134~138.
[6]Azuma R. A survey of augmented reality[J]. Teleoperators and Virtual Environments,1997, 6(4): 355~385.
Research on the application of augmented reality technology in mobile learning
XU Min1,TONG Qiang1,2,ZHANG Xin-wen1,2, XIONG Xu-hui1,XU Xin-shan1
(1.Computer Science Department of HUBEI Normal University, HuBei HuangShi 435002, China; 2.College of Arts&Acience of HUBEI Normal University, HuBei HuangShi 435003, China)
With the rapid development of the new generation Internet era, most handheld devices or intelligent terminals have integrated hardware modules such as wireless network, camera, GPS and sensors, etc., which provides good hardware conditions for the study of mobile augmented reality technology. In this paper, the overall structure of the project and the key code analysis are introduced in detail, and the idea that synchronizing the screen of Android mobile phone to the computer screen by vysor and controlling the mobile phone directly on the computer is proposed. The results show that the smooth transitions effect of virtual and real superposition in the successive move of terminal, and the application advantage of Augmented Reality Technology in mobile learning.
augmented reality technology; simultaneous projection; mobile learning
2016—10—19
湖北省高等學(xué)校省級教學(xué)研究項目,2014367;湖北省教育廳科技項目,B20132505;湖北省高校優(yōu)秀中青年團隊,T201430
徐敏(1990— ),女,湖北黃石人,碩士研究生,主要研究方向為增強現(xiàn)實,智能計算與人機交互.
童強(1968— ),男,碩士,碩士生導(dǎo)師,主要研究方向為增強現(xiàn)實、機器視覺、人機交互技術(shù).
TP391
A
2096-3149(2017)01- 0076-03
10.3969/j.issn.2096-3149.2017.01.016