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

对与在通信会话内所显示的对象相关的内容的智能管理

文献发布时间:2023-06-19 12:02:28


对与在通信会话内所显示的对象相关的内容的智能管理

背景技术

存在提供虚拟现实(“VR”)和混合现实(“MR”)环境的许多平台。用户能够在由通信会话促进的协作环境中创建、编辑和共享二维(2D)和三维(3D)对象。尽管一些现有应用为用户提供了用于创建和共享多维对象的许多特征,但是一些现有系统具有许多缺点。例如,当一组用户在特定通信会话(例如,私人聊天、会议或广播)内创建对象时,用户可能难以与参与其他通信会话的用户共享那些对象。

例如,当一个通信会话的参与者希望与另一通信会话的用户共享3D对象以及与该3D对象相关的内容时,常常要求参与者保存对象以及相关内容的特定版本并且采取一些手动步骤来与其他用户共享所述对象和相关内容。当涉及到计算资源(例如,存储器资源、处理资源、网络资源等)时,管理对象和相关内容的这种手动过程会既耗时又低效。

出于说明的目的,考虑这样一种场景,其中,一个通信会话(诸如群组编辑会话)的参与者希望与私人聊天会话的用户共享3D对象以及与该3D对象相关的注释。为了促进这样的传输,可能需要用户创建针对所述对象的文件以及针对相关注释的文件。然后,可能要求用户与另一通信会话共享这两个文件。由于用户每次在不同类型的通信会话之间传输数据时都需要取回、重新创建和传输多个文件,因此该过程导致针对计算资源的低效。

随着用户增加与2D或3D对象相关的内容对象的数量,现有系统的这些缺点会变得更加复杂。例如,如果用户向3D对象添加注释和虚拟绘图对象,则用户必须执行多个手动步骤以与不同通信会话的用户共享3D对象以及相关联的内容,这可能在不同类型的平台上操作。当存在大量内容对象时,从逻辑的角度来看,对那些内容对象的管理会成为挑战。用户甚至必须执行许多手动步骤来管理定义所述内容对象和相关联的3D对象的文件。

发明内容

在本文中所公开的技术通过提供对与在通信会话内所显示的对象相关联的内容的智能管理来改善系统的效率。例如,考虑其中通信会话的参与者正在查看三维(3D)对象(诸如房间中的桌子)的场景。参与者能够生成与3D对象相关联的内容对象。所述内容对象可以是3D虚拟对象的形式,诸如指向桌子的箭头、包含与桌子相关的注释的文本框等。所述内容对象还可以包括收集和显示信息的功能特征,诸如问答(Q&A)对象、投票轮询对象等。为了简化管理所述内容对象的操作,所述系统生成数据结构,所述数据结构将对象(例如,3D环境中的3D桌子)与内容对象(例如,指向桌子的虚拟箭头)相关联。所述数据结构使得系统能够响应于与对象或内容对象的用户交互来维持在对象与内容对象之间的图形关联。所述数据结构还使得系统能够响应于一个或多个预定事件来自动地与远程通信会话的计算设备共享对象和关联内容对象。在所述数据结构中定义的许可能够控制用户移动、编辑或传送所述对象或内容对象的能力。

在一个说明性示例中,系统能够提供混合现实环境中的虚拟对象或真实世界对象的视图。用户能够将内容对象与虚拟对象或真实世界对象(这两者在本文中被统称为“对象”)相关联地定位。所述内容对象能够是笔记、消息、数据收集代理、注释、箭头或者能够与所选择的对象相关联地渲染和利用的任何其他数据或操作的形式。所述系统能够生成定义在对象与内容对象之间的关联的数据结构。在一些实施例中,对象被定义为“父对象”并且内容对象被定义为“子对象”。所述数据结构能够针对父对象和子对象来定义三维坐标。所述数据结构还可以定义父对象与子对象之间的相对位置,例如,父对象在子对象下方、上方或旁边。所述数据结构还能够定义能够被用于显示和收集信息的函数,诸如Q&A或者投票轮询。

所述系统能够检测一个或多个预定事件。例如,当用户提供指示希望在显示环境内移动父对象的手势时,所述系统能够以协调的方式来移动父对象和子对象以维持在两个项目之间的图形关联。另外,所述系统能够基于一个或多个事件将父对象和子对象传送到远程通信会话。在一个说明性示例中,系统监视多个远程通信会话,并且确定特定通信会话何时引用父对象或子对象。例如,参与私人聊天的参与者可能引用特定的父对象,诸如作为MS团队会议的主题的桌子。响应于所述引用,所述系统能够自动地取回所述数据结构以与私人聊天会话的计算设备共享和显示父对象和子对象,而无需从起源通信会话取回父对象或子对象的手动任务。定义父对象、子对象和相关许可的数据结构能够被用于控制对所述数据结构的传送以及控制远程通信会话的特定用户是否能够显示、编辑或访问父对象或子对象。

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

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

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

附图说明

具体实施方式参照附图进行描述。在图中,附图标记最左边的(一个或多个)数字标识该附图标记第一次出现的图。不同图中相同的附图标记指示相似或相同的项目。对多个项目中的个体项目进行的引用能够使用带有字母序列的字母的附图标记来引用每个个体项目。对项目的一般引用可以使用没有字母序列的特定附图标记。

图1图示了涉及能够被用于实现在本文中所公开的技术的系统100的示例性场景。

图2A图示了涉及用于移动对象的输入的过程。

图2B图示了涉及响应于应用到对象的输入而移动内容对象的过程。

图2C图示了涉及内容对象的移动和对象的渲染的过程。

图2D图示了内容对象的移动和对象的渲染的结果。

图3A图示了与多个子对象相关联的父对象的示例。

图3B图示了应用于与多个子对象相关联的父对象的移动操作的结果。

图4A图示了真实世界对象和内容对象的起始位置。

图4B图示了应用于与真实世界对象相关联的内容对象的输入的结果。

图4C图示了结合内容对象显示的真实世界对象的渲染。

图4D图示了响应于应用到相关联的内容对象的移动人的真实世界对象的渲染的移动。

图5A是图示了用于定义对象与Q&A对象形式的内容对象之间的关联的数据结构的两个实施例的框图。

图5B是图示了以投票轮询对象的形式定义内容对象的数据结构的另一实施例的框图。

图6是图示了在通信会话之间的数据结构和内容更新的传输的框图。

图7A图示了不同通信会话的两个计算机能够同时显示单个数据结构的内容对象的对象的场景。

图7B图示了其中不同通信会话的两个计算机能够显示和接收对Q&A对象的更新的场景。

图8A是图示了响应于应用于内容对象的用户命令而对数据结构和内容更新的传送的框图。

图8B是图示了响应于应用于内容对象的用户命令而将数据结构传送到服务器的框图。

图9是图示了响应于在不同通信会话处检测到的事件而对一个或多个数据结构的传送的框图。

图10是图示了用于对内容的计算有效管理的例程的各方面的流程图。

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

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

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

具体实施方式

图1图示了涉及能够被用于实现在本文中所公开的技术的系统100的示例性场景。系统100能够被配置为提供促进在两个或更多个计算设备之间的通信的协作环境。提供协作环境的系统能够允许参与者在通信会话内交换实况视频、实况音频以及其他形式的数据。协作环境能够是任何合适的通信会话格式,包括但不限于:私人聊天会话、多用户编辑会话、小组会议、广播等。

系统100能够促进在任意合适数量的计算设备之间的通信会话。在该示例中,系统100促进在第一计算设备101A、第二计算设备101B、第三计算设备101C和第四计算设备101D之间的通信会话。所述计算设备能够是任何形式,诸如膝上型计算机、台式计算机、平板计算机、电话、虚拟现实头戴式设备或者混合现实设备。

在图1中所示的示例中,第一计算设备101A是混合现实设备,其显示并且提供增强视图120。增强视图120包括在真实世界环境112中的真实世界对象110的视图(在本文中也被称为“物理对象”)。增强视图120还能够显示计算机生成的对象,所述对象与真实世界环境112的视图同时显示以增强一个或多个真实世界对象110。

在一些实施例中,能够通过使用棱镜将计算机生成的对象叠加在真实世界视图上,所述棱镜为用户提供真实世界对象110和真实世界环境112的直接视线视图。因此,用户能够通过所述棱镜来物理地看到真实世界对象110和真实世界环境112。所述棱镜允许用户看到从真实世界对象110和真实世界环境112反射的自然光,同时还允许用户看到从用于渲染计算机生成的对象的显示设备生成的光。通过将来自真实世界对象110的光和来自用于渲染计算机生成的对象的设备的光引导向用户的眼睛,所述棱镜允许系统通过提供计算机生成的对象的协调显示来增强真实世界视图的各方面。尽管在该示例中利用了棱镜,但是能够意识到,能够利用其他光学设备来生成增强视图120。例如,在一个替代实施例中,混合现实设备能够捕获真实世界对象110和真实世界环境112的图像,并且在显示屏上显示该图像,其中,所述计算机生成的对象能够增强真实世界对象110的图像。

在一些实施例中,第一计算设备101A利用诸如相机的成像设备来捕获真实世界对象110和真实世界环境112的图像。第一计算设备101A还能够包括传感器,其用于生成定义真实世界对象和真实世界环境112的三维(3D)模型的模型数据。所述模型数据和所述图像能够与其他计算设备共享以生成真实世界110和真实世界环境112的3D渲染或2D渲染。

第二计算设备101B是能够向用户显示3D虚拟环境121的虚拟现实设备。在该示例中,所述虚拟现实设备在真实世界环境112的渲染中显示对象110'的3D渲染。从第一计算设备101A通信的模型数据和图像数据能够定义真实世界对象110和真实世界环境112的各方面,以生成对象110'的渲染(在本文中也被描述为“渲染110'”)。

第三计算设备101C是能够显示协作环境的2D透视图的台式计算机的形式。在该示例中,所述2D透视图采用虚拟会议用户界面122的形式。所述台式计算机通过使用从第一计算设备101A传送的模型数据和图像数据来在虚拟用户界面122内显示对象110'和真实世界环境112的2D渲染。

第四计算设备101D是能够显示协作环境的2D透视图的移动设备的形式。在该示例中,所述2D透视图采用私人聊天用户界面123的形式。所述移动设备通过使用从第一计算设备101A传送的模型数据和图像数据来在私人聊天用户界面123内显示对象110'的2D渲染。

为了例示说明本公开的各方面,考虑这样一种场景,其中,用户在第一计算设备101A处提供输入,所述输入导致生成待放置在真实世界环境112内的内容对象111。在一些实施例中,与真实世界对象110(“对象110”)相关联地定位内容对象111。例如,内容对象111能够被定位在对象110的上方、旁边或下方。在该特定示例中,内容对象111被定位在对象110的上方,在该示例中,对象110是桌子。内容对象111具体与桌子顶面的右角相关联。

在一些实施例中,对象110和内容对象111的位置能够由坐标系来定义。针对对象110的坐标数据能够从由第一计算设备101A的传感器所捕获的深度图数据来导出。针对内容对象111的坐标数据能够从用户将内容对象111放置在渲染环境视图内的输入手势来导出。“相对位置”能够由偏移来定义,所述偏移是根据一个对象的坐标位置与另一对象(诸如内容对象111)的坐标位置的差异来生成的。所述偏移可以由3D坐标来定义,例如,内容对象从位于位置(X=-500,Y=103,Z=100)的对象偏移(X=-5.0,Y=10,Z=-30)。

内容对象111能够是任意形式。例如,内容对象111可以是3D虚拟对象的形式,诸如指向桌子的箭头、包括与桌子相关的注释的文本框等。内容对象111能够包括任何类型的数据,包括视频数据、音频数据、动画图形、图像等。所述内容对象还可以包括显示和收集信息的功能特征,诸如问答(Q&A)对象、投票轮询对象等。在图1的示例中,内容对象111是问答(“Q&A”)对象的形式,其与对象110(例如,桌子)相关联地定位。内容对象111还能够包括有生命对象、无生命对象,例如人的实况视频馈送或计算机生成的化身的实况视频馈送。类似地,对象110也能够是任何形式。对象110能够包括具有功能的虚拟对象,或者对象110能够是没有功能的被动对象。因此,对象110和内容对象111两者都能够具有相似的形式,例如,这两者都能够是Q&A对象,其中,一个被视为父对象而另一个被视为子对象。对象110和内容对象111能够以2D或3D格式来渲染。

如将在下文更详细描述的,Q&A对象被配置为显示一个或多个查询并且允许参与者提供对所述查询的响应。所述Q&A对象被配置为显示所述查询并且收集来自用户的响应。所述Q&A对象还能够被配置为选择性地向具有在数据结构中定义的适当许可的通信会话的参与者显示所述响应。

当内容对象111与对象相关联地放置时,所述系统生成定义在对象与内容对象之间的关联的数据结构。在一些实施例中,所述对象能够被定义为“父对象”并且内容对象能够被定义为“子对象”。在一些实施例中,系统能够被允许具有与单个父对象相关联的多个子对象。所述父对象和子对象可以与标识符相关联以辅助计算设备跟踪每个相关联的项目。所述数据结构能够定义针对父对象和子对象的坐标以及定义在父对象与相关联的子对象之间的相对位置的其他关联数据。所述数据结构被配置为使计算设备维持在父对象与子对象之间的图形关联。因此,当对象(例如,桌子)被移动或删除时,相关联的内容对象(例如,Q&A)被重新定位或删除以维持与被移动或删除的对象的一致视觉关联。当内容对象被移动或删除时,相关联的对象被重新定位或删除以维持与被移动或删除的内容对象的一致视觉关联。

所述数据结构能够使其他计算设备显示内容对象111的渲染。例如,在第一计算设备101A处提供的输入能够导致创建定义内容对象111的数据结构。所述数据结构能够导致第二计算设备101B生成并且显示在虚拟环境内的内容对象111的渲染。所述数据结构能够使第三计算设备101C在二维会议环境(例如,122)内生成并且显示内容对象111的渲染,并且所述数据结构能够使第四计算设备101D在诸如聊天用户界面123之类的其他用户界面格式内生成并且显示内容对象111的渲染。

所述数据结构使得系统能够在针对每个对象所采取的多个动作期间维持父对象与子对象之间的关系。例如,系统可以分析指示要应用于内容对象或对象的操作的输入。响应于检测到所述操作将被应用于所述内容对象,所述系统可以基于所述数据结构中定义的关联而将所述操作应用于内容对象并且将所述操作复制到对象。例如,如果用户输入指示用户希望将所述内容对象(例如,Q&A)传送到远程通信会话,则所述系统将所述内容对象传送到所述远程通信会话。另外,基于在所述数据结构中定义的许可,所述系统将选择性地将所述对象传送到所述远程通信会话。

当用户对对象(例如,桌子)应用操作时,也可能发生相似的操作。所述系统可以分析指示要应用于所述内容对象或对象的操作的输入。响应于检测到操作将被应用于对象,所述系统可以基于在所述数据结构中定义的关联将所述操作应用于对象并且将所述操作复制到内容对象。例如,如果所述用户输入指示用户希望将对象(例如,桌子)传送到远程通信会话,则所述系统将所述对象传送到所述远程通信会话。另外,基于在所述数据结构中定义的许可,所述系统将选择性地将所述内容对象传送到所述远程通信会话。

所述数据结构能够被用于影响被应用于父对象或子对象的许多操作。在一些实施例中,能够被应用于对象或内容对象的操作包括但不限于对象的图形移动和对象的通信。图2到图4是对象的“图形移动”的说明性示例,而图6到图9示出了对象的通信的示例。

图2A到图2D图示了如何响应于以真实世界对象的形式的对象的移动而移动内容对象的示例。图3A到图3B图示了如何响应于内容对象的移动而移动真实世界对象的图像的示例。

图2A和图2B示出了来自第一计算设备101A的透视图,其显示了真实世界环境112的视图。在图2A和图2B中,真实世界对象110(例如,桌子)在沿箭头方向从第一位置物理地移动到第二位置。在该示例中,桌子在房间112内被物理地移动,并且第一计算设备101A的传感器跟踪所述移动。

如在图2B中所示的,响应于检测到桌子的移动,第一计算设备101A移动内容对象111以维持内容对象111与真实世界对象110之间的相对位置。当真实世界对象110在运动时,内容对象111被移动以跟踪真实世界对象110的移动,并且所述移动维持在数据结构中所定义的图形关联。如下文所描述的,第一计算设备101A或者其他传感器的传感器数据能够被用于检测物理对象(诸如桌子)的移动。尽管该示例涉及对头戴式显示器的使用,但是接收传感器数据的任何计算设备都能够控制内容对象111的移动。

利用所述数据结构的计算设备能够以相似的方式来维持内容对象111与真实世界对象110之间的图形关联。例如,图2C和图2D从显示虚拟会议用户界面122的第三计算设备101C的角度示出了真实世界对象110与内容对象111的移动。图2C示出了在原始位置中的真实世界对象110和内容对象111的渲染。图2D示出了在真实世界对象110移动期间或之后真实世界对象110和内容对象111的渲染。随着真实世界对象110被移动,内容对象111的位置跟踪真实世界对象110的位置。

尽管上文所描述的示例涉及父对象是实际真实世界对象的示例,但是能够意识到,父对象也能够涉及虚拟对象。因此,在图2A和图2B中所示的示例中,对象110实际上能够是在视图121内渲染的虚拟对象,并且在内容对象111与虚拟对象之间的关联能够被存储在数据结构内。因此,在该示例中,能够利用诸如输入手势的用户输入来移动对象110,并且响应于这样的输入,能够移动内容对象111以维持在两个对象之间的图形关联。

图3A和图3B图示了与多个内容对象111相关联的对象110的示例。在该示例中,对象110(被显示为对象110'的渲染)与第一内容对象111A(Q&A)、第二内容对象111B(注释)和第三内容对象111C(箭头)相关联。在这样的场景中,将生成将每个内容对象(111A-111C)与对象110相关联的数据结构。该示例是从显示虚拟会议用户界面122的第三计算设备101C的角度例示说明的。

在该示例中,用户输入指示对第一内容对象111A的选择。所述用户输入还提供针对第一内容对象111A的新位置的指示。响应于接收到指示针对第一内容对象111A的新位置的用户输入,移动对象110'的渲染以维持在第一内容对象111A与对象110'的渲染之间的图形关联。另外,给定与其他内容对象(111B-111C)的关联,所述系统还移动其他内容对象(111B-111C)以维持在数据结构中定义的图形关联。如在图3B中所示的,对所述对象110'的渲染进行重新定位以维持相对于第一内容对象111A的相对位置。另外,对第二内容对象111B和第三内容对象111C进行重新定位以维持相对于对象110'的渲染的相同的相对位置。

图4A到图4D图示了解决可能从由混合现实设备提供的对象110的直接视图中发生的视觉冲突的技术。具体而言,图4A和图4B图示了当混合现实设备提供在真实世界环境112中的对象110的直接视图时可能出现的视觉冲突。在该示例中,提供用户输入以移动内容对象111。如上文所描述的,这样的输入能够使计算机移动与内容对象111相关联的对象110的渲染。这样的特征与3D虚拟环境121、虚拟会议用户界面122和私人聊天用户界面123一起工作良好,其中,计算机显示真实世界对象110的渲染。然而,如在图4A和图4B之间的转变所示,当混合现实设备提供对象110的直接视图时,所述混合现实设备不能移动在真实世界环境112内查看的真实世界对象110。

为了向混合现实设备的用户给出与其他类型计算设备的用户相同的体验,在本文中所公开的一些实施例能够生成对象110'的渲染(在本文中也被称为渲染110'),其用作在真实世界对象110上的覆盖。在图4C中所示的示例中,对象110'的渲染被生成并且被放置在实际的真实世界对象110的直接视图上。渲染110'的位置也能够与内容对象111的位置协调。因此,当接收到导致要移动真实世界对象110的输入时,所述混合现实设备能够移动渲染110'以维持与内容对象111的关联。在一些实施例中,如在图4D中所示的,所述混合现实设备还能够渲染图形元素401以遮挡对象110的直接视图。图形元素401能够是可选的,因为系统可能需要与渲染真实世界对象110'同时地提供真实世界对象110的视图。在这样的实施例中,一个或多个图形效果可以被应用于真实世界对象110的视图或真实世界对象110'的渲染,诸如暗淡效应以帮助用户将物理对象与渲染对象区分开来。

现在参考图5A,下文示出和描述了数据结构501的额外方面。在一些实施例中,数据结构501能够包括关联数据503、模型数据505和内容数据507。一般而言,关联数据503定义了在父对象与子对象之间的关系。关联数据503能够提供使得计算设备能够维持在父对象与子对象之间的图形关联的任何信息。在一个实施例中,关联数据503能够定义在父对象与子对象之间的相对位置。能够通过从对象110的坐标位置和内容对象111的坐标位置的差异生成的偏移来定义所述相对位置。

模型数据505定义父对象的各方面。内容数据507能够定义子对象的定义方面。模型数据505和内容数据507能够定义图像、纹理、维度、颜色等。数据505和内容数据507还能够定义父对象和子对象的功能特征。模型数据505和内容数据507还能够包括能够被用于向父对象和子对象提供上下文的关键字或短语。

图5A还图示了定义对象(真实世界对象或虚拟对象)与Q&A形式的内容对象之间的关系的数据结构501'的示例。在该示例中,关联数据503'定义了针对父对象的位置和针对子对象的位置。所述位置能够是任何合适的格式,包括3D或2D坐标系中的点。另外,关联数据503'定义了在真实世界对象与内容对象之间的相对位置。在两个对象之间的相对位置能够通过偏移来定义。父对象可能位于坐标系中的某个位置处,并且所述偏移能够定义子对象的位置。所述偏移能够是任何合适的格式,诸如定义在父对象的位置与子对象的位置之间的增量的3D(X,Y,Z)偏移或2D(X,Y)偏移。

模型数据505'通常能够定义父对象的物理特性。在图5A的示例中,如果父对象是真实世界对象,则模型数据505'可以定义真实世界对象的维度、纹理、颜色以及其他方面。模型数据505'还可以包括真实世界对象的图像。如果父对象是虚拟对象,则所述模型数据能够定义每个表面的坐标、每个表面的纹理、每个表面的颜色等。

内容数据507'通常能够定义内容对象111的任何物理或功能特性。例如,如果内容对象111是真实世界对象,则内容数据507'可以定义真实世界对象的维度、纹理、颜色以及其他方面。内容数据507'还可以包括内容对象111的图像。如果内容对象111是虚拟对象,则内容数据能够定义每个表面的坐标、每个表面的纹理、每个表面的颜色等。

在图5A的示例中,内容对象111是Q&A的形式。因此,内容数据507'定义了用户界面布局、针对问题的文本格式以及针对答案的文本格式。内容数据507'还包括功能特征,诸如用户许可和/或数据过滤器。所述许可能够定义能够查看Q&A的个体用户或群组用户,以及定义能够对Q&A提供响应的个体用户或群组用户的许可。另外,所述许可能够控制对Q&A的个体答案的读写许可。所述过滤器能够被用于显示或隐藏满足阈值优先级的选择答案。优先级能够基于答案可能具有的关于问题的相关性级别。

图5B图示了数据结构501”的另一示例,其以轮询的形式定义在对象与内容对象之间的关系。在该示例中,关联数据503”和模型数据505”类似于上文所描述的示例。然而,在该示例中,关联数据503”包括用户许可。在该示例中,所述许可为第一用户(用户1)提供针对对象110和内容对象111的读写许可。另外,所述许可为第二用户(用户2)提供针对对象110和内容对象111的只读许可,以及所述许可限制所有其他用户针对对象110和内容对象111的读写访问。尽管该示例为个体用户提供了许可,但是能够意识到,所述数据结构能够定义群组用户针对对象或内容对象的许可。在一些实施例中,所述许可能够包括诸如空值之类的定义,其使得能够针对所有用户开放访问以将操作应用于对象或内容对象。

通过使用在数据结构501”中定义的许可,计算系统能够控制对相对特定用户或特定角色的对象或内容对象的读写访问。因此,当对象和内容对象被传送到远程计算机时,只有某些人可以构建以对父对象或子对象进行修改。在上文的示例中,第一用户能够移动父对象和子对象,但是第二用户仅能够查看对象。

也能够向每个用户分配更细粒度的许可。例如,特定用户或群组用户能够针对内容对象进行改变,例如,提供信息更新(例如,提供投票或答案)或者改变渲染相对于父对象的位置,但是所述许可可能限制该用户对所述父对象进行修改。在该示例中,所述用户能够围绕父对象移动内容对象,例如,将对象从父对象的一侧移动到父对象的顶部,但是该用户不能够改变父对象的位置。

返回到图5B,内容数据507”以投票轮询的形式例示说明了内容对象的示例性属性。在该示例中,内容数据507”定义了针对轮询描述的格式、定义图表格式的数据以及诸如用户参与和用户许可的特征之类的功能特征。因此,基于定义各种参与者的角色的许可,某些投票者能够对其他投票者进行加权投票。同样地,基于定义各种参与者的角色的许可,某些用户或某些群组用户可以访问结果的某些方面,以及投票的许可。提供这些示例是出于例示说明的目的,不应当被解释为限制。能够意识到,所述许可能够提供针对时间和内容的细粒度控制。例如,特定身份可以具有在预定时间或预定时隙访问和编辑对象或内容对象的能力。

通过使用数据结构501的许可,系统能够控制某些用户或群组用户是否能够访问或编辑文件的特定迭代。例如,考虑员工正在编辑文件并且对该文件进行多次迭代的场景。所述员工能够为某些用户设置访问特定迭代(例如,文件的某些版本)的许可,并且访问级别可以基于时间。例如,员工可以允许特定团队对工作日的某个部分具有只读访问,并且然后为工作日的另一部分提供编辑访问。

如上文所概述的,数据结构501能够由参与通信会话的一个或多个计算设备来生成。数据结构501被配置和布置为允许将父对象和子对象传送到其他通信会话的其他计算设备。能够基于一个或多个事件或条件将数据结构501发送到多个不同类型的通信会话。在一个说明性示例中,能够响应于指示对象或内容对象与远程通信会话共享的用户输入而将数据结构501传送到远程通信会话。在另一说明性示例中,如果远程通信会话的用户活动指示与在数据结构内定义的上下文相关的用户活动,则能够将数据结构501传送到远程通信会话。在图6中图示了这些特征的示例。

在图6的示例中,数据结构501由第一指示会话1104A的一个或多个计算设备(101A-101D)来生成。数据结构501能够包括具有父-子关联的两个或更多个对象的定义。响应于一个或多个事件,数据结构501能够被传送到第二通信会话1104B的任何计算设备(101E-101K)或者第三通信会话1104C的任何计算设备(101L-110R)。在一个说明性实施例中,能够基于从远程通信会话的任何计算设备(101E-101R)接收到的请求,将数据结构501传送到第二通信会话或第三通信会话。在另一说明性实施例中,数据结构501能够从由第一通信会话1104A的计算设备(101A-101D)发出的命令推送到第二通信会话或第三通信会话。在又一实施例中,在指示对数据结构501中定义的对象感兴趣的任何计算设备(101E-101R)处检测到的用户活动能够调用针对数据结构501的请求。因此,包括具有与数据结构501中定义的上下文相似的阈值级别的关键字或其他标识符的任何用户活动(诸如对话、聊天或手势)导致将数据结构501递送到适当的通信会话。当数据结构501包括收集信息的功能能力时,诸如Q&A或轮询,数据结构501能够使远程通信会话从远程通信会话的参与者收集信息并且将内容更新602发送回起源通信会话。因此,由第一通信会话1104A生成的Q&A或投票轮询能够容易地与其他通信会话共享信息以收集来自未参与发起数据结构501的通信会话的用户的投票或反馈。

图7A图示了一个示例,其中,第一通信会话1104A的第三计算设备101C发起与对象110'的渲染相关联的Q&A(内容对象111)。在该示例中,聊天由第三通信会话1104C的计算设备101M来管理。参与聊天的用户指示对在第一次通信会话中所引用的桌子感兴趣。响应于对这样的用户活动的检测,定义桌子和相关联的Q&A的数据结构被传送到第三通信会话1104C。在该示例中,第三通信会话1104C的第二计算设备101M接收数据结构501并且显示与对象的图像(例如,桌子)相关联的Q&A的各方面。在该示例中,基于数据结构501和用户界面123的上下文来显示内容对象和对象。在该示例中,对象和内容对象的布局显示被修改以适应特定类别的用户界面。为了实现该特征,计算设备可以分析应用的用户界面。如果用户界面在特定类别内,例如聊天用户界面、MS团队用户界面、虚拟现实用户界面或者任何其他类别的用户界面,则计算设备可以调整内容对象的布局。如在图7A的右下用户界面所示的,假设对象被显示在私人聊天用户界面123上,内容对象111以相对于对象110的不同取向来显示。然而,在团队用户界面122上,内容对象111以相对于对象110'的渲染不同的取向来显示。

在图7A所示的另一特征中,第三通信会话1104C的第二计算设备101M的用户能够通过与用户界面123进行交互来自动地连接到第一通信会话1104A。例如,用户能够选择对象110'的渲染并且响应于这样的输入,第三通信会话1104C的第二计算设备101M能够自动地连接到第一通信会话1104A。在本文中被称为“远程端口(teleporting)”的概念允许用户切换到发起对象110或内容对象111的不同通信会话。该特征不仅允许用户发现相关通信会话的存在,而且该特征为用户给出移动到不同通信会话的简单方法,而无需手动步骤来将设备从通信会话断开和重新连接。

继续在图7B中的本示例,当用户提供对Q&A的额外答案(A3)时,第三通信会话1104C的一个或多个计算机向第一通信会话1104A的一个或多个计算机提供内容更新(图6的602)。作为响应,如图7B的右下UI所示的,参与所述第一通信会话的计算机(诸如计算设备101C)能够容易地显示由第三会话的计算机提供的额外答案。

内容更新602能够包括多种不同类型的信息。例如,在图7B中,如果计算设备101M的用户向左或向右移动对象110'的渲染,则计算设备101C将接收指示输入的内容更新602并且移动对象110'的渲染和相关联的内容对象111。在这样的示例中,如果数据结构501提供用于允许用户调用对象的图形移动的适当许可,则计算设备101C将仅移动对象110'的渲染和相关联的内容对象111。

图8A图示了能够引起对数据结构501的传送的机制的另一示例。在该示例中,所述第一通信会话的计算设备101C的用户提供将内容对象111移动到远程通信会话(第二通信会话1104B)的手势。在该示例中,内容对象111涉及投票轮询。响应于所述输入,数据结构501被传送到第二通信会话的计算设备。一旦第二通信会话1104B的计算机接收到数据结构501,子对象和父对象就被彼此关联地显示。在该示例中,数据结构501使第二通信会话1104B的第三计算设备101G显示投票轮询的各方面。在该示例中,数据结构501指示计算设备显示投票轮询的描述、具有特定图表类型(例如,条形图、折线图、散点图等)的结果,以及用于接收来自一个或多个用户的输入的一个或多个输入元素。在该示例中,计算设备101G的用户已经选择了指示针对所选择的候选的投票的第二图形元素。这样的用户输入能够使计算设备101G生成内容更新,并且能够将这样的内容更新发送回起源通信会话,即,第一通信会话1104A。

图8B图示了能够使计算设备与中央服务(例如,服务器801)共享数据结构501以提供数据结构501的持久存储的机制的另一示例。在该示例中,第一通信会话1104A的计算设备101C的用户提供了保存内容对象的手势,在这种情况下,该手势是Q&A的形式。保存内容对象的手势使计算设备保存定义内容对象以及其关联对象的整个数据结构。

在诸如服务器801的远程设备中接收数据结构501的动作能够基于多个动作。例如,管理通信会话的计算设备(诸如计算设备101C)能够周期性地将数据结构501保存到允许任何通信会话的计算机访问数据结构501的任何存储介质。数据结构501也能够响应于事件进行保存,诸如对内容对象或对象的更新,或者基于其他事件。

在一个说明性实施例中,数据结构501还能够包括历史数据。所述历史数据能够提供被应用于内容对象或对象的所有编辑和所有位置移动的历史。所述历史数据还能够提供每个个体的身份以及由每个个体应用于内容对象或对象的操作的具体描述。所述历史数据还能够提供与在操作中应用于内容对象或对象的每个个体相关联的通信会话的描述。所述历史数据能够被任何计算设备用于多种目的。例如,如果特定个体对特定对象应用了多次编辑,并且该特定个体在远程通信会话中被提及,诸如在其他用户之间的私人聊天会话,则可以将定义该特定对象的数据结构自动地传送到该私人聊天会话。

在该示例中,数据结构501被保存在服务器801的存储器设备803中。服务器801能够被配置为持久地存储任意数量的数据结构501A至501N,并且具有将任意一种数据结构传送到通信会话或个体计算设备的能力,指示需要数据结构501中所描述的内容对象或对象的计算过程。如在图9中所示的,任何通信会话,诸如第二通信会话1104B和第三通信会话1104C,能够从服务器801取回数据结构。另外,服务器801能够通过从每个通信会话的计算设备接收内容更新602来更新每个数据结构的内容。

提供这些示例是为了说明的目的,并且不应当被解释为限制。尽管这些示例基于用户输入来执行一个或多个操作,但是能够意识到,能够通过检测预定事件来调用一个或多个操作。例如,诸如特定用户在通信会话中的存在或者特定内容的存在之类的特定用户场景可能导致调用一个或多个操作。在其他示例中,智能代理能够调用一个或多个操作。例如,对象或内容对象可以是自治代理。在这样的实施例中,所述自治代理可以基于与通信会话的共享内容的相关性的阈值级别来决定从一个通信会话迁移到另一通信会话。

尽管这些示例说明了针对特定类型的内容对象(例如,Q&A或投票轮询)的用户输入,但是能够意识到,能够响应于针对其他对象(诸如父对象)的手势来传送定义子对象的对象的数据结构。通过使用在本文中所公开的技术指示对父或子的选择的命令,计算设备被配置为向所选择的父或子应用操作,并且还基于在数据结构501中定义的属性来将相同的操作复制到相关联的父或子。

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

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

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

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

例程1000开始于操作1002,其中,计算设备101接收定义真实世界环境的3D表示的传感器数据。所述传感器数据能够由深度图传感器(例如,深度图相机)来捕获。另外,所述传感器数据能够由图像传感器(例如,相机)来捕获,其中,所述深度图传感器和所述图像传感器能够是相同组件的一部分或者在单独的组件中。所述传感器数据包括定义真实世界环境的三维模型和真实世界环境的图像的深度图数据。例如,真实世界环境可以包括房间的墙壁和房间内的特定对象,诸如在图1中所示的真实世界对象110。所述传感器数据能够定义真实世界环境中的对象的物理特性。所述传感器数据还指示环境内的一个或多个对象的位置。出于说明的目的,所述真实世界对象在本文中也被称为“对象110”。

例程1000还包括操作1004,其中,计算设备101接收定义要在协作环境的视图内所显示的一个或多个虚拟对象的模型数据。所述模型数据能够定义虚拟对象将被放置在通信会话的用户界面内的特定位置。出于说明的目的,作为任何接收到的模型数据的结果被定位的虚拟对象在本文中被称为“内容对象111”。在一些配置中,操作1004包括从用户接收输入,导致生成定义一个或多个内容对象111的模型数据。内容对象111的示例能够包括但不限于:箭头和注释、Q&A对象、投票轮询对象等。输入可以定义内容对象111在输入中的位置,还可以标识关联对象110。例如,如果新内容对象111的位置在对象110的预定距离内,则新内容对象111能够与对象110相关联。

例程1000还包括操作1006,其中,计算设备101生成定义在内容对象111与关联对象110之间的关联的数据结构。在一些配置中,所述数据结构定义内容对象111的位置和针对关联对象110的位置。所述数据结构还可以定义在内容对象111的位置相对于对象110的位置之间的位置偏移。在一个说明性示例中,对象110被归类为父对象,并且内容对象111被归类为子对象。所述数据结构还可以包括针对个体用户或群组用户的许可。所述许可允许个体用户或群组用户对所述对象应用操作。另外,所述许可可以防止一个或多个用户对对象应用一个或多个操作。

例程1000在操作1008处继续,其中,计算设备101显示内容对象111和关联对象110。内容对象111和关联对象110的显示被布置为图示出两个对象之间的图形关联。在一些配置中,能够通过在两个对象之间的接近度或距离来识别图形关联。在其他实施例中,诸如线或箭头之类的图形元素能够图形地连接两个对象以示出图形关联。

接下来,例程1000在操作1010处继续,其中,计算设备101接收输入以将所选择的操作应用于对象110或相关联的内容对象111。所述输入能够是用户输入或者所述输入能够是计算机生成的指令。所述用户输入能够是语音命令、手势和与显示屏的交互或者通过输入设备的任何其他类型的输入的形式。所述输入能够应用于对象或内容对象。例如,图3B的示例示出了应用于内容对象111A、Q&A内容对象的用户输入。参考图3B,向对象应用的用户输入的示例将包括针对对象110'(例如,桌子)的渲染的用户输入。

接下来,在操作1012处,计算设备101将所选择的操作应用于所选择的对象或所选择的内容对象。例如,在用户输入指向内容对象(例如,Q&A内容对象)的上述示例中,所述计算设备将所选择的操作应用于所述内容对象。所选择的操作的示例可以包括在显示屏内移动所选择的内容对象。在当前示例中,这样的操作将在显示屏幕内移动Q&A内容对象的渲染。所选择的操作的另一示例可以包括将所选择的内容对象发送到远程通信会话的计算设备。在当前示例中,这样的操作将引起将Q&A内容对象发送到远程通信会话的计算设备。

接下来,在操作1014处,计算设备101基于所述数据结构将所选择的操作应用于关联对象或内容对象。在当前示例中,响应于确定输入命令被应用于内容对象111,所述计算设备将基于所述数据结构的属性将所选择的操作应用于所述关联对象,例如桌子。操作1014可以包括对所述数据结构的分析以确定所有相关对象、相关内容对象,并且还确定用于应用所选择的操作的一个或多个许可。如果所述许可未指示所选择的操作可以访问关联对象或关联内容对象,则计算设备可以阻止对所选择的操作的应用。

参考在图3B中所示的示例,在存在与单个对象110相关联的多个内容对象111的情况下,操作1014将还包括基于在所述数据结构中定义的关联将所选择的操作应用于其他内容对象,例如,第二内容对象111B和第三内容对象111C。在图3B中所示的示例中,第二内容对象111B和第三内容对象111C也基于向关联内容对象、第一内容对象111A应用的移动命令来移动。

操作1014还能够涉及将所选择的操作应用于关联内容对象。例如,如果所述输入指向对象110,则操作1014将根据所述数据结构将所选择的操作应用于关联内容对象。

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

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

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

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

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

如所图示的,通信会话1104可以在与系统1102相关联或者作为系统1102的一部分的多个客户端计算设备1106(1)至1106(N)(其中,N是值为二或更大的数)之间实现。客户端计算设备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的其他组件能够包括与彼此和/或与客户端计算设备1106(1)至1106(N)经由一个或多个网络1108通信的分布式计算资源。在一些示例中,系统1102可以是独立系统,其任务是管理诸如通信会话1104的一个或多个通信会话的各方面。作为示例,系统1102可以由诸如SLACK、WEBEX、GOTOMEETING、GOOGLE HANGOUTS等实体来管理。

(一个或多个)网络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的任何类型的计算设备,总线116在一些情况下能够包括以下中的一种或多种:系统总线、数据总线、地址总线、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能够选择媒体流1134的要与参与客户端计算设备1106(1)至1106(N)中的个体客户端计算设备共享的各方面。因此,服务器模块1130可以被配置为基于流1134来生成会话数据1136和/或将会话数据1136传递到输出模块1132。然后,输出模块1132可以将通信数据1138传送到客户端计算设备(例如,参与实况查看通信会话的客户端计算设备1106(1)至1106(3))。通信数据1138可以包括视频、音频和/或其他内容数据,由输出模块1132基于与输出模块1132相关联的内容1150并且基于接收到的会话数据1136来提供。

如所示的,输出模块1132向客户端计算设备1106(1)发送通信数据1139(1),并且向客户端计算设备1106(2)发送通信数据1139(2),并且向客户端计算设备1106(3)发送通信数据1139(3)等。被发送到所述客户端计算设备的通信数据1139能够相同或者能够不同(例如,在用户界面内的内容流的定位可以从一个设备到下一设备而不同)。

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

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

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

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

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

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

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

计算机可读介质(在本文中也可以被称为计算机可读介质)可以包括计算机存储介质和/或通信介质。计算机存储介质可以包括以存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任意方法或技术实现的易失性存储器、非易失性存储器和/或其他持久和/或辅助计算机存储介质、可移动和不可移动计算机存储介质中的一个或多个。因此,计算机存储介质包括设备中所包含的有形和/或物理形式的介质和/或作为设备的一部分或设备外部的硬件组件,包括但不限于:随机存取存储器(“RAM”)、静态随机存取存储器(“SRAM”)、动态随机存取存储器(“DRAM”)、相变存储器(“PCM”)、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存、光盘只读存储器(“CD-ROM”)、数字多功能磁盘(“DVD”)、光卡或其他光存储介质、盒式磁带、磁带、磁盘存储、磁卡或其他磁性存储设备或介质、固态存储器设备、存储阵列、网络额外存储、存储区域网络、托管的计算机存储或任何其他存储存储器、存储设备、和/或可用于存储和维持信息以供计算设备访问的存储介质。

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

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

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

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

替代地,上述数据中的一些或全部能够被存储在一个或多个数据处理单元1202上的独立存储器1216上,诸如CPU型处理器、GPU型处理器、FPGA型加速度计、DSP型加速度计和/或另一加速度计上的存储器。在该示例中,计算机可读介质1204还包括操作系统1218和(一个或多个)应用编程接口1210(API),其被配置为将设备1200的功能和数据暴露给其他设备。另外,计算机可读介质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准确地识别物理对象103(“真实世界对象”)或平面(诸如真实世界地板)的特性,并且然后根据这些识别出的特性来生成CG图像。例如,假设计算设备1300被编程为生成虚拟游戏角色正在跑向并且最终跳过真实世界结构的用户感知。为了实现该用户感知,计算设备1300可以获得定义计算设备1300周围的真实世界环境112的特征的详细数据。为了提供该功能,计算设备1300的光学系统1302在一些实施例中可以包括激光线投影仪和差分成像相机(这两者均未在图13中示出)。

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

在所图示的示例中,所述显示面板包括单独的右眼和左眼透明显示面板,分别标记为1314R和1314L。在一些示例中,显示面板1314包括可利用双眼查看的单个透明显示面板或者仅可利用单眼查看的单个透明显示面板。因此,能够意识到,在本文中所描述的技术可以被部署在单眼设备(例如,GOOGLE GLASS AR设备)和双眼设备(例如,MICROSOFTHOLOLENS AR设备)内。

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

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

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

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

在一些实现方式中,计算设备1300被配置为分析由传感器1308获得的数据以执行计算设备1300的取向的基于特征的跟踪。例如,在对象数据包括静止物理对象103在真实世界环境112(例如,引擎)内的指示的场景中,计算设备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或者其组合。

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

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

相关技术
  • 对与在通信会话内所显示的对象相关的内容的智能管理
  • 利用在线会话的内容选择广告内容和/或其他相关信息以供显示的系统和方法
技术分类

06120113142918