AR + 机器学习:用 MediaPipe 实现跨平台实时运动追踪

image

文 / 软件工程实习生 Vikram Sharma;资深软件工程师 Jianing Wei;高级软件工程师 Tyler Mullen

增强现实 (AR) 技术带来了有趣且引人入胜的沉浸式用户体验。而对大规模支持 AR 应用来说,无需初始化即可跨设备和平台执行 AR 追踪的能力十分重要。

今天,我们很高兴介绍 MediaPipe 中的 实时运动追踪 (Instant Motion Tracking Pipeline) 解决方案。此方案基于 MediaPipe Box Tracking 解决方案。通过使用“实时运动追踪”,您可以轻松将有趣的虚拟 2D 和 3D 内容放置于静态或动态的表面上,从而实现内容与现实世界的无缝交互。这项技术还为 MotionStills AR 提供支持。除了相关的库以外,我们还发布了一个开源 Android 应用,用以展示此解决方案的各项功能。在这个应用中,用户只需轻按相机取景器即可插入虚拟 3D 对象和 GIF 动画,实现对现实环境的增强。

robot_on_hand_2_watermark robot_on_romba_watermark

MediaPipe 中的实时运动追踪

实时运动追踪

使用实时运动追踪解决方案可将虚拟内容无缝放置在现实世界的静态或动态表面上。为实现这一效果,我们以旋转和平移矩阵的形式提供了具有相对比例的 6D 自由度追踪。随后在渲染系统中使用这类追踪信息,将虚拟内容叠加在摄像头视频流上,进而打造沉浸式 AR 体验。

实时运动跟踪背后的核心思路是将摄像头的平移与旋转预测分离开来,将二者视作两个独立的优化问题。通过使用这种方法,无需初始化或校准即可实现跨设备和平台的 AR 跟踪。为此,我们首先仅利用摄像头发出的视觉信号来寻找 3D 摄像头的平移(如:预测目标区域在帧之间的明显 2D 平移和相对比例)。这个过程可以用一个简单的针孔相机模型进行说明,模型会将图像平面中的对象平移和缩放与最终的 3D 平移相关联。

通过追踪区域从视图位置 V1 到 V2 的相对大小变化,我们可以预测出其与摄像头之间距离的相对变化

接着,我们会通过内置的 IMU(惯性测量单元)传感器获取设备的 3D 旋转数据。结合使用这些平移和旋转数据,我们可以按相对比例追踪具有 6D 自由度的目标区域。利用此类信息,我们无需进行校准即可将任意具有摄像头和 IMU 功能的系统上放置虚拟内容。如需了解更多实时运动追踪的详情,请参阅我们的 论文

支持实时运动追踪的 MediaPipe 流水线

下方所示为实时运动追踪流水线的示意图,包含四个主要组件:贴图管理器模块、区域追踪模块、矩阵管理器模块以及最后的渲染系统。每个组件都由 MediaPipe 计算器或子图表组成。

贴图管理器负责接收来自应用的贴图数据,并根据每个贴图对象的用户点击和用户手势控制生成初始锚点(追踪的区域信息)。系统随后会将初始锚点发送至区域追踪模块以生成追踪锚点。矩阵管理器将结合使用输入数据与设备的旋转矩阵,生成作为模型矩阵的 6D 自由度姿势。在集成由用户指定的任意变换(如缩放素材)后,这个流水线会将最终姿势转发至渲染系统,通过叠加渲染在摄像头取景框上的所有虚拟对象,进而生成输出 AR 帧。

使用实时运动追踪解决方案

通过 MediaPipe 跨平台框架,您可轻松使用实时运动追踪解决方案。以摄像头取景框、设备旋转矩阵和锚点位置(屏幕坐标)作为输入,MediaPipe 计算图可为每帧生成 AR 渲染效果,从而营造出沉浸式视觉体验。如果您希望在自己的系统或应用中集成这个实时运动追踪库,请访问我们的 文档,了解在具有 IMU 功能和摄像头传感器的设备上如何打造自己的 AR 体验。

用 3D 贴图和 GIF “增强”真实世界

实时运动追踪解决方案可将 3D 贴图和 GIF 动画效果成功融入 AR 体验中。我们通过现实世界中的平面 3D 广告牌上渲染 GIF,将动画内容融入真实世界,带来乐趣横生的沉浸式体验。您不妨亲自尝试一下!

squirrel_on_tree_watermark3|100%

3D 环境中的 GIF 插入演示

PixelShift.AI 是一家将前沿的视觉技术来融入视频内容创作的初创公司,他们已经在使用 MediaPipe 的实时运动追踪,在取景器中实现对虚拟角色的无缝追踪,进而打造出逼真的体验。借助实时运动追踪的高质量姿势预测,PixelShift.AI 正为 VTuber 提供技术支持,将网络技术融入其中以打造混合现实体验。他们将于今年晚些时候向更广泛的 VTuber 社区发布他们的产品。

pixel_shift_gif

实时运动追踪助力 PixelShift.AI 打造混合现实体验

关注 MediaPipe

我们期待带来更多 MediaPipe 流水线示例和功能相关的文章。请关注论坛里的 “MediaPipe” 标签。

致谢

特此感谢 Vikram Sharma、Jiangwei、Tyler Mullen、Chuo-Ling、Ming Guang Yong、Jiuqiang Tang、Siarhei Kazakou、Genzhi Ye、Camillo Lugaresi、Buck Bourdon 和 Matthias Grundman 为此次发布所做的贡献。

image

原文:Instant Motion Tracking with MediaPipe
中文:TensorFlow 公众号