经由单应性变换适应的全卷积兴趣点检测和描述的制作方法

文档序号:21279911发布日期:2020-06-26 23:32阅读:191来源:国知局
经由单应性变换适应的全卷积兴趣点检测和描述的制作方法

相关申请相互参考

本申请主张2017年11月14日提交的序列号为62/586,149的,题为“fullyconvolutionalinterestpointdetectionanddescriptionviahomographicadaptation(经由单应性变换适应的全卷积兴趣点检测和描述)”的美国临时专利,以及2017年12月20日提交的序列号为62/608,248的“fullyconvolutionalinterestpointdetectionanddescriptionviahomographicadaptation(经由单应性变换适应的全卷积兴趣点检测和描述)”的美国临时专利申请的优先权益,如本文全面阐述的,这两个申请的全部公开内容为了所有目在此通过引用并入。



背景技术:

兴趣点检测是计算机视觉中的重要概念。诸如姿态估计、即时定位与地图构建(slam)、动态结构、稀疏三维(3d)图、相机校准和图像匹配之类的许多几何计算机视觉任务中的第一步是从图像中提取兴趣点。兴趣点是图像中的二维(2d)位置,根据不同的光照条件和视点这些位置稳定且可重复。数学和计算机视觉的整个子领域(称为多视图几何)包括定理和算法,这些定理和算法建立在能够可靠地提取点并在图像间进行匹配的假设上。但是,大多数真实世界计算机视觉系统的输入不是理想化的点位置,而是原始、未标记图像。已经开发出若干方法来检测这种图像中的兴趣点,但仅获得有限的成功。

尽管在这些领域中取得了进步,但是在本领域仍需要与图像兴趣点检测相关的改进的方法、系统和设备。



技术实现要素:

本公开一般地涉及兴趣点检测和匹配的计算机视觉任务。更具体地,本公开的实施例提供了用于使用神经网络进行图像兴趣点检测和描述的系统、设备和方法。尽管参考增强现实(ar)设备描述了本公开的多个部分,但是本公开也可应用于计算机视觉和图像显示系统中的各种应用。

根据本发明的第一方面,提供了一种训练用于图像兴趣点检测和描述的神经网络的方法。所述方法可以包括生成包括多个参考集的参考数据集,其中所述多个参考集中的每一者包括图像;以及与所述图像相对应的参考兴趣点集。所述方法还可以包括对于所述多个参考集中的每个参考集进行的以下操作:通过将单应性变换应用于所述图像,生成扭曲图像;通过将所述单应性变换应用于所述参考兴趣点集,生成扭曲参考兴趣点集;通过所述神经网络接收所述图像作为输入,计算一计算兴趣点集和计算描述符;通过所述神经网络接收所述扭曲图像作为输入,计算一计算扭曲兴趣点集和计算扭曲描述符;基于所述计算兴趣点集、所述计算描述符、所述计算扭曲兴趣点集、所述计算扭曲描述符、所述参考兴趣点集、所述扭曲参考兴趣点集、和所述单应性变换来计算损失;以及基于所述损失来修改所述神经网络。

在一些实施例中,所述神经网络包括兴趣点检测器子网络描述符子网络。在一些实施例中,所述兴趣点检测器子网络被配置为接收所述图像作为输入,并基于所述图像计算所述计算兴趣点集。在一些实施例中,所述描述符子网络被配置为接收所述图像作为输入,并基于所述图像计算所述计算描述符。在一些实施例中,基于所述损失来修改所述神经网络包括:基于所述损失来修改所述兴趣点检测器子网络和所述描述符子网络中的一者或两者。在一些实施例中,所述方法包括在生成所述参考数据集之前,使用包括多个合成图像和多个合成兴趣点集的合成数据集来训练所述兴趣点检测器子网络。在一些实施例中,生成所述参考数据集包括使用所述兴趣点检测器子网络来生成所述参考数据集。

在一些实施例中,生成所述参考数据集包括对于所述多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得所述图像;通过将多个单应性变换应用于所述图像,生成多个扭曲图像;通过所述神经网络接收所述多个扭曲图像作为输入,计算多个计算扭曲兴趣点集;通过将多个逆单应性变换应用于所述多个计算扭曲兴趣点集,生成多个计算兴趣点集;以及聚合所述多个计算兴趣点集以获得所述参考兴趣点集。在一些实施例中,所述多个参考集中的每一者进一步包括与所述图像相对应的参考描述符。在一些实施例中,生成所述参考数据集包括对于所述多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得所述图像;通过将多个单应性变换应用于所述图像,生成多个扭曲图像;通过所述神经网络接收所述多个扭曲图像作为输入,计算多个计算扭曲描述符;通过将多个逆单应性变换应用于所述多个计算扭曲描述符,生成多个计算描述符;以及聚合所述多个计算描述符以获得所述参考描述符。在一些实施例中,所述参考兴趣点集是二维图,该二维图具有与所述图像的特定像素具有位于所述特定像素处的兴趣点的概率相对应的值。在一些实施例中,

根据本发明的第二方面,提供了一种使用神经网络执行图像兴趣点检测和描述的方法。所述方法可以包括捕获第一图像。所述方法还可以包括捕获第二图像。所述方法可以进一步包括通过所述神经网络接收所述第一图像作为输入,计算第一计算兴趣点集和第一计算描述符。所述方法可以进一步包括通过所述神经网络接收所述第二图像作为输入,计算第二计算兴趣点集和第二计算描述符。所述方法可以进一步包括基于所述第一计算兴趣点集和所述第二计算兴趣点集以及所述第一计算描述符和所述第二计算描述符,确定所述第一图像和所述第二图像之间的单应性变换。在一些实施例中,所述神经网络包括兴趣点检测器子网络,其被配置为计算所述第一计算兴趣点集和所述第二计算兴趣点集;以及描述符子网络,其被配置为计算所述第一计算描述符和所述第二计算描述符。

在一些实施例中,所述兴趣点检测器子网络被配置为与所述描述符子网络计算所述第一计算描述符同时计算所述第一计算兴趣点集。在一些实施例中,所述兴趣点检测器子网络被配置为与所述描述符子网络计算所述第二计算描述符同时计算所述第二计算兴趣点集。在一些实施例中,所述方法进一步包括通过生成包括多个参考集的参考数据集来训练所述神经网络。在一些实施例中,所述多个参考集中的每一者包括图像;以及与所述图像相对应的参考兴趣点集。训练所述神经网络可以进一步包括对于所述多个参考集中的每个参考集:通过将单应性变换应用于所述图像,生成扭曲图像;通过将所述单应性变换应用于所述参考兴趣点集,生成扭曲参考兴趣点集;通过所述神经网络接收所述图像作为输入,计算一计算兴趣点集和计算描述符;通过所述神经网络接收所述扭曲图像作为输入,计算一计算扭曲兴趣点集和计算扭曲描述符;基于所述计算兴趣点集、所述计算描述符、所述计算扭曲兴趣点集、所述计算扭曲描述符、所述参考兴趣点集、所述扭曲参考兴趣点集、和所述单应性变换来计算损失;以及基于所述损失来修改所述神经网络。

在一些实施例中,基于所述损失来修改所述神经网络包括:基于所述损失来修改所述兴趣点检测器子网络和所述描述符子网络中的一者或两者。在一些实施例中,所述方法进一步包括在生成所述参考数据集之前,使用包括多个合成图像和多个合成兴趣点集的合成数据集来训练所述兴趣点检测器子网络。在一些实施例中,生成所述参考数据集包括使用所述兴趣点检测器子网络来生成所述参考数据集。在一些实施例中,生成所述参考数据集包括对于所述多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得所述图像;通过将多个单应性变换应用于所述图像,生成多个扭曲图像;通过所述神经网络接收所述多个扭曲图像作为输入,计算多个计算扭曲兴趣点集;通过将多个逆单应性变换应用于所述多个计算扭曲兴趣点集,生成多个计算兴趣点集;以及聚合所述多个计算兴趣点集以获得所述参考兴趣点集。在一些实施例中,所述多个参考集中的每一者进一步包括与所述图像相对应的参考描述符。在一些实施例中,生成所述参考数据集包括对于所述多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得所述图像;通过将多个单应性变换应用于所述图像,生成多个扭曲图像;通过所述神经网络接收所述多个扭曲图像作为输入,计算多个计算扭曲描述符;通过将多个逆单应性变换应用于所述多个计算扭曲描述符,生成多个计算描述符;以及聚合所述多个计算描述符以获得所述参考描述符。

根据本发明的第三方面,提供了一种光学设备(即,光学系统)。所述光学设备可以包括至少一个相机,其被配置为捕获第一图像和第二图像。所述光学设备还可以包括一个或多个处理器,其被耦接到所述相机并被配置为执行操作。所述操作可以包括从所述至少一个相机接收所述第一图像和所述第二图像。所述操作还可以包括通过所述神经网络使用所述第一图像作为输入,计算第一计算兴趣点集和第一计算描述符。所述操作可以进一步包括通过所述神经网络使用所述第二图像作为输入,计算第二计算兴趣点集和第二计算描述符。所述操作可以进一步包括基于所述第一计算兴趣点集和所述第二计算兴趣点集以及所述第一计算描述符和所述第二计算描述符,确定所述第一图像和所述第二图像之间的单应性变换。在一些实施例中,所述神经网络包括兴趣点检测器子网络,其被配置为计算所述第一计算兴趣点集和所述第二计算兴趣点集;以及描述符子网络,其被配置为计算所述第一计算描述符和所述第二计算描述符。

在一些实施例中,所述兴趣点检测器子网络被配置为与所述描述符子网络计算所述第一计算描述符同时计算所述第一计算兴趣点集。在一些实施例中,所述兴趣点检测器子网络被配置为与所述描述符子网络计算所述第二计算描述符同时计算所述第二计算兴趣点集。在一些实施例中,所述神经网络被预先通过生成包括多个参考集的参考数据集来训练,其中所述多个参考集中的每一者包括:图像;以及与所述图像相对应的参考兴趣点集。在一些实施例中,所述神经网络被预先通过对于所述多个参考集中的每个参考集:通过将单应性变换应用于所述图像,生成扭曲图像;通过将所述单应性变换应用于所述参考兴趣点集,生成扭曲参考兴趣点集;通过所述神经网络接收所述图像作为输入,计算一计算兴趣点集和计算描述符;通过所述神经网络接收所述扭曲图像作为输入,计算一计算扭曲兴趣点集和计算扭曲描述符;基于所述计算兴趣点集、所述计算描述符、所述计算扭曲兴趣点集、所述计算扭曲描述符、所述参考兴趣点集、所述扭曲参考兴趣点集、和所述单应性变换来计算损失;以及基于所述损失来修改所述神经网络。

在一些实施例中,基于所述损失来修改所述神经网络包括:基于所述损失来修改所述兴趣点检测器子网络和所述描述符子网络中的一者或两者。在一些实施例中,生成所述参考数据集包括对于所述多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得所述图像;通过将多个单应性变换应用于所述图像,生成多个扭曲图像;通过所述神经网络接收所述多个扭曲图像作为输入,计算多个计算扭曲兴趣点集;通过将多个逆单应性变换应用于所述多个计算扭曲兴趣点集,生成多个计算兴趣点集;以及聚合所述多个计算兴趣点集以获得所述参考兴趣点集。在一些实施例中,所述多个参考集中的每一者进一步包括与所述图像相对应的参考描述符。在一些实施例中,生成所述参考数据集包括对于所述多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得所述图像;通过将多个单应性变换应用于所述图像,生成多个扭曲图像;通过所述神经网络接收所述多个扭曲图像作为输入,计算多个计算扭曲描述符;通过将多个逆单应性变换应用于所述多个计算扭曲描述符,生成多个计算描述符;以及聚合所述多个计算描述符以获得所述参考描述符。

通过本发明实现了许多优于常规技术的优势。例如,本发明的一些实施例提供了一种用于训练兴趣点检测器和描述符的自监督框架,该框架对单通道或多通道二维(2d)图像(例如,互联网rgb照片、微型机器人灰度相机、水下图像、航拍图像、望远镜影像、深度传感器图像、热像仪图像等)中的任一集合执行操作。这样的实施例适用于大量的多视图几何问题。实施例提供了在全尺寸图像上操作的全卷积模型,这些模型在一个前向传播中共同计算像素级兴趣点位置和相关联的描述符。一些实施例可以被描述为单应性变换适应:用于提高兴趣点检测精度并执行域间适应(例如,合成到真实)的多尺度、多单应性变换方法。如在ms-coco通用图像数据集上运行训练所证明的,本发明的实施例检测到的兴趣点比传统角检测器或预先适应的深度模型检测到的更丰富。这样的实施例在hpatches数据集上实现了兴趣点可重复性,并且在点匹配精度和单应性变换估计任务方面优于诸如orb和sift之类的其它传统描述符。此外,本发明的实施例不需要明确的几何对应信息。本发明的其它益处对于本领域技术人员显而易见。

附图说明

图1示出根据本发明的一些实施例的使用神经网络确定一对输入图像的兴趣点之间的点对应关系。

图2示出了根据本发明的一些实施例的神经网络的一般架构。

图3示出了根据本发明的第一训练步骤,其中使用包括多个合成图像的合成数据集来训练兴趣点检测器子网络。

图4示出了根据本发明的第二训练步骤,其中使用单应性变换适应来编译参考数据集。

图5示出了根据本发明的第三训练步骤,其中使用参考数据集来训练神经网络。

图6示出了根据本发明的一些实施例的使用神经网络计算两个捕获的图像之间的单应性变换。

图7示出了根据本发明的一些实施例的合成数据集的示例。

图8示出了根据本发明的一些实施例的未标记数据集的示例。

图9示出了根据本发明的一些实施例的神经网络的示例架构。

图10示出了根据本发明的一些实施例的在第二训练步骤中采用的单应性变换适应的各个步骤。

图11示出了根据本发明的一些实施例的随机单应性变换生成的某些方面。

图12示出了可以利用本文所述的实施例的ar设备的示意图。

图13示出了根据本发明的一些实施例的训练神经网络并使用该神经网络执行图像兴趣点检测和描述的方法。

图14示出了根据本发明的一些实施例的训练用于图像兴趣点检测和描述的神经网络的方法。

图15示出了根据本文所述的一些实施例的简化的计算机系统。

具体实施方式

在几乎所有需要图像作为输入的任务上,已经证明卷积神经网络优于手动标记(hand-engineered)的表示。特别是,对于诸如人体姿态估计、对象检测和房间布局估计之类的各种任务,已经充分研究了预测二维(2d)“关键点”或“标志(landmark)”的全卷积神经网络。这些技术中的一些利用了标注有人类注释的2d基表实况位置的大型数据集。类似地将兴趣点检测公式化为大型有监督的机器学习问题,并训练最新的卷积神经网络架构来检测它们看上去是很自然的。但是,当与诸如人体关键点估计之类的更多语义任务进行比较时(其中训练了网络来检测诸如嘴角或左脚踝之类的语义身体部位),兴趣点检测的概念在语义上定义不清。这个难点使得通过强大的监督兴趣点训练卷积神经网络变得不平凡。

本发明的实施例提供了使用自我训练的自我监督解决方案代替了使用人工监督来定义真实图像中的兴趣点。在本文所述的实施例的方法中,创建了真实图像中的伪基表实况兴趣点位置的大型数据集,通过兴趣点检测器本身而不是人类知识来进行监督。为了生成伪基表实况兴趣点,首先在来自合成图像数据集中的数百万个独特示例上训练全卷积神经网络。由于特征提取是图像序列中图像匹配和跟踪的基本步骤,因此可以确认,有区别的点的检测和精确定位可能很重要。这些有区别的点表征为角、边(用于分析多面体的基本元素)和圆形特征(诸如孔、圆盘或环)的中心。结点(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,然后将其馈送到网络输出118-1。在子网络输入120-2处接收到输入图像102时,描述符子网络114可以计算描述符并在子网络输出122-2处输出计算描述符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的描述符。

神经网络100的训练可以由网络修改器126和/或子网络修改器124-1、124-2使能,它们可以在训练阶段接收误差信号、损失信号和/或校正信号,从而导致网络层和/或网络神经元被修改。可以修改神经网络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)的“goodfeaturestotrack(跟踪好特征)”之类的其它传统角点检测方法相比,兴趣点检测器子网络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,可以重复该过程,以获得多个未扭曲的计算兴趣点。多个未扭曲的计算兴趣点可以被聚合/组合以获得作为参考集142的一部分与输入图像102和参考描述符一起存储在参考数据集中144中的参考兴趣点集。

附加地或替代地,可以采用单应性变换适应来改善由神经网络100输出的描述符。例如,在单次训练迭代期间,单应性变换生成器138可被用于在使图像通过神经网络100之前将多个随机或伪随机单应性变换应用于输入图像102。在神经网络100的另一侧,逆单应性变换生成器140可被用于将多个逆单应性变换应用于计算描述符110,多个逆单应性变换是多个单应性变换的逆,从而使计算描述符110不扭曲。对于同一输入图像102,可以重复该过程以获得多个未扭曲的计算描述符。多个未扭曲的计算描述符可以被聚合/组合以获得作为参考集142的一部分与输入图像102和参考兴趣点集一起存储在参考数据集144中的参考描述符。

单应性变换扭曲的数量nh是此方法的超参数。在一些实施例中,第一单应性变换被设置为等于同一性(identity),以使得nh=1(意味着无适应)。在测试中,改变nh的范围以尝试并确定优选值,在一些实施例中,nh从小值(nh=10)到中值(nh=100)和大值(nh=1000)。结果表明,当执行100次以上单应性变换时,返回值递减。在来自ms-coco的保留图像集上,在没有任何单应性变换适应的情况下满足了0.67的重复性得分;当执行nh=100次变换时,可重复性提高了21%;当nh=1000时,可重复性提高了22%,这充分展示了使用多于100次单应性变换的最小益处。

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

当进行尺度间聚合时,被视为ns的尺度数量是此方法的超参数。ns=1的设置对应于无多尺度聚合(或仅在可能的大图像尺寸间进行聚合)。在一些实施例中,对于ns>1,正被处理的多尺度图像集被称为“多尺度图像金字塔”。对金字塔等级赋予不同权重的加权方案可能赋予高分辨率图像以较大的权重。这很重要,因为在较低分辨率处检测到的兴趣点的定位能力较差,并且最终的聚合点也应被定位。实验结果表明,尺度内聚合对可重复性的影响最大。在一些实施例中,在训练时应用单应性变换适应技术以提高子网络112、114和网络100在真实图像上的泛化能力。

下面的段落描述了对单应性变换适应方法的理论支持。在一些实施例中,初始兴趣点函数由fθ(·)表示,i是输入图像,x是结果点,h是随机单应性变换,以使得:

x=fθ(i)

理想的兴趣点算子应该相对于单应性变换协变。如果输出随输入变换,则函数fθ(·)与h协变。换句话说,对于所有项,协变检测器将满足

hx=fθ(h(i))

为了清楚起见,符号hx表示正应用到所得兴趣点的单应性变换矩阵h,h(i)表示正由单应性变换矩阵h扭曲的整个图像i。将与单应性变换相关的项右移会产生:

x=h-1fθ(h(i))

在实践中,兴趣点检测器将不会是完美的协方差,并且先前等式中的不同单应性变换将导致不同的兴趣点x。在一些实施例中,通过对足够大的随机h的样本执行经验求和来解决此问题。对样本执行最终聚合产生优异的兴趣点检测器f(·),定义如下:

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

图5示出了根据本发明的第三训练步骤,其中使用参考数据集144来训练神经网络100。在单次训练迭代期间,检索包含在参考数据集144中的单个参考集142。每个参考集142可以包括输入图像102、与输入图像102相对应的参考兴趣点集148,以及(可选地包括)与输入图像102相对应的参考描述符150。使用一个或多个单应性变换生成器138,通过将单应性变换应用于输入图像102,生成扭曲的输入图像103,并且通过将同一单应性变换应用于参考兴趣点148,生成扭曲的参考兴趣点集149。顺序地或同时地,神经网络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是两个中间损失的和:一个是兴趣点检测器的中间损失lp,一个是描述符的中间损失ld。由于可以使用成对的合成扭曲图像,这些成对的扭曲图像同时具有(a)伪基表实况兴趣点位置和(b)来自与这两个图像相关的随机生成的单应性变换h的基表实况对应关系,因此可以使能同时损失优化。根据下式,损失l作为关于λ的函数实现平衡:l(x,x′,d,d′,y,y′,s)=lp(x,y)+lp(x′,y′)+λld(d,d′,s)

其中x是计算兴趣点108(或与之相关),x′是计算扭曲兴趣点109(或与之相关),y是参考兴趣点148(或与之相关),y′是扭曲参考兴趣点149(或与之相关),d是计算描述符110(或与之相关),而d′是计算扭曲描述符111(或与之相关)。s是相似度得分矩阵,可以完全基于随机生成的单应性变换h确定。如图5所示,可以将单应性变换h或相似度得分矩阵s馈入损失计算器。

兴趣点检测器损失函数lp是单元xhw∈x上的全卷积交叉熵损失。对应的基表实况兴趣点标签y和各个条目为yhw。因此,损失为:

其中

将描述符损失应用于来自输入图像102的所有成对的描述符单元dhw∈d和来自扭曲输入图像103的d′h′w′∈d′。(h,w)单元和(h′,w′)单元之间由单应性变换引起的对应关系可以写成下式:

其中phw表示中心像素在(h,w)单元中的位置,而表示单元位置phw与单应性变换h的乘积。图像对的整个对应关系集是s。

在一些实施例中,加权项λd有助于平衡正对应关系而不是多于负对应关系。描述符损失由下式给出:

其中

ld(d,d′;s)=λd*s*max(0,mp-dtd′)+(1-s)*max(0,dtd′-mn)

图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,定义hc=h/8并且wc=w/8。较低维输出中的像素被称为单元,其中编码器中的三个2×2非重叠最大池化操作导致8×8个像素单元。编码器以较小的空间维数和较大的通道深度图输入图像i∈rhc×wc×f(即hc<h,wc<w和f>1)。

在一些情况下,用于密集预测的网络设计可能涉及编码器-解码器对,其中空间分辨率经由池化或跨步卷积降低,然后经由上卷积操作的上采样回到全分辨率。但是,上采样层趋向于增加大量计算,并且可引入不想要的棋盘伪像,因此对于本文公开的一些实施例,兴趣点检测头用显式解码器来减少模型的计算。在一些实施例中,兴趣点检测器头计算值x∈rhc×wc×65并输出大小为x∈rh×w的张量。65个通道对应于像素的局部非重叠的8×8网格区域以及一个额外的“无兴趣点”垃圾箱。在按通道的柔性最大值传输函数(softmaxfunction)后,移除垃圾箱维数,并执行rhc×wc×64至rh×w重塑(reshape)函数。

描述符头计算d∈rhc×wc×d,并输出大小为rh×w×d的张量。为了输出归一化固定长度l2的描述符的密集图,可以使用类似于ucn的模型首先输出描述符的半密集网格(例如,每8个像素一个)。半密集而非密集地学习描述符减少训练记忆,并使运行时间易于掌控。然后,解码器对描述符执行双三次插值,接着将激活归一化为单位长度l2。如图9所示,两个解码器都在共享的且空间减小的输入表示上进行操作。为了使模型快速且容易训练,在一些实施例中,两个解码器都使用非学习的上采样来使表示回到rh×w

在一些实施例中,编码器是具有大小为64-64-64-64-128-128-128-128的八个3×3卷积层的类vgg架构。每两层有一个2×2的最大池层。每个解码器头具有单个256个单元的3×3卷积层,后跟具有分别用于兴趣点检测器和描述符的65个单元和256个单元的1×1卷积层。网络中的所有卷积层都可以后跟relu非线性激活和批归一化(batchnormnormalization)。

图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上或附接在左目镜1202a附近的左前向世界相机1206a、直接附接在右目镜1202b上或附接在右目镜1202b附近的右前向世界相机1206b、直接附接在左目镜1202a上或附接在左目镜1202a附近的左侧向世界相机1206c、直接附接在右目镜1202b上或附接在右目镜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。

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

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

计算机系统1500可以进一步包括一个或多个非暂时性存储设备1525和/或与一个或多个非暂时性储存设备1525通信,非暂时性储存设备1525可以包括但不限于本地和/或网络可访问的储存器,和/或可以包括但不限于磁盘驱动器、驱动器阵列、光储存设备、固态储存设备,诸如随机存取存储器(“ram”)和/或只读存储器(“rom”),它们可进行编程、闪存更新和/或类似的操作。这样的储存设备可以被配置为实现任何适当的数据存储,包括但不限于各种文件系统、数据库结构和/或类似物。

计算机系统1500还可以包括通信子系统1519,通信子系统1519可以包括但不限于调制解调器、网卡(无线或有线)、红外通信设备、无线通信设备和/或芯片组,诸如bluetoothtm设备、802.11设备、wifi设备、wimax设备、蜂窝通信设施等和/或类似物。通信子系统1519可以包括一个或多个输入和/或输出通信接口,以允许与诸如以下举例描述的网络之类的网络、其它计算机系统、电视和/或本文所述的任何其它设备交换数据。取决于期望的功能性和/或其它实施方式考虑,便携式电子设备或类似设备可以经由通信子系统1519来传输图像和/或其它信息。在其它实施例中,便携式电子设备,例如,第一电子设备,可以被并入到计算机系统1500中,例如,作为输入设备1515的电子设备。在一些实施例中,计算机系统1500将进一步包括工作存储器1535,工作存储器可以包括如上描述的ram或rom设备。

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

这些指令集和/或代码可以被存储在非暂时性计算机可读存储介质上,诸如上述一个或多个存储设备1525。在一些情况下,存储介质可以被并入到计算机系统,诸如计算机系统1500,中。在其它实施例中,存储介质可以与计算机系统分开,例如可移动介质(诸如光盘)和/或以安装包提供,以使得可以使用存储介质,通过上面存储的指令/代码对通用计算机进行编程、配置和/或适配。这些指令可以采取能够由计算机系统1500执行的可执行代码的形式和/或可以采取源代码和/或可安装代码的形式,当例如使用多种通用编译器、安装程序、压缩/解压缩实用程序等中的任一项在计算机系统1500上编译和/或安装时,然后源代码和/或可安装代码采取可执行代码的形式。

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

如上所述,在一方面,一些实施例可以采用诸如计算机系统1500之类的计算机系统来执行根据本技术的各种实施例的方法。根据一组实施例,这样的方法中的部分或全部过程由计算机系统1500响应于处理器1510执行一个或多个指令的一个或多个序列来执行,一个或多个指令可以被并入操作系统1540和/或并入包含在工作存储器1535中的其它代码(诸如应用程序1545)中。这些指令可以从另一计算机可读介质,诸如一个或多个存储设备1525中的一者或多者,读入工作存储器1535。仅通过举例,包含在工作存储器1535中的指令序列的执行可以使一个或多个处理器1510执行本文所述的方法的一个或多个过程。附加地或替代地,本文所述的方法的一部分可以通过专用硬件来执行。

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

物理和/或有形计算机可读介质的常见形式例如包括软盘、柔性盘、硬盘、磁带或任何其它磁介质、cd-rom、任何其它光介质、打孔卡、纸带、具有孔模式的任何其它物理介质、ram、prom、eprom、flash-eprom、任何其它存储芯片或盒式磁带、或计算机可以从中读取指令和/或代码的任何其它介质。

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

通信子系统1519和/或其组件将通常接收信号,然后总线1505可以将信号和/或信号所承载的数据、指令等传送到工作存储器1535,处理器1510从该工作存储器1535中检索并执行指令。由工作存储器1535接收的指令可以选择性地在由一个或多个处理器1510执行之前或之后存储在非暂时性存储设备1525上。

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

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

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

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

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

此外,当在本说明书和以下权利要求中使用时,词语“包括”、“包含”旨在指定存在所声明的特征、整数、组件或步骤,但是它们并不排除一个或多个其它特征、整数、组件、步骤、动作或组的存在或添加。

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

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