用于管理与三维对象相关联的数据的智能代理的制作方法

文档序号:26008065发布日期:2021-07-23 21:27阅读:87来源:国知局
用于管理与三维对象相关联的数据的智能代理的制作方法



背景技术:

许多生产力应用提供了用于显示和操纵文件的内容的专用工具。一些生产力应用还提供了共享工作空间,多个用户能够在所述共享工作空间中同时从单独的位置查看和编辑文件的内容。一些系统还允许多个用户使用提供虚拟现实(“vr”)和混合现实(“mr”)环境的设备来协作地编辑内容。

尽管当前技术能够提供用于共享和操纵内容的专用功能,但是当工作流要求一组用户就共享内容达成一致时,一些现有应用不能提供令人满意的用户体验。例如,在多用户协作工作空间中,当需要群组一致时,用户可能必须手动准备专用内容,以允许其他用户对每种想法进行可视化。每种提出的想法的视觉预览能够帮助参与者获得对每种想法的理解或意识。然而,在涉及计算资源(例如,存储器资源、处理资源、网络资源等)时,准备每个预览的手动过程会既耗时又低效。

另外,当用户使用一个论坛(诸如使用skype会话的群组编辑会话)协作,然后切换到另一论坛(诸如私人聊天会话)时,并非所有经编辑的内容都能够在不同类型的会话之间转移。由于每次用户在不同类型的通信会话之间进行转换时都可能要求用户取回、转移或者甚至重新创建内容,因此该缺点会导致计算资源的其他效率低下。



技术实现要素:

在本文中所公开的技术通过提供用于管理与在协作环境内所显示的虚拟对象和真实世界对象相关联的数据的智能代理来提高系统的效率。个体代理被配置为在共享视图中收集、分析和存储与个体对象相关联的数据。代理能够:识别在会议中所讨论的真实世界对象和虚拟对象、收集关于每个对象的信息、并且基于所收集到的信息为每个对象生成推荐。所述推荐能够建议对所述对象进行修改、提供用于获得或修改所述对象的资源、并且提供可动作(actionable)的信息以允许用户就对象达成一致。能够在不同的通信会话之间共享数据,而无需用户手动地存储和呈现针对每个对象的内容集合。所述智能代理还能够通过不同的通信会话而持续以增强用户参与度并且提高生产率。

例如,如果第一组用户正在进行关于汽车引擎设计的skype会议,则能够为引擎的每个部分实例化智能代理。所述智能代理能够在多用户通信会话期间监视所有类型的用户活动,例如,轮询、编辑、文本聊天以及语音对话。能够与每个对象(例如,每个引擎部件)相关联地显示和存储从受监视的活动导出的数据。代理被配置为使得在skype会议结束时,代理和所存储的数据在通信会话之后保留。因此,当创建新的通信信道(例如私人聊天会话或新的会议时),所述代理允许用户访问所述代理和所存储的数据。

每个代理能够生成并且显示针对个体对象的推荐。所述推荐能够包括用于修改对象的推荐。所述推荐能够是以下形式:(1)对虚拟对象的修改;(2)位于真实世界对象上方的新的虚拟对象;或者(3)推荐对真实世界对象进行修改的注释。定义与每个对象相关联的推荐的数据也能够跨通信会话永久地存储。因此,当在会话期间移动或删除对象(诸如引擎部件)时,推荐将被修改并且跨其他通信会话保留以指示这样的改变。

智能代理提供了改善现有计算机的许多特征。例如,随着在不同会话之间的用户转换,更有效地使用诸如处理器周期、存储器、网络带宽和功率之类的计算资源。无需重新创建数据或内容,用户就可以在会话之间共享和显示内容。另外,所述推荐通过为个体对象提供自动生成的推荐可视化或自动生成的资源推荐,使得用户能够做出更有效的决定。在本文中所公开的技术还改善了与各种类型的计算设备的用户交互。用户交互的改善或者对用户输入的需求的减少能够减轻无意的输入、冗余的输入以及利用计算资源的其他类型的用户交互。还能够通过对所公开的主题的实施来实现在本文中未具体提及的其他技术益处。

本领域技术人员还将认识到,在本文中所描述的主题的各方面能够在除了在本文中具体描述的那些之外的其他计算机系统配置上或者与其他计算机系统配置一起实践,包括多处理器系统、基于微处理器的或可编程的消费者电子产品、ar、vr和mr设备、视频游戏设备、手持计算机、智能手机、智能电视、自动驾驶汽车、智能手表、电子阅读器、平板计算设备、专用硬件设备、联网设备以及其他设备。

根据阅读下文的详细描述并且查看相关联的附图,除了上文明确描述的那些之外的特征和技术益处将是显而易见的。提供本发明内容以简化形式介绍了一些概念,这些概念将在下文的详细描述中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也并不旨在用于辅助确定所要求保护的主题的范围。例如,术语“技术”可以指代上文所描述的上下文以及遍及文档所允许的(一种或多种)系统、(一种或多种)方法、计算机可读指令、(一个或多个)模块、算法、硬件逻辑和/或操作。

附图说明

参考附图来描述详细描述。在附图中,附图标记的(一个或多个)最左侧数字标识该附图标记首次出现的附图。在不同附图中的相同附图标记指示相似或相同的项目。对多个项目中的个体项目的引用能够使用带有字母序列中的字母的附图标记来指代每个个体项目。对项目的通用引用可以使用不带字母序列的特定附图标记。

图1图示了由捕获真实世界对象的图像的计算设备所生成的协作环境的显示。

图2是图示了与虚拟对象和真实世界对象相关联地生成的若干智能代理的框图。

图3图示了可以由在协作环境中进行交互的用户执行的多种形式的通信。

图4是图示了用于通过使用应用编程接口来收集协作环境的通信数据的若干智能代理的框图。

图5是图示了可以由智能代理用于收集与虚拟对象和真实世界对象相关联的补充数据的多个外部资源的框图。

图6图示了协作环境的显示,所述显示示出了与由智能代理所生成的虚拟对象和真实世界对象相关联的多个推荐。

图7图示了具有用于管理在通信会话之间的代理数据的管理代理的系统的框图。

图8图示了涉及利用在第一协作环境中所创建的智能代理的私人聊天的后续协作环境的显示。

图9图示了涉及利用在第一协作环境中所创建的智能代理的团队会话的后续协作环境的显示。

图10是图示了用于计算有效的智能代理的例程的各方面的流程图,所述智能代理用于管理与在混合现实和虚拟现实协作环境内所显示的对象相关联的数据。

图11是示出了用于在本文中所公开的技术的说明性操作环境的各方面的计算系统图。

图12是示出了可以能够在本文中所公开的技术的各方面的计算设备的配置和操作的各方面的计算架构图。

图13是根据在本文中所公开的一个实施例的示出了能够实现所公开的技术的各方面的mr设备的配置和操作的各方面的计算设备图。

具体实施方式

图1图示了示例性用户界面100,示例性用户界面100显示了可以被用于促进本公开的各方面的协作环境的各方面。在该示例中,计算设备101的图像传感器105(例如,相机)被用于捕获真实世界环境112内的真实世界对象103的图像。在该说明性示例中,真实世界对象103是引擎。计算设备101能够与在协作环境内通信的多个个体用户102a-102d(“用户102”)共享真实世界对象103的图像。计算设备101还能够与其他计算设备协调以生成虚拟对象104的共享显示,虚拟对象104是与真实世界对象103的视图一起渲染的。

用户102能够通过使用语音命令、移动手势或者与各种输入设备的其他类型的交互来创建和编辑虚拟对象104。在该说明性示例中,第一虚拟对象104a(风扇)和第二虚拟对象104b(固定设备)位于相对于真实世界对象103的特定位置处。用户102能够对虚拟对象104进行移动并且重新设定大小。另外,用户102能够使用一个或多个手势(包括语音命令)将虚拟对象104与一个或多个真实世界对象相关联。在该说明性示例中,第一虚拟对象104a和第二虚拟对象104b与真实世界对象103(引擎)相关联。在每个对象之间的关联能够基于在每个对象之间的相对位置、示出关联的图形元素、文本描述、或者任何其他合适的图形表示。在该示例中,第一虚拟对象104a和第二虚拟对象104b与引擎的轴对准,以图示出对象之间的关联,例如,如何组装部件。

用户102还能够使用多种不同的介质在协作环境内彼此通信,所述介质包括但不限于:共享的音频、视频和文本通信。在该示例中,第一用户102a、第二用户102b、第三用户102c和第四用户102d都彼此通信,并且每个用户102的视频流被呈现在用户界面100内。

计算设备101能够识别协作环境内的真实世界对象和虚拟对象两者。出于说明的目的,对“一个或多个对象”的一般性引用指代虚拟对象和真实世界对象两者。在本文中所公开的技术能够使用任意数量的对象识别技术来识别对象,包括但不限于:边缘检测、图案检测、或者形状检测算法。在该示例中,计算设备101通过其形状、大小以及其他物理特性来识别真实世界对象103是引擎。也能够通过使用由麦克风检测到的对象所发出的声音来识别一个或多个真实世界对象。颜色、形状、图案、表面纹理或者其他特性能够被用于识别型号、制造商、部件等。也能够通过对定义每个虚拟对象的模型数据执行分析来识别虚拟对象。形状、大小或者其他特性能够直接根据对模型数据的分析来解读。

响应于识别在协作环境内所显示的真实世界对象和虚拟对象,计算设备101生成与每个个体对象相关联的个体代理。每个代理201(在图2中示出的)能够是自主计算单元,其被配置为收集和管理与每个对象相关联的数据。即使在与协作环境相关联的通信会话终止之后,每个代理也被例如永久地存储在维持与每个代理201相关联的所有数据的数据存储库中。在一些实施例中,每个代理能够是虚拟机的形式,所述虚拟机能够被存储在单个计算设备上并且能够在不同的计算设备之间进行通信。

在一些实施例中,计算设备101能够生成用于特定感兴趣对象的代理。能够基于对象的物理属性或用户活动来选择感兴趣对象。例如,如果特定对象包含移动部件、尺寸超过阈值、具有预定形状等,则该对象可以被视为感兴趣对象。在另一示例中,基于对用户讨论或偏好数据的分析,可以将特定对象视为感兴趣对象。做出关于特定对象(诸如引擎)的评论的用户102能够使计算设备101基于与所述对象相关联的关键字或手势来选择所述对象。在一个特定示例中,如果用户通信包括与引擎相关联的阈值数量的关键字或手势,则能够将在图1所示的引擎视为感兴趣对象。如果用户几乎没有与那些对象相关的交互,则在计算设备101的相机105的直接视图中的其他对象(诸如房间的墙壁、用户附近的电灯开关)可能不被视为感兴趣对象。

在一些实施例中,计算设备101能够生成分数以确定特定对象是否是感兴趣对象。当相关联的分数超过阈值时,可以选择对象作为感兴趣对象。可以基于多个因素来生成分数。例如,可以基于用户与特定对象进行交互的次数或频率来生成分数。分数也可以基于对象的移动或者其他特性(诸如大小、形状等)。分数能够被用于对对象进行排名。可以使用排名来选择具有预定大小的一组对象。例如,协作环境可以具有定义用于特定通信会话或特定计算设备的最大数量的对象的数据。在这样的实施例中,最高排名的对象,直到最大数量的对象,能够被选择为感兴趣对象。

图2图示了示例性实现方式,所述实现方式包括与所识别出的对象相关联地生成的多个代理201。在该示例中,与真实世界对象103相关联地生成第一代理201a,与第一虚拟对象104a相关联地生成第二代理201b,并且与第二虚拟对象104b相关联地生成第三代理201c。

每个代理201管理数据库202,其用于存储定义关键字、描述、参数或者关于个体对象的其他数据的数据记录(203-205)。在一些实施例中,每个数据库202能够被配置为自主地操作,例如,每个数据库202被存储在能够独立地从一个计算设备通信到另一计算设备的数据结构中,而不影响其他数据库202。在一些实施例中,每个数据库202被存储在也定义了相关联的代理201的数据结构中,在本文中被称为“代理数据”。如在图2中所示的,本示例包括与第一代理201a通信的第一数据库202a、与第二代理201b通信的第二数据库202b、以及与第三代理201c通信的第三数据库202c。

也如在图2中所示的,计算设备101能够生成和修改与每个对象相关联的数据记录(203-205)。可以基于多个因素来生成数据记录(203-205)。在一些实施例中,可以基于真实世界对象或虚拟对象的形状、大小或其他物理特性来生成描述每个对象的各方面的数据记录(203-205)。例如,在本示例中,能够基于对引擎的图像的分析来生成描述引擎驱动轴的直径的数据记录203a,其中,所述图像能够被用于测量诸如驱动轴的特定部件的参数。可以通过分析由计算设备所捕获的深度图数据和图像数据来生成这样的数据。通过使用从深度图数据和图像数据获得的测量结果,计算设备能够确定真实世界对象的几何结构和形状。这样的测量结果能够被记录在数据记录203中。

计算设备101还能够分析文本或其他标记以生成或修改与每个对象相关联的数据记录(203-205)。例如,计算设备可以确定并且记录对象的型号、产品品牌或者其他相关特性。在本示例中,能够基于在引擎上刻写的文本或者引擎的大小或形状来生成描述引擎的马力的数据记录203b。提供这些示例是为了说明性目的,而不应当将其解释为限制性的。能够意识到,能够通过对特定对象的分析来生成对象的任意类型的关键字、描述或参数。

计算设备101还能够分析定义虚拟对象的模型数据,并且还能够被用于生成或修改描述每个对象的各方面的数据记录(203-205)。例如,在本示例中,能够分析定义第一虚拟对象104a的模型数据以确定所述对象由诸如钢的特定材料制成。一个或多个记录(诸如记录204a)能够由相关联的代理(诸如第二代理201b)生成,以存储这样的信息。同样在图2中所示的,还生成了描述第二虚拟对象104b的各方面(例如,大小)的另一记录205a。

代理201还能够在多用户通信会话期间监视多种不同类型的用户活动,以生成或修改数据记录(203-205)。受监视的用户活动能够包括与计算机的任意类型的用户交互或者任意类型的通信,例如,轮询、编辑、文本聊天和语音对话。在本文中所公开的技术能够监视定义来自输入设备的用户输入、用户共享内容、用户通过通信会话发送或接收流或接收内容的任何类型的交互数据。如在图3中所示的,代理201能够监视各种通信介质,包括但不限于:电子邮件、电话呼叫、@提及、视频呼叫、文本消息、通信会话的音频数据等。例如,如在图3中所示的,所述代理中的每个代理可以分析在第一用户102a与第二用户102b之间发送的电子邮件字符串,以确定电子邮件与第二虚拟对象104b有关。每种其他通信形式(例如,视频广播、@提及或私人呼叫)也能够被分析和解析,以识别与每个对象有关的参数、偏好或者其他信息。

各个代理201能够在与其各自对象相关联的个体数据库202中收集并且存储定义受监视的活动的活动数据。例如,如在图4中所示的,基于用户之间的受监视的通信,每个代理201存储与每个对象有关的所收集到的信息。在一些配置中,通过与每个代理201通信的应用编程接口(api)来接收所收集到的信息。能够解析通信的每个实例(诸如来自电话呼叫、电子邮件或@提及的数据),并且将其存储在特定数据库202中。从每个通信实例解析的数据能够被存储在记录(203-205)中。

如果用户活动的特定实例引用对象,则计算设备101能够将定义用户活动的特定实例的活动数据与对象相关联。例如,关键字、短语、图像、音频数据或者具有与特定对象相关的定义阈值水平的任何其他信息能够使计算设备101将用户活动的特定实例与对象相关联。一旦确立了与对象的关联,就能够将定义用户活动的特定实例的活动数据存储在相关联的数据库中。

例如,能够分析广播的数据以确定风扇具有规格要求,例如,风扇需要每分钟200立方英尺(cfm)的性能。对这样的通信的分析能够被存储在数据库记录中,诸如记录204b。能够分析电子邮件以确定紧固设备的各方面,例如,螺母需要具有特定的强度,并且能够分析回复电子邮件以确定所需强度的参数,例如,引擎能够产生60尺磅的扭矩。对这样的通信的分析能够被存储在相关联对象的数据库记录中。例如,能够生成第一数据库202a的记录203c以指示引擎扭矩规格,并且能够生成第三数据库202c的记录205b以指示风扇的扭矩要求。此外,能够分析@提及以确定第一虚拟对象104a(例如,风扇)的各方面。作为响应,能够生成诸如记录204c的记录以指示风扇需要由碳纤维来制成。

能够以类似的方式来分析和解析其他形式的通信,并且与特定对象有关的信息被存储在相关联的数据库中。在本示例中,基于skype呼叫,数据记录203d指示需要增加引擎的马力,并且基于文本,数据记录203e指示针对引擎的推荐品牌名称。

现在转到图5,在一些配置中,每个代理201能够从外部资源502取回补充数据501。补充数据501能够包括与和每个对象相关联的数据记录有关的任意信息。例如,能够根据现有数据记录(203-205)来生成查询,并且能够将每个查询发送给各种资源502,诸如但不限于:库存数据库502a、公司目录502b以及搜索引擎502c。每个资源502能够响应于查询而返回补充数据501。另外,每个资源502还能够将相关的补充数据501推送给每个代理。

在一个说明性示例中,第一代理201a能够基于被存储在第一数据库202a中的记录(例如,记录203a-203e)来生成查询。在一个说明性示例中,第一代理201a可以生成定义真实世界对象的参数(例如,轴直径、马力、品牌名称等)的查询。响应于所述查询,诸如库存数据库502a之类的资源可以返回定义新引擎(例如,acmemodel1)的补充数据501,其满足在数据记录203中所指示的性能要求。这样的补充数据501能够被存储在第一数据库202a中的新数据记录203f中。

在另一说明性示例中,第二代理201b可以根据第一虚拟对象104a的记录来生成定义各方面的查询,例如,需要200cfm风扇并且模型数据指示钢构造。响应于所述查询,诸如公司目录502b之类的资源能够返回识别具有这样的对象的专业知识的个体的补充数据501。这样的补充数据501能够被存储在第二数据库202b中的新数据记录204d中。

在又一说明性示例中,第三代理201c可以根据与第二虚拟对象104b相关联的记录来生成查询,例如,紧固设备为特定大小并且需要特定强度。响应于所述查询,诸如搜索引擎502c之类的资源能够返回包括推荐使用扭矩扳手的补充数据501。这样的补充数据501能够被存储在第三数据库202c中的新数据记录205c中。能够意识到,补充数据501能够包括任意格式的数据,包括三维模型数据、性能统计、图像、音频数据等。

如在图6中所示的,计算设备101能够基于所存储的信息来生成针对个体对象的推荐。所述推荐能够建议对所述对象进行修改,提供用于获得或修改所述对象的资源,并且提供允许用户就对象达成一致的可动作信息。所述推荐能够是以下形式:(1)对现存虚拟对象的修改;(2)位于真实世界对象上方的新的虚拟对象;或者(3)推荐对真实世界对象进行修改的注释。定义与每个对象相关联的推荐的数据也能够被永久地存储在数据记录(203-205)中。

图6图示了多个示例性推荐。例如,推荐能够采用新的虚拟对象601的形式,其被显示为在真实世界对象的图像上方的虚拟部分覆盖。在该示例中,新的虚拟对象601采用满足在数据记录203中所指示的性能要求的另一引擎(例如,acmemodel1)的形式。这样的推荐可以被自动地呈现为三维或二维虚拟对象,其被设置为在真实世界对象或其他虚拟对象上的覆盖。通过在真实世界对象上提供覆盖,用户能够轻松地对提议进行可视化,而无需用户手动地操纵内容。

所述推荐还能够包括基于对通信数据和补充数据的代理分析的设计的计算机生成的修改。如在图6中所示的,能够将新的虚拟组件602(例如,垫圈)添加到示意性布局。新的虚拟组件602的位置和大小能够基于在补充数据501中所提供的信息。

所述代理推荐(在本文中也被称为“推荐”)也能够包括提供其他上下文信息603或者与对象有关的指令604的图形元素。如在图6中所示的,能够与特定对象相关联地显示图形元素。能够根据补充数据501或者与对象相关联的任意其他数据记录来生成上下文信息603或指令604。在图6中所示的示例中,一些推荐指示应当将钢风扇替换为碳纤维风扇,并且识别供应商等。

计算设备101能够基于数据记录的内容对各种推荐进行优先化和排名。在一些配置中,计算设备101可以存储定义能够被显示的推荐的最大数量的数据。计算设备101可以显示任意数量的推荐,直到推荐的最大数量。在一些实施例中,可以根据每个推荐的定义的优先级来布置对推荐的显示,例如,可以将所述推荐从最高优先级到最低优先级进行排序。因此,还可以基于任意类型的上下文信息来对所述推荐进行优先化。例如,可以基于每个用户的投票或偏好来对所述推荐进行优先化和排名。在其他示例中,针对每个推荐的优先级可以基于各种用户对特定对象做出的评论的数量、引用推荐的交互次数、或者其他类型的用户活动的组合,诸如用户查看特定对象或推荐的次数。

用户能够通过选择或者以其他方式与所显示的推荐进行交互来与代理推荐进行交互。用户能够通过提供语音手势或触摸手势来选择特定推荐。在一些配置中,与特定推荐的用户交互能够被解读为针对特定推荐的投票或偏好。还能够监视通信数据以识别针对特定推荐的投票或偏好。能够计算支持的评论或投票,并且当达到评论或投票的特定的定义阈值时,计算设备101能够确定针对特定用户组的一致。

当达成一致时,计算设备101能够采取许多不同的动作。例如,当接收到针对特定推荐的阈值数量的投票时,可以将修改永久地写入到与特定对象相关联的数据库202。在另一示例中,当接收到针对特定推荐的阈值数量的投票时,计算设备101可以基于所述推荐来生成针对额外补充信息的后续查询,这继而可以引起额外推荐的生成。

如上文所概述的,智能代理201能够在不同的通信会话中保留,以增强用户的参与度并且提高生产率。例如,如果第一组用户正在进行关于汽车引擎设计的skype会议,则能够为引擎的每个部件实例化智能代理。智能代理能够在多用户通信会话期间监视所有类型的用户活动,例如,轮询、编辑、文本聊天和语音对话。能够与每个对象(例如,每个引擎部件)相关联地显示和存储从受监视的活动导出的数据。代理和相关联的数据库被配置为使得当skype会议结束时,代理和所存储的数据在通信会话之后保留。因此,当创建例如私人聊天会话或新的会议的新的通信信道时,代理允许用户访问代理和所存储的数据。

现在参考图7,下文示出并且描述了使得代理和所存储的数据能够永久存储的计算设备的各方面。在该说明性示例中,服务器701包括存储器703,存储器703存储定义个体代理201和相关联的数据库202的各方面的代理数据704。在继续上文所描述的示例时,图7示出了定义第一代理201a和第一数据库202a的第一代理数据704a、定义第二代理20ib和第二数据库202b的第二代理数据704b、以及定义第三代理201c和第三数据库202c的第三代理数据704c。

在该示例中,管理代理705能够从任意通信会话(诸如skype会议、广播或聊天会话)接收代理数据704,以及所存储的代理数据704和存储器703。存储器703能够被配置为独立于每个通信会话1004的生命周期而维护代理数据704。因此,管理代理705能够将代理数据704输送到其他通信会话。

在图7中所示的示例中,第一通信会话1004a(诸如在图1中所图示的协作环境)能够生成定义个体代理201和相关联数据库202的代理数据704。在通信会话期间或者在通信会话结束时,能够将代理数据704传送给执行管理代理705的服务器701。管理代理705能够将所述代理数据永久地存储在存储器703中,存储器703的形式能够是数据库、永久存储器或者允许代理数据永久存在而与任意通信会话的执行和终止无关的任何其他存储器设备。

接下来,在创建其他通信会话(诸如第二通信会话1004b和第三通信会话1004c)时,管理代理705可以为每个会话提供相关的代理数据704。可以基于一个或多个因素来选择定义特定代理201的代理数据704。例如,如果新的通信会话包括具有描述特定对象的关键字的内容,则可以将与该对象有关的代理数据704传送给管理所述通信会话的计算设备。在该示例中,第二代理数据704b和第三代理数据704c被输送到第二通信会话1004b,并且第三代理数据704c被输送到第三通信会话1004c。

现在参考图8,下文示出并且描述了用于第二通信会话1004b的示例性用户界面800。在该示例中,第二通信会话1004b采用两个个体sarah与steve之间的私人聊天会话的形式。在该示例中,假定其对话包括关于风扇和紧固设备的讨论。响应于代理检测到对话的上下文,在相关代理数据704中所定义的对象被显示在其通信会话的用户界面800中。该功能消除了用户收集信息并且与计算机进行交互以在会话内显示所收集到的信息的需求。

能够意识到,能够如上文所描述地处理第二通信会话1004b。因此,私人聊天会话的用户活动能够被用于获得额外的补充数据,以及引起针对每个对象的额外数据记录的生成。同样地,可以生成额外的推荐并且将其存储在与每个对象相关联的新数据记录中。在用户产生新的虚拟对象或查看新的真实世界对象时,能够生成额外代理201和相关联的数据库202。

现在参考图9,下文示出并且描述了用于第三通信会话1004c的示例性用户界面900。在该示例中,第三通信会话1004c采取在大量参与者之间的团队会话的形式。在团队会话中,多个用户经由聊天窗口以及共享视频会话902进行通信。在该示例中,参与者开始关于特定对象(紧固设备)进行聊天。响应于检测到与在至少一个数据库202中定义的对象(诸如紧固设备)有关的关键字或其他信息,管理第三通信会话1004c的计算设备能够取回与所述对象相关联的代理数据704c。基于代理数据704c的内容,管理第三通信会话1004c的计算机能够呈现相关对象以及被存储在相关联的数据记录中的其他信息。如在图9中所示的,第二虚拟对象104b与其他信息(诸如相关的上下文信息603)一起被呈现在用户界面900中。代理能够基于对话的上下文来自动地取回并且自动地呈现这样的信息。能够响应于对话对象引用(例如,询问或者提及虚拟对象)来取回和显示第二虚拟对象104b和相关的上下文信息603。

以可用格式显示的上下文相关信息的取回和显示能够通过减少执行那些操作所需的手动操作的需求来改善用户与计算设备之间的交互。该特征能够减少无意的输入并且提高针对个体的生产率,同时还能够减少执行那些手动操作所需的计算资源。

能够意识到,第二通信会话1004b也能够如上文所描述地进行处理。因此,私人聊天会话的用户活动能够被用于获得额外的补充数据,以及引起针对每个对象的额外数据记录的生成。另外,可以生成额外的推荐并且将其存储在与每个对象相关联的新数据记录中。在用户产生新的虚拟对象或者查看新的现实世界对象时,能够生成额外代理201和相关联的数据库202。

在一些配置中,机器学习技术可以被用于检查数据记录以生成推荐。术语“机器学习”可以指代从其接收和分析的数据中学习的一个或多个程序。例如,机器学习机制可以构建、修改或者以其他方式利用从示例性输入创建的模型,并且使用所述模型进行预测或决策。所述机器学习机制可以被用于基于对象的要求或者用户偏好来改进对所述推荐的识别或生成。可以使用监督的和/或无监督的学习来训练所述模型。例如,随着时间的经过,在机器学习机制接收到更多数据时,在协作环境内所显示的推荐可以基于定义用户活动的数据随时间变化。

可以利用不同的机器学习机制。例如,分类机制可以被用于基于与对象相关联的要求以及满足那些要求的其他对象或信息的可用性来确定代理推荐。在另一示例中,不同的分类能够指示用户是喜欢还是不喜欢特定对象或代理推荐。所述分类机制可以将显示元素分类为不同类别,以提供是否应当显示所述显示元素的指示。

在其他示例中,可以利用统计机制来确定是否应当显示特定的代理推荐或是否要选择特定对象作为感兴趣对象。例如,线性回归机制可以被用于生成指示对象是感兴趣对象的可能性的分数。线性回归可以指代用于对一个变量与一个或多个其他变量之间的关系进行建模的过程。可以使用不同的线性回归模型来计算分数。例如,可以利用最小二乘法,可以利用最大似然估计,或者可以利用另一种方法。

图10是图示了用于对与在混合现实和虚拟现实协作环境内所显示的对象相关联的数据的计算有效管理的例程1000的各方面的图。本领域普通技术人员应当理解,在本文中所公开的方法的操作不一定以任意特定次序来呈现,并且以(一种或多种)替代次序进行一些或所有操作的执行是可能的并且被设想到了。为了便于描述和图示,已经按所演示的次序呈现了操作。在不背离所附权利要求的范围的情况下,可以添加、省略、一起执行和/或同时执行操作。

还应当理解,所图示出的方法能够在任何时间结束并且不需要以其整体来执行。如在本文中所定义的,能够通过执行被包括在计算机存储介质上的计算机可读指令来执行方法的一些或全部操作和/或基本等同的操作。在说明书和权利要求书中所使用的术语“计算机可读指令”以及其变型在本文中被广泛地使用以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。能够在各种系统配置上实现计算机可读指令,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费者电子产品、其组合等。

因此,应当意识到,在本文中所描述的逻辑操作被实现为:(1)在诸如在本文中所描述的那些计算系统上运行的计算机实现的动作或程序模块的序列;和/或(2)互连机器逻辑电路或者在计算系统内的电路模块。所述实现是取决于计算系统的性能和其他要求的选择问题。因此,所述逻辑操作可以以软件、固件、专用数字逻辑以及其任意组合来实现。

另外,能够与上文所描述的示例性呈现ui相关联地实现在图10和其他图中所图示的操作。例如,在本文中所描述的(一个或多个)各种设备和/或(一个或多个)模块能够生成、发送、接收和/或显示与通信会话的内容相关联的数据(例如,现场内容、广播事件、记录的内容等)和/或演示ui,其包括远程计算设备、化身、信道、聊天会话、视频流、图像、虚拟对象和/或与通信会话相关联的应用的一个或多个参与者的渲染。

例程1000开始于操作1002,其中,计算设备101接收定义了真实世界环境的3d表示的传感器数据。所述传感器数据能够由深度图传感器(例如,深度图相机)捕获。另外,所述传感器数据能够由图像传感器(例如,相机)捕获,其中,所述深度图传感器和所述图像传感器能够是相同组件的一部分或者在单独的组件中。所述传感器数据包括定义真实世界环境的三维模型和真实世界环境的图像的深度图数据。例如,真实世界环境可以包括房间的墙壁和房间内的特定对象,诸如在图1中所示的真实世界对象。所述传感器数据能够定义真实世界环境内的对象或多个真实世界对象的物理属性。所述传感器数据还指示环境内的一个或多个对象的地理位置。因此,能够通过对传感器数据的分析来进行对象的测量或环境的测量。与参与协作环境的多个用户共享在所述传感器数据中定义的一个或多个对象。所述协作环境能够包括通信会话,所述通信会话允许用户发送、接收和查看被呈现在显示设备上的传感器数据的各方面。

然后,例程进行到操作1004,其中,计算设备101接收定义要在协作环境的视图内显示的一个或多个虚拟对象的模型数据。所述模型数据能够定义将虚拟对象放置在协作环境的用户界面内的特定位置。

在操作1006处,所述计算设备能够识别感兴趣的虚拟对象和真实世界对象。如在本文中所描述的,能够基于多个因素将对象视为感兴趣对象,所述因素包括但不限于:与特定对象的用户交互的阈值水平、关于特定对象的通信的阈值水平、特定对象的移动的阈值水平,等等。

在一些实施例中,通过确定从输入设备接收到的输入信号相对于多个真实世界对象中的至少一个真实世界对象的交互水平,可以将对象视为感兴趣对象。这可以包括用于编辑特定对象的输入数量、有关特定对象的评论数量、人们对特定项目的关注,诸如某人花在查看特定项目的时间等。这能够通过跟踪特定用户的眼睛移动并且记录一个人在一段时间内花费多少时间查看对象来确定。系统能够确定交互水平何时超过定义的阈值。响应于确定所述交互水平超过所述阈值,系统能够确定至少一个对象是感兴趣对象。这样的技术还能够应用于对象的各方面,诸如对象的大小、对象的移动量、对象的颜色、对象的温度、对象的纹理等。移动水平能够表示速度、距离、旋转速度或者任何其他类型的移动。当移动超过阈值时,系统能够将特定对象视为感兴趣对象。

响应于检测到关于特定对象的温度、颜色或物理特性中的至少一个的阈值水平变化,系统能够将该特定对象视为感兴趣对象。物理属性变化能够是例如形状,例如,对象正在融化、从液体到固体、从固体到液体等。

响应于确定特定对象的物理属性与一个或多个预定属性相匹配,系统可以将特定对象视为感兴趣对象。例如,系统可以具有指示预定属性的偏好文件,诸如对象的视觉轮廓,诸如引擎或计算机。如果图像数据或深度图数据指示特定的真实世界对象具有至少在阈值差之内与偏好文件中所描述的物理属性相匹配的物理属性,例如维度、颜色或大小,则可以选择该特定的真实世界对象作为感兴趣对象。例如,该特征可以允许系统选择房间中的所有计算机或者视图中的所有引擎。这能够避免识别不希望的对象,诸如墙壁、家具或人。通过仅为会议中的特定对象创建代理和数据库,该技术还能够允许计算设备更高效。因此,将仅为在会议中被认为是重要的项目生成代理。

接下来,在操作1008处,所述计算设备能够生成一个或多个代理以及与感兴趣的虚拟对象相关联的关联数据库。出于说明的目的,代理的生成在本文中被称为定义代理实例的数据的生成,其中,代理实例与至少一个对象相关联。定义所述代理实例的数据被永久地存储,以供多个通信会话访问。如在本文中所描述的,为识别出的对象实例化个体代理。所述个体代理被配置为分析对象的各方面,以生成有关对象的描述、关键字或者其他信息。

在操作1010处,所述计算设备监视用户活动以识别与每个对象相关联的信息。与对象相关联的关键字描述或其他参数是从各种来源(诸如输入设备、搜索引擎、库存数据库、委员会目录等)收集的。

在操作1012处,所述计算设备能够利用所识别出的信息来更新个体数据库。如在本文中所描述的,与对象相关联收集的任何信息能够由代理存储并且被存储在与所述对象相关联的数据库内。

在操作1014处,所述计算设备能够生成与个体对象相关联的一个或多个推荐。所述推荐能够包括用于修改对象的推荐。所述推荐能够是以下形式:(1)对现存虚拟对象的修改;(2)位于真实世界对象上方的新的虚拟对象;或者(3)推荐对真实世界对象进行修改的注释。所述推荐还能够包括显示统计数据、性能参数、需求以及其他上下文数据。

定义与每个对象相关联的推荐的数据也能够跨通信会话永久存储。因此,当在会话期间移动或删除对象(诸如引擎部件)时,在其他通信会话中修改所述推荐以指示这样的改变。例如,如果上述第一通信会话与第二通信会话同时地运行,则在第一通信会话内对特定对象的修改将更新记录数据,并且继而在第二通信会话内更新对所述特定对象的显示或者对所述对象的推荐。

在一些配置中,操作1014能够包括生成与个体虚拟对象的渲染和至少一个真实世界对象的视图相关联的一个或多个推荐的虚拟显示。所述推荐能够采用以下中的至少一种格式,如下所示。在一个示例中,推荐能够包括对包括至少一个新参数的至少一个虚拟对象的修改。例如,推荐实际上可以将第二虚拟对象(诸如固定设备)修改为具有不同的大小、不同的颜色、不同的形状、不同的纹理等。在另一示例中,所述推荐能够包括位于真实世界对象上方的新的虚拟对象。在上述示例中对此进行了说明,其中,新引擎的虚拟模型被显示在真实世界引擎上。在又一示例中,推荐能够包括注释,所述注释推荐对至少一个真实世界对象或虚拟对象的修改。如在图6的示例中所示的,许多注释能够为相关联对象提供任何信息,诸如新的大小、新的颜色、不同的形状或者任何其他类型的修改。另外,注释能够提供供应商名称、联系人名称、或者对获得特定项目有用的任何其他上下文数据。可以与特定对象相关联地显示其他信息,诸如投票结果、一致性决策或者任何其他决策制定数据。

在操作1016处,所述计算设备能够存储和处理所述推荐以用于机器学习目的。如在本文中所描述的,能够将任何收集到的信息(诸如通信数据或补充数据)或者任何生成的信息(诸如推荐)作为输入提供给机器学习算法,以改善未来推荐的生成。

应当意识到,上述主题可以被实现为计算机控制的装置、计算机过程、计算系统或者诸如计算机可读存储介质之类的制品。示例性方法的操作在单独的框中被图示出,并且参考那些框进行概述。所述方法被图示为框的逻辑流,其中的每个框能够表示能够以硬件、软件或者其组合实现的一个或多个操作。在软件的上下文中,所述操作表示被存储在一个或多个计算机可读介质上的计算机可执行指令,所述指令当由一个或多个处理器运行时使一个或多个处理器能够执行所述操作。

通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。描述操作的次序并不旨在被理解为限制,并且任意数量的所描述操作能够以任意次序执行、以任意次序组合、被细分为多个子操作和/或并行执行,以实现所描述的过程。能够由与一个或多个设备(诸如一个或多个内部或外部cpu或gpu)和/或一个或多个硬件逻辑(诸如现场可编程门阵列(“fpga”)、数字信号处理器(“dsp”)或者其他类型的加速器)相关联的资源执行所描述的过程。

上文所描述的所有方法和过程可以在由一个或多个通用计算机或处理器执行的软件代码模块中体现并且经由其完全自动化。可以将所述代码模块存储在任何类型的计算机可读存储介质或其他计算机存储设备中,诸如下文所描述的那些。所述方法中的一些或全部方法可以替代地被体现在专用计算机硬件中,诸如下文所描述的。

在本文中所描述的和/或在附图中所描绘的流程图中的任何常规描述、元素或框应当被理解为潜在地表示模块、分段或者代码的一部分,其包括用于实现例程中的特定逻辑功能或元素的一个或多个可执行指令。替代实现方式被包含在在本文中所描述的示例的范围内,其中,如本领域技术人员将理解的,取决于所涉及的功能,元件或功能可以被删除或者以与所示或所讨论的次序不同地执行,包括基本同步或者以相反的次序。

图11是图示了示例性环境1100的图,其中,系统1102能够实现在本文中所公开的技术。在一些实现方式中,系统1102可以用于收集、分析、共享定义向通信会话1004的用户显示的一个或多个对象的数据。

如所图示的,通信会话1104可以在与系统1102相关联或者作为系统1102的一部分的多个客户端计算设备1106(1)至1106(n)之间实现(其中,n是值等于或大于2的数字)。客户端计算设备1106(1)至1106(n)使得用户(也被称为个体)参与通信会话1104。例如,第一客户端计算设备1106(1)可以是图1的计算设备101或图13的计算设备1300。

在该示例中,通信会话1104由系统1102托管在一个或多个网络1108上。亦即,系统1102能够提供使得客户端计算设备1106(1)至1106(n)的用户能够参与通信会话1104(例如,经由实时查看和/或录制查看)的服务。因此,通信会话1104的“参与者”能够包括用户和/或客户端计算设备(例如,多个用户可以经由使用单个客户端计算设备在房间中参与通信会话),每个用户和/或客户端计算设备能够与其他参与者通信。作为替代,通信会话1104能够利用对等技术由客户端计算设备1106(1)至1106(n)之一来托管。系统1102还能够托管聊天对话和其他团队协作功能(例如,作为应用套件的一部分)。

在一些实现方式中,这样的聊天对话和其他团队协作功能被认为是不同于通信会话1104的外部通信会话。在通信会话1104中收集参与者数据的计算机化代理能够被链接到这样的外部通信会话。因此,计算机化代理可以接收诸如日期、时间、会话参与者等的信息,所述信息使得能够连接到这样的外部通信会话。在一个示例中,能够根据通信会话1104进行聊天会话。另外,系统1102可以托管通信会话1104,通信会话1104至少包括共同位于会议地点(诸如会议房间或礼堂)处或者位于不同位置的多个参与者。

在本文中所描述的示例中,参与通信会话1104的客户端计算设备1106(1)至1106(n)被配置为接收并且渲染以在显示屏的用户界面上显示通信数据。所述通信数据能够包括实时内容和/或记录内容的各种实例或流的集合。实时内容和/或记录内容的各种实例或流的集合可以由一个或多个相机(例如,视频相机)来提供。例如,实时或记录内容的单个流能够包括与由视频相机提供的视频馈送相关联的媒体数据(例如,捕获参与通信会话的用户的外观和语音的音频和视觉数据)。在一些实现方式中,所述视频馈送可以包括这样的音频和视觉数据、一幅或多幅静止图像和/或一个或多个化身。所述一幅或多幅静止图像还可以包括一个或多个化身。

实时或记录个体内容流的另一示例能够包括具有参与通信会话的用户的化身以及捕获用户语音的音频数据的媒体数据。实时或记录的个体内容流的另一示例能够包括具有在显示屏上显示的文件以及捕获用户语音的音频数据的媒体数据。因此,在通信数据中的实时或记录内容的各种流使得能够在一组人之间促进远程会议以及在一组人之内共享内容。在一些实现方式中,在通信数据内的实时或记录内容的各种流可以源自位于诸如房间的空间中的多个共置的视频相机,以记录或流送包括呈现内容的一个或多个个体以及消费所呈现的内容的一个或多个个体的演示。

参与者或参加者能够在活动发生时实时查看通信会话1104的内容,或者替代地在活动发生之后的较晚时间经由记录查看。在本文中所描述的示例中,参与通信会话1104的客户端计算设备1106(1)至1106(n)被配置为接收并且渲染以在显示屏的用户界面上显示通信数据。所述通信数据能够包括实时和/或记录内容的各种实例或流的集合。例如,个体内容流能够包括与视频馈送相关联的媒体数据(例如,捕获参与通信会话的用户的外观和语音的音频和视觉数据)。个体内容流的另一示例能够包括具有参与会议会话的用户的化身以及捕获用户语音的音频数据的媒体数据。个体内容流的又一示例能够包括具有在显示屏上显示的内容项和/或捕获用户语音的音频数据的媒体数据。因此,在通信数据内的各种内容流使得能够在分散于远程位置的一组人之间促进会议或广播演示。

通信会话的参与者或参加者是在相机或者其他图像和/或音频捕获设备范围内的人员,从而能够捕获(例如,记录)在该人员正在查看和/或收听经由通信会话共享的内容时产生的该人员的动作和/或声音。例如,参与者可能坐在人群中,查看发生舞台演示的广播位置处共享的实时内容。或者,参与者可能坐在办公室会议室中,经由显示屏查看与其他同事的通信会话的共享内容。甚至更进一步,参与者可能坐在或者站在个人设备(例如,平板计算机、智能手机、计算机等)的前方,独自在其办公室或家中查看通信会话的共享内容。

系统1102包括(一个或多个)设备1110。(一个或多个)设备1110和/或系统1102的其他组件能够包括彼此和/或经由一个或多个网络1108与客户端计算设备1106(1)至1106(n)通信的分布式计算资源。在一些示例中,系统1102可以是以管理一个或多个通信会话(诸如通信会话1104)的各方面为任务的独立系统。例如,系统1102可以由诸如slack、webex、gotomeeting、googlehangouts等实体来管理。

(一个或多个)网络1108可以包括例如公共网络(诸如互联网)、私有网络(诸如机构和/或个人内部网)或者私有网络与公共网络的某种组合。(一个或多个)网络1108还可以包括任意类型的有线和/或无线网络,包括但不限于:局域网(“lan”)、广域网(“wan”)、卫星网络、电缆网络、wi-fi网络、wimax网络、移动通信网络(例如3g、4g等)或者其任意组合。(一个或多个)网络1108可以利用通信协议,包括基于分组和/或基于数据报的协议,诸如互联网协议(“ip”)、传输控制协议(“tcp”)、用户数据报协议(“udp”)或者其他类型的协议。此外,(一个或多个)网络1108还可以包括促进网络通信和/或形成网络硬件基础的设备,诸如交换机、路由器、网关、接入点、防火墙、基站、转发器、骨干设备,等等。

在一些示例中,(一个或多个)网络1108还可以包括使得能够连接到无线网络的设备,诸如无线接入点(“wap”)。示例支持通过在各种电磁频率(例如,射频)上发送和接收数据的wap的连接性,包括支持电气和电子工程师协会(ieee)802.11标准(例如,802.11g、802.11n、802.11ac等)以及其他标准的wap。

在各个示例中,(一个或多个)设备1110可以包括以集群或其他分组配置操作的一个或多个计算设备,以共享资源、平衡负载、提高性能、提供故障转移支持或冗余、或者用于其他目的。例如,(一个或多个)设备1110可以属于各种类别的设备,诸如常规的服务器型设备、台式计算机型设备和/或移动型设备。因此,尽管被图示为单类型的设备或服务器类型的设备,但是(一个或多个)设备1110可以包括各种设备类型,并且不限于特定类型的设备。设备1110可以代表但不限于服务器计算机、台式计算机、网络服务器计算机、个人计算机、移动计算机、膝上型计算机、平板计算机或者任何其他种类的计算设备。

客户端计算设备(例如,客户端计算设备1106(1)至1106(n)中的一个)可以属于多种类别的设备,其可以与(一个或多个)设备1110相同或不同,诸如常规的客户端型设备、台式计算机型设备、移动型设备、专用型设备、嵌入式设备和/或可穿戴型设备。因此,客户端计算设备能够包括但不限于台式计算机、游戏控制台和/或游戏设备、平板计算机、个人数据助手(“pda”)、移动电话/平板计算机混合设备、膝上型计算机、电信设备、计算机导航类型客户端计算设备,诸如基于卫星的导航系统,包括全球定位系统(“gps”)设备、可穿戴设备、虚拟现实(“vr”)设备、增强现实(“ar”)设备、植入式计算设备、汽车计算机、支持网络的电视、瘦客户端、终端、物联网(“iot”)设备、工作站、媒体播放器、个人视频记录器(“pvr”)、机顶盒、相机、包含在计算设备的集成式组件(例如,外围设备)、器具或任何其他种类的计算设备。此外,所述客户端计算设备可以包括客户端计算设备的早期列出的示例的组合,诸如,例如台式计算机型设备或移动型设备与可穿戴设备等的组合。

各种类别和设备类型的客户端计算设备1106(1)至1106(n)能够表示具有诸如经由总线1116可操作地连接到计算机可读介质1184的一个或多个数据处理单元1112的任意类型的计算设备,所述总线1116在一些实例中能够包括以下中的一种或多种:系统总线、数据总线、地址总线、pci总线、mini-pci总线以及任何各种本地、外围和/或独立总线。

被存储在计算机可读介质1194上的可执行指令可以包括例如操作系统1119、客户端模块1120、简档模块1122、以及能由数据处理单元1192加载和执行的其他模块、程序或应用。

客户端计算设备1106(1)至1106(n)还可以包括一个或多个接口1124,以实现通过(一个或多个)网络1108在客户端计算设备1106(1)至1106(n)与其他联网设备(诸如(一个或多个)设备1110)之间的通信。这样的(一个或多个)网络接口1124可以包括一个或多个网络接口控制器(nic)或者其他类型的收发器设备,以通过网络发送和接收通信和/或数据。此外,客户端计算设备1106(1)至1106(n)能够包括输入/输出(“i/o”)接口(设备)1126,其实现与输入/输出设备的通信,诸如包括外围输入设备的用户输入设备(例如,游戏控制器、键盘、鼠标、笔、语音输入设备(诸如麦克风)、用于获得和提供视频馈送和/或静止图像的视频相机、触摸输入设备、手势输入设备等)、和/或包括外围输出设备的输出设备(例如,显示器、打印机、音频扬声器、触觉输出设备等)。图11图示了客户端计算设备1106(1)以某种方式被连接到显示设备(例如,显示屏1129(1)),所述显示设备能够根据在本文中所描述的技术来显示ui。

在图11的示例性环境1100中,客户端计算设备1106(1)至1106(n)可以使用其各自的客户端模块1120与彼此和/或(一个或多个)其他外部设备连接,以便参与通信会话1104,或者以便向协作环境贡献活动。例如,第一用户可以利用客户端计算设备1106(1)来与另一客户端计算设备1106(2)的第二用户进行通信。当执行客户端模块1120时,用户可以共享数据,这可能导致客户端计算设备1106(1)通过(一个或多个)网络1108连接到系统1102和/或其他客户端计算设备1106(2)至1106(n)。

客户端计算设备1106(1)至1106(n)可以使用其各自的简档模块1122来生成参与者简档(在图11中未示出),并且将所述参与者简档提供给其他客户端计算设备和/或系统1102的(一个或多个)设备1110。参与者简档可以包括以下中的一项或多项:用户或一组用户的身份(例如,名称、独有标识符(“id”)等)、用户数据(诸如个人数据)、机器数据(诸如位置(例如,ip地址、建筑物中的房间等)和技术能力等。参与者简档可以被用于向通信会话注册参与者。

如在图11中所示的,系统1102的(一个或多个)设备1110包括服务器模块1130和输出模块1132。在该示例中,服务器模块1130被配置为从个体客户端计算设备(诸如客户端计算设备1106(1)到1106(n))接收媒体流1134(1)至1134(n)。如上文所描述的,媒体流能够包括视频馈送(例如,与用户相关联的音频和视觉数据)、将与用户的化身的呈现一起输出的音频数据(例如,在其中未发送用户的音频数据的仅音频体验)、文本数据(例如,文本消息)、文件数据和/或屏幕共享数据(例如,在显示屏上所显示的文档、幻灯片、图像、视频等)等等。因此,服务器模块1130被配置为在实时查看通信会话1104期间接收各种媒体流1134(1)至1134(n)的集合(所述集合在本文中被称为“媒体数据1134”)。在一些场景中,并非所有参与通信会话1104的客户端计算设备都提供媒体流。例如,客户端计算设备可以仅是消费设备或“监听”设备,使得其仅接收与通信会话1104相关联的内容,而不向通信会话1104提供任何内容。

在各种示例中,服务器模块1130能够选择待与参与的客户端计算设备1106(1)至1106(n)中的个体客户端计算设备共享的媒体流1134的各方面。因此,服务器模块1130可以被配置为基于流1134来生成会话数据1136和/或将会话数据1136传递到输出模块1132。然后,输出模块1132可以将通信数据1138通信到客户端计算设备(例如,参与实时查看通信会话的客户端计算设备1106(1)至1106(3))。通信数据1138可以包括视频、音频和/或其他内容数据,其由输出模块1132基于与输出模块1132相关联的内容1150并且基于接收到的会话数据1136来提供。

如所示的,输出模块1132将通信数据1139(1)发送到客户端计算设备1106(1),并且将通信数据1139(2)发送到客户端计算设备1106(2),并且将通信数据1139(3)发送到客户端计算设备1106(3),等等。被发送到客户端计算设备的通信数据1139能够相同或不同(例如,在用户界面内的内容流的位置可以在设备之间变化)。

在各种实现方式中,(一个或多个)设备1110和/或客户端模块1120能够包括ui呈现模块1140。ui呈现模块1140可以被配置为分析通信数据1139,通信数据1139被传送到一个或多个客户端计算设备1106。具体而言,在(一个或多个)设备1110和/或客户端计算设备1106处,ui呈现模块1140可以分析通信数据1139,以确定用于在相关联的客户端计算设备1106的显示屏幕1129上显示视频、图像和/或内容的适当方式。在一些实现方式中,ui呈现模块1140可以将视频、图像和/或内容提供给被呈现在相关联的客户端计算设备1106的显示屏1129上的呈现ui1146。ui呈现模块1140可以使呈现ui1146呈现在显示屏1129上。呈现ui1146可以包括由ui呈现模块1140分析的视频、图像和/或内容。

在一些实现方式中,呈现ui1146可以包括可以渲染或包括视频、图像和/或内容以在显示屏1129上显示的多个部分或网格。例如,呈现ui1146的第一部分可以包括演示者或个体的视频馈送,呈现ui1146的第二部分可以包括消费由演示者或个体提供的会议信息的个体的视频馈送。ui呈现模块1140可以以适当地模仿演示者和个体可以共享的环境体验的方式来填充呈现ui1146的第一部分和第二部分。

在一些实现方式中,ui呈现模块1140可以放大或提供由视频馈送所表示的个体的放大视图,以便突出个体对演示者的反应,诸如面部特征。在一些实现方式中,呈现ui1146可以包括与会议(诸如一般通信会话)相关联的多个参与者的视频馈送。在其他实现方式中,呈现ui1146可以与信道(诸如聊天信道、企业团队信道等)相关联。因此,呈现ui1146可以与不同于一般通信会话的外部通信会话相关联。

图12图示了示出示例性设备1200(在本文中也被称为“计算设备”)的示例性组件的图,示例性设备1200被配置为生成针对在本文中所公开的一些用户界面的数据。设备1200可以生成可以包括一个或多个部分的数据,所述一个或多个部分可以渲染或包括视频、图像、虚拟对象116和/或内容以在显示屏幕1129上显示。设备1200可以表示在本文中所公开的(一个或多个)设备之一。另外地或替代地,设备1200可以表示客户端计算设备1106之一。

如所图示的,设备1200包括一个或多个数据处理单元1202、计算机可读介质1204和(一个或多个)通信接口1206。设备1200的组件例如经由总线1208可操作地连接,总线12008可以包括以下中的一种或多种:系统总线、数据总线、地址总线、pci总线、mini-pci总线、以及任何各种本地、外围和/或独立总线。

如在本文中所利用的,(一个或多个)数据处理器单元(诸如(一个或多个)数据处理单元1202和/或(一个或多个)数据处理单元1192)可以表示例如cpu型数据处理单元、gpu型数据处理单元、现场可编程门阵列(“fpga”)、另一类dsp、或者在一些情况下可以由cpu驱动的其他硬件逻辑组件。例如但不限于,可以利用的示例性类型的硬件逻辑组件包括专用集成电路(“asic”)、专用标准产品(“assp”)、片上系统(“soc”)、复杂可编程逻辑器件(“cpld”)等。

如在本文中所利用的,计算机可读介质(诸如计算机可读介质1204和计算机可读介质1194)可以存储能由(一个或多个)数据处理单元执行的指令。所述计算机可读介质还可以存储由外部数据处理单元(诸如由外部cpu、外部gpu)执行的指令,和/或能由外部加速器(诸如fpga型加速器、dsp型加速器或者任何其他内部或外部加速器)执行的指令。在各种示例中,在计算设备中并入了至少一个cpu、gpu和/或加速器,而在一些示例中,cpu、gpu和/或加速器中的一个或多个在计算设备的外部。

计算机可读介质(media)在本文也可以被称为计算机可读介质(medium),其可以包括计算机存储介质和/或通信介质。计算机存储介质可以包括以下中的一个或多个:易失性存储器、非易失性存储器、和/或其他永久和/或辅助计算机存储介质、可移动和不可移动计算机存储介质,其以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术来实现。因此,计算机存储介质包括设备和/或作为设备一部分或者在设备外部的硬件组件中包含的有形和/或物理形式的介质,包括但不限于:随机存取存储器(“ram”)、静态随机存取存储器(“sram”)、动态随机存取存储器(“dram”)、相变存储器(“pcm”)、只读存储器(“rom”)、可擦除可编程只读存储器(“eprom”)、电可擦除可编程只读存储器(“eeprom”)、闪存、光盘只读存储器(“cd-rom”)、数字多功能磁盘(“dvd”)、光卡或其他光存储介质、盒式磁带、磁带、磁盘存储、磁卡或其他磁存储设备或介质、固态存储器设备、存储阵列、网络附接存储、存储区域网络、托管计算机存储或任何其他存储存储器、存储设备和/或可用于存储和维护由计算设备访问的信息的存储介质。

与计算机存储介质相反,通信介质可以在诸如载波的经调制的数据信号或其他传输机制中体现计算机可读指令、数据结构、程序模块或其他数据。如在本文中所定义的,计算机存储介质并不包括通信介质。亦即,计算机存储介质本身不包括仅由经调制的数据信号、载波或传播信号组成的通信介质。

通信接口1206可以表示例如网络接口控制器(“nic”)或者其他类型的收发器设备,以通过网络发送和接收通信。此外,(一个或多个)通信接口1206可以包括一个或多个视频相机和/或音频设备1222,以使得能够生成视频馈送和/或静止图像等等。

在所图示的示例中,计算机可读介质1204包括数据存储库1208。在一些示例中,数据存储库1208包括诸如数据库、数据仓库或者其他类型的结构化或非结构化数据存储之类的数据存储。在一些示例中,数据存储库1208包括具有一个或多个表、索引、存储流程等的语料库和/或关系数据库,以使得数据访问例如包括一个或多个超文本标记语言(“html”)表、资源描述框架(“rdf”)表、web本体语言(“owl”)表和/或可扩展标记语言(“xml”)表。

数据存储库1208可以存储用于存储在计算机可读介质1204中和/或由(一个或多个)数据处理单元1202和/或(一个或多个)加速器执行的过程、应用、组件和/或模块的操作的数据。例如,在一些示例中,数据存储库1208可以存储会话数据1210(例如,会话数据1136)、简档数据1212(例如,与参与者简档相关联)和/或其他数据。会话数据1210能够包括通信会话中的参与者(例如,用户和/或客户端计算设备)的总数、在通信会话中发生的活动、通信会话的被邀请者列表和/或与何时以及如何进行或托管通信会话有关的其他数据。数据存储库1208还可以包括内容数据1214,诸如包括视频、音频或用于在一个或多个显示屏1129上渲染和显示的其他内容的内容。

替代地,一些或全部上述参考数据能够被存储在一个或多个数据处理单元1202上的单独的存储器1216上,诸如cpu型处理器、gpu型处理器、fpga型加速器、dsp型加速器和/或其他加速器上的存储器。在该示例中,计算机可读介质1204还包括操作系统1218和被配置为向其他设备公开设备1200的功能和数据的应用编程接口1210(api)。另外,计算机可读介质1204包括一个或多个模块,诸如服务器模块1230、输出模块1232和gui呈现模块1240,但是所图示的模块的数量仅仅是示例,并且所述数量可以更高或更低。亦即,在本文中所描述的与所图示的模块相关联的功能可以由在一个设备上的或者跨多个设备分布的较少数量的模块或较大数量的模块来执行。

图13是示出了能够实现在本文中所公开的系统的各方面的计算设备1300的配置和操作的各方面的计算设备图。计算设备1300示出了在图1中所示的计算设备101的细节。计算设备1300能够提供增强现实(“ar”)环境或虚拟现实(“vr”)环境。一般而言,ar环境将计算机生成的图像(“cg”)叠加在用户对现实世界环境的视图上。例如,计算设备1300能够生成合成视图以使得用户能够视觉地感知叠加在真实世界环境112的渲染上的计算机生成的图像,其中,真实世界环境112的渲染是由指向真实世界环境(诸如房间)的相机105创建的。在一些实施例中,计算设备1300能够生成合成视图以使得用户能够视觉地感知叠加在真实世界环境112的直接视图上的计算机生成的图像。因此,计算设备1300可以具有棱镜或者其他光学设备,所述棱镜或者光学设备允许用户通过光学设备看到真实世界对象或真实世界环境的直接视图,同时,计算机生成的图像叠加在真实世界对象的视图上。ar环境在本文中也能够被称为混合现实(“mr”)环境。mr设备能够提供ar和vr环境两者。vr环境包括计算机生成的虚拟环境和虚拟对象的图像。mr和ar环境能够利用深度图传感器来确定在设备与真实世界对象之间的距离。这允许计算机以逼真的方式在真实世界对象上缩放和定位计算机生成的图形。

在图13所示的示例中,光学系统1302包括照明引擎1304,其用于生成电磁(“em”)辐射,所述电磁辐射包括用于生成cg图像的第一带宽和用于跟踪物理对象的第二带宽两者。所述第一带宽可以包括em频谱的可见光部分中的一些或全部,而第二带宽可以包括适合于部署期望的跟踪协议的em频谱的任何部分。在该示例中,光学系统1302还包括光学组件1306,其被定位为从照明引擎1304接收em辐射并且沿着一个或多个预定光路引导em辐射(或者其单个带宽)。

例如,照明引擎1304可以沿着由第一带宽和第二带宽两者共享的公共光路将em辐射发射到光学组件1306中。光学组件1306还可以包括一个或多个光学组件,所述光学组件被配置为将第一带宽与第二带宽分开(例如,通过使第一带宽和第二带宽分别沿着不同的图像生成和对象跟踪光路来传播)。

在一些实例中,用户体验取决于计算设备1300,计算设备1300准确地识别物理对象103(“真实世界对象”)或平面(诸如真实世界地板)的特性,并且然后根据这些识别出的特性来生成cg图像。例如,假设对计算设备1300进行编程以生成用户感知,即虚拟游戏角色正在奔向并且最终跳过真实世界结构。为了实现该用户感知,计算设备1300可以获得定义计算设备1300周围的真实世界环境112的特征的详细数据。为了提供该功能,在一些实施例中,计算设备1300的光学系统1302可以包括激光线投影仪和差分成像相机(均未在图13中示出)。

在一些示例中,计算设备1300利用光学系统1302来生成包括一幅或多幅cg图像和真实世界环境112的至少一部分的视图的合成视图(例如,从佩戴计算设备1300的用户的角度)。例如,光学系统1302可以利用各种技术(诸如ar技术)来生成包括叠加在真实世界视图上的cg图像的合成视图。这样,光学系统1302可以被配置为经由包括显示面板1314的光学组件1306来生成cg图像。

在所图示的示例中,所述显示面板包括分别标记为1314r和1314l的分离的右眼和左眼透明显示面板。在一些示例中,显示面板1314包括可以利用两只眼睛查看的单个透明显示面板或者仅可以由单只眼睛查看的单个透明显示面板。因此,能够意识到,在本文中所描述的技术可以被部署在单眼设备(例如,googleglassar设备)内和在双眼设备(例如,microsofthololensar设备)内。

从真实世界环境112接收到的光穿过透视显示面板1314到达用户的一只或两只眼睛。图形内容由在处理单元1320上执行的图像生成引擎1326计算出,并且由右眼和左眼显示面板(当被配置为透明显示面板时)显示,并且可以被用于在视觉上增强或者以其他方式修改由用户通过透明显示面板1314查看的真实世界环境112。在这种配置中,用户能够在用户查看真实世界环境112内的物理对象103的同时查看在真实世界环境112内不存在的虚拟对象104。这创建了虚拟对象104是物理对象103或物理呈现位于真实世界环境112内的基于光的效果的幻像或外观。

在一些示例中,显示面板1314是波导显示器,其包括一个或多个衍射光学元件(“doe”),用于将入射光输入耦合到波导中,在一个或多个方向上扩展入射光以用于退出通孔扩张,和/或将入射光输出耦合到波导外(例如,朝向用户的眼睛)。在一些示例中,计算设备1300还包括额外的透明光学组件,在图13中以透明面纱1316的形式示出,透明面纱1316位于真实世界环境112与显示面板1314之间。能够意识到,出于纯粹美学和/或保护的目的,透明面纱1316可以被包含在计算设备1300中。

计算设备1300还可以包括各种其他组件(在图13中未全部示出),例如,前置相机(例如,红/绿/蓝(“rgb”)、黑白(“b&w”)或红外(“ir”)相机)、扬声器、麦克风、加速计、陀螺仪、磁力计、温度传感器、触摸传感器、生物统计传感器、其他图像传感器、储能组件(例如,电池)、通信设施、全球定位系统(“gps”)、接收器、激光线投影仪、差分成像相机以及可能的其他类型的传感器。从一个或多个传感器1308获得的数据(其中,一些如上识别出)能够被用于确定计算设备1300的取向、位置和运动。如上文所讨论的,从差分成像相机和激光线投影仪或其他类型的传感器获得的数据也能够被用于生成周围真实世界环境112的3d深度图。

在所图示的示例中,计算设备1300包括一个或多个逻辑设备以及一个或多个计算机存储器设备,所述计算机存储设备存储能由(一个或多个)逻辑设备执行以实现在本文中公开的功能性的指令。具体地,控制器1318能够包括一个或多个处理单元1320、用于存储操作系统1324的一个或多个计算机可读介质1322、以及图像生成引擎1326和地形映射引擎1328、以及其他程序(诸如3d深度图生成模块,其被配置为以在本文中所公开的方式生成深度图数据(“网格数据”)和数据。

在一些实现方式中,计算设备1300被配置为分析由传感器1308获得的数据以执行对计算设备1300的取向的基于特征的跟踪。例如,在对象数据包括在真实世界环境112内的静止物理对象103(例如,引擎)的指示的情况下,计算设备1300可以监视地形映射视场(“fov”)内的静止对象的位置。然后,基于在地形映射fov内的静止对象的位置变化和来自计算设备1300的静止对象的深度,在处理单元1320ar上执行的地形映射引擎可以计算出计算设备1300的取向的变化。

能够意识到,这些基于特征的跟踪技术可以被用于监视计算设备1300的取向的改变,以用于监视用户的头部的取向(例如,假设计算设备1300被用户102正确的佩戴)。能够以各种方式使用计算设备1300的计算出的取向,其中的一些在上文进行描述。

(一个或多个)处理单元1320能够表示例如中央处理单元(“cpu”)类型的处理器、图形处理单元(“gpu”)类型的处理单元、fpga、一个或多个数字信号处理器(“dsp”)、或者在一些情况下可以由cpu驱动的其他硬件逻辑组件。例如但不限于,能够使用的说明性类型的硬件逻辑组件包括:asic、专用标准产品(“assp”)、片上系统(soc)、复杂可编程逻辑设备(“cpld”)等控制器1318还可以包括一个或多个计算机可读介质1322,诸如上述计算机可读介质。

应当意识到,除非另外具体说明,否则在本文中所使用的条件语言,例如“能够”、“可以”、“可能”或“可”,在上下文中被理解为表示某些示例包括而其他示例不包括某些特征、元素和/或步骤。因此,这样的条件性语言通常并不意味着暗示一个或多个示例以任何方式需要某些特征、元素和/或步骤,或者一个或多个示例必须包括用于在有或没有用户输入或提示的情况下确定在任何特定示例中是否包括或将要执行某些特征、元素和/或步骤。除非另有明确说明,否则诸如短语“x、y或z中的至少一个”之类的连接语应当被理解为表示项目、术语等,可以是x、y或z,或是其组合。

还应当理解,可以对上述示例进行许多变化和修改,这些示例的元素被理解为在其他可接受示例中。所有这些修改和变化旨在包含在本公开的范围内,并由所附权利要求书保护。

最后,尽管已经用特定于结构特征和/或方法动作的语言描述了各种配置,但是应当理解,所附表示中定义的主题不必限于所描述的特定特征或动作。而是,公开了特定的特征和动作作为实现所要求保护的主题的示例性形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1