社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

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

谷歌开发者 • 4 年前 • 902 次点击  

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


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


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

  • 实时运动追踪
    https://solutions.mediapipe.dev/instant_motion_tracking

  • MediaPipe Box Tracking
    https://google.github.io/mediapipe/solutions/box_tracking.html

  • MotionStills AR
    https://ai.googleblog.com/2018/02/the-instant-motion-tracking-behind.html

MediaPipe 中的实时运动追踪



实时运动追踪

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


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

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


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

  • 论文
    https://arxiv.org/abs/1907.06796



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

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

实时运动追踪流水线示意图


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



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

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

  • 文档
    https://solutions.mediapipe.dev/instant_motion_tracking



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

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

3D 环境中的 GIF 插入演示


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

实时运动追踪助力 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 为此次发布所做的贡献。


更多 AI 相关阅读:



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/73578
 
902 次点击