秦楠
(西安外事學院 圖書館, 陜西 西安 710077)
虛擬交互技術是一種基于計算機理論和信息技術發展起來的技術,能夠讓使用者具有沉浸式的體驗感[1-5]。虛擬交互技術能夠將數字信息轉變為視覺、聽覺、觸覺等多維度的信息表現形式,使用者通過該技術能夠實現交互式的控制行為。用戶在利用虛擬交互技術進行工作時,能夠全方位地感受多維度的信息,通過沉浸式互動行為獲取知識,具有極大的主觀能動性。
在圖書館管理和圖書借閱中,虛擬交互技術具有十分廣泛的應用前景。虛擬交互技術是以人為中心,不僅能夠將圖書館的信息進行分類組織,讓使用者一目了然地、快速地獲取自身所需要的信息;而且,還能基于使用者一種身臨其境的體驗感,激發使用者的閱讀和學習欲望,對使用者的閱讀具有引導性。利用該技術能夠有效解決傳統圖書館管理過程中記錄繁多,效率低下等問題[6-8]。本文設計了一種用于圖書館借閱系統的虛擬交互系統平臺,對結構、原理、建模、算法等關鍵技術進行介紹。
基于虛擬交互模型的圖書館借閱系統平臺的整體架構包括了控制單元、顯示單元、運動單元、客戶終端、運動控制器單元和伺服驅動器單元。其中,控制單元為鼠標,通過USB與PC客戶終端相連接,操作者利用鼠標控制虛擬人物在場景中視野、視角和運動交互;顯示單元為通用的PC顯示器,以HTML二維網頁視圖形式顯示;PC客戶終端對鼠標的輸入信號進行處理,一方面將信號傳輸至顯示器,經解碼后以視圖形式顯示出來;一方面向運動控制器輸出動作信號,運動控制器將動作信號解碼并傳輸給伺服驅動器,從而完成虛擬人物在相應場景中的運動。
虛擬場景和運動平臺之間的映射關系是基于Stewart平臺的運動學反解模型建立起來的。如圖1所示。

圖1 Stewart平臺結構
Stewart平臺具有上下兩個平臺。其中,上平臺的坐標原點為P;相應的動坐標系為P-xyz;P-x和P-y處于平臺平面,P-z軸垂直于平臺平面。下平臺的坐標原點為O;相應的動坐標系為O-xyz;O-x和O-y處于平臺平面,O-z垂直于平臺平面。
假設上平臺的廣義坐標為a= [x,y,z,α,β,γ],其中x、y、z為動坐標系原點P在靜坐標系中的坐標,α、β、γ為動坐標系相對靜坐標系的歐拉角,那么旋轉矩陣則為式(1)。

(1)
若上平臺中各頂點Ai的坐標為[xiP,yiP,ziP],下平臺中各頂點Bi的坐標為[xiO,yiO,ziO],且i為1—6之間的整數,那么第i軸的驅動向量齊次坐標則為式(2)。
(2)
由此可得,第i軸驅動的長度為式(3)。
(3)
另外,虛擬人物在場景中發生運動后,需要進行復位,該系統采用洗出算法完成復位,洗出算法流程如圖2所示。

圖2 洗出算法流程框圖
該系統將鼠標信號轉變為洗出信號,將重力加速度g與線加速度a合成量比力f。然后將加速度中的高頻和低頻進行分離,高頻部分經二次積分后得到位置信息;低頻部分進行傾斜協調,得到角速度限幅;再與角速度的高頻部分二次積分結果進行加和,得到相應的姿態信息。該平臺通過在橫向和縱向兩個方向使用重力加速度的分向量,從而模擬了縱向加速度和橫向加速度,完成了虛擬角色的俯仰運動和橫滾運動。
本文以圖書室的虛擬場景建模為例進行可視化建模的介紹。借閱室中的主要物品為書架、桌、椅。可視化模型建立是基于VRML語言建立的。其中,桌椅的可視化模型建立是通過碰撞測驗進行搭建的;碰撞測驗主要是通過包圍盒法實現的,包圍盒采用自上而下的構造方式,創造包圍盒根節點,然后對模型進行分割,分割為多個模塊,在采用遞歸調用的方法建立包圍盒樹。包圍盒算法的基本流程如圖3所示。

圖3 包圍盒算法的基本流程
首先獲取物體的幾何信息,然后將其轉換為包圍盒,依次執行Sweep and Prune算法以及層次包圍盒相交算法;進行包圍盒精確碰撞,確定碰撞與否。若進行碰撞,則進行碰撞物體運動控制;若不進行碰撞,則對場景進行建模,并創建場景,再進行碰撞物體運動控制。
書架是采用紋理貼圖技術進行虛擬場景搭建的。可視化模型構建的主要過程包括:采集文理圖像進行渲染、利用二維坐標進行紋理切割、基于VRML語言得到紋理映射圖像、最終于物體表面進行紋理合成。其中利用Transform節點實現移動,Translation節點實現數據轉化,Rotation節點實現旋轉,Box節點實現尺寸定義,相應VRML語言源代碼如下。
DEF shelf1 Transform{
Transition 0 2 1.4
Rotation 2 0 0 -0.5
Box 3.3 1.4 0.1}
DEF shelf2 Transform{
Transition 0 2 1.4
Rotation 2 0 0 -0.5
Box 3.3 1.4 0.1}
……
DEF shelfn Transform{
Transition 0 2 1.4
Rotation 2 0 0 -0.5
Box 3.3 1.4 0.1}
該圖書館借閱系統平臺的虛擬交互技術主要包括節約交互、管理交互和視覺交互三個部分。
其中,借閱交互功能主要體現在圖書的檢索功能方面。該借閱系統的檢索入口顯示形式為網頁形式,是基于VRML語言建立的。通過將Script節點導入到HTML文本中,從而實現對數據庫的處理。該系統所采用的搜索方法為人工智能算法,相似度計算如式(4)。
(4)
其中,Q1和Q2分別代表不同的句子;Ti和Tj代表的向量;wi和wj代表句子中關鍵詞的權值。利用上述算法計算相似度的過程是首先將句子Q1和Q2中的關鍵詞進行加權,權值分別為wi和wj,然后將權值引入到向量Ti和Tj空間。
管理交互功能主要涉及該系統平臺的運行和維護。該功能也是通過VRML語言建立起來的。通過對Script節點進行修改,然后調用相應的Java程序。在管理交互功能中涉及到了圖書書名的重疊或是詞語具有歧義等情況,所以需要對數據管理進行改進。該系統算法中引入了詞性影響系數z的概念,當z值為1時,說明兩個詞語的詞性和詞義都相同;當z值為0.5時,說明兩個詞語詞義相同,但詞性不同。該系統詞語相似度計算方法如式(5)。
(5)
其中,Q1和Q2分別代表不同的詞語;zi和zj分別代表該算法中的詞性影響系數;wi和wj代表的是詞語中的權值。
該平臺視覺交互是通過插補器來實現的。其中人物坐標是通過PositionInterpolator來定義的;視覺角度是利用ViewPoint來定義;視覺點是通過OrientationInterpolator定義的,且數目與插補器數目相同;人與虛擬場景的交互是通過傳感器ProximinitySensor實現,數據的實時交互是通過時間傳感器TimeSensor實現。在進行交互時,首先TimeSensor通過fraction_changed算法向PositionInterpolator和OrientationInterpolator節點輸出數據;然后在PositionInterpolator和OrientationInterpolator節點通過value_changed算法傳送給ViewPoint節點,在ViewPoint節點中通過set_position和set_orientation來輸入事件,實現交互。
本文建立了一種基于虛擬交互模型的圖書館借閱系統,并對其結構和原理進行了介紹。虛擬場景中的運動通過洗出算法實現,虛擬場景建模采用包圍盒算法和紋理貼圖技術實現。該借閱平臺的借閱和管理交互均是基于VRML語言建立的,通過導入Script節點或修改Script節點調用Java程序,從而實現虛擬交互功能。