日前,斯坦福大学的Hanseul Jun和Jeremy N. Bailenson等人发布了名为《An Easy-to-use
Pipeline for an RGBD Camera and an AR
Headset》的论文,并介绍了他们利用单个RGBD摄像头来支持AR头显的实验。
团队表示,这一研究的贡献在于为采用现成硬件的工作系统提供可用代码,而非为计算机视觉或图形学提供先进的理论。当前的研究用一个搭载RGBD摄像头(微软Kinect v2)的系统来捕获人物,并通过AR头显(微软HoloLens)来显示场景。尽管保真度低于选择多摄像头的其他系统,但所述系统的帧率高,延迟低,且可移动,因为它不需要一台渲染计算机。 系统的硬件端由两方面组成:配备Kinect v2的笔记本电脑和HoloLens。 软件端同时包括两个方面:将像素从Kinect v2发送到HoloLens;以及由HoloLens渲染像素。所述过程面临三个挑战,而这三个挑战来自于设备的三个特征: Kinect v2产生大量数据。 HoloLens需要无线传输。 HoloLens具有较低的计算能力。 面临的挑战是: a. 由于(1)和(2),需要压缩。 b. 由于(a)和(3),需要计算有效的解压缩。 c. 由于(3),需要一种有效的渲染技术。 1. 压缩与解压缩 Kinect v2具有彩色像素和深度像素。对于彩色像素,团队采用VP8编解码器,并通过libvpx和FFmpeg进行编码和解码。尽管H.264至少表现出相同的性能,但团队选择VP8的原因是libvpx基于修订的BSD许可,而这与团队提供系统源代码的目标一致。对于深度像素,由于需要避免有损压缩的不确定性,所以团队选择RVL(Wilson,2017)进行压缩,因为它的计算成本低且无损。图1概述了团队系统的压缩和解压缩过程。 2. 压缩阶段 利用接到Kinect v2的笔记本,libvpx将彩色像素编码为VP8帧,并将深度像素RVL压缩为RVL帧。执行这一功能时,由于彩色像素的分辨率(1920×1080)较于深度像素(512×424)过大,所以彩色像素的分辨率在宽度和高度减少一半,特别是对于团队的可视化技术而言(其将每个深度像素与颜色值配对)。两种像素都通过无线网络发送到HoloLens。 3. 解压缩阶段 团队的系统使用FFmpeg解码编码后的彩色像素,并将解码后的像素转换为三个8位单通道Direct3D纹理,其中每个纹理都属于YUV的颜色通道。为了避免从YUV420(一种视频流式传输的主要颜色空间,因为它允许在U通道和V通道进行4倍压缩)转换到高计算量的RGB,团队选择在YUV颜色空间中创建纹理。另外, 为避免将解码后的像素重新排列为单个纹理,团队使用了三个纹理而非一个。接下来,用RVL压缩的像素将解压缩为16位单通道Direct3D纹理。 4. 渲染阶段 借助YUV纹理和深度纹理,HoloLens可以将深度纹理的每个像素渲染为漂浮在空间上的四边形,并使用YUV纹理中的颜色值对四边形进行着色。团队的渲染技术需要使用由Kinect v2的intrinsic variable预先计算的网格。在具有深度纹理的顶点着色器中,预先计算的网格变成反映深度纹理深度值的一组点。在几何着色器中,所述点变为四边形。四边形的大小选择为不影响相邻四边形的最大大小。最后,在片段着色器中,根据YUV纹理对四边形进行着色。图2是团队的渲染技术示例。 团队发布系统代码的目的是,支持大家将其用作AR头显应用程序开发的基础,尤其是远程呈现系统。尽管渲染质量远非完美,但团队希望这个系统能够提供一种便携的,支持现成硬件的经验证方法(无需机器进行渲染),从而为开发者,研究人员和消费者带来帮助。 相关论文:An Easy-to-use Pipeline for an RGBD Camera and an AR Headset 5. 源代码 系统的源代码已经托管至GitHub。 |
免责声明:本网站内容由网友自行在页面发布,上传者应自行负责所上传内容涉及的法律责任,本网站对内容真实性、版权等概不负责,亦不承担任何法律责任。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。