Android Motion Stills实现AR即时运动捕捉

简介: 为视频短片增加有趣的3D对象,通过Android Motion Stills就可以实现。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


为视频短片增加有趣的3D对象,通过Android Motion Stills就可以实现。近日,Google宣布对Motion Stills增加了AR功能。本文由LiveVideoStack摘译,点击『阅读原文』访问原文链接。


文 /  Jianing Wei和Tyler Mullen

译 / 鸿蒙

审校 / Ant


去年夏天,我们在Android平台上推出了Motion Stills,它可以在各种Android手机上提供出色的视频捕捉和观看体验。然后,我们进一步改进了Motion Stills技术,为Pixel 2增加了新的动态照片功能。


今天,我们很高兴地发布Android Motion Stills中的增强现实(AR)模式。在新推出的AR模式下,用户只需触摸取景器即可在静态或移动的水平表面(例如桌子,地板或手)上放置有趣的虚拟3D对象,从而与动态真实世界环境进行无缝交互。您还可以将剪辑录制下来并分享为GIF图或者视频形式。


640?wx_fmt=gif

Motion Stills的即时运动捕捉


AR模式由即时运动捕捉、6自由度跟踪系统来支撑。6自由度跟踪系统是基于能够驱动Motion iOS中的Motion Text和YouTube上的Privacy Blur这两项功能的相关技术的,这项技术可以精确跟踪静态和移动物体。我们对这项技术进行了改进和增强,以便能够在任何使用陀螺仪的Android设备上运行有趣的AR应用体验。


当您触摸取景器时,Motion Stills AR会将3D虚拟物体“粘”到该位置,使其看起来像是真实世界场景的一部分。假设跟踪的表面与地平面平行,并使用设备的加速度计传感器提供手机相对于地平面的初始方向,我们便可以跟踪摄像机的6个自由度(3个用于平移,3个用于旋转)。这使我们能够准确地变换和渲染场景中的虚拟物体。


640?wx_fmt=png

当手机大致稳定时,加速计传感器会提供由于地球重力而产生的加速度。对于水平面来说,重力矢量平行于跟踪平面的法线,并且可以精确地提供手机的初始定向。


即时运动捕捉


即时运动捕捉的核心思想是解耦摄像机的平移和旋转估计,将其视为独立的优化问题。首先,我们只根据相机的视觉信号确定3D相机的平移。为此,我们观察目标区域的明显2D平移和跨帧的相对缩放比例。一个简单的针孔照相机模型将图像平面中的框的平移和缩放与相机的最终3D平移相关联。


640?wx_fmt=png

可以使用图像平面中的框的平移和尺寸(相对缩放比例)的变化来确定两个相机位置C1和C2之间的3D平移。但是,由于我们的相机模型并不假定相机镜头的焦距,我们不知道被跟踪平面的真实距离/深度。


为了解决这个问题,我们在现有的跟踪器(Motion Text中使用的跟踪器)中添加了缩放比例估计,并在相机的视场之外追加了区域跟踪。当相机靠近被跟踪的表面时,虚拟内容精确地缩放,这与真实世界对象的感知一致。当您将镜头移出目标区域的视场之外并再返回时,虚拟物体将重新出现在大致相同的位置。


640?wx_fmt=gif

独立的平移(仅从红色框显示视觉信号)和旋转捕捉(从陀螺仪;但未显示)


我们使用手机的内置陀螺仪来获得设备的3D旋转(翻滚,俯仰和偏摆)。估算的3D平移与3D旋转相结合,使我们能够在取景器中正确渲染虚拟内容。而且,由于我们分别处理旋转和平移,所以我们的即时运动捕捉方法不需要校准,可以在任何带有陀螺仪的Android设备上工作。


640?wx_fmt=gif

Motion Still AR模式下的小鸡家庭


我们很高兴为Android的Motion Stills增加这种新的模式,我们也希望您能喜欢它。请下载Motion Stills的新版本,并继续在您最喜爱的社交媒体上发送#motionstills反馈意见。


致谢


在渲染方面,我们很感谢能够使用动画Poly模型来利用Google的Lullady引擎。感谢曾与我们合作过的团队成员,他们是:John Nack,Suril Shah,Igor Kibalchich,Siarhei Kazakou和Matthias Grundmann。


WebRTCon 2018 7折火热报名


WebRTCon希望与行业专家一同分享、探讨当下技术热点、行业最佳应用实践。如果你拥有音视频领域独当一面的能力,欢迎申请成为讲师,分享你的实践和洞察,请联系 speaker@livevideostack.com。


点击了解大会详情

640?wx_fmt=png

相关文章
|
7月前
|
设计模式 测试技术 vr&ar
提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除(三)
提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除
|
7月前
|
人工智能 机器人 区块链
提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除(二)
提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除
|
Android开发
flutter中实现仿Android端的onResume和onPause方法
flutter中实现仿Android端的onResume和onPause方法
|
7月前
|
缓存 Java vr&ar
提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除(一)
提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除
104 0
|
11月前
|
传感器 Java Linux
基于Android的运动记录APP设计与实现(论文+源码)_kaic
随着人们生活水平和生活质量的提高,人们越来越关注自己的身体健康。而跑步成为人们最受欢迎的运动方式,运动软件可以在人们锻炼身体的时候提供极大的帮助。本文针对运动轨迹和计步,设计一款基于Android 平台的运动软件。本系统通过使用百度鹰眼、重力传感器和数据库技术,实现了运动轨迹追踪、计步、查看运动记录等功能。本系统界面友好,操作简单,可以稳定运行。本款运动软件适合空闲时间不足的人群,方便人们随时锻炼身体,并查看自己的运动情况。
|
Android开发 容器
Android实现面包屑效果,支持Fragment联动
Android实现面包屑效果,支持Fragment联动
|
Android开发
Android实现连线题效果
Android实现连线题效果
|
Android开发
Android实现调用系统相机录像及实现录音
Android实现调用系统相机录像及实现录音
602 0
|
移动开发 JavaScript Android开发
通过howler.js实现在Android下的微信浏览器自动播放音频
通过howler.js实现在Android下的微信浏览器自动播放音频
420 0
通过howler.js实现在Android下的微信浏览器自动播放音频
|
存储 Dart Java
【Flutter】packages思维以及使用Java添加Android平台特定的实现在Flutter框架里的体现和运用
【Flutter】packages思维以及使用Java添加Android平台特定的实现在Flutter框架里的体现和运用