基于姿势的共享AR会话创建的制作方法


基于姿势的共享ar会话创建
1.优先权声明
2.本技术要求于2020年3月30日提交的美国临时申请序列号第63/002,099号的优先权权益,并且要求于2020年8月3日提交的美国专利申请序列号第16/983,693号的优先权权益,这两个美国申请通过引用整体并入本文中。


背景技术:



3.增强现实(augmented-reality,ar)是对虚拟环境的修改。例如,在虚拟现实(virtual reality,vr)中,用户完全沉浸在虚拟世界中,而在ar中,用户则沉浸在虚拟对象与现实世界组合或叠加的世界中。ar系统旨在生成和呈现以下虚拟对象:这些虚拟对象与现实世界环境真实交互以及彼此之间进行交互。ar应用的示例可以包括单人或多人视频游戏、即时消息传送系统等。
附图说明
4.在附图(不一定按比例绘制)中,相似的附图标记可以在不同的视图中描述类似的部件。具有不同字母后缀的相似的附图标记可以表示类似的部件的不同实例。为了容易地识别对任何特定元件或动作的讨论,附图标记中的一个或更多个最高有效数字指代首先引入该元件的图号。在附图的各图中以示例而非限制的方式示出了一些实施方式,在附图中:
5.图1是根据一些示例实施方式的可以在其中部署本公开内容的联网环境的图形表示。
6.图2是根据一些示例实施方式的消息传送客户端应用的图形表示。
7.图3是根据一些示例实施方式的如在数据库中维护的数据结构的图形表示。
8.图4是根据一些示例实施方式的消息的图形表示。
9.图5是根据一个实施方式的用于基于姿势创建共享ar会话(a shared ar session)的过程500的流程图。
10.图6示出了根据一个实施方式的基于姿势创建共享ar会话的过程600。
11.图7示出了根据一个实施方式的在图6中的操作604的细节。
12.图8示出了根据一个实施方式的第一用户(用户b)使用第一客户端设备102来捕获第二用户(用户a)的图像或视频的示例800。
13.图9示出了根据一个实施方式的使用包括在第一客户端设备102中的摄像装置捕获的图像的示例900。
14.图10是根据一些示例实施方式的呈计算机系统形式的机器的图形表示,在所述机器内可以执行指令的集合以使所述机器执行本文中讨论的方法中的任一种或更多种方法。
15.图11是示出根据示例实施方式的可以在其中实现本公开内容的软件架构的框图。
具体实施方式
16.以下描述包括体现本公开内容的说明性实施方式的系统、方法、技术、指令序列和
计算机程序产品。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明主题的各种实施方式的理解。然而,对于本领域的技术人员来说将明显的是,可以在没有这些具体细节的情况下实践本发明主题的实施方式。一般来说,公知的指令实例、协议、结构和技术不一定详细地示出。
17.此外,本公开内容的实施方式通过基于姿势建立共享ar会话(ashared ar session)来改进增强现实(ar)创建软件和系统的功能。在一个实施方式中,系统托管共享ar会话,该共享ar会话是多个用户经由客户端设备可以参与的会话。共享ar会话可以是例如ar赛车游戏,其中每个用户控制不同的汽车。用户中的每一个都在同时观看客户端设备上显示的相同共享ar场景。体验可以在所有用户之间同步和共享。在该示例中,一个用户在共享ar会话中的动作可以被同步并广播给所有其他用户。因此,共享ar会话是共享的虚拟空间,但在ar中。
18.生成共享ar会话的第一个挑战是确立哪些客户端设备是参与者。例如,在许多场景中,为了进入共享ar会话,必须以某种方式邀请经由其客户端设备的参与者。
19.在一个实施方式中,系统实现了一种基于姿势创建共享ar会话的方法。具体地,系统可以采用使用骨骼跟踪来确定共享ar会话中的参与者。在该实施方式中,与第一用户相关联的第一客户端设备捕获执行姿势的第二用户的图像或视频。第二用户与第二客户端设备相关联。第一客户端设备基于图像或视频中的姿势来生成观察到的运动数据(an observed motion data)。包括在第二设备中的传感器捕获包括第二用户的姿势的第二用户的运动,并且第二客户端设备基于传感器输出来生成所捕获的运动数据(captured motion data)。
20.在一个实施方式中,消息传送服务器系统接收来自第一设备的观察到的运动数据和来自第二设备的所捕获的运动数据。消息传送服务器系统基于观察到的运动数据与所捕获的运动数据之间是否存在匹配来确定第一设备和第二设备是否将作为参与者包括在共享ar会话中。在另一实施方式中,第二客户端设备将所捕获的运动数据发送至第一客户端设备,并且第一客户端设备确定观察到的运动数据与所捕获的运动数据之间是否存在匹配。当存在匹配时,第一客户端设备向消息传送服务器系统发送请求以创建用于第一客户端设备和第二客户端设备的共享ar会话。
21.图1是示出用于通过网络交换数据(例如,消息和相关联内容)的示例消息传送系统100的框图。消息传送系统100包括客户端设备102的多个实例,实例中的每一个托管包括消息传送客户端应用104和ar会话客户端控制器124的多个应用。每个消息传送客户端应用104经由网络106(例如,因特网)通信地耦接至消息传送客户端应用104的其他实例和消息传送服务器系统108。每个ar会话客户端控制器124经由网络106通信地耦接至ar会话客户端控制器124的其他实例和消息传送服务器系统108中的ar会话服务器控制器126。
22.消息传送客户端应用104能够经由网络106与另一消息传送客户端应用104以及与消息传送服务器系统108进行通信和交换数据。在消息传送客户端应用104之间以及在消息传送客户端应用104与消息传送服务器系统108之间交换的数据包括函数(例如,调用函数的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
23.消息传送服务器系统108经由网络106向特定的消息传送客户端应用104提供服务器端功能。虽然在本文中将消息传送系统100的某些功能描述为由消息传送客户端应用104
或由消息传送服务器系统108执行,但是将某些功能定位在消息传送客户端应用104内或消息传送服务器系统108内是一种设计选择。例如,在技术上可能优选的是最初在消息传送服务器系统108内部署某些技术和功能,但是稍后将这些技术和功能迁移至其中客户端设备102具有足够处理能力的消息传送客户端应用104。
24.消息传送服务器系统108支持被提供至消息传送客户端应用104的各种服务和操作。这样的操作包括向消息传送客户端应用104发送数据、从消息传送客户端应用104接收数据以及处理由消息传送客户端应用104生成的数据。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持久性条件、社交网络信息和实况事件信息。通过经由消息客户端应用104的用户界面(ui)可用的功能来调用和控制消息传送系统100内的数据交换。
25.ar会话客户端控制器124能够经由网络106与另一ar会话客户端控制器124和ar会话服务器控制器126进行通信和交换数据。在多个ar会话客户端控制器124之间以及在ar会话客户端控制器124与ar会话服务器控制器126之间交换的数据可以包括:观察到的运动数据、所捕获的运动数据、创建共享ar会话的请求、数据流(图像或视频)中的用户标识、标识共享ar会话的会话标识符、第一设备与第二设备(例如,多个客户端设备102包括第一设备和第二设备)之间的变换(transformation)、公共坐标系、函数(例如,调用函数的命令)以及其他有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
26.现在具体转至消息传送服务器系统108,应用程序接口(api)服务器110耦接至应用服务器112并且向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,这有助于访问其中存储有与由应用服务器112处理的消息相关联的数据的数据库120。
27.应用程序接口(api)服务器110在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(api)服务器110提供接口(例如,例程和协议)的集合,所述接口可以由消息传送客户端应用104调用或查询,以便调用应用服务器112的功能。应用程序接口(api)服务器110展现由应用服务器112支持的各种功能,包括帐户注册、登录功能、经由应用服务器112从特定消息传送客户端应用104向另一消息传送客户端应用104发送消息、从消息传送客户端应用104向消息传送服务器应用114发送媒体文件(例如,图像或视频)以及针对另一消息传送客户端应用104的可能访问而进行的对媒体数据的集合(例如,故事)的设置、客户端设备102的用户的好友列表的检索、这样的集合的检索、消息和内容的检索、向社交图添加和删除好友、社交图内好友的位置以及打开应用事件(例如,涉及消息传送客户端应用104)。
28.应用服务器112托管多个应用和子系统,包括消息传送服务器应用114、图像处理系统116和社交网络系统122。消息传送服务器应用114实现许多消息处理技术和功能,尤其涉及包括在从消息传送客户端应用104的多个实例接收到的消息中的内容(例如,文本和多媒体内容)的汇集和其他处理。如将更详细地描述的,来自多个源的文本和媒体内容可以被汇集成内容的集合(例如,被称为故事或库)。然后消息传送服务器应用114使这些集合可用于消息传送客户端应用104。鉴于用于这样的处理的硬件要求,消息传送服务器应用114还可以在服务器端执行其他处理器和存储器密集型的数据处理。
29.应用服务器112还包括专用于执行各种图像处理操作的图像处理系统116,所述图
像处理操作通常针对在消息传送服务器应用114处的消息的有效载荷内接收到的图像或视频。
30.社交网络系统122支持各种社交联网功能服务,并且使这些功能和服务可用于消息传送服务器应用114。为此,社交网络系统122维护并访问数据库120内的实体图304(如图3所示)。由社交网络系统122支持的功能和服务的示例包括识别特定用户与之有关系或“关注”其的消息传送系统100的其他用户,以及还有识别其他实体和特定用户的兴趣。
31.应用服务器112还包括ar会话服务器控制器126,ar会话服务器控制器126可以与客户端设备102中的ar会话客户端控制器124通信以建立单独的或共享的ar会话。ar会话服务器控制器126还可以耦接至消息传送服务器应用114以在共享ar会话中为客户端设备建立电子组通信会话(例如,组聊天、即时消息传送)。电子组通信会话可以与由客户端设备102提供以获得对电子组通信会话和共享ar会话的访问的会话标识符相关联。在一个实施方式中,客户端设备首先获得对电子组通信会话的访问,并且然后在电子组通信会话中获得使得客户端设备能够访问共享ar会话的会话标识符。在一些实施方式中,客户端设备102能够在没有应用服务器112中的ar会话服务器控制器126的帮助或没有与应用服务器112中的ar会话服务器控制器126通信的情况下访问共享ar会话。
32.应用服务器112通信地耦接至数据库服务器118,这有助于访问其中存储有与由消息传送服务器应用114处理的消息相关联的数据的数据库120。
33.图2是示出根据示例实施方式的关于消息传送系统100的另外的细节的框图。具体地,消息传送系统100被示出为包括消息传送客户端应用104和应用服务器112,它们又包含多个一些子系统,即短暂定时器系统202、集合管理系统204和注释系统206。
34.短暂定时器系统202负责实施对消息传送客户端应用104和消息传送服务器应用114所允许的内容的短暂访问。为此,短暂定时器系统202结合了多个定时器,这些定时器基于与消息或消息的集合(例如,故事)相关联的持续时间和显示参数,选择性地显示消息和相关联的内容以及使得能够经由消息传送客户端应用104访问消息和相关联的内容。下面提供关于短暂定时器系统202的操作的另外的细节。
35.集合管理系统204负责管理媒体的集合(例如,文本、图像视频和音频数据的集合)。在一些示例中,内容(例如,消息,包括图像、视频、文本和音频)的集合可以被组织成“事件库”或“事件故事”。可以使这样的集合在指定的时间段(例如内容所涉及的事件的持续时间)内可用。例如,可以使与音乐会有关的内容在该音乐会的持续期间作为“故事”可用。集合管理系统204还可以负责发布向消息传送客户端应用104的用户界面提供特定集合的存在性的通知的图标。
36.集合管理系统204还包括允许集合管理器管理和策展内容的特定集合的策展接口208。例如,策展接口208使得事件组织者能够策展与特定事件相关的内容的集合(例如,删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些实施方式中,可以向用户支付补偿以将用户生成的内容包括到集合中。在这样的情况下,策展接口208进行操作以自动向这样的用户支付费用以使用其内容。
37.注释系统206提供使得用户能够注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与消息传送系统100处理的消息的媒体覆盖
(media overlay)的生成和发布相关的功能。注释系统206基于客户端设备102的地理位置可操作地向消息传送客户端应用104供应媒体覆盖或补充(例如,图像过滤器)。在另一示例中,注释系统206基于其他信息(例如客户端设备102的用户的社交网络信息)可操作地向消息传送客户端应用104供应媒体覆盖。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标志、动画和声音效果。视觉效果的示例包括颜覆盖。音频和视觉内容或视觉效果可以应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖可以包括可以覆盖在由客户端设备102拍摄的照片之上的文本。在另一示例中,媒体覆盖包括位置标识(例如,威尼斯海滩)覆盖、实况事件的名称或商家名称(例如,海滩咖啡馆)覆盖。在另一示例中,注释系统206使用客户端设备102的地理位置来标识包括客户端设备102的地理位置处的商家的名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其他标记。媒体覆盖可以存储在数据库120中并通过数据库服务器118访问。
38.在一个示例实施方式中,注释系统206提供基于用户的发布平台,该发布平台使得用户能够选择地图上的地理位置,并且上传与所选择的地理位置相关联的内容。用户还可以指定特定媒体覆盖应当被提供至其他用户的环境。注释系统206生成包括所上传的内容的媒体覆盖并且将所上传的内容与所选择的地理位置相关联。
39.在另一示例实施方式中,注释系统206提供基于商家的发布平台,该发布平台使得商家能够经由竞价过程来选择与地理位置相关联的特定媒体覆盖。例如,注释系统206将最高出价商家的媒体覆盖与对应的地理位置相关联达预定义时间量。
40.图3是示出根据某些示例实施方式的可以存储在消息传送服务器系统108的数据库120中的数据结构300的示意图。虽然数据库120的内容被示出为包括多个表,但是应当理解,数据可以以其他类型的数据结构进行存储(例如,作为面向对象的数据库)。
41.数据库120包括存储在消息表314内的消息数据。实体表302存储实体数据,包括实体图304。其记录被维护在实体表302内的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管类型如何,消息传送服务器系统108存储了其数据的任何实体都可以是被识别的实体。每个实体设置有唯一标识符、以及实体类型标识符(未示出)。
42.实体图304还存储关于实体之间的关系和关联的信息。仅作为示例,这样的关系可以是基于感兴趣的或基于活动的社交关系、专业关系(例如,在共同的公司或组织工作)。
43.数据库120还以过滤器的示例形式将注释数据存储在注释表312中。其数据存储在注释表312内的过滤器与视频(其数据存储在视频表310中)和/或图像(其数据存储在图像表308中)相关联并且应用于视频和/或图像。在一个示例中,过滤器是在呈现给接收者用户期间被显示为覆盖在图像或视频上的覆盖。过滤器可以是各种类型,包括当发送用户正在编写消息时由消息传送客户端应用104向发送用户呈现的来自过滤器的库中的用户选择的过滤器。其他类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理位置呈现给发送用户。例如,基于由客户端设备102的gps单元确定的地理位置信息,消息传送客户端应用104可以在用户界面内呈现特定于邻域或特定位置的地理位置过滤器。另一类型的文件管理器是数据文件管理器,其可以由消息传送客户端应用104基于在消息创建过程期间由客户端设备102收集的其他输入或信息来选择性地呈现给发送用户。数据过滤器的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端设备102的电池寿命或当前时间。
44.可以存储在图像表308内的其他注释数据是增强现实内容项(例如,对应于应用镜头或增强现实体验)。增强现实内容项可以是可以添加至图像或视频的实时特殊效果和声音。
45.如上面所描述的,增强现实内容项、覆盖、图像变换、ar图像和类似术语指代可以对视频或图像进行的修改。这包括实时修改,即在使用设备传感器捕获图像时修改图像,然后利用所述修改将图像显示在设备的屏幕上。这还包括对存储内容例如库中可以修改的视频剪辑的修改。例如,在具有对多个增强现实内容项的访问的设备中,用户可以使用具有多个增强现实内容项的单个视频剪辑来查看不同的增强现实内容项将如何修改所存储的剪辑。例如,通过为内容选择不同的增强现实内容项,可以将应用不同伪随机运动模型的多个增强现实内容项应用于相同的内容。类似地,实时视频捕获可以与所示出的修改一起使用,以显示当前由设备的传感器捕获的视频图像将如何修改所捕获的数据。这样的数据可以简单地显示在屏幕上而不存储在存储器中,或者由设备传感器捕获的内容可以在有或没有修改(或两者)的情况下记录并存储在存储器中。在一些系统中,预览功能可以示出不同的增强现实内容项将如何同时在显示器中的不同窗口内查看。例如,这可以使得具有不同伪随机动画的多个窗口能够同时在显示器上被查看。
46.使用增强现实内容项或其他这样的变换系统来使用该数据修改内容的数据和各种系统因此可以涉及:对象(例如,面部、手、身体、猫、狗、表面、对象等)的检测;在这些对象离开、进入和在视频帧中围绕视场移动时跟踪这些对象;以及在跟踪这些对象时对这些对象进行修改或变换。在各种实施方式中,可以使用用于实现这样的变换的不同方法。例如,一些实施方式可以涉及生成一个或更多个对象的三维网格模型,并且使用视频内模型的变换和动画纹理来实现变换。在其他实施方式中,对对象上的点的跟踪可以用于将图像或纹理(其可以是二维或三维的)置于所跟踪的位置处。在又一另外的实施方式中,视频帧的神经网络分析可以用于将图像、模型或纹理置于内容(例如,图像或视频帧)中。因此,增强现实内容项既指代用于在内容中创建变换的图像、模型和纹理,也指代通过对象检测、跟踪和布置实现这样的变换所需的附加建模和分析信息。
47.可以用保存在任何类型的计算机化系统的存储器中的任何类型的视频数据(例如,视频流、视频文件等)来执行实时视频处理。例如,用户可以加载视频文件并将其保存在设备的存储器中,或者可以使用设备的传感器生成视频流。另外,任何对象例如人脸和人体的部位、动物、或者诸如椅子、汽车的非生物、或者其他对象都可以使用计算机动画模型进行处理。
48.在一些实施方式中,当特定修改与要变换的内容一起被选择时,要变换的元素由计算设备识别,然后检测和跟踪它们是否存在于视频的帧中。根据修改请求来修改对象的元素,从而变换视频流的帧。对于不同种类的变换,可以通过不同的方法对视频流的帧进行变换。例如,对于主要涉及改变对象元素的形式的帧的变换,计算对象的每个元素的特征点(例如,使用主动形状模型(active shape model,asm)或其他已知方法)。然后,为对象的至少一个元素中的每一个生成基于特征点的网格。该网格用于跟踪视频流中对象的元素的下一阶段。在跟踪过程中,所提及的针对每个元素的网格与每个元素的位置对准。然后,在网格上生成附加点。基于修改请求为每个元素生成第一点的第一集合,并且基于所述第一点的集合和修改请求为每个元素生成第二点的集合。然后,可以通过根据第一点的集合和第
二点的集合以及网格而修改对象的元素来变换视频流的帧。在这样的方法中,也可以通过跟踪和修改背景来改变或扭曲修改对象的背景。
49.在一个或更多个实施方式中,使用对象的元素改变对象的一些区域的变换可以通过计算对象的每个元素的特征点并基于计算出的特征点生成网格来执行。在网格上生成点,然后生成基于这些点的各种区域。然后通过将每个元素的区域与至少一个元素中的每个元素的位置对准来跟踪对象的元素,并且可以根据修改请求来修改区域的属性,从而变换视频流的帧。根据对上述区域的修改属性的具体要求,可以以不同的方式进行变换。这样的修改可以涉及:改变区域的颜;从视频流的帧中去除至少一些部分区域;将一个或更多个新对象包括在基于修改请求的区域中;以及修改或扭曲区域或对象的元素。在各种实施方式中,可以使用这样的修改或其他类似修改的任何组合。对于某些要动画的模型,可以选择一些特征点作为控制点,以用于确定模型动画选项的整个状态空间。
50.在用于使用面部检测来变换图像数据的计算机动画模型的一些实施方式中,通过特定面部检测算法(例如,viola-jones)的使用在图像上检测面部。然后,将主动形状模型(asm)算法应用于图像的面部区域以检测面部特征参考点。
51.在其他实施方式中,可以使用适合于面部检测的其他方法和算法。例如,在一些实施方式中,使用界标来定位特征,该界标表示存在于所考虑的大多数图像中的可区分点。例如,对于面部界标,可以使用左眼瞳孔的位置。在初始界标不可识别(例如,如果一个人有眼罩)时,可以使用次要界标。这样的界标识别程序可以用于任何这样的对象。在一些实施方式中,一组界标形成形状。可以使用形状中点的坐标将形状表示为矢量。一个形状通过相似变换(允许平移、缩放和旋转)与另一形状对准,该相似变换使形状点之间的平均欧几里得距离最小化。平均形状是对准的训练形状的平均值。
52.在一些实施方式中,开始从与由全局面部检测器确定的面部的位置和尺寸对准的平均形状搜索界标。然后,这样的搜索重复以下步骤:通过经由每个点周围的图像纹理的模板匹配而调整形状点的位置来建议暂定形状,然后使暂定形状符合全局形状模型,直至发生收敛为止。在一些系统中,单个模板匹配是不可靠的,并且形状模型将弱模板匹配器的结果汇集在一起以形成更强的整体分类器。整个搜索在图像金字塔的每个级别上重复,从粗分辨率到细分辨率。
53.变换系统的实施方式可以在客户端设备(例如,客户端设备102)上捕获图像或视频流,并且在客户端设备102上本地执行复杂的图像处理,同时保持合适的用户体验、计算时间和功率消耗。复杂的图像处理可以包括尺寸和形状变化、情绪转移(例如,将面部从皱眉变为微笑)、状态转移(例如,使对象变老、减少表观年龄、改变性别)、风格转移、图形元素应用、以及由已经被配置成在客户端设备102上有效执行的卷积神经网络实现的任何其他合适的图像或视频处理。
54.在一些示例实施方式中,用于变换图像数据的计算机动画模型可以被系统使用,在该系统中用户可以使用具有作为在客户端设备102上操作的消息传送客户端应用104的一部分操作的神经网络的客户端设备102来捕获用户的图像或视频流(例如,自拍照)。在消息传送客户端应用104内操作的变换系统确定图像或视频流内的面部的存在并且提供与计算机动画模型相关联的修改图标以对图像数据进行变换,或者计算机动画模型可以呈现为与本文中描述的界面相关联。修改图标包括可以是用于作为修改操作的一部分在图像或视
频流内修改用户面部的基础的变化。一旦选择了修改图标,变换系统就发起一个过程来转换用户的图像以反映所选择的修改图标(例如,在用户身上生成一个笑脸)。在一些实施方式中,只要图像或视频流被捕获并且所指定的修改被选择,就可以在移动客户端设备上显示的图形用户界面中呈现经修改的图像或视频流。变换系统可以在图像或视频流的一部分上实现复杂的卷积神经网络,以生成和应用所选择的修改。也就是说,一旦已经选择了修改图标,用户就可以捕获图像或视频流并且实时地或接近实时地呈现修改结果。此外,当正在捕获视频流并且所选择的修改图标保持切换时,修改可以是持久的。机器学习的神经网络可以用于实现这样的修改。
55.在一些实施方式中,呈现由变换系统执行的修改的图形用户界面可以为用户提供附加的交互选项。这样的选项可以基于用于发起特定计算机动画模型的内容捕获和选择的界面(例如,从内容创建者用户界面发起)。在各种实施方式中,修改可以在对修改图标的初始选择之后是持久的。用户可以通过轻敲或以其他方式选择由变换系统修改的面部来打开或关闭修改,并且将该修改存储以供以后查看或浏览到成像应用的其他区域。在变换系统修改多个面部的情况下,用户可以通过轻敲或选择在图形用户界面内修改和显示的单个面部来全局打开或关闭修改。在一些实施方式中,可以单独修改一组多个面部中的单独面部,或者可以通过轻敲或选择图形用户界面内显示的单独面部或一系列单独面部来单独切换这样的修改。
56.如上面所提及的,视频表310存储视频数据,在一个实施方式中,视频数据与其记录被维护在消息表314中的消息相关联。类似地,图像表308存储与其消息数据存储在实体表302中的消息相关联的图像数据。实体表302可以将来自注释表312的各种注释与存储在图像表308和视频表310中的各种图像和视频相关联。
57.故事表306存储关于消息和相关联的图像、视频或音频数据的集合的数据,所述消息和相关联的图像、视频或音频数据被汇编成集合(例如,故事或库)。特定集合的创建可以由特定用户(例如,其记录被维护在实体表302中的每个用户)发起。用户可以创建已经由该用户创建和发送/广播的内容的集合的形式的“个人故事”。为此,消息传送客户端应用104的用户界面可以包括用户可选择以使得发送用户能够将特定内容添加至他或她的个人故事的图标。
58.集合还可以构成“实况故事”,“实况故事”是被手动地、自动地或使用手动和自动技术的组合来创建的来自多个用户的内容的集合。例如,“实况故事”可以构成来自不同位置和事件的用户提交的内容的策展流。其客户端设备具有启用的位置服务并且在特定时间处于共同位置事件的用户可以例如经由消息传送客户端应用104的用户界面被呈现有选项以向特定实况故事贡献内容。可以由消息传送客户端应用104基于用户的位置向用户标识实况故事。最终结果是从社角度讲述的“实况故事”。
59.另一类型的内容集合被称为“位置故事”,“位置故事”使得其客户端设备102位于特定地理位置(例如,在大学或大学校园)内的用户能够对特定集合做出贡献。在一些实施方式中,对位置故事的贡献可能需要第二程度的认证来验证终端用户属于特定组织或其他实体(例如,是大学校园中的学生)。
60.数据库120还可以在ar会话表316中存储与单独的和共享的ar会话有关的数据。ar会话表316中的数据可以包括在ar会话客户端控制器124和另一ar会话客户端控制器124之
间通信的数据,以及ar会话客户端控制器124和ar会话服务器控制器126之间通信的数据。数据可以包括观察到的运动数据、所捕获的运动数据、数据流(图像或视频)中的用户标识、用于建立共享ar场景的公共坐标系、设备之间的变换、会话标识等的数据。
61.图4是示出根据一些实施方式的消息400的结构的示意图,该消息400由消息传送客户端应用104生成以传送至另一消息传送客户端应用104或消息传送服务器应用114。特定消息400的内容用于填充消息传送服务器应用114可访问的存储在数据库120内的消息表314。类似地,消息400的内容作为客户端设备102或应用服务器112的“运输中”或“飞行中”数据存储在存储器中。消息400被示出为包括以下部件:
62.·
消息标识符402:标识消息400的唯一标识符。
63.·
消息文本有效载荷404:要由用户经由客户端设备102的用户界面生成并且包括在消息400中的文本。
64.·
消息图像有效载荷406:由客户端设备102的摄像装置部件捕获或从客户端设备102的存储器部件检索并且包括在消息400中的图像数据。
65.·
消息视频有效载荷408:由摄像装置部件捕获或从客户端设备102的存储器部件检索并且包括在消息400中的视频数据。
66.·
消息音频有效载荷410:由麦克风捕获或从客户端设备102的存储器部件检索并且包括在消息400中的音频数据。
67.·
消息注释412:表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的注释的注释数据(例如,过滤器、贴纸或其他增强)。
68.·
消息持续时间参数414:以秒为单位指示消息的内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)将被呈现或使得用户可经由消息传送客户端应用104访问的时间量的参数值。
69.·
消息地理位置参数416:与消息的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。多个消息地理位置参数416值可以被包括在有效载荷中,这些参数值中的每一个参数值与包括在内容中的内容项(例如,消息图像有效载荷406内的特定图像或消息视频有效载荷408中的特定视频)相关联。
70.·
消息故事标识符418:标识与消息400的消息图像有效载荷406中的特定内容项相关联的一个或更多个内容集合(例如,“故事”)的标识符值。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。
71.·
消息标签420:每个消息400可以用多个标签来标记,多个标签中的每个标签指示包括在消息有效载荷中的内容的主题。例如,在包括在消息图像有效载荷406中的特定图像描绘动物(例如,狮子)的情况下,标签值可以包括在指示相关动物的消息标签420内。标签值可以基于用户输入手动生成,或者可以使用例如图像识别自动生成。
72.·
消息发送者标识符422:指示在其上生成消息400并且从其发送消息400的客户端设备102的用户的标识符(例如,消息传送系统标识符、地址或设备标识符)。
73.·
消息接收者标识符424:指示消息400寻址到的客户端设备102的用户的标识符(例如,消息传送系统标识符、地址或设备标识符)。
74.消息400的各个部件的内容(例如,值)可以是指向在其内存储内容数据值的表中的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表308内的位置(或
地址)的指针。类似地,消息视频有效载荷408内的值可以指向存储在视频表310内的数据,存储在消息注释412内的值可以指向存储在注释表312中的数据,存储在消息故事标识符418内的值可以指向存储在故事表306中的数据,并且存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表302内的用户记录。
75.尽管以下流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。此外,可以重新安排操作的顺序。过程在其操作完成时终止。过程可以对应于方法、程序等。方法的步骤可以全部或部分执行、可以与其他方法中的部分或全部步骤结合执行,并且可以由任意数量的不同系统(诸如图1和/或图10中描述的系统)执行或该系统的任何部分(诸如包括在任何系统中的处理器)执行。
76.图5是根据一些示例实施方式的用于基于姿势创建共享ar会话的过程500的流程图。在一个实施方式中,过程500可以由消息传送服务器系统108中的ar会话服务器控制器126执行。
77.在操作502处,ar会话服务器控制器126从与第一用户相关联的第一客户端设备102接收观察到的运动数据。在一个实施方式中,第一客户端设备102基于对包括执行姿势的与第二客户端设备102相关联的第二用户的图像的数据流的分析来生成观察到的运动数据。在一些实施方式中,姿势是由第二用户执行的有意运动,例如挥手、跳舞等。在其他实施方式中,姿势是第二用户的自然运动,例如第二用户的行走步态。数据流可以是执行姿势的第二用户的视频。如图8所示,例如,第一客户端设备102可以使用包括在第一客户端设备102中的摄像装置来捕获视频。在一个实施方式中,第一客户端设备102通过识别第二用户的至少一个身体部位的位置并通过分析所述至少一个身体部位的运动来基于对数据流的分析生成观察到的运动数据。在一个实施方式中,至少一个身体部位的运动是在所述姿势期间的。在一个实施方式中,观察到的运动数据是对至少一个身体部位的运动的分析的总结。至少一个身体部位可以是例如第二用户的手臂或手。在一个实施方式中,第一客户端设备102可以使用骨骼跟踪来识别第二用户的手臂或手的位置。
78.在操作504处,ar会话服务器控制器126从第二客户端设备102接收对应于姿势的所捕获的运动数据。包括在第二客户端设备102中的传感器可以记录所述所捕获的运动数据。在一个实施方式中,传感器是惯性传感器,例如捕获第二客户端设备102的位置、移动和取向的加速度计或陀螺仪。
79.在操作506处,ar会话服务器控制器126确定来自第一客户端设备102的观察到的运动数据与来自第二客户端设备102的所捕获的运动数据之间是否存在匹配。在一个实施方式中,当观察到的运动数据和所捕获的运动数据在预定误差阈值内描述由第二用户执行的相同姿势时,ar会话服务器控制器126确定存在匹配。
80.当ar会话服务器控制器126确定不存在匹配时,ar会话服务器控制器126不执行进一步操作。当ar会话服务器控制器126确定存在匹配时,在操作508处,ar会话服务器控制器126在第一客户端设备102与第二客户端设备102之间生成共享ar会话。在一个实施方式中,共享ar会话包括实时消息传送会话,例如电子组通信会话。
81.在操作510处,ar会话服务器控制器126使共享ar会话被第一客户端设备102和第二客户端设备102显示。ar会话服务器控制器126可以为共享ar会话生成被发送至第一客户端设备102和第二客户端设备102两者的会话标识符。电子组通信会话可以与由客户端设
备102提供以获得对电子组通信会话和共享ar会话的访问的会话标识符相关联。第一客户端设备102可以使用会话标识符来建立与实时消息传送服务的通信连接或耦接。实时消息传送服务可以是由ar会话服务器控制器126建立的电子组通信会话。
82.在一个实施方式中,数据流包括与第三设备相关联的第三用户的图像。在该实施方式中,当ar会话服务器控制器126在操作506处确定存在匹配时,ar会话服务器控制器126向第一客户端设备102发送指示匹配已建立的信号。该信号使第一客户端设备102将数据流中的第二用户识别为与第二设备相关联。
83.在一个实施方式中,当第一客户端设备102和第二客户端设备102已经处于共享ar会话中时,ar会话服务器控制器126可以执行过程500中的操作502、504和506以识别至第一客户端设备102的数据流中的第二用户。例如,在一个实施方式中,客户端设备首先获得对电子组通信会话的访问,然后在电子组通信会话中获得允许客户端设备访问共享ar会话的会话标识符。在一些实施方式中,客户端设备102能够在无需应用服务器112中的ar会话服务器控制器126的帮助或与应用服务器112中的ar会话服务器控制器126通信的情况下访问共享ar会话。在该实施方式中,在操作506处,当ar会话服务器控制器126确定存在匹配时,ar会话服务器控制器126向第一客户端设备102发送使第一客户端设备102将数据流中的第二用户识别为与第二设备相关联的信号。
84.通过识别数据流中的第二用户,第一客户端设备102能够例如生成要应用于共享ar会话中的第一客户端设备102上的第二用户的图像的视觉或声音效果(例如,要由第二用户穿戴的服装、要应用于第二用户面部的效果、要应用于第二用户的语音音效等)。
85.图6示出了根据一个实施方式的基于姿势创建共享ar会话的过程600。在一个实施方式中,过程600可以由包括在第一客户端设备102中的ar会话客户端控制器124执行。
86.在操作602处,第一客户端设备102的ar会话客户端控制器124使用包括在第一客户端设备102中的摄像装置来捕获执行姿势的第二客户端设备102的用户的视频。如图8所示,第一用户(用户b)使用第一客户端设备102中的摄像装置捕获第二客户端设备102的第二用户(用户a)的图像或视频。
87.然后,第一客户端设备102的ar会话客户端控制器124在操作604处基于对第二客户端设备102的用户的视频的分析来生成观察到的运动数据。
88.在操作606处,第一客户端设备102的ar会话客户端控制器124从第二客户端设备102接收对应于姿势的所捕获的运动数据。包括在第二客户端设备102中的传感器记录所述所捕获的运动数据。在一个实施方式中,传感器是惯性传感器,例如捕获第二客户端设备102的位置、移动和取向的加速度计或陀螺仪。
89.在操作608处,第一客户端设备102的ar会话客户端控制器124确定观察到的运动数据是否与所捕获的运动数据匹配。在一个实施方式中,当观察到的运动数据和所捕获的运动数据在预定误差阈值内描述第二用户执行的相同姿势时,ar会话客户端控制器124确定存在匹配。
90.当ar会话客户端控制器124在操作608处确定不存在匹配时,ar会话客户端控制器124不执行进一步的动作。
91.当ar会话客户端控制器124在操作608处确定存在匹配时,在操作610处,第一客户端设备102的ar会话客户端控制器124向消息传送服务器系统108中的ar会话服务器控制器
126发送用于包括第一客户端设备102和第二客户端设备102的共享ar会话的请求。在一个实施方式中,共享ar会话包括实时消息传送会话,例如电子组通信会话。响应于该请求,ar会话服务器控制器126可以为共享ar会话生成被发送至第一客户端设备102和第二客户端设备102两者的会话标识符。
92.在操作612处,第一客户端设备102的ar会话客户端控制器124使共享ar会话被显示。在一个实施方式中,共享ar会话显示在包括在第一客户端设备102中的显示设备上。在一个实施方式中,第一客户端设备102的ar会话客户端控制器124从ar会话服务器控制器126接收会话标识符。电子组通信会话可以与由客户端设备102提供以获得对电子组通信会话和共享ar会话的访问的会话标识符相关联。第一客户端设备102设备可以使用会话标识符来建立与实时消息传送服务的通信连接或耦接。实时消息传送服务可以是由ar会话服务器控制器126建立的电子组通信会话。
93.在一个实施方式中,当在第一客户端设备102与第二客户端设备102之间已经建立共享ar会话时,如果ar会话客户端控制器124在操作608处确定存在匹配,则ar会话客户端控制器124可以将视频中的第二客户端设备102的用户识别为与第二客户端设备102相关联。
94.通过识别数据流中的第二用户,第一客户端设备102能够例如生成要应用于共享ar会话中的第一客户端设备102上的第二用户的图像的视觉或声音效果(例如,要由第二用户穿戴的服装、要应用于第二用户面部的效果、要应用于第二用户的语音音效等)。
95.图7示出了根据一个实施方式的在图6中的操作604的细节。为了在操作604中生成观察到的运动数据,在操作702处,第一客户端设备102的ar会话客户端控制器124识别用户的至少一个身体部位的位置。在操作704处,第一客户端设备102的ar会话客户端控制器124分析在姿势期间所述至少一个身体部位的运动。在一个实施方式中,观察到的运动数据是对至少一个身体部位的运动的分析的总结。至少一个身体部位可以是例如第二用户的手臂或手。在一个实施方式中,第一客户端设备102可以使用骨骼跟踪来识别第二用户的手臂或手的位置。
96.图8示出了根据一个实施方式的第一用户(用户b)使用第一客户端设备102来捕获第二用户(用户a)的图像或视频的示例800。如图8所示,第二用户(用户a)可以与第二客户端设备102相关联。例如,第二用户(用户a)在图8中持有第二客户端设备102。
97.图9示出了根据一个实施方式的使用包括在第一客户端设备102中的摄像装置捕获的图像的示例900。图9中的图像示出了在第一客户端设备102的摄像装置的视野内的第二用户(用户a)。可以捕获第二用户(用户a)执行用于由第一客户端设备102生成观察到的运动数据的姿势。
98.图10是机器1000的图形表示,在该机器1000内可以执行用于使机器1000执行本文中讨论的方法中的任一种或更多种方法的指令1008(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令1008可以使机器1000执行本文中描述的方法中的任一种或更多种方法。指令1008将通用的未编程的机器1000变换成被编程为以所描述的方式执行所描述和所示出的功能的特定机器1000。机器1000可以作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器1000可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操
作。机器1000可以包括但不限于:服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、pda、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器1000采取的动作的指令1008的任何机器。此外,虽然仅示出了单个机器1000,但是术语“机器”还应被视为包括单独或联合执行指令1008以执行本文中讨论的方法中的任一种或更多种方法的机器的集合。
99.机器1000可以包括处理器1002、存储器1004和i/o部件1038,所述处理器1002、存储器1004和i/o部件1038可以被配置成经由总线1044彼此通信。在示例实施方式中,处理器1002(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、asic、射频集成电路(rfic)、另一处理器或其任何合适的组合)可以包括例如执行指令1008的处理器1006和处理器1010。术语“处理器”旨在包括多核处理器,所述多核处理器可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。虽然图10示出了多个处理器1002,但是机器1000可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任何组合。
100.存储器1004包括主存储器1012、静态存储器1014和存储单元1016,所述主存储器1012、静态存储器1014和存储单元1016均可由处理器1002经由总线1040访问。主存储器1004、静态存储器1014和存储单元1016存储体现本文中描述的方法或功能中的任一种或更多种方法或功能的指令1008。指令1008还可以在其被机器1000执行期间完全地或部分地驻留在主存储器1012内、在静态存储器1014内、在存储单元1016内的机器可读介质1018内、在处理器1002中的至少一个处理器内(例如,在处理器的高速缓存存储器内)或其任何合适的组合内。
101.i/o部件1038可以包括接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器中的特定i/o部件1038将取决于机器的类型。例如,便携式机器诸如移动电话可以包括触摸输入设备或其他这样的输入机构,而无头服务器机器将可能不包括这样的触摸输入设备。将理解,i/o部件1038可以包括图10中未示出的许多其他部件。在各种示例实施方式中,i/o部件1038可以包括用户输出部件1024和用户输入部件1026。用户输出部件1024可以包括视觉部件(例如,显示器,诸如等离子显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。用户输入部件1026可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于指向的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或另一指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸姿势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
102.在另外的示例实施方式中,i/o部件1038可以包括生物识别部件1028、运动部件1030、环境部件1032、或定位部件1034以及各种其他部件。例如,生物识别部件1028包括用于检测表达(例如,手表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,声音识别、视网膜识别、面部识别、指纹识
别或基于脑电图的识别)等的部件。运动部件1030包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)。环境部件1032包括例如一个或更多个摄像装置(具有静态图像/照片和视频功能)、照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近物体的红外传感器)、气体传感器(例如,用于出于安全考虑而检测危险气体的浓度或用于测量大气中的污染物的气体检测传感器)或可以提供与周围物理环境相对应的指示、测量或信号的其他部件。定位部件1034包括位置传感器部件(例如,gps接收器部件)、海拔传感器部件(例如,检测可以根据其得到海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
103.可以使用各种技术来实现通信。i/o部件1038还包括通信部件1036,通信部件1036可操作以经由相应的耦接或连接将机器1000耦接至网络1020或设备1022。例如,通信部件1036可以包括网络接口部件或与网络1020对接的另一合适设备。在另外的示例中,通信部件1036可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(nfc)部件、部件(例如,低功耗)、部件以及经由其他形式提供通信的其他通信部件。设备1022可以是另一机器或各种外围设备中的任何外围设备(例如,经由usb耦接的外围设备)。
104.此外,通信部件1036可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件1036可以包括射频识别(rfid)标签读取器部件、nfc智能标签检测部件、光学读取器部件(例如,用于检测下述项的光学传感器:一维条形码,例如通用产品代码(upc)条形码;多维条形码,例如快速响应(qr)码、aztec码、数据矩阵、数据图示符(dataglyph)、最大编码(maxicode)、pdf417、超码(ultra code)、ucc rss-2d条形码和其他光学码)、或者听觉检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件1036得到各种信息,例如经由因特网协议(ip)地理位置的位置、经由wi-fi信号三角测量的位置、经由检测可以指示特定位置的nfc信标信号的位置等。
105.各种存储器(例如,主存储器1012、静态存储器1014和/或处理器1002的存储器)和/或存储单元1016可以存储一个或更多个指令集合和数据结构(例如,软件),所述一个或更多个指令集合和数据结构体现本文中描述的方法或功能中的任一种或更多种方法或功能或者由本文中描述的方法或功能中的任一种或更多种方法或功能使用。这些指令(例如,指令1008)在由处理器1002执行时使各种操作实现所公开的实施方式。
106.可以使用传输介质、经由网络接口设备(例如,包括在通信部件1036中的网络接口部件)并使用若干公知的传输协议中的任一种传输协议(例如,超文本传输协议(http))在网络1020上发送或接收指令1008。类似地,可以使用传输介质经由到设备1022的耦接(例如,对等耦接)来发送或接收指令1008。
107.图11是示出软件架构1104的框图1100,该软件架构1104可以安装在本文中描述的设备中的任一个或更多个设备上。软件架构1104由硬件例如包括处理器1120、存储器1126和i/o部件1138的机器1102支持。在该示例中,软件架构1104可以被概念化为层堆栈,其中每一层提供特定的功能。软件架构1104包括诸如操作系统1112、库1110、框架1108和应用1106的层。在操作上,应用1106通过软件堆栈来调用api调用1150并响应于api调用1150接
收消息1152。
108.操作系统1112管理硬件资源并提供公共服务。操作系统1112包括例如内核1114、服务1116和驱动程序1122。内核1114充当硬件层与其他软件层之间的抽象层。例如,内核1114提供存储器管理、处理器管理(例如调度)、部件管理、网络和安全设置等功能。服务1116可以为其他软件层提供其他公共服务。驱动程序1122负责控制底层硬件或与底层硬件对接。例如,驱动程序1122可以包括显示器驱动程序、摄像装置驱动程序、蓝牙驱动程序或蓝牙低能耗驱动程序、闪速存储器驱动程序、串行通信驱动程序(例如,通用串行总线(usb)驱动程序)、wi-fi驱动程序、音频驱动程序、电源管理驱动程序等。
109.库1110提供由应用1106使用的低级公共基础设施。库1110可以包括系统库1118(例如,c标准库),系统库1118提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。另外,库1110可以包括api库1124,例如媒体库(例如,用于支持各种媒体格式的呈现和操作的库,该媒体格式例如是运动图像专家组-4(mpeg4)、高级视频编码(h.264或avc)、运动图像专家组层-3(mp3)、高级音频编码(aac)、自适应多速率(amr)音频编解码器、联合图像专家组(jpeg或jpg)或便携式网络图形(png))、图形库(例如,用于在显示器上的图形内容中以二维(2d)和三维(3d)进行渲染的opengl框架)、数据库库(例如,用于提供各种关系数据库功能的sqlite)、web库(例如,用于提供web浏览功能的webkit)等。库1110还可以包括各种各样的其他库1128以向应用1106提供许多其他api。
110.框架1108提供由应用1106使用的高级公共基础设施。例如,框架1108提供各种图形用户界面(gui)功能、高级资源管理和高级定位服务。框架1108可以提供可以由应用1106使用的广泛的其他api,其中一些api可以特定于特定操作系统或平台。
111.在示例实施方式中,应用1106可以包括家庭应用1136、联系人应用1130、浏览器应用1132、书籍阅读器应用1134、位置应用1142、媒体应用1144、消息传送应用1146、游戏应用1148、以及诸如第三方应用1140的广泛分类的其他应用。e应用1106是执行程序中限定的功能的程序。可以采用各种编程语言来创建以各种方式结构化的一个或更多个应用1106,编程语言例如是面向对象的编程语言(例如,objective-c、java或c++)或过程编程语言(例如,c语言或汇编语言)。在特定示例中,第三方应用1140(例如,由特定平台的供应商以外的实体使用android
tm
或ios
tm
软件开发工具包(sdk)开发的应用)可以是在诸如ios
tm
、android
tm
、windowsphone的移动操作系统或其他移动操作系统上运行的移动软件。在该示例中,第三方应用1140可以调用由操作系统1112提供的api调用1150以促进本文中描述的功能。

技术特征:


1.一种方法,包括:从与第一用户相关联的第一设备接收观察到的运动数据,所述第一设备基于对包括执行姿势的第二用户的图像的数据流的分析来生成所述观察到的运动数据,所述第二用户与第二设备相关联;从所述第二设备接收对应于所述姿势的所捕获的运动数据,所述所捕获的运动数据由包括在所述第二设备中的传感器记录;确定来自所述第一设备的所述观察到的运动数据与来自所述第二设备的所述所捕获的运动数据之间是否存在匹配;以及响应于确定存在匹配,在所述第一设备与所述第二设备之间生成共享ar会话;以及使所述共享ar会话被所述第一设备和所述第二设备显示。2.根据权利要求1所述的方法,其中,所述共享ar会话包括实时消息传送会话。3.根据权利要求1所述的方法,其中,所述数据流是所述第二用户的视频。4.根据权利要求1所述的方法,其中,所述第一设备基于对所述数据流的分析来生成所述观察到的运动数据还包括:所述第一设备识别所述第二用户的至少一个身体部位的位置并且分析在所述姿势期间所述至少一个身体部位的运动。5.根据权利要求4所述的方法,其中,所述至少一个身体部位包括所述第二用户的手臂或手。6.根据权利要求1所述的方法,其中,所述数据流还包括与第三设备相关联的第三用户的图像,并且其中,所述第一设备将所述数据流中的所述第二用户识别为与所述第二设备相关联。7.一种系统,包括:处理器;以及其上存储有指令的存储器,所述指令当由所述处理器执行时使所述系统执行包括以下的操作:从与第一用户相关联的第一设备接收观察到的运动数据,所述第一设备基于对包括执行姿势的第二用户的图像的数据流的分析来生成所述观察到的运动数据,所述第二用户与第二设备相关联;从所述第二设备接收对应于所述姿势的所捕获的运动数据,所述所捕获的运动数据由包括在所述第二设备中的传感器记录;确定来自所述第一设备的所述观察到的运动数据与来自所述第二设备的所述所捕获的运动数据之间是否存在匹配;以及响应于确定存在匹配,在所述第一设备与所述第二设备之间生成共享ar会话;以及使所述共享ar会话被所述第一设备和所述第二设备显示。8.根据权利要求7所述的系统,其中,所述共享ar会话包括实时消息传送会话。9.根据权利要求7所述的系统,其中,所述数据流是执行姿势的所述第二用户的视频,其中,所述视频由包括在所述第一设备中的摄像装置捕获。
10.根据权利要求7所述的系统,其中,所述第一设备基于对所述数据流的分析来生成所述观察到的运动数据还包括:所述第一设备识别所述第二用户的至少一个身体部位的位置并且分析在所述姿势期间所述至少一个身体部位的运动。11.根据权利要求10所述的系统,其中,所述至少一个身体部位包括所述第二用户的手臂或手。12.根据权利要求7所述的系统,其中,所述数据流还包括与第三设备相关联的第三用户的图像,并且其中,所述第一设备将所述数据流中的所述第二用户识别为与所述第二设备相关联。13.一种其上存储有指令的非暂态计算机可读存储介质,所述指令当由处理器执行时使所述处理器执行包括以下的操作:从与第一用户相关联的第一设备接收观察到的运动数据,所述第一设备基于对包括执行姿势的第二用户的图像的数据流的分析来生成所述观察到的运动数据,所述第二用户与第二设备相关联;从所述第二设备接收对应于所述姿势的所捕获的运动数据,所述所捕获的运动数据由包括在所述第二设备中的传感器记录;确定来自所述第一设备的所述观察到的运动数据与来自所述第二设备的所述所捕获的运动数据之间是否存在匹配;以及响应于确定存在匹配,在所述第一设备与所述第二设备之间生成共享ar会话;以及使所述共享ar会话被所述第一设备和所述第二设备显示。14.一种方法,包括:使用包括在第一设备中的摄像装置来捕获执行姿势的第二设备的用户的视频;由包括在所述第一设备中的处理器基于对所述第二设备的用户的视频的分析来生成观察到的运动数据;由所述第一设备从所述第二设备接收对应于所述姿势的所捕获的运动数据,所述所捕获的运动数据由包括在所述第二设备中的传感器记录;以及由所述第一设备确定所述观察到的运动数据与来自所述第二设备的所述所捕获的运动数据之间是否存在匹配。15.根据权利要求14所述的方法,还包括:响应于确定存在匹配,向所述服务器发送请求以在所述第一设备与所述第二设备之间生成共享ar会话,并且使所述共享ar会话被所述第一设备和所述第二设备显示。16.根据权利要求14所述的方法,其中,在所述第一设备与所述第二设备之间建立共享ar会话。17.根据权利要求16所述的方法,还包括:响应于确定存在匹配,由所述第一设备将所述视频中所述第二设备的用户识别为与所述第二设备相关联。18.根据权利要求14所述的方法,其中,所述共享ar会话包括实时消息传送会话。
19.根据权利要求14所述的方法,其中,由所述第一设备生成观察到的运动数据还包括:识别所述用户的至少一个身体部位的位置并且分析在所述姿势期间所述至少一个身体部位的运动。20.根据权利要求14所述的方法,其中,所述至少一个身体部位包括所述用户的手臂或手。

技术总结


基于姿势创建共享AR会话的方法开始于服务器从与第一用户关联的第一设备接收观察到的运动数据。第一设备基于对包括执行姿势的第二用户的图像的数据流的分析来生成观察到的运动数据。第二用户与第二设备相关联。服务器从第二设备接收对应于姿势的所捕获的运动数据。所捕获的运动数据由包括在第二设备中的传感器记录。服务器确定来自第一设备的观察到的运动数据与来自第二设备的所捕获的运动数据之间是否存在匹配。响应于确定存在匹配,服务器在第一设备与第二设备之间生成共享AR会话并且使共享AR会话被第一设备和第二设备显示。本文中描述了其他实施方式。本文中描述了其他实施方式。本文中描述了其他实施方式。


技术研发人员:

皮尔斯

受保护的技术使用者:

斯纳普公司

技术研发日:

2021.03.30

技术公布日:

2022/12/30

本文发布于:2024-09-21 21:55:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/49940.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:客户端   设备   所述   消息
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议