简介:作者|方XI()
什么是AR?这是一种现实增强技术(),可以对现实世界应用虚拟效果。添加AR技能后,商户应用程序可以帮助您在现实世界中添加一些材料。
在去年十一点的前夕,商人应用团队和欧莱雅集团进行了深入的合作。这两个团队根据阿里巴巴的统一迷你程序容器成功地在淘宝精上成功实施了化妆测试引擎。目前,YSL和两个AR化妆试用申请的两个顶级品牌已在相应的官方旗舰店启动。可以在本文末尾找到体验方法。
这是一家欧莱雅集团(L' )领导下的美容技术公司。这次推出的AR化妆试用申请是专门针对淘宝精环境量身定制的。它使用迷你程序容器提供的基础设施功能将其AR美容引擎“移动”到。
那么,商人应用程序 + AR如何支持化妆测试引擎的实现?以下文章将与您分享我们在技术合作过程中的一些经验。
链接概述
总体游戏链接就是这样。该品牌提供了整体应用程序设计和交互式游戏。化妆测试引擎根据商家应用程序提供的基本功能实施自己的化妆测试引擎,然后将其输出给商户应用程序服务提供商,然后将其装饰在相应的品牌商店中。
可以注意的是,该项目涉及多方协作,而Mini 提供了非常基本的功能。 AR引擎负责功能的高层组合及其自身算法功能的集成。商户应用服务提供商负责承担品牌的业务需求并生产商户应用程序。该品牌的商店装饰同学将商家应用程序装饰到相应的商店。
该品牌本身可以与AR引擎合作,以自定义自己的个性化需求,然后将这种个性化体验带给自己的商店用户。
技术架构
为了支持商人应用AR业务,我们在API和组件方式中提供了许多在建筑设计中的标准原子化功能。
通过功能的组装和调用,AR引擎可以快速验证其自己的算法和渲染功能。我们支持在MNN或.JS中运行推断AR引擎算法。我们为业务绘图提供标准接口和API。我们还支持摄像机数据的获取和相机帧的传输。此外,我们还为高级引擎呼叫提供了许多基本功能。
根据这些微型程序集装箱提供的基本功能,高级AR 服务提供商可以建立丰富的应用程序场景,包括但不限于虚拟化妆试验,虚拟可穿戴设备,虚拟家具,等等。
那么,化妆测试引擎如何在Mini程序容器中运行?让我们一起看看整个链接。
品牌化妆试用应用程序加载了化妆试验插件。该插件将调用容器的组件以打开相机并从中收听相机框架数据。该插件还将初始化一个组件以执行.js。化妆测试引擎具有两个面部模型,即轮廓检测模型和检测模型。前者在.js环境中运行,后者使用MNN插件来运行推断。 (将来所有这些都将迁移到MNN实现。同步将收集相机框架中环境光的强度,以调整美容算法。提取要绘制的区域位置的点矩阵,例如面部和嘴唇的位置,开始在组件上渲染和绘制所有像素。如果目前无法检测到面部,则将无法执行渲染逻辑。
整个试验过程链接中的大多数链接都在容器的环境中运行,并通过JS与容器进行交互。
商家应用程序 + AR的前提是AR引擎是动态的。与以前的 AR案相比,最大的变化是:
整个AR发动机都在迷你程序容器的环境中运行。它可以大量复制到不同品牌的情况下,而不依赖淘宝版本,并支持动态定制效果。商人应用 + AR支持访问各种行业发动机。 AR发动机层和业务层是分开的,并且通过架构的解耦来支持各种行业方案。容器的底层着重于垂直能力的构建,并且高级业务在迭代层面上迅速发展。
核心能力
我们提供了基于引擎的三个核心功能,即实时相机框架功能,深度学习推理的加速能力和渲染能力。三个核心功能的技术细节将在下面介绍。
实时相机框架功能
实时相机帧的输出是所有AR效果的开始。该小程序当前支持实时摄像头框架的输出,该镜头是开发人员接口层的类型二进制数据的输出。
实时相机框架功能在带有标准本机组件作为载体的小程序中使用,并使用相同的呈渲染方法嵌入在中,这可以实现混合本机组件和组件的效果。鉴于iOS/系统本地不提供用于提取相机帧的接口,并且添加的标准不适用于Mini 中,我们当前的方法是从系统摄像机回调中提取框架并在屏幕外FBO上绘制接口。这是一个自定义帧缓冲区。我们可以使用此帧缓冲区来实现包括YUV和RGB在内的颜色空间的转换加速度,然后从该FBO读取像素以获取位图数据。该语言将在数组的语法中处理二进制数据。我们通常使用对象。我们需要实现本地 - >链接。这里的大部分工作是由虚拟机(JSC/V8)进行的。但是,在某些不支持功能(例如iOS9)的虚拟机中,我们使用社区的开源解决方案①完成构建。当前使用1px*1px大小元素作为占位符的方法。用户看不到组件。我们将在将来支持创建屏幕外相机组件。目前,在低端机器上,迷你程序的实时帧速率输出可以达到30 fps,可以满足大多数情况的需求。
深度学习推理加速能力
使用迷你程序的深度学习推理加速功能,可以将许多算法功能集成到淘宝中。目前,我们支持两个推理引擎MNN和.JS。在淘宝网环境中,我们建议将MNN作为推理发动机加速度。在情况下的实际测量中,它的速度可能比.js快1倍以上。
MNN:
MNN是来自阿里巴巴的开源轻型深度学习端侧推理引擎。它主要解决了深神经网络模型在末端的推理操作的问题,涵盖了深神经网络模型的优化,转换和推断。它的前身是②。 MNN更多地关注推理的加速和优化,解决模型部署阶段的效率问题,以便更有效地实现移动方面模型背后的业务。 MNN 插件在环境中动态完成模型结构。 MNN本身被用作模型描述工具,并支持后端。它可以使用从描述文件生成的模型来加载代码。使用代码的这一部分,可以从引擎中解析模型数据。在MNN 插件中,MNN提供的表达式语句用于基于模型数据动态构建完整的模型图。之后,也可以通过直接调用表达式来完成推断。在迷你程序中,MNN目前支持20多个常用的操作,可以涵盖大多数推理方案。在JS的功能上方,MNN可以致电中的MNN SDK加快推理。 MNN的内存比.js低得多,并且推理速度通常是.js的几倍。
.js:
.JS是一个开源硬件加速库,用于培训和部署浏览器和Node.js环境中的机器学习模型。现在,.js还可以支持购物小程序中的推理模型。 Web开发人员还可以在环境中使用熟悉的开发人员进行机器学习。在中,.js是我们的组件,它在小程序中使用。 .JS可以使用GPU加速机器学习的操作。
渲染能力
携带渲染功能的组件是本机组件,也使用相同层渲染方法实现。组件的后端渲染是③。
组件可以用作画布来绘制像素或执行计算作为推理加速度。在小程序中,我们实现了1.0接口和标准API,以降低开发人员的使用成本。
为什么不使用它?在架构下,突变体是单独的,即运行的虚拟机和负责渲染的虚拟机对象不相同。当前,两者之间的通信是通过容器完成的。如果有高频和巨大的数据调用,则需要涉及的每种交互,并且需要它们之间,并且通信成本非常高。我们的解决方案是实现符合W3C的标准和接口,无缝支持各种渲染框架对接。
能力演变
在旗舰店2.0中,商人应用程序实现了商店开业的可能性,而AR为商户应用程序带来了新的技术营销方法。商人应用 + AR将继续发展并支持更多功能。我们还欢迎各种AR算法发动机和品牌找到我们合作并提供好的想法和想法。
将来,我们将继续对我们当前的基本功能进行更多优化工作,主要分为几个方面:
工程化:当前的AR引擎是使用语言构建的。使用技术,我们可以补充性能不佳的影响,并促进开发人员将港口成熟的C ++/C项目推向网络。
在许多需要高密集计算的情况下,例如游戏引擎,物理引擎,音频和视频处理,加密算法等,我们可以直接减少计算带来的性能开销。此外,在迷你程序方案中,可以大大减少迷你程序包的大小,并且可以减少用户加载时间。它在代码安全性方面也具有某些优势。问题在于函数在s之间的调用非常慢。在这种情况下,我们提到了行业中的某些实现,以维持S之间的交互并使用特定类型的通信接口。
图形性能优化:我们计划在当前场景中使用.0继续添加.0的标准接口,并计划切换到 /到基础图形功能,以帮助开发人员享受最新的ES 3.0功能,包括延迟渲染,音调映射,GPU粒子效应等。
通信优化:目前,组件的帧数据从每个帧发送到内部。巨大而频繁的沟通消耗了巨大的表现。消耗框架数据的对象通常是组件和MNN插件,这里有很多优化的空间。在这种情况下,我们重新设计了一个解决方案。我们使用纹理共享机制将相机收集的所有图像信息写入共享纹理中。共享纹理可以在侧面获得。开发人员在不感应特定图像内容的情况下调用组件的界面并将其绘制在画布上。
此外,在避免进行通信成本之后,我们可以继续优化GPU-> CPU-> GPU链接的性能。熟悉图形的学生知道,CPU和GPU之间的资源交换非常耗时。通常,从CPU到GPU复制/读取数据的操作非常昂贵,并且时间通常是在数十万毫秒至数百毫秒内的时间。我们可以使用共享组件和组件之间上下文的特征来最大程度地减少CPU和GPU之间的通信成本。
能力提供:我们计划将来提供更多基本功能,包括但不限于以下内容:
目标跟踪:虚拟内容已固定在图片上或位于空间中以实现目标跟踪功能;图片识别:确定平面图像的渲染内容;基于此,它可以识别商标,产品包装模式,活动海报,小册子和其他平面材料,并显示并与品牌数字内容进行交互;手势识别:识别手势的渲染内容;自定义手势,与用户互动,并更好地将品牌与消费者联系起来;姿势检测:检测人类姿势;基于此,可以实现许多强大的身体互动功能,适合离线相互作用;空间识别:识别真实的物理空间;基于此,它可以实现更身临其境的AR互动体验,例如AR红色信封。面部检测:检测面;基于此,它可以实现虚拟化妆试验,虚拟试验和其他经验;
简而言之,商人应用程序有许多可能向行业中所有品牌开放AR功能的可能性。
经验
现在,您可以通过访问YSL旗舰店或旗舰店主页的主页来体验两个化妆试用申请,或者通过密码或QR代码访问:
【化妆试验迷你计划】¥¥【 YSL化妆试验迷你计划】¥¥
相关链接:
1。大新闻| 的轻量化深度学习端侧推理引擎MNN开源3.5分钟,让您了解渲染引擎的演变
4.%F0%9F%8E%89/
还有一个
嘿,我们现在正在招募人们。行业领先的淘宝迷你计划团队现在致力于促进基础能力建设和Mini计划的创意互动项目。我们非常欢迎使用iOS // C ++ //渲染引擎 /JS引擎等技术堆栈的学生加入我们。
欢迎提交您的简历: