CN116868187A - 用于促进具有第三方资产的增强现实体验的计算平台 - Google Patents
用于促进具有第三方资产的增强现实体验的计算平台 Download PDFInfo
- Publication number
- CN116868187A CN116868187A CN202280016010.7A CN202280016010A CN116868187A CN 116868187 A CN116868187 A CN 116868187A CN 202280016010 A CN202280016010 A CN 202280016010A CN 116868187 A CN116868187 A CN 116868187A
- Authority
- CN
- China
- Prior art keywords
- data
- augmented reality
- computing device
- rendering
- data asset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 145
- 238000009877 rendering Methods 0.000 claims abstract description 176
- 238000000034 method Methods 0.000 claims abstract description 115
- 230000000694 effects Effects 0.000 claims description 70
- 238000012545 processing Methods 0.000 claims description 24
- 238000012549 training Methods 0.000 claims description 20
- 239000002537 cosmetic Substances 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 11
- 238000012360 testing method Methods 0.000 claims description 11
- 239000003086 colorant Substances 0.000 claims description 6
- 230000008447 perception Effects 0.000 claims description 5
- 230000003416 augmentation Effects 0.000 claims 2
- 230000018109 developmental process Effects 0.000 description 70
- 238000010801 machine learning Methods 0.000 description 50
- 230000008569 process Effects 0.000 description 48
- 238000010586 diagram Methods 0.000 description 16
- 238000013528 artificial neural network Methods 0.000 description 12
- 230000015654 memory Effects 0.000 description 11
- 230000011218 segmentation Effects 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 7
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000003796 beauty Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000003973 paint Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000037406 food intake Effects 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/024—Multi-user, collaborative environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
用于数据资产获取和模糊的系统和方法可以有助于从第三方取回增强现实渲染数据资产。发送软件开发工具包和接收回数据资产可以确保数据资产与用户接口中的增强现实渲染体验兼容。具有模糊的数据获取系统还可以确保由第三方生成的代码被去除了语义并且降低了可读性。
Description
相关申请
本申请要求于2021年1月7日提交的美国非临时专利申请第17/144,002号的优先权和权益。通过引用将美国非临时专利申请号17/144,002全文并入于此。
技术领域
本公开总体上涉及数据资产的获取。更具体地,本公开涉及从第三方获取数据资产以向用户提供增强现实体验。
背景技术
增强现实(AR)可以指代真实世界环境的交互体验的创建和执行,其中驻留在真实世界中的对象被计算机生成的感知信息增强。作为一个示例,AR体验可以包括通过将虚拟对象插入到场景中和/或修改在场景中所包括的真实世界对象的外观来增强由用户的相机捕获的场景。
某些实体可以为用户提供参与AR体验的能力,该AR体验与该实体制造或分发的对象相关(例如,增强现实“试用”)。然而,大多数实体仅在其自己的网站上提供这些AR体验。增强现实产品“试用”的有限可访问性可能要求消费者必须从一个网站转到另一个网站,以参与针对不同的对象的不同的AR体验(例如,试用不同的产品并且比较产品)。这个问题可能导致消费者花费更多的计算资源在不同的网站之间导航以促进(facilitate)参与不同的AR会话。
此外,与原生应用中提供的增强现实体验相比,增强现实体验的基于网络的实现可能导致较低的帧速率和较不真实的渲染。
参与不同的增强现实体验的另一问题是,不同的AR应用可能以不同的编码语言来编码。某些编码语言可能导致安全问题,当应用处理用户脸部的图像或视频时,这可能特别地令人担忧。
发明内容
本公开的实施例的方面和优点将在以下描述中部分地阐述,或者可以从描述中习得,或者可以通过实践实施例而习得。
本公开的一个示例方面针对一种用于向客户端提供第三方数据资产的计算机实现的方法。该方法可以包括由计算设备发送软件开发工具包。软件开发工具包可以包括用于构建一个或多个渲染效果着色器(shader)的模板。该方法可以包括由计算设备接收数据资产。在一些实施方式中,数据资产可以包括使用软件开发工具包构建的一个或多个渲染效果着色器。该方法可以包括由计算设备存储数据资产,以及由计算设备提供增强现实渲染体验。在一些实施方式中,增强现实渲染可以至少部分地基于数据资产。
本公开的另一示例方面针对一种计算系统。该计算系统可以包括一个或多个处理器以及共同地存储指令的一个或多个非暂时性计算机可读介质,指令当由一个或多个处理器执行时使得计算系统执行操作。操作可以包括接收包括用于生成增强现实体验的模板的软件开发工具包。操作可以包括接收一个或多个输入来修改模板。在一些实施方式中,修改模板可以生成特定于产品的增强现实体验。在一些实施方式中,操作可以包括至少部分地基于一个或多个输入生成数据资产,以及将数据资产发送到第二计算设备。
本公开的另一示例方面针对一个或多个共同地存储指令的非暂时性计算机可读介质,指令当由一个或多个处理器执行时使得计算系统执行操作。操作可以包括由计算设备发送软件开发工具包。在一些实施方式中,软件开发工具包可以包括用于构建一个或多个渲染效果着色器的模板。操作可以包括由计算设备接收数据资产。数据资产可以包括使用软件开发工具包构建的一个或多个渲染效果着色器。操作可以包括由计算设备存储数据资产,以及由计算设备提供增强现实渲染体验。在一些实施方式中,增强现实渲染可以至少部分地基于数据资产。
本公开的其他方面针对各种系统、装置、非暂时性计算机可读介质、用户接口和电子设备。
参考以下描述和所附权利要求,将更好地理解本公开的各种实施例的这些和其他特征、方面和优点。并入本说明书并且构成其一部分的附图示出了本公开的示例实施例,以及与描述一起用于解释相关原理。
附图说明
参考附图在说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,其中:
图1A描绘了根据本公开的示例实施例的执行数据资产获取的示例计算系统的框图。
图1B描绘了根据本公开的示例实施例的执行数据资产获取和模糊(obfuscation)的示例计算系统的框图。
图1C描绘了根据本公开的示例实施例的执行数据资产获取和模糊的示例计算设备的框图。
图1D描绘了根据本公开的示例实施例的执行数据资产获取和模糊的示例计算设备的框图。
图2描绘了根据本公开的示例实施例的示例数据资产获取系统的框图。
图3描绘了根据本公开的示例实施例的示例模糊的框图。
图4描绘了根据本公开的示例实施例的示例数据资产获取系统的框图。
图5描绘了根据本公开的示例实施例的示例数据资产获取系统的框图。
图6描绘了根据本公开的示例实施例的执行数据资产获取的示例方法的流程图。
图7描绘了根据本公开的示例实施例的执行数据资产生成的示例方法的流程图。
图8描绘了根据本公开的示例实施例的执行数据资产获取和模糊的示例方法的流程图。
在多个附图中重复的附图标记旨在标识各种实施方式中的相同特征。
具体实施方式
概述
一般而言,本公开针对促进从第三方收集数据资产以向用户提供增强现实渲染体验的平台。例如,该平台可以为第三方提供接口来构建和/或提交要提供给用户的渲染效果。该平台可以向用户提供增强现实渲染体验,其中用户可以输入用户数据并且接收增强用户数据作为输出。另外,根据另一示例方面,该平台可以对接收到的第三方数据资产执行各种模糊技术以保护第三方代码。
因此,本公开的示例方面可以提供一种系统,用于获取用于增强现实渲染的第三方数据资产,并且模糊所获取的代码以保护第三方专有信息。在一些实施方式中,该系统和方法可以包括向第三方发送软件开发工具包。软件开发工具包可以包括用于构建渲染效果着色器的模板。作为一个示例,AR效果可以组织到共享模板和多个根据产品的预设中。模板可以包含特定系列(family)中所有产品(例如,来自特定供应商的所有口红)共有的着色器和其他资源。预设包含与这些着色器相对应的参数,该参数可以包括统一的值和纹理。第三方可以将数据资产提供回平台(例如,打包在SDK中)。作为示例,数据资产可以包括使用软件开发工具包构建的一个或多个渲染效果着色器。然后,可以存储接收到的数据资产。然后,数据资产可以用于促进增强现实渲染体验,其中,数据资产可帮助生成增强现实试用体验。
用于数据资产获取的系统和方法可以涉及一个或多个系统或设备。第一计算设备可以是服务器、促进(facilitating)计算设备或中间计算设备。第二计算设备可以是第三方计算设备。第三方可以是视频游戏公司、产品制造商或产品品牌。第一计算设备和第二计算设备可以交换数据来为用户生成增强现实渲染体验。增强现实渲染体验可以包括渲染包括一个或多个产品或物品的增强现实视图。产品可以是化妆品(例如,口红、眼影等)、家具或其他家居用品(例如,电子设备、炊具、玻璃器皿、装饰品、植物等)、服装、油漆颜色、汽车、各种电子产品或任何其他物品。
数据资产获取可以包括第一计算设备向第二计算设备发送软件开发工具包。软件开发工具包可以包括用于构建渲染效果着色器的模板。软件开发工具包可以包括示例效果、构建渲染效果的工具以及帮助构建增强现实渲染的预览模式。第二计算设备可以用于构建渲染效果,并且一旦构建了渲染效果,第二计算设备可以将构建的渲染效果数据导出到可渲染的压缩文件(例如,ZIP文件)中,该压缩文件可以包括重新创建渲染效果所需要的数据资产。然后,数据资产可以被发送到第一计算设备。第一计算设备在接收到数据资产时,可以存储数据资产以供在提供给用户的增强现实渲染体验中使用。所提供的增强现实渲染体验可以被提供给用户,其中用户可以输入其用户数据以供处理,并且输出可以是包括在第二计算设备上构建的渲染效果的增强用户数据。用户数据可以是由用户设备捕获的图像数据或视频数据。在一些实施方式中,用户数据可以是实时相机馈送。
在一些实施方式中,一个或多个渲染效果着色器可以包括描述渲染特征的数据。一个或多个渲染效果着色器可以用于渲染增强现实体验的渲染效果。例如,采用增强现实在脸部上渲染口红可以包括利用口红着色器、纹理、统一(uniform)和过滤着色器。在一些实施方式中,纹理和统一可以被输入到着色器中以帮助生成渲染效果。在一些实施方式中,数据资产可以包括渲染效果着色器。在一些实施方式中,渲染效果着色器可以由渲染计算器与用户数据一起处理,以生成渲染图像。
一些实施方式中,接收到的数据资产可以用于促进增强现实渲染的生成。网格模型可以能够处理输入数据以生成网格和分割掩模(mask)。然后,增强模型可以接收网格和分割掩模,并且可以使用数据资产来确定在哪里以及如何渲染特定的渲染。例如,数据资产可以包括锚定地标数据。因此,可以使用数据资产来确定需要在哪里发生渲染。在一些实施方式中,数据资产可以包括着色器数据。着色器数据可以描述口红颜色或眼影颜色,以帮助为用户生成化妆增强现实渲染。此外,着色器数据可以描述产品的颜色、光泽度、不透明度和/或各种其他特性。
增强现实渲染体验可以包括渲染计算器,其至少部分地基于数据资产来生成渲染。在一些实施方式中,增强现实渲染体验可以包括渲染引擎,并且渲染引擎可以包括渲染计算器。
增强现实渲染体验可以包括感知子图和渲染子图。感知子图在整个系统中可以是一致的。感知子图可以与各种不同的渲染子图一起使用。渲染子图可以由第三方构建以生成渲染效果来提供给用户。可以构建渲染子图,然后由存储感知子图的增强现实渲染体验平台来使用。渲染子图可能依赖于渲染效果和第三方而变化。在一些实施方式中,单个感知子图可以与多个渲染子图一起使用,以在增强的用户图像或视频中渲染多个渲染。例如,可以处理用户脸部的图片或视频,以生成脸部的口红、眼影和睫毛膏的增强现实渲染。该处理可以包括单个感知子图,但是包括针对每个相应产品(即,口红、眼影和睫毛膏)的渲染子图。
在一些实施方式中,数据资产可以包括描述由第三方销售的产品的产品数据。在一些实施方式中,本文公开的系统和方法可以用于为零售商编译(compile)产品增强现实渲染体验,以允许消费者虚拟试用来自各种不同品牌或提供商的不同产品。零售商可以是在线零售商,其中消费者可以在自己家中舒适地虚拟试用产品。在一些实施方式中,零售商可以是实体商店零售商,其中可以通过商店内发现的移动应用或计算设备来实现增强现实体验。在一些实施方式中,本文公开的系统和方法可以在搜索引擎应用内实现增强现实渲染体验,其中消费者可以搜索产品的品牌、产品的类型、产品的颜色等;并且搜索引擎可以基于搜索查询提供结果,其中结果包括使用增强现实来试用确定的结果的选项。
在一些实施方式中,接收到的数据资产可以允许生成各种增强现实体验。例如,数据资产可以包括由家具或其他家居用品的制造商、分销商、销售商等生成的、以帮助在室内渲染其产品中的一个或多个的数据资产。在该实施方式中,第三方可以修改和微调软件开发工具包,以能够生成家具或其他家居用品增强现实体验。当第三方对生成的体验满意时,他们可以将数据资产导出并且发送到促进系统/平台以存储。然后,促进系统可以使用数据资产来实现用户可访问的增强现实渲染体验。
可以通过下述来生成增强现实渲染:接收用户数据、采用编码器模型处理用户数据以生成用户网格、以及采用增强模型处理用户网格以生成增强现实渲染。在一些实施方式中,网格可以是多边形网格。在一些实施方式中,增强模型可以包括至少部分地基于数据资产的着色器。在一些实施方式中,增强模型可以通过使用定制着色器来渲染多边形网格、叠加在相机馈送图像上,来生成增强现实渲染。
在一些实施方式中,系统和方法可以包括第三方计算设备获取(intake)并且修改软件开发工具包。该方法可以包括接收被配置为被修改以生成增强现实体验的软件开发工具包。此外,该方法可以包括接收一个或多个输入以修改软件开发工具包,其中修改软件开发工具包生成特定于产品的增强现实体验。该方法可以包括至少部分地基于一个或多个输入来生成数据资产,并且将数据资产发送给第二计算设备。
在一些实施方式中,第三方计算设备可以测试增强现实体验以进行微调。测试增强现实体验可以包括比较渲染图像和预渲染参考(“黄金”)图像。替选地,在一些实施方式中,测试可以包括:获得训练数据,采用增强现实体验处理训练数据以生成增强现实媒体,以及比较增强现实媒体和参考数据。可以至少部分基于该比较(例如,基于比较增强现实媒体和参考数据的损失函数)来(例如,自动地使用机器学习算法)调整数据资产的一个或多个参数。
在一些实施方式中,系统和方法可以处理接收到的数据资产以模糊代码。模糊可以包括从代码中移除空格(whitespace),从代码中移除一个或多个注释,以及重命名代码中的术语和符号。可以移除一个或多个注释,因为一个或多个注释可能包括描述代码语义的文本。重命名数据资产代码中的一个或多个术语可以包括跨文件的统一重命名。统一重命名处理可以包括对术语进行索引,以便为将来的重命名统一性提供参考。在一些实施方式中,重命名可以包括使用哈希函数。可以在全局注册表或索引表中对哈希进行索引。新符号可以在接收时被主动地添加到索引中。重命名的术语和符号可以是确定性术语。在一些实施方式中,系统可以重命名在多个文件之间共享的符号,例如函数名。
重命名可以包括解析着色器代码并且隔离特定的声明以进行替换。去除空格可以移除代码的组织,以移除以特定方式在格式化的代码中所包括的一些逻辑。模糊可以包括移除语义内容,该语义内容可以包括第三方不想公开的着色器信息(例如,在OpenGL代码、GLSL或其他原生源中发现的专有信息)。
在一些实施方式中,该平台可以用于生成产品渲染的目录(directory)。可以实现增强现实渲染的目录来为广告、视频网络应用或移动应用提供渲染。在一些实施方式中,共享代码可以作为库依赖项而被集成到目录中。
接收或摄取数据资产可以通过多种方法进行。在一些实施方式中,摄取可以通过平台中的内置导出功能而发生。在其他实施方式中,数据资产可以通过电子邮件发送单个效果模板来传递,该效果模板由在单个顶级文件中定义的着色器统一来参数化。例如,对于口红渲染,第三方可以发送他们想要提供给用户的每个口红产品的着色器统一值。系统和方法可以组合效果模板和根据产品的着色器统一,产生每产品的AR效果(例如,美颜效果)。在一些实施方式中,可以通过基于互联网的数据馈送而不是电子邮件来摄取数据资产。可以单独地或整体地接收数据资产。
在一些实施方式中,软件开发工具包可以被配置用于不同的产品类型。例如,与构建用于渲染沙发的数据资产的软件开发工具包相比,构建用于渲染口红的数据资产的软件开发工具包可以包括不同的模板和预置。此外,将美颜效果组织成共享的“模板”和多个根据产品的预设可以帮助第三方构建用于渲染某些产品的数据资产。模板可以包含特定系列中所有产品(例如,来自供应商A的所有口红)共有的着色器和其他资源。预设可以包含与这些着色器相对应的参数,该参数可以包括统一的值和纹理。
在一些实施方式中,本文公开的系统和方法可以被实现为原生应用。原生应用可以向客户端提供包括供客户端选择的第三方产品渲染的增强现实渲染体验。
本文公开的系统和方法也可以适用于其他技术,包括混合现实。在一些实施方式中,第三方可以使用软件开发工具包来构建交互式渲染。例如,家具品牌可以为其各种躺椅和各种可扩展桌子构建各种渲染效果。渲染效果着色器可以被转移到增强现实渲染体验平台,以提供混合现实渲染体验,其中用户可以将家具渲染在他们的家中。然后,用户可以与渲染图进行交互,以查看家具在默认位置和替选位置的渲染。因此,用户可以测试躺椅在直立位置和倾斜位置如何适合他们的家。用户可以使用混合现实体验来确定扩展的桌子是否适合给定的房间。
此外,数据资产获取和模糊的平台可以应用于各种其他平台,用于生成支持的用户体验。数据获取平台可以用于支持的应用程序创建、嵌入式特征创建和小组件创建。
此外,在一些实施方式中,系统和方法可以用作视觉兼容性计算器。例如,系统和方法可以用于确保特定产品或零件将适合期望的空间或位置。系统和方法可以用于使用虚拟现实来虚拟地测试产品的测量/尺寸。第三方可以提供包括描述产品测量的数据的数据资产。然后,数据资产可以用于向用户提供增强现实渲染体验,其中根据第三方提供的测量来渲染产品。该方面可以允许消费者“试用”产品,以可视化产品可能占据的空间。
本公开的系统和方法提供了许多技术效果和益处。作为一个示例,该系统和方法可以从第三方接收用于增强现实的参数,以允许客户端虚拟地看到应用中的产品。该系统和方法还可以用于确保从第三方提供的数据的安全性。此外,该系统和方法可以能够集中收集来自各个供应商的虚拟试用的增强现实数据集合,以允许用户试用来自多个供应商的产品,而不必从一个网站导航到另一网站或者从一个专有应用导航到另一专有应用。
此外,在一些实施方式中,所公开的系统和方法可以被实施到原生应用中。与网络应用替选相比,该系统和方法在原生应用中的实现可以提供更高的帧率和更真实的渲染。
本公开的系统和方法的另一技术益处是模糊代码(例如,着色器代码)的能力。该系统和方法可以使代码变成没有注释或符号的群集,这些注释或符号泄露了在原始地提供的源代码中发现的专有信息。由于该系统和方法也可以模糊接收的数据资产,所以第三方可以提供其数据而不泄露某些专有信息。
现在参考附图,将更加详细地讨论本公开的示例实施例。
示例设备和系统
图1A描绘了根据本公开的示例实施例执行数据资产获取的示例计算系统80的框图。系统80包括客户端计算系统20、增强现实平台30和第三方计算系统。
如图1A所示,增强现实平台30可以与第三方计算系统60通信,以生成第三方增强现实(AR)资产库40。第三方AR资产库40可以被利用来经由客户端接口32向客户端计算系统20提供增强现实(AR)体验。
例如,增强现实平台30可以向第三方计算系统60提供具有模板的软件开发工具包(SDK)。第三方计算系统60可以使用具有模板的SDK来构建描述第三方销售的产品的增强现实渲染效果。完成的渲染效果可以作为完成的数据资产被提供回增强现实平台30。每个完成的数据资产可以存储在增强现实平台30的第三方AR资产库40中。第三方AR资产库40中存储的产品资产可以来自单个第三方或者来自过多(plethora)的第三方。例如,产品1资产42、产品2资产44、直到产品N资产46可以来自单个第三方计算系统,并且可以包括由第三方提供的各种产品。替选地,产品1资产42和产品2资产44可以由不同的第三方提供,并且可以包括描述来自不同品牌的不同产品的数据资产。
增强现实平台30可以经由客户端接口32获取客户端数据,以由渲染引擎34处理,从而向客户端计算系统20提供AR体验。渲染引擎34可以采用感知模型和增强模型来处理客户端数据。感知模型可以输出可以被输入到增强模型中的一个或多个网格和一个或多个分割掩模。增强模型可以处理客户端数据、一个或多个网格以及一个或多个分割掩模,以输出增强现实客户端图像或视频,该图像或视频可以经由客户端接口32发送到客户端计算系统20。
在一些实施方式中,AR体验可以包括客户端计算系统20向增强现实平台30发送选择以指示期望“试用”的产品。增强现实平台可以使用来自第三方AR资产库40的存储的数据资产,以通过使用数据资产参数化渲染引擎34的增强模型,来在客户端提供的图像或视频中渲染产品。例如,客户计算系统20可以使用客户端接口32来选择产品1进行虚拟试用。产品1资产42可以与一组客户端数据一起被提供给渲染引擎34。渲染引擎34可以处理该一组客户端数据和产品1资产42,以在由客户端计算系统20提供的图像或视频中生成产品1的图像或视频。
图1B描绘了根据本公开的示例实施例执行数据资产获取和模糊的示例计算系统100的框图。系统100包括通过网络180通信耦合的用户计算设备102、服务器计算系统130和训练计算系统150。
用户计算设备102可以是任何类型的计算设备,诸如,例如个人计算设备(例如,膝上型或桌面型)、移动计算设备(例如,智能电话或平板型设备)、游戏控制台或控制器、可穿戴计算设备、嵌入式计算设备或任何其他类型的计算设备。
用户计算设备102包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等)并且可以是可操作地连接的一个处理器或多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪速存储器设备、磁盘等、及其组合。存储器114可以存储由处理器112执行以使用户计算设备102执行操作的数据116和指令118。
在一些实施方式中,用户计算设备102可以存储或包括一个或多个增强现实渲染模型120。例如,增强现实渲染模型120可以是或者可以以其他方式包括各种机器学习模型,诸如神经网络(例如,深度神经网络)或其他类型的机器学习模型,包括非线性模型和/或线性模型。神经网络可以包括前馈神经网络、递归神经网络(例如,长短期记忆递归神经网络)、卷积神经网络或其他形式的神经网络。参考图2和图4来讨论示例增强现实渲染模型120。
在一些实施方式中,一个或多个增强现实渲染模型120可以包括数据资产:其通过网络180从训练计算系统150接收,被存储在用户计算设备存储器114中,以及然后由一个或多个处理器112使用或以其他方式实现。在一些实施方式中,用户计算设备102可以实现单个增强现实渲染模型120的多个并行实例(例如,执行效果的并行渲染)。
更具体地,服务器计算系统130和训练计算系统150可以交换数据以生成数据资产,该数据资产可以使增强现实渲染模型能够处理图像或视频数据并且输出增强图像数据或增强视频数据。
额外地或替选地,一个或多个增强现实渲染模型140可以被包括在服务器计算系统130中或由服务器计算系统130以其他方式存储和实现,该服务器计算系统130根据客户端-服务器关系与用户计算设备102通信。例如,增强现实渲染模型140可以由服务器计算系统140实现为网络服务的一部分(例如,针对化妆品、服装、电子产品、汽车或家具或其他家居用品的“实时试用”服务)。因此,一个或多个模型120可以在用户计算设备102处存储和实现,和/或一个或多个模型140可以在服务器计算系统130处存储和实现。
用户计算设备102还可以包括接收用户输入的一个或多个用户输入组件122。例如,用户输入组件122可以是对用户输入对象(例如,手指或触笔)的触摸敏感的触敏组件(例如,触敏显示屏或触摸板)。触敏组件可以用来实现虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘或用户可以用来提供用户输入的其他装置。
服务器计算系统130包括一个或多个处理器132和存储器134。一个或多个处理器132可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是可操作地连接的一个处理器或多个处理器。存储器134可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪速存储器设备、磁盘等、及其组合。存储器134可以存储由处理器132执行以使服务器计算系统130执行操作的数据136和指令138。
在一些实现方式中,服务器计算系统130包括一个或多个服务器计算设备或者由一个或多个服务器计算设备以其他方式实现。在服务器计算系统130包括多个服务器计算设备的情况下,这样的服务器计算设备可以根据顺序计算架构、并行计算架构或其某种组合来操作。
如上所述,服务器计算系统130可以存储或以其他方式包括一个或多个机器学习的增强现实渲染模型140。例如,模型140可以是或者可以以其他方式包括各种机器学习模型。示例机器学习模型包括神经网络或其他多层非线性模型。示例神经网络包括前馈神经网络、深度神经网络、递归神经网络和卷积神经网络。参考图2和图4讨论示例模型140。
用户计算设备102和/或服务器计算系统130可以经由与通过网络180通信耦合的训练计算系统150的交互来训练模型120和/或140。训练计算系统150可以与服务器计算系统130分离,或者可以是服务器计算系统130的一部分。
训练计算系统150包括一个或多个处理器152和存储器154。一个或多个处理器152可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是可操作地连接的一个处理器或多个处理器。存储器154可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪速存储器设备、磁盘等、及其组合。存储器154可以存储由处理器152执行以使训练计算系统150执行操作的数据156和指令158。在一些实施方式中,训练计算系统150包括一个或多个服务器计算设备或由一个或多个服务器计算设备以其他方式实施。
训练计算系统150可以包括模型训练器160,其使用各种训练或学习技术(诸如,例如误差反向传播)来训练存储在用户计算设备102和/或服务器计算系统130处的机器学习模型120和/或140。例如,损失函数可以通过模型反向传播,以更新模型的一个或多个参数(例如,基于损失函数的梯度)。可以使用各种损失函数,诸如均方误差、似然损失、交叉熵损失、铰链损失和/或各种其他损失函数。梯度下降技术可以用于在多次训练迭代中迭代地更新参数。
在一些实施方式中,执行误差的反向传播可以包括随时间执行截短的反向传播。模型训练器160可以执行多种泛化技术(例如,权重衰减、丢弃(dropout)等)来提高被训练模型的泛化能力。
特别地,模型训练器160可以基于一组训练数据162来训练增强现实渲染模型120和/或140。训练数据162可以包括例如由第三方采用软件开发工具包构建的着色器,其中第三方从促进计算设备或服务器计算系统130接收软件开发工具包。通过采用软件开发工具包构建和测试增强现实体验,第三方可能已经生成了着色器和数据资产。
在一些实施方式中,如果用户已经提供了同意,则训练示例可以由用户计算设备102提供。因此,在这样的实施方式中,提供给用户计算设备102的模型120可以由训练计算系统150在从用户计算设备102接收的用户专用数据上训练。在某些情况下,这个处理可以被称为对模型进行个性化。
模型训练器160包括用于提供期望的功能的计算机逻辑。模型训练器160可以实现为控制通用处理器的硬件、固件和/或软件。例如,在一些实施方式中,模型训练器160包括在存储设备上存储的、加载到存储器中并且由一个或多个处理器执行的程序文件。在其他实施方式中,模型训练器160包括一组或多组计算机可执行指令,这些指令存储在有形的计算机可读存储介质中,诸如RAM硬盘或者光学或磁介质。
网络180可以是任何类型的通信网络,诸如局域网(例如,内联网)、广域网(例如,互联网)或其一些组合,并且可以包括任何数量的有线或无线链路。一般而言,网络180上的通信可以使用各种通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如,HTML、XML)和/或保护方案(例如,VPN、安全HTTP、SSL),经由任何类型的有线和/或无线连接来承载。
本说明书中描述的机器学习模型可以用于各种任务、应用和/或用例中。
在一些实施方式中,本公开的机器学习模型的输入可以是图像数据。机器学习模型可以处理图像数据以生成输出。作为示例,机器学习模型可以处理图像数据以生成图像识别输出(例如,图像数据的识别、图像数据的潜在嵌入、图像数据的编码表示、图像数据的哈希等)。作为另一示例,机器学习模型可以处理图像数据以生成图像分割输出。作为另一示例,机器学习模型可以处理图像数据以生成图像分类输出。作为另一示例,机器学习模型可以处理图像数据以生成图像数据修改输出(例如,图像数据的变更等)。作为另一示例,机器学习模型可以处理图像数据以生成编码的图像数据输出(例如,图像数据的编码和/或压缩表示等)。作为另一示例,机器学习模型可以处理图像数据以生成提升的(upscaled)图像数据输出。作为另一示例,机器学习模型可以处理图像数据以生成预测输出。
在一些实施方式中,本公开的机器学习模型的输入可以是文本或自然语言数据。机器学习模型可以处理文本或自然语言数据以生成输出。作为示例,机器学习模型可以处理自然语言数据以生成语言编码输出。作为另一示例,机器学习模型可以处理文本或自然语言数据以生成潜在文本嵌入输出。作为另一示例,机器学习模型可以处理文本或自然语言数据以生成翻译输出。作为另一示例,机器学习模型可以处理文本或自然语言数据以生成分类输出。作为另一示例,机器学习模型可以处理文本或自然语言数据以生成文本分割输出。作为另一示例,机器学习模型可以处理文本或自然语言数据以生成语义意图输出。作为另一示例,机器学习模型可以处理文本或自然语言数据以生成提升的文本或自然语言输出(例如,比输入文本或自然语言质量更高的文本或自然语言数据等)。作为另一示例,机器学习模型可以处理文本或自然语言数据以生成预测输出。
在一些实施方式中,本公开的机器学习模型的输入可以是潜在编码数据(例如,输入的潜在空间表示等)。机器学习模型可以处理潜在编码数据以生成输出。作为示例,机器学习模型可以处理潜在编码数据以生成识别输出。作为另一示例,机器学习模型可以处理潜在编码数据以生成重建输出。作为另一示例,机器学习模型可以处理潜在编码数据以生成搜索输出。作为另一示例,机器学习模型可以处理潜在编码数据以生成重新聚类输出。作为另一示例,机器学习模型可以处理潜在编码数据以生成预测输出。
在一些实施方式中,本公开的机器学习模型的输入可以是传感器数据。机器学习模型可以处理传感器数据以生成输出。作为示例,机器学习模型可以处理传感器数据以生成识别输出。作为另一示例,机器学习模型可以处理传感器数据以生成预测输出。作为另一示例,机器学习模型可以处理传感器数据以生成分类输出。作为另一示例,机器学习模型可以处理传感器数据以生成分类输出。作为另一示例,机器学习模型可以处理传感器数据以生成分割输出。作为另一示例,机器学习模型可以处理传感器数据以生成可视化输出。作为另一示例,机器学习模型可以处理传感器数据以生成诊断输出。作为另一示例,机器学习模型可以处理传感器数据以生成检测输出。
在一些情况下,机器学习模型可以被配置为执行包括对输入数据进行编码以进行可靠和/或高效的传输或存储(和/或相对应的解码)的任务。在另一示例中,输入包括视觉数据(例如,一个或多个图像或视频),输出包括压缩的视觉数据,并且任务是视觉数据压缩任务。在另一示例中,该任务可以包括为输入数据(例如,视觉数据)生成嵌入。
在一些情况下,输入包括视觉数据,并且任务是计算机视觉任务。在一些情况下,输入包括一个或多个图像的像素数据,并且任务是图像处理任务。例如,图像处理任务可以是图像分类,其中输出是一组分数,每个分数对应于不同的对象分类,并且表示一个或多个图像描绘属于该对象分类的对象的可能性。图像处理任务可以是对象检测,其中图像处理输出标识一个或多个图像中的一个或多个区域,并且对于每个区域,标识该区域描绘感兴趣对象的可能性。作为另一示例,图像处理任务可以是图像分割,其中图像处理输出针对一个或多个图像中的每个像素定义预定的类别集合中每个类别的相应的可能性。例如,类别集合可以是前景和背景。作为另一示例,类别集合可以是对象分类。作为另一示例,图像处理任务可以是深度估计,其中图像处理输出针对一个或多个图像中的每个像素定义相应的深度值。作为另一示例,图像处理任务可以是运动估计,其中网络输入包括多个图像,并且图像处理输出针对输入图像中的一个的每个像素定义在网络输入中的图像之间的像素处描绘的场景的运动。
图1B示出了可以用于实现本公开的一个示例计算系统。也可以使用其他计算系统。例如,在一些实施方式中,用户计算设备102可以包括模型训练器160和训练数据集合162。在这样的实施方式中,模型120可以在用户计算设备102处本地训练和使用。在这样的实施方式的一些中,用户计算设备102可以实现模型训练器160来基于用户特定的数据个性化模型120。
图1C描绘了根据本公开的示例实施例执行的示例计算设备10的框图。计算设备10可以是用户计算设备或服务器计算设备。
计算设备10包括多个应用(例如,应用1至N)。每个应用都包含其自己的机器学习库和机器学习模型。例如,每个应用可以包括机器学习模型。示例应用包括文本消息应用、电子邮件应用、听写应用、虚拟键盘应用、浏览器应用等。
如图1C所示,每个应用可以与计算设备的多个其他组件通信,诸如,例如一个或多个传感器、上下文管理器、设备状态组件和/或附加组件。在一些实施方式中,每个应用可以使用API(例如,公共API)与每个设备组件通信。在一些实施方式中,每个应用使用的API是特定于该应用的。
图1D描绘了根据本公开的示例实施例执行的示例计算设备50的框图。计算设备50可以是用户计算设备或服务器计算设备。
计算设备50包括多个应用(例如,应用1至N)。每个应用都与中央智能层通信。示例应用包括文本消息应用、电子邮件应用、听写应用、虚拟键盘应用、浏览器应用等。在一些实施方式中,每个应用可以使用API(例如,跨所有应用的公共API)与中央智能层(以及存储在其中的模型)通信。
中央智能层包括多个机器学习模型。例如,如图1D所示,可以针对每个应用提供并且由中央智能层管理相应的机器学习模型(例如,模型)。在其他实施方式中,两个或更多应用可以共享单个机器学习模型。例如,在一些实施方式中,中央智能层可以针对所有应用提供单个模型(例如,单个模型)。在一些实施方式中,中央智能层被包括在计算设备50的操作系统中,或者由计算设备50的操作系统以其他方式实现。
中央智能层可以与中央设备数据层通信。中央设备数据层可以是用于计算设备50的集中式数据仓库。如图1D所示,中央设备数据层可以与计算设备的多个其他组件通信,诸如例如一个或多个传感器、上下文管理器、设备状态组件和/或附加组件。在一些实施方式中,中央设备数据层可以使用API(例如,私有API)与每个设备组件通信。
示例模型布置
在一些实施方式中,该系统和方法可以用作渲染管线(pipeline)。管线可以包括软件开发工具包(SDK),其可以包括构建可渲染的压缩文件(例如,ZIP文件)所需要的所有工具。在一些实施方式中,具有压缩文件(例如,ZIP文件)的软件开发工具包可以采用各种平台上的查看器来测试。采用软件开发工具包构建时生成的源资产可以用于增强静态图像或视频。
软件开发工具包可以发送给第三方。第三方可以构建和预览面向内部的渲染管道。管线可用于各种用途,包括但不限于采用计算机或移动设备的美颜产品试用。
软件开发工具包可以包括具有相关联的二进制文件(binary)的脚本、预览工具集合、文档和示例效果集合。脚本和相关联的二进制文件可以用于将产品效果源编译成可渲染的压缩文件。预览工具集合可以用于可视化渲染结果。此外,预览工具可以提供用于编辑和预览的联合界面,或者两者之间的快速界面切换。文档可以包括原始的HTML或其他形式的文档,以供查看来帮助构建处理。示例效果集合可以帮助第三方理解软件开发工具包,而同时提供基线。
软件开发工具包可以设计成自给自足、易于移植、能够在库存硬件上运行、快速并且安全。软件开发工具包可以被设计成无依赖性地运行,以允许第三方或其他创建者使用软件开发工具包来构建渲染,而不必依赖于其他应用。后端可以反映与消费者交互的系统所使用的后端。此外,易于移植可以允许第三方使用他们现有的着色器,只需很少或不需要修改。此外,软件开发工具包可以被设计成在各种操作系统上运行,而不需要在软件开发工具包之外安装软件。在一些实施方式中,软件开发工具包可以包括允许打开渲染图和GPU着色器进行定制的特征。该接口可以消除将第三方GPU代码实现到与消费者接口的系统中的需要,这可以维护用户的安全性。软件开发工具包可以使用渲染计算器将传入数据转换为传出数据。
面向内部的增强现实效果生成可以涉及两个组件。第一组件可以涉及感知。感知组件可以计算并且输出图像中的地标(例如,脸部上的嘴唇)的像素坐标。第二组件可以涉及渲染组件。渲染组件可以包括在原始接收的帧上渲染增强现实效果,其中计算出的地标促进定位。然后可以输出结果。
用于增强现实渲染的图可以划分为第三方子图和促进方(facilitator)子图。促进方子图可以是感知子图,而第三方子图可以是可由第三方和促进方编辑的渲染子图。该分离可以允许促进方在不影响渲染子图的情况下修改感知子图。此外,即使正在渲染多个增强现实效果,该分离也可以允许使用单个感知子图。因此,多个渲染子图可以被分层在单个感知子图上,以采用单个感知模型处理的计算来产生多个渲染。
感知子图和渲染子图的聚合可以产生完整的图形或增强现实媒体。
第三方效果源可以包含渲染子图文件以及由子图中的渲染计算器消耗的资产的一个或多个目录。
在一些实施方式中,软件开发工具包可以包括感知模型。软件开发工具包可以调用捆绑的二进制文件,以将每种类型的源文件转换为处理的格式,这可以在生成的可渲染压缩文件中保留输入的目录结构,而同时发出在此过程中遇到的任何错误。诸如原始图(graph proto)、着色器和蓝图的资产文件可能参考软件开发工具包中可以包括的其他文件或者是效果源的一部分。可以基于定制转换的根据效果的image_conversion.txt文件将纹理转换为webp格式。
在一些实施方式中,采用软件开发工具包构建的产品效果可以包含GLSL着色器,其可以被提供到用户的设备以用于运行时编译。这些着色器可以代表来自第三方技术提供商的有价值的知识产权。本文公开的系统和方法可以模糊着色器以帮助保护信息。模糊可以包括去除注释和语法上多余的空格,并且然后系统地重命名大多数非保留符号,以模糊语义。在一些实施方式中,模糊的符号可以在文件之间被统一地模糊。在检查和测试从第三方合作伙伴获得的原始着色器后,可能会发生模糊。
该系统和方法可以应用于各种增强现实渲染,包括但不限于化妆渲染、家具渲染、服饰渲染、视频游戏渲染和建筑结构渲染。
图2描绘了根据本公开的示例实施例的示例数据资产获取系统200的框图。在一些实施方式中,数据资产获取系统200被训练为发送用于构建增强现实渲染体验的软件开发工具包212,并且作为发送软件开发工具包212的结果,从第三方接收模板和预置228。因此,在一些实施方式中,数据获取系统200可以包括促进方210、第三方220和用户250。
具体地,图2描绘了用于生成增强现实渲染体验的数据资产获取的系统。促进方210可以是通过与第三方220通信来编译用于增强现实渲染的数据资产的促进系统。促进方210可以是服务器、网络应用或促进计算系统。当促进方210已经接收到数据资产时,促进系统可以向用户250提供增强现实渲染体验。
数据资产获取可以包括发送给第三方220的促进方构建的软件开发工具包(SDK)212。第三方可以使用软件开发工具包222来构建渲染体验。软件开发工具包222可以编译数据资产224,并且可以允许所生成的渲染体验的渲染预览226。
第三方220可以使用渲染预览来确定需要对其数据资产的模板和预置228进行什么源修改230(如果存在)。当构建、测试和微调完成时,第三方可以将其数据资产发送到促进系统,包括模板和预置228以及第三方元数据232。促进系统210可以摄取效果214并且存储它们以供稍后提供可以包括由第三方220构建的渲染效果的增强现实渲染体验。促进方可以从用户250获取用户数据252,并且可以输出具有在增强的用户数据中所包括的渲染效果的增强的用户数据。
图3描绘了根据本公开的示例实施例的示例模糊300的框图。模糊300可以被包括在图2的数据资产获取系统200中,以模糊数据资产。
更具体地,图3描绘了对于模糊的三管齐下的方法。在该实施方式中,原始代码302可以采用模糊系统304来模糊,以生成模糊代码306。在一些实施方式中,原始代码302可以是用于增强现实渲染的数据资产代码。
此外,在该实施方式中,模糊系统304可以包括重命名符号或术语308,移除空格310,以及移除与语义相关的注释312。
重命名308可以包括从原始代码中索引符号和术语,并且采用分配的符号和术语替换原始符号和术语。在一些实施方式中,重命名308可以包括利用哈希函数。不同文件之间的重命名可以是一致的。
移除空格310可以包括移除缩进、空格行和回车。移除空格可以模糊代码的逻辑格式,使代码更难阅读。
移除注释312可以包括移除与代码语义相关的一个或多个注释。模糊系统可以处理代码并且确定评论是否是语义评论。如果注释用来解释代码语义,则该注释可以移除。
这三个组件可以降低代码的可读性,同时还隐藏第三方符号和术语。
图4描绘了根据本公开的示例实施例的示例数据资产获取系统400的框图。数据资产获取系统400类似于图2的数据资产获取系统200,除了数据资产获取系统400可以被专门配置用于美颜效果渲染。
在该实施方式中,美颜效果402可以包括化妆渲染。美颜效果可以包括不同的数据集合。数据集合可以包括具有蓝图、GLSL着色器406、纹理和几何文件的渲染实体404数据集合。美颜效果402还可以包括渲染子图、着色器统一和图像转换。这些数据集合可以被输入到软件开发工具包408中,以构建增强现实渲染体验。软件开发工具包408可以允许构建器预览和测试新近构建的体验。具体地,美颜效果的GLSL着色器406可以被转换成软件开发工具包内的着色器管线。所构建的增强现实渲染体验可以与软件开发工具包408之外的先前存在的美颜效果402渲染体验并行。当构建完成时,软件开发工具包可以生成可渲染的zip文件410,用于在另一设备上重新创建增强现实渲染体验。
图5描绘了根据本公开的示例实施例的示例增强现实渲染体验模型500的框图。增强现实渲染体验模型500类似于图2的数据资产获取系统200,除了增强现实渲染体验模型500还包括使用所生成的数据资产来处理具有网格模型的相机馈送和具有增强模型的增强模型。
具体地,图5描绘了用于处理相机馈送502以生成渲染图像510的示例感知子图504和示例渲染子图508。感知子图504可以采用网格模型506来处理相机馈送502,以生成网格和分割掩模。网格和分割掩模可以由渲染计算器512处理。渲染计算器512可以被包括在渲染子图508中,并且可以受着色器的影响。渲染计算器512可以处理网格、分割掩模和相机馈送502,以生成渲染图像。渲染图像可以包括增强现实渲染。该渲染可以是由第三方使用软件开发工具包生成的渲染。此外,在一些实施方式中,渲染可以是化妆渲染,其中网格模型可以是脸部追踪器,着色器可以包括口红着色器、纹理着色器、统一着色器和/或过滤着色器。
示例方法
图6描绘了根据本公开的示例实施例执行的示例方法的流程图。尽管为了说明和讨论的目的,图6描绘了以特定次序执行的步骤,但是本公开的方法不限于特定说明的次序或布置。在不脱离本公开的范围的情况下,方法600的各个步骤可以以各种方式被省略、重新布置、组合和/或适配。
在602,计算系统可以发送软件开发工具包。在一些实施方式中,软件开发工具包可以包括用于构建一个或多个渲染效果着色器的模板。软件开发工具包可以包括用于将源效果编译成可渲染文件的脚本和相关联的二进制文件。软件开发工具包还可以包括预览工具,用于配置第三方在构建期间预览他们的渲染构建,以进行微调和测试。在一些实施方式中,软件开发工具包可以包括文档和样本效果,用于帮助第三方如何采用软件开发工具包来构建和微调效果。
在604,计算系统可以接收数据资产。在一些实施方式中,数据资产可以包括使用软件开发工具包构建的一个或多个渲染效果着色器。可以以可渲染文件(例如,ZIP文件)的形式接收数据资产。数据资产可包括用于渲染由第三方销售或提供的产品或项目的着色器数据。产品可以是化妆品(例如,口红、眼影等)、家具或其他家居用品(例如,电子设备、炊具、玻璃器皿、装饰品、植物等)、服装、油漆颜色、汽车或任何其他项目。
在606,计算系统可以存储数据资产。数据资产可以存储在服务器、用户计算设备或促进方计算设备上。
在608,计算系统可以提供增强现实渲染体验。在一些实施方式中,增强现实渲染可以至少部分地基于数据资产。增强现实渲染可以包括由第三方销售的产品的产品渲染。
图7描绘了根据本公开的示例实施例执行的示例方法的流程图。尽管为了说明和讨论的目的,图7描绘了以特定次序执行的步骤,但是本公开的方法不限于特定说明的次序或布置。在不脱离本公开的范围的情况下,方法700的各个步骤可以以各种方式被省略、重新布置、组合和/或适配。
在702,计算系统可以接收软件开发工具包。软件开发工具包可以包括用于生成增强现实体验的模板。软件开发工具包可以由促进计算系统或中间系统发送,以编译渲染体验来提供给用户。
在704,计算系统可以接收输入以修改软件开发工具包。修改软件开发工具包可以修改模板,并且可以生成特定于产品的增强现实体验。例如,软件开发工具包可以被构建和配置为生成化妆渲染效果。化妆渲染效果可被实现为增强现实渲染体验,以供用户“试用”使用他们的个人计算设备提供的不同口红颜色或类型。
在706,计算系统可以生成数据资产。在一些实施方式中,可以至少部分地基于接收到的输入来生成数据资产。数据资产可以被转换成可渲染的压缩文件以供发送。
在708,计算系统可以将数据资产发送给第二计算设备。第二计算设备可以是软件开发工具包的发送者。在一些实施方式中,第二计算设备可以是与用户交互以向用户提供增强现实渲染体验的促进计算设备或中间计算设备。
图8描绘了根据本公开的示例实施例执行的示例方法的流程图。尽管为了说明和讨论的目的,图8描绘了以特定次序执行的步骤,但是本公开的方法不限于特定说明的次序或布置。在不脱离本公开的范围的情况下,方法800的各个步骤可以以各种方式被省略、重新布置、组合和/或适配。
在802,计算系统可以发送软件开发工具包。在一些实施方式中,软件开发工具包可以包括用于构建一个或多个渲染效果着色器的模板。基础应用可以是增强现实渲染应用,其具有用于构建新的渲染或翻译先前构建的渲染效果的示例效果和指引。
在804,计算系统可以接收数据资产。在一些实施方式中,数据资产可以包括使用软件开发工具包构建的一个或多个渲染效果着色器。数据资产可以作为可渲染文件来接收。
在806,计算系统可以模糊数据资产。模糊数据资产可以包括从代码中移除空格、移除关于代码语义的注释以及重命名符号和术语。模糊可以降低代码可读性,并且移除术语或注释中可能包括的专有信息。模糊可以帮助保护第三方构建者。
在808,计算系统可以存储数据资产。数据资产可以本地或经由服务器存储。数据资产可以被存储为容易地访问,以供与网络应用或移动应用一起使用。
在810,计算系统可以提供增强现实渲染体验。在一些实施方式中,增强现实渲染可以至少部分地基于数据资产。增强现实渲染体验可以包括提供增强用户图像和视频以包括由第三方构建的渲染效果的体验。渲染效果可以是视频游戏或“实时试用”体验的一部分。此外,增强现实渲染体验可以经由网络应用、移动应用或店内信息亭来提供。
额外的公开内容
本文讨论的技术参考服务器、数据库、软件应用和其他基于计算机的系统,和所采取的行动以及发送到这些系统和从这些系统接收的信息。基于计算机的系统的固有灵活性允许在组件之间对任务和功能进行多种可能的配置、组合和划分。例如,本文讨论的处理可以使用单个设备或组件或者组合工作的多个设备或组件来实现。数据库和应用程序可以在单个系统上实现,或者可以分布在多个系统上。分布式组件可以顺序地或并行地操作。
虽然本主题已经关于其各种具体示例实施例进行了详细描述,但是每个示例都是以解释的方式提供的,而不是对本公开的限制。本领域的技术人员在获得对前述的理解时,可以容易地对这样的实施例进行变更、变化和等同。因此,本主题公开不排除包括对本主题的这种修改、变化和/或添加,这对于本领域普通技术人员来说将是明显的。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用,以产生又一实施例。因此,本公开旨在覆盖这些变更、变化和等同。
Claims (20)
1.一种用于向客户端提供第三方数据资产的计算机实现的方法,所述方法包括:
由计算设备发送软件开发工具包,其中,所述软件开发工具包包括用于构建一个或多个渲染效果着色器的模板;
由所述计算设备接收数据资产,其中,所述数据资产包括使用所述软件开发工具包构建的一个或多个渲染效果着色器;
由所述计算设备存储数据资产;以及
由所述计算设备提供增强现实渲染体验,其中,增强现实渲染至少部分地基于数据资产。
2.根据任一前述权利要求所述的方法,进一步包括:
由所述计算设备模糊所述数据资产,其中,模糊包括:
由所述计算设备从数据资产的代码中移除空格;
由所述计算设备从数据资产的代码中移除一个或多个注释;以及
由所述计算设备重命名数据资产的代码中的一个或多个术语。
3.根据任一前述权利要求所述的方法,其中,所述数据资产包括锚定地标数据。
4.根据任一前述权利要求所述的方法,其中,所述数据资产包括着色器数据。
5.根据权利要求4所述的方法,其中,所述着色器数据描述口红颜色、口红光泽度或口红不透明度中的至少一个。
6.根据权利要求4所述的方法,其中,所述着色器数据描述眼影颜色。
7.根据任一前述权利要求所述的方法,其中,所述数据资产包括来自第三方的数据。
8.根据任一前述权利要求所述的方法,其中,由所述计算设备对所述数据资产的模糊发生在由所述计算设备提供增强现实渲染体验之前,其中,增强现实渲染至少部分地基于所述数据资产。
9.根据任一前述权利要求所述的方法,其中,所述增强现实渲染是化妆增强现实渲染。
10.根据任一前述权利要求所述的方法,其中,所述增强现实渲染是家具增强现实渲染。
11.根据任一前述权利要求所述的方法,其中,所述增强现实渲染是视频游戏增强现实渲染。
12.根据任一前述权利要求所述的方法,其中,所述数据资产包括描述由第三方销售的产品的产品数据。
13.根据任一前述权利要求所述的方法,其中,所述增强现实渲染通过下述生成:
由所述计算设备接收用户数据;
由所述计算设备采用编码器模型处理所述用户数据以生成用户网格;以及
由所述计算设备采用增强模型处理所述用户网格以生成增强现实渲染,其中,增强模型包括至少部分地基于数据资产的着色器。
14.根据任一前述权利要求所述的方法,其中,所述一个或多个注释包括描述代码语义的文本。
15.根据任一前述权利要求所述的方法,其中,由所述计算设备重命名所述数据资产的代码中的一个或多个术语包括跨文件的统一重命名。
16.一种计算系统,包括:
一个或多个处理器;
共同地存储指令的一个或多个非暂时性计算机可读介质,所述指令当由一个或多个处理器执行时,使得计算系统执行操作,所述操作包括:
接收包括用于生成增强现实体验的模板的软件开发工具包;
接收一个或多个输入以修改模板,其中,修改软件开发工具包生成特定于产品的增强现实体验;
至少部分地基于所述一个或多个输入生成数据资产;以及
将所述数据资产发送到第二计算设备。
17.根据权利要求16所述的计算系统,还包括:测试增强现实体验。
18.根据权利要求16或17所述的计算系统,其中,测试增强现实体验包括:
获得训练数据;
采用增强现实体验处理训练数据以生成增强现实媒体;
至少部分地基于增强现实媒体和基础真实数据之间的比较来评估损失函数;以及
至少部分地基于损失函数来调整一个或多个参数。
19.一个或多个共同地存储指令的非暂时性计算机可读介质,所述指令当由一个或多个处理器执行时,使得计算系统执行操作,所述操作包括:
由计算设备发送软件开发工具包,其中,所述软件开发工具包包括用于构建一个或多个渲染效果着色器的模板;
由所述计算设备接收数据资产,其中,所述数据资产包括使用所述软件开发工具包构建的一个或多个渲染效果着色器;
由所述计算设备存储所述数据资产;以及
由所述计算设备提供增强现实渲染体验,其中,增强现实渲染至少部分地基于数据资产。
20.根据权利要求19所述的一个或多个非暂时性计算机可读介质,其中,所述软件开发工具包包括感知模型。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/144,002 US11521358B2 (en) | 2021-01-07 | 2021-01-07 | Computing platform for facilitating augmented reality experiences with third party assets |
US17/144,002 | 2021-01-07 | ||
PCT/US2022/011064 WO2022150273A1 (en) | 2021-01-07 | 2022-01-04 | Computing platform for facilitating augmented reality experiences with third party assets |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116868187A true CN116868187A (zh) | 2023-10-10 |
Family
ID=80445765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280016010.7A Pending CN116868187A (zh) | 2021-01-07 | 2022-01-04 | 用于促进具有第三方资产的增强现实体验的计算平台 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11521358B2 (zh) |
EP (1) | EP4256447A1 (zh) |
JP (2) | JP7457211B2 (zh) |
KR (1) | KR20230122172A (zh) |
CN (1) | CN116868187A (zh) |
WO (1) | WO2022150273A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230343037A1 (en) * | 2022-04-25 | 2023-10-26 | Snap Inc. | Persisting augmented reality experiences |
US20240019979A1 (en) * | 2022-07-15 | 2024-01-18 | Lenovo (Singapore) Pte. Ltd. | Conversion of 3d virtual actions into 2d actions |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160163111A1 (en) * | 2013-03-15 | 2016-06-09 | Daqri, Llc | Content creation tool |
CN106062705A (zh) * | 2014-02-24 | 2016-10-26 | 微软技术许可有限责任公司 | 跨平台渲染引擎 |
US20170132841A1 (en) * | 2015-09-22 | 2017-05-11 | 3D Product Imaging Inc. | Augmented reality e-commerce for home improvement |
CN107924584A (zh) * | 2015-08-20 | 2018-04-17 | 微软技术许可有限责任公司 | 增强现实 |
US20190129715A1 (en) * | 2016-07-18 | 2019-05-02 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus and system for generating augmented reality module and storage medium |
CN110140144A (zh) * | 2017-10-31 | 2019-08-16 | 谷歌有限责任公司 | 用于验证渲染的数据的图像处理系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013023705A1 (en) * | 2011-08-18 | 2013-02-21 | Layar B.V. | Methods and systems for enabling creation of augmented reality content |
GB2518589B (en) * | 2013-07-30 | 2019-12-11 | Holition Ltd | Image processing |
US20150082298A1 (en) * | 2013-09-19 | 2015-03-19 | Qiu Shi WANG | Packaging and deploying hybrid applications |
US9373223B1 (en) | 2014-12-17 | 2016-06-21 | Jackpot Rising Inc. | Method and system for gaming revenue |
US20170206708A1 (en) * | 2016-01-19 | 2017-07-20 | Immersv, Inc. | Generating a virtual reality environment for displaying content |
US11243748B2 (en) * | 2018-11-08 | 2022-02-08 | Appdome Ltd. | Artificial intelligence mobile integration |
US11449713B2 (en) * | 2018-11-16 | 2022-09-20 | Uatc, Llc | Attention based feature compression and localization for autonomous devices |
US10665011B1 (en) * | 2019-05-31 | 2020-05-26 | Adobe Inc. | Dynamically estimating lighting parameters for positions within augmented-reality scenes based on global and local features |
-
2021
- 2021-01-07 US US17/144,002 patent/US11521358B2/en active Active
-
2022
- 2022-01-04 KR KR1020237026574A patent/KR20230122172A/ko not_active Application Discontinuation
- 2022-01-04 CN CN202280016010.7A patent/CN116868187A/zh active Pending
- 2022-01-04 WO PCT/US2022/011064 patent/WO2022150273A1/en active Application Filing
- 2022-01-04 EP EP22703466.7A patent/EP4256447A1/en active Pending
- 2022-01-04 JP JP2023541344A patent/JP7457211B2/ja active Active
- 2022-11-23 US US17/993,334 patent/US20230092068A1/en active Pending
-
2024
- 2024-03-04 JP JP2024031999A patent/JP2024061750A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160163111A1 (en) * | 2013-03-15 | 2016-06-09 | Daqri, Llc | Content creation tool |
CN106062705A (zh) * | 2014-02-24 | 2016-10-26 | 微软技术许可有限责任公司 | 跨平台渲染引擎 |
CN107924584A (zh) * | 2015-08-20 | 2018-04-17 | 微软技术许可有限责任公司 | 增强现实 |
US20170132841A1 (en) * | 2015-09-22 | 2017-05-11 | 3D Product Imaging Inc. | Augmented reality e-commerce for home improvement |
US20190129715A1 (en) * | 2016-07-18 | 2019-05-02 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus and system for generating augmented reality module and storage medium |
CN110140144A (zh) * | 2017-10-31 | 2019-08-16 | 谷歌有限责任公司 | 用于验证渲染的数据的图像处理系统 |
Also Published As
Publication number | Publication date |
---|---|
EP4256447A1 (en) | 2023-10-11 |
US11521358B2 (en) | 2022-12-06 |
WO2022150273A1 (en) | 2022-07-14 |
US20230092068A1 (en) | 2023-03-23 |
US20220215633A1 (en) | 2022-07-07 |
JP2024504063A (ja) | 2024-01-30 |
JP7457211B2 (ja) | 2024-03-27 |
JP2024061750A (ja) | 2024-05-08 |
KR20230122172A (ko) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11670061B2 (en) | Generating augmented reality prerenderings using template images | |
Cordeil et al. | IATK: An immersive analytics toolkit | |
US10592238B2 (en) | Application system that enables a plurality of runtime versions of an application | |
Gecer et al. | Synthesizing coupled 3d face modalities by trunk-branch generative adversarial networks | |
Kim et al. | Near-exhaustive precomputation of secondary cloth effects | |
Flotyński et al. | Ontology‐Based Representation and Modelling of Synthetic 3D Content: A State‐of‐the‐Art Review | |
Qian et al. | Scalar: Authoring semantically adaptive augmented reality experiences in virtual reality | |
US20230092068A1 (en) | Computing Platform for Facilitating Augmented Reality Experiences with Third Party Assets | |
Ranjan et al. | Learning multi-human optical flow | |
Li et al. | [Retracted] Multivisual Animation Character 3D Model Design Method Based on VR Technology | |
Stemasov et al. | The road to ubiquitous personal fabrication: Modeling-free instead of increasingly simple | |
Zeng et al. | 3D human body reshaping with anthropometric modeling | |
Walczak et al. | Semantic query-based generation of customized 3D scenes | |
Ardhianto et al. | Generative deep learning for visual animation in landscapes design | |
Walczak et al. | Inference-based creation of synthetic 3D content with ontologies | |
US12014467B2 (en) | Generating augmented reality prerenderings using template images | |
Pucihar et al. | FUSE: Towards AI-Based Future Services for Generating Augmented Reality Experiences | |
Stevens | Visualization of complex automotive data: A tutorial | |
US20230281952A1 (en) | Generating object images with different lighting conditions | |
Robertson | Visualizing spatial data: The problem of paradigms | |
Choudhary et al. | 3D-Zeit: A Framework for Generating 3D Model as an AR Object Using Object Recognition | |
KR20240096361A (ko) | 사용자-컨텍스트 인식 렌더링 데이터세트 선택 | |
Vainer et al. | Collaborative Control for Geometry-Conditioned PBR Image Generation | |
Bhagavatula et al. | Discovering high-level parameters for visualization design | |
Chauha | Study on Real-Time Streaming of 3D |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |