田揚(yáng)暢, 楊 路
(安徽公安職業(yè)學(xué)院,安徽 合肥 230031)
感知空間設(shè)計是知識傳遞過程的核心問題,當(dāng)前的課堂教學(xué)以PPT等多媒體演示應(yīng)用為主,配合屏幕顯示,輔以教師板書教學(xué)提供集體式的信息演示和展現(xiàn)服務(wù)。這種以信息展示和單向傳播為主的被動式感知空間缺乏沉浸感與交互性,難以激發(fā)和維持學(xué)生的學(xué)習(xí)興趣。針對上述問題,融合數(shù)據(jù)分析與增強(qiáng)現(xiàn)實(shí)技術(shù)設(shè)計了混合式感知空間應(yīng)用,其具有的沉浸感、交互性等特征能夠增強(qiáng)感知體驗,激發(fā)學(xué)生學(xué)習(xí)的主動性,實(shí)現(xiàn)信息的接收和促進(jìn)知識的遷移,提升教學(xué)效果,為培養(yǎng)具有較高專業(yè)素養(yǎng)人才隊伍提供保障。
增強(qiáng)現(xiàn)實(shí)(Augmented Reality,簡稱AR)是基于VR研究的技術(shù),它能夠在現(xiàn)實(shí)場景中疊加虛擬空間,讓使用者處于一個虛實(shí)融合的沉浸式環(huán)境,借助虛擬空間包含的信息強(qiáng)化對現(xiàn)實(shí)場景的感知。采用數(shù)據(jù)分析技術(shù)分析教學(xué)情境下學(xué)生的需求,設(shè)計虛擬空間的內(nèi)容和功能,再通過AR技術(shù)實(shí)現(xiàn)應(yīng)用。課堂教學(xué)時,學(xué)生通過自帶攝像頭、顯示屏的硬件設(shè)備運(yùn)行該應(yīng)用,攝像頭掃描到標(biāo)識物則在顯示屏顯示虛擬空間。在該虛實(shí)融合的混合式感知空間中,教學(xué)知識獲得了多重性表征,學(xué)生能夠以沉浸式、可視化的方式學(xué)習(xí)知識,通過自然的交互對虛擬空間施加作用,實(shí)現(xiàn)虛擬信息與現(xiàn)實(shí)信息的交互融合,進(jìn)而提高對教學(xué)空間的使用度。
混合式感知空間應(yīng)用設(shè)計可分解為2個部分,設(shè)計流程圖如圖1所示。
首先設(shè)計者應(yīng)當(dāng)以學(xué)生對感知空間應(yīng)用的需求為基礎(chǔ),確定標(biāo)識物、虛擬空間所包含的對象和內(nèi)容、交互形式等。需求分析包括數(shù)據(jù)處理與分析兩個部分:數(shù)據(jù)處理進(jìn)行數(shù)據(jù)的解析過濾,清除重復(fù)數(shù)據(jù),減輕分析負(fù)擔(dān)和提高效率。數(shù)據(jù)分析選用文本分析進(jìn)行文本數(shù)據(jù)的量化,通過傾向性分析了解使用者的感情傾向,借助關(guān)鍵詞提取概括評價文本的大概內(nèi)容,采用主題分析模型總結(jié)出需求結(jié)果。其次根據(jù)設(shè)計任務(wù)分解的信息點(diǎn)進(jìn)行落地化處理,首先確定技術(shù)方案,之后搭建開發(fā)基礎(chǔ),根據(jù)設(shè)計任務(wù)實(shí)現(xiàn)應(yīng)用功能,完成設(shè)計。
收集學(xué)生對感知空間應(yīng)用的需求,基于python進(jìn)行文本分析確定應(yīng)用的內(nèi)容和功能。首先通過python pandas包的read_csv函數(shù)導(dǎo)入收集的文本信息,再通過to_csv函數(shù)按類別保存信息,編碼選擇UTF-8。然后基于文本的相似度去除重復(fù)數(shù)據(jù),進(jìn)行數(shù)據(jù)的預(yù)處理。接著采用ROSTCM6進(jìn)行情感傾向性分析,利用機(jī)器分類把文本信息分割成積極、消極和中性的樣本?;谡齽t表達(dá)式修改數(shù)據(jù),之后通過python的jieba包進(jìn)行文本分詞,按某種規(guī)范把評論語句變換成詞的序列。分詞完成后把內(nèi)容保存到信息變量中。最后是模型實(shí)現(xiàn)和分析總結(jié),python的gensim自然語言處理包包含了LDA算法,所以模型實(shí)現(xiàn)采用LDA主題模型,經(jīng)過LDA的主題分析聚合主題,調(diào)用show_topics方法展示評論主題的狀況,根據(jù)評論主題確定應(yīng)用的標(biāo)識物、內(nèi)容等信息。本文以信息網(wǎng)絡(luò)安全監(jiān)察專業(yè)《計算機(jī)網(wǎng)絡(luò)》課程的教學(xué)為例,根據(jù)LDA主題分析結(jié)果選擇課本圖片為標(biāo)識物,顯示用的教學(xué)虛擬空間應(yīng)包含圖片、文本、音頻、視頻和模型等對象,以圖片、文本、音視頻的形式展示教學(xué)知識點(diǎn),模型用于加深學(xué)生的直觀印象,采用學(xué)生最為熟悉的手姿動作作為輸入的命令交互方式。
技術(shù)方案包括硬件設(shè)備與軟件環(huán)境兩部分。硬件設(shè)備用于啟動應(yīng)用顯示感知空間,采用手持式智能手機(jī)設(shè)備。軟件環(huán)境用于實(shí)現(xiàn)應(yīng)用設(shè)計,包括制作虛擬空間、標(biāo)識物識別和命令交互等功能。在Unity3D中設(shè)計prefab格式的虛擬空間,包含圖片、音頻、三維模型等多種虛擬對象,采用C#編寫命令交互腳本,基于ARFoundation的ar tracked image manager實(shí)現(xiàn)圖片識別和虛實(shí)融合的顯示功能,完成設(shè)計。綜上所述,軟件開發(fā)環(huán)境采用Unity3D(2019)+ARFoundation+Python搭建。
(1)配置參數(shù)。啟動Unity3D,file->build settings,platform->android,點(diǎn)擊switch platform切換到android平臺,選中android圖標(biāo)->other settings,取消多線程渲染,刪除vulkan,target api level和minimun api level都要選擇高于nougat的版本。點(diǎn)擊xr settings,勾選arcore supported。之后回到Unity3D主界面,Edit->preferences-> external tools,確保jdk和android sdk路徑正確。
(2)新建工程、導(dǎo)入插件、建立資源文件夾。建立工程,導(dǎo)入ARFoundation和ARCore XR plugin,在工程的assets文件夾下建立scenes、scripts和prefabs等資源文件夾,方便各類資源管理。刪除hierarchy窗口默認(rèn)的main camera,右鍵XR導(dǎo)入ar session和ar session origin,完成開發(fā)基礎(chǔ)的配置。
(1) 虛擬空間。虛擬空間包含了文本、圖片、按鍵、音視頻和模型等多種虛擬對象,前三者通過UGUI提供的text、image和button控件實(shí)現(xiàn),三維模型可采用現(xiàn)成的模型,或者在3D MAX等環(huán)境下自定義制作并導(dǎo)入Unity3D環(huán)境。音視頻對象是設(shè)計的重點(diǎn),考慮到設(shè)計的AR應(yīng)用可能涉及移動場合,采用共振音頻技術(shù)以保證良好的音頻效果。視頻對象要掛載Unity3D的跨平臺組件videoplayer,支持本地和http/https遠(yuǎn)程播放兩種方式。把上述虛擬對象根據(jù)顯示需要布置好在空間中的位置,然后作為一個整體拖到prefabs文件夾下,完成prefab格式的虛擬空間設(shè)計。
(2)圖片識別。ARFoundation的圖片識別是依據(jù)參考圖像庫的信息實(shí)現(xiàn)的,首先要建立一個圖片參考庫,里面包含要識別的圖片信息。create->xr->referenceimage library建立圖片參考庫,名稱自定義。選中該參考庫->inspector->add image,添加要識別的圖片。之后選中當(dāng)前場景的ar session origin對象,掛載ar tracked image manager組件。tracked image prefab用于設(shè)置要顯示的prefab格式的虛擬空間。當(dāng)識別到圖片標(biāo)識物則在屏幕的某個位置實(shí)例化該虛擬空間,實(shí)現(xiàn)虛實(shí)融合的效果。
(3)命令交互。命令交互包括觸摸類和位移類兩種,前者如觸摸button控件顯示信息,后者如移動縮放虛擬對象。觸摸類通過setactive方法實(shí)現(xiàn),比如觸摸“使用幫助”(shiyongbangzhu)button控件顯示文本內(nèi)容(help_text),初始化階段在start函數(shù)根據(jù)文本名稱help_text找到文本對象,執(zhí)行help_text.setactive(false)隱藏文本。當(dāng)學(xué)生觸摸“使用幫助”button控件,采用oncollisionenter函數(shù),檢測到碰撞執(zhí)行help_text.setactive(true),實(shí)現(xiàn)文本顯示。位移類通過Unity3D內(nèi)置的input類自定義編程實(shí)現(xiàn),代碼實(shí)現(xiàn)可分解為兩部分:①用于旋轉(zhuǎn)操作的rotateon方法,touch.deltaPosition.x控制旋轉(zhuǎn),touch.deltaPosition存儲的數(shù)據(jù)是兩次檢測之間手指在屏幕上移動的位置,獲取到虛擬對象繞其本身Y軸旋轉(zhuǎn)的旋轉(zhuǎn)量,通過這個旋轉(zhuǎn)量就可以控制虛擬物體的旋轉(zhuǎn)。②用于雙指縮放和單指移動操作的zoomon方法。雙指縮放首先獲取每個手指的當(dāng)前觸點(diǎn)與前一次檢測時的位置,然后分別計算當(dāng)前兩個手指之間的距離與前一次兩個手指之間的距離,獲取兩次距離的差值,即手指縮放的度量值。如果當(dāng)前兩指距離大于之前的距離那么在做放大手姿,反之在做縮小手姿。執(zhí)行deltaMagnitudeDiff*mZoomSpeed*Time.deltaTime計算縮放量實(shí)現(xiàn)物體的縮放。單指移動先獲取fingerid,根據(jù)input.touchcount得到觸點(diǎn)個數(shù),如果等于1表示是單點(diǎn)觸摸,那么再判斷touch.phase的狀態(tài),如果是touchphase.moved,則表明正在進(jìn)行單點(diǎn)移動操作,之后獲取方向位置信息并進(jìn)行移位操作。
學(xué)生在智能手機(jī)端運(yùn)行應(yīng)用,攝像頭掃描到圖片標(biāo)識物即在屏幕顯示感知空間界面,感知空間應(yīng)用示例如圖2所示,學(xué)生可根據(jù)個人興趣,以自然的手姿方式與虛擬對象進(jìn)行交互,如播放路由器使用視頻,移動查看路由器模型,觸摸按鍵查閱文本內(nèi)容等。
圖2 感知空間應(yīng)用示例圖
混合式感知空間應(yīng)用是對現(xiàn)有課堂教學(xué)的一種輔助,最終目的是實(shí)現(xiàn)不同方式的優(yōu)勢互補(bǔ),而不是對傳統(tǒng)方式的全盤否定。當(dāng)前設(shè)計的混合式感知空間應(yīng)用自身也有很多不足,在使用的新鮮感消逝后,學(xué)生對課堂教學(xué)的專注度迅速下降,有的學(xué)生甚至用手機(jī)玩起了游戲,反而對教學(xué)產(chǎn)生了負(fù)面影響。因此,現(xiàn)階段混合式感知空間應(yīng)用只是對傳統(tǒng)教學(xué)空間設(shè)計的一種有效嘗試,未來還需對軟硬件做進(jìn)一步的優(yōu)化以增強(qiáng)使用效果。