陳 嶺,徐永健,趙剛強,陳根才
(浙江大學計算機學院,浙江 杭州 310027)
增強現(xiàn)實(Augmented Reality,AR)[1],是虛擬現(xiàn)實(Virtual Reality,VR)技術的一個分支。AR技術可將計算機生成的虛擬物體或其它信息疊加到真實場景中,從而實現(xiàn)虛實結合的再現(xiàn)結果,在工業(yè)、醫(yī)學、設計等方面得到廣泛應用[2-4]。協(xié)同增強現(xiàn)實(Collaborative Augmented Reality,CAR)[5]是對單用戶AR技術的擴展,使多個用戶能共享一個增強現(xiàn)實空間。CAR技術具有AR技術的特點,且支持多用戶在共享空間上進行協(xié)作,在游戲、教學等領域有著廣闊的應用前景[6-7]。
現(xiàn)有CAR研究大都以共享同一真實環(huán)境為前提,所以傳統(tǒng)CAR系統(tǒng)無法支持異地協(xié)同工作,使其應用受到極大限制。為使CAR系統(tǒng)支持分布式異地協(xié)同工作,需對以下問題進行深入研究:①如何在虛實結合的環(huán)境中對系統(tǒng)一致性進行控制;②在分布式環(huán)境下各用戶物理環(huán)境不盡相同,如何減少這種環(huán)境不一致對協(xié)作任務性能的影響;③在分布式環(huán)境下各節(jié)點傳感和顯示設備存在異構性,如何在異構環(huán)境下實現(xiàn)系統(tǒng)內(nèi)虛擬物體的注冊和跟蹤。
本文給出一個分布式CAR系統(tǒng)的設計與實現(xiàn),具體介紹其采用的一致性控制、注冊和跟蹤等關鍵技術。此外,通過構建一個具體的協(xié)作任務,文章重點研究了一致性控制具體參數(shù)設置對系統(tǒng)協(xié)作性能的影響,為以后此類系統(tǒng)的設計與開發(fā)提供指導。
首先介紹系統(tǒng)使用的主要設備,然后給出系統(tǒng)結構圖和流程,最后給出注冊、跟蹤以及一致性控制實現(xiàn)方法。
CAR是AR技術的拓展,它們之間存在著很多共性,如均含有頭盔顯示器、用于跟蹤用戶頭部方位和物體操作的跟蹤設備。此外,由于分布式CAR系統(tǒng)用戶不共享同一物理環(huán)境,各節(jié)點間還需通過網(wǎng)絡設備進行互聯(lián)。
現(xiàn)有AR系統(tǒng)主要使用頭盔顯示器(Head Mounted Display,HMD)實現(xiàn)具體場景的再現(xiàn)。HMD根據(jù)實現(xiàn)原理不同被分為兩種:視頻透視式頭盔顯示器(Video see-through HMD)和光學透視式頭盔顯示器(Optical see-through HMD)。兩種系統(tǒng)各有千秋,本系統(tǒng)在實現(xiàn)過程中采用視頻透視式頭盔顯示器。此外,系統(tǒng)采用磁傳感器對用戶頭部方位以及用戶對物體的具體操作進行跟蹤,以便于往視頻流中準確添加三維虛擬物體信息。
整個系統(tǒng)的結構如圖1所示,主要由以下三部分組成:捆綁了攝像頭和傳感器的視頻透視頭盔顯示器;與傳感器捆綁在一起的實際操作物體;用于處理數(shù)據(jù)的PC。用戶在使用該系統(tǒng)時需頭戴捆綁了攝像頭和傳感器的視頻透視式頭盔顯示器,手拿捆綁了傳感器的實際操作物體,節(jié)點間通過網(wǎng)絡傳輸被操作物體的狀態(tài)更新信息。
系統(tǒng)流程主要由以下三部分組成:初始化、獲取視頻、主循環(huán)。初始化完成視頻參數(shù)、傳感器參數(shù)、網(wǎng)絡傳輸參數(shù)等設置,并對系統(tǒng)進行初始化,啟動傳感器和攝像頭。獲取視頻負責從攝像頭獲取視頻圖像。主循環(huán)主要完成以下四部分工作:①注冊跟蹤,通過傳感器獲得頭部姿態(tài)以及對物體的操作信息;②網(wǎng)絡傳輸及一致性控制,接收協(xié)作方發(fā)送的物體操作信息,發(fā)送給對方本地的物體操作信息,并維護整個系統(tǒng)的一致性;③碰撞檢測,判斷系統(tǒng)內(nèi)的物體是否發(fā)生碰撞;④虛擬物體繪制,結合傳感結果以及碰撞檢測結果,將虛擬物體疊加到獲取的視頻圖像上并通過頭盔顯示器呈現(xiàn)給用戶。
圖1 系統(tǒng)結構
系統(tǒng)使用傳感器跟蹤用戶頭部姿態(tài)以及對物體的操作,因此存在三個相關的坐標系:真實坐標系;傳感器坐標系;視頻坐標系。傳感器得到的是傳感器在發(fā)射器坐標系(真實環(huán)境坐標系)中的位置信息,它們不能被直接用于繪制虛擬物體,必須進行坐標轉(zhuǎn)換和一些相關處理。圖2給出了三個坐標系間的關系,下面給出傳感器坐標系中的一點A(x,y,z)到視頻坐標系的坐標轉(zhuǎn)換方法。設從傳感器得到的數(shù)據(jù)為(x0,y0,z0)和矩陣M,矩陣M為傳感器坐標系到真實坐標系的歐拉矩陣,真實坐標系到視頻坐標系的轉(zhuǎn)換矩陣為M’。傳感器坐標系中的點A在真實坐標系中的坐標可由公式(1)得到,點A在視頻坐標系中的坐標由公式(2)得到。
(1)
(2)
所謂注冊就是使虛擬物體在真實環(huán)境中得到正確映射。在本系統(tǒng)中,坐標系轉(zhuǎn)換完成后,根據(jù)兩個傳感器的返回結果分別得到頭部和被操作物體在視頻坐標系中的位置信息,進而對虛擬物體進行繪制,以實現(xiàn)虛擬物體和視頻中的真實物體在用戶操作過程中方位完全吻合。
圖2 坐標系轉(zhuǎn)換
分布式CAR系統(tǒng)通過網(wǎng)絡傳輸用戶的物體操作信息,因此需要采用一致性控制來對整個系統(tǒng)的狀態(tài)進行維護,使各用戶看到統(tǒng)一的系統(tǒng)狀態(tài)。具體實現(xiàn)時采用基于用戶操作本地滯后的一致性控制方法[8],該方法主要用于協(xié)同虛擬環(huán)境等連續(xù)交互媒體系統(tǒng)一致性控制,在CAR系統(tǒng)中是首次使用。
基于本地滯后的一致性控制技術原理非常簡單,在本地用戶觸發(fā)一個操作后,系統(tǒng)不是立即執(zhí)行,而是延遲一定時間后再執(zhí)行,即操作的時間戳值要比操作被用戶觸發(fā)的時間大,這個時間延遲則被稱為本地滯后,如圖3所示。從圖中可見,當本地滯后值為0時,系統(tǒng)會產(chǎn)生大量短時不一致,當本地滯后值增大時,系統(tǒng)短時不一致會減少,但用戶操作的響應時間會延長。因此,必須對短時不一致和用戶操作的響應時間進行綜合考慮,選取合適的本地滯后值。
圖3 基于本地滯后的一致性控制技術
從1.3節(jié)介紹可見,本地滯后值的選擇對分布式CAR系統(tǒng)任務性能會有較大影響,因此,本文在開發(fā)好的系統(tǒng)原型基礎上通過實驗研究本地滯后值設置對系統(tǒng)協(xié)作性能的影響,以指導本地滯后一致性控制方法在類似分布式CAR系統(tǒng)中的應用。
為對系統(tǒng)協(xié)作性能進行檢驗,實驗采用的協(xié)作任務不僅要具有較高的交互性,而且要能讓被試在較短時間內(nèi)熟練掌握,因此采用文獻[9]里使用的穿框任務。該任務要求一組中的兩個被試分別控制框和桿進行交互,使框從桿的一個端點盡快移動到另一端點,同時桿必須在框的內(nèi)部且不能和框發(fā)生碰撞。為增加交互性,均衡雙方交互負擔,要求在完成穿框任務時雙方都必須要控制相應物體運動,不能以一方靜止不動一方運動的形式來完成任務。
圖4(a)為實驗系統(tǒng)全貌,其中被試拿著一個捆綁了傳感器的真實方框正在穿過虛擬桿,圖4(b)是被試通過頭盔顯示器看到的場景,圖4(c)是被試戴的頭盔顯示器正面示意圖。
本實驗采用組內(nèi)設計,所有被測人員要在所有實驗條件下嘗試完成實驗任務。共設置了本地滯后0、100、200、300、400、500、600 ms七組實驗條件,條件出現(xiàn)順序進行平衡設計。
實驗用到的硬件設備如下:①兩臺配置一樣的(P4 1.8 G處理器,512 M內(nèi)存,GeForce2 MX 400顯卡,100 Mbps網(wǎng)卡)PC以運行分布式CAR系統(tǒng);②兩套ASCENSION公司生產(chǎn)的pciBIRD用于完成用戶頭部和物體操作跟蹤(pciBIRD的位置精確度為1.44 mm RMS,角度精確度為0.15°RMS);③兩套視頻透視HMD都選用Daeyang DH-4400VP,屏幕分辨率為800×600;④攝像頭采用了韓國現(xiàn)代H103S小型USB攝像頭,最大分辨率為640×480,最大光圈F2.0,信噪比>42 dB,內(nèi)部采用快速圖像壓縮引擎,可達2~7倍的壓縮比率,由于采用了35萬像素的CMOS傳感器,其可在352×288分辨率下以30幀/s的速度采集圖像。
兩臺計算機通過100 Mbps局域網(wǎng)互聯(lián),由于網(wǎng)絡狀況良好,兩臺機器間的信息傳輸沒有出現(xiàn)丟包。具體實驗環(huán)境結構與圖1一致,其中傳感器與框的綁定見圖4(b),傳感器綁定在框一條邊的正中間,曲折桿和傳感器的綁定通過將傳感器固定在桿一條邊的正中間。傳感器、攝像頭及HMD間的綁定見圖4(c),攝像頭固定在HMD正中間,然后將傳感器固定在HMD上用來跟蹤被試頭部姿態(tài)。
圖4 系統(tǒng)截圖
本實驗共有20人參加,按兩人一組被隨機分為10組。實驗被試全部是浙江大學的本科生和研究生,年齡在24~26歲之間,其中男生18人,女生2人。
在實驗開始前,實驗管理人員先向被試人員講述實驗內(nèi)容和要求,然后被試開始進行訓練。由于被試對任務操作的熟練程度會直接影響到本實驗的結果,所以安排被試在正式實驗前進行訓練。訓練首先在滯后值為0 ms下進行,直至被試能順利完成實驗任務,然后將滯后值改為300 ms,直至被試能順利完成實驗任務。在訓練過程中,管理人員給予被試一些相關操作技巧,如使穿圈速度盡量保持一致,棒盡量保持在圈的中心位置等。
訓練結束后,開始正式實驗。正式實驗分成7塊,每塊對應一個本地滯后值。每組被試都必須按隨機順序完成全部7塊內(nèi)容。當兩個被試都準備好后,管理人員發(fā)出開始信號,被試進行穿圈,并計時。如穿圈過程中發(fā)生碰撞,則被試退回起點重新開始。在一實驗塊中,被試須成功穿圈3次才算完成任務,每次成功后記錄下穿圈所耗時間,每塊結束后統(tǒng)計總的嘗試完成次數(shù)(即碰撞發(fā)生次數(shù)),并要求被試對穿圈過程的交互性能進行打分評價(其中10分代表最好的交互性能,0分代表最差的交互性能)。在實驗過程中,兩個被試間不允許以任何方式進行通信。此外,實驗還規(guī)定,如一組被試在某一實驗條件下發(fā)生20次以上碰撞且還未完成任務時,則該條件下的實驗失敗。
圖5為不同本地滯后值下的任務平均完成時間,可見本地滯后值從0 ms增加到100 ms對任務平均完成時間沒有影響,但當本地滯后值超過100 ms時,任務平均完成時間基本隨本地滯后值的增長線性增長,從5.5 s一直增長到近10 s。
圖5 不同本地滯后值下的任務平均完成時間
圖6為不同本地滯后值下的任務平均完成次數(shù),可見本地滯后值從0 ms增加到100 ms不僅沒有增加任務平均完成次數(shù),反而使之略有下降,當本地滯后值從100 ms增加到500 ms時,任務平均完成次數(shù)基本隨本地滯后值的增長線性增長,從約6次一直增長到約11次,當本地滯后值增加到600 ms時,任務平均完成次數(shù)有大幅增長的過程,到達15次左右。
圖6 不同本地滯后值下的任務平均完成次數(shù)
圖7顯示的是被試在不同本地滯后值下對交互性能的評價,可見本地滯后值從0 ms增加到100 ms對平均交互性能沒有影響,但當本地滯后值超過100 ms時,系統(tǒng)平均交互性能基本隨本地滯后值的增長線性下降,從近10一直下降到1左右。尤其當本地滯后值為600 ms時,被試對交互性能的評價僅為1左右,可見被試在此實驗條件下已很難進行交互和協(xié)同工作。
圖7 不同本地滯后值下的系統(tǒng)平均交互性能
此外,當本地滯后值為600 ms時,有3組被試實驗失敗(總碰撞發(fā)生次數(shù)大于20),而當本地滯后值小于600 ms時,所有被試組均可順利完成任務。
綜合以上實驗結果,可見本地滯后值對分布式CAR系統(tǒng)任務性能的影響是分階段的,當本地滯后值小于等于100 ms時,任務平均完成時間、平均完成次數(shù)、平均交互性能均不受本地滯后值增加的影響,當本地滯后值從100 ms增加到500 ms時,任務平均完成時間、平均完成次數(shù)基本線性增加,平均交互性能基本線性下降,但本地滯后值的增加不影響用戶完成任務,當本地滯后值大于等于600 ms時,各實驗結果進一步惡化,且使部分被試組不能順利完成實驗任務。
根據(jù)以上結果和討論,給出本地滯后一致性控制方法在分布式CAR系統(tǒng)中進行應用時選擇滯后值的一些建議。對于網(wǎng)絡狀況良好的應用環(huán)境,系統(tǒng)信息傳輸延遲較小,100 ms是很好的本地滯后值選擇,其不會對系統(tǒng)交互性能造成任何負面影響。如具體應用環(huán)境網(wǎng)絡狀況不是很好,可選擇設置大于100 ms的本地滯后值,但需注意最好不要設置大于500 ms的本地滯后值,因其會極大降低用戶完成任務的性能,甚至使一些用戶無法正常完成任務。
本文給出一個支持多用戶協(xié)同操作的分布式CAR系統(tǒng)實例,并詳細介紹其注冊、跟蹤、碰撞檢測與一致性控制技術。此外,本文在原型系統(tǒng)上通過實驗對本地滯后一致性控制方法滯后值選擇對任務完成時間、完成次數(shù)和交互性能的影響進行研究。實驗結果表明,當本地滯后值小于100 ms時,本地滯后機制對任務性能沒有任何影響,當本地滯后值小于500 ms時,本地滯后機制對任務性能的負面影響隨滯后值的增加而增加,而當本地滯后值大于500 ms時可能會使任務無法完成,因此在具體應用中建議不要將本地滯后值設置為大于500 ms。文中給出的分布式CAR系統(tǒng)可被應用于游戲、教育、軍事等領域,為用戶提供虛實結合、一致的協(xié)同工作環(huán)境。
參考文獻:
[1] AZUMA R. A survey of augmented reality [J]. Presence, 1997, 6 (4): 355- 385.
[2] FEINER S, MACINTYRE B, SELIGMAN D. Knowledge-based augmented reality [J]. Communications of the ACM, 1993, 36 (7): 52-62.
[3] BAJURA M, FUCHS H, OHBUCHI R. Merging virtual reality with the real world: Seeing ultrasound imagery within the patient [J]. Computer Graphics, 1992, 26(2): 203-210.
[4] ROSE E, BREEN D, AHLERS K H, CRAMPTON C, et al. Annotating real world objects using augmented reality[C]. Proc of Computer Graphics International,1995: 357-370.
[5] BILLINGHURST M, BALDIS S, MILLER E, et al. Shared space: collaborative information spaces[C]. Proc of HCI International, 1997: 7-10.
[6] OHSHIMA T, SATOH K, YAMAMOTO H, et al. AR2Hockey: a case study of collaborative augmented reality[C].Proc of IEEE Virtual Reality Annual International Symposium, 1998: 268-275.
[7] SCHMALSTIEQ D, HESINA G. Distributed applications for collaborative augmented reality[C].Proc of VR International, 2002: 59-66.
[8] MAUVE M. Consistency in replicated continuous interactive media[C]. Proc of ACM conference on Computer Supported Cooperative Work, 2000: 181-190.
[9] CHEN L, CHEN H, CHEN G C. Echo: a method to improve the task performance of CVEs[C]. Proc of IEEE Virtual Reality, 2005: 269-270.