首页> 中国专利> 用于执行自改进的视觉测程法的系统和方法

用于执行自改进的视觉测程法的系统和方法

摘要

在训练用于执行视觉测程法的神经网络的示例方法中,该神经网络接收环境的多个图像,针对每个图像确定相应的一组关注点和相应的描述符,并确定多个图像之间的对应关系。确定对应关系包括确定多组关注点之间的一个或多个点对应关系,并基于一个或多个点对应关系确定一组候选关注点,每个候选关注点指示三维空间的环境中的相应特征。神经网络针对每个候选关注点确定相应的稳定性度量。基于一个或多个候选关注点修改神经网络。

著录项

  • 公开/公告号CN113272713A

    专利类型发明专利

  • 公开/公告日2021-08-17

    原文格式PDF

  • 申请/专利权人 奇跃公司;

    申请/专利号CN201980087289.6

  • 申请日2019-11-13

  • 分类号G02B27/01(20060101);G06F3/01(20060101);G06T7/12(20060101);G06T7/30(20060101);G06K9/46(20060101);G06K9/62(20060101);

  • 代理机构11247 北京市中咨律师事务所;

  • 代理人魏子翔;于静

  • 地址 美国佛罗里达州

  • 入库时间 2023-06-19 12:14:58

说明书

技术领域

本公开涉及训练用于执行视觉测程法的神经网络。

背景技术

视觉测程法是基于对相机图像(例如,从设备的角度获得的相机图像)的分析来确定设备(例如,头戴式显示设备)的位置和取向的过程。在一些实现方式中,视觉测程法至少部分地通过识别一个或多个图像中的关注点,确定关注点之间的关系,以及基于该关系来确定设备的位置和取向来执行。

发明内容

本公开总体上涉及视觉测程法。更具体地,本公开的实施例提供用于使用神经网络检测和描述一个或多个图像中的关注点并基于那些关注点执行视觉测程法的系统、设备和方法。尽管参考增强现实(AR)设备描述了本公开的部分,但是本公开可应用于计算机视觉和图像显示系统中的各种应用。

在一方面,执行一种方法来训练用于执行视觉测程法的神经网络。该方法包括由使用一个或多个计算机系统实现的神经网络接收环境的多个图像。该方法还包括由神经网络针对每个图像确定相应的一组关注点和相应的描述符。该方法还包括由神经网络基于多个图像的多组关注点和描述符来确定多个图像之间的对应关系。确定多个图像之间的对应关系包括确定多组关注点之间的一个或多个点对应关系。每个点对应关系指示一个图像的关注点与另一图像的关注点之间的相应的对应关系,确定多个图像之间的对应关系还包括基于一个或多个点对应关系,确定一组候选关注点。每个候选关注点指示三维空间的环境中的相应特征。该方法还包括针对每个候选关注点确定相应的稳定性度量,以及基于候选关注点中的一个或多个修改神经网络。

该方面的实施例可以包括以下特征中的一个或多个。

在一些实施例中,针对每个候选关注点确定相应的稳定性度量包括确定第一候选关注点是稳定的。

在一些实施例中,基于候选关注点中的一个或多个修改神经网络包括:响应于确定第一候选关注点是稳定的,从多个图像中选择第一候选关注点和第一对图像以训练神经网络。第一对图像描绘环境中的第一候选关注点。

在一些实施例中,确定第一候选关注点是稳定的包括:确定在超过第一阈值数量的多个图像中的若干图像中描绘了第一候选关注点,并确定与第一候选关注点相关联的重投影误差小于第一阈值误差级别。

在一些实施例中,针对每个候选关注点确定相应的稳定性度量包括确定第二候选关注点是不稳定的。

在一些实施例中,基于一个或多个候选关注点来修改神经网络包括:响应于确定第二候选关注点是不稳定的,从多个图像中选择第二候选关注点和第二对图像以训练神经网络。第二对图像描绘了环境中的第二候选关注点。

在一些实施例中,确定第二候选关注点不稳定包括:确定在超过第二阈值数量的多个图像的若干图像中描绘了第二候选关注点,并确定与第二候选关注点相关联的重投影误差大于第二阈值误差级别。

在一些实施例中,第一阈值数量等于第二阈值数量。

在一些实施例中,第一阈值误差级别小于第二阈值误差级别。

在一些实施例中,针对每个候选关注点确定相应的稳定性度量包括确定将要从神经网络的训练中省略第三候选关注点。

在一些实施例中,确定将要从神经网络的训练中省略第三候选关注点包括确定以下中的至少一个:(i)在小于第三阈值数量的多个图像的若干图像中描绘了第三候选关注点,或者(ii)确定与第三候选关注点相关联的重投影误差在第一阈值误差级别和第二阈值误差级别之间。

在一些实施例中,第三阈值数量等于第一阈值数量。

在一些实施例中,多个图像包括从视频序列提取的二维图像。

在一些实施例中,多个图像对应于视频序列的非连续帧。

在一些实施例中,该方法进一步包括,在修改神经网络之后,由神经网络从头戴式显示设备接收第二环境的第二多个图像。该方法还包括由神经网络识别第二组关注点,以及由神经网络基于第二多个图像和第二组关注点相对于第二环境执行视觉测程法。

在一些实施例中,相对于第二环境执行视觉测程法包括使用第二组关注点作为界标来确定头戴式显示设备的位置和取向。

其它实施例针对用于促进一些或所有前述方法的性能的系统、装置和非暂态计算机可读介质。

本公开的实施例可以提供多种技术益处。例如,至少一些实施例提供了用于训练关注点检测器和描述符以促进视觉测程法的性能的自我监督框架。本公开的实施例可以用于分析各种各样的单通道或多通道二维(2D)图像(例如,互联网RGB照片、微型机器人灰度相机、水下图像、航拍图像、望远镜图像、深度传感器图像、热感相机图像等),并且可用于解决各种多视图几何问题而无需大量的人工干预。此外,至少一些实施例提供了对全尺寸图像进行操作的完全卷积模型,该模型在一个前向传播中共同计算像素级关注点位置和相关联的描述符。此外,至少一些实施例可以被描述为单应性自适应:用于提高关注点检测精度并执行跨域自适应(例如,合成到实数)的多尺度多单应性方法。此外,至少一些实施例使得能够以更高的点匹配精度和更准确的单应性估计来检测更丰富的关注点(例如,与传统的角检测器、传统的描述符和/或预自适应的深度模型相比)。此外,至少一些实施例不需要明确的几何对应信息,并且因此可以部署在各种各样的环境和用例中。对于本领域技术人员而言,其它益处将是显而易见的。

一个或多个实施例的细节在附图和以下描述中阐述。根据说明书和附图以及根据权利要求书,其它特征和优点将变得显而易见。

附图说明

图1示出使用神经网络确定在一对输入图像的关注点之间的点对应关系。

图2示出神经网络的一般架构。

图3示出第一训练步骤,其中使用包括一个或多个合成图像的合成数据集训练关注点检测器子网络。

图4示出第二训练步骤,其中使用单应性自适应编译参考数据集。

图5示出第三训练步骤,其中使用参考数据集训练神经网络。

图6示出使用神经网络计算在两个所捕获的图像之间的单应性。

图7示出合成数据集的示例。

图8示出未标记的数据集的示例。

图9示出神经网络的示例架构。

图10示出在第二训练步骤期间采用的单应性自适应的各个步骤。

图11示出随机单应性生成的某些方面。

图12示出可以利用在此描述的实施例的AR设备的示意图。

图13示出训练神经网络并使用神经网络执行图像关注点检测和描述的方法。

图14示出训练用于图像关注点检测和描述的神经网络的方法。

图15示出用于基于检测到的关注点的估计的稳定性来训练神经网络的示例过程。

图16示出示例Siamese训练过程。

图17示出标记关注点的示例。

图18示出用于训练用于执行视觉测程法的神经网络的方法。

图19示出根据在此所述的一些实施例的简化的计算机系统。

具体实现方式

在几乎所有需要图像作为输入的任务上,卷积神经网络已经被示出优于手工设计的表示。特别地,对于各种任务(诸如人体姿态估计、对象检测和房间布局估计),已经很好地研究了预测二维(2D)“关键点”或“界标”的全卷积神经网络。这些技术中的一些利用了标记有人类注释的2D真实(ground truth)位置的大型数据集。类似地将关注点检测公式化为大规模监督的机器学习问题,并训练最新的卷积神经网络架构来检测它们似乎是很自然的。不幸的是,当与诸如人体关键点估计的更多语义任务相比时,在训练网络以检测诸如嘴角或左脚踝的语义身体部位时,关注点检测的概念在语义上是不明确的。该困难使得训练具有关注点的强监督的卷积神经网络是非平凡的。

代替使用人工监督来定义真实图像中的关注点,在此描述的实施例中的至少一些提供了使用自训练的自监督解决方案。在此描述的实施例的方法中,创建了由关注点检测器本身而不是人类知识来监督的真实图像中的伪真实关注点位置的大型数据集。为了生成伪真实关注点,首先在来自合成图像数据集中的数百万个独特示例上训练全卷积神经网络。由于特征提取是图像序列中图像匹配和跟踪的基本步骤,因此众所周知的是不同点的检测和精确定位可能很重要。这些不同的点被表征为拐角、边缘(用于分析多面体的基本元素)和圆形特征(诸如孔、盘或环)的中心。交叉(Y,X,T,L)也被认为对于检测这种不同点至关重要。例如,T形交叉通常表示插入并且因此表示深度不连续。

借用这些见解,可以创建用于关注点检测器的大规模训练的合成形状的大型数据集,该合成形状由其中不存在不明确的关注点位置的简单的几何形状组成。在合成形状的数据集上,在此所述的关注点检测器被示出明显优于传统的关注点检测器。当应用于真实图像时,考虑到域自适应在合成图像上进行训练时是一个已知的问题,关注点检测器很好地执行。然而,当与在不同组的图像纹理和图案上的经典关注点检测器相比时,关注点检测器的性能不太一致。为了弥合在关注点检测器和经典检测器之间在真实世界图像上的性能差距,在至少一些此描述的实施例中(在此可替代地被称为单应性自适应)允许多尺度多变换。

单应性自适应实现关注点检测器的自监督训练。在一些实施例中,它多次扭曲输入图像以帮助关注点检测器从许多不同的视点和尺度看到场景。当与关注点检测器结合使用以生成伪真实关注点并提高检测器的性能时,所得的检测更具可重复性。在检测到稳健并且可重复的关注点之后的一个步骤是将固定维度的描述符向量附加到每个点(或所有图像像素),该描述符向量可用于跨图像匹配关注点。因此,在至少一些在此描述的实施例中,关注点检测器子网络可以与描述符子网络组合。如图1所示,所得的网络可用于从一对图像中提取点并建立点对应关系。

根据在此所述的至少一些实施例,其包括自监督的方法、初始关注点检测器以及从目标的未标记域自动标记图像的单应性自适应过程。生成的标签依次用于训练全卷积网络,该全卷积网络可以从图像中共同提取点和描述符。全卷积网络可用于广泛的应用程序中,特别是涉及图像到图像几何任务(诸如计算在两个图像之间的单应性)的那些应用程序。单应性仅在围绕相机中心旋转,距对象较远距离的场景以及平面场景的情况下,针对相机运动给出了精确或几乎精确的图像到图像的变换。因为世界的大多部分都是相当平面的,所以当从不同的视点看到相同的三维(3D)点时,单应性是对于所发生的事件很好的模型。由于单应性不需要3D信息,因此它们可以被随机采样并且被容易地应用于涉及与双线性插值没有区别的任何2D图像。由于这些原因,在至少一些在此描述的实施例中利用了单应性。

图1示出使用神经网络100确定在一对输入图像102的关注点之间的点对应关系106。具体地,图1示出神经网络100(即,神经网络100-1、100-2)的两个实例,该神经网络是全卷积的神经网络,其利用点对应关系在单个前向传播中计算类似于尺度不变特征变换(SIFT)的2D关注点位置和描述符。当接收输入图像102-1、102-2作为输入时,神经网络100-1、100-2分别基于输入图像102-1、102-2来计算多组所计算的关注点108-1、108-2和所计算的描述符110-1、110-2。然后,通过在所计算的关注点108-1、108-2之间的比较来确定点对应关系106,该比较由与关注点中的每个关注点相关联的描述符通知。例如,与不同关注点相关联的描述符可以被匹配。根据几种可能的相似性评分过程中的一个,可以确定与具有最相似的描述符的不同图像相对应的关注点彼此相对应。

根据一个示例,通过确定在第一关注点的五个最接近的关注点(根据像素到像素的距离)之中,和与五个最接近的关注点相关联的描述符相比,与第二关注点相关联的描述符和与第一关注点相关联的描述符最相似(例如,通过使用L2距离来确定),可以确定与输入图像102-1对应的第一关注点对应于与输入图像102-2对应的第二关注点。根据另一个示例,通过确定在与输入图像102-2对应的所有关注点之中,和与输入图像102-2对应的所有关注点相关联的描述符相比,与第二关注点相关联的描述符和与第一关注点相关联的描述符最相似,可以确定与输入图像102-1对应的第一关注点对应于与输入图像102-2对应的第二关注点。

图2示出神经网络100的一般架构。神经网络100可以包括关注点检测器子网络112和描述符子网络114,两个子网络中的每一个(分别)具有单个子网络输入120-1、120-2和(分别)具有单个子网络输出122-1、122-2。尽管分别示出了两个子网络,但是它们可以共享如参考图9所述的一个或多个卷积层和/或神经元。在一些实施例中,神经网络100可以包括被配置为接收输入图像102作为输入的网络输入116。输入图像102然后可以被馈送到子网络输入120-1、120-2。在子网络输入120-1处接收到输入图像102后,关注点检测器子网络112可以在子网络输出122-1处计算关注点108并输出所计算的关注点108,然后将其馈送到网络输出118-1中。在子网络输入120-2处接收到输入图像102时,描述符子网络114可在子网络输出122-2处计算描述符110并输出所计算的描述符110,然后将其馈送到网络输出118-2中。因此,子网络112、114可以基于相同的输入提供不同的输出,并表示神经网络100的不同分支。

神经网络100可以在完整尺寸的图像上操作,并且可以在单个前向传播中生成与固定长度的描述符伴随的关注点检测。在一些实施例中,输入图像102可以具有H×W的维度,其中H是输入图像102的以像素为单位的高度,并且W是输入图像102的以像素为单位的宽度。在相同的实施例中,所计算的关注点108可以是关注点像素位置的列表(例如,坐标对的列表),或者另外地或可替代地,所计算的关注点108可以是具有H×W的维度的2D地图,其中每个像素对应于输入(即,输入图像102)中该像素的概率“点”。在相同的实施例中,所计算的描述符110可以是一组固定长度的描述符,每个固定长度的描述符对应于所识别的关注点,或另外地或可替代地,所计算的描述符110可以具有H×W×D的维度,其中D是在H×W图像的每个像素处计算的描述符的长度。因此,即使具有包含关注点的低概率的像素也具有长度D的描述符。

可以通过网络修改器126和/或子网络修改器124-1、124-2实现神经网络100的训练,该网络修改器在训练阶段期间可能接收导致网络的层和/或神经元被修改的误差信号、损失信号和/或校正信号。可以修改神经网络100,使得在采用相同输入图像102或不同图像的后续运行期间,可以减少网络输出(所计算的关注点108和所计算的描述符110)与真实数据之间的误差。例如,可以基于指示在输出和真实之间的差异的误差信号/值,基于指示要被最小化的一些量的损失信号/值,和/或基于指示要对神经网络100进行的特定修改的校正信号来修改神经网络100。修改神经网络100可以包括仅修改关注点检测器子网络112,仅修改描述符子网络114,和/或修改子网络112、114两者。

图3示出第一训练步骤,其中使用包括一个或多个合成图像的合成数据集128来训练关注点检测器子网络112。图3中所示的训练步骤可能仅包括关注点检测器子网络112,并且可以忽略描述符子网络114。由于没有预先存在的被标记关注点的图像的大型数据库,因此深度关注点检测器受益于大规模合成数据集的创建,该大规模合成数据集经由四边形、三角形、直线和椭圆形的合成数据渲染由简化的2D几何形状组成。这些形状的示例参考图7示出。在该数据集中,可以通过采用简单的Y形交叉、L形交叉、T形交叉以及细椭圆的中心和线段的端点建模关注点来移除标签歧义。

一旦合成图像被渲染,就向每个图像施加单应性扭曲以增加训练示例的数量。数据可以实时生成,并且网络可以两次都看不到示例。在单次训练迭代期间,将合成图像130提供给关注点检测器子网络112,该关注点检测器子网络112计算一组所计算的关注点108。将与合成图像130对应的一组合成关注点132与所计算的关注点108进行比较,并且基于该比较计算损失134。然后基于损失134修改关注点检测器子网络112。执行多次训练迭代直到满足一个或多个条件,诸如损失134降至预定阈值以下和/或合成数据集128被详尽地使用。

与其它传统的拐角检测方法(诸如FAST、Harris拐角和Shi-Tomasi的“要跟踪的良好特征”)相比,关注点检测器子网络112在合成数据集128上产生了优异的结果。关注点检测器子网络的进一步评估包括使用人们可以容易地采用真实拐角位置标记的简单合成几何形状。在一项性能评估中,使用了关注点检测器子网络112的两种不同模型。两种模型都使用相同的编码器架构,但每层神经元的数量不同,第一模型每层具有64-64-64-64-128-128-128-128-128个神经元,而第二模型每层具有9-9-16-16-32-32-32-32-32个神经元。赋予每个检测器带有合成数据集128的评估数据集,以确定它们对简单拐角如何良好地定位。评估表明,关注点检测器子网络112在所有类别中比经典检测器执行得更好,其中经典检测器特别难以处理随机输入。

图4示出第二训练步骤,其中参考数据集144使用单应性自适应来编译。参考数据集144表示伪真实数据集,该伪真实数据集包括从未标记的数据集136获取的图像(包括例如真实世界图像),以及参考关注点和参考描述符。输入图像102取自未标记的数据集136并被提供给神经网络100,该神经网络100基于输入图像102计算一组所计算的关注点108和所计算的描述符110。数据可以作为参考集142存储在参考数据集144中,每个参考集142包括输入图像102、与输入图像102对应的所计算的关注点108,以及与输入图像102对应的所计算的描述符110。

在单次训练迭代期间,可以采用单应性自适应来使用跨输入图像102的大量单应性扭曲的平均响应。单应性生成器138可用于在将图像传播通过神经网络100之前向输入图像102应用一个或多个随机或伪随机单应性。在神经网络100的另一侧,逆单应性生成器140可用于将一个或多个逆单应性应用于所计算的关注点108,一个或多个逆单应性是一个或多个单应性的逆,以便解扭曲所计算的关注点108。对于相同的输入图像102,可以重复该过程以获得一个或多个解扭曲的所计算的关注点。可以对一个或多个解扭曲的所计算关注点进行聚合/组合以获得与输入图像102和作为参考集142的一部分的参考描述符一起存储在参考数据集中144中的一组参考关注点。

另外地或可替代地,可以采用单应性自适应来改善由神经网络100输出的描述符。例如,在单次训练迭代期间,单应性生成器138可以用于在将图像传播通过神经网络100之前向输入图像102应用一个或多个随机或伪随机单应性。在神经网络100的另一侧,逆单应性生成器140可用于将一个或多个逆单应性应用于所计算的描述符110,该一个或多个逆单应性是一个或多个单应性的逆,以便解扭曲所计算的描述符110。对于相同的输入图像102,可以重复该过程以获得一个或多个解扭曲的所计算描述符。可以对一个或多个解扭曲的所计算描述符进行聚合/组合以获得与输入图像102和作为参考集142的一部分的一组参考关注点一起存储在参考数据集144中的参考描述符。

单应性扭曲的数量N

当组合关注点响应地图或描述符地图时,区分尺度内聚合和跨尺度聚合可能是有益的。真实世界图像通常包含不同尺度的特征,因为在高分辨率图像中被认为很有趣的一些点在较粗糙较低分辨率的图像中通常甚至不可见。然而,在单尺度内,图像的变换(诸如旋转和平移)不应使关注点出现/消失。图像的该潜在的多尺度性质对于尺度内和跨尺度的聚合策略具有不同的含义。尺度内的聚合应类似于计算集合的交集,而跨尺度聚合应类似于集合的并集。跨尺度的平均响应也可以用作关注点置信度的多尺度度量。当关注点跨所有尺度可见时,跨尺度的平均响应最大化,并且这些点可能是跟踪应用程序最稳健的关注点。

当跨尺度进行聚合时,N

以下各段中描述对单应性自适应方法的理论支持。在一些实施例中,初始关注点函数由f

x=f

理想的关注点算子应该相对于单应性是协变的。如果输出随输入一起变换,则函数f

Hx=f

为了清楚起见,符号Hx表示单应性矩阵H被应用到所得的关注点,并且H(I)表示由单应性矩阵H扭曲的整个图像I。将与单应性相关的项向右移动会产生:

x=H

实际上,关注点检测器将不会是完美协变的,并且先前等式中的不同单应性将导致不同的关注点x。在一些实施例中,这通过对随机H的足够大的样本执行经验求和来解决。在样本上所得的聚合产生了优异的关注点检测器F(·),定义如下:

在一些实施例中,并非所有矩阵都产生好的结果不是由于缺乏技术能力,而是因为并非所有可能的随机单应性都表示合理的相机变换。在一些实施例中,通过使用截断正态分布在预定范围内进行平移、缩放、平面内旋转和对称透视失真的采样,将潜在的单应性分解为更简单的较少表达的变换类。这些变换与初始的根中心裁切一起组成,以帮助避免边缘伪像。

图5示出第三训练步骤,其中使用参考数据集144来训练神经网络100。在单次训练迭代期间,取得包含在参考数据集144中的单个参考集142。每个参考集142可以包括输入图像102、与输入图像102对应的一组参考关注点148,以及(可选地)与输入图像102对应的参考描述符150。使用一个或多个单应性生成器138,通过将单应性应用于输入图像102来生成扭曲的输入图像103,而一组扭矩的参考关注点149通过将相同的单应性应用于参考关注点148来生成。神经网络100-1依次或同时接收输入图像102,并基于输入图像102计算一组所计算的关注点108和所计算的描述符110,并且神经网络100-2接收变形的输入图像103,并基于扭曲的输入图像103计算一组所计算的扭曲的关注点109和所计算的扭曲的描述符111。

如在此所述的,可以基于所计算的关注点108、所计算的描述符110、所计算的扭曲的关注点109、所计算的扭曲的描述符111、参考关注点148、扭曲的参考关注点149和/或单应性H来计算损失L。然后可以基于损失L来修改神经网络100。基于损失L来修改神经网络100可以包括仅修改关注点检测器子网络112,仅修改描述符子网络114和/或修改子网络112、114二者。在一些实施例中,修改神经网络100,使得使用相同的参考集142减少损失L以用于随后的运行。执行多次训练迭代,直到满足一个或多个条件,诸如损失L下降到预定阈值以下,和/或参考数据集144被详尽地使用。

在一些实施例中,损失L是两个中间损失之和:一个用于关注点检测器,即L

L(X,X′,D,D′,Y,Y′,S)=L

其中X是所计算的关注点108(或与之相关),X'是所计算的扭曲的关注点109(或与之相关),Y是参考关注点148(或与之相关),Y'是扭曲的参考关注点149(或与之相关),D是所计算的描述符110(或与之相关),而D'是所计算的扭曲描述符111(或与之相关)。S是相似性得分矩阵,并且可以完全基于随机生成的单应性H来确定。如图5中所示,可以将单应性H或相似性得分矩阵S馈入损失计算器。

关注点检测器损失函数L

其中

将描述符损失应用于来自输入图像102的所有成对的描述符单元d

其中p

在一些实施例中,加权项λ

其中

l

图6示出使用神经网络100对两个捕获的图像154-1、154-2之间的单应性H的计算。所示的实施例可以对应于利用神经网络100的多个系统或设备,诸如光学设备,例如AR或混合现实(MR)设备、自动驾驶汽车、无人驾驶飞机、载人汽车、机器人等。

在使用在此描述的技术进行训练之后,神经网络100可以在运行时模式下操作,在该运行时模式下,从单个相机152或多个相机接收捕获的图像154-1、154-2。例如,可以从第一相机接收捕获的图像154-1,并且可以从第二相机接收捕获的图像154-2。所捕获的图像154-1、154-2可以由不同的相机同时或在不同的时间由不同的相机或单个相机捕获。神经网络100可以经由网络输入116接收捕获的图像154-1、154-2,并且可以基于捕获的图像154-1来计算一组所计算的关注点108-1和所计算的描述符110-1,以及基于捕获的图像154-2来计算一组所计算的关注点108-2和所计算的描述符110-2。

在一些实施例中,在确定单应性H之前,通过所计算的关注点108-1和108-2之间的比较来确定点对应关系106,该比较由与关注点中的每个关注点相关联的描述符告知。例如,可以匹配与不同关注点相关联的描述符。根据几种可能的相似性评分过程中的一个,可以确定与具有最相似的描述符的不同图像对应的关注点彼此相对应。可以根据点对应关系106来计算单应性H。例如,可以基于点对应关系106来计算捕获图像154-1、154-2之间的相对姿态,并且可以将单应性H计算为表示相机的旋转和相关姿态的平移的矩阵。另外地或可替代地,相关姿态可以等于单应性H。

图7示出合成数据集128的示例。在一些实施例中,合成数据集128可以包含一个或多个形状,该形状代表具有相对明确定义的关注点的多种形状类型,诸如圆形、三角形、四边形(例如,正方形、矩形、菱形、平行四边形等)、五边形、六边形、星形、立方体、球体、椭圆形、圆柱体、圆锥体、棱柱、金字塔、直线等。

图8示出未标记的数据集136的示例。未标记的数据集136可以包含具有变化的照明、噪声、相机效果等的真实世界的图像。与合成图像相比,真实图像更加杂乱和嘈杂,并且包含无法在合成世界中轻松建模的各种视觉效果。

图9示出神经网络100的示例架构。在示出的实施例中,神经网络100包括单个共享编码器,该编码器处理并减少输入图像的维度。在一些实施例中,一旦由编码器处理,该架构就分为两个解码器“头”,它们学习任务特定的权重,一个用于关注点检测,而另一个用于关注点描述。

在一些实施例中,神经网络100使用VGG样式的编码器来减少图像的维度。编码器由卷积层、经由池化操作空间下采样以及非线性激活函数组成。在一些实施例中,编码器是三个最大池化层,其针对维度为H×W的图像I定义了H

在一些情况下,用于密集预测的网络设计可能涉及编码器/解码器对,其中空间分辨率经由池化或跨步卷积降低,并且然后经由上卷积操作被上采样回到全分辨率。不幸的是,上采样层趋向于增加大量的计算并且可能引入不想要的棋盘伪像,因此对于本文公开的一些实施例,关注点检测解码器头利用显式解码器来减少模型的计算。在一些实施例中,关注点检测器头计算值X∈R

描述符头计算D∈R

在一些实施例中,编码器是具有大小为64-64-64-64-128-128-128-128的八个3×3卷积层的类似于VGG的架构。每两层存在一个2×2的最大池化层。每个解码器头具有256个单元的单个3×3卷积层,之后是1×1卷积层,该1×1卷积层具有分别用于关注点检测器和描述符的65个单元和256个单元。网络中的所有卷积层都可以跟随有ReLU非线性激活和BatchNorm归一化。

图10示出在第二训练步骤(参考图4描述)期间采用的单应性自适应的各个步骤。在步骤1002处,从未标记的数据集136获取未标记的图像(例如,输入图像102)。在步骤1004处,在单应性生成器138处采样多个随机单应性。在步骤1006处,将随机单应性应用于未标记的图像,生成多个扭曲的图像。在步骤1008处,使扭曲图像传播通过关注点检测器子网络112。在步骤1010处,由关注点检测器子网络112计算多个点响应(例如,多组所计算的关注点108)。在步骤1012处,通过将多个逆单应性(由逆单应性生成器140生成)应用于点响应,从而生成多个解扭曲的热图,而使点响应(即,热图)解扭曲。在步骤1014处,解扭曲的热图通过各种可用技术中的一种技术,通过例如平均、求和或组合来聚合。

图11示出随机单应性生成的某些方面。为了生成随机的现实单应性变换,可以将单应性分解为更简单的变换,诸如平移、缩放、旋转和对称透视失真。为了帮助避免在样本区域包含原始图像之外的像素时发生的边界伪像,随机单应性从中心裁切开始,如图11所示。简单变换的变换幅度是随机的高斯分布和均匀分布。为了生成最终的单应性变换,连续应用随机采样的简单变换以获得最终的单应性。

图12示出可以利用在此描述的实施例的AR设备1200的示意图。AR设备1200可以包括左目镜1202A和右目镜1202B。在一些实施例中,AR设备1200包括一个或多个传感器,传感器包括但不限于:直接附接到左目镜1202A或附近的面向左前的世界相机1206A、直接附接到右目镜1202B或附近的面向右前的世界相机1206B、直接附接到左目镜1202A或附近的面向左侧的世界相机1206C、直接附接到右目镜1202B或附近的面向右侧的世界相机1206D、定位为观察用户的左眼的左眼跟踪器、定位为观察用户的右眼的右眼跟踪器,以及环境光传感器等。在一些实施例中,AR设备1200包括一个或多个图像投影设备,诸如光学地链接到左目镜1202A的左投影仪1214A和光学地链接到右目镜1202B的右投影仪1214B。

AR设备1200的一些或全部组件可以被头戴,使得投影的图像可以被用户观看。在一个特定的实现方式中,图12中所示的AR设备1200的所有组件都安装到用户可佩戴的单个设备(例如,单个头戴式耳机)上。在另一实现方式中,处理模块1250的一个或多个组件通过一个或多个有线和/或无线连接与AR设备1200的其它组件在物理上分离并且通信耦合到AR设备1200的其它组件。例如,处理模块1250可以包括在AR设备1200的头戴式部分上的本地模块1252,以及与本地模块1252在物理上分离并且通信地链接到本地模块1252的远程模块1256。远程模块1256可以以各种配置安装,诸如固定地附接到框架,固定地附接到用户佩戴的头盔或帽子,嵌入耳机中,或以其它方式可拆卸地附接到用户(例如,以背包式装置、以皮带耦接式装置等)。

处理模块1250可以包括处理器和相关联的数字存储器,诸如非易失性存储器(例如,闪存),二者都可以用于辅助数据的处理、缓存和存储。数据可包括从传感器(其可以例如可操作地耦合到AR设备1200)捕获的数据或以其它方式附接到用户的数据,诸如相机1206、环境光传感器、眼球跟踪器、麦克风、惯性测量单元、加速度计、指南针、GPS单元、无线电设备和/或陀螺仪。例如,处理模块1250可以从相机1206接收图像1220。具体地,处理模块1250可以接收来自面向左前的世界相机1206A的左前图像1220A、来自面向右前的世界相机1206B的右前图像1220B、来自面向左侧的世界相机1206C的左侧图像1220C,以及来自面向右侧的世界相机1206D的右侧图像1220D。在一些实施例中,图像1220可以包括单个图像、一对图像、包括图像流的视频、包括成对图像流的视频等。图像1220可以在AR设备1200通电时被周期性地生成并发送到处理模块1250,或者可以响应于由处理模块1250发送给一个或多个相机的指令而生成。作为另一个示例,处理模块1250可以从环境光传感器接收环境光信息。作为另一个示例,处理模块1250可以从眼球跟踪器接收凝视信息。作为另一个示例,处理模块1250可以从一个或两个投影仪1214接收图像信息(例如,图像亮度值)。

目镜1202A、1202B可以包括透明或半透明的波导,该波导被配置为分别引导和出耦合来自投影仪1214A、1214B的光。具体地,处理模块1250可以使左投影仪1214A将左虚拟图像光1222A输出到左目镜1202A上,并且可以使右投影仪1214B将右虚拟图像光1222B输出到右目镜1202B上。在一些实施例中,目镜1202中的每一个目镜可包括与不同颜色和/或不同深度平面对应的一个或多个波导。相机1206A、1206B可以被定位成捕获分别与用户的左眼和右眼的视野基本上重叠的图像。因此,相机1206的放置可以在用户的眼睛附近,但不能如此近而使用户的视野模糊。可替代地或另外地,相机1206A、1206B可以被定位成分别与虚拟图像光1222A、1222B的入耦合位置对准。相机1206C、1206D可以被定位成例如在用户的外围视觉中或在用户的外围视觉之外将图像捕获到用户的侧面。使用相机1206C、1206D捕获的图像1220C、1220D不必与使用相机1206A、1206B捕获的图像1220A、1220B重叠。

图13示出训练神经网络100并使用神经网络100执行图像关注点检测和描述的方法1300。方法1300的一个或多个步骤可以以与所示出的实施例中所示的顺序不同的顺序来执行,并且在执行方法1300期间可以省略方法1300的一个或多个步骤。

在步骤1302处,训练神经网络100。在步骤1302-1处,使用合成数据集128来训练神经网络100的关注点检测器子网络112。合成数据集128可以包括一个或多个合成图像以及与一个或多个合成图像对应的一组或多组合成关注点。参考图3进一步描述步骤1302-1。

在步骤1302-2处,使用关注点检测器子网络112和/或描述符子网络114来生成参考数据集144。在一些实施例中,使用单应性自适应来生成参考数据集144,其中通过将一个或多个单应性应用于输入图像102来生成一个或多个扭曲图像,并且通过将一个或多个扭曲图像传播通过关注点检测器子网络112来计算一组或多组所计算的关注点108。然后使一组或多组所计算的关注点108解扭曲和聚合以获得存储在参考数据集144中的一组参考关注点。另外地或可替代地,通过将一个或多个扭曲图像传播通过描述符子网络114来计算一个或多个所计算的描述符110。然后使一个或多个所计算的描述符110解扭曲和聚合以获得存储在参考数据集144中的参考描述符。参考图4进一步描述步骤1302-2。

在步骤1302-3处,使用参考数据集144同时训练关注点检测器子网络112和描述符子网络114。在单次训练迭代期间,包括输入图像102、参考关注点148和(可选地)参考描述符150的参考集142从参考数据集144取得,并且用于计算损失L。可以基于所计算的损失L来修改关注点检测器子网络112和描述符子网络114中的一个或二者。参考图5进一步描述步骤1302-3。

在步骤1304处,使用神经网络100执行图像关注点检测和描述。在一些实施例中,使用相机152或两个不同相机捕获第一捕获图像154-1和第二捕获图像154-2。捕获的图像154-1、154-2然后可以传播通过神经网络100。所计算的关注点108-1、108-2和所计算的描述符110-1、110-2可以用于计算单应性H。在一些实施例中,AR设备1200可以基于单应性H来调节虚拟图像光1222A、1222B中的一个或二者。例如,当AR设备1200的用户在观看由用户观看由投影仪1214A、1214B投影到目镜1202A、1202B上的虚拟图像光1222A、1222B所感知的虚拟内容的同时转动他/她的头部时,将需要基于与新视角相关联的单应性H来调节虚拟光。参考图6进一步描述步骤1304。

图14示出训练用于图像关注点检测和描述的神经网络100的方法1400。可以以与所示的实施例中示出的顺序不同的顺序来执行方法1400的一个或多个步骤,并且在方法1400的执行期间可以省略方法1400的一个或多个步骤。

在步骤1402处,通过将单应性应用于输入图像102来生成扭曲的输入图像103。在步骤1404处,通过将单应性应用于参考关注点148来生成扭曲的参考关注点149。在步骤1406处,通过神经网络100接收输入图像102作为输入来计算所计算的关注点108和所计算的描述符110。在步骤1408处,通过神经网络100接收扭曲的输入图像103作为输入来计算所计算的扭曲关注点109和所计算的扭曲描述符111。

在步骤1410处,基于所计算的关注点108、所计算的描述符110、所计算的扭曲关注点109、所计算的扭曲描述符111、参考关注点148、扭曲的参考关注点149和单应性中的一个或多个来计算损失L。在一些实施例中,基于单应性进一步计算损失L。在步骤1412处,基于损失L修改神经网络100。

如在此所述,可以使用参考数据集144来训练神经网络100以改善其性能。例如,参考数据集144可以包括从未标记的数据集136获取的图像(包括例如真实世界图像),以及参考关注点和参考描述符。例如,参考图4,输入图像102可以取自未标记的数据集136,并且可以被提供给神经网络100,该神经网络100基于输入图像102来计算所计算的关注点108(例如,一个或多个关注点)和所计算的描述符110。数据可以被存储在参考数据集144中作为参考集142,每个参考集142包括输入图像102、与输入图像102对应的所计算的关注点108,以及与输入图像102对应的所计算的描述符110。在一些实施例中,可以将某些数据选择性地存储在参考数据集144(例如,更适合于训练神经网络100的数据)中,而某些其它数据可以从参考数据集144中选择性地省略(例如,不太适合于训练神经网络100的数据)。例如,这在提高训练过程的能力以区分图像中更适合与视觉测程法结合使用的关注点和图像中不太适合与视觉测程法结合使用的关注点上可能是有益的。

在一些实施例中,可以基于每个输入图像102内所计算的关注点108的估计稳定性来选择数据以包括在参考数据集中144中。作为示例,神经网络100可以针对输入图像102内的每个所计算的关注点108来计算指示可以稳定地跟踪(例如,跨序列中的一个或多个图像)所计算的关注点108的程度的稳定性度量。具有稳定(例如,具有足够高的稳定性度量)的所计算的关注点108的输入图像102可以被包括在参考数据集144中(例如,以提高神经网络100识别图像内更适合与视觉测程法结合使用的关注点的能力)。具有不稳定(例如,具有足够低的稳定性度量)的所计算的关注点108的输入图像102也可以被包括在参考数据集144中(例如,以提高神经网络100识别图像内不太适合与视觉测程法结合使用的关注点的能力)。可以从参考数据集144中排除具有既不稳定也不不稳定(例如,具有既不足够高也不足够低的稳定性度量)的所计算的关注点108的输入图像102。这例如可能是有益的,因为它排除了可能不太适合训练神经网络100的模棱两可的数据(例如,既不提供稳定关注点的清晰示例,也没有提供不稳定关注点的清晰示例的数据)。

图15示出用于基于检测的关注点的估计稳定性来训练神经网络的示例过程的概述。一旦被训练,神经网络可用于基于一个或多个输入图像执行视觉测程法。在一些实施例中,神经网络可用于跟踪头戴式显示系统在头戴式显示系统环境内的的取向和位置(例如,以促进虚拟现实或增强现实图像的呈现)。在一些实施例中,神经网络可以被实现为头戴式显示系统的一部分。在一些实施例中,可以使用远离头戴式显示系统的一个或多个计算机系统(例如,诸如“云”计算系统的远程服务器)来实现神经网络。

如图15中所示,获得单眼图像1500。可以从一组顺序捕获的图像(例如,来自视频序列的帧)中获得至少一些单眼图像1500。单眼图像1500被输入到卷积前端1502中,该卷积前端1502识别图像中的一个或多个点对应关系(例如,“点轨迹”示出跨不同图像的关注点或“关键点”之间的对应关系)。可以使用在此描述的一种或多种技术来确定点对应关系。此外,卷积前端1502针对每个关注点计算各种度量,包括稳定性、(例如,在二维空间中的)位置和描述符。

该信息被输入到视觉测程法后端1504。视觉测程法后端1504估计关注点中的每个关注点在三维空间中的位置。此外,视觉测程法后端1504例如在三维空间中针对每个关注点计算稳定性度量。作为示例,视觉测程法后端1504可以将每个关注点归类为“稳定”(例如,可以用于训练神经网络以识别更适合与视觉测程法结合使用的关注点的关注点)、“不稳定”(例如,可以用于训练神经网络以识别不太适合与视觉测程法结合使用的关注点的关注点)或“忽略”(例如,可以从训练过程中排除的关注点)。“稳定”和“不稳定”关注点(及其关联的点对应关系和描述符)被用作监督信号以训练卷积前端(例如,根据自监督过程1606)。

关注点的稳定性(例如,由关于图9描述的关注点检测解码器头输出的关注点)可以由稳定性分类器头来确定。在一些实施例中,稳定性分类器头可以确定稳定性度量

一旦被训练,神经网络(例如,图4的神经网络100)可以用于形成用于图像序列的稀疏光流轨迹。在一些实施例中,这可以通过使用“将点连接”算法将连续的图像对中的点和描述符相关联来执行。例如,给定一组单眼图像I=[I

为了跨一对图像I

一旦建立了轨迹集,神经网络便可以将序列中的每个轨迹视为单个3D点,并使用该轨迹共同估计3D场景结构和相机姿态。

神经网络使用其自己的输出,结合多视图几何形状来创建监督训练数据集。特别地,可以利用单眼视频的时间方面和真实世界的最刚性性质来实现对真实世界的非平面性的不变性。该方法可以称为“视觉测程法(VO)自适应”。VO自适应利用VO来标记可以随时间推移稳定跟踪的点,并使用稳定的轨迹来学习许多视图上的关键点对应关系。可以至少部分地使用在此描述的技术来执行VO自适应。

在N个图像的单眼序列中,第i个相机的一组相机姿态由其旋转和平移(R

对于具有M个3D点并重投影到一些或全部N个图像中的场景,每个点都由X

相机内部参数K是由焦距f

U是一组2D点观察,是N个矩阵的集合,每个图像一个。U=[U

W是一组观察置信度权重。观察置信度权重在优化期间使用,以使更多置信度观察优先于不太可信的置信度观察。每个图像都有一组关联的标量权重W=[W

A是一组3D到2D关联轨迹。因为由于移动相机和场景遮挡,无法在每一帧中观察到稀疏3D地图中的每个3D点X

神经网络可以采用针孔相机模型进行相机投影,该模型解释了在给定相机姿态和相机内部参数情况下,如何将3D世界点投影到2D图像中。

令X

上式中的~表示射影相等。为了简化计算,神经网络可以使用R

为了测量估计的相机姿态和3D点的质量,神经网络可以测量每个3D点在每个相机中的重投影。第i个图像中第j个3D点的平方重投影误差e

神经网络可以采用深度正则化函数d(Z′

dd(Z′

神经网络可以采用来自前一帧(R

最终的束调节目标是重投影误差函数

在一些实施例中,可以在最近的N

一旦针对给定序列完成VO,将使用每个3D点的观察次数和重投影误差来标记稳定性。如果在相当长的时间内跟踪一个点,则可以使用其重投影误差将其分类为“稳定”与“不稳定”。

例如,令T

换句话说,稳定点是已经跟踪了至少预定数量的帧(例如,十个帧)并且具有小于预定数量的像素(例如,一个像素)的平均重投影误差的那些点。不稳定点是已经被跟踪至少预定数量的帧(例如,十个帧)并且具有大于预定数量的像素(例如,五个像素)的最大重投影误差的那些点。在训练期间,不满足这两个约束条件的点将被忽略,网络可以决定将它们视为稳定、不稳定还是均不选择。

自标记过程发现不稳定区域,诸如跨深度不连续的t形交叉,阴影和高光上的特征,以及诸如人的动态对象等。

尽管上面描述了示例阈值,但是实际上可以取决于实现方式使用其它阈值。例如,可以基于除了10之外的不同阈值数量的帧(例如5、15、20、25或一些其它数量的帧)来确定稳定点和/或不稳定点。作为另一个示例,可以基于不同于1的不同阈值误差值(例如,0.1、0.5、1.5或某个其它误差值)来确定稳定点。作为另一个示例,可以基于不同于5的不同阈值误差值(例如,2、3、4或某个其它误差值)来确定稳定点。在一些实施例中,阈值可以凭经验确定(例如,基于对样本数据进行的实验)。

在一些实施例中,可以使用Siamese训练技术来训练神经网络。例如,可以使用Siamese度量学习来训练描述符,并且可以使用softmax+交叉熵损失来训练关键点检测器。可以从+/-预定数量的帧(例如60帧)的时间窗口中随机采样该对,从而得到具有预定秒数(例如,大约4秒)的最大时间窗口的对。损失函数还可以包含“忽略类”,该类用于未知的对应关系和未知的2D点位置。

为了训练稳定性分类器,神经网络可以对表示稳定性损失的的最终损失

Siamese训练过程的示意性示例在图16中示出。获得图像的标记序列1602(例如,包括标记的关注点和描述符)。从标记的序列中选择随机的附近图像对,并在用于训练在此所述的网络任务(例如,视觉测程任务1604)之前,通过随机单应性(例如,H

图17示出使用在此描述的技术标记关注点的示例。每列示出用VO标记的五个图案示例,该图案由于五种不同的效果而具有较低的稳定性。(a)行示出卷积前端的稀疏点轨迹。(b)行示出计算的VO后端相机姿态轨迹和稀疏3D地图的投影开销。(c)行示出重投影误差残差图像(误差的大小根据(c)行中的颜色条进行了颜色编码。(d)行示出具有稳定性标签的经标记的点轨迹(较亮的菱形=稳定,中等菱形=不稳定,较深的菱形=忽略,带圆圈的中等菱形=不稳定点的特征示例)。

图18示出用于训练用于执行视觉测程法的神经网络的示例方法1800。可以执行在此描述的技术和/或系统中的一种或多种的方法1800。作为示例,方法1800可以至少部分地由神经网络100执行并且可以使用一个或多个计算机系统来实现。

根据方法1800,神经网络接收环境的多个图像(步骤1802)。在一些实施例中,多个图像包括从视频序列提取的二维图像。在一些实施例中,多个图像对应于视频序列的非连续帧。

神经网络针对每个图像确定相应的一组关注点和相应的描述符(步骤1804)。可以使用在此描述的一种或多种技术来确定关注点。例如,关注点可以由关于图9描述的关注点检测解码器头来确定。

神经网络基于多个图像的多组关注点和描述符来确定多个图像之间的对应关系(步骤1806)。在一些实施例中,确定对应关系包括确定多组关注点之间的一个或多个点对应关系,其中每个点对应关系指示一个图像的关注点与另一图像的关注点之间的相应对应关系。在一些实施例中,确定对应关系进一步包括基于一个或多个点对应关系,确定一组候选关注点。每个候选关注点可以指示3D空间的环境中的相应特征。

神经网络针对每个候选关注点确定相应的稳定性度量(步骤1808)。

在一些实施例中,针对每个候选关注点确定相应的稳定性度量包括确定第一候选关注点是稳定的。可以基于该确定来修改神经网络。例如,响应于确定第一候选关注点是稳定的,神经网络可以从多个图像中选择第一候选关注点和第一对图像来训练神经网络,该第一对图像描绘了环境中的第一候选关注点。

在一些实施例中,神经网络可以通过确定在超过第一阈值数量的多个图像的若干图像中描绘第一候选关注点并且确定与第一候选关注点相关联的重投影误差小于第一阈值误差级别,来确定第一候选关注点是稳定的。

在一些实施例中,针对每个候选关注点确定相应的稳定性度量包括确定第二候选关注点是稳定的。可以基于该确定来修改神经网络。例如,响应于确定第二候选关注点是稳定的,神经网络可以从多个图像中选择第二候选关注点和第二对图像以训练神经网络,该第二对图像描绘了环境中的第二候选关注点。

在一些实施例中,神经网络可以通过确定在超过第二阈值数量的多个图像的若干图像中描绘第二候选关注点并且通过确定与第二候选关注点相关联的重投影误差大于第二阈值误差级别,来确定第二候选关注点是不稳定的。在一些实施例中,第一阈值数量可以等于第二阈值数量。在一些实施例中,第一阈值误差级别可以小于第二阈值误差级别。

在一些实施例中,针对每个候选关注点确定相应的稳定性度量包括确定要从神经网络的训练中省略第三候选关注点。在一些实施例中,神经网络可以通过确定(i)在小于第三阈值数量的多个图像中的若干图像中描绘第三候选关注点和/或(ii)确定与第三候选关注点相关联的重投影误差在第一阈值误差级别和第二阈值误差级别之间,来确定要从神经网络的训练中省略第三候选关注点。在一些实施例中,第三阈值数量可以等于第一阈值数量。

基于一个或多个候选关注点来修改神经网络(步骤1810)。例如,可以基于候选关注点中的至少一些候选关注点,取决于它们相应的稳定性度量来训练神经网络。例如,候选关注点中的至少一些候选关注点(例如,稳定和不稳定的关注点)可用于训练神经网络,以区分图像中更适合与视觉测程法结合使用的关注点和图像中不太适合与视觉测程法结合使用的关注点。从训练过程中可以忽略其它关注点。

在一些实施例中,在修改神经网络之后,神经网络可以从头戴式显示设备接收第二环境的第二多个图像。此外,神经网络可以识别第二组关注点,并且基于第二多个图像和第二组关注点相对于第二环境执行视觉测程法。相对于第二环境执行视觉测程法可以包括使用第二组关注点作为界标来确定头戴式显示设备的位置和取向。

图19示出根据在此所述的一些实施例的简化的计算机系统1900。图19提供了可以执行由各种实施例提供的方法的一些或全部步骤的计算机系统1900的一个示例的示意图。应该注意,图19仅意在提供可以适当地利用它们中的任何一个或全部的各种组件的一般性图示。因此,图19广泛地示出了可以如何以相对分离或相对更集成的方式来实现各个系统元件。

示出了计算机系统1900,其包括可以经由总线1905电耦合或者可以适当地以其它方式通信的硬件元件。硬件元件可以包括一个或多个处理器1910,包括但不限于一个或多个通用处理器和/或一个或多个专用处理器,诸如数字信号处理芯片、图形加速处理器等;一个或多个输入设备1915,其可以包括但不限于鼠标、键盘、相机等;以及一个或多个输出设备1920,其可以包括但不限于显示设备、打印机等。

计算机系统1900可以进一步包括一个或多个非暂态存储设备1925和/或与之通信,其可以包括但不限于本地和/或网络可访问的存储装置,和/或可以包括但不限于,磁盘驱动器、驱动器阵列、光学存储设备、固态存储设备(诸如随机存取存储器(“RAM”)和/或只读存储器(“ROM”)),它们是可编程的、闪存可更新等。这种存储设备可以被配置为实现任何适当的数据存储,包括但不限于各种文件系统、数据库结构等。

计算机系统1900还可能包括通信子系统1819,该通信子系统1819可以包括但不限于调制解调器、网卡(无线或有线)、红外通信设备、无线通信设备和/或诸如蓝牙设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设施等的芯片组等等。通信子系统1919可以包括一个或多个输入和/或输出通信接口,以允许与诸如仅举一例在以下描述的网络的网络、其它计算机系统、电视和/或在此描述的任何其它设备交换数据。取决于所需的功能和/或其它实现方式,便携式电子设备或类似设备可以经由通信子系统1919通信图像和/或其它信息。在其它实施例中,便携式电子设备(例如第一电子设备)可以并入计算机系统1900(例如电子设备)中作为输入设备1915。在一些实施例中,计算机系统1900将进一步包括工作存储器1935,该工作存储器1935可以包括如上所述的RAM或ROM设备。

计算机系统1900还可以包括示为当前位于工作存储器1935内的软件元素,包括操作系统1940、设备驱动器、可执行库和/或其它代码,诸如一个或多个应用程序1945,如在此所述,其可以包括由各种实施例提供的计算机程序,和/或可以被设计为实现由其它实施例提供的方法和/或配置系统。仅作为示例,关于以上讨论的方法描述的一个或多个过程可以被实现为可由计算机和/或计算机内的处理器执行的代码和/或指令;因此,一方面,根据所描述的方法,这种代码和/或指令可以用于配置和/或适配通用计算机或其它设备以执行一个或多个操作。

一组这些指令和/或代码可以存储在非暂态计算机可读存储介质上,诸如上述的存储设备1925。在一些情况下,存储介质可能被并入计算机系统(诸如计算机系统1900)内。在其它实施例中,存储介质可能与计算机系统分离(例如可移动介质(诸如光盘)),和/或以安装包的形式提供,使得该存储介质可以采用其上存储的指令/代码对通用计算机进行编程、配置和/或适配。这些指令可能采取可以由计算机系统1900执行的可执行代码的形式,和/或可能采取源代码和/或可安装代码的形式,该源代码和/或可安装代码例如使用各种通常可用的编译器、安装程序、压缩/解压缩实用程序等中的任何一种,在计算机系统1900上进行编译和/或安装时,采取可执行代码的形式。

对于本领域技术人员显而易见的是,可以根据特定要求做出实质性的变化。例如,也可能使用定制的硬件,和/或可以在硬件、包括便携式软件(诸如小应用程序等)的软件,或二者中实现特定元件。此外,可以采用到诸如网络输入/输出设备的其它计算设备的连接。

如上所述,在一方面,一些实施例可以采用诸如计算机系统1900的计算机系统来执行根据本技术的各种实施例的方法。根据一组实施例,由计算机系统1900响应于处理器1910执行一个或多个指令的一个或多个序列来执行这种方法的一些或全部过程,该一个或多个指令可以被并入操作系统1940和/或工作存储器1935中包含的其它代码,诸如应用程序1945。这种指令可以从另一计算机可读介质(诸如一个或多个存储设备1925)读入工作存储器1935。仅作为示例,包含在工作存储器1935中的指令序列的执行可能使处理器1910执行在此所述方法的一个或多个过程。另外地或可替代地,在此描述的方法的部分可以通过专用硬件来执行。

如在此所使用的,术语“机器可读介质”和“计算机可读介质”是指参与提供使机器以特定方式操作的数据的任何介质。在使用计算机系统1800实现的实施例中,各种计算机可读介质可涉及向处理器1910提供指令/代码以供执行和/或可能用于存储和/或携带这种指令/代码。在许多实现方式中,计算机可读介质是物理和/或有形存储介质。这种介质可以采取非易失性介质或易失性介质的形式。非易失性介质包括例如光盘和/或磁盘,诸如存储设备1925。易失性介质包括但不限于动态存储器,诸如工作存储器1935。

物理和/或有形计算机可读介质的常见形式包括,例如,软盘、柔性盘、硬盘、磁带或任何其它磁性介质、CD-ROM、任何其它光学介质、打孔卡、纸带、带孔图案的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储器芯片或盒式磁带或计算机可以从中读取指令和/或代码的任何其它介质。

各种形式的计算机可读介质可涉及将一个或多个指令的一个或多个序列携载给处理器1910以执行。仅作为示例,指令可以最初承载在远程计算机的磁盘和/或光盘上。远程计算机可能将指令加载到其动态存储器中,并通过传输介质将指令作为信号发送,以由计算机系统1900接收和/或执行。

通信子系统1919和/或其组件通常将接收信号,并且然后总线1905可能将信号和/或信号所承载的数据、指令等传输到工作存储器1935,处理器1910从该工作存储器1935取得并执行指令。由工作存储器1935接收的指令可以可选地在由处理器1910执行之前或之后被存储在非暂态存储设备1925上。

上面讨论的方法、系统和设备是示例。各种配置可以适当地省略、替代或添加各种过程或组件。例如,在替代配置中,可以以与所描述的顺序不同的顺序执行方法,和/或可以添加、省略和/或组合各个阶段。此外,关于某些配置描述的特征可以在各种其它配置中组合。可以以类似的方式组合配置的不同方面和元素。此外,技术在发展并且因此许多元件是示例,并且不限制本公开或权利要求的范围。

在说明书中给出了具体细节,以提供对包括实现方式的示例性配置的透彻理解。然而,可以在没有这些具体细节的情况下实践配置。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以便避免使配置模糊。该描述仅提供示例配置,并且不限制权利要求的范围、适用性或配置。相反,配置的先前描述将向本领域技术人员提供用于实现所描述的技术的实现描述。在不脱离本公开的精神或范围的情况下,可以对元件的功能和布置进行各种改变。

此外,可以将配置描述为被描绘为示意性流程图或框图的过程。尽管每个操作都可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新排列操作的顺序。一个过程可能具有图中未包括的附加步骤。此外,可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现方法的示例。当以软件、固件、中间件或微代码实现时,用于执行必要任务的程序代码或代码段可以存储在诸如存储介质的非暂态计算机可读介质中。处理器可以执行所描述的任务。

已经描述了几种示例配置,在不脱离本公开的精神的情况下,可以使用各种修改、替代构造和等同形式。例如,以上元件可以是较大系统的组件,其中其它规则可以优先于或以其它方式修改技术的应用。同样,在考虑以上元件之前、期间或之后可以采取许多步骤。因此,以上描述不限制权利要求的范围。

如在此和所附权利要求书中所使用的,单数形式“一”、“一个”和“该”包括复数引用,除非上下文另外明确指出。因此,例如,对“用户”的引用包括一个或多个这种用户,而对“处理器”的引用包括对本领域技术人员已知的一个或多个处理器及其等同物等。

此外,当在本说明书和所附权利要求书中使用时,词语“包括了”、“包括”、“包含了”、“包含”、“具有”、“拥有”和“带有”旨在指定所陈述的特征、整数、组件或步骤的存在,但是它们不排除一个或多个其它特征、整数、组件、步骤、行为或组的存在或添加。

还应理解,在此描述的示例和实施例仅用于说明性目的,并且鉴于其的各种修改或改变将被建议给本领域技术人员,并且将被包括在本申请的精神和范围内以及所附权利要求的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号