王清 張必蘭
摘要:隨著移動智能手機(jī)的發(fā)展,利用增強(qiáng)現(xiàn)實(shí)技術(shù)在Android系統(tǒng)中開發(fā)教育相關(guān)的學(xué)習(xí)軟件,在移動便攜、情景學(xué)習(xí)和人機(jī)交互等方面具有突出優(yōu)勢。該文以針對中小學(xué)生的英語學(xué)習(xí)軟件為例,詳細(xì)論述了使用NyARToolkit在Android平臺上進(jìn)行軟件開發(fā)的過程以及關(guān)鍵技術(shù)的實(shí)現(xiàn)方法,積極探索了增強(qiáng)現(xiàn)實(shí)技術(shù)在教育學(xué)習(xí)領(lǐng)域的應(yīng)用和需求,本項目實(shí)例結(jié)果驗證了將增強(qiáng)現(xiàn)實(shí)技術(shù)應(yīng)用于教育領(lǐng)域的可行性。
關(guān)鍵詞:增強(qiáng)現(xiàn)實(shí);NyARToolKit;Android平臺;英語學(xué)習(xí);教育技術(shù)
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)27-6431-03
Abstract: With the technology advancement of smart phone, developing educational application on Android OS takes great advantage of augmented reality technology which can make the application more portable, pracital and interactive.The paper introduces the key technology of developing augmented reality application with NyARToolkit. Aming at English learning of primary and secondary students, this paper proves the feasibility of aumengted reality technology in learning practice.
Key words: Augmented Reality; NyARToolkit; Android Platform; English Learning; Educational Technology
增強(qiáng)現(xiàn)實(shí)(Augmented Reality,AR)是一種用計算機(jī)產(chǎn)生的附加信息對真實(shí)世界的景象進(jìn)行增強(qiáng)或擴(kuò)張的技術(shù),綜合了光電成像、多傳感器、計算機(jī)圖形、計算機(jī)視覺等多個學(xué)科,是在虛擬現(xiàn)實(shí)(VR)的基礎(chǔ)上發(fā)展起來的新興研究領(lǐng)域[]。傳統(tǒng)的增強(qiáng)現(xiàn)實(shí)系統(tǒng)多基于具有強(qiáng)大計算能力和圖形處理能力的計算機(jī)平臺,需要昂貴的特殊設(shè)備,不利于增強(qiáng)現(xiàn)實(shí)系統(tǒng)的普及。
隨著移動計算設(shè)備和網(wǎng)絡(luò)技術(shù)的急速發(fā)展,具有高性能處理器以及接近普通PC機(jī)運(yùn)算能力的智能手機(jī)逐漸覆蓋了手機(jī)市場,其內(nèi)置的高清攝像頭、藍(lán)牙無線接口及GPS定位系統(tǒng)等,使得增強(qiáng)現(xiàn)實(shí)技術(shù)在移動設(shè)備上的研究和應(yīng)用也日益廣泛。得益于智能手機(jī)不斷提升的硬件性能,增強(qiáng)現(xiàn)實(shí)系統(tǒng)不再需要如早期系統(tǒng)一般,依靠遠(yuǎn)程服務(wù)器來處理數(shù)據(jù),手機(jī)自身就可完成整個處理流程,實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí)效果,在便攜性、移動性以及響應(yīng)速度等方面具有巨大優(yōu)勢,也使得增強(qiáng)顯示系統(tǒng)能夠應(yīng)用于更加廣泛的領(lǐng)域。
目前,Android平臺已成為智能手機(jī)最主要的操作系統(tǒng)之一。據(jù)市場調(diào)研機(jī)構(gòu)Strategy Analytics于2014年1月發(fā)布的針對全球智能手機(jī)市場最新研究報告顯示,2013年Android系統(tǒng)在全球智能手機(jī)市場的份額已經(jīng)達(dá)到了79%,同時互聯(lián)網(wǎng)消費(fèi)調(diào)研中心(ZDC)發(fā)布的《2013-2014年中國智能手機(jī)市場研究年度報告》監(jiān)測數(shù)據(jù)顯示,目前中國智能手機(jī)市場上在售的機(jī)型中,搭載Android系統(tǒng)的產(chǎn)品占據(jù)90.1%的比例,成為市場的絕對主流,這是一個相當(dāng)驚人的數(shù)字。
由此可見,基于Android系統(tǒng)的移動應(yīng)用具有非??捎^的發(fā)展前景,這無疑將有利于開發(fā)增強(qiáng)現(xiàn)實(shí)系統(tǒng)與Android平臺相結(jié)合的教育相關(guān)應(yīng)用。
1 軟件的功能設(shè)計
1.1 主要功能
在經(jīng)濟(jì)全球化的趨勢下,我國改革開放不斷深入,英語成為一門越來越重要且實(shí)用的語言。語言是意義的載體,而詞匯是語言系統(tǒng)的基石。心理學(xué)研究表明,通過視覺感知情景,加深語言聲音和文字的結(jié)合、理解、記憶來掌握語言的效果比單獨(dú)的聽或者讀要好[]。通過這種形象的學(xué)習(xí)法,能夠在學(xué)生的大腦中建立實(shí)物模型與單詞間的記憶聯(lián)系。
基于此,該文設(shè)計并實(shí)現(xiàn)輔助中小學(xué)生英語單詞學(xué)習(xí)及記憶的增強(qiáng)現(xiàn)實(shí)英語學(xué)習(xí)應(yīng)用。該應(yīng)用集文字、三維模型、聲音等訊息內(nèi)容于一體,將抽象信息與直觀信息相結(jié)合,旨在通過增強(qiáng)現(xiàn)實(shí)技術(shù)為中小學(xué)生這一特定年齡群體制作能夠調(diào)動學(xué)生學(xué)習(xí)積極性、激發(fā)學(xué)習(xí)興趣的Android英語單詞識記軟件。
軟件的主要功能有三個方面:識別單詞AR卡片、顯示單詞對應(yīng)三維模型、讀出單詞標(biāo)準(zhǔn)發(fā)音。學(xué)生用戶啟動本軟件后,通過手機(jī)攝像頭獲取AR卡片中的英語單詞,從而在手機(jī)屏幕上顯示該英語單詞所對應(yīng)的虛擬模型,并播放相應(yīng)的單詞發(fā)音。這種新穎的學(xué)習(xí)方式能夠為學(xué)生提供更加獨(dú)特的教育體驗和虛實(shí)結(jié)合的新型學(xué)習(xí)情境,有助于將學(xué)習(xí)的過程延伸到現(xiàn)實(shí)與虛擬交互的世界中,加深學(xué)生對于知識的記憶和理解。
1.2 工作流程
基于增強(qiáng)現(xiàn)實(shí)的Android英語單詞識記軟件的工作流程如圖1所示。該應(yīng)用通過開啟智能手機(jī)攝像頭獲取包含AR標(biāo)志真實(shí)場景的視頻流,繼而對所抓取視頻流中的幀圖像進(jìn)行一系列的處理,進(jìn)一步檢測標(biāo)志、提取標(biāo)志頂點(diǎn)的坐標(biāo)和方位信息,經(jīng)過基本矩陣變換實(shí)現(xiàn)三維注冊;最終在手機(jī)屏幕所顯示的標(biāo)志區(qū)域內(nèi)繪制虛擬物體,以實(shí)現(xiàn)虛實(shí)結(jié)合的增強(qiáng)現(xiàn)實(shí)效果。
2 軟件的實(shí)現(xiàn)過程
本軟件所使用的開發(fā)工具為NyARToolKit工具包,在Eclipse集成開發(fā)環(huán)境下進(jìn)行增強(qiáng)現(xiàn)實(shí)系統(tǒng)開發(fā)。NyARToolkit是從ARToolkit衍生而來的的可視AR類庫,提供面向?qū)ο蟮募僯ava API,是Android增強(qiáng)現(xiàn)實(shí)應(yīng)用的框架。體積小巧的NyARToolKit使得增強(qiáng)現(xiàn)實(shí)系統(tǒng)可以在Android平臺上通過手機(jī)攝像頭來實(shí)現(xiàn)。
為了實(shí)現(xiàn)該軟件,需要完成制作識別對象、實(shí)現(xiàn)模型的三維注冊以及渲染模型三個部分的內(nèi)容。
2.1 識別對象的制作
本項目制作單詞AR卡片作為增強(qiáng)現(xiàn)實(shí)系統(tǒng)的識別對象。單詞AR卡片的作用是向虛擬物體提供繪制信息,根據(jù)這些信息就能夠?qū)崟r確定虛擬物體在真實(shí)場景中的正確位置,在很大程度上降低了計算機(jī)的計算要求和算法的復(fù)雜度。利于增強(qiáng)現(xiàn)實(shí)系統(tǒng)在Android智能手機(jī)平臺上的實(shí)現(xiàn)。
NyARToolkit所識別的標(biāo)志必須具有一個黑色的方框,在標(biāo)志識別時需要先找到黑色的四邊形方框,再進(jìn)一步對標(biāo)志中的單詞內(nèi)容進(jìn)行識別和匹配。NyARToolkit開發(fā)包提供了標(biāo)準(zhǔn)的AR標(biāo)志模板,可以通過繪圖工具或者其他畫圖軟件來制作需要的標(biāo)志
單詞AR卡片制作完成后則需要對其進(jìn)行訓(xùn)練,提取相應(yīng)的灰度值分布以存儲為模板,此處使用了ARToolkit中提供的應(yīng)用程序采集模板圖像信息,將其轉(zhuǎn)換為灰度值輸出,此灰度輸出值將在之后的三維跟蹤注冊的匹配過程中用到。
2.2 三維注冊在NyARToolkit中的實(shí)現(xiàn)
本項目使用的NyARToolkit工具包有兩個核心類,分別是ARToolkitDrawer類和NyARToolkitAndroidActivity類。
ARToolkitDrawer類用Java語言實(shí)現(xiàn)了ARToolkit中的標(biāo)志識別以及目標(biāo)跟蹤功能。為了提取到我們所需要的標(biāo)志信息,首先對攝像頭獲取的數(shù)字圖像進(jìn)行一系列的處理。以一定的頻率讀取視頻流圖像后,將每一幀圖像按照一定的閾值區(qū)間轉(zhuǎn)換為二值圖像,以排除其他色彩信息對于識別過程的干擾;再通過不斷地調(diào)整預(yù)識別圖案邊框的大小,在整個圖像范圍內(nèi)搜索矩形區(qū)域,將搜索到的矩形區(qū)域與之前訓(xùn)練好的標(biāo)志模板相匹配;一旦匹配成功則識別,同時在draw()函數(shù)中獲取攝像頭的外部參數(shù),通過toCameraFrustumRHf()方法計算相對于攝像頭的投影矩陣,將真實(shí)空間坐標(biāo)轉(zhuǎn)換為顯示在屏幕上的圖像空間坐標(biāo),以實(shí)現(xiàn)模型在標(biāo)志上的三維注冊與跟蹤。
NyARToolkitAndroidActivity類用于呈現(xiàn)增強(qiáng)現(xiàn)實(shí)系統(tǒng)的最終效果。該類作為主界面使用戶能夠在該界面通過手機(jī)屏幕查看攝像頭所獲取的視頻流,以便準(zhǔn)確找到放置于環(huán)境中的單詞AR卡片。為了用戶能夠在手機(jī)屏幕上實(shí)時查看真實(shí)場景視頻流,首先對識別和渲染模塊進(jìn)行初始化。在initializeGLSurfaceView()方法中實(shí)例化一個新的ARToolkitDrawer對象并獲取存儲在資源中的單詞卡片標(biāo)志模版,用于獲取攝像頭采集的視頻圖像并進(jìn)行標(biāo)志識別。通過startPreview()方法確認(rèn)攝像頭硬件信息,設(shè)置攝像頭參數(shù)。攝像頭獲取視頻圖像后,在PreviewCallback()方法中將預(yù)先獲取的每一幀視頻圖像和相關(guān)基本信息傳遞給ARToolkitDrawer對象,用于識別。
2.3 Android平臺下三維模型的實(shí)現(xiàn)
本項目使用三維建模軟件MAYA建立三維模型,并且以O(shè)BJ的形式進(jìn)行數(shù)據(jù)存儲。在進(jìn)行移動平臺上三維模型的繪制時,只要將已經(jīng)存儲好的模型數(shù)據(jù)導(dǎo)入到移動平臺上加以利用,并且解析這些三維模型,即OBJ文件,繼而在平臺上渲染出來即可,這樣的方法大大提高了三維模型軟件開發(fā)的效率。
2.3.1 OBJ文件的解析
Maya的開放系統(tǒng)輸出數(shù)據(jù)文件類型有MayaAscii,Mayabinary,DXF,OBJ等。其中OBJ文件是一種文本文件,結(jié)構(gòu)比較簡單,可以直接用寫字板打開進(jìn)行查看和編輯修改。它保存的是一些多邊形的信息,諸如頂點(diǎn)點(diǎn)幾何坐標(biāo)、紋理坐標(biāo),點(diǎn)與點(diǎn)如何連線組成線、面等等。用一個一個的多邊形面片拼合就可以構(gòu)造出三維物體[]。OBJ文件不需要任何種文件頭(File Header),由一行行文本組成,注釋行以符號“#”為開頭,空格和空行可以隨意加到文件中以增加文件的可讀性。有字的行都由一兩個標(biāo)記字母也就是關(guān)鍵詞(Keyword)開頭,關(guān)鍵詞可以說明這一行是什么樣的數(shù)據(jù)。多行可以邏輯地連接在一起表示一行,方法是在每一行最后添加一個連接符(\)[]。
下面簡要介紹一下OBJ文件的解析過程。在Android平臺上獲取Maya的模型信息,解析OBJ文件,構(gòu)建相應(yīng)的模型數(shù)據(jù)結(jié)構(gòu),進(jìn)而得到OBJ文件對應(yīng)的結(jié)構(gòu)體,如對象頂點(diǎn)的結(jié)構(gòu)體、描述材質(zhì)的結(jié)構(gòu)體和描述模型的結(jié)構(gòu)體。將OBJ文件的內(nèi)容讀到相應(yīng)變量中,獲取該三維物體的材質(zhì)、顏色、頂點(diǎn)等描述信息。解析的流程圖如圖4。
4 結(jié)論
本文探討了增強(qiáng)現(xiàn)實(shí)技術(shù)與虛擬教育相結(jié)合的一種方式,并設(shè)計實(shí)現(xiàn)了一個英語單詞識記軟件。與傳統(tǒng)的英語單詞學(xué)習(xí)方式相比,使用本文所開發(fā)的基于增強(qiáng)現(xiàn)實(shí)的英語單詞識記軟件能將英語的語言符號與手機(jī)計算生成的三維可視化模型結(jié)合起來,豐富了學(xué)習(xí)手段和樂趣,且該軟件基于移動終端安卓平臺,便于學(xué)習(xí)者隨時隨地的進(jìn)行學(xué)習(xí)。
參考文獻(xiàn):
[1] 朱淼良,姚遠(yuǎn),蔣云良.增強(qiáng)現(xiàn)實(shí)綜述[J].中國圖象圖形學(xué)報,2004(7):3-10.
[2] 李妍,王雪玲,江鳳霞,等.英語電子書應(yīng)用與現(xiàn)代英語教學(xué)理論與方法革新研究[J]. 經(jīng)濟(jì)師,2011(8):137-138.
[3] 向南平,江資斌,左廷英.OpenGL中Maya模型的應(yīng)用[J].微型電腦應(yīng)用,2002(10):29-31+3.
[4] 李詩平,于永光.bj文件結(jié)構(gòu)分析[J].微計算機(jī)應(yīng)用,1992(5):44-48.
[5] 葉小榕,邵晴.基于增強(qiáng)現(xiàn)實(shí)和位置服務(wù)的手機(jī)廣告系統(tǒng)[J].科技導(dǎo)報,2013(4):67-73.
[6] 黃小鳳,宋瑾鈺,俞成海.基于OpenGL ES的移動平臺的三維模型繪制[J].工業(yè)控制計算機(jī),2013(1):60-62.