65.9K
CodeProject 正在变化。 阅读更多。
Home

Intel® RealSense™ SDK 背景分割功能

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2015年10月23日

CPOL

7分钟阅读

viewsIcon

22373

本白皮书介绍了开发人员如何集成 Intel® RealSense™ SDK 背景分割 (BGS) 中间件来创建新的沉浸式协作应用程序。

引言

本白皮书介绍了开发人员如何集成 Intel® RealSense™ SDK 背景分割 (BGS) 中间件来创建新的沉浸式协作应用程序。它概述了在各种场景下的预期行为和性能表现,并提出了一些开发人员在向消费者发布产品前需要了解的限制。主要读者是实施 BGS 的开发团队和 OEM。

背景和范围

背景分割(也称为“BGS 技术”)是 Intel® RealSense™ 摄像头的沉浸式协作和内容创作类别的关键产品差异化因素。用户能够实时分割出自己的背景,而无需专门的设备或后期处理,这为现有的视频会议应用程序提供了引人注目的增值功能。

用户有巨大的潜力基于 BGS 技术来扩展现有用途或发明新的用途。例如,消费者可以通过视频聊天会话在另一个共享软件上通过 YouTube* 与朋友一起观看共享内容。在虚拟会议中,同事可以看到彼此叠加在共享工作空间上。开发人员可以集成 BGS 中间件来创建新用途,例如在运行基于摄像头或基于共享的应用程序时更改背景图像或向背景添加视频。图 1 和图 2 展示了使用 Intel RealSense 摄像头进行沉浸式用途的应用程序。此外,开发人员还可以考虑用于自拍并更改背景、使用浏览器或办公应用程序等协作工具与多方进行共享和编辑,例如创建具有不同背景的卡拉 OK 视频。

图 2. Personify® App - http://www.personify.com/realsense

创建 BGS 示例应用程序

必备组件

本文档解释了开发人员如何在示例应用程序中用视频或图像替换背景。我们还提供了一个代码片段,用于将中间件输出的图像与任何背景图像进行混合,并说明了预期的性能表现。

当前版本的背景分割中间件支持 YUY2 和 RGB 格式。RGB 的分辨率从 360p 到 720p,深度图像为 480p。

图 3 显示了 BGS 的高级流程。深度帧和彩色帧由 Intel RealSense 摄像头捕获,并传递给核心 SDK(即 Intel RealSense SDK 运行时)。根据应用程序的请求,帧被传递到用户提取块,该块是分割后的 RGBA 图像。此图像可以与任何基于背景的 RGB 图像进行 alpha 混合,以创建最终输出。开发人员可以使用任何机制在屏幕上混合图像,但使用图形可以获得最佳性能。

图 3. BGS 流程。

以下步骤解释了如何将 3D 分割集成到开发人员应用程序中

1. 作为 Intel RealSense SDK 的一部分安装以下组件

  • Intel RealSense SDK 核心运行时
  • 背景分割模块

2. 使用 Web 安装程序或独立安装程序仅安装核心和 Personify 组件。运行时只能在 UAC 模式下安装。

intel_rs_sdk_runtime_websetup_x.x.x.xxxxxx --silent --no-progress --accept-license=yes --finstall=core,personify --fnone=all"

您可以使用以下 Intel RealSense SDK API 来检测系统中安装了哪个运行时

   // session is a PXCSession instance
   PXCSession::ImplVersion sdk_version=session->QueryVersion();

3. 创建使用 3D 摄像头的实例。它创建一个管道构造,用于运行任何基于 3D 的算法。

   PXCSenseManager* pSenseManager = PXCSenseManager::CreateInstance();

4. 启用您需要使用的中间件模块。建议仅启用应用程序所需的模块。

   pxcStatus result = pSenseManager->Enable3DSeg();

5. 确定您的应用程序需要哪个配置文件。以更高的分辨率和帧速率运行可能会影响性能。传递配置文件以从摄像头获取特定流。

   PXC3DSeg* pSeg = pSenseManager->Query3DSeg();
   pSeg->QueryInstance<PXCVideoModule>()->QueryCaptureProfile(profile, &VideoProfile);
   pSenseManager->EnableStreams(&VideoProfile);

6. 初始化摄像头的管道,并将第一帧传递给中间件。所有中间件都需要此阶段,并且这是使管道正常工作所必需的。

   result = pSenseManager->Init();

7. 从摄像头检索分割后的图像。中间件输出的图像是 RGBA 格式,仅包含分割后的部分。

PXCImage *image=seg->AcquireSegmentedImage(...);

8. 将分割后的图像与您自己的背景混合。

注意:与在 CPU 上进行混合相比,在 GPU 上进行混合对性能有显著影响。示例应用程序在 CPU 上运行。

  • 您可以使用任何技术将背景图像像素与 RGBA 分割后的图像进行混合。
  • 您可以使用零拷贝将数据复制到系统内存,而不是使用 CPU。
  • 可以根据偏好使用 Direct3D* 或 OpenGL* 进行混合。

以下是获取图像并将其传递到系统内存的代码片段,其中 srcData 的类型为 pxcBYTE -

   segmented_image->AcquireAccess(PXCImage::ACCESS_READ,
   PXCImage::PIXEL_FORMAT_RGB32, &segmented_image_data);

   srcData = segmented_image_data.planes[0] + 0 * segmented_image_data.pitches[0];

混合和渲染步骤

  • 捕获:从摄像头读取彩色和深度数据的流
  • 分割:区分背景和前景像素
  • 将彩色图像和分割图像(深度蒙版)复制到纹理中。
  • 将分割图像(深度蒙版)调整到与彩色图像相同的分辨率。
  • (可选) 加载或更新背景图像(如果需要替换)到纹理中。
  • 编译/加载着色器。
  • 为着色器设置彩色、深度和(可选)背景纹理。
  • 运行着色器并显示。
  • (对于视频会议应用程序) 将混合后的图像复制到 NV12 或 YUY2 曲面。
  • (对于视频会议应用程序) 将曲面传递给 Intel® Media SDK H.264 HW 编码器。

性能

应用程序的行为受三个因素影响

  • 帧率 (FPS)
  • 混合
  • 分辨率

下表显示了第五代 Intel® Core™ i5 处理器上的 CPU 利用率。

  无渲染 CPU 渲染 GPU 渲染
720p/30fps 29.20% 43.49% 31.92%
360p/30fps 15.39% 25.29% 16.12%
720p/15fps 17.93% 28.29% 18.29%

要在您自己的计算机上验证渲染效果,请在运行示例应用程序时使用“-noRender”选项或不使用该选项。

BGS 技术限制

用户分割仍在不断发展,并且随着 SDK 每个新版本的发布,质量也在不断提高。

评估质量时需要注意的几点

  • 避免身体上与背景图像颜色相似的黑色物体。例如,黑色衬衫配黑色背景
  • 头部的高强度光照会影响头发质量。
  • 躺在沙发或床上可能会导致用户体验不佳。坐姿更适合视频会议。
  • 半透明或透明物体(如玻璃杯)将无法按预期工作。
  • 手部蹼是存在问题的地方;质量可能会有所不同。
  • 额头上的头发可能会出现分割问题。
  • 请勿过快地移动手或头部。摄像头限制会影响质量。

向 Intel 提供 BGS 技术反馈

您如何继续改进软件?最好的方法是提供反馈。在开发人员想要在新版 Intel RealSense SDK 中重新测试时,在类似环境下运行场景可能很困难。

为了最大限度地减少每次运行的差异,最好捕获用于复制问题的输入摄像头序列,以查看质量是否得到改善。

Intel RealSense SDK 附带了一个示例应用程序,可以帮助收集序列并在新版本中进行回放;

  • 对提供质量反馈很重要
  • 不适用于性能分析

在默认安装中,示例应用程序位于 C:\Program Files (x86)\Intel\RSSDK\bin\win32\FF_3DSeg.cs.exe。启动应用程序并按照下面屏幕截图中的步骤操作

您将看到自己,背景已被移除。

回放序列

如果选择录制模式,您可以保存会话的副本。然后,您可以打开 FF_3DSeg.cs.exe 应用程序并选择回放模式来查看录制内容。

摘要

Intel RealSense 技术背景分割中间件为消费者带来了新的沉浸式体验。这些新用途包括将背景更改为视频或图片,或创建具有分割图像的自拍。

参考文献

© . All rights reserved.