徐弘基,孫 俊,商 蕾
(武漢理工大學(xué) 能源與動(dòng)力工程學(xué)院,湖北 武漢 430063)
增強(qiáng)現(xiàn)實(shí)(Augmented Reality,簡稱AR)是一種結(jié)合虛擬化技術(shù)再來觀察世界的方式,通過計(jì)算機(jī)系統(tǒng)提供的電子化信息增加用戶對(duì)現(xiàn)實(shí)世界的感知,將虛擬的信息應(yīng)用到真實(shí)世界,并將計(jì)算機(jī)生成的虛擬物體、場景或系統(tǒng)提示信息疊加到真實(shí)場景中,從而實(shí)現(xiàn)對(duì)現(xiàn)實(shí)的增強(qiáng)[1]。如果用一個(gè)軸的兩端來表示虛擬和現(xiàn)實(shí)的關(guān)系,那么增強(qiáng)現(xiàn)實(shí)則是更靠近現(xiàn)實(shí)一端的混合現(xiàn)實(shí)技術(shù)[2]。
增強(qiáng)現(xiàn)實(shí)技術(shù)作為近年來快速發(fā)展的一項(xiàng)新技術(shù),在教育、醫(yī)療、制造、娛樂和航天等領(lǐng)域廣泛應(yīng)用,其可以幫助觀察者更全面地了解背景,獲取信息,擴(kuò)充知識(shí)的獨(dú)特優(yōu)勢也越來越受到教育工作者的青睞,特別是在實(shí)驗(yàn)教學(xué)和職業(yè)培訓(xùn)上有著巨大的應(yīng)用潛力[3]。
本文探討的“基于增強(qiáng)現(xiàn)實(shí)技術(shù)的船舶實(shí)驗(yàn)系統(tǒng)”屬于新的嘗試,通過運(yùn)用增強(qiáng)現(xiàn)實(shí)技術(shù)達(dá)到幫助輪機(jī)員和學(xué)生更加廣泛深入理解船用設(shè)備的工作原理和結(jié)構(gòu)特征。
增強(qiáng)現(xiàn)實(shí)船舶實(shí)驗(yàn)系統(tǒng)的架構(gòu)圖見圖1,該系統(tǒng)是基于智能手機(jī)的增強(qiáng)現(xiàn)實(shí)應(yīng)用軟件,具有AR模式和深度學(xué)習(xí)兩個(gè)功能模塊。AR模式是通過可交互的三維模型和文字、視頻、動(dòng)畫等虛擬內(nèi)容擴(kuò)增實(shí)驗(yàn)教學(xué)提高教學(xué)的質(zhì)量。深度學(xué)習(xí)即是本地學(xué)習(xí),充分利用手機(jī)的便攜性,使用者可以隨時(shí)隨地通過手機(jī)調(diào)用系統(tǒng)庫里的模型進(jìn)行設(shè)備操作訓(xùn)練,深化學(xué)習(xí)效果。同時(shí)對(duì)于使用者每一次操作都會(huì)被后臺(tái)監(jiān)測記錄,評(píng)估系統(tǒng)將得出操作評(píng)分和生成評(píng)估報(bào)告。
圖1 系統(tǒng)框架
增強(qiáng)現(xiàn)實(shí)應(yīng)用的開發(fā)工具主要是3D開發(fā)引擎和AR軟件開發(fā)工具包(SDK)。目前,市面上流行的3D引擎有:Unity3D,Unreal4,Cryengine等,不同的引擎有各自的優(yōu)缺點(diǎn)。基于Unity3D強(qiáng)大的跨平臺(tái)能力,便捷的開發(fā)方式和優(yōu)秀的性能,選擇Unity3D作為本次開發(fā)的開發(fā)平臺(tái),對(duì)于簡單輕量的功能要求,Unity3D內(nèi)置的大量組件能夠滿足需求,而對(duì)于復(fù)雜的功能需求,通過編寫C#腳本實(shí)現(xiàn)。要實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí)功能需要借助AR SDK(Augmented Reality Software Development Kit),相關(guān)的SDK有:EasyAR、太虛AR、HiAR和VuforiaSDK,這些AR SDK工具包均能實(shí)現(xiàn)基本的增強(qiáng)現(xiàn)實(shí)功能開發(fā),其中功能最完善最穩(wěn)定的是Vuforia SDK,將其作為Unity3D的擴(kuò)展包,能在Unity3D中的進(jìn)行功能開發(fā)。以Unity3D加Vuforia SDK的組合能夠快速開發(fā)具有增強(qiáng)現(xiàn)實(shí)功能的應(yīng)用軟件。
標(biāo)識(shí)圖是AR系統(tǒng)最基本的道具,AR設(shè)備通過標(biāo)識(shí)圖特征點(diǎn)的識(shí)別來錨定虛擬元素和標(biāo)識(shí)圖的空間關(guān)系。系統(tǒng)所使用Vuforia SDK提供的Target Manager在線工具快速制作標(biāo)識(shí)圖,用戶可以根據(jù)自己的需求選擇本地?cái)?shù)據(jù)庫還是在線云數(shù)據(jù)庫。考慮系統(tǒng)識(shí)別圖量級(jí)和船舶工作環(huán)境,故決定采用本地?cái)?shù)據(jù)庫[4]。
在Target Manager中制作標(biāo)識(shí)圖,Target Manager會(huì)將圖像的線條特征轉(zhuǎn)化成能夠被識(shí)別的自然特征點(diǎn)。將制作好的標(biāo)識(shí)圖數(shù)據(jù)包下載為Unity Editor格式導(dǎo)入U(xiǎn)nity3D中。
將船用設(shè)備的三維模型放置于Image Target目錄下,成為其子物體,這樣三維模型和標(biāo)識(shí)圖形成強(qiáng)匹配的位置關(guān)系。
1)操作設(shè)置。該系統(tǒng)是基于智能手機(jī)的增強(qiáng)現(xiàn)實(shí)應(yīng)用,主要的交互手段是觸屏和虛擬按鍵。觸屏操作通過Input.touchCount獲取操作時(shí)的觸摸點(diǎn),系統(tǒng)根據(jù)觸摸點(diǎn)設(shè)置了一套操作方式。虛擬按鍵是增強(qiáng)現(xiàn)實(shí)特有的交互方式,用戶通過對(duì)現(xiàn)實(shí)世界的一些手勢操作影響應(yīng)用程序,達(dá)到增強(qiáng)現(xiàn)實(shí)的交互體驗(yàn)。其原理是在攝像頭拍攝的畫面中,當(dāng)虛擬按鍵下的圖像信息被人為遮擋從而觸發(fā)按鈕事件[5]。
2)拆裝邏輯。船用設(shè)備的拆裝維修是輪機(jī)員必須要掌握的技術(shù),錯(cuò)誤的拆裝順序不僅無法完成拆裝往往還要對(duì)設(shè)備造成損壞,因而嚴(yán)密的拆裝邏輯是系統(tǒng)的關(guān)鍵一環(huán)[6]。在Unity3D中編寫C#腳本實(shí)現(xiàn)拆裝邏輯順序,只有正確的拆裝順序和在規(guī)定的時(shí)間內(nèi)完成操作才能獲得較高的評(píng)價(jià)。
該系統(tǒng)與半實(shí)物的輪機(jī)模擬器和桌面式PC端的操作評(píng)估都有所不同,在增強(qiáng)現(xiàn)實(shí)環(huán)境下考慮到手機(jī)的計(jì)算能力和交互方式必須對(duì)評(píng)估過程進(jìn)行相應(yīng)的優(yōu)化。對(duì)于設(shè)備的每一項(xiàng)拆裝要求,都分解成若干個(gè)“操作”和“性能參數(shù)”,所謂“操作”即是完成要求所需要的步驟,“性能參數(shù)”用來反應(yīng)操作過程中相關(guān)狀態(tài)的變化。無論是“操作”還是“性能參數(shù)”均以變量的方式描述,每一個(gè)“操作”或者“性能參數(shù)”對(duì)應(yīng)一個(gè)變量[7]。項(xiàng)目開始前,輸入難度要求和時(shí)間限制,操作時(shí),記錄變量值并用于評(píng)估計(jì)算。設(shè)置以下4個(gè)變量記錄用戶的操作。
變量設(shè)置:
1)部件描述VA:描述操作涉及的部件。
2)變量類型VB:布爾型,整型或者浮點(diǎn)型。
3)變量值VD:布爾時(shí)true/false,整型和浮點(diǎn)型時(shí)具體的數(shù)值。
4)操作時(shí)間VT:該項(xiàng)操作所用時(shí)間。
某個(gè)船用設(shè)備的拆裝過程,評(píng)估其規(guī)定時(shí)間內(nèi)拆裝時(shí)間分(對(duì)應(yīng)操作熟練程度)和拆裝操作分(對(duì)應(yīng)操作正確程度)來確定總成績。
1)計(jì)算總分S。對(duì)于某個(gè)船用設(shè)備,一共有m項(xiàng)操作項(xiàng)目,各個(gè)項(xiàng)目在整個(gè)操作過程中的重要性不同,總成績由各項(xiàng)目加權(quán)得到,而每一個(gè)拆裝項(xiàng)目中操作時(shí)間和操作步驟在該項(xiàng)目中的重要性不同,該項(xiàng)目的成績由時(shí)間分和步驟分加權(quán)得到。總成績的計(jì)算公式如下:
(1)
Wpi+Wti=1,i=1,2,3,…,n,
(2)
(3)
式中:SPi是第i項(xiàng)拆裝項(xiàng)目的操作分;Wpi是其操作步驟對(duì)比操作時(shí)間的權(quán)重系數(shù);STi是第i項(xiàng)拆裝項(xiàng)目的時(shí)間分;Wti是其操作時(shí)間對(duì)比操作步驟的權(quán)重;fi(Ti)是第i項(xiàng)拆裝項(xiàng)目完成評(píng)估函數(shù);Ti是第i拆裝項(xiàng)目的實(shí)際操作時(shí)間;Wi是第i項(xiàng)拆裝項(xiàng)目與其他項(xiàng)目相比的權(quán)重系數(shù)。
所涉及到權(quán)重系數(shù)采取經(jīng)驗(yàn)擬定的方法,選取具有代表性的好、中、差三組人員進(jìn)行拆裝操作,結(jié)合現(xiàn)場專家打分反復(fù)修正各個(gè)權(quán)重系數(shù),直到能適應(yīng)不同水平的人員使用,并且評(píng)估成績與專家評(píng)分基本一致。
2)完成評(píng)估函數(shù)。對(duì)于第i項(xiàng)拆裝項(xiàng)目是否完成,由單點(diǎn)隸屬函數(shù)fi(Ti)判定。
(4)
(5)
式中:Tik是第i項(xiàng)拆裝項(xiàng)目第k個(gè)操作的時(shí)間;Tm是完成第i項(xiàng)拆裝項(xiàng)目的最大時(shí)限;Ti是在第i項(xiàng)拆裝項(xiàng)目中實(shí)際的操作時(shí)間。當(dāng)Ti≥Tm時(shí),操作超時(shí),該項(xiàng)成績?yōu)?;當(dāng)0 3)操作時(shí)間分。對(duì)于第i項(xiàng)拆裝項(xiàng)目的操作時(shí)間分具體計(jì)算如下: (6) (7) 式中:Yik是第i項(xiàng)拆裝項(xiàng)目第k個(gè)操作的操作時(shí)間分;Yiks是第i項(xiàng)操作項(xiàng)目中第k個(gè)操作的時(shí)間基礎(chǔ)分;Yikv是第i項(xiàng)拆裝項(xiàng)目的標(biāo)準(zhǔn)操作時(shí)間;VTik是第i項(xiàng)拆裝項(xiàng)目第k個(gè)操作的實(shí)際操作時(shí)間,Tsi和SPi包括式(6)中Xiks和Xikv均是全局變量,根據(jù)評(píng)估要求在評(píng)估開始前設(shè)置。評(píng)分規(guī)則是在標(biāo)準(zhǔn)時(shí)間之前完成,則取得最好成績,在標(biāo)準(zhǔn)時(shí)間之后完成,時(shí)間偏差越大,則分?jǐn)?shù)越低。 4)操作步驟分。對(duì)于第i項(xiàng)拆裝項(xiàng)目的操作步驟分具體計(jì)算如下: (8) (9) (10) 式中:Xik是第i項(xiàng)拆裝項(xiàng)目中第k個(gè)步驟的操作得分;Xiks是第i項(xiàng)拆裝項(xiàng)目中第k個(gè)步驟的操作基礎(chǔ)分;Xikv是第i項(xiàng)拆裝項(xiàng)目中第k個(gè)步驟的標(biāo)準(zhǔn)“性能參數(shù)”;當(dāng)?shù)趉個(gè)步驟的類型是“操作”,變量類型是bool,完成第k個(gè)操作后,VDik=true,Xik=1取得最好成績Xiks,未完成相關(guān)操作,VDik=false,第k個(gè)操作不得分。當(dāng)?shù)趉個(gè)步驟的類型是“性能參數(shù)”,變量類型是int或float,評(píng)分規(guī)則是實(shí)際操作過程中的“性能參數(shù)”偏差標(biāo)準(zhǔn)“性能參數(shù)”越大,即是VDik-Xikv越大,得分越低。 以系統(tǒng)中“船用往復(fù)泵的拆卸”為例,展示AR模式下設(shè)備拆裝,驗(yàn)證評(píng)估系統(tǒng)的準(zhǔn)確性。拆裝要求“按照正確的拆裝順序?qū)⑼鶑?fù)泵拆卸至螺絲級(jí)”,拆卸時(shí)間5 min。點(diǎn)擊“開始”按鍵開始計(jì)時(shí),點(diǎn)擊“完成”,拆卸結(jié)束。 對(duì)于“船用往復(fù)泵的拆裝”項(xiàng)目,按照要求完成操作,系統(tǒng)內(nèi)全局變量Yikv、Xikv、Wti、Wpi等均已設(shè)置,但可以根據(jù)實(shí)際需求在數(shù)據(jù)設(shè)置中下拉選出對(duì)應(yīng)的全局變量做出修改。當(dāng)難度設(shè)置為70時(shí),評(píng)估得分要達(dá)到70以上完成項(xiàng)目要求。時(shí)間限制300 s內(nèi),超出該時(shí)限,該拆裝項(xiàng)目自動(dòng)結(jié)束。初始化界面見圖2。 圖2 初始化界面 該系統(tǒng)已經(jīng)成功識(shí)別往復(fù)泵的剖面圖,并在上面疊加三維模型,見圖3。 圖3 使用效果圖 在規(guī)定時(shí)間內(nèi),學(xué)生完成了拆卸操作,系統(tǒng)根據(jù)記錄的變量值進(jìn)行計(jì)算,得出最終評(píng)分,生成詳細(xì)的評(píng)估報(bào)告,如圖4。學(xué)生可以瀏覽評(píng)估報(bào)告改進(jìn)在操作中的失誤。從評(píng)估報(bào)告中獲知最終得分86,難度設(shè)置70,故通過該拆裝項(xiàng)目的評(píng)估。從明細(xì)中可以了解每一個(gè)步驟的得分,操作量和標(biāo)準(zhǔn)量差值。 圖4 評(píng)估報(bào)告 本文將增強(qiáng)現(xiàn)實(shí)技術(shù)與船舶實(shí)驗(yàn)教學(xué)相結(jié)合,開發(fā)了一款基于移動(dòng)智能設(shè)備增強(qiáng)現(xiàn)實(shí)教學(xué)應(yīng)用,使得學(xué)員和輪機(jī)員只要拿出手機(jī)用攝像頭對(duì)準(zhǔn)船用設(shè)備的剖面圖,與之相關(guān)的可交互模型,視頻解說等擴(kuò)增內(nèi)容就會(huì)疊加在鏡頭中。這種新穎的方式極大的提升了學(xué)員和輪機(jī)員的學(xué)習(xí)興趣,有助于掌握專業(yè)知識(shí),提高業(yè)務(wù)能力和設(shè)備管理水平。 當(dāng)然,該系統(tǒng)還有局限性。以智能手機(jī)為平臺(tái),計(jì)算能力受到限制,對(duì)于大型船用設(shè)備無法處理,只能將其分解成數(shù)個(gè)小系統(tǒng);交互依靠手機(jī)觸屏完成,受制于屏幕大小和容易出現(xiàn)觸點(diǎn)誤差,無法進(jìn)行精細(xì)化操作。但隨著科學(xué)技術(shù)的不斷發(fā)展,AR設(shè)備不斷革新,未來在船舶領(lǐng)域?qū)⒂懈鼜V闊的開發(fā)應(yīng)用空間。 [1]王巍,王志強(qiáng),趙繼軍,等.基于移動(dòng)平臺(tái)的增強(qiáng)現(xiàn)實(shí)研究[J]. 計(jì)算機(jī)科學(xué),2015,42(S2):510-519,549. [2]李苗.AR:場景互動(dòng)神器[M].北京:中國社會(huì)科學(xué)出版社,2016. [3]徐劍坤,楊乾龍,楊乾霞,等.增強(qiáng)現(xiàn)實(shí)技術(shù)在采礦工程實(shí)驗(yàn)教學(xué)中的應(yīng)用[J]. 實(shí)驗(yàn)室研究與探索,2013,32(2):136-139. [4]王志強(qiáng). 基于移動(dòng)增強(qiáng)現(xiàn)實(shí)的虛擬機(jī)械臂系統(tǒng)研究與實(shí)現(xiàn)[D].邯鄲:河北工程大學(xué),2015. [5]吳亞峰.VR與AR開發(fā)高級(jí)教程:基于Unity[M].北京:人民郵電出版社,2016. [6]吳先哲. 虛擬現(xiàn)實(shí)技術(shù)在船舶動(dòng)力艙設(shè)備裝配過程中的應(yīng)用研究和實(shí)現(xiàn)[D].廈門:集美大學(xué),2016. [7]張巧芬,孫建波,史成軍,等.新型輪機(jī)仿真平臺(tái)實(shí)操考試自動(dòng)評(píng)估算法[J]. 哈爾濱工程大學(xué)學(xué)報(bào),2014,35(6):725-730.3 實(shí)例分析
3.1 初始化設(shè)置
3.2 使用效果
4 結(jié)束語