Room2Room技術分析
- 2019 年 10 月 8 日
- 筆記
1. 簡介
Room2Room[1]是一個遠程會議系統。這個系統使用基於投影的增強現實系統,讓兩個遠程用戶就像同時存在於一個會議室一樣,而且還是真人大小的,視角獨立的,即當本地用戶在動的時候,他從不同的視角看到遠程用戶的視覺效果,就像兩者正對面交流一樣。
2. 系統搭建


Room2Room使用一系列裝載在天花板上的「攝像機-投影儀」單元組,這些單元組的投影範圍要盡量覆蓋整個房間空間。基本使用RoomAlive[2]*的系統配置。[1]中提到,他們甚至可以僅使用一個「單投影儀+雙攝影機」**的單元組。
「攝影機-投影儀」單元組:Kinect v2 + BenQ 770ST投影儀。每一個單元組都由一台電腦連接。該電腦處理Kinect捕捉到的房間幾何資訊、人體姿態、聲音。然後通過網路傳輸給遠端。
為了將虛擬場景準確的投射到房間內。這個「攝影機-投影儀」單元組首先要進行標定。在標定過程中會產生房間內的3D點雲,包括房間內的傢具、牆面的點雲資訊。其中該標定工具包已經由RoomAlive[2]公開提供。
*註:其中RoomAlive是一種基於投影的增強現實遊戲系統。該系統將遊戲畫面投射到房間內,多個用戶可以在房間內遊戲。如下圖所示。

**註:該單元組如下圖所示。

使用該單元組的系統展示。

3. 方案概覽
Room2Room系統技術基礎是基於三維重建的投影增強現實技術。
該系統使用Unity3D遊戲引擎處理房間內的AR場景。首先向Unity3D中導入系統標定過程中三維重建的房間3D點雲*。在捕捉空間中的人和物體時涉及到以下幾方面。
1) 提取背景
用Kinect獲取「沒有人也沒有任何物體」的房間深度紋理。把每個單元組得到的深度紋理圖融合為完整的背景深度紋理圖。
2) 提取前景
在系統運行過程中,單元組捕捉到的場景深度和之前得到的背景深度比較,離攝影機近的被當作前景物體提取出來。
3) 三維重建
場景中的人和物體的三維幾何資訊在本地端渲染,並用GPU shader實現。用戶的紋理模型由前景深度數據和RGB攝影機獲取的彩色紋理構建。然後,紋理模型就投射到房間內。
*註:我在這篇論文對應的影片里看到了他們的標定過程,每個單元組分別向空間內投射Gray-Code的結構光。然後基於結構光對房間進行三維重建,在得到單元組的內參的同時得到空間的三維點雲。如下圖所示。


4. 系統限制
1) 投影儀投射虛擬場景時,要讓虛擬物體盡量緊貼房間內,比如貼近牆面,貼近沙發。
2) 當虛擬場景投射到遠端用戶的空間內時,用戶和虛擬場景之間最好不要有遮擋視線的東西。如下圖所示。

3) Room2Room只是作者提出的一個原型系統,僅用簡單的配置實現遠程會議的效果,即使現在有很好的實時三維重建系統。
4) Room2Room系統基於投影儀和深度攝影機,也就是說對空間的光照情況非常敏感。房間的光照需要足夠亮,這樣才能採集到足夠的彩色紋理。但是又不能太亮,投影儀投射的場景光就會被干擾。該系統為中和這兩個問題,用一個聚光燈投射到用戶身上,並隨用戶移動,聚光燈投射的光僅僅照亮用戶周邊一圈區域即可。[1]系統說這樣既能提供相對強的光照又能保證投射的虛擬場景光。
5) Room2Room系統並不是自動將虛擬場景投射到空間內,比如沙發上,牆面上。系統需要用戶在Unity3D中自己設定幾個定位點作為投射的區域。這樣當用戶在移動的時候,投影儀就將虛擬場景投射到最近的定位點,如下圖所示,(a)中用戶在左邊,(b)中用戶起身移動,(c)中用戶移動到了左邊,(d)Unity3D中用戶設定的三個定位點。

參考資料
[1] Pejsa, Tomislav, et al. "Room2Room: Enabling Life-Size Telepresence in a Projected Augmented Reality Environment." Proceedings of the 19th ACM Conference on Computer-Supported Cooperative Work & Social Computing. ACM, 2016.
[2] Jones, Brett, et al. "RoomAlive: magical experiences enabled by scalable, adaptive projector-camera units." Proceedings of the 27th annual ACM symposium on User interface software and technology. ACM, 2014.