王思杰 姜忠鼎
(復旦大學上海市數據科學重點實驗室 上海 201203)(復旦大學軟件學院 上海 201203)
虛擬現實利用計算機生成三維立體的虛擬場景,通過設備為用戶提供視覺等感官模擬,使得用戶可以置身于虛擬環境中并與之進行交互,獲得強烈的沉浸感。虛擬現實可以分為投影虛擬現實和頭戴式顯示設備虛擬現實兩大類[1]。投影虛擬現實使用多臺投影儀或拼接屏,配合多投影顯示系統構建大尺寸的屏幕。用戶通過置身于顯示虛擬場景的環繞式屏幕中,獲得沉浸感。虛擬現實頭戴式顯示設備,也稱虛擬現實頭盔,通過在用戶的雙眼前使用兩塊屏幕顯示具有視差的圖像以呈現立體效果,并且采集用戶頭部運動數據,根據頭部朝向和位置實時調整畫面內容,以產生身臨其境的體驗。
全景視頻是虛擬現實的重要內容。全景視頻的優勢在于,通過視頻拍攝的方式采集全方位的圖像信息,無須進行復雜的三維建模也可以構建沉浸式的環境,讓用戶體驗身處視頻拍攝地的沉浸感。全景視頻與直播結合,更是可以讓用戶沉浸式地參與世界上另一地點正在發生的事件,目前市面上許多廠商都推出了集成視頻拍攝、畫面拼接、直播推流于一體的全景視頻相機,如Insta360 Pro[2]、Gear 360[3]。這類全景相機的出現使得全景視頻直播變得更為便捷。
數字化學習的起源可以追溯到20世紀60年代,由伊利諾伊大學開發的PLATO系統[4],它為當地的大學生提供課程作業。在線學習技術源自于20世紀90年代,學習管理系統的開發[5]。隨著互聯網技術的發展,在線學習在教育領域得到快速的發展。大型開放式網絡課程MOOC是目前熱門的網絡教學方式。MOOC通常使用視頻作為主要的教學材料,結合在線作業和互動式論壇收集學生數據評估教學效果。目前最具影響力的MOOC平臺是由哈佛大學和麻省理工學院共同成立的edX和由斯坦福大學教授創立的Coursera。
MOOC的課程模式可以分為兩種:xMOOC和cMOOC。cMOOC以自學為主,xMOOC與課堂教學模式相似。目前主流的MOOC平臺都是基于xMOOC課程模式。王萍[6]對xMOOC模式進行了總結。xMOOC模式的主要幾個模塊為:視頻、作業、測試、討論,涵蓋了教學過程中知識傳授、復習鞏固、效果反饋、交流分享的需求。
隨著虛擬現實技術的發展,沉浸式學習成為MOOC的一個發展趨勢[7],目前國內外很多研究者研究虛擬現實全景視頻在教育培訓領域的應用,并進行了相關實踐。Tawhai[8]利用沉浸式全景視頻進行法醫教學。Roche等[9]把全景視頻應用于體育教師的培訓中。Theelen等[10]發現使用全景視頻對職前教師進行培訓可以提高其人際交流的能力。G?nsluckner等[11]認為在攀巖慕課中加入全視頻可以提升教學效果。Argyriou等[12]使用全景視頻制作互動程序用于文化遺產教育。McKenzie等[13]錄制全景視頻教學內容,用以評估全景視頻對教學體驗的影響。Harrington等[14]使用全景相機拍攝制作全景手術教學視頻。哈佛大學在edX平臺上對計算機課程進行虛擬現實直播[15]。
目前現有的使用全景視頻的教學應用仍存在一些問題,難以滿足日常教學的需求。首先使用媒體資源進行輔助教學和隨堂練習是日常教學的重要環節,McKenzie等[13]與Harrington等[14]的應用通過視頻后期的形式添加媒體內容,并非在直播過程中實時使用。目前現有虛擬現實直播應用對媒體資源的動態加載和交互的支持較差,影響了日常教學過程的完整性。另一方面,教學過程中教師和學生,學生和學生之間的互動十分重要。使用錄播視頻的虛擬現實教學,無法實現師生互動。目前現有虛擬現實直播課程,如哈佛大學在edX上直播的計算機課[15],并不支持課堂成員之間的實時互動,影響教學效果。并且,課堂教學過程中學生有沒有注意聽講、對講課內容是否感興趣,是授課教師希望了解的內容。現有虛擬現實網絡教學系統并未滿足這一需求。
基于上述討論,本文設計實現一套基于虛擬現實直播的多人網絡教學系統,通過對虛擬現實直播在媒體資源以及多人交互方面進行增強,使得系統滿足課堂教學的基本需求,并且利用虛擬現實特性打造沉浸式體驗。媒體資源方面,本文設計并構建了一套虛擬現實直播媒體資源系統。系統支持圖片、視頻、網頁和三維模型資源,在虛擬現實直播教學過程中動態地加載與交互。提升了教學環節的完備性,同時利用虛擬現實沉浸感提升教學體驗;多人交互方面,本文設計一套應用于虛擬現實直播教學的多人互動方法。利用用戶頭部運動數據和空間聲語音,實現了對于全景資源的多人協同瀏覽方法。通過對學生視線數據的收集和可視化,實現了教學過程中學生視線的實時反饋。
基于虛擬現實直播的多人網絡教學系統,使用全景相機對課堂教學進行虛擬現實直播,學生通過佩戴虛擬現實頭盔參加到課堂教學中。系統在虛擬現實直播的基礎上,增加了對全景視頻、三維模型和網頁等媒體資源的動態加載與交互。傳統媒體資源在虛擬現實直播中得以延續,全景和立體的媒體資源在虛擬現實中能獲得更好地沉浸感。另一方面,系統針對全景媒體內容,設計了一套多人協同觀看方法,使得全景內容能夠更好地應用到教學過程中。最后,系統收集學生的視線數據在教師端進行實時可視化,幫助教師了解學生的觀看區域,得到教學效果的反饋。
基于虛擬現實直播的多人網絡教學系統架構如圖1所示。系統在教室使用全景相機進行拍攝和推流。客戶端分為教師客戶端和學生客戶端,使用Unity3D引擎開發。教師客戶端為桌面平臺客戶端,教師在進行虛擬現實直播時,通過這一客戶端推送并使用媒體資源,與遠程學生進行互動以及查看遠程學生視線情況。學生通過學生客戶端參加虛擬現實直播教學。本系統學生客戶端支持使用桌面和移動端的虛擬現實頭盔。
本系統使用四類服務器。流媒體服務器使用成熟的商業流媒體服務器Wowza Streaming Server,它能夠提供穩定的流媒體服務,適用于本系統的應用情景。語音服務器使用Photon Server,負責網絡語音功能。媒體資源服務器,負責本地媒體資源的分發傳輸。消息轉發服務器基于Node.js開發,負責在教師和學生之間進行網絡通信,傳遞控制消息和交互數據。
虛擬現實直播教學相較于傳統網絡直播教學的優勢之一是沉浸感,用戶通過虛擬現實頭盔進行觀看具有立體效果的全景視頻,以達到置身教室中的臨場體驗。由于虛擬現實頭盔的畫面是在虛擬場景中進行呈現的,因此虛擬現實直播教學可以引入一系列媒體資源,如虛擬三維模型、全景圖片和視頻等。利用虛擬現實的沉浸感,提升這些媒體資源相對于傳統教學的使用體驗,從而提升虛擬現實直播教學的教學效果。常見的媒體資源如表1所示,本文設計了各類媒體資源在虛擬顯示直播教學過程中的載入和交互方式。

表1 媒體資源示例
虛擬現實直播中的圖片和視頻資源主要指的是全景圖片和視頻。使用VR頭盔觀看全景媒體內容可以給人帶來身臨其境的體驗。網頁是教學過程中的常用資源,網頁中包含多種媒體資源,是傳統課堂中隨堂練習的重要載體。三維模型資源應用于特定教學場景中,在VR頭盔中觀看三維模型可以觀看到立體效果,相較于在屏幕上進行觀看更具沉浸感。
媒體資源的使用流程,主要分為媒體資源加載、呈現、交互和釋放四個部分。圖2以三維模型資源為例呈現了媒體資源的使用流程,其中序號標識了三維模型資源的一次使用實例。
資源加載的關鍵點在于狀態同步與容錯。媒體資源的狀態分為使用狀態和交互狀態。其中使用狀態包括加載、呈現和釋放,交互狀態包括交互指令和交互數據。媒體資源的狀態由教師客戶端控制,在消息轉發服務器中緩存。學生客戶端通過從消息轉發服務器獲取資源狀態,與教師客戶端的媒體資源狀態進行同步。容錯方面,學生客戶端在加載媒體資源時會進行錯誤檢測,并處理能夠自動處理的錯誤,重新加載資源。結合狀態同步,錯誤排除后學生客戶端能夠恢復至教師客戶端的媒體資源狀態。圖2中序號5至29描述了學生客戶端檢測媒體資源不存在后,從媒體資源服務器下載資源,最后通過狀態同步還原媒體資源狀態的流程。教師客戶端的資源加載與學生客戶端類似,增加了多個學生客戶端加載協調者的功能,使得每個客戶端媒體資源呈現的時間較為一致。圖2中序號5′至7′描述了教師客戶端等待所有學生客戶端加載完成后,同步呈現媒體資源的流程。運用超時機制,使得個別學生客戶端出錯不影響整體客戶端運行。
媒體資源交互分為獨立交互和同步交互兩類。獨立交互是每個客戶端單獨對媒體資源進行交互。同步交互是學生客戶端同步教師客戶端的交互過程。同步交互包括離散型交互和連續型交互兩類。離散型交互通過交互指令一次性地改變媒體資源狀態,如調整視頻的播放進度。連續型交互持續地改變媒體資源的狀態,如旋轉三維模型。對于連續型交互,教師端以固定時間間隔發送媒體資源交互數據。學生端緩存交互數據,對交互數據進行插值后使用,以得到平滑連續交互過程,如圖2中序號32至36所示。記當前收到的交互數據為D1,時間為T1,緩存的上一次交互數據為D0,時間為T0。在后續的每一幀內,根據時間把在D0和D1中進行差值得到Dlerp。假設當前幀為收到D1后T時間,Dlerp可以根據式(1)計算。
(1)
媒體資源的釋放由教師端進行控制,通過向學生端發送釋放媒體資源的消息,釋放客戶端中已完成使用的媒體資源,如圖2中序號10″至14″所示。
本文設計一套應用于虛擬現實直播教學的多人互動方法。主要包含兩個方法:(1) 利用用戶頭部、手部運動數據和語音,實現了對于全景資源的多人協同瀏覽方法,以滿足教學過程中互動討論的需求;(2) 收集學生視線數據并實現了一套視線可視化方法,以滿足教學過程中學生視線實時反饋的需求。
在日常教學過程中,多人對同一教學內容進行交流討論是常見的教學環節。在虛擬現實直播教學中,針對全景媒體資源,同樣存在協同觀看討論、講解的需求。多人協同觀看需要解決兩個問題:用戶如何進行交流;如何幫助用戶快速確定其他用戶的觀看區域。
對于用戶交流問題,本系統使用網絡語音作為多人協同過程中的交流方式。語音是較為高效便捷的交流方式。系統使用Photon Server語音服務器及插件Photon Voice實現客戶端的語音采集和傳輸功能。插件支持空間聲語音,語音可以從場景中的指定位置發出,用戶可以根據空間聲判斷音源的大致方位。
接下來介紹如何幫助用戶快速確定其他用戶的觀看區域。全景內容包括全景圖片和全景視頻,虛擬現實中全景內容是全方位顯示的,協同觀看的前提是關注區域能夠在其他觀眾間傳達分享。即用戶需要可以方便地向其他用戶指出觀看區域的方法。由于佩戴虛擬現實頭盔后缺乏統一的方位,不易找到參照物,僅通過語言描述位置較為煩瑣。本文提出兩種方法以提高協同觀看交流的效率:基于用戶虛擬化身、空間聲和視口可視化的觀看區域指引方法以及基于用戶頭部運動的引導式觀看方法。
觀看區域指引方法流程如圖3所示。在場景中為參與多人協同觀看的用戶建立虛擬化身,虛擬化身面向對應用戶的觀看區域,并在球面網格上可視化該用戶的觀看區域。用戶在進行多人協同觀看時,首先根據三維空間聲語音,定位說話對象虛擬化身的位置,然后根據虛擬化身的朝向找到該用戶的觀看區域。這一方法符合日常生活中的人與人自然交流的方式,聽到聲音后找到說話的人,根據說話人的指示找到對方關注的區域。虛擬化身的朝向以及視口可視化的位置,通過采集和應用用戶的頭部旋轉數據實現。
Nguyen等[16]提出的利用空間聲語音和視口可視化的引導方法,具有準確性較低和交互不自然的問題。Nguyen等[16]的方法中視口可視化的范圍是相機渲染的范圍,經過頭盔的透鏡后,用戶實際可見區域小于相機渲染的范圍。本文通過測量頭盔實際可見區域的方式,優化了視口可視化的范圍,使得可見區域更為準確。另一方面,Nguyen等[16]的方法中空間聲語音從視口區域發出,本文引入了用戶的虛擬化身,空間聲語音從虛擬化身上發出,相較于從視口區域發出更為自然,有助于增強用戶的沉浸感。
基于用戶頭部運動的引導式觀看方法流程如下:參加多人協同觀看的用戶分為兩種角色,其中一人作為引導者,其他用戶作為觀察者。引導者分享自己所看到的畫面,并進行介紹講解。參觀者在畫面中央以屏幕的形式,顯示引導者觀看的畫面內容,如圖4所示。屏幕中的內容隨著引導者觀看區域而變化,不受參觀者頭部運動的影響。屏幕與視野邊緣之間有留空,留空區域疊加半透明黑色,使中央的觀察屏幕相對凸顯。留空區域的畫面內容會隨著用戶的頭部運動而改變,使得用戶頭部運動可以獲得響應的視覺反饋,從而降低用戶的眩暈感。這一模式下,參觀者可以直接看到引導者的觀看區域,省去了通過交流找到同一區域的過程。引導者可以繪畫標記線,更精確地指出關注區域。適合授課教師進行帶領講解,或是請某一同學進行分享介紹的場景。引導式觀看通過采集用戶頭部旋轉數據配合觀察相機渲染RenderTexture實現。標記線繪畫通過采集用戶手部運動數據結合Unity3D中拖尾渲染組件實現。
Nguyen等[16]提出了類似的引導式觀看方法,但忽略了用戶佩戴頭盔時頭部傾斜對引導式觀看的影響,實際可用性較低。在引導式觀看模式下,用戶的頭部旋轉數據被用于還原用戶對于全景內容的觀看過程。用戶佩戴虛擬現實頭盔觀看全景視頻畫面時,頭部可能會發生傾斜,即繞視線方向所在的軸發生旋轉。這樣的旋轉會導致被引導用戶觀看的畫面內容產生傾斜,增加用戶的眩暈感。本文對這一問題進行了優化,對于用戶頭部旋轉采用數據,去除其歐拉角的z軸旋轉,以消除繞視線方向的旋轉抖動。使得被引導用戶觀看的畫面內容更為穩定。增強了這一交互方式的可用性,提升用戶體驗。
課堂教學過程中學生有沒有注意聽講、對講課內容是否感興趣,是授課教師希望了解的內容。傳統課堂教學過程中老師可以通過直接觀察學生的眼神等情況,判斷學生的興趣程度,從而調整教學內容。遠程直播教學過程中,直接觀察每個同學的情況較為困難,但是這一需求仍然存在。本系統使用基于眼球追蹤的視線可視化方法,幫助授課教師把握課堂中學生的實時觀看區域。
視線可視化的流程如圖5所示。首先在學生端通過眼球追蹤硬件配套的開發工具包獲取用戶的三維視線數據。然后對視線數據進行預處理,計算可視化所需的數據。接下來通過消息轉發服務器把視線相關數據發送到教師客戶端,教師客戶端收集每個學生的視線數據通過可視化的方式進行呈現。
本系統的視線可視化方法包括整體視線可視化和個人視線可視化兩部分。整體視線可視化幫助授課教師了解學生視點在虛擬現實視頻畫面中的分布情況。個人視線可視化讓教師可以詳細查看某一學生的視線信息。這為教師分析教學效果提供了更多的維度。
整體視線可視化,主要包含三個視圖、一個整體視圖和兩個關鍵區域視圖。整體視圖在全景視頻展開畫面上,以紅色半透明圓點的形式呈現每個學生的視點位置。整體視圖幫助教師以全局視角了解學生的關注區域。關鍵區域視圖呈現全景畫面中教師關心的某一區域內的視線分布情況,一般為教室內的黑板區域和課件區域,具體位置可以配置。關鍵區域視線可視化使用球面網格作為屏幕呈現全景視頻畫面,使用位于球內的觀察相機渲染關鍵區域畫面。在關鍵區域畫面上使用半透明紅色圓點表示學生的視點。在關鍵區的兩側,以進度條和分數的形式,可視化關注點在該區域內的學生占全體學生數量的比例。以幫助授課教師快速掌握全體學生的視線集中程度。
教師可以點擊整體視線可視化界面上的視點,調出該視點對應學生的個人視線信息可視化界面。選中的視點被放大,顏色改變為黃色作為高亮顯示并添加描邊效果。個人視線信息可視化內容包括:學生姓名、觀看時間統計和視線分布餅狀圖。觀看時間統計顯示該名學生視線在兩個關鍵區域內的停留時間。視線分布圖以餅狀圖的形式,呈現學生視線落在不同區域的占比,幫助教師快速了解某一學生的觀看區域分布。
本文在實驗室模擬,使用本系統對課堂教學進行虛擬現實直播,實驗場景如圖6所示。運行環境由一名教師和30名學生參與,其中教師和2名學生是真實用戶,其余28名學生為模擬節點。教師使用桌面平臺的客戶端。一名學生佩戴桌面端虛擬現實頭盔HTC Vive Pro Eye。另一名學生使用移動端VR一體設備HTC Vive Focus Plus,外接7invensen眼球追蹤設備。另外使用6臺計算機設備作為模擬節點,運行28個未連接VR頭盔的桌面學生客戶端,模擬多用戶時使用情況。系統使用Insta360 Pro負責全景視頻直播推流。系統共需要三類服務器,使用一臺服務器節點安裝運行。表2列出了實驗使用的計算機節點硬件配置以及模擬節點運行的客戶端數量。計算機節點之間通過千兆有線局域網連接,移動端頭盔通過百兆無線網接入局域網內。全景相機以3 840×3 840分辨率、24幀/s的幀率、15 Mbit/s碼率進行直播推流。因此每個客戶端的網絡帶寬需求不超過20 Mbit/s,30名學生使用總帶寬不超過600 Mbit/s,千兆網絡可以滿足帶寬需求。

表2 實驗計算機硬件配置表
我們首先測試媒體內容的使用。授課教師使用教師客戶端對學生推送媒體資源,教師端資源控制界面如圖7(a)所示,教師可以通過這界面推送預先配置的媒體資源。實驗主要對三維模型和網頁資源的使用進行了測試。
對于三維模型資源,教師為學生推送了獅身人面像的模型,并且在教師客戶端對三維模型進行旋轉操作,如圖7(b)所示。學生端相應的三維模型呈現如圖7(c)所示,學生端的三維模型與教室端進行了一致的旋轉,用以增強操作隱喻提升沉浸感的虛擬手也在模型右下角正確顯示。
對于網頁資源,教師為學生推送了網頁形式的課練習,學生客戶端的呈現效果如圖7(d)所示。網頁資源可以正確顯示,學生可以通過手柄射線點擊網頁中的選項進行作答。
實驗結果表明,本系統支持由教師端推送三維模型和網頁資源。教師端可以對三維模型進行旋轉操作,并在學生端同步三維模型的旋轉,方便教師進行講解。網頁資源能夠在學生端正確顯示,學生可以通過手柄進行交互。
接下來我們測試多人協同觀看效果。實驗由2名學生共同完成,情景為教師端推送全景視頻資源后,2名學生佩戴虛擬現實頭盔,對全景媒體資源進行協同觀看。分別測試3.1節中提出的基于用戶虛擬化身、空間聲和視口可視化的觀看區域指引方法和基于用戶頭部運動的引導式觀看方法。
首先測試基于用戶虛擬化身、空間聲和視口可視化的觀看區域指引方法,學生A注意到了全景視頻畫面中的某一區域如圖8(a)所示,他使用語音呼叫學生B一同觀看。學生B聽到學生A的語音后,通過空間聲定位到了學生A虛擬化身所在的位置,如圖8(b)所示。接下來學生B根據學生A的虛擬化身的朝向,找到了學生A的觀看區域,如圖8(c)所示,學生A的觀看區域使用白色邊框標記出來。學生A通過這一方法自然地找到了學生B的觀看區域。
接下來測試引導式觀看方法,學生A引導學生B觀看全景視頻。圖9(a)為學生A觀看的畫面,學生A使用標記線的功能圈畫出了金字塔頂,且學生A在觀看時頭部發生了傾斜導致畫面隨之傾斜。圖9(b)為學生B畫面中顯示的學生A的觀看內容,可以看到經過學生A觀看畫面和標記線正確地呈現在了學生B畫面中。經過畫面防抖處理,學生A傾斜的畫面得到了修正,提升了學生B的觀看體驗。
實驗結果表明,本系統提供的全景視頻多人協同觀看方法,能夠幫助實驗者快速分享或找到其他參與者的觀看區域。協同效果符合預期。
最后測試視線可視化效果。實驗由2位佩戴VR頭盔的學生參加,并添加28個未連接VR頭盔的桌面客戶端節點,共計30個學生客戶端節點,以測試系統的多用戶支持能力。實驗結果如圖10所示,圖10(a)為可視化界面,左上方兩個視圖為關鍵區域視圖,分別為課件和白板區域。30名學生的視點以紅色半透明圓點的形在可視化界面中進行顯示。其中高亮并描邊的頂點為教師選中的觀察頂點,其個人視線信息顯示在右側的界面中。圖10(b)為教師選中頂點在學生端的截圖,其中圓點為當前學生的視點,可以看到該視點位置與教師端可視化顯示的位置一致。
在系統實時性方面,本文統計了實驗過程中視線數據從學生端發送到教師端接收的耗時。實驗中教師端收到視線數據后,向學生端發送相同的回執消息。學生端計算從發送視線數據到收到回執消息的時間間隔,取其一半作為傳輸耗時的參考值。學生端每0.1 s向教師端發送一次視線數據,實驗截取了連續5 min內共3 000個視線數據的傳輸延遲進行分析。圖11列出了桌面平臺學生客戶端視線數據延遲,延遲最大值為28 ms,平均延遲為9.4 ms。圖12列出了移動平臺學生客戶端視線數據延遲,延遲最大值為73 ms,平均延遲為24.3 ms。從實驗結果可以看出,移動端客戶端由于使用無線網絡與系統連接,延遲高于使用有線網絡的桌面端客戶端。總體上看,系統網絡傳輸最大延遲低于100 ms,平均延遲低于30 ms。這一延遲用戶在實際使用過程中不易察覺,對系統的實時性影響較小。
實驗結果表明,本系統的學生視線可視化功能,能夠正確地反映學生的觀看區域,支持多用戶的可視化。視線數據傳輸的延遲可以滿足系統實時性的需求。
本文設計實現一套基于虛擬現實直播的多人網絡教學系統,通過對虛擬現實直播在媒體資源以及多人交互方面進行增強,使得系統滿足課堂教學的基本需求,并且利用虛擬現實特性打造沉浸式體驗。媒體資源方面,本文設計并構建一套虛擬現實直播媒體資源系統。系統支持圖片、視頻、網頁和三維模型資源,在虛擬現實直播教學過程中動態地加載與交互,提升了教學環節的完備性,同時利用虛擬現實沉浸感提升教學體驗。多人交互方面,本文設計一套應用于虛擬現實直播教學的多人互動方法,利用用戶頭部、手部運動數據和空間聲語音,實現了對于全景資源的多人協同瀏覽方法。通過對學生視線數據的收集和可視化,實現了教學過程中學生視線的實時反饋。實驗結果表明,系統具有良好的可用性,能夠較好地實現直播教學過程中媒體資源使用、多人協同觀看和學生視線反饋。未來我們將把教師客戶端發布到增強現實頭盔中,使用裸手進行交互,使得教師在進行真實世界的授課的同時,可以沉浸式地參與虛擬環境的交互。