0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

谷歌与欧洲研究机构CERN合作创建了一个增强现实应用程序

DPVg_AI_era 来源:lp 2019-03-10 09:31 次阅读

谷歌艺术与文化推出新作品,手机上体验宇宙大爆炸,并可以作为背景进行自拍。而谷歌博客解释了如何使用ARCore和机器学习,只用一个手机摄像头就可以实现给自拍加AR特效的工作原理

谷歌与欧洲研究机构CERN合作创建了一个增强现实应用程序,可以让用户通过手机体验宇宙大爆炸Big Bang,感受上帝创世纪时候的宏伟壮阔。

应用程序将带给你一场360度的奇幻旅程,从宇宙诞生开始,到第一颗恒星诞生,直到我们的太阳系,以及地球的出现。

更有意思的是,你还可以以大爆炸作为背景,进行自拍!可以说是超炫酷了。各大应用商店搜索Google Arts & Culture下载

如果你使用的是Android手机,你需要确认一下是否装了ARCore。

ARCore是谷歌推出的搭建增强现实(Augmented Reality,简称 AR)应用程序的软件平台,类似苹果的ARKit,它可以利用云软件和设备硬件的进步,将数字对象放到现实世界中。

用ARCore实现AR效果

增强现实,是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。

这种技术最早于1990年提出。随着随身电子产品运算能力的提升,增强现实的用途越来越广。比如下面这个动图,通过AR设备你可以看到实际并不存在的蓝色光圈。

AR已经被广泛应用于自拍、短视频、直播app中,可以实现一些好玩的效果。而其中最关键的挑战在于将虚拟内容适当地锚定到现实世界中。这个过程需要一套独特的感知技术,能够跟踪每个微笑,皱眉或傻笑背后的高动态表面几何。

所以今天我们就为大家介绍一下,开发者如何借助最新版本ARCore的全新Augmented Faces API,使机器学习(ML)来推断近似的3D表面几何形状,从而只需要一个摄像机输入,无需专用的深度传感器就可以实现给自拍添加动画特效,比如添加眼镜、3D帽子等物品。

3D网格及其实现的一些效果

这种方法提供了实时速度的AR效果,使用TensorFlow Lite进行移动CPU推理或其可用的新移动GPU功能。

此技术与YouTube Stories的新creator effect效果相同,并且通过最新的ARCore SDK版本和ML Kit Face Contour Detection API,可供更广泛的开发人员社区使用。

自拍AR的ML pipeline

我们的ML pipeline由两个一起工作的实时深度神经网络模型组成。一个探测器,在整个图像上运行,并计算面部位置;一个通用3D网格模型,在这些位置上运行并通过回归预测近似表面几何。

精确地裁剪面部可以大大减少对共同数据增强的需求,例如由旋转,平移和比例变化组成的仿射变换。

它允许网络将其大部分容量用于坐标预测准确度,这对于实现虚拟内容的正确锚定至关重要。

一旦需要的位置被裁剪,网格网络每次仅应用于单个帧,使用窗口平滑以便在面部静止时减少噪声,同时避免在快速移动时滞后。

3D网格

对于我们的3D网格,我们采用了传递学习并训练了一个具有多个目标的网络。

网络同时预测合成、渲染数据上的3D网格坐标,以及类似于MLKit提供的带注释的真实世界数据的2D语义轮廓。

由此产生的网络不仅在合成上,而且在现实世界数据上为我们提供了合理的3D网格预测,。

所有模型都接受来自地理上不同数据集的数据培训,随后在平衡,多样化的测试集上进行测试,以获得定性和定量性能。

3D网格网络接收裁剪的视频帧作为输入。它不依赖于额外的深度输入,因此它也可以应用于预先录制的视频。

该模型输出3D点的位置,以及在输入中存在并合理对齐的面部概率。一种常见的替代方法是预测每个地标的2D热图,但它不适合深度预测,并且对于这么多点具有高计算成本。

通过迭代引导和细化预测来进一步提高模型的准确性和鲁棒性。这样我们就可以将我们的数据集增长到越来越具有挑战性的案例,例如鬼脸,斜角和遮挡。

数据集增强技术还扩展了可用的地面实况数据,开发了模型对相机缺陷或极端光照条件等工件的弹性。

数据集扩展和改进pipeline

我们使用TensorFlow Lite进行设备上的神经网络推理。新推出的GPU后端加速可在可用的情况下提升性能,并显着降低功耗。

此外,为了涵盖广泛的消费类硬件,我们设计了各种具有不同性能和效率特性的模型架构。

较轻的网络最重要的区别是残余块布局和可接受的输入分辨率(最轻的模型中为128x128像素,而最复杂的模型中为256x256)。

我们还改变了层数和子采样率(输入分辨率随网络深度减小的速度)。

每帧的推理时间:CPU与GPU

这些优化的结果是使用较轻型号的显着加速,AR效果质量的降低最小。

比较最复杂(左)和最轻的模型(右)。

在轻型模型上,时间一致性以及唇部和眼睛跟踪略微降低

这些努力的最终结果是通过以下方式为用户体验在YouTube,ARCore和其他客户中提供令人信服的,逼真的自拍AR效果:

通过环境映射模拟光反射,实现眼镜的逼真渲染

通过将虚拟对象阴影投射到面网格上来实现自然光照

对面部遮挡建模以隐藏面部后面的虚拟对象部分,例如虚拟眼镜,如下图所示

YouTube Stories基于3D网格的逼真虚拟眼镜

此外,我们通过以下方式实现高度逼真的妆效:

建模在嘴唇和嘴唇上应用的镜面反射

通过使用亮度感知材料进行面部绘画

案例研究将不同光照条件下5个主题的真实化妆与AR妆容进行比较。

未来,谷歌计划将此技术扩展到更多谷歌产品中。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    5835

    浏览量

    103220
  • Ar
    Ar
    +关注

    关注

    24

    文章

    4963

    浏览量

    167325
  • 机器学习
    +关注

    关注

    66

    文章

    8094

    浏览量

    130513

原文标题:138亿年在手中!谷歌用手机体验宇宙大爆炸,还教你用机器学习实现AR自拍特效

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【从0开始创建AWTK应用程序】编译应用到RTOS平台

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上运行、将AWTK应用程序移植
    的头像 发表于 03-21 08:23 169次阅读
    【从0开始<b class='flag-5'>创建</b>AWTK<b class='flag-5'>应用程序</b>】编译应用到RTOS平台

    在ModustoolBox中创建了项目,出现了编译错误的原因?

    我在 ModustoolBox 中创建了项目,但是出现了编译错误,如图所示,你知道原因吗?
    发表于 01-23 08:13

    【从0开始创建AWTK应用程序】编译应用到嵌入式Linux平台运行

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上运行、将AWTK应用程序移植
    的头像 发表于 12-07 12:08 276次阅读
    【从0开始<b class='flag-5'>创建</b>AWTK<b class='flag-5'>应用程序</b>】编译应用到嵌入式Linux平台运行

    【从0开始创建AWTK应用程序创建应用程序并在模拟器运行

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上运行、将AWTK应用程序移植
    的头像 发表于 12-01 08:24 212次阅读
    【从0开始<b class='flag-5'>创建</b>AWTK<b class='flag-5'>应用程序</b>】<b class='flag-5'>创建</b><b class='flag-5'>应用程序</b>并在模拟器运行

    【从0开始创建AWTK应用程序】开发及调试环境搭建

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上运行、将AWTK应用程序移植
    的头像 发表于 11-11 10:00 282次阅读
    【从0开始<b class='flag-5'>创建</b>AWTK<b class='flag-5'>应用程序</b>】开发及调试环境搭建

    FreeRTOS队列创建任务间通信的基本应用程序

    FreeRTOS 样本代码是队列的基本应用程序。 它创建了任务, 在队列上进行交流。
    发表于 08-30 07:56

    用于创建闪存LED任务的FreeRTOS应用程序

    应用程序 : 本代码是 FreeRTOS 任务的基本应用程序, 用于创建闪存 LED 任务 。 BSP 版本: M480系列 BSP CMSIS V3.04.000 硬件
    发表于 08-30 07:55

    创建简单Hello World Linux应用程序的过程

    本教程将向您介绍创建简单的Hello World Linux应用程序的过程,然后将该应用程序加载到运行ARM嵌入式Linux的Corte
    发表于 08-28 06:32

    FreeRTOS队列创建任务间通信的基本应用程序

    FreeRTOS 样本代码是队列的基本应用程序。 它创建了任务, 在队列上进行交流。
    发表于 08-22 07:12

    FreeRTOS任务创建到闪存LED的基本应用程序

    应用程序 : 本代码是 FreeRTOS 任务的基本应用程序, 用于创建闪存 LED 任务 。 BSP 版本: M480系列 BSP CMSIS V3.04.000 硬件
    发表于 08-22 06:28

    增强现实是人机交互技术吗

    增强现实是人机交互技术吗 增强现实是一种涵盖多种应用程序和技术的科技,可以改变我们的感知和与现实
    的头像 发表于 08-12 15:27 627次阅读

    如何创建简单但完整的原生WoA WinUI3应用程序

    在本指南中,您可以学习如何创建简单但完整的原生WoA WinUI3应用程序。 微软最近发布了WinUI3.0,它运行在.NET 5.0上,运行在配备AArch64处理器(ARM6
    发表于 08-02 09:57

    Dynamsoft--如何在Glide应用程序中扫描条形码

    Glide是一款无代码应用程序构建器,可让您轻松创建应用程序。Dynamsoft是Glide的合作伙伴,基于其条码读取SDK为其提供条码扫描功能。
    的头像 发表于 07-19 15:24 490次阅读
    Dynamsoft--如何在Glide<b class='flag-5'>应用程序</b>中扫描条形码

    创建端到端零售愿景AI应用程序

    使用 NVIDIA DeepStream 和 NVIDIA TAO 工具包构建端到端零售分析应用程序
    的头像 发表于 07-05 16:30 252次阅读
    <b class='flag-5'>创建</b>端到端零售愿景AI<b class='flag-5'>应用程序</b>

    用Android手机应用程序来控制调频收音机的创建

    电子发烧友网站提供《用Android手机应用程序来控制调频收音机的创建.zip》资料免费下载
    发表于 06-12 09:36 4次下载
    用Android手机<b class='flag-5'>应用程序</b>来控制调频收音机的<b class='flag-5'>创建</b>