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

从时刻内容项的自动记忆创建和检索

文献发布时间:2024-04-18 19:58:26


从时刻内容项的自动记忆创建和检索

技术领域

本公开涉及用于创建语义相关的内容项(“记忆”)的组、以及智能地检索和浏览这些记忆内容项的过程、系统和数据结构。

背景技术

技术进步已使用户能够利用电话、无人机、人工现实设备或其它记录设备轻松捕获事件(例如,假期、生日、毕业典礼、婚礼等)。例如,许多用户具有数千图像的大集合,他们手动组织这些图像或这些图像按照拍摄日期排列。在这种情况下,用户必须浏览这数千张照片才能回忆起一事件,除了按时间戳外,几乎没有自动组织和搜索功能。即使在基于图像中的对象识别而提供一些基本标签的系统中,所得到的分组和搜索功能也不能允许用户定位多组这样的内容项:所述内容项与所描述的基本对象以外的概念相关,或者所述内容项在时间上不同的内容项之间具有关系。

发明内容

根据本发明的第一方面,提供了一种用于从时刻内容项创建记忆内容项的方法,该方法包括:从一个或多个用户指定的源中收集多个时刻内容项,其中,该多个时刻内容项被过滤以:识别多个重复的时刻内容项;以及选择该多个重复的时刻内容项中的一个或多个重复的时刻内容项;为多个时刻内容项分配标签,其中,分配标签向时刻内容项添加了语义标识符;确定该多个时刻内容项的时间顺序;将该多个时刻内容项聚类到多个记忆内容项中,每个记忆内容项包括一个或多个时刻内容项,该聚类被执行以使得在特定记忆内容项中的每个特定组的一个或多个时刻内容项中:基于该时间顺序,该一个或多个时刻内容项中的每个时刻内容项都处于该特定组中的至少一个其它时刻内容项的阈值时间内;以及基于分配给该特定组中的时刻内容项的标签,为该特定组计算的组分数高于阈值;以及提供该多个记忆内容项。

优选地,确定该多个时刻内容项的时间顺序进一步包括:基于以下中的一者或多者来排列该多个时刻内容项:类别、位置、所识别的用户、或活动。

优选地,确定该多个时刻内容项的时间顺序进一步包括:确定该多个时刻内容项中的重叠集合;以及对于该多个时刻内容项的每个重叠集合,基于以下中的一项或多项来选择该集合的有资格被添加到记忆的时刻内容项:为多个时刻内容项计算的质量因子和/或在每个时刻内容项中描绘的人物。

优选地,该聚类还被执行以使得:基于该时间顺序,在同一聚类中不存在两个时刻内容项相隔大于阈值时间。

优选地,基于分配给该多个时刻内容项的多个标签,对该多个时刻内容项进行聚类进一步包括:比较分配给多个时刻内容项的标签,以确定匹配标签;以及基于匹配标签的数量为该多个时刻内容项生成组分数。

优选地,每个聚类中的一个或多个时刻内容项的组分数还基于分配给标签类型的权重,其中,该组内容项之间的每个匹配标签根据为该标签的类型分配的重要性值被加权。

优选地,该多个时刻内容项中的至少第一时刻内容项是从与第一用户相关联的源中获取的,并且该多个时刻内容项中的至少第二时刻内容项是从与第二用户相关联的源中获取的,该第二时刻内容项与该第一时刻内容项不同,该第二用户与该第一用户不同。

根据本发明的第二方面,提供了一种用于从时刻内容项创建记忆内容项的计算系统,该计算系统包括:一个或多个处理器;以及一个或多个存储器,该一个或多个存储器存储有多个指令,该多个指令在被该一个或多个处理器执行时,使得该计算系统执行一过程,该过程包括:从一个或多个源中收集多个时刻内容项;为多个时刻内容项分配标签,其中,分配标签向时刻内容项添加了语义标识符;确定该多个时刻内容项的时间顺序;将该多个时刻内容项聚类到多个记忆内容项中,每个记忆内容项包括一个或多个时刻内容项,该聚类被执行以使得在特定记忆内容项中的每个特定组的一个或多个时刻内容项中:基于该时间顺序,该一个或多个时刻内容项中的每个时刻内容项都处于该特定组中的至少一个其它时刻内容项的阈值时间内;以及基于分配给该特定组中的时刻内容项的标签,为该特定组计算的组分数高于阈值;以及提供该多个记忆内容项。

优选地,确定该多个时刻内容项的时间顺序进一步包括:基于以下中的一者或两者排列该多个时刻内容项:位置和/或活动。

优选地,确定该多个时刻内容项的时间顺序进一步包括:确定该多个时刻内容项中的重叠集合;以及对于该多个时刻内容项的每个重叠集合,基于为多个时刻内容项中的各个时刻内容项计算的质量因子,选择该集合的有资格被添加到记忆的时刻内容项。

优选地,该聚类还被执行以使得:基于该时间顺序,在同一聚类中不存在两个时刻内容项相隔大于阈值时间。

优选地,基于分配给该多个时刻内容项的标签,对该多个时刻内容项进行聚类进一步包括:比较分配给多个时刻内容项的标签,以确定匹配标签;以及基于匹配标签的数量来为多个时刻内容项生成组分数。

优选地,每个聚类中的一个或多个时刻内容项的组分数还基于分配给标签类型的权重,其中,该组内容项之间的每个匹配标签根据为该标签的类型分配的重要性值被加权。

优选地,该多个记忆内容项中的至少一个记忆内容项包括来自在时间上重叠的多个视角的时刻内容项。

根据本发明的第三方面,提供了一种机器可读存储介质,该机器可读存储介质具有存储在其上多个机器可执行指令,该多个机器可执行指令在由一个或多个处理器执行时,使该一个或多个处理器执行一种用于从时刻内容项创建记忆内容项的方法,该方法包括:从一个或多个源收集多个时刻内容项;为多个时刻内容项分配标签,其中,分配标签向时刻内容项添加了语义标识符;确定该多个时刻内容项的时间顺序;将该多个时刻内容项聚类到多个记忆内容项中,每个记忆内容项包括一个或多个时刻内容项,该聚类被执行以使得在特定记忆内容项中的每个特定组的一个或多个时刻内容项中:基于该时间顺序,该一个或多个时刻内容项中的每个时刻内容项都处于该特定组中的至少一个其它时刻内容项的阈值时间内;以及基于分配给该特定组中的该一个或多个时刻内容项的标签,为该特定组计算的组分数高于阈值;以及提供该多个记忆内容项。

优选地,确定该多个时刻内容项的时间顺序进一步包括:基于以下中的一者或两者排列该多个时刻内容项:位置和/或活动。

优选地,确定该多个时刻内容项的时间顺序进一步包括:确定该多个时刻内容项中的重叠组;以及对于该多个时刻内容项的每个重叠组,基于为多个时刻内容项中的各个时刻内容项计算的质量因子,选择该组的有资格被添加到记忆的时刻内容项。

优选地,该聚类还被执行以使得:基于该时间顺序,在同一聚类中不存在两个时刻内容项相隔大于阈值时间。

优选地,基于分配给该多个时刻内容项的标签,对该多个时刻内容项进行聚类进一步包括:比较分配给多个时刻内容项的标签,以确定匹配标签;以及基于匹配标签的数量来为多个时刻内容项生成该组分数。

优选地,该多个时刻内容项中的至少第一时刻内容项是从与第一用户相关联的源中获取的,并且该多个时刻内容项中的至少第二时刻内容项是从与第二用户相关联的源中获取的,该第二时刻内容项与该第一时刻内容项不同,该第二用户与该第一用户不同。

附图说明

图1为示出了本技术一些实施方式可在其上运行的多个设备的概况的框图。

图2A为示出了可在本技术的一些实施方式中使用的虚拟现实头戴式设备(headset)的线示图。

图2B为示出了可在本技术一些实施方式中使用的混合现实头戴式设备的线示图。

图2C为示出了多个控制器的连接图,在一些实施方式中,用户可以用单手或双手握住该多个控制器以与人工现实环境交互。

图3为示出了本技术的一些实施方式可在其中运行的环境的概况的框图。

图4为示出了多个部件的框图,在一些实施方式中,该多个部件可以在采用所公开技术的系统中使用。

图5为示出了在本技术一些实施方式中用于从来自用户的多个时刻内容项创建记忆的过程的流程图。

图6为示出了在本技术一些实施方式中用于从由不同用户或设备采集的多个时刻内容项创建记忆的过程的流程图。

图7为示出了在本技术一些实施方式中用于将多个记忆组织成记忆分层结构的过程的流程图。

图8为示出了在本技术一些实施方式中用于绘制记忆之间的链接的过程的流程图。

图9为示出了在本技术一些实施方式中用于提供来自记忆分层结构的一个或多个记忆的过程的流程图。

图10为描绘了从来自用户的多个时刻内容项创建记忆的概念图。

图11为描绘了从由不同用户采集的多个时刻内容项创建记忆的概念图。

图12为描绘了将多个记忆组织成记忆分层结构的概念图。

图13为描绘了绘制记忆之间的链接的概念图。

图14A和图14B为描绘了使用这样的记忆图谱来浏览记忆的概念图:该记忆图谱在各种维度上具有记忆之间的链接。

图15为描绘了通过记忆分层结构并基于用户搜索标准来浏览记忆的概念图。

图16为描绘了这样的人工现实闪光的示例的概念图:该人工现实闪光显示了记忆分层结构。

图17为示出了在本技术一些实施方式中使用的、用于基于用户采集的时刻内容项和上下文来创建和提供记忆的系统的框图。

通过结合附图参考以下具体实施方式可以更好地理解这里所介绍的技术,在附图中,相似的附图标记指代相同或功能相似的元件。

具体实施方式

本公开的各方面涉及从时刻内容项的自动记忆创建和检索。在一些实施方式中,自动记忆创建和检索系统可以从具有单个用户视角或多个用户视角的用户指定源中获取多个时刻内容项(例如,图像、视频、音频记录、消息等)。该自动记忆创建和检索系统可以在语义上将这些时刻内容项聚类到“记忆内容项”或“记忆”中。该自动记忆创建和检索系统可以通过如下方式来实现这一点:为这些时刻内容项分配标签,并按时间顺序排列这些时刻内容项。在一些情况下,基于诸如位置、所识别的活动或在这些时刻内容项中所识别的用户等多个因素来对齐各时刻内容项。基于多个聚类条件将经排列/对齐的这些时刻内容项聚类到记忆中,这些聚类条件包括:A)与添加到记忆的每个时刻内容项相关联的时间处于该记忆中的至少一个其它时刻内容项的时间阈值内,以及B)记忆中各时刻内容项之间的匹配分数高于阈值。以下关于图5、图6、图10和图11提供了关于从时刻内容项创建记忆的附加细节。

一旦创建了记忆内容项,就可以将这些记忆内容项排列成分层结构,其中各个记忆内容项是叶节点,并且当一组记忆内容项具有相似的特征时,这些记忆可以组合成记忆组合。为了实现这一点,自动记忆创建和检索系统可以检索多个记忆内容项并将这些记忆内容项排列成一组有序的叶节点。自动记忆创建和检索系统可以通过开始一循环来组织这些记忆内容项,该循环在创建了一个或多个根节点时结束,其中第一次迭代在叶节点处开始,并且该循环的每个后续迭代在该分层结构中向上移动一个层级。当在一组节点之间存在阈值数量的匹配特征时,处于分层结构中的当前层级的多组相邻节点可以被分组成更高层级节点。随着节点前进到根节点,每一层级需要更少的匹配特征。在一些情况下,这些分组基于记忆的标签,例如在记忆内容项中描绘的人物、在记忆内容项中发生的活动、与记忆内容项相关联的位置等。以下关于图7和图12提供了将多个记忆组织到一个分层结构中的附加细节。

在一些实施方式中,自动记忆创建和检索系统在图谱中以各种维度(例如,人物、位置、所识别的活动、所识别的声音(例如,流水声、笑声、叫喊声等)、所识别的情绪等)建立各记忆内容项之间的链接。自动记忆创建和检索系统可以通过如下方式来定义各记忆内容项的图谱数据结构:基于相似的标签,识别所有可能的记忆对或某些对。在识别记忆对之后,当在特定维度中的各记忆内容项之间存在阈值水平的匹配时,可以以该维度创建多个记忆对中的一些记忆对之间的链接。可以基于与该给定维度的中心概念的匹配相关性来对各记忆对之间的链接(或边)进行加权。以下关于图8和图13提供了关于用图表表示各记忆之间的链接的附加细节。

一旦创建了记忆、记忆分层结构和/或记忆图谱,它们就可以用于例如在记忆应用程序中、通过人工现实(超现实(extra reality,XR))系统或在其它上下文中将各记忆呈现给用户。在一些实施方式中,自动记忆创建和检索系统可以显式地从用户界面或基于用户的上下文(例如,由XR设备收集的环境信息)接收记忆搜索标准。例如,用户可以使用关键字搜索记忆。自动记忆创建和检索系统可以基于搜索标准和/或用户上下文来创建伪记忆。可以基于分组标准将伪记忆映射到记忆分层结构中,如上文关于创建记忆分层结构以确定伪记忆与哪个或哪些记忆最相似所论述的。自动记忆创建和检索系统可以将来自记忆分层结构中所匹配的节点的记忆返回给用户。用户可以使用所返回的记忆作为起点,基于分层结构和/或图谱中的连接,进一步浏览其记忆。以下关于图9和图16提供了关于呈现记忆内容项的附加细节。

所公开技术的实施例可以包括人工现实系统、或结合人工现实系统来实现。人工现实或超现实(XR)是在呈现给用户之前已经以某种方式进行了调整的现实形式,该人工现实或XR例如可以包括虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)、混合现实(mixed reality,MR)、混杂现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与所采集的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,以上中的任何一种都可以在单个通道或多个通道中呈现(例如,给观看者带来三维效果的立体视频)。此外,在一些示例中,人工现实还可以与应用、产品、附件、服务或它们的某种组合相关联,这些应用、产品、附件、服务或它们的某种组合例如用于在人工现实中创建内容,和/或用于人工现实中(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立HMD、移动设备或计算系统、“洞穴式(cave)”环境或其他投影系统、或能够向一位或多位观看者提供人工现实内容的任何其它硬件平台。

如本文所使用的“虚拟现实”或“VR”是指这样的沉浸式体验:在该沉浸式体验中,用户的视觉输入由计算系统控制。“增强现实”或“AR”是指这样的系统:在所述系统中,用户在真实世界的图像通过计算系统之后,观看这些真实世界的图像。例如,背面带有摄像头的平板电脑可以采集多幅真实世界的图像,并且随后可以在该平板电脑的与摄像头相对的一侧的屏幕上显示这些图像。该平板电脑可以在这些图像通过系统时,例如通过添加虚拟对象来处理并且调整或“增强”这些图像。“混合现实”或“MR”是指这样的系统:在所述系统中,进入用户眼睛的光部分地由计算系统产生,且部分地来自从真实世界中的对象反射出的光。例如,MR头戴式设备可以被成形为一幅具有透传式显示器的眼镜,该具有透传式显示器的眼镜允许来自真实世界的光穿过一波导,该波导同时出射来自MR头戴式设备中的投影仪的光,从而允许该MR头戴式设备呈现与用户可看到的真实对象混合在一起的虚拟对象。如本文所使用的,“人工现实”、“超现实”或“XR”是指VR、AR、MR、或它们的任何组合或混合中的任何一者。

存在这样的现有系统:这些现有系统基于对象识别或时间戳提供内容项的基本标签。这些系统将各内容项分组在一起,而无法向用户提供定位与所描述的基本对象之外的其它概念相关的多组内容项的能力。附加地,这些现有系统不提供在时间上隔开的各内容项之间的关系。本文所描述的自动记忆创建和检索系统和过程克服了这些与传统内容组织技术相关联的问题,并向用户提供了搜索特定记忆、接收与搜索相关的记忆、以及接收与用户当前上下文相关的记忆(例如,显示与用户当前正在做什么或用户当前位于何处相关的记忆)的更大能力。该自动记忆创建和检索系统可以例如根据语音或文本命令以一种显著提高效率的方式自动选择与用户提供的搜索标准或用户上下文匹配的记忆,该方式具有更快的选择、更少的检查多个存储库的需要以及更有效的通信。通过自动选择与搜索标准或用户上下文匹配的记忆,使用复杂的选择模型、内容项约束和上下文信号,内容项检索程序和人工现实系统(或选择内容项的其它系统)可以更有信息量且更有效、更快和更吸引人。本文所描述的自动记忆创建和检索系统和过程植根于计算机化的机器学习和数据结构化系统,而不是对用于浏览记忆内容项或其它选择技术的人类活动的模拟。例如,现有的内容选择系统需要关于在哪里查找以及用户正在查找什么的大量知识才能进行有效搜索。相反,自动记忆创建和检索系统允许用户仅仅说话、打字或看着对象然后具有所提供的被组织成记忆的多组相关内容项。

以下参考附图更详细地论述了几个实施方式。图1为示出了所公开技术的一些实施方式可在其中运行的多个设备的概况的框图。这些设备可以包括自动创建和检索记忆内容项的计算系统100的硬件部件。在各种实施方式中,计算系统100可以包括单个计算设备103或多个计算设备(例如,计算设备101、计算设备102和计算设备103),该多个计算设备通过有线信道或无线信道通信,以分发处理并共享输入数据。在一些实施方式中,计算系统100可以包括独立头戴式设备,该独立头戴式设备能够在无需外部处理或外部传感器的情况下,为用户提供计算机创建或增强的体验。在其它实施方式中,计算系统100可以包括多个计算设备,该多个计算设备例如为头戴式设备和核心处理部件(例如,控制台、移动设备、或服务器系统),其中,一些处理操作在头戴式设备上执行而其它处理操作被转移到核心处理部件。以下关于图2A和图2B描述了示例头戴式设备。在一些实施方式中,可以仅由结合在头戴式设备中的传感器收集位置数据和环境数据,而在其它实施方式中,多个非头戴式设备计算设备中的一个或多个非头戴式设备计算设备可以包括可追踪环境数据或位置数据的传感器部件。

计算系统100可以包括一个或多个处理器110(例如,中央处理单元(centralprocessing unit,CPU)、图形处理单元(graphical processing unit,GPU)、全息处理单元(holographic processing unit,HPU)等)。处理器110可以是单个处理单元或多个处理单元,该多个处理单元位于一个设备中或者分布在多个设备上(例如,分布在计算设备101至103中的两个或更多个计算设备上)。

计算系统100可以包括一个或多个输入设备120,该一个或多个输入设备向处理器110提供输入,从而向处理器通知动作。这些动作可以由硬件控制器传递,该硬件控制器对从输入设备接收的信号进行解释,并使用通信协议将信息传送给处理器110。每个输入设备120可以例如包括鼠标、键盘、触摸屏、触摸板、可穿戴输入设备(例如,触觉手套、手镯、戒指、耳环、项链、手表等)、摄像头(或其它基于光的输入设备,例如红外传感器)、传声器、或其它用户输入设备。

处理器110可以例如通过使用内部总线或外部总线而耦接到其它硬件设备,上述总线例如为外设部件互连标准(PCI)总线、小型计算机系统接口(SCSI)总线、或无线连接。处理器110可以与用于各设备(例如,用于显示器130)的硬件控制器通信。显示器130可以用于显示文本和图形。在一些实施方式中,显示器130包括输入设备,例如当该输入设备是触摸屏或者该输入设备配备有眼动方向监测系统(eye direction monitoring system)时,该输入设备作为显示器的一部分。在一些实施方式中,显示器与输入设备分开。显示设备的示例为:液晶显示器(liquid crystal display,LCD)显示屏、发光二极管(LED)显示屏、投影显示器、全息显示器、或增强现实显示器(例如,平视显示设备或头戴式设备)等。其它输入/输出(I/O)设备140也可以耦接到处理器,该I/O设备例如为网络芯片或网卡、视频芯片或视频卡、音频芯片或音频卡、通用串行总线(USB)、火线或其它外部设备、摄像头、打印机、扬声器、光盘只读存储器(CD-ROM)驱动器、数字视频光盘(DVD)驱动器、磁盘驱动器等。

计算系统100可以包括这样的通信设备:该通信设备能够与其它本地计算设备或网络节点无线地通信或基于有线地通信。该通信设备可以通过网络例如使用传输控制协议/网际协议(TCP/IP)协议与另一设备或服务器通信。计算系统100可以利用该通信设备在多个网络设备上分发操作。

处理器110可以访问存储器150,该存储器可以被包含在计算系统100的多个计算设备中的一个计算设备上,或者可以分布在计算系统100的多个计算设备、或其它外部设备上。存储器包括用于易失性或非易失性存储的一个或多个硬件设备,并且可以包括只读存储器和可写存储器这两者。例如,存储器可以包括以下中的一者或多者:随机存取存储器(random access memory,RAM)、各种高速缓冲存储器、CPU寄存器、只读存储器(read-onlymemory,ROM)和可写非易失性存储器,该可写非易失性存储器例如为闪存、硬盘驱动器、软盘、光盘(CD)、DVD、磁存储设备、磁带驱动器等。存储器不是脱离底层硬件的传播信号;因此存储器是非暂态的。存储器150可以包括存储程序和软件的程序存储器160,上述程序和软件例如为操作系统162、自动记忆创建和检索系统164、和其它应用程序166。存储器150还可以包括数据存储器170,该数据存储器可以包括时刻内容项数据、记忆内容项数据、标签数据、聚类数据、位置数据、活动数据、用户数据、语义标识符数据、分层数据、图谱结构数据、节点数据、搜索标准数据、伪记忆数据、映射数据、配置数据、设置、用户选项或偏好等,这些数据可以被提供给程序存储器160或计算系统100的任何元件。

一些实施方式可以与许多其它计算系统环境或配置一起运行。可适用于与该技术一起使用的计算系统、环境和/或配置的示例包括但不限于XR头戴式设备、个人计算机、服务器计算机、手持式设备或膝上型设备、蜂窝电话、可穿戴电子设备、游戏控制台、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费类电子设备、网络个人计算机(PC)、小型计算机、大型计算机、或包括上述系统或设备中的任何系统或设备的分布式计算环境等。

图2A是根据一些实施例的虚拟现实头戴式显示器(HMD)200的线示图。HMD 200包括前部刚性体205和带210。前部刚性体205包括电子显示器245的一个或多个电子显示元件、惯性运动单元(inertial motion unit,IMU)215、一个或多个位置传感器220、定位器225、以及一个或多个计算单元230。位置传感器220、IMU 215和计算单元230可以位于HMD200内部,并且可以对用户不可见。在各种实施方式中,IMU 215、位置传感器220和定位器225可以以三自由度(three degrees of freedom,3DoF)或六自由度(six degrees offreedom,6DoF)来追踪HMD 200在真实世界中和虚拟环境中的移动和位置。例如,定位器225可以发射红外光束,这些红外光束在HMD 200周围的真实对象上产生光点。作为另一示例,IMU 215可以例如包括一个或多个加速度计,一个或多个陀螺仪,一个或多个磁力计,一个或多个其它非基于摄像头的位置、力或方位传感器,或它们的组合。与HMD 200集成在一起的一个或多个摄像头(未示出)可以检测光点。HMD 200中的计算单元230可以使用检测到的光点,来推测HMD 200的位置和移动、以及识别HMD 200周围的真实对象的形状和位置。

电子显示器245可以与前部刚性体205集成在一起,并且可以如计算单元230所指示的向用户提供图像光。在各种实施例中,电子显示器245可以是单个电子显示器或多个电子显示器(例如,每只用户眼睛一显示器)。电子显示器245的示例包括:液晶显示器(LCD)、有机发光二极管(organic light-emitting diode,OLED)显示器、有源矩阵有机发光二极管显示器(active-matrix organic light-emitting diode display,AMOLED)、包括一个或多个量子点发光二极管(quantum dot light-emitting diode,QOLED)子像素的显示器、投影仪单元(例如,微型LED、激光器(LASER)等)、一些其它显示器、或它们的某种组合。

在一些实施方式中,HMD 200可以耦接到诸如个人计算机(personal computer,PC)(未示出)等核心处理部件和/或一个或多个外部传感器(未示出)。外部传感器可以(例如通过从HMD 200发射的光)对HMD 200进行监测,PC可以使用该HMD结合来自IMU 215和位置传感器220的输出,来确定HMD 200的位置和移动。

图2B是混合现实HMD系统250的线示图,该混合现实HMD系统包括混合现实HMD 252和核心处理部件254。混合现实HMD 252和核心处理部件254可以通过如链路256所指示的无线连接(例如,60GHz链路)进行通信。在其它实施方式中,混合现实系统250仅包括头戴式设备而没有外部计算设备,或者在混合现实HMD 252与核心处理部件254之间包括其它有线或无线连接。混合现实HMD 252包括透传式显示器258和框架260。框架260可以容纳各种电子部件(未示出),这些电子部件例如为光投影仪(例如,激光器、LED等)、摄像头、眼动追踪传感器、微机电系统(MEMS)部件、网络部件等。

投影仪可以例如通过光学元件耦接到透传式显示器258,以向用户显示媒体。这些光学元件可以包括用于将来自投影仪的光引导到用户的眼睛的一个或多个波导组件、一个或多个反射器、一个或多个透镜、一个或多个反射镜、一个或多个准直器、一个或多个光栅等。可以将图像数据从核心处理部件254通过链路256传输到HMD 252。HMD 252中的控制器可以将图像数据转换成来自投影仪的多个光脉冲,这些光脉冲可以作为输出光而通过光学元件传输到用户的眼睛。该输出光可以与穿过显示器258的光混合,从而允许输出光呈现如下虚拟对象:这些虚拟对象看起来如同存在于真实世界中一样。

与HMD 200类似,HMD系统250也可以包括运动和位置追踪单元、摄像头、光源等,上述运动和位置追踪单元、摄像头、光源等允许HMD系统250例如以3DoF或6DoF追踪其自身、追踪用户的多个部位(例如,手、脚、头部、或其他身体部位)、将虚拟对象绘制为在HMD 252移动时看起来如同静止一样、以及使虚拟对象对手势和其他真实世界对象作出反应。

图2C示出了多个控制器270,在一些实施方式中,用户可以用单手或双手握住该多个控制器,以与由HMD 200和/或HMD 250呈现的人工现实环境交互。控制器270可以直接与HMD通信,也可以通过外部设备(例如,核心处理部件254)与HMD通信。控制器可以具有其自身的IMU单元、位置传感器,和/或可以发射另外的光点。HMD 200或250、外部传感器、或控制器中的传感器可以追踪这些控制器光点,以确定控制器位置和/或取向(例如,以3DoF或6DoF追踪控制器)。HMD 200中的计算单元230或核心处理部件254可以结合IMU输出和位置输出,使用该追踪来监测用户的手部位置和动作。这些控制器还可以包括各种按钮(例如,按钮272A至272F)和/或控制杆(例如,控制杆274A和274B),用户可以对这些按钮和/或控制杆进行致动,以提供输入并与对象交互。

在各种实施方式中,HMD 200或250还可以包括多个附加子系统以监测用户交互和意图的指示,该多个附加子系统例如为眼动追踪单元、音频系统、各种网络部件等。例如,在一些实施方式中,代替控制器或除了控制器之外,包括在HMD 200或250中的一个或多个摄像头、或来自多个外部摄像头的一个或多个摄像头可以监测用户手部的位置和姿势,以确定手势和其它手部动作和身体动作。

图3是示出了本技术一些实施方式可在其中运行的环境300的概况的框图。环境300可以包括一个或多个客户端计算设备305A至305D,这些客户端计算设备的示例可以包括计算系统100。在一些实施方式中,这些客户端计算设备中的一些客户端计算设备(例如,客户端计算设备305B)可以为HMD 200或HMD系统250。客户端计算设备305可以在网络环境中、使用通过网络330到一个或多个远程计算机(例如,服务器计算设备)的逻辑连接来运行。

在一些实施方式中,服务器310可以是边缘服务器,该边缘服务器接收多个客户端请求,并通过其它服务器(例如,服务器320A至320C)协调实现这些请求。服务器计算设备310和服务器计算设备320可以包括计算系统,例如计算系统100。尽管每个服务器计算设备310和320在逻辑上被显示为单个服务器,但多个服务器计算设备可以各自是一分布式计算环境,该分布式计算环境包含位于同一物理位置处或在地理上不同的物理位置处的多个计算设备。

客户端计算设备305和服务器计算设备310和320可以各自充当一个或多个其它服务器/客户端设备的服务器或客户端。服务器310可以连接到数据库315。服务器320A至320C可以各自连接到对应的数据库325A至325C。如以上所论述的,每个服务器310或320可以与一组服务器相对应,并且这些服务器中的各个服务器可以共享一数据库,或者可以具有其自己的数据库。尽管数据库315和325在逻辑上被显示为单个单元,但数据库315和325可以各自是包含多个计算设备的分布式计算环境,该多个计算设备可以位于其对应的服务器内,或者可以位于同一物理位置处或位于地理上不同的物理位置处。

网络330可以是局域网(local area network,LAN)、广域网(wide area network,WAN)、网状网络、混合网络、或其它有线或无线网络。网络330可以是互联网或某种其它公共或专用网络。客户端计算设备305可以经由网络接口例如通过有线或无线通信连接到网络330。尽管服务器310与多个服务器320之间的连接被显示为单独的连接,但这些连接可以是包括网络330或单独的公共或专用网络的、任何类型的局域网、广域网、有线网络、或无线网络。

在一些实施方式中,服务器310和320可以用作社交网络的一部分。社交网络可以维护社交图谱并基于该社交图谱执行各种动作。社交图谱可以包括由多条边(表示交互、活动、或相关性)互连的一组节点(表示社交网络系统对象,也称为社交对象)。社交网络系统对象可以是社交网络系统用户、非人实体、内容项、组、社交网络系统页面、位置、应用、主题、概念表示、或其它社交网络系统对象,该其它社交网络系统对象例如为电影、乐队、书等。内容项可以是任何数字数据,例如文本、图像、音频、视频、链接、网页、细节(例如,由客户端设备提供的诸如情绪指示符、状态文本片段、位置指示符等标记)、或其它多媒体。在各种实施方式中,内容项可以是社交网络项目或社交网络项目的部分,例如帖子、喜欢、通报表扬(mention)、新闻项目、事件、股份(share)、评论、消息、其它通知等。在社交图谱的上下文中,主体和概念包括表示如下的节点:这些节点表示任何人、位置、事物或想法。

社交网络系统可以使用户能够输入和显示与用户的兴趣有关的信息、年龄/出生日期、位置(例如,经度/纬度、国家、地区、城市等)、教育信息、生命阶段、婚姻状况、姓名、通常使用的设备型号、被标识为用户熟悉的语言、职业、联系信息、或用户资料中的其他人口统计或生物信息。在各种实施方式中,可以通过社交图谱中的节点或节点之间的边来表示任何这种信息。社交网络系统可以使用户能够上传或创建图片、视频、文档、歌曲、或其它内容项,并且可以使用户能够创建和安排事件。在各种实施方式中,可以通过社交图谱中的节点或节点之间的边来表示内容项。

社交网络系统可以使用户能够执行上传或创建内容项、与内容项或其他用户交互、表达兴趣或意见、或执行其它动作。社交网络系统可以提供各种手段来与社交网络系统内的非用户对象交互。在各种实施方式中,可以通过社交图谱中的节点或节点之间的边来表示动作。例如,用户可以形成或加入群组,或者变成社交网络系统内的页面或实体的爱好者。此外,用户可以创建、下载、查看、上传、链接到、标记、编辑、或播放社交网络系统对象。用户可以在社交网络系统的背景之外与社交网络系统对象交互。例如,新闻网站上的文章可能具有用户可点击的“喜欢”按钮。在这些实例中的每个实例中,可以通过社交图谱中的将用户的节点连接到对象的节点的边,来表示该用户与该对象之间的交互。作为另一示例,用户可以使用位置检测功能(例如,移动设备上的全球定位系统(GPS)接收器)而到特定位置“签到”,并且在社交图谱中,边可以将该用户的节点与该位置的节点连接。

社交网络系统可以向用户提供各种通信信道。例如,社交网络系统可以使用户能够向一个或多个其他用户发送电子邮件、即时消息、或文本/SMS消息。社交网络系统可以使用户能够将消息发布到用户墙或用户资料、或另一用户墙或另一用户资料。社交网络系统可以使用户能够将消息发布到群组或粉丝页面。社交网络系统可以使用户能够对由该用户或另一用户创建或上传的图像、涂鸦墙(wall post)或其它内容项进行评论。并且,社交网络系统可以允许用户(通过其个性化化身)与虚拟环境中的对象或其它化身等交互。在一些实施例中,用户可以将一状态消息发布到用户资料,该状态消息指示当前事件、心理状态、想法、感受、行动、或任何其它当前时间相关表达。社交网络系统可以使多个用户不仅能够在社交网络系统内通信而且能够与社交网络系统外部通信。例如,第一用户可以在社交网络系统内向第二用户发送消息,可以通过社交网络系统向第二用户发送电子邮件,可以向社交网络系统外的第二用户发送源自该社交网络系统的电子邮件,可以在社交网络系统内向第二用户发送即时消息,可以向社交网络系统外的第二用户发送源自社交网络系统的即时消息,可以在多个用户之间提供语音或视频消息传递,或者可以提供虚拟环境(在该虚拟环境中,用户可以通过其自己的化身或其他数字表示进行通信和交互)。此外,第一用户可以对第二用户的资料页面进行评论,或者可以对与第二用户相关联的对象(例如,由第二用户上传的内容项)进行评论。

社交网络系统使用户能够将其自己与社交网络系统中的其他用户相关联,并且建立与这些用户的连接。当两个用户(例如,社交图谱节点)在社交网络系统中明确建立社交连接时,这两个用户在社交网络系统的背景内变为“朋友”(或者,“连接”)。例如,“简·史密斯(Jane Smith)”所接受的、从“约翰·多伊(John Doe)”到其的朋友请求是社交连接。该社交连接可以是社交图谱中的边。与无关联的多个用户可获得的关于彼此的信息相比,成为朋友、或处于社交图谱上的朋友边的阈值数量内可以允许用户访问更多关于彼此的信息。例如,成为朋友可以允许用户查看另一用户的资料、查看另一用户的朋友、或查看另一用户的照片。类似地,成为社交网络系统内的朋友可以允许用户有更多的机会与另一用户例如通过电子邮件(社交网络系统内部和外部)、即时消息、文本消息、电话、或任何其它通信接口而通信。成为朋友可以允许用户访问,以查看、评论、下载、支持(endorse)另一用户所上传的内容项,或以其它方式与另一用户所上传的内容项交互。可以通过表示两个社交网络系统用户的节点之间的边,来表示在社交网络系统的背景内建立连接、访问用户信息、通信和交互。

除了在社交网络系统中明确建立连接之外,出于确定社交背景(该社交背景在确定交流主题时使用)的目的,具有共同特性的多个用户可以被认为是有联系的(例如,软连接或隐式连接)。在一些实施例中,属于公共网络的多个用户被认为是有联系的。例如,上同一所学校的多个用户、为同一家公司工作的多个用户、或者属于同一社交网络系统组的多个用户可以被认为是有联系的。在一些实施例中,具有共同生物特征的多个用户被认为是有联系的。例如,用户出生或居住的地理区域、用户的年龄、用户的性别、和用户的婚姻状况可以用于确定多个用户是否是有联系的。在一些实施例中,具有共同兴趣的多个用户被认为是有联系的。例如,用户的电影偏好、音乐偏好、政治观点、宗教观点、或任何其它兴趣可以用于确定多个用户是否是有联系的。在一些实施例中,已经在社交网络系统内进行了同一行为的多个用户被认为是有联系的。例如,认可或推荐同一对象的多个用户、对同一内容项进行评论的多个用户、或对同一事件进行回应(RSVP)的多个用户可以被认为是有联系的。社交网络系统可以利用社交图谱来确定与特定用户有联系的多个用户或与特定用户相似的多个用户,以便确定或评估这些用户之间的社交背景。社交网络系统可以利用这种社交背景和共同属性来促进内容分发系统和内容缓存系统可预测地选择用于缓存在缓存设备(该缓存设备与特定社交网络账号相关联)中的内容项。

图4是示出了多个部件400的框图,在一些实施方式中,可以在采用所公开技术的系统中使用这些部件。各部件400可以被包括在计算系统100的一个设备中,或者可以分布在计算系统100的多个设备上。这些部件400包括硬件410、中间件420和多个专用部件430。如以上所论述的,实现所公开技术的系统可以使用各种硬件,这些硬件包括多个处理单元412、工作存储器414、多个输入和输出(input and output,I/O)设备416(例如,摄像头、显示器、IMU单元、网络连接等)、以及存储存储器418。在各种实施方式中,存储存储器418可以是以下中的一者或多者:本地设备、到远程存储设备的接口、或它们的组合。例如,存储存储器418可以是可通过系统总线访问的一个或多个硬盘驱动器或闪存驱动器,或者可以是可通过一个或多个通信网络访问的(例如,在存储器315或325中的)云存储提供商或其它网络存储器。在各种实施方式中,各部件400可以在客户端计算设备(例如,客户端计算设备305)中实现,或者在服务器计算设备(例如,服务器计算设备310或320)中实现。

中间件420可以包括在硬件410与各专用部件430之间传递资源的部件。例如,中间件420可以包括操作系统、服务、驱动器、基本输入输出系统(basic input output system,BIOS)、控制电路、或其它硬件或软件系统。

各专用部件430可以包括如下软件或硬件:该软件或硬件被配置为执行从时刻内容项的自动记忆创建和检索的操作。各专用部件430可以包括:时刻模块434、标签模块436、聚类模块438、记忆分层结构模块442、记忆图谱模块444、伪记忆模块446、用户界面模块448,以及可用于提供用户界面、传输数据和控制各专用部件的部件和应用程序编程接口(API)(例如,接口432)。在一些实施方式中,各部件400可以位于分布在多个计算设备上的计算系统中,或者可以是到基于服务器的应用程序的接口,该基于服务器的应用程序执行各专用部件430中的一个或多个。尽管各专用部件430被描绘为单独的部件,但这些专用部件可以是逻辑功能或其它非物理区分的功能,和/或可以是一个或多个应用程序的子模块或代码块。

在一些实施例中,时刻模块434被配置为从一个或多个用户指定的源中收集时刻内容项。时刻内容项可以包括诸如图像、视频、音频录音、电子邮件、文本等内容项。在各种实施方式中,所收集的时刻内容项可以来自单个用户视角或多个用户视角。时刻模块434可以基于与每个时刻内容项相关联的时间数据按照时间顺序排列这些时刻内容项。以下关于图5中的框502、504和506、以及图6中的框602、604和606提供了关于时刻内容项的附加细节。

在一些实施例中,标签模块436被配置为将多个标签分配给多个时刻内容项。标签模块436可以通过给这些时刻内容项加标签来将语义标识符添加到这些时刻内容项。语义标识符可以指示所检测到的时刻内容项的各方面,例如人物、对象、词语、情绪、位置、音频等。分配给各时刻内容项的标签可以用于基于所分配的标签的相似性,将这些时刻内容项分组到记忆中。以下关于图5的框504和图6的框604提供了关于给时刻内容项加标签的附加细节。

在一些实施例中,聚类模块438被配置成将多个时刻内容项聚类到多个记忆内容项中。聚类模块438可以基于时刻内容项的时间顺序并基于所分配的标签,来对各时刻内容项进行聚类。聚类模块438可以基于一组时刻内容项的高于阈值的匹配水平,来确定这些时刻内容项之间的组分数。以下关于图5的框508和图6的框608提供了关于对时刻内容项进行聚类的附加细节。

在一些实施例中,记忆分层结构模块442被配置为通过(从聚类模块438)收集记忆内容项来生成一个或多个记忆分层结构,并根据时间顺序将这些记忆内容项排列成一组有序的节点。然后,当各记忆具有相似的匹配特征时,记忆分层结构模块442可以遍历节点的各层级,将这些记忆组合成多个组合。随着记忆分层结构模块442向上移动创建分层结构的层级,每个层级需组合更少的匹配特征,直到创建了根节点(例如,不能与分层结构中的其它节点组合的节点)。以下关于图7和图12提供了关于记忆分层结构的附加细节。

在一些实施例中,记忆图谱模块444被配置为通过如下方式来生成图谱记忆结构:基于各记忆内容项之间在一个或多个维度上的相似性,来用边连接多对记忆内容项。记忆图谱模块444可以基于相似的标签将多个记忆内容项形成多个对,并且在对于维度存在高于阈值的匹配时、在该维度上连接这些对。以下关于图8和图13提供了关于记忆图谱的附加细节。

在一些实施例中,伪记忆模块446被配置为基于记忆内容项搜索标准来创建伪记忆。伪记忆模块446可以通过使用用户提供的标准(例如,词语、记忆选择等)和/或当前用户周围的信息(例如,由XR设备收集的上下文信息),来生成伪记忆。伪记忆模块446可以使用分层结构分组标准将伪记忆映射到记忆分层结构中,并从该伪记忆被分组的节点返回各记忆。用户可以根据所返回的记忆,浏览分层结构和/或图谱中的、相连接的记忆。以下关于图9提供了关于创建伪记忆、提供相关记忆并允许用户基于分层结构或图谱进一步浏览记忆内容项的附加细节。

在一些实施例中,用户界面模块448被配置为从用户界面获取记忆内容项搜索标准。用户界面模块448可以接收对所提供的、来自记忆搜索的记忆的选择。在一些情况下,用户界面模块448从用户的当前上下文收集数据并将该数据发送到伪记忆模块446。以下关于图9和图14A/图14B提供了关于用户界面的附加细节。

本领域技术人员将理解的是,以上所描述的图1至图4中所示出的、以及以下所论述的各流程图中的每个中所示出的各部件可以以各种方式改变。例如,可以对逻辑的顺序进行重新排列,可以并行执行多个子步骤,可以省略所示出的逻辑,可以包括其它逻辑等。在一些实施方式中,以上所描述的多个部件中的一个或多个部件可以执行以下所描述的多个过程中的一个或多个过程。

图5为示出了在本技术一些实施方式中用于从来自用户的多个时刻内容项创建记忆的过程500的流程图。在一些实施方式中,过程500可以在用户提供输入(例如,图像、即时消息、视频聊天、绘图、电子邮件、文本、社交媒体帖子或其它数字对话或记录)时自动执行。在一些实施方式中,过程500可以响应于用户动作(例如,当用户将新内容项添加到存储库时)来执行,或者周期性地(例如,当存在服务器处理可用性时,通过每晚将用户的内容项组织成记忆等)执行。在一些情况下,过程500可以在用户的本地设备上执行(例如,通过电话、XR设备或自动助理设备)。在一些实施方式中,过程500可以由服务器侧系统执行,该服务器侧系统便于从本地系统收集内容项或命令数据。

在框502处,过程500可以从用户指定的源中获取多个时刻内容项。时刻内容项的示例包括图像、视频、音频、所接收到或所发送的消息、即时消息、文本或电子邮件、社交媒体帖子、视频聊天、消息线程等。在一些情况下,时刻内容项可以包括用于采集3D对象的深度数据(例如,点云、结构光等)。因此,由具有深度数据的时刻内容项产生的记忆可以被显示为3D对象。在一些情况下,时刻内容项可以与地图构建数据相关联,该地图构建数据例如为同时定位与地图构建(simultaneous localization and mapping,SLAM)数据。如下所论述的,该数据可以用于显示记忆和确定记忆上下文。在一些情况下,时刻内容项可以包括添加到原始内容项的AR效果或VR效果。当时刻内容项跨越多于一个瞬间(例如,非图像)时,所述内容项可以被分成多个内容项。例如,将视频分解为多个帧或多个1秒(或任意时长)的片段,或将音频分解为多个1秒(或任意时长)的音频片段。时刻内容项可以来自用户指定的源(例如,发布到社交媒体网站的内容项、用户设备上的内容项、云驱动器中的内容项等)。

过程500可以获取用户指定的源中的所有时刻内容项或在获得这些内容项之前对这些内容项进行过滤。过程500可以基于时间阈值来过滤和选择内容项(例如,仅使用从过去的日、周、月、年等开始的内容项)。过程500可以基于质量阈值来过滤和选择内容项(例如,排除低于阈值质量的内容项,例如被识别为模糊的或具有低于300像素/平方英尺的图像)。过程500可以基于时刻内容项的相似性来过滤和选择内容项(例如,仅从一组相似的内容项中选择一个内容项,例如,在存在5个几乎相同的图片的情况下,选择具有最高质量分数的一个图片)。过程500可以使用人物/面部识别、对象检测、时间戳、文本识别、语音识别和转录、位置检测或活动检测来识别重复的内容项,并选择重复的时刻内容项中的一个。在一些情况下,过程500可以将未选择的内容项与所选择的内容项相链接,使得用户可以在稍后浏览记忆时看到备选版本。在一些情况下,每次采集到新的时刻内容项时,过程500对该新的时刻内容项进行分析以将其分配给现有记忆或开始一新的记忆。

在框504处,过程500可以为该多个时刻内容项分配标签。为时刻内容项分配一标签可以向该时刻内容项添加一个或多个语义标识符。语义标识符可以基于内容项中的人物/面部识别、时间戳、内容项中的对象检测、内容项的地理位置数据(例如,基于内容项中相关联的元数据和/或地标标识)、对内容项的文本识别、对内容项的语音识别或转录、情绪检测(例如,对内容项中的语音和/或面部和身体语言的情绪检测)、对内容项的质量检测、或内容项中的活动检测。

过程500可以使用基于机器学习的分类器来执行人物/面部识别,以识别时刻内容项中的人。例如,如果用户是已知的(例如,来自社交媒体账户),则过程500可以为内容项分配个人标识符(identifier,ID)),或者如果用户是未知的,则过程500可以为该用户分配面部ID,以在各时刻内容项之间进行匹配(例如,该用户是未知的,但是该用户出现在其它时刻内容项中)。一旦用户被识别或被分配了ID,过程500就可以用该用户ID来标记该时刻内容项。在一些实施方式中,过程500可以使用情绪引擎(例如,用于分析声调、表情、肢体语言等的启发式方法和/或机器学习)来识别该内容项中的一个或多个人的情绪(例如,高兴、悲伤、兴奋、沮丧等)。

过程500可以使用已知的对象检测技术来识别时刻内容项中的对象,并基于所识别的对象为时刻内容项分配标签。所识别的每个对象可以具有对象类型(例如,工具、车辆、住所等)和/或特定对象标识符(例如,吉他、轿车、帐篷等)。在一些情况下,过程500可以基于在时刻内容项中识别出特定对象和用户的阈值次数,来将对象标记为与用户相关联(例如,特定吉他被标记为用户123的吉他)。在阈值次数之后,具有该特定对象标识符的所有标签都将用该标记来标识。例如,当“一”吉他在10个或更多个时刻内容项中与用户123一起被识别出时,该吉他接收用户123的吉他这一标记。在一些情况下,用户可以调整标签上的标记(例如,将“我的”吉他更改为“室友的”吉他)。

过程500可以使用与内容项相关联的地理位置元数据(例如,GPS、同时定位与地图构建(SLAM)等)。过程500可以识别地标(例如,埃菲尔铁塔、自由女神像等),以确定时刻内容项的位置。在一些情况下,过程500可以确定一位置处的对象以识别该位置。例如,过程500识别与用户相关联的对象并确定该用户在“家”。基于这些确定,过程500可以为时刻内容项分配一个或多个位置标签。

过程500可以使用已知的文本识别来识别词语,并基于词语中的主题为时刻内容项分配标签。例如,文本可以是写在时刻内容项中的标志、产品、手写笔记等上的。在一些实施方式中,过程500可以使用语音识别来转录检测到的口头语言,并为时刻内容项分配相应的标签。过程500可以(使用经训练的机器学习(machine learning,ML)分类器)分析所识别或转录的文本,以识别文本的语义主题,从而为内容项分配主题标签。

在一些情况下,过程500可以使用经训练以识别时刻内容项中的活动的分类器,来分配活动标签。在一些情况下,可以基于所识别的时刻内容项中的对象来进一步识别活动。例如,过程500将某些对象或各对象之间的关系映射到活动(例如,识别到用户在水中的皮划艇上),并将“划皮划艇”的标签分配给时刻内容项。可以使用显式映射或如下ML模型来实现这种第二等级标识:该ML模型被训练为获取所识别的对象和/或对象关系,并输出活动。

如上文所论述的,在一些实施方式中,过程500可以使用启发式方法和/或机器学习(ML)来为时刻内容项分配标签。例如,可以利用已知的技术来训练一个或多个机器学习模型(例如,神经网络、决策树、支持向量机等),以对内容项进行单独的这种识别(例如,人物、对象、活动、情感、位置、文本)。作为另一示例,过程500可以使用ML模型来计算时刻内容项的语义哈希(semantic hash)。例如,ML模型可以生成图像的嵌入以接收哈希值,该哈希值可以直接与其它图像的哈希值进行比较以获得相似性分数。如果包含用户在夏威夷划皮划艇的第一图像具有与第二图像相似的哈希值,则该第二图像可以被识别为是相关的。

过程500可以针对各个维度分配语义标识符,和/或在每个时刻内容项上具有作为标签的值。例如,可以用活动、位置、一个或多个人、对象、用户情绪等来标记时刻内容项。

在框506处,过程500可以确定多个时刻内容项的时间顺序,并按时间排列各时刻内容项。时间顺序可以基于与时刻内容项相关联的时间戳。时间戳可以由设备或用户分配给时刻内容项(例如,相机应用程序可以自动地为所记录的图像或视频分配时间戳元数据)。

在框508处,过程500可以将多个时刻内容项聚类到多个记忆内容项(例如,多个记忆)中。过程500可以根据如下的两个条件将多个时刻内容项聚类到多个记忆中:1)记忆中的所有时刻内容项至少在该记忆中的至少一个其它记忆内容项的阈值时间内,以及2)基于对分配给这些时刻内容项的标签的比较、为记忆中的该组内容项计算的分数高于阈值。满足这些条件的时刻内容项的组可以成为记忆。在一些实施方式中,多个时刻内容项可以正好在一个记忆中,而在其它实施方式中,一时刻内容项可以在多个记忆中。在一些实施方式中,较大的时刻内容项的组是优选地,使得进一步创建分组以在保持这两个条件的情况下、使所得到的记忆中的每个记忆包含尽可能多的时刻内容项。在一些实施方式中,另一条件可以是记忆不包括相隔阈值时间的两个时刻内容项。例如,过程500可以设置24小时的上限时间阈值,使得没有两个相隔一天的时刻内容项不被聚类到同一记忆中。在一些实施方式中,一旦过程500已经将时刻内容项聚类到单独的记忆中,过程500就可以过滤掉基本上重复的时刻内容项或低于质量阈值的时刻内容项。

为了计算条件2)的分数,过程500可以应用这样的公式/模型:该公式/模型生成各时刻内容项的匹配值。在一些实施方式中,这可以包括比较分配给各个时刻内容项的哈希值以获得平均差。在一些实施方式中,可以将模型训练为获取分配给各个时刻内容项的标签并产生匹配分数(例如,其中可以基于如下训练项来训练该模型:所述训练项将具有一相似性分数的两个输入时刻内容项进行配对)。在又一实施方式中,可以通过确定各时刻内容项共同具有的标签的数量来计算该分数。例如,共同具有较多的分配标签的时刻内容项可以接收比共同具有较少的分配标签的时刻内容项更高的匹配值。在一示例中,每个分配标签类型可以具有权重,从而允许该比较不仅考虑一组中每对时刻内容项共有多少标签,并且还考虑每个匹配类型的重要性。例如,具有位置匹配的标签可以具有0.6的权重,具有人物匹配的标签可以具有0.45的权重,具有所识别的对象匹配的标签可以具有0.3的权重,具有活动匹配的标签可以具有0.55的权重等。两个标签是否“匹配”可以基于它们是否具有相同的值,或者它们在语义空间中是否具有彼此接近的值(例如,由ML模型确定的嵌入来确定的值)。在一些情况下,当匹配值分数高于阈值匹配值时,过程500将多个时刻内容项聚类到记忆中。当不满足匹配分数阈值时,过程500可以调整阈值匹配值或将多个时刻内容项聚类到时刻聚类项的子集中。

在将各时刻内容项聚类到记忆中(例如,创建了记忆)之后,过程500可以过滤掉与记忆不太相关的时刻内容项或低于阈值质量水平的时刻内容项。例如,如果记忆是针对来自用AR头戴式设备采集的时刻内容项的“我儿子骑自行车”,并且用户移开视线几秒钟(例如,看着驶过的汽车),则过程500可以在对该记忆的播放中标记并且不显示(或移除)涉及这几秒的时刻内容项(例如,驶过的汽车与“我儿子骑自行车”的记忆不太相关)。在一些情况下,过程500保存过滤掉的时刻内容项,并将它们作为用户可以启用或查看的附加内容而包括在记忆中。在一些实施方式中,过程500可以基于如下项来检测与记忆不太相关的时刻内容项:在没有这些时刻内容项的情况下重新计算时上述分数的增加,或者在这些时刻内容项中不存在在记忆中的其它时刻内容项中检测到的对象、活动、用户。例如,当在记忆中的其它内容项中识别的人没有出现在驶过的汽车的图像中时,可以在“我儿子骑自行车”的记忆中隐藏这些时刻内容项。

在一些实施方式中,用户注视元数据可用于时刻内容项,例如,其中这些时刻内容项是由可追踪用户的头部和/或眼睛方向的XR设备采集的。该注视信息还可用于确定各内容项是否相关,或者各内容项的子集是否与用户的关注点变化有关。在一些实施方式中,过程500可以基于用户的关注点离开(例如,用户的视线移开)记忆的关注点的时间量来确定将不太相关的时刻内容项保留到该记忆。当用户的关注点离开主要事件的时间大于时间阈值时,过程500可以确定是否要包括不太相关的时刻内容项。在一些实施方式中,过程500可以基于距离(例如记忆的主要关注点与“视线移开”关注点之间的距离)的函数来确定是否包括不太相关的时刻内容项。例如,当用户的关注点从看她儿子骑自行车切换到看路上的汽车时,由于汽车距离她儿子骑自行车超过阈值距离,因此过程500将排除汽车的时刻内容项。

在框510处,过程500可以向自动记忆创建和检索系统提供由所聚类的时刻内容项组成的记忆内容项,例如以用于添加到如下文所论述的记忆分层结构和/或记忆图谱中,和/或直接供用户浏览。

图10利用描绘了从来自用户的多个时刻内容项创建记忆的示例1000来示出了过程500。在该示例中,时刻内容项1020-C、1020-D、1020-E、1020-F、1020-G、1020-I、1020-J、1020-K、1020-M、1020-N和1020-O来自生日派对。时刻内容项1020-C来自开车去派对。时刻内容项1020-D、1020-E、1020-F和1020-G来自客人们唱生日快乐歌的时候。时刻内容项1020-I、1020-J和1020-K描绘了切蛋糕。而时刻内容项1020-M、1020-N和1020-O描绘了打开礼物。

时刻内容项1020-C、1020-D、1020-E、1020-F、1020-G、1020-I、1020-J、1020-K、1020-M、1020-N和1020-O已经被标记(例如,用基于人物/面部识别、时间戳、对象检测、地理位置数据、文本识别、语音识别或转录、情绪检测、质量检测、活动检测等的语义标识符进行了标记)并且在时间线1002上按时间顺序进行了排列。分隔线1024A至1024C示出了高于条件1)的阈值时间量的、各时刻内容项之间的间隙(例如,1020-C和1020-D之间的时间间隙对于这些时刻内容项来说太大而不能在同一记忆中)。

将在彼此的分组时间阈值内的时刻内容项1020-D、1020-E、1020-F和1020-G输入到聚类评分模块1004中(聚类评分模块1004、1008和1012中的每个可以是同一聚类评分函数的实例,该聚类评分函数获取一组时刻内容项并产生匹配分数)。聚类评分模块1004基于分配给时刻内容项1020-D、1020-E、1020-F和1020-G的标签,来确定指示是否对这些时刻内容项进行聚类的分数。在该示例中,来自聚类评分模块1004的该组分数高于阈值,并因此时刻内容项1020-D、1020-E、1020-F和1020-G可以被聚类到记忆1006中。然而,时刻内容项1020-F描绘了摄像头将视线从唱生日快乐歌的活动移开的时刻,并因此被确定为不太相关,因此将时刻内容项1020-F从记忆1006中排除。因此,时刻内容项1020-D、1020-E和1020-G被聚类到“唱生日快乐歌”记忆1006中。

时刻内容项1020-I、1020-J和1020-K在彼此的分组时间阈值内,并被输入到聚类评分模块1008。聚类评分模块1008基于分配给时刻内容项1020-I、1020-J和1020-K的标签来确定是否对这些时刻内容项进行聚类,并基于确定各个时刻内容项1020-I、1020-J和1020-K的匹配值是否高于组分数阈值,来计算组分数。在这种情况下,内容项1020-I、1020-J和1020-K的匹配分数低于阈值,而内容项1020-I和1020-K的匹配分数高于阈值,同时I和K仍在彼此的阈值时间内。因此,聚类评分模块1008创建具有时刻内容项1020-I和1020-K的记忆1010。聚类评分模块1008还可以为剩余的时刻内容项1020-J创建另一记忆(未示出)。

将在彼此的分组时间阈值内的时刻内容项1020-M、1020-N和1020-O输入到聚类评分模块1012。聚类评分模块1012确定只有时刻内容项1020-N和1020-O的聚类具有高于阈值的匹配分数,因此将这些时刻内容项聚类到记忆1014中。剩余的时刻内容项用于创建记忆1013。

图6为示出了在本技术一些实施方式中用于从由不同用户采集的多个时刻内容项创建记忆的过程600。在一些实施方式中,过程600可以在用户提供输入(例如,图像、即时消息、视频聊天、电子邮件、文本或其它数字对话或记录系统)时自动执行。在一些实施方式中,过程600可以响应于用户动作(例如,当用户将新内容项添加到存储库时)来执行,或者周期性地(例如,当存在服务器处理可用性时,通过每晚将用户的内容项组织成记忆等)执行。在一些情况下,过程600可以在用户的本地设备上执行(例如,通过电话、XR设备或自动助理设备)。在一些实施方式中,过程600可以由服务器侧系统来执行,该服务器侧系统便于从本地系统收集内容项或命令数据。

在框602处,过程600可以从与多个用户相关联的源中获取多个时刻内容项。从多个用户获取多个时刻内容项允许同一时刻的多个视角。与所获得的内容项相关联的用户可以是与正在为其生成记忆的主用户具有定义关系的用户。例如,可以针对如下用户获取内容项:在社交图谱上与主用户具有特定关系的用户(例如,是“朋友”或“朋友的朋友”)、在不同时间被识别为处于主用户的地理距离内的用户、或被识别为在主用户的阈值数量的时刻内容项中被描绘的用户。过程600可以从多个源中获取这些时刻内容项,这些源例如为发布到社交媒体网站的内容项、用户设备上的内容项、云驱动器中的内容项、允许用户访问的内容项、与用户共享的内容项、发布到社交媒体平台(该平台的隐私设置允许用户访问(例如,朋友的账户、群组账户))的内容项等。时刻内容项可以是图像、视频、音频、所接收到或所发送的消息、即时消息、帖子、文本或电子邮件、视频聊天、消息线程等。在一些情况下,时刻内容项可以包括添加到原始内容项的AR或VR效果。

当时刻内容项跨越多于一个瞬间(例如,非图像)时,所述内容项可以被分成多个内容项。例如,将视频分解为多个帧或多个1秒(或任意时长)的片段,或将音频分解为多个1秒(或任意时长)的音频片段。时刻内容项可以来自用户指定的源(例如,发布到社交媒体网站的内容项、用户设备上的内容项、云驱动器中的内容项等)。

过程600可以获取用户指定的源中的所有内容项,或者在获取这些内容项之前对这些内容项进行过滤。过程600可以基于时间阈值来过滤和选择内容项(例如,仅使用从过去的日、周、月、年等开始的内容项),或者基于时间窗口(例如,早上7点到晚上9点)来过滤和选择内容项。过程600可以基于质量阈值来过滤和选择内容项(例如,排除低于阈值质量的内容项,例如被识别为模糊的或具有低于500像素/平方英尺的图像)。过程600可以基于各内容项的相似性来过滤和选择内容项(例如,仅从一组相似的内容项中选择一个内容项,例如,在存在5个几乎相同的图片的情况下,选择具有最高质量分数的一个图片)。过程600可以使用人物/面部识别、对象检测、时间戳、文本识别、语音识别和转录、位置检测或活动检测来识别重复的内容项,并基于质量、用户视角或采集角度选择重复的内容项中的一个。在一些情况下,过程600可以将未选择的内容项与所选择的内容项相链接,使得用户可以在稍后浏览记忆时看到备选版本(例如,从其它视角采集的视图)。在一些情况下,每次采集到新的内容项时,过程600对该新的内容项进行分析以将其分配给现有记忆或开始一新的记忆。

在框604处,过程600可以以类似于图5的框504的方式为各时刻内容项分配标签。

在框606处,过程600可以基于时间和/或对齐类别(例如,位置、所识别的人物、所识别的动物、所识别的对象、社交图谱连接或人工智能(AI)标记(标签))来对齐这些时刻内容项。在一些情况下,对齐类别基于在框604处分配的标签。在一些实施方式中,过程600可以基于多个类别来对齐这些时刻内容项,并且可以向这些类别分配权重以确定这些内容项如何对齐。例如,在对齐时,两个时刻内容项之间的时间重叠和位置重叠可以比在该两个时刻内容项中显示的相同的人物或对象更重地加权。在一些情况下,过程600可以基于同一类别(例如,时间)来识别这些时刻内容项中的多个视角,并使用其它类别(例如,位置或活动)来对齐这些时刻内容项。例如,第一时刻内容项和第二时刻内容项基于时间和位置(例如在下午6点的生日派对上)重叠,然而过程600可以基于活动类别来确定排除第一时刻内容项(例如,该第一时刻内容项是两位父母在一个房间中交谈,而该第二时刻内容项是同一时间在另一个房间中切生日蛋糕)。

在框608处,过程600可以以类似于图5的框508的方式将各时刻内容项聚类到记忆内容项(例如,记忆)中。在框610处,过程600可以向自动记忆创建和检索系统提供由所聚类的时刻内容项组成的记忆内容项,例如以用于添加到如下文所论述的记忆分层结构和/或记忆图谱中,和/或直接供用户浏览。

图11利用描绘了从由不同用户采集的多个时刻内容项创建记忆的示例1100来示出了过程600。收集了与用户1124(为其生成记忆的主用户)和用户1126和1128(其为用户1124在社交图谱上的“朋友”,并且在用户1124采集一些内容项时被确定为在用户1124的阈值距离内)相关的时刻内容项。在示例1100中,获取了与用户1126、1124和1126相关的时刻内容项1120-A、1120-B、1120-D

这些时刻内容项已经被标记(例如,利用基于人物/面部识别、时间戳、对象检测、地理位置数据、文本识别、语音识别或转录、情绪检测、质量检测、活动检测等语义标识符进行了标记),并且在线1102上根据它们的时间和其它对齐类别(例如,位置、人物、活动等)进行了排列。分隔线1130A至1130C示出了高于条件1)的阈值时间量的、各时刻内容项之间的间隙(例如,1020-B和1020-D之间的时间间隙对于这些时刻内容项而言太大而不能在同一记忆中)。

将在彼此的分组时间阈值内和/或基于对齐类别(例如,位置、所识别的人物、所识别的动物、所识别的对象、社交图谱连接或AI标记(标签))对齐的时刻内容项1120-D

类似地,聚类模块已经从时刻内容项1120-I

图7为示出了在本技术一些实施方式中用于将多个记忆组织成分层结构的过程700的流程图。在一些实施方式中,可以响应于过程500或600的完成来执行过程700,例如,当形成新的记忆时,这些新的记忆随后可以放入分层结构中。在其它情况下,过程700可以周期性地(例如,每晚或每周)执行。在一些实施方式中,过程700可以由服务器侧系统来执行,该服务器侧系统促进本地系统的记忆创建和提供。在其它实施方式中,过程700可以在客户端上执行,该客户端例如为生成分层数据结构的客户端,该分层数据结构作为在本地向用户提供记忆的前体。

在框702处,过程700可以收集(例如,来自图5的过程500和/或图6的过程600的)多个记忆内容项。这些记忆内容项各自包括被标记有语义标识符的一个或多个时刻内容项。在框704处,过程700可以将这些记忆内容项排列成一组有序的叶节点。该组有序的叶节点可以是记忆分层结构中的第一层级(例如,基本层级)。过程700可以按时间顺序(例如,基于分配给这些被聚类到记忆中的时刻内容项的时间戳)排列这些记忆内容项。

在框705处,过程700可以设置当前层级。如果这是框705至709之间的循环的第一次迭代,则当前层级可以是在框704创建的叶节点层级。否则,当前层级被递增到比该循环的上一次迭代高一个层级。

在框706处,过程700可以根据分组标准对当前层级的节点进行分组。在分层结构的当前层级中,当满足分组标准时,过程700可以从分层结构中的多组相邻节点创建新的组合节点(更高层级或更高等级的节点)。被分组到更高等级节点中的每个节点可以将该更高等级节点设置为其在分层结构中的父节点。在一些实施方式中,分组标准可以是在记忆中的各语义标签之间的如下特征的量:对于要被分组到一更高等级节点中的各记忆,所述特征必须匹配。因此,过程700可以基于分配给各记忆内容项的标签,来识别共享阈值量的语义标识符的多组兄弟节点。例如,各分组可以基于分配给各记忆的标签,例如在记忆内容项中描绘的人物、在记忆内容项中发生的活动、与记忆内容项相关联的位置等。在一些实施方式中,每个节点可以被分组到不超过一个更高等级节点。

在框708处,过程700可以在框705至709之间继续循环,同时在该循环的当前迭代中创建至少一个新节点。当没有新节点被创建时,可以将所创建的多个最高等级节点中的每个设置为对应分层结构的根节点。当已经创建了新节点时,过程700可以继续到框709,在框709中可以降低分组标准,例如通过减少待被分组的两个节点必须匹配的特征的数量。因此,当过程700向上遍历来创建分层结构的新层级时,在兄弟节点之间需要较少的相似性,以组合它们。例如,在叶层级中,节点必须具有六个或更多个共同的语义标识符,但在第二层级中,节点只需要具有五个共同的语义标识符,依此类推。在一些实施方式中,框709仅在分组标准还没有达到最小值(例如三个匹配特征)的情况下才降低分组标准。

在框710处,过程700可以提供一个或多个记忆分层结构,例如用于选择记忆以通过记忆应用程序、XR设备等呈现给用户,如以下关于图9所描述的。

图12利用描绘了将多个记忆组织成记忆分层结构的示例1200来示出了过程700。记忆1202、1204、1206、1208、1210和1212被排列成一组有序的叶节点,作为记忆分层结构的第一层级。记忆1214和1216示出了更高层级节点,并且记忆1218示出了记忆分层结构的根节点。记忆1204、1206和1208已经被识别为第一组兄弟节点,该第一组兄弟节点共享第一阈值(五个)的语义标识符,而记忆1210和1212已经被识别为第二组兄弟节点,该第二组兄弟节点共享第一阈值的语义标识符。因此,记忆1204、1206和1208被组合成记忆组合节点1214,其中记忆1204、1206和1208作为该记忆组合节点的子节点。类似地,记忆1210和1212被组合成记忆组合节点1216,其中记忆1210和1212作为该记忆组合节点的子节点。记忆1202示出了这样的节点:该节点不与记忆1204共享第一阈值数量的语义标识符。向上移动到分层结构的下一层级,设置第二阈值(三个)的语义标识。在第二层级,考虑在前一层级中未被组合的节点,并且确定记忆1202和记忆组合节点1214和1216都共享阈值数量的特征。因此,记忆1202和记忆组合1214和1216被组合成记忆组合节点1218,其中这些节点被设置为组合节点1218的子节点。不能进行进一步的组合,并因此该记忆分层结构完成。

图8为示出了在本技术一些实施方式中用于绘制记忆之间的链接的过程800的流程图。在一些实施方式中,可以响应于过程500或600的完成来执行过程800,例如,当形成新的记忆时,这些新的记忆随后可以放入记忆图谱中。在其它情况下,过程800可以周期性地(例如,每晚或每周)执行。在一些实施方式中,过程800可以由服务器侧系统来执行,该服务器侧系统促进本地系统的记忆创建和提供。在其它实施方式中,过程800可以在客户端上执行,该客户端例如为生成记忆图谱数据结构的客户端,该记忆图谱数据结构作为在本地向用户提供记忆的前体。

在框802处,过程800可以收集(例如,来自图5的过程500和图6的过程600的)多个记忆内容项,以生成记忆图谱。

在框804处,过程800可以将这些记忆内容项形成记忆对。在一些实施方式中,可以创建所有可能的记忆对。在其它实施方式中,为了避免在评估所有可能的记忆对时的指数性质,可以在记忆具有阈值数量的相似标签或标签类型的情况下形成记忆对。例如,过程800可以在如下情况下创建记忆对:两个记忆具有至少两个匹配标签,该两个记忆具有多个相同维度(以下讨论的维度)中的至少三个相同维度中的标签,或者该两个记忆具有诸如位置和人物等特定维度中的标签。

在框806处,过程800可以开始外层循环,该外层循环遍历在框804处形成的所有记忆对。过程800每次到达框806时,过程800选择多个记忆对中的下一个记忆对以供外层循环来评估。

过程800可以以一个或多个维度确定各记忆内容项之间的关联。各维度可以包括时间、所识别的人物、所识别的主题(例如,所描绘的对象、所显示的文本、所识别的语音/声音(例如,笑声))、所识别的位置、所识别的活动、所识别的情绪等。在框808处,过程800可以开始内层循环,对于在框806处选择的记忆对,该内层循环遍历所有维度以针对所选择的维度确定在各记忆之间是否应该存在链接。过程800每次到达框808时,过程800选择维度列表中的多个维度中的下一个维度,并且当已经选择了新的记忆对时,在该列表的开始处再次开始。

在框810处,过程800可以针对所选择的维度来比较所选择的记忆对的标签,以确定它们对于所选择的记忆对中的记忆之间的链接而在所选择的维度中具有阈值匹配水平。如果该匹配水平满足匹配阈值,则过程800可以针对当前维度在当前记忆对之间添加图谱边。在各种实施方式中,计算匹配水平和匹配阈值对于各个维度可以是相同的,或者对于各个维度可以是不同的。作为对于各维度使用不同的匹配水平和匹配阈值的示例,对于人物维度,匹配水平可以是两个记忆之间的匹配人物标签的数量的计数,并且匹配阈值可以是3,而对于位置维度,匹配水平可以是第一记忆指定的位置和第二记忆指定的位置之间的距离,并且匹配阈值可以是500英尺。作为使用相同的匹配水平和/或匹配阈值的示例,匹配水平可以是为所选择的维度指定的标签之间的值的匹配,并且阈值可以是1,因此,位置维度中的匹配可以是记忆的“城市”标识符是否具有相同的指定值(例如,“巴黎”),而活动维度中的匹配可以发生在这样的情况下:两个记忆的活动标签指定了相同的值(例如,“徒步”)。

在一些实施方式中,记忆对之间的链接(或边)可以基于匹配水平来加权。在一些情况下,记忆对之间的链接(或边)还可以或可以替代地根据(或相反地根据)该匹配与所选择的维度的一个或多个中心概念的相关性来加权。例如,对于位置维度,维度的中心概念可以是主用户(为其创建记忆图谱的用户)的家庭位置和工作位置,其中权重相关性是根据到这些位置中的任一位置的物理距离来计算的;对于人物维度,中心概念可以是主用户,其中权重相关性是根据在社交图谱上从主用户到所标记的用户的跳跃次数来计算的;对于活动维度,中心概念可以是被确定为常见地由主用户执行的活动,其中权重相关性是根据所标记的活动和常见活动之间的嵌入的距离计算的;等等。例如,当确定两个记忆的位置靠近用户的房子时,过程800可以减少位置维度中两个记忆之间的边的权重。因此,各记忆之间不显著的链接比可能是特殊的链接被更低的加权。例如,与用户经常去的两个记忆(例如,用户每天去的当地咖啡店)之间的链接相比,用户可能对发生在远离用户家(例如,度假)的两个记忆之间的链接更感兴趣。有些维度(例如,时间)可能不具有中心概念。在又一种情况下,过程800可以根据两个记忆之间的标记特征在用户的记忆中有多常见来分配边权重。例如,一活动的频率可以减小该活动在各记忆之间的链接中的权重。例如,诸如通勤上班等活动的权重将比前往度假目的地旅行的活动更低地加权,因为用户旅行度假比通勤上班更独特。可以设置此类权重,因为用户更可能对这种独特体验之间的链接感兴趣。

在框812处,如果对于所选择的记忆对存在待评估的附加维度,则过程800返回到框808。如果对于所选择的记忆对已经评估了所有维度,则过程800继续到框814。在框814处,如果(来自在框804形成的记忆对中)存在待评估的另外的记忆对,则过程800返回到框806。如果已经评估了所有记忆对,则过程800继续到框816。

在框816处,过程800可以提供例如在用户浏览记忆时使用的记忆图谱,使得各记忆之间的链接可以用来过滤哪些记忆与记忆起点(例如,使用上述分层结构选择的记忆)相关。这种记忆浏览可以通过记忆应用程序、XR设备等来完成,如下文关于图9所描述的。

图13是描绘了用于绘制各记忆之间的链接的过程800的示例1300的概念图。示例1300包括记忆1302至1308。在示例1300中,评估所有记忆对,因此过程800遍历记忆对1302:1304;1302:1306;1302:1308;1304:1306;1304:1308和1306:1308。在本示例中,维度是位置、活动、时间和人物。记忆1302和1304在所有这些维度上共享标签,因此具有链接1310至1316(每个维度一个链接)。记忆1302和1306在这些维度上不共享标签,并因此不直接链接。记忆1302和1308仅在时间维度上共享标签,因此具有链接1326。记忆1304和1308在时间维度、人物维度和位置维度上共享标签,因此具有链接1318、1320和1322。记忆1304和1306在这些维度上不共享标签,因此不直接链接。记忆1306和1308仅在人物维度上共享标签,因此具有链接1324。

图9是示出了在本技术一些实施方式中用于提供(例如,来自记忆分层结构和/或记忆图谱的)一个或多个记忆的过程900的流程图。在各种实施方式中,过程900可以响应于记忆应用程序(例如,将记忆呈现给用户的应用程序)的执行而执行。在各种实施方式中,这种记忆应用程序可以是用户设备上的应用程序(例如,移动电话上的应用程序,其中用户可以搜索和浏览记忆)、另一应用程序的插件(例如,社交媒体或消息收发应用程序中呈现与社交媒体或消息收发活动相关的记忆的小应用程序)、或者XR设备上的应用程序(例如,获取用户和/或XR设备的上下文并在XR环境中呈现相关记忆的应用程序)。在一些情况下,过程900可以在用户的本地设备上(例如,通过电话、XR设备或自动助理设备)执行。在一些实施方式中,过程900可以由服务器侧系统来执行,该服务器侧系统存储并选择待呈现给用户的记忆。

在框902处,过程900可以从用户界面(user interface,UI)获取记忆内容项搜索标准。在一些情况下,搜索标准可以包括在搜索记忆时的用户输入(例如,在记忆应用程序中使用语音助手、网页浏览器等的文本或语音)和/或用户的上下文。搜索标准可以包括待匹配的特征,例如用户提供的词语、对象、声音、对其它记忆的选择(例如,以寻找相似的记忆)等。在一些实施方式中,搜索标准可以包括用户的上下文(例如,由XR设备、移动设备、来自社交图谱的信息等收集的用户的上下文),该上下文可以包括该区域的图像和录音和/或所识别的信息,该所识别的信息例如为在用户附近检测到的人物、在用户附近检测到的对象、GPS或用户的其它位置标记或由用户指示的其它位置标记、所确定的用户的当前活动、用户的情绪状态、所识别的环境声音(例如,笑声、歌声、叫喊声、脚步声、流水声、狗叫声等)。

在框904处,过程900可以基于记忆搜索标准创建伪记忆。过程900可以创建伪记忆作为记忆数据结构,其中搜索标准作为伪记忆的语义标签。例如,如果用户输入搜索查询“在夏威夷划皮划艇”,则过程900可以创建具有位置(夏威夷)标签和活动(划皮划艇)标签的伪记忆。作为另一示例,在使用由XR设备收集的图像和其它上下文信息来创建伪记忆的情况下,该伪记忆可以具有这样的标签:该标签与识别到用户在她的妹妹附近、正在骑摩托车、有环境引擎声音、且看到金门大桥相对应。

在框906处,过程900可以(例如,使用图7的过程700)将伪记忆映射到记忆分层结构中,以确定伪记忆将被分组到记忆分层结构中的哪些节点中。过程900可以通过确定记忆分层结构的节点来将伪记忆映射到记忆分层结构中,利用这些节点可以根据分组标准对伪记忆进行分组(参见框706)。当采用过程700时,过程900可以使用宽松的分组标准,使得可以在框706处使用较低的分组标准将伪记忆映射到节点,该较低的分组标准随后被用来最初创建具有非伪记忆的记忆分层结构。在一些情况下,伪记忆可以不包括时间分量,并且可以通过根据分组标准将伪记忆与分层结构中的每个第二层级节点和更高层级节点进行比较,来将伪记忆映射到记忆分层结构中,而与时间无关。在一些情况下,伪记忆可以被映射到分层结构的超过一个的节点,并且过程900可以选择处于指定层级(例如分层结构的最低非叶层级、分层结构的第三层级等)的节点。在一些实施方式中,过程900可以选择多个节点。例如,如果用户搜索春假期间在夏威夷划皮划艇的记忆,创建具有这些标签的伪记忆,则过程900可以基于根据降低的匹配标准将伪记忆标签与层级节点进行比较来返回具有如下标签的记忆节点:在夏威夷划皮划艇的标签、春假在夏威夷的标签、和在春假期间在夏威夷划皮划艇的标签。

在框908处,过程900可以通过用户界面提供与在框906处选择的记忆分层结构的一个或多个节点相对应的一个或多个记忆内容项。在各种实施方式中,所选择的节点的记忆可以(例如,在记忆应用程序中、在社交媒体应用程序中、在浏览器界面中等)被显示在计算屏幕上或者由XR设备(例如,作为链接到世界中的、与记忆标签匹配的元素的虚拟对象)显示。所选择的记忆可以以各种配置来提供,例如以搜索结果(例如,在具有记忆的缩略图的网格或列表中)来提供,以与用户正在参与的对话的关联来提供,作为发布到社交媒体站点的建议来提供,作为人工现实环境中的虚拟对象来提供等。在一些情况下,该记忆可以以这样的方式被显示:该方式指示记忆分层结构和/或记忆图谱中的相关记忆,从而允许用户浏览这些相关记忆,如以下所论述的。以下还关于图14至图16提供了呈现和浏览记忆的示例。

在框910处,过程900可以接收来自用户界面的、对一个或多个所提供的记忆内容项的选择。可以显示所选择的记忆,从而允许用户查看装在该记忆中的时刻内容项。例如,用户可以查看该记忆的图片、视频、音频录音等。在一些情况下,用户可以选择记忆内容项中的各种时刻的替代视图。除了查看所选择的记忆之外,该选择还可以用作浏览记忆分层结构和/或记忆图谱中的相关记忆的起点。在一些情况下,用户可以为过程900提供附加搜索标准以更新搜索(其可以以所选择的记忆作为上下文来重新执行过程900),或者在浏览时过滤记忆分层结构或记忆图谱中的项。

在框912处,过程900可以基于用户对所提供的记忆内容项的选择(以及任何附加的搜索标准或对选择进行过滤)来提供记忆内容项。过程900可以基于记忆分层结构和/或记忆图谱中与所选择的记忆的关系来提供相关记忆。相关记忆可以来自所选择的记忆在分层结构中的父节点或子节点(例如,在阈值数量的层级内)。例如,过程900可以从如下节点的父节点或子节点中的分层结构检索记忆:用户所选择的记忆是从该节点中提取的(在框906)。相关记忆也可以是在记忆图谱中连接到用户所选择的记忆的记忆。例如,可以向用户提供在任何维度上连接到用户所选择的记忆的记忆、在与用户搜索标准相对应的维度上连接到用户所选择的记忆的记忆、和/或在与用户所选择的过滤器相对应的维度上连接到用户所选择的记忆的记忆。在一些情况下,在记忆图谱中的边具有权重的情况下,可以在边具有高于阈值权重的权重的情况下,或所有边权重的组合(例如,总和或平均值)或与用户搜索标准或过滤标准相对应的边的边权重高于阈值的情况下,检索记忆。过程900可以在UI上呈现返回的记忆,该UI指示各记忆之间的关系(例如,显示来自图谱的连接的类型,或者显示该记忆是来自分层结构的一组更概括的记忆(即,父节点)还是更具体的记忆(即,子节点))。UI还可以具有根据这些因素来过滤结果的控件(例如,用于过滤更多/不那么特定的记忆的滑块、和/或连接类型选择器)。在一些实施方式中,该记忆可以作为人工现实环境中的全息图或其它虚拟对象来提供。例如,可以相对于真实世界对象或触发对记忆的检索的上下文来显示该记忆。在一些实施方式中,2D记忆(例如,视频、图片等)可以例如通过应用估计图像的深度数据的机器学习算法来转换为3D对象,从而可以以更逼真的方式显示记忆。在一些情况下,构成该记忆的时刻内容项可以被采集为3D对象(例如,采集RGB和点云或其它深度数据),并因此可以被作为3D对象进行播放。

当过程900返回相关记忆时,过程900可以返回到框910,从而允许用户进一步从这些相关记忆中进行选择,以通过记忆分层结构和/或记忆图谱继续浏览记忆。以下关于图14至图16提供了浏览记忆分层结构和记忆图谱的示例。

图14A和图14B为描绘了使用这样的记忆图谱来浏览记忆的概念图:该记忆图谱在各种维度上具有记忆之间的链接。图14A示出了描绘了在多个维度上链接在一起的记忆的示例1400。记忆1412(与艾米在百慕大潜水)以粗体勾勒,以说明这是由用户选择的被返回的记忆。在记忆图谱中,记忆1412连接到包括记忆1414和1416的多个记忆。示例1400包括允许用户(从维度:对象1402、活动1404、人物1406、时间1408和位置1410中)选择维度的多个控件,用户想要用这些维度从所选择的记忆开始浏览。在示例1400中,用户已经选择了维度:位置1410和活动1404,从而指示系统应该显示通过具有匹配的位置或匹配的时间帧而链接到所选择的记忆的记忆。在示例1400中,过滤器被用作“或”条件,显示在任何所选择的维度中链接到所选择的记忆的记忆。在其它情况下(例如,在示例1450中),过滤器可以具有“与”条件,仅显示在所有所选择的维度中链接到所选择的记忆的记忆。在各种实施方式中,可以为系统或用户所选择的过滤器设置具有“或”条件还是“与”条件。

在示例1400中,记忆1414为大学期间在百慕大潜水,由于处于相同位置(百慕大)而具有到所选择的记忆1412的链接1422,并且由于描述相同的活动(潜水)而具有到所选择记忆1412的链接1420。此外,记忆1416为与艾米在百慕大共进晚餐,由于处于相同的位置(百慕大)而具有到所选择的记忆1412的链接1418。因此,记忆1412(与艾米一起在百慕大潜水)和1414(大学期间在百慕大潜水)作为链接到所选择的记忆被返回。用户还可以选择这些记忆中的一个记忆来浏览附加记忆。

图14B示出了示例1450,也描绘了在多个维度中链接在一起的记忆。在返回音乐会的记忆的用户搜索之后,用户选择记忆1462(2017年春假期间的音乐会),如具有粗体边框的记忆1462所示。类似于示例1400,示例1450包括允许用户(从维度:对象1452、活动1454、人物1456、时间1458和位置1460中)选择维度的几个控件,用户想要利用这些维度从所选择的记忆中浏览。在记忆图谱中,记忆1462连接到包括记忆1464的多个记忆。在示例1450中,用户已经选择了维度:时间1458和活动1454,指示系统应该显示通过具有匹配的时间帧和匹配的活动而链接到所选择的记忆的记忆。在示例1450中,过滤器具有“与”条件,仅显示在所有所选择的维度中链接到所选择的记忆的记忆。

在示例1450中,记忆1462为2017年春假期间的音乐会,并且记忆为在2017年春假期间冲浪,因此这些记忆由于处于相同的时间帧(2017)而与链接1466链接,并且由于具有匹配的活动(春假)而与链接1468链接。因此,记忆1464由于在所指示的维度中链接到所选择的记忆而被返回。用户可以进一步选择该记忆以浏览附加记忆。

图15为描绘了通过记忆分层结构并基于用户搜索标准浏览记忆的示例1500的概念图。在示例1500中,用户已经提供了搜索标准“夏威夷”。基于该搜索标准,已经创建了伪记忆1516。然后将伪记忆1516映射到记忆分层结构(未示出)中,其中返回了伪记忆所匹配的部分1518并通过用户界面1520向用户显示该部分。例如,伪记忆可以具有标签“位置:夏威夷”,并且用于将伪记忆映射到分层结构中的分组标准可以是用于第二层级(包含节点1504和1510)处的匹配的至少两个匹配标签和用于第三层级(包含节点1502)处的匹配的至少一个匹配标签。因此,伪记忆与具有相同“位置:夏威夷”标签的节点1502匹配。在示例1500中,显示了结果,其显示了匹配节点和该匹配节点下面两个层级中的任何节点,从而在用户界面中显示了节点1502、1504、1506、1508、1510、1512和1514。用户可以选择这些记忆中的任何一个记忆来查看该记忆或者查看所选择的记忆链接到分层结构中的哪些其它记忆节点,从而允许用户浏览记忆分层结构中的记忆。

图16示出了描绘了人工现实闪光的示例1600,该人工现实闪光显示了记忆分层结构。在一些实施方式中,可以通过XR设备在人工现实环境中将记忆作为闪光呈现给用户。“闪光”可以是具有基于记忆的外观的视觉图标,其中用户可以与闪光交互以打开完整的记忆项或浏览其它记忆。在申请号为16/950,823、名称为“ARTIFICIAL REALITY ENVIRONMENTWITH GLINTSDISPLAYED BY AN EXTRA REALITY DEVICE(通过超现实设备显示闪光的人工现实环境)”的美国专利申请中描述了可以使用所公开的技术来选择或定制显示闪光的虚拟对象的一些附加示例,该美国专利申请通过引用全部结合在本文中。在示例1600中,使用用户的当前上下文来创建具有基于位置(在用户家中的书架1602附近)和所识别的对象(书籍1603)的标签的伪记忆。该伪记忆被映射到记忆分层结构中(如上所述),并且该分级结构中包含节点1606、1608和1610的部分被返回。此外,表示分层结构中的记忆集合的闪光1604被创建,并被附加到上下文对象——书籍1603。当用户通过XR设备(例如,通过在闪光1604上执行轻敲)与闪光1604交互时,显示记忆分层结构,从而允许用户进一步选择单个节点。在一些情况下,代替显示分层结构,闪光表示所选择的单个记忆,当对闪光采取动作时,可以向用户显示该所选择的单个记忆。在示例1600中,所显示的分层结构包括用户给她的孩子阅读书籍的记忆1606和她的孩子阅读的记忆1608、以及与阅读相关的记忆集合1610。当用户进一步选择记忆1608时,在虚拟现实环境中在1612处显示该记忆。

图17为示出了在本技术一些实施方式中用于基于时刻内容项和上下文来创建和提供记忆的系统的示例1700的概念图。示例1700包括:用户指定的源1702、时刻收集器1704、标签分配器1706、时间顺序生成器1708、记忆生成器1710、记忆对1712、节点1714、记忆图谱生成器1716、记忆分层结构生成器1718、记忆存储器1720、用户界面1722和伪记忆生成器1724。

在操作中,示例1700在步骤1750处开始,其中时刻收集器1704接收来自用户指定的源1702的时刻内容项(如上文关于图5的框502和图6的框602所描述的)。在步骤1754处,标签分配器1706为这些时刻内容项分配标签(如上文关于图5的框504和图6的框604所描述的)。在步骤1756处,时间顺序生成器1708以时间顺序顺序排列这些时刻内容项(如上文关于图5的框506和图6的框606所描述的)。在步骤1758处,记忆生成器1710将这些时刻内容项聚类到多个记忆内容项(如上文关于图5的框508和图6的框608所描述的)中。

在步骤1760处,由记忆对1712将这些记忆内容项形成记忆对(如上文关于图8中的框804所描述的)。在步骤1764处,由记忆图谱生成器1716在记忆图谱中以各种维度链接这些记忆对(如上文关于图8的框806至814所描述的)。在步骤1770处,将该记忆图谱存储在记忆存储器1720中。

在1762处,由节点创建器1714将这些记忆内容项排列成多个节点(如上文关于图7的框704所描述的)。在步骤1766处,由记忆分层结构生成器1718将这些节点排列成记忆分层结构(如上文关于图7的框705至709所描述的)。在步骤1768处,将该记忆分层结构存储在记忆存储器1720中。

在步骤1772处,用户界面1722将针对一记忆的搜索标准发送到伪记忆生成器1724(如上文关于图9的框902所描述的)。伪记忆生成器1724创建伪记忆(上文关于图9的框904所描述的),并且在步骤1776处将该伪记忆传递给记忆分层结构生成器1718,以将该伪记忆映射到记忆分层结构中(上文关于图9的框906所描述的)。在步骤1778处,从记忆存储器1720中选择与基于该映射所选择的节点相对应的记忆,并在1778处将这些记忆作为对搜索标准的响应而提供给用户界面(上文关于图9的框908所描述的)。

在步骤1780处,用户可以选择所提供的记忆作为浏览附加记忆的起点(上文关于图9的框910所描述的)。在步骤1782处,可以将与通过记忆图谱中的链接和/或记忆分层结构结构中的链接与所选择的记忆相关的记忆返回提供给用户界面,以供用户进一步查看或浏览(上文关于图9的框912所描述的)。

在本说明书中对“多个实施方式”(例如,“一些实施方式”,“各种实施方式”、“一种实施方式”、“一实施方式”等)的引用意味着,所描述的与该实施方式有关的特定的特征、结构或特性被包括在本公开的至少一个实施方式中。这些表达在说明书中不同地方的出现不一定都指同一实施方式,也不一定是与其它实施方式相互排斥的单独实施方式或替代实施方式。此外,描述了可由一些实施方式而不是由其它实施方式呈现的各种特征。类似地,描述了可以是一些实施方式而不是其它实施方式的要求的各种要求。

如本文所使用的,高于阈值意味着比较项的值高于指定的其它值,比较项位于具有最大值的某个指定数量的项中,或者比较项具有在指定的最高百分比值内的值。如本文所使用的,低于阈值意味着比较项的值低于指定的其它值,比较项位于具有最小值的某个指定数量的项中,或者比较项具有在指定的最低百分比值内的值。如本文所使用的,处于阈值内意味着比较项的值在两个指定的其它值之间,比较项位于中间的指定数量的项中,或者比较项具有在中间指定百分比范围内的值。当没有另外定义时,诸如高或不重要等相对术语可以被理解为分配一个值并确定该值如何与所建立的阈值进行比较。例如,短语“选择快速连接”可以被理解为意味着选择具有分配的与其高于阈值的连接速度相对应的值的连接。

如本文所使用的,词语“或”是指一组项目的任何可能的排列。例如,短语“A、B或C”指的是A、B、C或其任意组合中的至少一种,例如以下任何一种:A;B;C;A和B;A和C;B和C;A、B和C;或任何项目的倍数,如A和A;B、B和C;A、A、B、C和C;等等。

尽管已经用专用于结构特征和/或方法动作的语言描述了该主题,但应理解,在所附权利要求书中所限定的主题不必限于上述特定特征或动作。本文已出于说明的目的描述了特定的实施例和实施方式,但可以在不脱离这些实施例和实施方式的范围的情况下进行各种修改。上述特定特征和动作是作为实现所附权利要求书的示例形式而公开的。因此,除了所附权利要求书之外,实施例和实施方式不受限制。

以上所提到的任何专利、专利申请和其它参考文献都通过引用结合到本文中。如果需要,可以对各方面进行修改,以采用上述各种参考文献的系统、功能和概念来提供另外的实施方式。如果通过引用结合的文档中的陈述或主题与本申请的陈述或主题相冲突,则以本申请为准。

相关技术
  • 针对空间大数据频繁项集的索引架构的构建和检索方法
  • 用于创建和更新媒体内容项组的方法、系统和介质
技术分类

06120116492463