徐 敏 ,童 強,2,張行文,2,熊旭輝,許新山
(1.湖北師范大學 計算機科學與技術學院,湖北 黃石 435002;2.湖北師范大學 文理學院,湖北 黃石 435003)
增強現(xiàn)實技術在移動學習上的應用研究
徐 敏1,童 強1,2,張行文1,2,熊旭輝1,許新山1
(1.湖北師范大學 計算機科學與技術學院,湖北 黃石 435002;2.湖北師范大學 文理學院,湖北 黃石 435003)
隨著新一代互聯(lián)網時代的迅速到來,市場上絕大多數手持設備或是智能終端自身己經集成了無線網絡、攝像頭、GPS和傳感器等功能完善的硬件模塊,這為繼續(xù)研究移動增強現(xiàn)實技術的廣泛應用提供了良好的硬件條件。介紹項目的總體結構圖以及關鍵代碼分析,并提出“借助vysor將安卓手機的屏幕畫面實時同步到電腦屏幕上,直接在電腦上對手機進行遠程控制操作”的想法,給出了實踐效果圖。結果表明,該方法能夠在終端連續(xù)移動過程中無縫切換虛實疊加的效果,更展示了增強現(xiàn)實技術在移動學習上的應用優(yōu)勢。
增強現(xiàn)實技術;同步投影;移動學習
在國外,增強現(xiàn)實技術是近幾年開始被應用在教育領域。其中,將增強現(xiàn)實技術融入課堂學習實踐的有Shelton和Hedley、Kaufmann教授、Dunser和Horneker、EI Sayed等人在這一塊做了突出貢獻。El Sayed等人設計了一款增強現(xiàn)實的手機學習卡片(ARSC),將卡片和立體模型相結合,提供豐富的用戶體驗[1]。至于國內,比國外要晚幾年,研究機構主要集中在高校的科研單位,如:北京理工大學、北京航空航天大學、國防大學、浙江大學、上海大學等。目前,我國的增強現(xiàn)實技術現(xiàn)處在從算法實現(xiàn)、算法優(yōu)化本身向具體應用的過渡階段,增強現(xiàn)實型的教學產品在市場上還不多見。李燁, 楊敏等人提出了基于移動終端的增強現(xiàn)實系統(tǒng),通過攝像頭捕獲文字信息識別對象,按照預設內容在視頻界面上添加不同的虛擬物體,實現(xiàn)實物與虛擬信息的完美融合[2]。張金穎, 姚志強等人提出了兒童讀物移動增強現(xiàn)實系統(tǒng),通過攝像頭等采集設備,從周邊真實場景中實時采集視頻流,并據此計算觀察者當前的位姿,然后生成虛擬場景并進行渲染,最后融合到真實場景中,并輸出[3]。從目前我國在教育領域的研究方向來看,相關研究人員還是很認同把增強現(xiàn)實技術推廣到移動學習中去的做法。
綜合國內外研究現(xiàn)狀,我們不難看出:目前增強現(xiàn)實技術在教育領域的應用主要集中在立體書籍、幼兒教育和技能培訓等幾個方向[4]。另外,基于增強現(xiàn)實技術的移動學習已然成為國內外研究的熱點,但受限于技術的限制,它還處于初級階段。智能終端設備的GPS及各種衛(wèi)星定位、定向技術可以當即獲取學習者所處環(huán)境的各種信息,為他們提供情景化學習氛圍,讓隨時隨地獲取知識成為可能,真正實現(xiàn)了移動學習的意義[5]。目前,人機交互技術正處于多通道、多媒體的智能人機交互階段,雖然國內外已經取得了很多的研究成果,但這項技術在教學應用上的關注度仍居高不下。
移動增強現(xiàn)實技術,主要是指增強現(xiàn)實技術在手持設備上的應用,除了要具備傳統(tǒng)增強現(xiàn)實的虛實結合、實時交互和三維注冊的特點外,還需要具備較高的自由移動性,不會因為環(huán)境因素而只能固定在一個較小范圍內活動[6]。在電子書的應用基礎上,本文提出了一種基于Unity3D的移動增強現(xiàn)實開發(fā)技術,能夠實現(xiàn)多種復雜標識物的自動切換識別,并將其應用在教育領域,具體到兒童的書籍當中。在整個交互過程中,Vuforia引擎負責檢測和跟蹤標識物特征點,并根據不同標識物的位姿信息在視平面上疊加對應的文字圖像、3D模型、動畫、音頻、視頻等虛擬信息,讓用戶隨心所欲在移動過程中進行虛實交互。其中,這三者之間的包含關系如圖1所示。
圖1 虛擬現(xiàn)實技術、增強現(xiàn)實技術和移動增強現(xiàn)實技術包含關系圖
對比了移動設備 iOS、Android 兩大操作系統(tǒng)平臺,總結了二者各自的優(yōu)缺點,結合開放性、通用性等優(yōu)點選取 Android 硬件平臺作為本文移動增強現(xiàn)實系統(tǒng)的開發(fā)平臺??v觀市場上,支持Android平臺增強現(xiàn)實技術的開發(fā)工具包,主要有Metaio、AndAR、OpenCV和Vuforia等。其中較常使用的是AndAR和Vuforia,Vuforia是由高通發(fā)布的一款基于嵌入式設備的增強現(xiàn)實開發(fā)包,支持Android平臺、IOS平臺和Unity3D三個版本的平臺。Vuforia AR SDK是一個功能豐富的商業(yè)增強現(xiàn)實SDK,其SDK許可管理允許開發(fā)者采用SDK來進行開發(fā)和發(fā)布商業(yè)的增強現(xiàn)實應用。文中項目整體設計框架是基于Unity3D增強現(xiàn)實技術上實現(xiàn)的,即結合三維建模工具、javascript語言和C #語言在Unity3D中實現(xiàn)交互,由Vuforia引擎負責檢測和跟蹤標識物特征點,并根據不同標識物的相對位置和攝像機的位姿信息在移動設備視平面上疊加對應的文字圖像、3D模型、動畫、音頻、視頻等多種虛擬的多媒體信息,借助Vysor將安卓手機的屏幕畫面實時同步投影顯示在電腦、投影儀的屏幕上,甚至還能直接在電腦上對手機進行遠程控制操作,其系統(tǒng)的總體結構圖如圖2所示。
圖2 系統(tǒng)的總體結構
該系統(tǒng)包括真實環(huán)境、Android智能終端、服務端和數據庫4個部分。真實環(huán)境,是為增強現(xiàn)實系統(tǒng)有效運行而提供的真實場景,主要和Android智能終端交互。Android智能終端主要包括終端信息獲取、標識識別、手勢識別和增強信息顯示四個模塊。其中,終端信息獲取模塊采用GPS和Android手機傳感器獲取當前手機的經緯度信息和位姿信息。標識識別模塊則能識別攝像頭下的標識圖,并將獲取的數據信息跟數據庫里的事先匹配好虛擬物體的標識圖進行比對,給出一定信息反饋。手勢識別模塊則根據用戶手指在屏幕上的點擊,實現(xiàn)基本的交互操作。增強信息顯示模塊,即實現(xiàn)現(xiàn)實世界和虛擬世界的完美融合。而服務器負責跟MySQL數據庫、Android客戶端進行通信,數據庫則負責存儲興趣點信息。
目前,在移動設備上實現(xiàn)的增強現(xiàn)實系統(tǒng)比較常見的還是采用屏幕觸摸、手勢以及基于標記的交互方式,通過設計合理的圖形用戶界面引導用戶進行功能的選擇和調用。同時,高通的SDK就是采用了無標記跟蹤,即從圖像里提取自然特征,實時對手機進行定位,支持大量的Android平臺并且在持續(xù)的開發(fā)中,這點正好跟移動端增強現(xiàn)實系統(tǒng)的功能需求吻合。智能交互技術是移動增強現(xiàn)實系統(tǒng)中與顯示技術和跟蹤注冊技術有著緊密聯(lián)系的技術,交互技術的優(yōu)劣直接影響著虛擬世界與現(xiàn)實世界交互的好壞。此項目涉及的UI元素及關鍵代碼分析如下:
判斷手指是否選中模型:
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)功能:根據不同的標識圖顯示不同的3D模型。
2)操作形式:
放大/縮小:兩手指分別由里向外拖曳,實現(xiàn)模型的放大效果;反之,由外向內拖曳,則實現(xiàn)模型的縮小效果。
旋轉:只需用一個手指分別沿X、Y、Z軸三個方向拖曳,便可以依次實現(xiàn)模型在這三個方向的旋轉。這個功能可用來360度觀察3D模型。
上下左右移動:一個手指分別向上、向下、向左、向右滑動,便可以上下左右的移動模型。
3)關鍵代碼
放大/縮小:
bool isEnlarge(Vector2 oP1, Vector2 oP2, Vector2 nP1, Vector2 nP2){
//函數傳入上一次觸摸兩點的位置與本次觸摸兩點的位置計算出用戶的手勢
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;//縮小手勢
}
}
旋轉/移動:
var angle:float=Time.deltaTime*100;//設置旋轉角度范圍
var translate:float=Time.deltaTime*100;//設置移動范圍
transform.Rotation(angle,0,0); //沿X軸旋轉angle度
transform.Rotation(0, angle,0);//沿Y軸旋轉angle度
transform.Rotation(0,0, angle);//沿Z軸旋轉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模型進行相應的解釋說明。
2)操作形式:
顯示/隱藏:單擊一次按鈕,頁面上會顯示當前模型所對應的文字說明材料;再單擊一次按鈕,頁面上模型所對應的文字說明材料會被隱藏。
3)關鍵代碼
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)操作形式:
播放/暫停/結束:單擊按鈕,系統(tǒng)會播放跟當前頁面上顯示的模型相對應的音頻說明材料;單擊按鈕,系統(tǒng)會暫停剛才所播放的音頻;單擊按鈕,系統(tǒng)會結束當前播放的音頻材料。
3)關鍵代碼
播放/暫停/結束:
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),"結束音樂")){
if (music.isPlaying){
music.Stop();
}
}
3.4 UI按鈕:真實存在于頁面的固定按鈕
1)功能:單擊按鈕,調用某個功能代碼,從而實現(xiàn)某個功能,完成一次事件的觸發(fā)操作。比如:實現(xiàn)頁面的跳轉;單擊暫?;虿シ艑囊纛l;單擊顯示或隱藏輔助的文字說明。
2)操作形式:
跳轉:單擊按鈕,可跳轉到事先設置超鏈接的頁面。
3)關鍵代碼
事件促發(fā)觸發(fā):
if (toolbarID == 2) {
Application.LoadLevel ("model");//單擊第二個按鈕,頁面跳轉到model
}
3.5 虛擬按鈕:通過識別標識圖顯示對應虛擬按鈕
處理事件的按鈕是通過實現(xiàn)IVirtualButtonEventHandler接口,這個接口有兩個方法:OnVirtualButtonPressed和OnVirtualButtonReleased。
1)功能:單擊可顯示標識圖所對應分解模型(化學:單擊可顯示標識圖所對應虛擬3D模型的分解模型;動物學:單擊可顯示動物的部分肢體圖片)。
2)操作形式:
顯示/隱藏:單擊一次虛擬按鈕,顯示對應的虛擬信息;再單擊一次虛擬按鈕,隱藏對應的虛擬信息。
3)關鍵代碼
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 技術路線和開發(fā)環(huán)境
1)技術路線
本系統(tǒng)采用基于Unity3D的移動增強現(xiàn)實技術實現(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)研究準備:
i)移動設備的配置,根據系統(tǒng)功能和性能需求,選用Android移動設備作為硬件調試平臺。表1中向數據是本次測試機向相關參數配置。
表1 Android終端參數配置
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)境搭建具體步驟這里不詳述,可參考相關通用公開資料)。
4.2 Vysor實現(xiàn)同步投影顯示
Vysor是一款Chrome瀏覽器插件應用,可以將安卓手機的屏幕畫面實時同步投影顯示在電腦的屏幕上,甚至還能直接在電腦上對手機進行遠程控制操作,并且跨平臺支持Win / Mac / Linux,用途非常廣泛。
1)安裝Vysor
i)下載Vysor并安裝Vysor ;
ii)手機開啟USB調試模式;
iii)安裝ADB Driver驅動:如果你在Windows系統(tǒng)下使用Vysor,需要安裝一個ADB Driver驅動(Mac下不需要);
iv)將手機通過USB數據線連接到電腦,并啟動Vysor,找到對應的移動設備并按下選擇鍵即可連接;
一般地,首次連接成功后,手機上會彈出對話框問你是否允許連接,選擇“是”即可。此時Vysor會自動在你的手機上安裝Vysor的APP,提示連接成功后,我們便可在電腦上看到手機的同步畫面。通過鼠標對手機進行操作,手機跟著同步響應;反之在手機上操作,電腦上的顯示也會隨之變化。Vysor可以支持一次連接多臺Android手機或平板設備。
2)同步投影效果展示
Vysor鍵盤和鼠標對手機進行操作的對應關系如下:鼠標左鍵 = 手指點擊、鍵盤Esc / 鼠標右鍵 = 手機返回鍵、F1 = 菜單鍵、鍵盤Home鍵 / 鼠標中鍵 = 手機Home鍵。其同步效果圖如圖3所示。
圖3 同步投影效果
相比于傳統(tǒng)的印刷教材、老套的教學方式,其最大的意義在于突破空間、時間以及其他客觀因素的約束,實現(xiàn)了虛擬世界和真實世界的實時同步,讓師生有身臨其境的感覺。2008年,徐紀濤、李鑫曾在《虛擬現(xiàn)實技術的教學應用探析》一文中提出虛擬現(xiàn)實技術的四種應用:課件制作、網絡協(xié)作學習、基礎課虛擬實驗室、訓練科目。Kikuo Hideaki曾指出,增強現(xiàn)實技術可以為學習者提供一種新型的學習工具,而且具有很大的發(fā)展空間。在實踐層面上,基于增強現(xiàn)實技術設計、開發(fā)針對性的教育教學資源或學習實驗平臺,是對主流教學形式的豐富和補充,為教學和學習提供了多樣化的手段和方法,也對教學演示、實驗指導、課程教學等方面有很大的幫助。增強現(xiàn)實技術作為新興技術的代表之一,在教育教學中的應用對推進教育信息化,促進教育教學改革具有積極的意義和深遠的影響。人性化的交互方式給學習者帶來全新的學習體驗,真正實現(xiàn)數字反哺現(xiàn)實,技術改變生活。
[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)實技術的移動虛擬電子書研究[J].軟件導刊,2013,12(1):12~14.
[3]張金穎,姚志強,吳 獻,等.兒童讀物移動增強現(xiàn)實系統(tǒng)的研究[J].信息系統(tǒng)工程, 2016,(3):53~56.
[4]董子龍,章國鋒,邵元龍,等.基于漢字標志的增強現(xiàn)實系統(tǒng)[J].中國圖像圖形學報,2009,(7):1463~1468.
[5]程 志,金義富,智能手機增強現(xiàn)實系統(tǒ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
湖北省高等學校省級教學研究項目,2014367;湖北省教育廳科技項目,B20132505;湖北省高校優(yōu)秀中青年團隊,T201430
徐敏(1990— ),女,湖北黃石人,碩士研究生,主要研究方向為增強現(xiàn)實,智能計算與人機交互.
童強(1968— ),男,碩士,碩士生導師,主要研究方向為增強現(xiàn)實、機器視覺、人機交互技術.
TP391
A
2096-3149(2017)01- 0076-03
10.3969/j.issn.2096-3149.2017.01.016