鄭明月,李穎,焦梓,丁寧
(1.東北大學軟件學院數(shù)字媒體技術(shù)系,沈陽 110167;2.東北大學軟件學院信息安全系,沈陽 110167)
基于Android的增強現(xiàn)實應用研究
鄭明月1,李穎1,焦梓2,丁寧2
(1.東北大學軟件學院數(shù)字媒體技術(shù)系,沈陽 110167;2.東北大學軟件學院信息安全系,沈陽 110167)
為了解決增強現(xiàn)實技術(shù)在Android平臺上的應用問題,使用Unity與Vuforia結(jié)合的方法進行開發(fā),對普通明信片進行視覺拓展,給出了一個完整的虛擬校園App開發(fā)方案。在該方案中,通過對于模型的合并點處理、貼圖處理等解決手機內(nèi)存與模型質(zhì)量之間的矛盾,降低手機性能的門檻。同時,進行圖像存儲調(diào)度方面功能的開發(fā)與完善。與同類軟件相比對內(nèi)存需求更低、識別效果更好。
20世紀90年代初期,波音公司的Tom Caudell和他的同事在他們設(shè)計的一個輔助布線系統(tǒng)中提出了“增強現(xiàn)實”(Augmented Reality,簡稱 AR)這個名詞[1]。隨著計算機技術(shù)的快速發(fā)展,增強現(xiàn)實技術(shù)得到了廣泛的應用,目前,該技術(shù)的研究已經(jīng)成為計算機視覺、計算機圖形學等領(lǐng)域中的一個熱點,搜索量已經(jīng)超過虛擬現(xiàn)實,人們越來越關(guān)注包裹我們的信息空間[2]。增強現(xiàn)實技術(shù)是將真實場景同虛擬物體加以融合的一種手段,增強現(xiàn)實系統(tǒng)的特點是虛實空間的一致性結(jié)合以及實時交互。
產(chǎn)生現(xiàn)實環(huán)境中不存在的虛擬對象,并通過傳感技術(shù)將虛擬對象準確“放置”在真實環(huán)境中借助顯示設(shè)備將虛擬對象與真實環(huán)境融為一體,并呈現(xiàn)給用戶一個感官效果真實的新環(huán)境[3]。因此,虛實結(jié)合的過程設(shè)計三個方面:三維注冊、物體位姿、光照條紋[4]。
(1)獲取真實場景畫面;
(2)對真實場景畫面進行分析;
(3)計算虛擬物體應有的角度和位置;
(4)顯示代表虛擬物體的模型。
如圖1所示,即真實攝像機捕捉真實環(huán)境畫面并將圖像信息發(fā)送給程序,程序分析圖像計算待擬合的虛擬物體與虛擬攝像頭的相對位置,最后將虛擬物體的圖像疊加在真實畫面上。
傍晚,我靠著逐漸暗淡的、最后的陽光指引,走過十八年前的故居。這條街、這個建筑物開始在我的眼前隱藏起來,像在躲避一個久別的舊友。但是它們改變了的面貌于我還是十分親切,我認識它們,就像認識我自己,還是那樣寬的街,寬的房屋。巍峨的門墻代替了太平缸和石獅子,那一對常常做我們坐騎的背脊光滑的雄獅也不知逃進了哪座荒山。然而大門開著,照壁上“長宜子孫”四個字卻是原樣地嵌在那里,似乎連顏色也不曾被風雨剝蝕。我望著那同樣的照壁,被一種奇異的感情抓住了,我仿佛要在這里看出過去的十九個年頭,不,我仿佛要在這里尋找十八年以前的遙遠舊夢。
Vuforia可以說是 AR(增強現(xiàn)實)業(yè)界的一款支柱級產(chǎn)品,它支持大部分主流手機、平板電腦和增強現(xiàn)實設(shè)備[6]。它是Qualcomm推出的擴增實境應用的軟件開發(fā)工具包,它可以識別場景中特定的圖像。Vuforia將識別圖的灰度信息進行處理形成Marker矩陣碼,并將Marker矩陣碼集合用于真實場景信息分析。本文要識別圖與處理的是明信片。如圖2、圖3所示。
圖1 虛擬物體與真實圖像的處理過程
圖2 普通明信片
圖3 灰度識別點的明信片
在Vuforia通過將外部攝像機捕捉到的畫面作為軟件內(nèi)部攝像機畫面最底層,使用Marker矩陣碼進行匹配,并在上層顯示虛擬模型,這樣就完成了虛擬物體與現(xiàn)實場景的融合,如圖4所示。
圖4 Vuforia融合虛擬與現(xiàn)實圖示
Android手機資源有限,不能承載針對于電腦的傳統(tǒng)建模方法。于是對模型進行了合并點處理、貼圖處理。
在3ds Max建模中,模型的數(shù)據(jù)通過存儲點的位置與點之前的鏈接關(guān)系來保存,設(shè)點的個數(shù)為P,存儲每個點所用空間為Mp,點與點之間的鏈接關(guān)系的個數(shù)為N,存儲每個鏈接關(guān)系所用空間為Mn,存儲一個模型數(shù)據(jù)所用的總空間S。則有:
手機對于數(shù)據(jù)的存儲空間是不可變的,即Mp、Mn為定值,設(shè)常數(shù)A=Mp+2Mn。則公式(3)可推導為:
由此可知,S的大小與P成正比,即減小P減小S。在模型制作過程中,使用將多個點合并為一個點的方法,可以有效減少P,從而使S減小,如圖5所示,將Cub1中黃色點進行合并處理,可以得到Cub2。Cub1中P=12,存儲Cub1模型數(shù)據(jù)所占總空間S1=12A;Cub2中P=8,存儲Cub2模型數(shù)據(jù)所占總空間S2=8A。通過合并處理,在沒有形狀缺失的情況下減少了1/3的存儲空間。
圖5 點合并處理實例
在實際模型制作過程中,存儲空間的節(jié)省比例隨模型的不同而有所變化,經(jīng)過統(tǒng)計該軟件所使用的模型合并點之前與合并點之后的數(shù)據(jù),模型中點的個數(shù)減少了48%。如圖6所示。
在合并點處理之后,貼圖方式也需要進行改變。傳統(tǒng)貼圖時往往會分模塊進行展UV,這樣每個模型會對應數(shù)十張貼圖,每張貼圖上只有部分位置是有用的,大量的貼圖占用了很多空間。在展UV之前將模型將模塊每兩三個合并在一起,此時,模型對應的貼圖數(shù)量就會大量減少。合并點之后模型如圖7所示,貼圖后模型效果如圖8所示。
圖6 點合并前后對比效果
圖8 已貼圖模型
軟件開始運行后,不斷檢測是否有識別圖被識別。當檢測到識別圖時,程序開始按照用戶的操作執(zhí)行,具體流程見圖9。
該軟件實現(xiàn)了圖像識別、模型展示和相冊的存儲與管理三方面的功能,下面進行詳細闡述。
圖像識別功能主要以Vuforia插件為基礎(chǔ),并對它進行了改進,使之更適合本軟件。這里給出具體的改進步驟:
(1)創(chuàng)建索引數(shù)組“int[]Index”,給每個識別圖都分配數(shù)字索引
圖9 軟件工作流程圖
(2)設(shè)置“識別”消息函數(shù)“void getModle()”,該函數(shù)在識別圖被識別時,立即向主控函數(shù)發(fā)送該識別圖對應的索引“Iq”和識別圖被發(fā)現(xiàn)的消息。同理,設(shè)置“丟失”消息函數(shù)“void lostModle()”,該函數(shù)在識別圖被識別后丟失時,立即向主控函數(shù)發(fā)送該識別圖對應的索引和識別圖丟失的消息。
(3)主控函數(shù)根據(jù)接收到的消息執(zhí)行對應的工作。
模型展示功能以UI控制模型的切換為主要內(nèi)容。在識別圖被識別后,程序默認展示識別圖對應的外建模型,并由UI按下事件來控制模型切換。要創(chuàng)建“gameObject[]Modles”數(shù)組來存儲模型,這里Modles數(shù)組可以存儲多個模型,Index中每個元對應一個Mo鄄dles數(shù)組。設(shè)計數(shù)器counter=0,待顯示的模型為“Mv”,待隱藏的模型為“Mo”被。UI每次被按下時執(zhí)行:
這樣,可以實現(xiàn)模型的循環(huán)顯示。
相冊的存儲與管理功能主要實現(xiàn)了屏幕截取、存儲截圖、調(diào)用內(nèi)存中圖片。這三部分功能均由UI調(diào)用,當用戶按下按鈕時,執(zhí)行一次對應的函數(shù)。一次完整的拍攝照片、瀏覽照片的實現(xiàn)過程如下:
(1)隱藏UI層,截取全屏,將截取圖像命名為“Num鄄ber”+number,其中“number”每次截取屏幕時都自增1,將圖像放入軟件數(shù)據(jù)所在路徑,重新顯示UI層。至此屏幕截取與存儲功能完成。
(2)讀取軟件數(shù)據(jù)所在路徑中第一個格式為jpeg的文件“NumberX”,將該文件顯示在屏幕上。按下left按鈕時,讀取名字為(NumberX-1+number)%number的文件,將該文件顯示在屏幕上。同理,按下right按鈕時,讀取名字為(NumberX+1)%number的文件,將該文件顯示在屏幕上。至此瀏覽照片功能完成。
增強現(xiàn)實技術(shù)已經(jīng)逐漸從實驗室走向普通百姓的生活[7],筆者將增強現(xiàn)實技術(shù)與校園主題相結(jié)合,開發(fā)了“虛擬校園”手機軟件。使用者可以直觀的在明信片上看到立體的校園建筑模型并與其進行交互,進一步驗證了本文所述方法的可行性與有效性。
該軟件主要實現(xiàn)了三個功能,展示校園功能、拍照功能和瀏覽相冊功能。展示校園功能主要是用來識別明信片、展示配套建筑模型,通過增強現(xiàn)實技術(shù)對于二維畫面進行拓展。該功能包括8個校園建筑的外建模型以及若干典型建筑的內(nèi)建模型,對校園建筑完成了全覆蓋。拍照功能主要是對手機畫面的保存。當用戶覺得手機上的畫面效果十分有保留價值時,按下拍照按鈕,則保存一張當前手機屏幕的照片。瀏覽相冊功能則是提供給用戶觀看其所拍照片的功能。用戶通過左右切換可以查看自己之前保存的圖像。
基于增強現(xiàn)實的校區(qū)的交互軟件在Window8系統(tǒng)中使用Unity引擎開發(fā),在開發(fā)過程中用到了Vuforia插件。該軟件在Android系統(tǒng)4.2版本及以上可使用。
經(jīng)過以上一系列開發(fā),最終可以產(chǎn)生一個軟件apk和對應的明信片。 下面是運行軟件過程中的截圖。展示模型界面如圖10,圖11所示。
圖10 信息樓識別效果
圖11 文管樓識別效果
相冊瀏覽界面如圖12,圖13所示。
主界面如圖14所示。
這款“虛擬校園”軟件是與東北大學渾南校區(qū)的建筑群進行實時的交互,可以將當前環(huán)境和教學信息融合后實時的反饋給用戶,為用戶更加形象地了解東北大學渾南校區(qū)提供了方便。相對于當前市場上的其他種類的增強現(xiàn)實軟件,這款“虛擬校園”軟件是更加系統(tǒng)的將明信片與校園建筑相結(jié)合。該軟件開發(fā)了一套增強現(xiàn)實明信片,讓使用者有其身臨其境的體驗閱讀、多維空間的魔幻閱讀等優(yōu)勢[8]。
圖12 宿舍樓照片
圖13 校園全景照片
圖14 主界面截圖
“虛擬校園”軟件可以識別在1-2米之外的識別圖,用戶可以用自己的手機或者其他帶有攝像頭的移動設(shè)備遠距離的識別明信片,在一定程度上保證了軟件識別的正確率。同時,利用Unity和Vuforia開發(fā)的“虛擬校園”軟件識別角度廣,識別的最廣角可達到120°,當明信片傾斜的時候,也可以準確識別。同時該軟件也可防反光,在光照強度較強時,軟件也可以識別明信片。
“虛擬校園”軟件在建筑模型方面采用了簡模的方式。這樣建模方式的好處體現(xiàn)在了軟件的安裝包上,較小的軟件安裝包可以讓更多擁有低配置設(shè)備的用戶也能體驗到軟件帶來的新奇視角以及樂趣。
本文提出了一種增強現(xiàn)實應用的開發(fā)方法,所開發(fā)軟件的識別效果與模型效果良好。通過模型的合并點處理、貼圖處理,軟件節(jié)省了大量的資源占用;通過對于軟件功能的分塊設(shè)計,實現(xiàn)了圖像識別、模型展示和相冊管理的功能。是增強現(xiàn)實軟件應用開發(fā)一個成功的例子。
[1]Tom caudell.AR atboeing(1990)[EB/OL].http://www.ipo.tue.nl/homepages/mrauterb/presentations/HCI-history/tsld096.htm.
[2]邱克.增強現(xiàn)實技術(shù)在博物館的運用[A].北京數(shù)字科普協(xié)會等,2015:8.
[3]全紅艷,王長波,林俊雋.基于視覺的增強現(xiàn)實技術(shù)研究綜述[J].機器人,2008,04:379-384)
[4]Milgram P,Kishino,F.A Taxonomy of Mixed Reality Visual Displays.IEICE Transactions on Information Systems 1994.
[5]朱淼良,姚遠,蔣云良.增強現(xiàn)實綜述[J].中國圖象圖形學報,2004,07:3-10.
[6]齊健.Vuforia產(chǎn)品升級,加速“虛實”融合[J].智能制造,2016,(10):8-10.
[7]徐敏,童強.一種基于Unity3D+Vuforia的增強現(xiàn)實交互App的開發(fā)[J].現(xiàn)代計算機(專業(yè)版),2016,(12):71-75.
[8]夏少瓊.增強現(xiàn)實立體書與傳統(tǒng)紙質(zhì)圖書的比較研究[J].美術(shù)大觀,2016,(08):134-135.
Research on the Application of Augmented Reality Based on Android System
ZHENGMing-yue1,LIYing1,JIAO Zi2,DING Ning2
(1.College of Digital Media Technology of Software,Northeastern University,Shenyang 110167; 2.College of Information Security of Software,Northeastern University,Shenyang 110167)
In order to solve the Augmented Reality application problems on the Android platform,gives a completely App development program,us鄄es a combination of Unity and Vuforia approach to develop the application,makes the ordinary postcards have a Visual development.By merging point for model processing,texturing process,solves the contradiction between phone memory and model quality,lowers the threshold of performance.Meanwhile,the image storage scheduling feature has a development and improvement.Compared with the simi鄄lar software,it has lowermemory requirementwith better recognition.
國家級大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目(No.201610145086)
鄭明月(1995-),女,吉林白山人,研究方向為圖形圖像處理、軟件開發(fā)
2017-03-06
2017-04-25
1007-1423(2017)13-0033-06
10.3969/j.issn.1007-1423.2017.13.008
增強現(xiàn)實;明信片;合并點處理;虛擬校園
Augmented Reality;Postcard;Merging Point;Virtual Campus