張訓雷,帖云,齊林
(鄭州大學,鄭州 450001)
隨著移動寬帶傳輸技術的不斷成熟,促進了寬帶流媒體業務的極大發展。尤其是VR技術成為當前產業化的熱點方向,為了進一步規范其發展,工業和信息化部主辦了世界VR產業大會,并制定了《虛擬現實產業發展白皮書(2019 年)》,根據最新的統計數據表明在未來幾年內,VR 產業將直接或間接產生上萬億的市場效益。由于VR技術可以實現足不出戶就能體驗到近乎真實的各種生活場景,如購物、旅游等。此外,VR 技術還為虛擬網絡資源加入了沉浸式的體驗,使得用戶可以享有身臨其境的體驗,從而極大提升用戶使用體驗。
VR 技術的概念和理論從20 世紀70 年代開始形成,首先,由Dan Sandin等研制出數據手套[1]實現了在虛擬環境中對用戶的手部動作信息的實時捕捉和跟蹤;其次,美國國家航天局為了滿足對太空研究的需求開發了VIEW 系統[2],該系統實現了在虛擬環境中對火星的探索任務,并記錄了相關的實驗數據從而促進了后期的研究工作;最后,由VPL Research 公司以及任天堂游戲公司發布了基于VR 技術的相關軟硬件,從而推動了VR 技術的商用化進程。但是,由于VR 技術對硬體的處理性能和網絡的傳輸性能要求較高,因此VR技術陷入了發展的瓶頸。
近年來,隨著計算機硬件和軟件的高速發展,尤其是數據傳輸技術的不斷發展,從而實現了對網絡內容近乎無損的傳輸,從而促進了VR 技術進入新的發展時期。并且相關廠商為推動VR 商業化的進程,相繼推出了面向消費者的VR 產品及配套設備,如HTC Vive、Facebook Oculus等,此外相關廠商也為其VR設備建立了相關的生態,使得其內容和體驗的不斷提升。
VR技術的開發與應用通常應具備沉浸式、交互性以及自主化的特點。相較于傳統的技術發展,由于VR始終基于虛擬場景和模型以實現逼近真實的體驗感,所以如何讓用戶與所處的虛擬場景融為一體就顯得尤為重要。但是目前VR技術的應用主要存在VR控制方式非自然化、媒體內容解析度受限、刷新率偏低以及觀看視場角范圍較小的挑戰。直播技術作為一種新興的異地場景遠程云端共享的形式,目前主流的方式有:1)依托于網頁Web技術的桌面級別的產品以及2)基于VR技術的特定場景應用。前者依托于Web技術雖然實現了流媒體內容的異地共享和觀看,但由于其始終在桌面環境以視頻的形式為用戶呈現遠端的環境,從而極大影響了直播的效果,并最終降低了用戶的使用體驗;然而,VR技術通過模型虛擬場景搭建技術和全景視頻渲染技術,通過借助于相關硬件和軟件平臺的基礎上不僅為用戶帶來了云端實景體驗,而且在一定程度上實現了流媒體的高解析度接收,目前主要的VR開發與應用平臺有HTC Vive以及Oculus。
目前在VR視頻的傳輸和接收領域已經有相關研究人員做了大量的研究工作,并也取得了顯著的效果。然而,如何對VR 的內容進行沉浸化的控制和操作仍需要做更為深入的研究工作。一般的都是通過與相關Vive 或Oculus 等設備相配套的控制手柄實現對虛擬場景的控制[3-5],通過使用配套的手柄雖然極大的簡化了開發的流程,但由于手柄已對相關動作的觸發進行了指定,使得用戶并不能任意的完成操作指令,從而限制了用戶在使用過程中的操作自由度。因此,相關研究者通過研究表明[6],借助于手勢對虛擬場景進行控制將極大推動VR控制技術向著更為擬人化的方向發展。
由于通過相關VR 設備相配套的手柄硬件,一方面對用戶的控制操作進行了限制,一方面由于其依托于VR頭戴顯示器或追蹤設備對其進行實時的位置定位和用戶動作指令反饋,因此存在追蹤域的盲區,從而導致其并不能很好的對用戶的動作做出相應的反饋。所以,研究人員通過在二維平面安裝以重量驅動的裝置,以實現對控制設備空間形狀的捕捉[7]。此外,為了對人體手掌的動作進行真實的模擬,通過搭建以手掌為基準的觸覺反饋系統,該系統通過內部集成的小型馬達動態控制和呈現手部的力量和動作變化[8]。通過設計特定的硬件以實現對相關虛擬場景輸入的檢測和控制,一方面實現了更為精確的追蹤和反饋,一方面對任務的需求緊密相關,從而并不具備普適性的特定,并且設計的相關硬件設備體積較大,并不能很好的商用。因此,在基于數據驅動的引導下,通過數據回歸建模的方式實現了對相關的用戶輸入的反饋,并且實現了對目標輸入動作指令的感知[9]。
研究人員通過自主設計相關硬件設置的方法和通過數據學習的方法對虛擬的控制輸入進行檢測和反饋,均在特定的場景中實現了較好的效果表現。但是,由于手勢的非剛體特性(即手勢的幾何形狀和運動狀態受到用戶所表達的特定語義內涵影響,從而可以表現出多種狀態)導致直接通過檢測其紋理特征識別具體的動作將對計算資源產生較大消耗,并且相對于膚色等紋理信息的骨骼結構通過直接對手部的骨骼進行建模,因此降低了特征的建模過程,并在一定程度上降低了誤檢的概率。因此,2013年Leap公司面向PC和Mac的消費市場發布了Leap Motion體感控制器,該控制器通過對手勢的關鍵節點進行捕獲和追蹤,從而實現將人體手部的骨骼節點信息在虛擬環境中加以呈現。受到Leap Motion設備的啟發,人機交互領域的研究人員在其基礎上開展了大量的研究工作[10-15]。因此,本文在結合之前研究工作的基礎上,基于Leap Motion體感控制器為Cave VR直播系統開發手勢控制系統。
Cave 系統通過應用高解析度立體成像技術和高保真聲場還原技術,結合激光定位技術與動作捕捉等模塊構建了具有高度沉浸體驗的虛擬現實系統。通過對各種現實環境和人體感覺的反饋和模擬,為用戶提供了真實的遠程三維場景體驗,從而推動了VR 技術的進一步完善,同時也拓寬了虛擬現實技術的應用場景。相對于傳統的VR 環境,Cave 極大的激發了VR 領域的潛力,并在商用化的進程中不斷進化。目前基于Cave 系統的商業化應用有:面向醫療的遠程診斷、面向教育的智慧課堂、面向旅游的遠程景點游覽以及面向工業界的智能裝配等。
(1)系統組成
Cave 系統由圖形工作站、仿真視覺模塊、投影反射模塊、定位追蹤模塊和多種信息的仿真模塊構成[16],整體結構如圖1 所示。Cave 系統通過高性能圖形工作站提供的算力支持,實現了對相關VR 流媒體場景的呈現以及對復雜三維模型的精確計算和效果渲染,從而實現了對接收的流媒體以高解析度顯示以及對模型的逼真渲染和還原。此外,通過高流明的投影設備與具備高刷新率的多塊顯示模塊相搭配,使用視頻同步分流技術將獲取到的實時媒體內容即時的分發到與之相匹配的多塊顯示器之中,從而實現了對用戶生活和工作的真實空間環境的高度模擬。

圖1 Cave系統整體模型
(2)系統優勢
相對于VR頭戴顯示設備和一體機設備,Cave系統只需要借助于主動式立體眼鏡就可以完成對虛擬場景的接收,從而可以明顯降低用戶在使用過程中所產生的疲勞感,并且可以通過追蹤定位裝置對用戶的實時視角和位置進行計算,從而計算出匹配于當前用戶即時視角的顯示效果,通過對多塊顯示區域因此可以盡可能的降低由于用戶空間位置變化引起的顯示畸變的問題。此外,由于不需要借助于全封閉式的頭戴顯示裝置,也明顯的減輕了由于虛擬場景過度沉浸而導致的用戶眩暈等問題。并且通過使用無接觸式的交互裝置替代手柄完成基本的交互任務,實現了用戶在虛擬環境中的非約束式體驗。直播作為一種強調場景渲染和用戶體驗的技術,如何在保證用戶體驗的基礎上增加對相關實際任務的完成就顯得尤為重要。相對于頭戴顯示設備,Cave系統只需要用戶佩戴質量較輕的立體眼鏡即可,并且相關的直播場景可以將用戶實際的包圍在其中,使得用戶可以切實的體驗到參與實地直播的樂趣。并且通過配合特定的手勢控制系統,使得用戶不僅可以對直播的場景進行全范圍的觀看,而且可以實現實時的對相關直播物件的虛擬觸碰和抓取操作,從而實現了雙向實時互動式的直播體驗。因此,進一步推動直播技術向著更為沉浸式和自然化的方向發展。
VR直播任務對采集環境、系統的整體處理能力以及網絡傳輸性能要求較高,為了達到較好的直播體驗,這里通過對采集場景的實時拼接技術以提升接收端的顯示效果,同時使用H.265編碼技術以壓縮流媒體傳輸對網絡帶寬的需求。直播系統主要由視頻源采集、源視頻云端分發傳輸以及流媒體接收端構成,其總體結構如圖2所示。

圖2 VR直播系統模型
(1)直播源采集
為了實現對直播場景的全景采集以及盡可能的模擬人體觀察外界環境的模式,通過使用魚眼相機配合相關的相機支架以實現對人體左右雙目結構的模擬,從而為用戶在接收端實現真實直播場景的高度還原。由于需要相關鏡頭的組合才能共同完成對同一方向的環境進行360°的采集和還原的任務,從而導致了單獨的相機所采集到的視頻流存在部分區域的重疊,正是由于重疊區域的存在實現了對人體雙目成像原理的模擬,所以通過對相關的重合區域存在的局部特征點進行標定和匹配操作,實現了將兩路視頻流拼接成一路完整的立體視頻流的目的,從而實現了對直播場景的全景和立體化采集。
(2)視頻流傳輸
由于直播過程中需要傳輸大量的數據信息,由于HTTP/HTTPS 傳輸協議需要保證傳輸的有效性,從而在傳輸寬帶數據時將存在較大的傳輸時延,從而使得用戶在觀看直播時存在明顯的卡頓、延遲以及其他問題,因此極大降低用戶的使用體驗。此外,相對于目前使用較多的使用本地客戶端既實現對場景采集,又需要完成對采集視頻的上傳業務的模式相比。若將相同的模式應用到VR 的直播應用中,由于本地服務器在完成采集的同時,還需要對數據的傳輸進行編碼任務,從而將極大的增加采集端的計算負擔,從而導致直播過程出現視頻的掉幀卡頓、采集視頻延時傳輸等異常情況,并且拼接和編碼任務對硬件的性能要求較高以及目前網絡傳輸帶寬尤其是移動網絡帶寬較為受限。為了在克服上述挑戰的同時實現數據的高速傳輸,選取專為流媒體傳輸業務設計的RTMP/RTSP 協議作為傳輸協議,并通過架設專有的服務器對采集到的視頻數據流進行處理和分發,從而既實現了采集和傳輸業務的分離操作,又實現了對VR 直播場景的流暢處理和傳輸分發。
(3)流媒體接收
因為在視頻的采集端使用的是可以對場景進行360°采集的魚眼鏡頭,所以在視頻的接收端需要搭建適應于接收魚眼全景流媒體的環境,為了提高對接收環境的開發效率,使用了主流的場景建構和設計軟件Unity 3D 2018 個人版,并在Unity 3D 平臺的支持下實現了基本接收環境的搭建,并通過相關實驗驗證了所設計場景在顯示360°視頻中的可使用性。此外,由于在傳輸過程中使用了H.265 協議實現了在保證傳輸質量的前提下降低傳輸碼率的需求,并且使用RTMP/RTSP 協議實現了對流媒體的傳輸。因此,需要在接收端設計特定的解碼方案和接收協議以實現對傳輸視頻流信息的實時獲取和解碼顯示,從而最終實現對VR 直播視頻的接收任務,根據對所接收的直播實際效果的分析,其呈現狀態和效果表明了整個VR 直播系統設計的有效性和可用性。
在VR 場景中,若仍借助鍵鼠等輸入設備對用戶的指令進行輸入將明顯降低用戶的沉浸式體驗。為了提升用戶在虛擬場景中的使用體驗,通過Leap Motion開發基于手勢的控制系統,以完成用戶在直播過程中的需求輸入,其整體手勢識別和控制結構如圖3 所示。

圖3 手勢控制系統模型
(1)Unity 3D
作為三維虛擬場景搭建和開發的平臺,Unity 3D通過模型編程的思想實現了豐富的虛擬場景應用,并已成為VR 開發的主流平臺之一。Unity 3D 通過可視化互動式的開發流程,支持跨平臺開發以及多腳本語言的開發模式,從而降低了開發門檻并極大的減少了開發周期和明顯降低了開發難度。其主要分為各類模型的導入接口、場景搭建顯示界面和程序運行窗口顯示等,通過在開發視角下對其中的模型位置和狀態設置進行微調,使得調試過程變得更為簡潔。此外,Unity 3D 提供了豐富的在線資源市場,使得用戶可以輕易的獲取到當下熱門的開發素材和教學類資源,并且為了實現對真實世界進行模擬,其通過結合目前主流的現實仿真引擎實現了對真實環境的模擬,如重力以及動力學仿真等。正是Unity 3D 在開發過程中的諸多優勢,因此在直播接收平臺的搭建過程中選取其作為主要的開發平臺,通過使用Unity 3D 提供的幕布功能實現了對全景直播的360°接收和顯示,并且借助于常規的3D模型設計出了基本的控制界面。
(2)Leap Motion控制器
為了推動VR 技術的進一步發展,體感控制公司Leap在2013年發布了基于手勢骨骼模型的控制類硬件設備Leap Motion。用戶只需要將手置于其上方適當距離的位置,Leap Motion即可對手勢的骨骼進行自動的識別和建模操作。Leap Motion通過紅外成像原理對手勢的3D模型進行構建,并且設計了較大的可視角范圍使得用戶的手勢不用局限于空間中某一位置和特定狀態,從而提升了用戶在使用過程中自由度。此外,Leap Motion提供了較為豐富的應用開發接口,對復雜的手勢定義和識別過程進行簡化,降低了開發中的難度和設計冗雜的開發文檔。其通過對采集到的手勢掌心位置、移動速度、掌心方向以及虛擬掌心球的位置和半徑等進行計算和傳輸,實現了對相關手勢的顯示。并且為了進一步提升Leap Motion在實際應用中的適用性,設備內部也完成了對指尖位置和速度的檢測,從而可以實現對虛擬空間中的物體的操作。并且Leap Motion提供了基于Unity 3D的開發插件,通過相關插件可以在Unity 3D中對其捕獲到的手勢進行直接的顯示和計算,并且可以在可視化手勢的基礎上,對相關特定的手勢進行顯示。然而,在實際開發VR直播系統的手勢控制系統過程中,由于需要依據不同的手勢狀態觸發不同動作,并且其只能提供手勢的骨骼信息,所以需要對手指和掌心之間的骨骼進行判斷和定義,以實現對特定手勢的定義,這里主要通過手勢骨骼的幾何學特征進行判斷。
因為在直播過程中,用戶可能需要對接收到的視頻音量進行調整、對某些特定直播場景中的物體進行交互以及實現不同直播場景之間的切換操作,所以所設計的基于Leap Motion 的VR 直播控制系統主要由手勢識別、音量調節、物體抓取與釋放以及場景切換組成。其主要功能界面如圖4所示。

圖4 Cave VR控制系統
(1)手勢識別
Leap Motion 雖然實現了對用戶手勢的骨骼模型顯示,但是其并不能對用提供的不同的手勢進行識別。由于Unity 3D 對深度學習模型的支持并不良好,并且為了充分利用Leap Motion 控制器提供的骨骼信息,這里主要通過手勢骨骼的幾何學形態信息對手勢進行判別,通過計算手指骨骼間以及手指骨骼與掌心骨骼之間的距離關系,以實現對用戶不同手勢之間的識別,并且實現了對握拳、手掌伸張、大拇指伸展等相關常用手勢的檢測和識別任務。
(2)音量調節
首先通過Unity 3D 提供的3D 常規模型,搭建音量的可視化模塊以實現其高低定量顯示,通過可視化模塊用戶可以直觀的觀察到直播視頻的即時音量高低并進行適當的調節,以實現合適的音量播放和觀看。由于音量的高低設置和控制與手勢的向上或向下狀態相類似,所以通過將大拇指的向上或向下過程與之進行類比,所以通過將大拇指的向上與向下的動作與其相關聯以實現對直播過程中音量的控制。
(3)場景切換
此外,不同的用戶可能在不同的時間對直播的內容和平臺有不同的需求,所以用戶可能在同一時間需要對不同的直播進行觀看,所以根據上述相關需求,開發了應對不同直播場景的切換功能。因為揮手的動作類似于對不同狀態的切換,所以將不同場景的切換任務類比于用戶的揮手動作,以實現用戶的揮手動作與場景的切換功能相綁定,從而完成對不同直播節目切換的需要。為了使得Leap Motion 實現對運動信息進行建模和識別,通過調用其應用開發接口中的速度檢測模塊結合對任意手勢的識別過程,最終實現了對不同場景的切換。并且通過將不同直播的流媒體地址集成到Unity 3D 環境中,實現了地址與直播場景的綁定,并且當用戶使用手指指定某一場景達到一定的時間長度時實現對直播場景的選擇操作。
(4)物體抓取與移動
因為直播目前較為熱門的方向之一即為“帶貨業務”,所以為了進一步貼合當下的應用方向,在直播場景中添加了Unity 3D 提供的常規虛擬三維模型立方體(此處的三維模型可以根據用戶需求進行更換和添加)作為抓取和釋放對象,通過對Leap Motion 的抓取和松手動作進行檢測和識別,當用戶的手觸摸到虛擬物體之后,當用戶進行抓取之后則觸發用戶抓取物件動作,使得用戶可以對相關物體進行隨意的移動以及將相關物體移動到最適宜的觀察視角內;并且當用戶張開手之后,Leap Motion 手勢的檢測過程結合Unity 3D 提供的重力和動力學模擬引擎,實現了相關物體的自由狀態釋放。
本文在Cave VR 直播的環境下開發了替代傳統人機交互的手勢控制系統,通過將Leap Motion 手勢采集設備和Unity 3D 虛擬仿真平臺相結合的方式搭建實驗場景及環境。由于Unity 3D 軟件的跨平臺性和Leap Motion 設備對手勢骨骼模型的敏感性,所以本文所設計的系統可以輕易的移植到當下主流直播平臺之中。并且在對具體手勢的識別過程中,由于Leap Motion 并不能直接對手勢進行識別,所以,通過設計基于手勢骨骼幾何學形態的算法以實現對實時手勢輸入的狀態進行檢測和識別。此外,本文通過將不同手勢與不同動作相掛載的方式,實現了對直播場景的簡單控制。根據實驗結果表明,本文所設計系統在VR直播中的應用具有明顯的優勢。為了應對更為復雜的場景需求以及對手勢檢測精度的要求,后續準備基于本文工作的基礎上對VR場景的控制系統進一步進行更為深入研發并結合最新的手勢檢測識別算法以推動VR 手勢控制系統在更為普遍環境中的應用。