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.