崔海青,吳曉東,魏士皓
(中國民航大學(xué) 電子信息與自動化學(xué)院,天津 300300)
近年來,增強(qiáng)現(xiàn)實(shí)技術(shù)有著巨大進(jìn)步,有越來越多的行業(yè)機(jī)構(gòu)和企業(yè)開始進(jìn)行增強(qiáng)現(xiàn)實(shí)技術(shù)的實(shí)際應(yīng)用。微軟公司在2015年推出跨時代的增強(qiáng)現(xiàn)實(shí)產(chǎn)品HoloLens,為增強(qiáng)現(xiàn)實(shí)的應(yīng)用提供了有力的硬件支持。
機(jī)務(wù)教學(xué)中,學(xué)生不僅要學(xué)習(xí)大量的理論知識,還要對飛機(jī)的結(jié)構(gòu)、拆裝、維修進(jìn)行練習(xí)和培訓(xùn)。由于技術(shù)和經(jīng)濟(jì)上的制約,不能大規(guī)模地在真實(shí)飛機(jī)上進(jìn)行培訓(xùn),而民航客機(jī)又是一個復(fù)雜的集合體。學(xué)生的數(shù)量和可供使用的教學(xué)資源存在矛盾,難以保證學(xué)員的練習(xí)時間,對相關(guān)的現(xiàn)象缺乏實(shí)際的操作經(jīng)歷,一定程度上打擊了學(xué)生學(xué)習(xí)的積極性。如何讓學(xué)生進(jìn)行足夠的操作練習(xí)以及對學(xué)生進(jìn)行直觀的講解,讓學(xué)生對民航飛機(jī)有全面而整體的認(rèn)識是一個亟待解決的問題。
本文基于Hololens設(shè)備,開發(fā)了一套數(shù)字化飛機(jī)增強(qiáng)現(xiàn)實(shí)教學(xué)平臺,能夠?yàn)閷W(xué)生提供較為直觀的增強(qiáng)現(xiàn)實(shí)教學(xué)訓(xùn)練環(huán)境,提升教學(xué)效果的同時,也能一定程度上提高學(xué)生學(xué)習(xí)的積極性。
1.系統(tǒng)功能。HoloLens是由微軟開發(fā)的一款便攜式頭戴全息計(jì)算機(jī)設(shè)備。該裝置的前部裝有定制的傳感器和相關(guān)硬件,包括處理器、攝像機(jī)和微型投影設(shè)備,能夠直接將圖像投影到人眼之中,形成全息影像,并提供手勢交互功能,讓用戶能夠與數(shù)字全息影像進(jìn)行互動。將其應(yīng)用在虛擬教學(xué)中,不僅可以做到寓教于樂,而且可以為學(xué)生360°展示飛機(jī)結(jié)構(gòu),并且可以展示飛機(jī)的任意剖面圖解,這些內(nèi)容即便是在真實(shí)的飛機(jī)中也是難以展現(xiàn)的。在實(shí)際教學(xué)中,教師可以根據(jù)自己的教學(xué)內(nèi)容,創(chuàng)建相應(yīng)的三維教學(xué)資源,這些教學(xué)資源可以根據(jù)分類,安排在不同的教學(xué)演示模塊下,學(xué)生通過HoloLens的交互功能,進(jìn)入不同的教學(xué)模塊。這樣能夠更好地結(jié)合不同專業(yè)教師的專業(yè)技能,為學(xué)生提供更準(zhǔn)確的教學(xué)信息。發(fā)動機(jī)3D模型與現(xiàn)實(shí)世界的融合視景,如圖1所示。

圖1 發(fā)動機(jī)增強(qiáng)現(xiàn)實(shí)視景圖
通過HoloLens,學(xué)生可以在現(xiàn)實(shí)場景之上創(chuàng)建全息場景和物體。全息場景還可以配合學(xué)生的手勢、凝視以及語音來進(jìn)行相應(yīng)的操作,使學(xué)生可以直接與創(chuàng)建的物體進(jìn)行交互。
2.系統(tǒng)結(jié)構(gòu)。基于HoloLens的數(shù)字化飛機(jī)增強(qiáng)現(xiàn)實(shí)教學(xué)平臺的系統(tǒng)結(jié)構(gòu)如圖2所示。平臺的教學(xué)資源由相關(guān)專業(yè)的教師提供,通過3DS Max進(jìn)行建模。建立好的模型導(dǎo)入U(xiǎn)nity3D引擎中,結(jié)合微軟官方提供的混合現(xiàn)實(shí)工具包Mixed Reality Toolkit(MRTK),能夠快速開發(fā)針對微軟HoloLens混合現(xiàn)實(shí)的應(yīng)用程序。開發(fā)完成的工程,可以部署到HoloLens平臺上。通過HoloLens的同步定位與地圖構(gòu)建(SLAM)功能進(jìn)行環(huán)境建模,結(jié)合用戶操作,完成增強(qiáng)現(xiàn)實(shí)的教學(xué)展示。

圖2 飛機(jī)增強(qiáng)現(xiàn)實(shí)教學(xué)平臺結(jié)構(gòu)
雖然HoloLens的應(yīng)用潛力巨大,但是當(dāng)前可利用的資源還是很貧乏的,在民航專業(yè)領(lǐng)域的資源就更少了。如果想要大規(guī)模地應(yīng)用于民航教育領(lǐng)域,教學(xué)資源問題是急需解決的一個問題,需要建立全息的3D飛機(jī)數(shù)字化模型。本文主要介紹基于3DS Max對飛機(jī)各個模塊進(jìn)行建模。由于飛機(jī)的結(jié)構(gòu)組件眾多,復(fù)雜程度也十分高,三維飛機(jī)模型構(gòu)造十分復(fù)雜,信息量巨大,建立精細(xì)模型的工作量太大,同時模型對計(jì)算機(jī)性能要求很高,不能直接加載到HoloLens中去。
為了解決這個問題,需要在滿足教學(xué)要求的前提下對飛機(jī)模型進(jìn)行適當(dāng)?shù)膬?yōu)化,簡化不必要的細(xì)節(jié),只對必要的飛機(jī)結(jié)構(gòu)進(jìn)行精細(xì)建模,并對數(shù)據(jù)進(jìn)行壓縮。對模型的優(yōu)化主要采用LOD(Levels of Detail)技術(shù),即多細(xì)節(jié)層次,包括生成、選擇及切換三個主要部分,根據(jù)模型在當(dāng)前環(huán)境所處的位置以及重要性,來決定對物體渲染的資源的分配,距離攝影機(jī)近的重要部分采用較高的顯示精度,以達(dá)到較好的現(xiàn)實(shí)效果;同樣的距離,攝像機(jī)較遠(yuǎn)同時重要性較低的部分采用較低的顯示精度,以節(jié)約計(jì)算資源,提高操作的平滑度。
模型面數(shù)的優(yōu)化包括模型面的精簡、刪除。模型片面的精簡通過降低模型的段數(shù)來降低模型的面數(shù),柱面通過降低高度段數(shù)和截面的精簡達(dá)到面數(shù)的精簡,曲線形狀模型面數(shù)的精簡通過調(diào)整材質(zhì)的偏移值、角度等的參數(shù),適度減少形狀步幅和路徑步幅參數(shù),完成曲線形狀模型面的精簡。刪除模型面包括刪除模型之間的重疊面,刪除模型底部看不見的面,刪除物體之間相交的面。

圖3 3Ds Max建模及優(yōu)化
通過LOD和對模型減面,能夠優(yōu)化模型對硬件資源的消耗,有效提高模型在HoloLens上運(yùn)行的效率和穩(wěn)定性。
微軟和Unity3D為HoloLens的開發(fā)提供了相關(guān)的工具包和開發(fā)環(huán)境,方便開發(fā)者開發(fā)基于HoloLens的應(yīng)用。HoloLens上的輸入交互與其他平臺不同,主要是通過三個非傳統(tǒng)交互方式:凝視、手勢和語音,進(jìn)行交互。使用微軟官方提供的Mixed Reality Toolkit工具包,封裝了很多常用的組件及腳本,能夠方便地開發(fā)HoloLens設(shè)備的應(yīng)用程序。MRTK工具包可以在Github上進(jìn)行下載,將下載的unitypackage文件導(dǎo)入正在開發(fā)的HoloLens項(xiàng)目中,即可在項(xiàng)目中進(jìn)行調(diào)用。如果沒有HoloLens設(shè)備,也可通過Windows系統(tǒng)的Hyper-V功能,安裝HoloLens模擬器進(jìn)行開發(fā)。
Unity支持幾乎所有的主流三維文件格式,能很方便地把3DS Max中導(dǎo)出的文件加載到項(xiàng)目工程中。使用MRTK工具包,對模型添加相關(guān)的交互響應(yīng)。Unity3D的開發(fā)界面如圖4所示。

圖4 Unity3D的開發(fā)界面
一般為了保證在HoloLens場景中的高幀率,在項(xiàng)目設(shè)置中,會將質(zhì)量設(shè)置到最佳性能,同時啟用Virtual Reality support,Virtual Reality SDKs選擇Windows Mixed Reality。在開發(fā)中,使用Unity 提供的Holographic Emulation功能,能夠方便地實(shí)現(xiàn)程序的遠(yuǎn)程調(diào)試。發(fā)布輸出時,需要進(jìn)行相關(guān)的發(fā)布設(shè)置,在Build Settings中需要將平臺調(diào)整為Universal Windows Platform,設(shè)置好其他參數(shù),就能夠進(jìn)行構(gòu)建了。最后,我們將編譯導(dǎo)出的Visual Studio解決方案,部署到設(shè)備上,進(jìn)行調(diào)試運(yùn)行。
HoloLens能夠提供基于實(shí)物的3D全息視景疊加展示,讓用戶可以直觀地看到數(shù)字模型。教師在對多人授課時,可以佩戴HoloLens眼鏡,在講解相關(guān)專業(yè)課程時,在HoloLens上調(diào)出相關(guān)模型,通過HoloLens自帶的實(shí)時視頻串流功能,將模型投影在教學(xué)屏幕上,可以讓學(xué)生看到和教師一樣的場景和視角。HoloLens相當(dāng)于一個儲存多個模型的教學(xué)用具,供教師在教學(xué)時隨時調(diào)用。學(xué)生在課后時間,可以自由預(yù)約HoloLens設(shè)備的使用。學(xué)生可以對各種飛機(jī)的模型細(xì)節(jié)進(jìn)行探索研究。通過交互功能,也可以將一部分教師需要講解的知識點(diǎn)放到模型中,讓學(xué)生自我學(xué)習(xí)。HoloLens生成的全息影像只有全息眼鏡佩戴者才能看見,為了讓旁觀者能從其他地方看到HoloLens用戶在HoloLens中看到的視景,微軟提供了虛擬現(xiàn)實(shí)分享功能Spectator View,通過視頻合成技術(shù),使旁觀者能從第三者的角度,看到全息影像,使用更好的相機(jī),能生成更高的分辨率和更好的質(zhì)量的圖像。通過這一種方式,能夠?qū)⒔處熢诮虒W(xué)時對數(shù)字模型的講解和交互錄制下來,制作成教學(xué)視頻,提供給學(xué)生進(jìn)行自主學(xué)習(xí)。
建立一個基于HoloLens的3D全息教學(xué)演示及教學(xué)資源建設(shè)平臺,所有涉及空間結(jié)構(gòu)、機(jī)械結(jié)構(gòu)、操作面板、視景合成的相關(guān)專業(yè)課程,在已具有或者自行設(shè)計(jì)的3D模型支持下,都能夠?qū)崿F(xiàn)虛擬視景與現(xiàn)實(shí)視景的混合,并能夠提供相應(yīng)的教學(xué)資源生成發(fā)布功能。把虛擬仿真技術(shù)作為學(xué)生的認(rèn)知工具,將其整合到學(xué)科教學(xué)中去,使學(xué)生形象地建立起客觀世界,有效地提高實(shí)踐教學(xué)質(zhì)量,激發(fā)學(xué)生學(xué)習(xí)興趣,真正提高學(xué)生的機(jī)務(wù)工程實(shí)踐能力。可以為專業(yè)教師提供建立虛擬模型向混合視景轉(zhuǎn)換的平臺,更好地服務(wù)于專業(yè)教學(xué),可以為國內(nèi)其他教育、培訓(xùn)、科研機(jī)構(gòu)提供全套的解決方案,或者教學(xué)資源。