王學(xué)勇,鄒 蕾,崔 斌
(北京京航計(jì)算通訊研究所,北京 100074)
傳統(tǒng)的研討會(huì)通過(guò)會(huì)議室物理空間座談,需要與會(huì)人員通過(guò)交通差旅到場(chǎng)參加,費(fèi)時(shí)費(fèi)力;視頻會(huì)議和電話會(huì)議只能展示二維的畫面,不能實(shí)現(xiàn)置身三維仿真場(chǎng)景的效果,使交流受到限制,比如在檢察機(jī)關(guān)進(jìn)行案件研討過(guò)程中,對(duì)3D 還原的案發(fā)現(xiàn)場(chǎng),不能做到與會(huì)者身臨其境勘查的體驗(yàn)。
本文研發(fā)了一套司法業(yè)務(wù)虛實(shí)協(xié)同研討系統(tǒng),擬解決公、檢、法、司跨部門業(yè)務(wù)協(xié)同工作中呈現(xiàn)出的協(xié)同研討人員物理空間地域分散、虛擬空間協(xié)同手段單一、協(xié)同研討的臨場(chǎng)感不足、研討情景時(shí)序不可回溯等問(wèn)題,構(gòu)建以案件為中心的智能研討的虛實(shí)協(xié)同研討空間,實(shí)現(xiàn)起訴、立案、審判、調(diào)解、執(zhí)行等環(huán)節(jié)的研討和交互。面向公、檢、法、司跨部門業(yè)務(wù)協(xié)同工作場(chǎng)景如圖1 所示。
圖1 面向公、檢、法、司跨部門業(yè)務(wù)協(xié)同工作場(chǎng)景
虛擬現(xiàn)實(shí)(Virtual Reality,VR),該技術(shù)是利用計(jì)算機(jī)模擬產(chǎn)生一個(gè)三維空間的虛擬世界,為用戶提供關(guān)于視覺(jué)、聽(tīng)覺(jué)、觸覺(jué)等感官的模擬,讓用戶感覺(jué)仿佛身臨其境,可以觀察三維空間內(nèi)的事物。用戶進(jìn)行位置移動(dòng)時(shí),計(jì)算機(jī)可以立即進(jìn)行復(fù)雜的運(yùn)算,將精確的三維世界視頻傳回,產(chǎn)生臨場(chǎng)感。該技術(shù)集合了計(jì)算機(jī)圖形、計(jì)算機(jī)仿真、人工智能、傳感感應(yīng)、顯示及網(wǎng)絡(luò)并行處理等技術(shù)的最新發(fā)展成果,是一種由計(jì)算機(jī)技術(shù)輔助生成的高新技術(shù)模擬系統(tǒng)。目前VR 技術(shù)在虛擬現(xiàn)實(shí)游戲等場(chǎng)景中已經(jīng)有較成熟的應(yīng)用。
跨部門協(xié)同虛擬研討空間系統(tǒng)針對(duì)司法業(yè)務(wù)協(xié)同過(guò)程中面臨的人員協(xié)同、數(shù)據(jù)共享、系統(tǒng)協(xié)同等問(wèn)題,實(shí)現(xiàn)多用戶智能協(xié)同交互、數(shù)據(jù)跨域可信共享、系統(tǒng)智能互操等功能。從技術(shù)上,解決實(shí)時(shí)位置同步、實(shí)時(shí)語(yǔ)音同步和實(shí)時(shí)圖像同步等關(guān)鍵技術(shù),實(shí)現(xiàn)廣域網(wǎng)的異地、多人協(xié)同能力。位于異地的多人可同時(shí)進(jìn)入VR場(chǎng)景,面對(duì)面地進(jìn)行語(yǔ)音交流、動(dòng)作交互、文檔演示,具有多維的真實(shí)感和沉浸感,其效果接近見(jiàn)面溝通。
系統(tǒng)支持多用戶內(nèi)容共享,讓VR 遠(yuǎn)程會(huì)議仿佛置身于真實(shí)的場(chǎng)景中,參會(huì)者可通過(guò)發(fā)言人的手勢(shì)、語(yǔ)言和表情理解對(duì)方的想法,遇到有異議之處可及時(shí)反饋,表達(dá)自己的看法和建議。
系統(tǒng)總體架構(gòu)如圖2 所示:跨部門協(xié)同虛擬研討空間系統(tǒng)總體架構(gòu)上分為存儲(chǔ)層、服務(wù)層、引擎層、應(yīng)用層四部分。
圖2 系統(tǒng)總體架構(gòu)
存儲(chǔ)層是存儲(chǔ)部分,包括場(chǎng)景模型、物體模型、角色模型、行為模型、管理數(shù)據(jù)、日志文件、內(nèi)容文件、配置文件、虛實(shí)協(xié)同研討記錄等文件、關(guān)系型數(shù)據(jù)等的存儲(chǔ)。
服務(wù)層是整個(gè)系統(tǒng)程序邏輯的基礎(chǔ)框架部分,采用易于持續(xù)集成和擴(kuò)展的微服務(wù)架構(gòu),包括服務(wù)治理、通用服務(wù)、接口服務(wù)等模塊,接口服務(wù)提供標(biāo)準(zhǔn)的接口,實(shí)現(xiàn)與姿態(tài)識(shí)別子系統(tǒng)和研討意見(jiàn)智能整理子系統(tǒng)對(duì)接。
引擎層是整個(gè)系統(tǒng)的核心部分,包括虛實(shí)協(xié)同研討空間渲染引擎、虛實(shí)協(xié)同研討網(wǎng)絡(luò)同步引擎、虛實(shí)協(xié)同研討工作流引擎等。在分布式網(wǎng)絡(luò)環(huán)境中,實(shí)現(xiàn)虛實(shí)協(xié)同中多個(gè)虛擬研討空間場(chǎng)景仿真動(dòng)態(tài)構(gòu)建、虛實(shí)協(xié)同研討中各角色實(shí)際姿態(tài)在其他各虛擬空間中實(shí)時(shí)同步、虛實(shí)協(xié)同研討中會(huì)議組織流程管理與多方同步。
應(yīng)用層面向最終用戶,提供使用的終端設(shè)備裝置、具有用戶操作界面的軟件系統(tǒng),包括仿真還原子系統(tǒng)和虛實(shí)協(xié)同研討管理子系統(tǒng)。
仿真還原子系統(tǒng)提供虛實(shí)協(xié)同研討場(chǎng)景自動(dòng)渲染、會(huì)議自動(dòng)管理、用戶操作、系統(tǒng)功能等模塊。
虛實(shí)協(xié)同研討管理子系統(tǒng)采用B/S 的架構(gòu),為用戶提供直觀GUI 操控界面,實(shí)現(xiàn)子系統(tǒng)管理、模型管理、內(nèi)容管理、用戶管理、角色管理、權(quán)限管理、會(huì)場(chǎng)管理、會(huì)議管理、會(huì)議記錄管理、接口管理、系統(tǒng)配置、個(gè)人中心等功能模塊。實(shí)現(xiàn)系統(tǒng)的可管理、可配置、可監(jiān)控的能力。
渲染是一種計(jì)算機(jī)圖形生成技術(shù),首先在計(jì)算機(jī)內(nèi)建立所需場(chǎng)景的幾何模型,并附上一定的材質(zhì)、紋理及色彩,再加上光源,根據(jù)一定的光照條件,計(jì)算并生成具有真實(shí)感效果的場(chǎng)景圖形。渲染是基于一套完整的程序計(jì)算出來(lái)的。渲染的速度受到計(jì)算機(jī)硬件計(jì)算速度的影響。
虛實(shí)協(xié)同研討空間渲染引擎實(shí)現(xiàn)3D 雙目渲染,加載和渲染VR 場(chǎng)景、3D 角色模型、物理系統(tǒng)、物體的相對(duì)位置、語(yǔ)音、姿態(tài)表情等,接受并響應(yīng)用戶的輸入、音頻輸出等。
本系統(tǒng)中,VR 場(chǎng)景涉及的模型分為兩類,一類是非實(shí)時(shí)狀態(tài)下的場(chǎng)景模型,如會(huì)議室墻壁、燈、白板、自然環(huán)境等,這些設(shè)施是固定不動(dòng)的,沒(méi)有用戶操作;另一類是實(shí)時(shí)狀態(tài)下的活動(dòng)模型,如人物角色模型,以及可能被用戶操作的物體模型,如道具模型、椅子模型等。
虛實(shí)結(jié)合動(dòng)作姿態(tài)仿真還原動(dòng)畫系統(tǒng)可以分為兩種:一是骨骼動(dòng)畫系統(tǒng),一是模型動(dòng)畫系統(tǒng),前者用內(nèi)置的骨骼帶動(dòng)物體產(chǎn)生運(yùn)動(dòng),后者則是在模型的基礎(chǔ)上直接進(jìn)行變形。引擎把這兩種動(dòng)畫系統(tǒng)預(yù)先植入仿真還原子系統(tǒng),方便動(dòng)畫師為角色設(shè)計(jì)豐富的動(dòng)作造型。
網(wǎng)絡(luò)同步引擎架構(gòu)設(shè)計(jì)如圖3 所示。
圖3 虛實(shí)協(xié)同研討網(wǎng)絡(luò)同步引擎架構(gòu)
2.2.1 平臺(tái)數(shù)據(jù)包模塊
數(shù)據(jù)包是在網(wǎng)絡(luò)中傳輸?shù)挠幸欢ǜ袷降臄?shù)據(jù)集合。平臺(tái)數(shù)據(jù)包模塊是最底層,這一層針對(duì)特定的業(yè)務(wù),實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)接口協(xié)議的封裝、構(gòu)建、發(fā)送和接收不同的數(shù)據(jù)包格式。一個(gè)數(shù)據(jù)包中可以包含不同類型的數(shù)據(jù),如場(chǎng)景模型數(shù)據(jù)、姿態(tài)數(shù)據(jù)等。
2.2.2 連接管理器
連接管理器的任務(wù)是將網(wǎng)絡(luò)中兩臺(tái)計(jì)算機(jī)之間的連接抽象化。它從上層流管理器接收數(shù)據(jù),再將數(shù)據(jù)傳輸給底層平臺(tái)數(shù)據(jù)包模塊。
連接管理器不保證數(shù)據(jù)的可靠傳輸,但是連接管理器可以保證投遞狀態(tài)通知的正確傳輸,即可以確認(rèn)傳輸?shù)竭B接管理器層的請(qǐng)求狀態(tài),連接管理器層的上層(流管理器)就可以獲知指定的數(shù)據(jù)是否被成功傳輸。
虛實(shí)協(xié)同研討系統(tǒng)中,連接管理器管理維護(hù)仿真還原子系統(tǒng)、姿態(tài)識(shí)別子系統(tǒng)到虛實(shí)協(xié)同研討服務(wù)平臺(tái)的連接。
2.2.3 流管理器
流管理器將數(shù)據(jù)發(fā)送給連接管理器,它決定了允許數(shù)據(jù)傳輸?shù)淖畲笏俾省鬏斔俾屎蛿?shù)據(jù)包大小將根據(jù)客戶端的連接發(fā)送給服務(wù)器,以保證服務(wù)器不至于將超出連接能力的數(shù)據(jù)發(fā)送給客戶端。
鑒于許多系統(tǒng)要求流管理器發(fā)送數(shù)據(jù),流管理器需要把這些請(qǐng)求按照優(yōu)先次序排好。在帶寬限制的情況下,行為管理器、事件管理器和對(duì)象管理器擁有最高的優(yōu)先級(jí)。一旦流管理器決定了發(fā)送哪些數(shù)據(jù),數(shù)據(jù)包將會(huì)分派給連接管理器。接著,高層管理器將會(huì)通過(guò)流管理器的投遞狀態(tài)得到通知。
因?yàn)榱鞴芾砥魉鶊?zhí)行的設(shè)置間隔和數(shù)據(jù)包大小的不同,一個(gè)數(shù)據(jù)包中很有可能包含不同類型的數(shù)據(jù)。例如,一個(gè)數(shù)據(jù)包可能同時(shí)包含來(lái)自移動(dòng)管理器、事件管理器和對(duì)象管理器的數(shù)據(jù)。
2.2.4 對(duì)象管理器
對(duì)象管理器是復(fù)制被認(rèn)為與指定客戶端相關(guān)的動(dòng)態(tài)對(duì)象。服務(wù)器給客戶端發(fā)送關(guān)于動(dòng)態(tài)對(duì)象的信息,但是僅僅是服務(wù)器認(rèn)為客戶端需要知道的對(duì)象??蛻舳四K負(fù)責(zé)決定客戶端必須知道什么以及最好知道什么。
不管相關(guān)對(duì)象的集合是如何計(jì)算出來(lái)的,對(duì)象管理器的任務(wù)是從服務(wù)器向客戶端傳輸盡可能多的相關(guān)對(duì)象狀態(tài)。對(duì)象管理器能保證最近的數(shù)據(jù)成功地傳輸?shù)剿械目蛻舳?,?duì)于系統(tǒng)來(lái)講是非常重要的。
當(dāng)一個(gè)對(duì)象成為相關(guān)對(duì)象(或在范圍內(nèi))時(shí),對(duì)象管理器將給該對(duì)象賦予一些信息,這里稱為對(duì)象記錄。該記錄包括唯一的ID、狀態(tài)掩碼、優(yōu)先級(jí)、狀態(tài)變換(該對(duì)象是否已經(jīng)被標(biāo)記為在范圍內(nèi)或范圍外)。
對(duì)于對(duì)象狀態(tài)的傳輸,對(duì)象的優(yōu)先級(jí)首先由狀態(tài)變換決定,其次由優(yōu)先級(jí)決定。一旦對(duì)象管理器決定了要傳輸哪些對(duì)象,它們的數(shù)據(jù)將會(huì)被添加到出站數(shù)據(jù)包中。
2.2.5 行為管理器
行為管理器的任務(wù)是盡快傳輸用戶的移動(dòng)數(shù)據(jù)。行為管理器具有較高優(yōu)先級(jí),這意味著當(dāng)移動(dòng)數(shù)據(jù)可用時(shí),流管理器總是首先給出站數(shù)據(jù)包添加所有的移動(dòng)管理器數(shù)據(jù)。每一個(gè)客戶端負(fù)責(zé)傳輸它們的移動(dòng)信息到服務(wù)器,之后通知客戶端這些移動(dòng)信息的接收情況。
2.2.6 事件管理器
事件管理器維持一個(gè)由客戶端產(chǎn)生的事件隊(duì)列。這些事件可以看作是遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call,RPC)的一種簡(jiǎn)單形式,RPC 是可以在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行的程序。
例如,當(dāng)用戶做出一個(gè)向左扭頭的姿態(tài)變化時(shí),引發(fā)一個(gè)“向左扭頭姿態(tài)變化”事件,該事件將被發(fā)送到事件管理器。該事件接著被發(fā)送到服務(wù)器,服務(wù)器確認(rèn)和記錄。事件管理器負(fù)責(zé)將這些事件按照優(yōu)先次序排列,它會(huì)給盡可能多的事件分配最高的優(yōu)先級(jí),直到滿足下面的任意一個(gè)條件:數(shù)據(jù)包已滿,事件隊(duì)列為空,或者此刻有太多的活躍事件。
事件管理器也會(huì)追蹤每一個(gè)被標(biāo)記為可靠數(shù)據(jù)的傳輸記錄。用這種方法,事件管理器很容易實(shí)現(xiàn)可靠性。如果可靠記錄沒(méi)有被確認(rèn),那么事件管理器重新將該事件放入事件隊(duì)列中,重新傳輸一次。當(dāng)然,也有很多標(biāo)記為不可靠的數(shù)據(jù),對(duì)于這些數(shù)據(jù),則不需要追蹤它們的傳輸記錄。
2.2.7 基本網(wǎng)絡(luò)模型
服務(wù)器以一個(gè)固定的時(shí)間間隔更新模擬世界。默認(rèn)情況下,時(shí)間步長(zhǎng)為15ms,以66.66 次/秒的頻率更新模擬世界,該更新頻率可以配置。
在每個(gè)更新周期內(nèi)服務(wù)器處理傳入的用戶命令,運(yùn)行物理模擬步,檢查系統(tǒng)規(guī)則,并更新所有的對(duì)象狀態(tài)。
用戶操作的響應(yīng)速度(操作到世界中的可視反饋之間的時(shí)間)是由很多因素決定的,包括服務(wù)器與客戶端的CPU 負(fù)載、更新頻率、網(wǎng)絡(luò)速率和快照更新設(shè)置,但主要是由網(wǎng)絡(luò)包的傳輸時(shí)間確定的。從客戶端發(fā)送命令到服務(wù)器響應(yīng),再到客戶端接收此命令對(duì)應(yīng)的服務(wù)器響應(yīng)被稱為延遲或ping(或RTT)。
數(shù)據(jù)使用增量更新壓縮來(lái)減少網(wǎng)絡(luò)傳輸。服務(wù)器不會(huì)每次都發(fā)送一個(gè)完整的世界快照,而只會(huì)更新自上次確認(rèn)更新(通過(guò)ACK 確認(rèn))之后所發(fā)生的變化(增量快照)??蛻舳撕头?wù)器之間發(fā)送的每個(gè)包都會(huì)帶有ACK 序列號(hào)來(lái)跟蹤網(wǎng)絡(luò)數(shù)據(jù)流。當(dāng)研討開(kāi)始時(shí)或客戶端在發(fā)生非常嚴(yán)重的數(shù)據(jù)包丟失時(shí),客戶端可以要求全額快照同步。
網(wǎng)絡(luò)同步引擎在服務(wù)器同步時(shí)還需要采用數(shù)據(jù)壓縮技術(shù)和延遲補(bǔ)償技術(shù),客戶端采用預(yù)測(cè)運(yùn)行和插值平滑處理等技術(shù)來(lái)獲得更好的用戶體驗(yàn)。
虛實(shí)協(xié)同研討工作流引擎主要是調(diào)度相應(yīng)的功能模塊對(duì)會(huì)議工作流進(jìn)行管理和控制。包括會(huì)議準(zhǔn)備階段的會(huì)議計(jì)劃、虛擬和物理資源的預(yù)占,會(huì)議進(jìn)行階段的接入控制、狀態(tài)監(jiān)控、會(huì)議記錄,會(huì)議完成階段的會(huì)議過(guò)程的存儲(chǔ)、會(huì)議記錄管理、會(huì)議回放等功能。
本文研發(fā)的系統(tǒng)提供跨部門、多層級(jí)、支持多人自由參與的虛實(shí)協(xié)同研討工作環(huán)境體系,通過(guò)視、聽(tīng)、觸等多種手段高度沉浸式人機(jī)協(xié)同、多人研討,著重構(gòu)建人機(jī)交互的無(wú)縫三維環(huán)境,允許用戶以自然的方式與環(huán)境中的物體進(jìn)行交互,有效降低用戶在人機(jī)交互反饋過(guò)程中對(duì)“真實(shí)”與“虛幻”的辨識(shí)度,使得系統(tǒng)具有沉浸性、分布性、反應(yīng)性、移動(dòng)性、人機(jī)交互與協(xié)作等能力,從而解決了證物展示及智能輔助辦案問(wèn)題。