掌桥专利:专业的专利平台
掌桥专利
首页

增强现实美容产品教程

文献发布时间:2023-06-19 18:32:25


增强现实美容产品教程

优先权要求

本申请要求于2020年3月31日提交的美国临时申请第63/002,883号的优先权的权益,该美国临时申请的全部内容通过引用并入本文。

背景技术

美容产品的应用已变得越来越复杂。在应用美容产品时通常有多个步骤。此外,对于美容产品的用户来说,如何应用美容产品经常不是显而易见的。美容产品的用户在应用美容产品时通常依靠去沙龙或美容柜台寻求帮助,但这可能很昂贵,或者难以找到对某一特定美容产品有经验的人。此外,应用美容产品可能既昂贵又耗时,并且用户可能对结果感到失望。

附图说明

为了容易地识别对任何特定元素或动作的讨论,附图标记中的一个或更多个最高位数字指代该元素被首次引入时所在的图号。

图1示出了根据一些实施方式的增强现实(AR)教程系统。

图2示出了根据一些实施方式的AR教程数据的组成部分。

图3示出了根据一些实施方式的美容产品数据的组成部分。

图4示出了根据一些实施方式的AR教程系统的操作。

图5A、图5B和图5C示出了根据一些实施方式的AR教程的操作。

图6示出了根据一些实施方式的使用AR教程的流程图。

图7示出了根据一些实施方式的进入点。

图8示出了根据一些实施方式的AR教程转盘(carousel)。

图9示出了根据一些实施方式的进入AR教程的点。

图10示出了根据一些实施方式的进入点。

图11示出了根据一些实施方式的进入点。

图12示出了根据一些实施方式捕获图像。

图13示出了根据一些实施方式捕获图像。

图14示出了根据一些实施方式的所捕获的图像。

图15示出了根据一些实施方式的美容产品的信息。

图16示出了根据一些实施方式的AR教程的步骤。

图17示出了根据一些实施方式移动至下一步骤。

图18是示出根据一些实施方式的AR教程系统的示例的框图。

图19是示出根据示例实施方式的关于AR教程系统的另外细节的框图。

图20是示出根据某些示例实施方式的可以存储在AR教程服务器系统的数据库中的数据结构的示意图。

图21是机器的图形表示,在该机器内可以执行用于使机器执行本文讨论的任何一种或更多种方法的指令(例如,软件、程序、应用、小程序、app或其他可执行代码)。

图22是示出可以安装在本文描述的任何一个或更多个设备上的软件架构的框图。

图23示出了根据一些实施方式的提供增强现实美容产品教程的方法。

具体实施方式

增强现实(AR)应用使得用户(例如演示者)能够为AR教程的用户编辑和准备美容产品AR教程。演示者可以创建具有多个步骤的AR教程,其中在不同的步骤中使用不同的美容产品。AR教程提供了双屏幕视图,在一个屏幕上是演示者的录制版本,在另一屏幕上是用户的实况视图。

AR教程确定演示者的使用美容产品的身体部位,并且将其与用户的身体部位匹配。例如,如果演示者正在涂眼影,则身体部位就是眼睛。AR教程将缩放至AR教程的用户的眼睛。AR教程确定美容产品对演示者的效果。例如,如果演示者正在涂眼影,则AR教程确定演示者眼睛周围皮肤的颜色变化。AR教程还确定演示者用于应用美容产品的动作。例如,刷子围绕演示者的眼睛运动以涂眼影。

AR教程将效果应用于另一屏幕上用户的实况视图,例如,AR教程将改变用户的眼睛周围皮肤的颜色。此外,AR教程指示演示者在将美容产品应用于用户的身体部位时使用的动作。例如,AR教程可以用用户的眼睛周围的白线示出刷子在演示者身上的移动。AR教程将对用户的实况视图上的效果和移动的显示与演示者对美容产品的应用进行同步。一些实施方式解决了以下技术问题:确定和显示化妆器具根据化妆图像而化妆所需要的移动。一些实施方式解决了以下技术问题:使得用户能够在不化妆的情况下虚拟地尝试化妆。一些实施方式解决了以下技术问题:提供用于化妆以获得所需图像的指令。

AR教程的用户可以能够定制美容产品。例如,用户可以能够使用不同颜色的眼影。AR教程的用户有机会购买美容产品。在示例中,AR教程提供允许用户在用户开始AR教程之前,在用户的实况视图上预览AR教程的最终结果的工具,例如媒体叠加(media overlay)。

图1至图4被相互结合地公开。图1示出了根据一些实施方式的增强现实(AR)教程系统100。图2示出了根据一些实施方式的AR教程数据202的组成部分。图3示出了根据一些实施方式的美容产品数据302的组成部分。图4示出了根据一些实施方式的AR教程系统的操作400。

AR教程模块102被配置成生成AR教程143。在一个示例中,AR教程模块102是计算系统例如图18所示的AR教程服务器系统1808的一部分。在一些实施方式中,AR教程模块102的功能是通过机器2100和/或机器2100的装置或部分实现的。AR教程模块102向移动设备146发送命令112以及从移动设备146接收命令112,例如向/从命令136。AR教程模块102从移动设备146接收实况图像134,并且基于AR教程数据202和美容产品数据302生成AR教程图像138和AR用户图像140。AR教程模块102被配置成生成AR教程图像138、AR用户图像140、AR教程数据202和/或美容产品数据302。根据一些实施方式,AR教程模块102被配置成由移动设备146的一个或更多个处理器执行。根据一些实施方式,AR教程模块102被配置成导致AR教程显示142和/或AR用户显示144的渲染。根据一些实施方式,AR教程模块102从摄像装置130接收实况图像134。

移动设备146是移动计算设备,例如智能手机、手表、平板电脑、眼镜或其他便携式计算设备。根据一些实施方式,移动设备146是结合图18公开的客户端设备1802。根据一些实施方式,移动设备146是机器2100。在一些实施方式中,移动设备146是与无线通信网络例如LTE、5G、3GPP或电气与电子工程学会(IEEE)802.11等通信的无线设备。在一些实施方式中,移动设备146是笔记本电脑或台式电脑。根据一些实施方式,摄像装置130是环境组件2132。屏幕132是移动设备146的显示屏幕。根据一些实施方式,屏幕132为用户输出组件2124和/或用户输入组件2126。根据一些实施方式,屏幕132是AR眼镜的一部分或AR教程143的用户的一个或更多个眼睛上的投影。在一些实施方式中,屏幕132用于指代屏幕132上提供的用户界面。根据一些实施方式,全屏幕指示AR用户显示144或AR教程显示142分别占据AR用户显示144或AR教程显示142的屏幕132部分以及AR教程显示142或AR用户显示的全部或部分两者。

向/从命令136是从移动设备146到AR教程模块102的命令112,以及从AR教程模块112发送至移动设备146的命令112。实况图像134是来自摄像装置130的图像,其可以是视频的单个图像或一系列图像。AR教程显示142是屏幕132的呈现AR教程图像138的部分。AR用户显示144是屏幕132的显示AR用户图像140的部分。如图所示,AR教程显示142被示出在屏幕的顶部;然而,应当理解,在示例实施方式中,AR教程显示142可以被示出在屏幕的底部或侧部。此外,其他信息可以显示在屏幕132上。在一些实施方式中,AR教程显示142和/或AR用户显示144中的一个可以在屏幕132的全屏幕中显示。在一些实施方式中,信息可以被视为位于屏幕132的顶部、下方、左侧或右眼上,并且可以通过来自图2的用户238的命令112(例如滑动)而访问。

确定动作模块122从AR教程视频228中提取教程动作216。根据一些实施方式,确定动作模块122根据AR教程视频288的教程动作216生成AR动作217。在一些实施方式中,确定动作模块122从实况图像134生成教程动作216。例如,当捕获AR教程视频228时,确定动作模块122提取教程动作216。确定动作模块122可以被配置成基于对象识别来确定教程动作216,其中图2的美容产品224的图像、教程效果218、和/或身体部位222在实况图像134和/或AR教程视频228中被识别。根据一些实施方式,确定动作模块122比较连续图像以确定图像之间的差异。例如,如图5A、图5B和图5C所示,确定动作模块122检测美容产品224B的移动,从屏幕500A到屏幕500B,然后从屏幕500B到屏幕500C。结果可以是对美容产品224A针对一些图像的的移动量的测量。在一些实施方式中,确定动作模块122比较在屏幕500A、500B和500C上播放的AR教程视频228的连续图像。对象识别用于确定美容产品224B在AR教程视频228的图像中的位置,然后计算位置差异。例如,可以从屏幕500A到屏幕500B确定美容产品224B的移动的像素数。作为示例,教程动作216的数据可以包括针对AR教程视频228的两个连续图像之间的差异的向右2个像素。

在一些实施方式中,确定动作模块122确定演示者236的动作,以确定美容产品224如何应用于演示者236。根据一些实施方式,确定动作模块122使用神经网络来识别AR教程视频228的图像的不同部分。确定动作模块122使用神经网络来确定两个图像之间的差异,并且可以使用教程效果218来确定美容产品224的动作。例如,如果眼睛的新的部分在第二图像中具有与第一图像不同的颜色,则可以确定教程动作216,以包括美容产品224在AR教程视频228的第一图像位置中的位置到第二图像中的位置,该第二图像中的位置将使得演示者236能够应用美容产品226以生成第一图像与第二图像之间的不同颜色。

确定动作模块122被配置成根据教程动作216确定AR动作217。例如,确定动作模块122被配置成根据教程动作216确定图2、图4、图5A、图5B、图5C和图12中的AR动作217。图5A、图5B和图5C示出了将AR动作217A、217B、217C添加至AR用户显示140的示例,如根据教程动作216A在AR用户显示144上显示的那样,AR动作217A、217B、217C是AR教程视频228中美容产品224A的动作指示。图5A、图5B和图5C分别示出了演示者236在添加AR动作217A、217B和217C的情况下,对美容产品224A、224B和224C的同步434移动。在一些实施方式中,教程动作216是预先确定的。在一些实施方式中,教程动作216指示AR教程视频228的每个图像的运动像素数和方向。

确定动作模块122可以针对AR动作217确定用户238的实况图像134中的起始位置。此外,确定动作模块122针对身体部位222、缩放级别208和可见区域206调整AR动作217的起始点。用户238可以在AR教程视频228的播放期间移动,因此确定动作模块122被配置成调整动作指示,以补偿用户238的实况图像134内的动作。作为示例,如结合图5A所公开的,确定动作模块122已经针对教程530A中的时间处所显示的AR教程143中的最初“0:12”秒基于教程动作216A确定AR动作217A。然后,确定动作模块122必须针对“0:12”秒与图5B的教程530B中的时间处所显示的“0:17”秒之间的差异确定AR动作217B。确定动作模块122可以基于预定数目的图像或预定时间确定AR动作217B,以生成要由生成用户图像模块108显示的新AR动作217B。在一些实施方式中,在AR用户显示144中显示固定数目的图像,例如每秒30帧,并且确定动作模块122为每一帧提供移动线。移动线可以指示帧中应当被指示为移动的像素。移动线可以表示为一组像素、向量、线方程或其他表示。

确定身体部位模块124根据AR教程视频228和/或用户视频230确定身体部位222。在一些实施方式中,美容产品数据302包括指示身体部位的身体部位308,身体部位308可以由确定身体部位模块124在确定身体部位222时使用。在一些实施方式中,演示者236可以经由用户界面(UI)进入身体部位222。在一些实施方式中,确定身体部位模块124使用被训练以从人体的图像来识别不同身体部位的神经网络。确定身体部位模块124可以使用其他信息来确定哪个身体部位222正在应用美容产品224。例如,确定身体部位模块124可以确定在AR教程视频228正被记录时眼睛区域在AR教程视频288中或者在来自实况图像134的图像中已改变颜色。确定身体部位模块124被配置成从演示者236的AR教程视频228中识别身体部位222,并使用演示者的所识别的身体部位222来确定用户视频230中的用户238的身体部位222。例如,如结合图4所公开的,确定身体部位模块124可以识别演示者236的身体部位222A,即右眼,然后在用户视频230中识别身体部位222B,即用户238的右眼。

确定美容产品模块126被配置成确定美容产品224。根据一些实施方式,美容产品224是与美容产品数据302相关联的美容产品。在一些实施方式中,确定美容产品模块126经由呈现给演示者236的UI屏幕确定美容产品224。在一些实施方式中,确定美容产品模块126被配置成拍摄美容产品326的图像,并基于美容产品224上的产品代码330和/或基于从美容产品224的数据库中识别美容产品224来确定美容产品224。例如,确定美容产品模块126使用训练后的神经网络来执行美容产品224的对象识别,使得演示者236不必输入关于美容产品222的信息。在一些实施方式中,确定美容产品模块126从本地或远程数据库检索美容产品数据302,例如图20中的美容产品2018。美容产品326的图像可以用于请求来自演示者236的确认和/或用于显示美容产品224,例如在图4中,两个美容产品224A和224B被显示为美容产品224A和224B。

确定效果模块128基于比较AR教程视频228的图像确定教程效果218。例如,确定效果模块128可以比较AR教程视频228的连续图像,以确定图像之间的差异,并确定差异是由于美容产品224的应用造成的。根据一些实施方式,教程效果218可以是指示由于美容产品244的应用而导致的连续图像之间的差异的数据。确定效果模块128使用以下中的一种或更多种来确定教程效果218:教程动作216、身体部位222、和/或美容产品数据302例如颜色316。确定效果模块128可以使用其他数据来确定教程效果218。确定效果模块128可以确定身体部位222或身体部位308上的图像之间的差异。身体部位222和身体部位308可以指示同一部分的身体部位。在一些实施方式中,身体部位222可以不同于身体部位308,例如,身体部位308可以来自制造商,例如包括在美容产品信息304中,并且可以指示眼睑,而身体部位222可以更通用并且指示右眼或左眼。身体部位222和身体部位308可能在其他方面不同。确定效果模块128可以确定AR教程视频228的两个图像之间发生动作216的图像部分上的图像间差异。在一些实施方式中,教程效果218是预先确定的。如结合图4、图5A、图5B、图5C、图12和图17所公开的,确定效果模块128确定教程效果218。

在一些实施方式中,确定效果模块128被配置成根据教程效果218和/或AR教程视频228确定图2、图4、图5A、图5B、图5C、图8、图11、图12、图13和图14中的AR效果219。图5A、图5B和图5C示出了根据教程效果218A将AR效果219A、219B、219C添加至身体部位222,即,用户238的右眼的示例,AR效果219A、219B、219C是演示者236的右眼由于应用美容产品224B和美容产品224A的变化。图5A、图5B和图5C示出了涂眼影的过程,其中利用AR效果219A、219B和219C的对用户238的右眼的改变与对演示者236的右眼的改变同步,对演示者236的右眼的改变由教程效果218A、218B和218C指示。在一些实施方式中,确定效果模块128使用指示应当基于AR教程视频228进行的实况图像134的改变的深度学习。在一些实施方式中,AR效果219是基于美容产品信息304确定的,美容产品信息304指示美容产品数据302的美容产品224将对身体部位222、308进行的改变。例如,诸如颜色316的颜色可以被指示为根据美容产品224的应用而对用户238进行的改变。可以基于颜色和身体部位222、306的区域来确定AR效果219,以将颜色应用于用户238的实况图像134。在一些实施方式中,AR效果219是基于肤色确定的,确定用户238的肤色,然后基于用户238的肤色确定美容产品224的应用。

生成教程图像模块104生成AR教程图像138。AR教程图像138用于生成AR教程显示142。生成教程图像模块104基于处理AR教程视频228生成AR教程图像138。生成教程图像模块104为用户238生成或播放AR教程视频288,以获取AR教程143和AR教程数据202。生成教程图像模块104可以处理AR教程视频228,以包括以下中的一个或更多个:美容产品224、播放条(例如图4中的播放条422)、回放速度条414、回放速度值210、播放条222、当前播放424、步骤标记426、后退428、教程中的时间430、捕获432、UI项234等。根据一些实施方式,生成教程图像模块104基于回放速度值210生成AR教程图像138。生成教程图像模块104基于缩放级别208和可见区域206生成AR教程图像138。例如,AR教程视频228可以包括演示者236的头部的视频,并且生成教程图像模块104基于包括演示者236的头部的视频的AR教程视频288的缩放级别208和可见区域206来生成或处理AR教程图像138。例如,如图4所示,在AR教程显示142中示出了演示者236的右眼,但是AR教程视频228可以是演示者236的整个头部。生成教程图像模块104被配置成生成本文中结合图1至图23所公开的AR教程图像138。在一些实施方式中,生成教程图像模块104被配置成在用户238进入AR教程143之前生成与AR教程143相关的AR教程图像138。例如,生成教程图像模块104可以生成图8的屏幕800(基于通过捕获832而突出显示的AR教程606)、图9的屏幕900、图10的屏幕1000和/或图11的屏幕1100,或者作为图像捕获的一部分,例如图12的屏幕1200B、图13的1300、图14的屏幕1400和/或图15的屏幕1500。

生成用户图像模块108生成在AR用户显示144中显示的AR用户图像140。根据一些实施方式,生成用户图像模块108渲染或生成AR用户显示114。根据一些实施方式,生成用户图像模块108处理实况图像134以并入AR效果219和/或AR动作217。例如,AR效果219可以指示改变实况图像134的颜色的区域,如结合图5A、图5B和图5C所公开的。在另一示例中,AR动作217可以指示像素,以在实况图像238上添加动作指示,如结合图5A、图5B和图5C所公开的。根据一些实施方式,生成用户图像模块108将UI项234添加至实况图像134。

生成用户图像模块108基于以下中的一项或更多项处理实况图像134:可见区域206、缩放级别208、回放速度值210、教程动作216、教程效果218、身体部位222和/或定制226。在一个示例中,生成用户图像模块108缩放至所识别的身体部位222。例如,用户238可以正在用实况图像134捕获全脸的视频,并且,如图4所示,生成用户图像模块108缩放至身体部位222,例如用户238的全脸上的眼睛。

在一些实施方式中,AR动作217和/或AR效果219指示在实况图像238的逐帧基础上进行的改变。生成用户图像模块108可以向AR用户图像140添加项,例如UI项234。可以添加的一些示例项包括捕获432、832、播放条422、回放速度条414、步骤标记426、当前播放424、后退428、全屏1216、发送1212、附加效果1306、附加效果1506等。在一些实施方式中,生成用户图像模块108在用户238已进入AR教程143之前生成屏幕,例如屏幕800、900、1000。生成用户图像模块108被配置成生成本文所公开的AR用户图像140。教程效果218、教程动作216、可见区域206、缩放级别208、回放速度值210、暂停220、身体部位222、美容产品224、和/或定制226可以具有开始时间212和结束时间214,其指示应当由生成用户图像模块108应用参数时的AR教程视频228内的时间。根据一些实施方式,由生成用户图像模块108和/或生成教程图像模块104执行的功能被称为处理图像。

命令响应模块110被配置成经由移动设备146响应来自移动设备146和/或用户238的命令112。命令112包括图16的暂停、播放、向前1604和退后1602,用图4的回放速度条414改变回放速度值,选择捕获432,选择美容产品224A、224B以获取附加信息,调整缩放级别等。命令响应模块110被配置成响应本文所公开的命令112。命令112可以由用户238以不同的方式指示,例如通过语音、屏幕132上的手指动作、实况图像134中用户238的动作,例如张开嘴、做出OK标志等。在一个示例中,手指810的触摸将使AR教程143暂停,并且手指810的另一触摸将播放AR教程143。在另一示例中,移动拇指和手指810将调整缩放级别208。

同步效果和动作模块106将AR教程图像138与AR用户图像140同步。例如,如图5A、图5B和图5C所示(并且在本文中讨论的),同步效果和动作模块106分别同步显示教程效果218A、218B、218C和AR效果219A、219B、219C,以及教程动作216A、216B、216C和AR动作217A、217B、217C。同步效果和动作模块106可以得到由生成用户图像模块108添加的具有AR动作217和教程效果219的实况图像134,并且从生成教程图像模块104得到AR教程图像138,并将AR教程图像38的播放与AR用户图像140的播放同步。在一些实施方式中,生成用户图像模块108将AR用户图像140与AR教程图像138同步。

参照图2,AR教程数据202是与AR教程143相关联的数据。步骤N204指示针对AR教程数据206的步骤的数据。步骤N 204指示与参数(例如结合图2和图3公开的参数)相关联的步骤。每个步骤例如图16的步骤1608A、1608B和1608C均具有与步骤1608A、1608B和1608C相关联的步骤N数据204。可见区域206是要在屏幕132上显示的AR教程视频228、实况图像134或用户视频230的一部分。缩放级别208指示要在屏幕134上显示的AR教程视频288、实况图像134或用户视频230的缩放级别。回放速度值210指示AR教程视频228或用户视频230的回放速度,例如回放速度值210。开始时间212和结束时间214指示针对步骤N 204的参数的开始时间和结束时间。针对步骤N 204的参数可以有多个值,例如,两个不同的缩放级别208,其中每个级别都具有开始时间212和结束时间214。在步骤N 1904中,参数可以具有多个开始时间212和结束时间214,指示参数的不同值,例如缩放级别208、可见区域206等。在一些实施方式中,当将调整应用于教程视频228和/或用户视频230时,开始时间212表示教程视频222和/或用户视频230中的开始时间。在一些实施方式中,调整,例如缩放级别208,随着新步骤的开始而被重置。

教程动作216是指示本文中公开的美容产品224的应用的动作的数据。AR动作217是指示要应用于本文所公开的实况图像134和/或用户视频230的动作的数据。教程效果218是指示AR教程视频228从美容产品224的应用到演示者236的身体部位222的变化的数据,如本文所公开的。AR效果219是指示对用户视频230和/或用户238的实况图像134进行的改变以在用户视频230或实况图像134中模拟用户238的身体部位222上的教程效果218的数据,如本文所公开的。

暂停220是AR教程视频228的播放要暂停的时间。暂停220还可以指示AR教程视频228如何返回至播放或记录,例如通过暂停的设定时间量或用户238的指示(例如手指的轻击)来继续。身体部位222是向其应用美容产品224的演示者236和/或用户238的身体部位的指示。定制226是用户238对步骤N 204的定制,例如用户238对回放速度值210的改变或美容产品数据302的颜色316或刷子宽度318的改变。美容产品224对应于本文所公开的具有相关联的美容产品数据302的美容产品。

AR教程视频228是演示者236针对AR教程数据202的步骤N 204的视频。用户视频230是用户238拍摄或播放AR教程数据204的AR教程143的视频,用户视频230可以被记录以由用户238发送或存储。教程信息232是与AR教程数据202相关联的信息,例如捕获832、屏幕900和1000、AR教程1102的预览、与AR教程数据202相关的节目、附加效果1224和1506等。

UI项234是可以由AR教程143使用的UI项。示例UI项是标签“下一步眼线”,其作为图17所示的下一1702的标签。演示者236对应于AR教程数据202的演示者。演示者236可以包括诸如演示者名字、与演示者相关联的网站、演示者的图像的信息。用户238对应于AR教程数据202的用户。用户238可以包括诸如用户名字、与用户相关联的网站、用户的图像的信息。

选项240可以是AR教程数据202的选项,例如,用户238是否可以改变AR教程数据202的任何参数,例如回放速度值210。统计信息242可以是收集的关于AR教程数据202的统计信息。一些示例统计信息包括:与多少用户238观看捕获832相比,多少用户238选择捕获832(图8);完成AR教程数据202的用户238的百分比是多少;在哪些步骤中,未完成AR教程数据202的用户238离开教程;用户238多长时间发送、发布和/或保存所捕获的图像;多少用户238在离开AR教程143后返回使用AR教程143;和/或其他统计信息。

参照图3,美容产品数据302是与美容产品224相关联的数据。美容产品信息304指示关于美容产品数据302的信息,例如美容产品的名称、与美容产品相关的网站、美容产品的价格等。在一些实施方式中,美容产品信息304包括关于在美容产品224的应用中可能期望身体部位308发生的效果的信息。例如,这些效果可以指示具有特定肤色的身体部位可能期望如所示的颜色变化。

购买页面306是与美容产品224相关联的一个或更多个网站或页面。身体部位308指示与美容产品244相关联的人的身体的一部分。示例身体部位包括眼睑、眼睛、鼻子、嘴唇等。在一些实施方式中,从美容产品的数据库中检索身体部位302,在该数据库中身体部位302与美容产品224相关联。例如,可以从图3的美容产品302中检索本文公开的数据中的一个或更多个数据。

成分310是美容产品224的一种或更多种成分。成分百分比312指示成分310的百分比。变体414指示美容产品224的变体。示例变体314包括颜色316和刷子宽度318。变体314可以包括帮助用户238选择美容产品数据302的变体314的选择菜单320。平均评分322指示美容产品224的评分324的平均值。评分324是用户238、演示者236和/或其他人对美容产品224的评分。评分324可以从网站上显示。美容产品326的图像是可以用于向用户238显示目的的图像,例如图4中的美容产品224A和224B。竞争产品328是可以向用户238显示以切换美容产品224或将美容产品224与竞争产品328进行比较的竞争产品。产品代码330可以是帮助AR教程模块102从美容产品的实况图像134中识别美容产品224的代码和/或其他信息。

在一些实施方式中,AR教程模块102被配置成响应于在AR教程143内对美容产品224的选择而显示与美容产品224相关的信息。例如,AR教程模块102响应于用户238对美容产品224B的选择而显示具有与美容产品244B相关的信息的屏幕1500。

根据一些实施方式,图4示出了AR教程143的操作400。摄像装置130、屏幕132、AR教程显示142、AR教程143、AR用户显示144和移动设备146与图1中的具有相同编号的元素相同或相似。回放速度值210、教程动作216、AR动作217、教程效果218、AR效果219、身体部位222A、222B、美容产品224A、224B和用户238与图2中的具有相同编号的元素相同或相似。在一些实施方式中,AR用户显示144是用户238观看或拍摄AR教程143的实况图像。

演示者236包括AR教程143的演示者的图像。例如,图4中的演示者236是呈现关于如何化妆的AR教程143的人的图像。身体部位224A、224B与身体部位222相同或相似。美容产品224A和224B分别是结合图3公开的美容产品326的图像。美容产品224A和224B具有相关联的美容产品数据302。美容产品224A和224B各自对应于AR教程数据202的美容产品224。在一些实施方式中,不同的UI项234用于指示美容产品224A和224B。例如,美容产品224可以显示在AR用户显示144中。在另一示例中,美容产品244可以不被显示。在一些实施方式中,美容产品224可以响应于用户238的向左滚动、向右滚动、向上滚动和/或向下滚动指示而显示。在一些实施方式中,美容产品224可以包括动画显示。在一些实施方式中,美容产品224可以包括在屏幕132内播放的广告。

回放速度值210指示回放速度的值。图4中的回放速度被示出为1X,表示正常回放速度的1倍。回放速度条414指示AR教程143的回放速度。在一些实施方式中,用户238可以与回放速度条314交互,以改变回放速度值210。在一些实施方式中,回放速度值210和/或回放速度条414不被显示。在一些实施方式中,使用不同的用户界面元素来指示回放速度值210和/或回放速度条414。

AR动作216是例如经由结合图1公开的动作提取模块12从演示者236的教程动作408中提取的动作。根据一些实施方式,确定动作模块122提取图2中的动作216。根据一些实施方式,AR动作216与图2中的动作216相同或相似。

用户238是使用移动设备146观看、播放或拍摄AR教程143的人。在一些实施方式中,用户238的图像显示在AR用户显示144中。在一些实施方式中,用户238指示AR用户显示144中的用户的图像。在一些实施方式中,用户238是作为移动设备146的用户并且观看、播放或拍摄AR教程143的人。在本公开内容的一些部分中,用户238在此被称为人,其可以包括任何性别。在本公开内容的一些部分中,用户238被称为女性;然而,用户238可以是任何性别的人。

AR效果219根据从AR教程143中提取的教程效果218确定。例如,如结合图1所公开的,确定效果模块128从AR教程视频228中提取图2的教程效果218。在一些实施方式中,AR效果219由确定效果模块128确定。在一些实施方式中,AR效果219可以以不同方式显示。例如,AR效果219可以与用户238分开显示。在一些实施方式中,AR效果219可以调整为减少或加强用户238上的教程效果218。例如,可以在屏幕132上显示强度条,其中用户238可以调整AR效果219以减少或加强教程效果218的应用,作为用户238上的AR效果219。

播放条422是指示关于AR教程143的播放的信息的条。当前播放424指示在AR教程143内的当前播放位置。步骤标记426A、426B指示步骤的结束和开始。教程中的时间430指示当前播放424的当前时间。在一些实施方式中,教程中的时间430是AR教程143中剩余的时间。在一些实施方式中,教程中的时间430指示从AR教程143的开始的时间。图4中示出的关于AR教程143的播放的信息仅为一个示例。在示例实施方式中,用于播放AR教程143的信息可以以不同的方式呈现,一条或更多条信息可以不被呈现,或者可以呈现图4的示例中未示出的附加信息。

后退428是用户界面元素,例如图标,它将使AR教程143后退一步或更多步。例如,选择后退428可以使用户238退出AR教程143。后退428是结合图1所公开的命令112。

捕获432是用户界面元素,例如图标,当选中时其捕获AR用户显示144和/或AR教程显示142的图像。在一些实施方式中,长按捕获432捕获AR用户显示144和/或AR教程显示142的视频。捕获432是如结合图1公开的命令112。可以以结合图1公开的不同方式调用捕获433的功能。后退428和/或者捕获432的功能可以取决于选择它们的情境。根据一些实施方式,同步434指示教程动作216和教程效果218分别与AR动作217和AR效果219同步。例如,同步效果和动作模块106、生成用户图像模块108和/或生成教程图像模块104可以执行如本文所公开的同步434的功能。

AR用户显示144由生成用户图像模块108生成。生成用户图像模块108可以根据实况图像134和/或用户视频230执行图像调整。例如,生成用户图像模块108可以拍摄经由摄像装置130捕获的用户238的图像,并定位与AR教程143的步骤N 202相关联的身体部位222。例如,如图5所示的右眼。生成用户图像模块108然后可以放大所捕获的用户238的图像,使得身体部位222的大小与演示者236的身体部位222成比例。用户238可以移动,使得生成用户图像模块108可以持续地调整用户238的图像在AR用户显示144上的显示。在一些实施方式中,AR教程143的创建者可以确定AR教程143的可见区域206(图2)、缩放级别208和/或回放速度值210,生成用户图像模块108可以使用其来对用户238的图像进行图像调整,以在AR用户显示144中显示。

在一些实施方式中,AR教程143将针对AR教程143的每个步骤循环,直到用户238选择移动至下一步骤。这将结合图15和图16进一步详细描述。在一些实施方式中,AR教程143进展至下一步骤,例如跳过步骤标记426A和426B,而不循环或暂停。在一些实施方式中,AR教程143在例如图16的步骤1608A、1608B或1608C的步骤的结束处暂停。在一些实施方式中,AR教程143在一个步骤的结束处暂停,直到用户238指示移动至下一步骤。例如,用户可以通过选择用户界面元素、用户238在AR用户显示144内的移动、声音等来指示移动至下一步骤的命令。在一些实施方式中,用户238可以执行图2的定制226,例如改变颜色316和/或刷子宽度318。

在一些实施方式中,AR教程模块102向用户238呈现选择菜单320,并且响应于用户238选择定制226而更新AR效果219和/或AR动作217,并且基于更新后的AR效果219和/或AR动作217在AR用户显示144中显示用户238。图15的屏幕1500示出了用户238可以选择不同的当前颜色1216的示例。

在一些实施方式中,用户238可以在全屏幕AR用户显示144与具有AR效果420和/或AR动作216的用户238的半屏幕或部分屏幕132视图之间切换。在一些实施方式中,向用户238呈现关闭AR效果420的选项。根据一些实施方式,然后,用户238可以将美容产品数据302应用于自己,并使用AR动作216来帮助自己应用美容产品数据304。

图5A、图5B和图5C示出了根据一些实施方式的AR教程143的操作500A、500B和500C。摄像装置130、屏幕132、AR教程显示142、AR教程143、AR用户显示144和移动设备146与图1中具有相同编号的元素相同或相似。教程动作216A、216B、216C、教程效果218A、218B、218C、AR动作217A、217B、217C、AR效果219A、219B、219C、演示者236、美容产品224、回放速度值210和用户238与图2中具有相同编号的元素相同或相似。回放速度条414、播放条422、当前播放424A、424B、424C、步骤标记426、后退428、教程中的时间430A、430B、430C、捕获432、同步434与图4中具有相同编号的元素相同或相似。

图5A、图5B和图5C示出了教程动作216A、216B、216C和教程效果218A、218B、218C分别与AR动作217A、217B、217C和AR效果219A、219B、219C同步434。图5A示出了教程中的时间“0:12”或12秒。图5B示出了教程中的时间“0:17”或17秒。图5C示出了教程中的时间“0:22”或22秒。AR动作217A、217B和217C分别模拟教程动作216A、216B和216C的动作。AR效果219A、219B、219C分别模拟教程效果218A、218B、218C。将教程动作216和教程效果218分别与AR动作217和AR效果219同步,使得用户238能够看到美容产品224的应用在她身上的样子,其方式与美容产品224的应用应用于演示者236的方式类似。

图6和图7相互结合地公开。图6示出了根据一些实施方式使用AR教程602的流程图600。图7示出了根据一些实施方式的进入点608。屏幕600与图1的屏幕132相同或相似。摄像装置130、AR教程显示142、AR用户显示144、移动设备146与图1中具有相同编号的元素相同或相似。AR教程606与图1中的AR教程143相同或相似。

AR教程606的用户238(未示出)使用具有摄像装置130的移动设备146。用户238选择610命令112,以从进入点608进入AR教程606。例如,如图8所示,用户238选择610命令112捕获832进入AR教程606,其中AR教程606正在屏幕800中被突出显示或预览。如图7所示,用户可以经由AR教程转盘702、发现节目704、情境706或搜索708进入AR教程606。情境706指示可以在用户238正在执行的另一任务的情境中向用户238提供AR教程606(图6)。例如,用户可能正在观看视频或接收图像,并被提供到AR教程606的链接,该AR教程606将教用户如何化妆,以看起来像视频或图像中的人。

图8、图9和图10示出了根据一些实施方式的进入点。图8示出了根据一些实施方式的AR教程转盘702。屏幕800与图1的屏幕132相同或相似。摄像装置130、AR用户显示144和移动设备146与图1中具有相同编号的元素相同或相似。用户238与图2中的用户238相同或相似。AR效果420和后退428与图4中具有相同编号的元素相同或相似。AR教程606与图6中的AR教程606相同或相似。手指810是用户238的手指。

捕获832指示通过捕获832而突出显示的AR教程606正在AR用户显示144上被预览,并且用户238具有添加至用户238的根据AR教程606的AR效果420。用户238可以预览AR教程606,并且通过在捕获832图标下放置AR教程图标805来确定是否进入AR教程606。根据一些实施方式,AR教程606的AR教程数据202可以被称为

图9示出了根据一些实施方式的进入AR教程的进入点608。屏幕900与图1中的屏幕132相同或相似。移动设备146与图1中具有相同编号的元素相同或相似。后退428与图4中具有相同编号的元素相同或相似。手指810与图8中具有相同编号的元素相同或者相似。AR教程906A和906B与图6中的AR教程606相同或相似。发现节目904与图7中的发现节目704相同或相似。搜索902与图7中的搜索708相同或相似。

用户238(未示出)例如用手指810的选择610(图6)将用户238带入图6的屏幕600。用户238可以通过在搜索902中输入一个或更多个搜索项并从搜索结果(未示出)中选择AR教程来选择610AR教程906A、906B。用户可以从订阅906中选择610(图6)AR教程906A。用户可以从发现节目904中选择610AR教程906B。AR教程906A、906B可以显示信息907B和/或图像909B。信息907B和/或图像909B可以包括来自AR教程数据202的信息,例如教程信息232、演示者236等。在一些实施方式中,选择后退428将用户返回至图9的屏幕900之前的屏幕(未示出)。

图10示出了根据一些实施方式的进入点608。屏幕1000与图1的屏幕132相同或相似。AR用户显示144和移动设备146与图1中具有相同编号的元素相同或相似。后退428与图4中具有相同编号的元素相同或相似。AR教程606与图6中的AR教程606相同或相似。手指810与图8中的手指810相同或相似。根据一些实施方式,选择图标1002示出了当被用户选择时将用户带到图6的屏幕600的图标。屏幕1000示出了根据一些实施方式的AR教程606的预览。

图11示出了根据一些实施方式的进入点。移动设备146、AR教程显示142和AR用户显示144与图1中具有相同编号的元素相同或相似。用户238与图2中的用户238相同或相似。AR效果420、捕获432、后退428与图4中具有相同编号的元素相同或相似。手指810与图8中具有相同编号的元素相同或相似。

AR教程1102的预览可以包括教用户238如何使用AR教程606(其是AR教程1102的预览的主题)的教导信息,例如如何逐步通过AR教程606的指示。AR效果420被添加至用户238中。用户238可以通过观看屏幕1100预览作为AR教程显示142的主题的AR教程与AR效果420的结果。

例如用手指810选择610(图6)捕获432将用户238带到图6的屏幕600。在一些实施方式中,用户238已经在图6的AR教程606中,并且AR教程1102的预览是AR教程606的开始屏幕,以向用户238提供信息,例如关于如何使用AR教程606的教导信息、使用的化妆类型等。在一些实施方式中,可以在屏幕1100中显示附加信息,例如来自AR教程数据202的信息。

返回至图6,一旦用户选择610从进入点608进入AR教程606,如结合图7至图11所公开的,用户的选项包括捕获图像616A、完成AR教程622、或退出613AR教程606。用户选择捕获图像616A将用户带到屏幕1200B或1300。用户可以通过预览和发送流628A完成612A并返回至屏幕600,如结合图12和13所公开的。用户可以经由切换至全摄像装置632/从全摄像装置632切换来从预览和发送流628A移动至全摄像装置630。例如,如图12所示,用户238可以选择全屏幕1216以经由全屏幕1302进入图13的屏幕1300。

根据一些实施方式,完成AR教程606的用户将用户带到全摄像装置630。例如,如图13所示,AR用户显示144处于全屏幕模式。用户可以返回620至屏幕600,如结合图13所公开的。例如,如图13所示,用户238可以选择后退428。

用户可以用全摄像装置624完成。例如,如图13所示,用户238可以从屏幕1300选择后退428,以用全摄像装置624完成并被带到返回至进入点614。用户可以切换至全摄像装置632/从全摄像装置632切换,以返回至预览和发送流628A。例如,如图13所示,当用户238经由全屏幕1302进入1300时,用户238可以选择后退428以返回至图12的屏幕1200A。用户可以捕获图像616B以被带到预览和发送流628B。例如,如图13所示,用户238可以通过选择捕获432来捕获图像以被带到图14的屏幕1400。用户可以从预览和发送流628B完成612B。例如,如结合图14所公开的,用户238可以返回1456以返回至进入点614。

用户可以从AR教程606退出613,以进入返回至进入点614。例如,图4的用户238可以选择后退428以返回至前一屏幕。返回进入点614将用户返回至另一屏幕,该另一屏幕不是AR教程606的一部分并且可以是用户在进入AR教程606之前呈现的最后一个屏幕,例如图8的屏幕800。

图12示出了根据一些实施方式捕获图像。屏幕1200A和屏幕1200B与图1的屏幕132相同或相似。摄像装置130、AR教程显示142、AR用户显示144和移动设备146与图1中具有相同编号的元素相同或相似。演示者236和用户238与图2中具有相同编号的元素相同或相似。教程动作408、教程效果410、AR动作216、AR效果420、后退428、捕获432与图4中具有相同编号的元素相同或相似。AR教程606与图6中的AR教程606相同或相似。手指810与图8中的手指810相同或相似。

在AR教程显示606期间,用户238可以用她的手指810选择捕获432。当用户238选择捕获432时,它调用捕获图像1202命令,该命令捕获所捕获的图像1214。捕获图像1201是命令112。根据一些实施方式,用户238可以编辑和增强1208所捕获的图像1214,保存1210所捕获的图像1214,发送1212所捕获的图像1214,或进行1204后退428。根据一些实施方式,AR效果219包括在所捕获的图像1214中,AR动作217不包括在所捕获的图像1214中。在一些实施方式中,AR动作217包括在所捕获的图像1214中。在一些实施方式中,向用户238提供选项以包括AR动作217。

根据一些实施方式,返回1206将用户从屏幕1200B返回至前一屏幕1200A。根据一些实施方式,在用户238保存1210所捕获的图像1214、发送1212所捕获的图像1214或选择进行1204后退428之后,屏幕1200B可以返回1206至屏幕1200A。在一些实施方式中,当用户238例如用手指810选择捕获432时,AR用户显示144占据整个屏幕1200B,例如屏幕1300,而不是屏幕1200B的一半。在一些实施方式中,选择全屏幕1216将用户238带到图13的屏幕1300。

图13示出了根据一些实施方式捕获图像。屏幕1300与图1的屏幕132相同或相似。摄像装置130、屏幕1300、移动设备146、AR用户显示144与图1中具有相同编号的元素相同或相似。用户238、AR效果420、后退428、返回428、捕获432与图4中具有相同编号的元素相同或相似。AR教程606与图6中的AR教程606相同或相似。手指810与图8中的手指810相同或近似。

屏幕1300是来自摄像装置130的用户238的实况图像。根据一些实施方式,用户238通过完成图6的AR教程622或者通过选择图12的全屏幕1216来进入屏幕1300,以调用全屏幕1302命令。全屏幕1302是命令112。用户238通过选择捕获432进入图14的屏幕1400。例如,用她的手指810。编辑和增强1308提供了用于向屏幕1300添加附加效果1306的选项。AR效果420包括在屏幕1300中。AR用户显示144显示在全屏幕上。根据一些实施方式,后退428将用户238带到前一屏幕,例如图12的屏幕1200A或图4的屏幕132。

图14示出了根据一些实施方式的所捕获的图像1414和1464。屏幕1400、1450与图1的屏幕132相同或相似。摄像装置130、AR用户显示144和移动设备146与图1中具有相同编号的元素相同或相似。AR效果219、后退428和用户238与图4中具有相同编号的元素相同或相似。AR教程606与图6中的AR教程606相同或相似。手指810与图8中的手指810相同或相似。

AR用户显示144在屏幕1400、1450上显示为全屏幕。图14的用户238在选择捕获1410图像的命令后来到屏幕1400。例如,图13的用户238选择捕获432以到达屏幕1400。捕获1410、选择发送1402、返回1224和返回1456是命令112。用户238可以发送1212所捕获的图像1414。例如,用户238可以选择发送1412,其发送所捕获的图像1414。AR教程606可以在发送所捕获的图像414之后调用返回1406、1456。用户238可以通过选择后退1404、1454或后退428来返回1406、1456至前一屏幕,例如屏幕1300。用户238可以用她的手指810进行选择。例如,用户238可以用手指810选择发送1412。用户238可以保存1410所捕获的图像1414。用户238可以编辑和增强1408所捕获的图像1414,例如修改图像以添加附加效果1224。所捕获的图像4104包括AR效果420。

用户238在选择发送屏幕1400的图像的命令后来到屏幕1450。例如,用户238选择发送1212。AR教程606可以修改所捕获的图像1464,以在发送所捕获的图像1464之前添加附加效果1456。附加效果1456识别AR教程606的创建者,识别与AR教程606相关联的节目,和/或提供来自AR教程数据202的其他信息。用户238可以基于定时器或选择后退428、1454而返回1456。附加效果1456可以包括在AR教程数据202(例如教程信息232或演示者236)中。

图15示出了根据一些实施方式的美容产品的信息1500。移动设备146和AR教程142与图1中具有相同编号的元素相同或相似。屏幕1500与图1中的屏幕132相同或相似。后退428和美容产品224B与图4中具有相同编号的元素相同或相似。

用户可以从选择1510到达屏幕1500。选择1510是命令112。例如,参照图4,用户238可以选择美容产品224B。后退428将用户带回至用户来时的屏幕。例如,回到图4的屏幕132。制造商1502是美容产品224B的制造商。制造商可以包括在图3的美容产品数据302中。热链接1504是购买或提供关于美容产品224B的附加信息的一个或更多个链接。热链接包括在图3的购买页面306和/或美容产品信息304中。当前颜色1508指示当前选择的美容产品224B的变体,例如图3的颜色316。竞争对手1506提供对美容产品224B的竞争对手的指示。竞争对手可以包括在竞争产品328中。选择竞争对手1506将用户带到具有关于竞争对手的信息的屏幕(未示出)。与所示的相比,可以显示不同的信息,例如来自图2的AR教程数据202和/或图3的美容产品数据302的信息。

图16示出了根据一些实施方式的AR教程1600的步骤。步骤标记1612与图4的步骤标记426相同或相似。当前播放1614与当前播放424相同或相似。播放条1610与播放条422相同或相似。美容产品1606与结合图3公开的美容产品数据302相同或相似。步骤1608与图2的步骤N 204相同或近似。AR教程1600与AR教程143相同或相似。

播放条1616指示AR教程1600的持续时间。步骤1 1608A是从播放条1610的开始到步骤标记1612A。步骤2 1608B是从步骤标记1612A到步骤标记1612B。步骤3 1608C是从步骤标记1612B到播放条1610的结束。步骤1608可以包括不同的参数,例如针对每个步骤1608的不同美容产品1606。每个步骤1608可以具有一个或更多个美容产品1606。例如,如图17所示,屏幕1700A,其可以是AR教程1600的步骤1 1608A,包括美容产品224A和美容产品224B;并且屏幕1700B,其可以是步骤21608B,包括美容产品1706A和美容产品1706B。

每一步,例如1608A、1608B和1608C,可以指示教程中的不同步骤。在一个示例中,步骤1 1608A是用美容产品1606A进行清洁,步骤2 1608B是使用美容用品1606B涂粉底,以及步骤3 1608C是使用美容产品1606C涂腮红。

图17示出了根据一些实施方式的图16的向前1604和后退1602。摄像装置130、屏幕132、AR教程显示143、AR用户显示144和移动设备146与图1中具有相同编号的元素相同或相似。演示者236、美容产品224、回放速度值210、回放速度条414、用户238、播放条422、步骤标记426、后退428、捕获432、教程动作216、教程效果218、AR动作217、AR效果219、当前播放424A、424B、教程中的时间430A、430B与图4中具有相同编号的元素相同或相似。向前1604、后退1602和AR教程1600与图16中的AR教程1600相同或相似。

如图17所示,屏幕1700A指示步骤1例如步骤1 1608A结束。根据一些实施方式,用户238可以通过选择下一个1702来调用向前1604。根据一些实施方式,向前1604是命令112。根据一些实施方式,用户238可以通过在步骤标记426A之后移动当前播放424A来调用向前1604。根据一些实施方式,用户238可以通过选择后退426来调用后退1602。AR教程1600可以通过将当前播放424A移动至前一步骤1608A、1608B、1608C中的位置来响应后退1602。后退1602是命令112。用户238可以通过将当前播放424B移动至步骤标记426A之前的位置来调用后退1602,使得当前播放424B在前一步骤内。用户238可以以不同的方式在步骤1608A、1608B、1608C之间移动。

图18是示出根据一些实施方式的AR教程系统1800的示例的框图。AR教程系统1800包括客户端设备102,其托管包括AR教程应用1804的许多应用。客户端设备1802包括AR教程客户端应用1814,其经由网络1806(例如,因特网)通信地耦接至消息服务器系统1808。

AR教程客户端应用1814能够经由网络1806与AR教程服务器系统1808进行通信和交换数据。AR教程客户端应用1814与AR教程服务器系统1808之间交换的数据包括功能(例如,调用功能的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。例如,AR教程应用1804可以与AR教程模块1802相同或相似,并且交换的数据可以包括AR教程客户端应用1814。AR教程服务器系统1808可以包括可被下载到客户端设备1802的AR教程数据202、美容产品日期302和AR教程服务器应用1814。AR教程客户端应用1804和/或AR教程服务器应用1814可以与AR教程模块102相同或相似。

AR教程服务器系统1808经由网络1806向AR教程客户端应用1804提供服务器端功能。虽然AR教程系统1800的某些功能在本文中被描述为由AR教程客户端应用1804或由AR教程服务器系统1808执行,但是某些功能在AR教程客户端应用1804或AR教程服务器系统1808中的位置是设计选择。例如,从技术上来说,最初在AR教程服务器系统1808中部署某些技术和功能,但是随后将此技术和功能迁移至客户端设备1802具有足够处理能力的AR教程客户端应用1804中可以是优选的。在一些实施方式中,AR教程服务器应用1814为AR教程客户端应用1804提供与AR教程有关的功能。

AR教程服务器系统1808支持向AR教程客户端应用1804提供的各种服务和操作。这样的操作包括向AR教程客户端应用1804发送数据、从AR教程客户端应用1804接收数据、以及处理由AR教程客户应用1804生成的数据。该数据可以包括AR教程模块1802、AR教程数据1902、美容产品数据2002、客户端设备信息、地理位置信息、媒体注释和叠加、社交网络信息和实况事件信息作为示例。通过经由AR教程客户端应用1804的用户界面(UI)可用的功能来调用和控制AR教程系统1800内的数据交换。

现在具体转至AR教程系统1800,应用程序接口(API)服务器1810耦接至应用服务器1812,并为其提供编程接口。应用服务器1812通信地耦接至数据库服务器1818,这有助于访问存储有与AR教程客户端应用1804和AR教程服务器应用1814相关联的数据的数据库1820。

API服务器1810在客户端设备1802与应用服务器1812之间接收和发送数据。具体地,API服务器1810提供一组接口(例如例程和协议),所述一组接口可以由AR教程客户端应用1804调用或查询,以便调用应用服务器1812的功能。API服务器1810公开应用服务器1812支持的各种功能,包括帐户注册、登录功能、经由应用服务器1812向AR教程客户端应用1804发送数据和应用/从AR教程客户端应用1804接收数据和应用。数据和应用可以包括AR教程模块102、AR教程数据202、美容产品数据302、媒体文件(例如,AR教程或针对AR教程的广告)。数据可以经由AR教程服务器系统1808从客户端设备1802A发送至客户端设备1802B。例如,客户端设备1802A可以创建AR教程数据202,并且客户端设备1802B可以下载AR教程数据206,并从客户端设备1802B用AR教程数据202执行AR教程模块102。此外,根据一些实施方式,客户端设备1802可以经由AR教程服务器系统1808访问因特网。AR教程服务器系统1808提供对客户端设备1802其他数据的访问,包括媒体数据的集合(例如教程或故事)、检索客户端设备1802的用户的好友的列表、检索这样的集合、检索消息和内容、向社交图添加和删除好友、社交图中好友的位置、打开应用事件(例如,关于AR教程客户端应用1804),并搜索AR教程。

应用服务器1812托管许多应用和子系统,包括AR教程服务器应用1814、图像处理系统1816和社交网络系统1822。AR教程服务器应用1814实现了许多AR教程处理技术和功能,特别是关于针对AR教程的广告、AR教程的创建、和AR教程的播放。如本文所公开的,来自多个源的文本和媒体内容可以聚合为内容的集合(例如,称为故事、图库或AR教程)。应用服务器1812还包括图像处理系统1816,该图像处理系统1816专门用于通常关于在AR教程客户端应用1804处的消息的有效载荷内接收的图像或视频执行各种图像处理操作。例如,在一些实施方式中,图像处理系统1816可以执行确定身体部位模块124、确定效果模块128或确定动作模块122的功能中的一个或更多个功能。

应用服务器1822支持各种社交网络功能和服务,并且使这些功能和服务对AR教程应用1814可用。为此,社交网络系统1822维护并访问数据库1820内的实体图2004(如图20所示)。由社交网络系统822支持的功能和服务的示例包括识别特定用户与之有关系或特定用户“关注”的AR教程系统1800的其他用户,以及还识别特定用户的其他实体和兴趣,例如已提供AR教程的用户。应用服务器1812通信地耦接至数据库服务器1818,这有助于访问数据库1820,数据库1820中存储有与AR教程应用1814所处理的AR教程相关联的数据。

图19是示出根据示例实施方式的关于AR教程系统1800的另外的细节的框图。客户端设备1802可以包括消息传送客户端应用1905,该消息传送客户端应用1905可以包括短暂定时器系统1902、集合管理系统1904和注释(annotation)系统1906。例如,消息传送客户端应用2105可以用于编辑、增强和/或将客户端设备1801的屏幕作为消息发送或保存为故事。

应用服务器1812可以包括消息服务器应用1914。短暂定时器系统1902负责实施对由消息传送客户端应用1905和消息传送服务器应用1914允许的内容的临时访问。为此,短暂定时器系统1902结合了多个定时器,这些定时器基于与消息或消息的集合(例如,故事)相关联的持续时间和显示参数,选择性地显示消息和相关联的内容以及使得能够经由经由消息传送客户端应用1905访问消息和相关联的内容。

集合管理系统1904负责管理媒体的集合(例如,文本、图像视频、AR教程数据、美容产品和音频数据的集合)。在某些示例中,内容的集合(例如消息,包括图像、视频、文本和音频)可以被组织为“事件库”或“事件故事”和/或“妆发教程”。可以使这样的集合在指定时间段(例如与内容有关的事件的持续时间)内可用。例如,可以使与音乐会相关的内容在该音乐会的持续时间内作为“故事”可用。集合管理系统1904还可以负责发布向AR教程客户端应用1804的用户界面发布提供存在特定集合的通知的图标。

集合管理系统1904还包括策展(curation)接口1908,策展接口1908使得集合管理者能够管理和策展特定的内容的集合。例如,策展接口1908使得事件组织者能够策展与特定事件有关的内容的集合(例如,删除不适当的内容或冗余消息)。此外,集合管理系统1904采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些实施方式中,可以向用户支付补偿以将用户生成的内容包括到集合中。在这样的情况下,策展接口1908进行操作以自动向这样的用户支付费用以使用其内容。

注释系统1906提供使得用户能够注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统1906提供与生成和发布用于由AR教程系统1800处理的消息的媒体叠加相关的功能。注释系统1906基于客户端设备2102的地理位置可操作地向消息传送客户端应用1905供应媒体叠加或补充(例如,图像过滤)。在另一示例中,注释系统1906基于其他信息,例如客户端设备1802的用户的社交网络信息,可操作地向消息传送客户端应用1905提供媒体叠加。媒体叠加可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标志、动画和声音效果。视觉效果的示例包括颜色叠加。音频和视觉内容或视觉效果可以应用于客户端设备1802上的媒体内容项(例如,照片)。例如,媒体叠加可以包括可以叠加在客户端设备2102拍摄的照片之上的文本。在另一示例中,媒体叠加包括位置标识(例如,威尼斯海滩)叠加、AR教程的名称、提供AR教程的节目的名称、实况事件的名称或商家名称(例如,海滩咖啡馆)叠加。在另一示例中,注释系统1906使用客户端设备2102的地理位置来识别包括客户端设备2102的地理位置处的商家名称的媒体叠加。媒体叠加可以包括与商家相关联的其他标记。媒体叠加可以存储在数据库1820中,并通过数据库服务器1818访问。

在一个示例实施方式中,注释系统1906提供基于用户的发布平台,该基于用户的发布平台使得用户能够选择身体部位并上传与身体部位相关联的内容用于AR教程。用户还可以指定应当向其他用户提供特定媒体叠加的环境。注释系统1906生成包括所上传的内容的媒体叠加,并将所上传的内容与所选择的身体部位相关联,以使得用户设备1802的用户能够基于身体部位搜索AR教程。

在另一示例实施方式中,注释系统1906提供基于商家的发布平台,基于商家的发布平台使得商家能够通过投标过程选择与身体部位相关联的特定媒体叠加。例如,注释系统1906在预定义时间量内将最高出价商家的媒体叠加与对应的身体部位相关联。

图20是示出根据某些示例实施方式的可以存储在AR教程服务器系统1808的数据库1820中的数据结构2000的示意图。虽然数据库1820的内容被示为包括多个表,但是应当理解,数据可以存储在其他类型的数据结构中(例如,作为面向对象的数据库)。

数据库1920包括存储在消息表2014中的消息数据。实体表2002存储实体数据,包括实体图2004。在实体表2002内维护其记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管类型如何,AR教程服务器系统1808存储关于其的数据的任何实体都可以是被识别的实体。每个实体设置有唯一标识符以及实体类型标识符(未示出)。

实体图2004还存储关于实体之间的关系和关联的信息。仅作为示例,这样的关系可以是基于感兴趣的或基于活动的社交关系、专业关系(例如,在共同的公司或组织工作)。

数据库1820还在注释表2012中以过滤器的示例形式存储注释数据。过滤器(针对其的数据存储在注释表2012内)与AR教程、视频(针对其的数据存储在视频表2010中)和/或图像(针对其的数据存储在图像表2008中)相关联,并且被应用于AR教程、视频和/或图像。在一个示例中,过滤器是在呈现给接受者用户期间被显示为叠加在AR教程、图像或视频上的叠加。过滤器可以是各种类型,包括当发送方用户正在编写消息时由消息传送客户端应用2205向发送方用户呈现的过滤器的库中的用户所选择的过滤器。其他类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理位置而被呈现给发送方用户。例如,基于客户端设备2102的GPS单元确定的地理位置信息,消息传送客户端应用2205可以在用户界面内呈现特定于邻域或特殊位置的地理位置过滤器。另一类型的过滤器是数据过滤器,其可以由消息传送客户端应用2205基于在消息创建过程期间由客户端设备1802收集的其他输入或信息来选择性地呈现给发送方用户。数据过滤器的示例包括特定位置处的当前温度、AR教程的当前演示者、提供AR教程内容的当前节目、当前身体部位、当前美容产品、发送方用户行进的当前速度、客户端设备1802的电池寿命或当前时间。

可以存储在图像表2008内的其他注释数据是与

视频表2010存储视频数据,在一个实施方式中,视频数据与在消息表2014内维护其记录的消息、美容数据或AR教程相关联。类似地,图像表2008存储图像数据,该图像数据与其消息数据存储在实体表2002中的消息相关联。实体表2002可以将来自注释表2012的各种注释与存储在图像表2008和视频表2010中的各种AR教程、美容产品、图像和视频相关联。

音频表2016存储音频数据,在一个实施方式中,该音频数据与在消息表2014内维护其记录的消息或AR教程相关联。类似地,音频表2016存储音频数据,该音频数据与其消息数据或AR教程数据存储在实体表2002中的消息或AR教程相关联。实体表2002可以将来自注释表2012的各种注释与音频表2016中存储的各种音频数据或AR教程数据2020中存储的AR教程相关联。音频数据可以与视频数据、消息数据、故事数据、AR教程数据、美容产品或经由实体图2004的其他类型的数据相关联。在一些实施方式中,音频表316存储歌曲。

集合表2006存储关于AR教程、美容产品、消息和相关联的图像、视频或音频数据的集合的数据,所述AR教程、美容产品、消息和相关联的图像、视频或音频数据被汇编成集合(例如,故事、集合、妆发、身体部位、图像演示或图库)。特定集合的创建可以由特定用户发起(例如,在实体表2002中维护其记录的每个用户)。用户可以以已经由该用户创建和发送/广播的内容集合的形式创建用户集合或“个人故事”。为此,消息传送客户端应用2104的用户界面可以包括用户可选择以使得发送方用户能够将特定内容添加至他或他的用户集合或个人故事的图标。

集合还可以构成“实况故事”,其是来自多个用户的内容的集合,该内容集合是手动地、自动地或者使用手动技术和自动技术的组合而创建的。例如,同期的集合或“实况故事”可以构成来自不同位置、事件、美容产品或身体部位的用户提交内容的策展流(curatedstream)。客户端设备具有启用的位置服务并且在特定时间处于共同位置事件处的用户可以例如经由消息传送客户端应用1804的用户界面而被呈现以选项,以向特定的同时期集合(contemporaneous collection)或实况故事贡献内容。可以由消息传送客户端应用1804基于用户的位置向他或她标识同时期集合或实况故事。最终的结果是从社区的角度讲述的同时期集合或“实况故事”。

另外类型的内容集合被称为位置集合或“位置故事”,其使得客户端设备1802位于特定地理位置(例如,在学院或大学校园)内的用户能够对特定集合做出贡献。在一些实施方式中,对位置集合或位置故事的贡献可能需要用于验证终端用户属于特定组织或其他实体(例如,是大学校园中的学生)的二级认证。AR教程数据2020包括如本文所公开的AR教程数据202。美容产品2018包括如本文所公开的美容产品数据302。在一些实施方式中,内容集合可以被称为“妆发”,并且与身体部位、提供AR教程内容的节目和/或演示者相关联。

图21是机器2100的图形表示,在该机器2100内可以执行用于使机器2100执行本文所讨论的方法中的任何一个或更多个方法的指令2108(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令2108可以使机器2100执行本文所描述的方法中的任何一个或更多个方法或功能。指令2108将通用的未编程机器600转换成特定机器2100,该特定机器2100被编程为以所描述的方式执行所描述和所示出的功能。机器2100可以作为独立设备操作,或者可以耦接(例如,联网)至其他机器。在联网部署中,机器2100可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器2100可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、PDA、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器2100采取的动作的指令2108的任何机器。此外,虽然仅示出了单个机器2100,但是术语“机器”还应被视为包括单独或联合执行指令2108以执行本文所讨论的任何一个或更多个方法的机器的集合。在一些实施方式中,机器2100的装置被配置成执行如本公所公开的一个或更多个功能。

机器2100可以包括处理器2102、存储器2104和I/O部件2138,所述处理器2102、存储器2104和I/O部件2138可以被配置成经由总线2140彼此通信。在示例实施方式中,处理器2102(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如执行指令2108的处理器2106和处理器2110。术语“处理器”旨在包括多核处理器,所述多核处理器可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。虽然图21示出了多个处理器2102,但是机器2100可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任何组合。

存储器2104包括主存储器2112、静态存储器2114和存储单元2116,所述主存储器2112、静态存储器2114和存储单元2116均可由处理器2102经由总线2140访问。主存储器2104、静态存储器2114和存储单元2116存储实施本文所描述的任何一种或更多种方法或功能的指令2108。指令2108还可以在其被机器2100执行期间完全地或部分地驻留在主存储器2112内、在静态存储器2114内、在存储单元2116内的机器可读介质2118内、在处理器2102中的至少一个处理器内(例如,在处理器的高速缓存存储器内)或其任何合适的组合内。

I/O部件2138可以包括接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器中的特定I/O部件2138将取决于机器的类型。例如,便携式机器(诸如移动电话)可以包括触摸输入设备或其他这样的输入机构,而无头服务器机器将可能不包括这样的触摸输入设备。将理解,I/O部件2138可以包括图21中未示出的许多其他部件。在各种示例中,I/O部件2138可以包括用户输出部件2124和用户输入部件2126。用户输出部件2124可以包括视觉部件(例如,显示器,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、触摸屏、投影仪或阴极射线管(CRT))、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。用户输入部件2126可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于指向的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或另一指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。

在其他示例实施方式中,I/O部件2138可以包括生物识别部件2128、动作部件2130、环境部件2132、或定位部件2134以及各种其他部件。例如,生物识别部件2128包括用于检测表达(例如,手表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,声音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。动作部件2130包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)。环境部件2132包括例如一个或多个摄像装置(具有静止图像/照片和视频能力的)、照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、邻近传感器部件(例如,检测附近物体的红外传感器)、气体传感器(例如,出于安全考虑而检测危险气体的浓度或用于测量大气中的污染物的气体检测传感器)、或可以提供与周围物理环境相对应的指示、测量或信号的其他部件。定位部件2134包括位置传感器部件(例如,GPS接收器部件)、海拔传感器部件(例如,检测气压的高度计或气压计,可以根据气压得到海拔)、取向传感器部件(例如,磁力计)等。

可以使用各种技术来实现通信。I/O部件2138还包括通信部件2136,通信部件2136可操作以经由相应的耦接或连接将机器2100耦接至网络2120或设备2122。例如,通信部件2136可以包括网络接口部件或另一合适的设备以与网络2120对接。在其他示例中,通信部件2136可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、

此外,通信部件2136可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件2136可以包括射频识别(RFID)标签读取器部件、NFC智能标签检测部件、光学读取器部件(例如,用于检测下述项的光学传感器:一维条形码,例如通用产品代码(UPC)条形码;多维条形码,例如快速响应(QR)代码、Aztec代码、数据矩阵、数据图示符(Dataglyph)、最大编码(MaxiCode)、PDF417、超代码、UCC RSS-2D条形码和其他光学代码)、或者听觉检测部件(例如,用于识别已标记的音频信号的麦克风)。另外,可以经由通信部件2136得到各种信息,例如经由因特网协议(IP)地理位置得到的位置、经由

各种存储器(例如,主存储器2112、静态存储器2114和/或处理器2102的存储器)和/或存储单元2116可以存储一个或更多个指令集合和数据结构(例如,软件),所述一个或更多个指令集合和数据结构实施本文所描述的任何一种或更多种方法或功能,或者被本文所描述的任何一种或更多种方法或功能使用。这些指令(例如,指令2108)在由处理器2102执行时使各种操作实现所公开的实施方式。

可以使用传输介质、经由网络接口设备(例如,包括在通信部件2136中的网络接口部件)并使用若干公知的传输协议中的任何一种传输协议(例如,超文本传输协议(HTTP))在网络2120上发送或接收指令2108。类似地,可以使用传输介质经由到设备2122的耦接(例如,对等耦接)来发送或接收指令2108。

图22是示出软件架构2204的框图2200,该软件架构2204可以安装在本文所描述的任何一个或更多个设备上。软件架构2204由硬件例如包括处理器2220、存储器2226和I/O部件2238的机器2202支持。根据一些实施方式,机器2202与机器2100相同或相似。在该示例中,软件架构2204可以被概念化为层的堆叠,在层的堆叠中,每个层提供特定的功能。软件架构2204包括诸如操作系统2212、库2210、框架2208和应用2206的层。在操作上,应用2206通过软件堆栈来激活API调用2250并响应于API调用2250来接收消息2252。

操作系统2212管理硬件资源并提供公共服务。操作系统2212包括例如核2214、服务2216和驱动器2222。核2214充当硬件层与其他软件层之间的抽象层。例如,核2214提供存储器管理、处理器管理(例如,调度)、部件管理、网络和安全设置以及其他功能。服务2216可以为其他软件层提供其他公共服务。驱动器2222负责控制底层硬件或与底层硬件接口。例如,驱动器2222可以包括显示驱动器、摄像装置驱动器、

库2210提供由应用2206使用的低级公共基础设施。库2210可以包括系统库2218(例如,C标准库),系统库2218提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。此外,库2210可以包括API库2224,例如媒体库(例如,用于支持各种媒体格式的呈现和操作的库,所述各种媒体格式例如运动图像专家组-4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))、图形库(例如,用于在显示器上的图形内容中以二维(2D)和三维(3D)进行呈现的OpenGL框架)、数据库库(例如,提供各种关系数据库功能的SQLite)、web库(例如,提供网页浏览功能的WebKit)等。库2210还可以包括多种其他库2228,以向应用2206提供许多其他API。

框架2208提供由应用2206使用的高级公共基础设施。例如,框架2208提供各种图形用户界面(GUI)功能、高级资源管理和高级位置服务。框架2208可以提供可由应用2206使用的广泛的其他API,其中的一些API可以专用于特定的操作系统或平台。

在示例实施方式中,应用2206可以包括主页应用2236、联系人应用2230、浏览器应用2232、图书阅读器应用2234、位置应用2242、媒体应用2244、消息传送应用2246、游戏应用2248以及广泛分类的其他应用例如第三方应用2240。应用2206是执行程序中限定的功能的程序。可以使用各种编程语言来创建以各种方式构造的应用2206中的一个或更多个,所述编程语言例如面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如C或汇编语言)。在特定示例中,第三方应用2240(例如,由特定平台的供应商以外的实体使用ANDROID

图23示出了根据一些实施方式的提供增强现实美容产品教程的方法2300。在操作2302处,方法2300开始,在计算机设备的屏幕的第一部分上显示美容产品教程,该美容产品教程包括演示者将美容产品应用于演示者的身体部位的预先记录的图像。例如,如结合图4所公开的,AR教程143在计算设备146的屏幕132的AR教程显示142上显示演示者236,其中美容产品224被应用于身体部位224A。此外,如结合图1所公开的,生成教程图像模块104被配置成根据AR教程数据202生成要显示在AR教程显示142上的AR教程图像138,该AR教程数据202在每个步骤N 204中包括身体部位222、美容产品224和演示者236。在其他示例中,图5A、图5B、图5C和图12示出了操作2302的示例。

在操作2304处,方法2300继续确定第一效果,该第一效果指示对用户的实况图像进行的改变以模拟将美容产品应用于用户的身体部位,其中第一效果是基于第二效果确定的,该第二效果指示由于将美容产品应用于演示者的身体部位而对预先记录的图像的改变。例如,如结合图1所公开的,确定效果模块128被配置成根据教程效果218和/或AR教程视频228确定图2、图4、图5A、图5B、图5C、图8、图11、图12、图13和图14中的AR效果219。图5A、图5B和图5C示出了根据教程效果218A将AR效果219A、219B、219C添加至作为用户238的右眼的身体部位222的示例,该AR效果219A、219B、219C是演示者236的右眼由于应用美容产品224B和美容产品224A的变化。图5A、图5B和图5C示出了涂眼影的过程,其中具有AR效果219A、219B和219C的用户238的右眼的变化与演示者236的右眼的变化同步,演示者236的右眼的变化由教程效果218A、218B和218C指示。

在操作2306处,方法2300继续确定美容产品的第一动作指示,其中美容产品的第一动作指示是基于美容产品的第二动作指示确定的,第二动作指示指示由于美容产品的移动而对预先记录的图像的改变。

例如,确定动作模块122被配置成根据教程动作216确定图2、图4、图5A、图5B、图5C和图12中的AR动作217。图5A、图5B和图5C示出了根据教程动作216A将AR动作217A、217B、217C添加至在AR用户显示144上显示的AR用户显示140的示例,AR动作217A、217B、217C是AR教程视频228中美容产品224A的动作指示。图5A、图5B和图5C分别示出了演示者236在添加了AR动作217A、217B和217C的情况下,美容产品224A、224B和224C的同步434动作。在一些实施方式中,教程动作216是预先确定的。

在操作2308处,方法2300继续处理用户的实况图像,以添加美容产品的第一效果和第一动作指示。例如,如结合图1所公开的,生成用户图像模块108拍摄用户238的实况图像134,并将AR动作217和AR效果219添加至要在图1、图4、图5A、图5B、图5C、图8、图10、图11、图12、图13和图14的AR用户显示144上显示的实况图像134。

在操作2310处,方法2300继续在屏幕的第二部分上显示所处理的用户的实况图像。例如,生成用户图像模块108在图1、图4、图5A、图5B、图5C、图8、图10、图11、图12、图13和图14的AR用户显示144上显示AR用户图像140。在一些实施方式中,AR教程模块102的模块在屏幕132的AR用户显示144上显示AR用户图像140。在一些实施方式中,图18的客户端设备1802A、1802B的模块在屏幕132的AR用户显示144上显示AR用户图像140。

方法2300的操作中的一个或更多个可以是可选的。方法2300可以包括一个或更多个附加操作。根据一些实施方式,方法2300的操作可以以不同的顺序执行。

方法2300还可包括这样的操作,在该操作中,显示预先记录的图像和经处理的图像,使得第一效果与相应的第二效果同时显示。例如,如结合图1所公开的,同步效果和动作模块106被被配置成使AR教程视频228和AR用户图像140的所处理的视频被显示,使得教程效果218与相应的AR效果219同时显示。在另一示例中,如结合图5A、图5B和图5C所公开的,示出了向演示者236应用教程效果218A、218B和218C以及分别向用户238应用AR效果219A、219B和219C的同步434或同时显示。

方法2300还可以包括这样的操作,在该操作中,显示预先记录的图像和所处理的图像,使得第一动作指示与相应的第二动作指示同时显示。例如,如结合图1所公开的,同步效果和动作模块106被被配置成使AR教程视频228和AR用户图像140的所处理的视频被显示,使得教程动作216与相应的AR动作217同时显示。在另一示例中,如结合图5A、图5B和图5C所公开的,分别示出了对演示者236的美容产品224A的教程动作216A、216B和216C以及AR动作217A、217B和217C的同步434或同时显示。

方法2300还可以包括在用户的实况图像中确定与演示者的身体部位对应的用户的身体部位,并调整屏幕的第二部分,以便以与预先记录的图像中显示的演示者的身体部位的大小成比例的大小来显示用户的身体部位。例如,确定身体部位模块124被配置成确定实况图像134中用户238的身体部位222。在另一示例中,如结合图4所公开的,确定身体部位222确定AR教程143步骤N 202将右眼视为身体部位222。在另一示例中,生成用户图像模块108被配置成调整AR用户显示144屏幕132,以在AR用户显示114上以与AR教程视频228中显示的演示者236的身体部位222的大小成比例的大小来显示用户238的身体部位222。例如,如结合图4所公开的,以与演示者236的右眼成比例的大小显示用户238的右眼。

方法2300还可以包括由计算设备的装置执行该方法。例如,在一些实施方式中,图21的机器2100的装置可以执行方法2300。例如,仅移动设备146所需的部分可以执行方法2300。例如,AR教程模块102可以包括存储器2104和处理器2102。

方法2300还可以包括从计算设备的摄像装置接收实况图像。例如,如结合图1公开的,摄像装置130可以生成实况图像134。

方法2300还可以包括在屏幕上显示美容产品的图像,并响应于对美容产品的图像的选择而显示关于美容产品的附加信息,关于美容产品的附加信息包括购买美容产品的选项。例如,生成用户图像模块108和/或生成教程图像模块104可以在AR教程图像138和/或AR用户图像140中包括美容产品326的图像。例如,如结合图4所公开的,图像被显示为美容产品224A和美容产品224B,这可以与步骤N 204相关联。在一些实施方式中,命令响应模块110将通过显示诸如图15的屏幕1500的附加信息来响应对诸如美容产品224B的美容产品的选择。

方法2300还可以包括这样的操作,在该操作中,附加信息还包括一个用于定制美容产品的图标,并且响应于对定制美容产品图标的选择而显示定制美容产品的选项,以及响应于对定制美容产品的选项的选择而处理用户的实况图像,以基于定制美容产品的选项来修改第一效果。例如,如结合屏幕1500所公开的,可以向用户238提供定制美容产品224B的选项。继续该示例,在屏幕1500中,用户238可以选择与当前颜色1216不同的颜色。在示例中,定制美容产品是结合图2所公开的定制226。

方法2300还可以包括:定制美容产品的选项包括以下中的一个或更多个:改变美容产品的颜色、改变美容产品的刷子尺寸、改变美容产品的应用尺寸、以及改变美容产品的应用厚度。例如,可以选择不同的颜色,如图15所示。其他定制226(包括改变美容产品的刷子大小、改变美容产品的应用大小和改变美容产品的应用厚度)可以以与屏幕1500中显示的颜色变体类似的方式来显示。

方法2300还可以包括:美容产品是第一美容产品,身体部位是第一身体部位,并且响应于移动至美容产品教程的下一步骤的指示而在计算设备的屏幕的第一部分上显示第二美容产品教程,该第二美容产品教程包括演示者将第二美容产品应用于演示者的第二身体部位的预先记录的图像;确定第三效果,该第三效果指示对用户的实况图像进行的改变以模拟将第二美容产品应用于用户的第二身体部位,其中,第三效果是基于第四效果确定的,该第四效果指示由于将第二美容产品应用于演示者的第二身体部位而对预先记录的图像的改变;确定第二美容产品的第三动作指示,其中,第二美容产品的第三动作指示是基于第二美容产品的第四动作指示确定的,第四动作指示指示由于第二美容产品的移动而对预先记录的图像的改变;处理用户的第二实况图像以添加美容产品的第三效果和第三动作指示;以及在屏幕的第二部分上显示经处理的用户的第二实况图像。例如,如结合图17所示,用户238可以移动至图2的不同步骤N 202,这导致显示不同的美容产品1706A和1706B。

方法2300还可以包括:响应于来自用户的捕获图像的第一指示而捕获当前实况图像,当前实况图像包括第一效果,响应于来自用户的发送图像的第二指示而发送所捕获的当前实况图像。例如,如结合图12所公开的,用户238可以用她的手指810选择捕获432,并且作为响应,图1的命令响应模块110将捕获屏幕1200A的AR用户显示144的图像作为屏幕1200B的AR用户显示144或所捕获的图像1214。用户238可以在屏幕1200B中选择发送1212,并且作为回应,图1的命令响应模块110将发送AR用户显示144的所捕获的图像1214。结合图13和图14公开了其他示例。

方法2300还可以包括在屏幕上显示所捕获的当前实况图像期间,避免在屏幕的第一部分上显示美容产品教程,其中所捕获的当前动态图像显示在屏幕的第一部分和第二部分两者上。例如,如结合图13和14所公开的,所捕获的图像1414显示在全屏幕1400上。

方法2300还可以包括将所捕获的当前实况图像作为短暂消息发送。例如,图1的命令响应模块110被配置成通过发送结合图19公开的短暂消息来响应图12的发送1212或图14的发送1210。方法2300还可以响应于关闭增强现实的指示而处理用户的第二实况图像,以添加第一动作指示,以及在屏幕上显示经处理的用户的第二实况图像。

一些实施方式提供了这样的技术解决方案,该技术解决方案使得能够利用添加了AR效果的用户的实况视图图像将教程呈现给用户,其中AR效果反映了教程的演示者的动作。一些实施方式提供了这样的技术解决方案,该技术解决方案将预先记录的视频的动作和化妆效果与教程的用户的实况视图图像同步,其中该动作和化妆效果被添加至实况视图图像。例如,如结合图1公开的,生成用户图像模块108被配置成显示AR动作217而不显示AR效果219,使得用户238可以将美容产品224应用于用户自己。

以下讨论涉及贯穿本主题公开内容提及的各种术语或短语。“信号介质”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以有助于软件或数据的通信。术语“信号介质”应当被视为包括任何形式的调制数据信号、载波等。术语“调制数据信号”意指使其特性中的一个或更多个以对信号中的信息进行编码的方式来设置或改变的信号。术语“传输介质”和“信号介质”意指相同的介质,并且可以在本公开内容中互换使用。

“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、

“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值并且产生被应用以操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(CPU)、简化指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)或其任何组合。处理器还可以是具有两个或更多个独立处理器(有时称为“核”)的多核处理器,其可以同时执行指令。

“机器存储介质”是指存储可执行指令、例程和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库、和/或相关联的缓存和服务器)。因此,上述术语应被视为包括但不限于固态存储器以及光学和磁性介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物,并且在本公开内容中可以互换使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、调制数据信号和其他这样的介质,载波、调制数据信号和其他这样的介质中的至少一些被涵盖在术语“信号介质”中。

“部件”是指具有以下边界的设备、物理实体或逻辑:该边界由功能或子例程调用、分支点、API或被提供用于对特定处理或控制功能进行划分或模块化的其他技术来定义。部件可以经由其接口与其他部件组合以执行机器处理。部件可以是被设计用于与其他部件一起使用的经封装的功能硬件单元并且通常执行相关功能的特定功能的程序的一部分。部件可以构成软件部件(例如,在机器可读介质上实施的代码)或硬件部件。“硬件部件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施方式中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)可以通过软件(例如,应用或应用部分)被配置为用于执行如本文中描述的某些操作的硬件部件。也可以机械地、电子地或其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久地配置成执行某些操作的专用电路系统或逻辑。硬件部件可以是专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件部件还可以包括通过软件临时配置成执行某些操作的可编程逻辑或电路。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件进行配置,则硬件部件变成被唯一地定制成执行所配置的功能并且不再是通用处理器的特定机器(或机器的特定部件)。将理解的是,机械地、在专用和永久配置的电路系统中、或在临时配置的电路系统(例如,由软件配置)中实现硬件部件的决定可以由成本和时间考虑来驱动。因此,短语“硬件部件”(或者“硬件实现的部件”)应当被理解成包含有形实体,即为被物理构造、永久配置(例如,硬连线)或短暂配置(例如,编程)成以某种方式操作或者执行本文中描述的某些操作的实体。考虑硬件部件被临时配置(例如,被编程)的实施方式,无需在任一时刻对硬件部件中的每一个进行配置或实例化。例如,在硬件部件包括通过软件配置而成为专用处理器的通用处理器的情况下,可以在不同时间将通用处理器配置成各自不同的专用处理器(例如,包括不同的硬件部件)。软件相应地配置一个或多个特定处理器以例如在一个时刻处构成特定硬件部件,并且在不同的时刻处构成不同的硬件部件。硬件部件可以向其他硬件部件提供信息以及从其他硬件部件接收信息。因此,所描述的硬件部件可以被认为是通信上耦接的。在同时存在多个硬件部件的情况下,可以通过在两个或更多个硬件部件之间或之中(例如,通过适当的电路和总线)的信号传输来实现通信。在多个硬件部件在不同时间处被配置或实例化的实施方式中,可以例如通过将信息存储在多个硬件部件访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作,并且将该操作的输出存储在其通信地耦接到的存储器设备中。然后,其他硬件部件可以在随后的时间访问存储器装置以检索所存储的输出并对其进行处理。硬件部件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。在本文中描述的示例方法的各种操作可以至少部分地由被临时地配置(例如,由软件)或永久地配置以执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是永久地配置,这样的处理器可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的部件。如本文中使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中特定的一个或更多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器1004或者处理器实现的部件执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或者操作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由计算机组(作为包括处理器的机器的示例)执行,其中,这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)进行访问。某些操作的执行可以分布在处理器之间,不仅仅驻留在单个机器内,而是可以被部署在若干机器上。在一些示例实施方式中,处理器或处理器实现的部件可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施方式中,处理器或处理器实现的部件可以跨若干地理位置分布。

“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以有助于这样的指令的通信。指令可以经由网络接口设备使用传输介质在网络上发送或接收。

“计算机可读介质”是指机器存储介质和传输介质两者。因此,术语包括存储设备/介质和载波/调制数据信号两者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物,并且可以在本公开内容中可互换地使用。

“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、多个膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。在本公开内容中,客户端设备也被称为“电子设备”。

“短暂消息”是指在时间有限的持续时间内可访问的消息。短暂消息可以是文本、图像、视频等。短暂消息的访问时间可以由消息发送者设置。替选地,访问时间可以是默认设置或者由接收者指定的设置。无论设置技术如何,该消息都是暂时的。

技术分类

06120115605927