使用机器学习模型的图像数据中的对象分类的制作方法

文档序号:14609863发布日期:2018-06-05 20:36阅读:196来源:国知局
使用机器学习模型的图像数据中的对象分类的制作方法

本文描述的主题涉及使用机器学习模型的图像数据内的对象的分类。



背景技术:

传感器越来越多地在多个计算平台采用(包括用于游戏平台、移动电话等的独立传感器)以提供多维图像数据(例如,三维数据等)。这些图像数据被计算性地分析以定位对象,并且,在某些情况下,以稍后识别或否则表征这些对象。然而,在多维图像数据内的对象的定位和识别两者仍然不精确。



技术实现要素:

在一方面,接收用于视场的组合的颜色和深度数据。此后,使用至少一个边界多边形算法,为视场定义至少一个所提议的边界多边形。然后能够使用具有使用已知对象的多个图像训练的至少一个机器学习模型的二元分类器来确定是否每个所提议的边界多边形封装对象。然后能够将在确定为封装对象的每个边界多边形内的图像数据提供给具有使用已知的对象的多个图像训练的至少一个机器学习模型的第一对象分类器,以将封装在相应边界多边形内的对象分类。此外,将在确定为封装对象的每个边界多边形内的图像数据提供给具有使用已知的对象的多个图像训练的至少一个机器学习模型的第二对象分类器,以将被封装在相应边界多边形内的对象分类。然后,基于第一分类器机器学习模型的输出和第二分类器机器学习模型的输出,确定用于每个边界多边形的最终分类。然后能够提供表征用于每个边界多边形的最终分类的数据。

至少一个第一分类器机器学习模型能够是基于区域和测量的卷积神经网络。

组合的颜色和深度图像数据能够是RGB-D数据。

第一对象分类器能够使用表征每个对象的元数据。能够从组合的颜色和图像数据中提取元数据。

二元分类器的至少一个机器学习模型能够是以下各项中的一个或多个:神经网络、卷积神经网络、逻辑回归模型、支持向量机、决策树、系综模型、k-最近邻居模型、线性回归模型、朴素贝叶斯模型、逻辑回归模型、和/或感知器模型。

第一对象分类器的至少一个机器学习模型能够是以下各项中的一个或多个:神经网络、卷积神经网络、逻辑回归模型、支持向量机、决策树、系综模型、k-最近邻居模型、线性回归模型、朴素贝叶斯模型、逻辑回归模型、和/或感知器模型。

第二对象分类器的至少一个机器学习模型能够是以下各项中的一个或多个:神经网络、卷积神经网络、逻辑回归模型、支持向量机、决策树、系综模型、k-最近邻居模型、线性回归模型、朴素贝叶斯模型、逻辑回归模型、和/或感知器模型。

能够丢弃由二元分类器确定为不包括对象的提议的边界多边形。

二元分类器、第一对象分类器、或第二对象分类器中的至少一个能够利用基于封装在对应的边界多边形内的对象的类型被选择和利用的多个机器学习模型。

提供表征用于每个边界多边形的最终分类的数据能够包括将这样的数据加载到存储器中、在电子视觉显示器上显示这样的数据、将这样的数据存储为持久性、或者将这样的数据发送到远程计算系统。

在另一方面,为视场接收RGB数据。然后使用至少一个边界多边形算法定义至少一个用于视场的边界多边形。然后用使用已知的对象的多个图像训练的二元分类器机器学习模型来确定是否每个边界多边形封装已知的对象中的一个。然后将在被确定为封装已知的对象中的一个的每个边界多边形内的图像数据提供给使用已知的对象的多个图像训练的多个分类器机器学习模型,以将已知的对象进行分类。然后能够提供表征已知的对象的分类的数据(例如,显示、存储、加载到存储器中,发送到远程计算设备等)。

能够基于与RGB数据相关联的元数据来选择图像数据被提供给其的多个分类器机器学习模型。与RGB数据相关联的元数据能够充当预分类器。RGB数据能够是RGB-D数据。

也描述了非暂时性的计算机程序产品(即,物理地体现的计算机程序产品),其存储当由一个或多个计算系统的一个或多个数据处理器运行时使得至少一个数据处理器执行本文的操作的指令。类似的,也描述了可以包括一个或多个数据处理器和耦合到一个或多个数据处理器的存储器的计算机系统(包括诸如移动电话、可穿戴设备(例如,智能眼镜、虚拟现实耳机、增强现实设备等)、和平板计算机等的智能设备)。存储器可以临时地或永久地存储使得至少一个处理器执行本文所述的操作中的一个或多个操作的指令。此外,既能够由单个计算系统内的一个或多个数据处理器,也能够由分布在两个或更多个计算系统当中的一个或多个数据处理器来实现方法。这样的计算系统能够被连接并且能够经由一个或多个连接(包括但不限于通过网络(例如,互联网、无线广域网络、局域网、广域网、有线网络等)的连接)、经由多个计算系统中的一个或多个之间的直接连接等来交换数据和/或命令或其它指令等。

本文描述的主题提供了许多技术优点。例如,当前的主题提供多维图像数据(诸如RGB-D数据、点云、和也包括深度信息的从传感器以及CAD工具获得的其它图像数据)内增强的对象定位和对象表征。

本文描述的主题的一个或多个变体的细节在附图和下面的描述中阐述。本文描述的主题的其它特征和优点将从描述和附图、以及从权利要求书中变得显而易见。

附图说明

图1是示出使用深度分割的图像的裁剪的过程流程图;

图2是示出使用两个或更多个对象定位技术的所提议的边界多边形的生成的过程流程图;

图3包括示出用于对象定位的深度分割的例示;

图4包括示出用于对象定位的颜色分割的第一方面的例示;

图5包括示出用于对象定位的颜色分割的第二方面的例示;

图6是示出使用二元分类器和两个或更多个多级分类器的组合对在边界多边形内的对象的分类的过程流程图;

图7A和图7B是示出从图像数据的元数据的导出的例示;

图8是示出使用机器学习模型的图像数据中的对象分类的过程流程图;以及

图9是用于实现本文描述的多方面的计算设备。

各种附图中的相同附图标记指示相同的元件。

具体实施方式

当前主题针对用于在多维图像数据内定位(即,检测等)对象的增强的技术。这样的多维图像数据能够,例如,由指定颜色和深度信息两者的光学传感器生成。在一些情况下,多维图像数据是RGB-D数据,而在其它情况下,能够利用其它类型的多维图像数据,包括但不限于点云数据。虽然以下主要结合RGB-D图像数据来描述,但是应当理解,除非另有说明,否则当前主题可应用于其它类型的多维图像数据(即,组合颜色和深度数据/信息的数据),所述其它类型的多维图像数据包括来自深度传感器/相机的视频流(其能够被表征为一系列RGB-D图像)。

图1是示出使用深度数据的边界框(box)的生成的过程流程图100。最初,在110处,接收RGB-D数据(即,从远程计算系统接收、从本地数据存储访问、从远程数据库访问、从实时视频流访问、从一系列传感器(例如,3-D相机、红外线传感器、超声波传感器等)导出等)。这样的数据能够,例如,由相对于视场放置的光学传感器生成或以其它方式导出,所述光学传感器能够,例如,在两个维度表征颜色和视场内的可选择的像素的深度。在一些情况下,能够利用多个光学传感器,使得第一光学传感器提供颜色信息,并且第二光学传感器提供深度数据,并且这样的传感器的输出被组合以形成RGB-D数据(或其它类型的多维图像数据)。在其它变化中,能够有多个光学传感器,并且这样的传感器的输出能够被组合以提供比可能以其它方式用单个光学传感器提供的视场更广阔的视场。多个传感器的使用也通过组合具有诸如红外线、超声波等的不同波长的不同种类的传感器和相机来提高所获得的RGB-D数据的细节的质量和程度。还将理解,由(多个)光学传感器生成的视场能够是可变的。这样的可变性能够发生,例如,如果光学传感器正在移动和/或被部分遮蔽。示例光学传感器能够并入诸如INTEL REALSENSE技术和/或MICROSOFT KINECT技术等的技术以提供多维图像数据。此外,多维图像数据能够是点云以及从传感器和CAD工具获得的包括深度信息的其它数据。

在RGB-D数据的接收之后,这样的RGB-D数据能够被分支(即,分割等)到它的单独的分量中,使得颜色信息(RGB)与深度信息(D)分开并且不同,以形成分别示出视场的RGB图像150和视场的深度通道图像120的两个图像。然后深度通道图像120经受深度分割130(如将在下面进一步详细描述的),以识别深度通道图像120内的一个或多个对象,来使得定义至少一个边界多边形140,其反过来定义围绕识别的(多个)对象的周界。该边界多边形定义封装对应图像内的区的一系列连接的坐标。该边界多边形140能够采取具有三条或更多条连接边的许多形式。在某些情况下,边界多边形能够是矩形,然而,在要求更精细的分辨率并且潜在地具有更大的计算资源的其它情形下,边界多边形能够具有多于四条边。

然后能够将定义的边界多边形140应用到视场的RGB图像150以裁剪RGB图像(以形成裁剪的RGB图像160和/或裁剪的RGB-D图像170),其反过来,能够被用于定位在这样的图像内的(多个)对象。然后能够将包括,例如,进一步定位技术、随后是对象分类/表征技术的各种类型的图像处理应用于裁剪的RGB图像160和/或裁剪的RGB-D图像170。这样的安排是有益的,因为用于对象定位(经由边界多边形的定义)的从颜色信息的深度信息的分支和深度信息的使用提供了比如果要使用组合的颜色/深度图像数据时对象的更大的定位/识别精度。应当理解,能够提供对本文的分割技术的变型,诸如对结果混合(blobbing)等。

图2是示出图1的变型的过程流程图200,其中裁剪的RGB图像160经受进一步处理。将理解,对于图2的示例,相似的过程能够应用到RGB-D图像170,并且示例仅使用RGB图像数据160来简化说明。类似于图1,RGB-D数据被接收110,然后被分支成RGB图像150和深度通道图像120,使得深度分割130能够被应用到深度通道图像120。该深度分割130用于定义边界多边形140然后随后应用到RGB图像150,使得RGB图像150能够被制作成裁剪的RGB图像160。

继续如图2所示,使用第一对象定位技术210来处理裁剪的RGB图像160,以识别在裁剪的RGB图像160内识别对象的提议的边界多边形的第一集合。此外,并行地,也使用第二、不同的对象定位技术220处理裁剪的RGB图像160,以识别在裁剪的RGB图像160内识别对象的提议的边界多边形的第二集合。能够利用各种类型的区域提议/对象定位技术,包括边缘模型技术、颜色分割(如本文所述)、SelectiveSearch、BING、CPMC、Endres、测地线、MCG、Objectness、Rahtu、随机棱镜、Rantalankila、Gaussian、SlidingWindow、Superpixels、均匀(uniform)、等等。

在某些情况下,能够使用两种以上的对象定位技术。此外,在某些变型中,对象定位技术能够顺序地和/或部分并行地执行。然后分析提议的边界多边形的第一和第二集合(在某些情况下仅一个边界多边形被定位技术中的一个识别),以确定跨提议的边界多边形的第一和第二集合的联合(union)或其它重叠的交集230。基于该确定,确定至少一个最优边界多边形240。然后,该最优边界多边形240能够用于随后的图像处理,包括如应用到裁剪的RGB图像160的对最优边界多边形240内的任何封装的对象的分类。

如上所述,深度分割130能够在没有RGB信息的益处的情况下采用深度通道图像120并且使用深度信息定义边界多边形140。图3的示图300示出利用已经从多维数据图像生成的深度通道图像310的一种类型的深度分割。深度通道图像310最初被分割以生成分割的图像320。通过,例如,将具有相似深度值(即,相对于彼此在值的预定义范围内的深度值)的所有像素分组到两个或更多个组中的一个组来执行该分割。在分割的图像320的示例中,组包括前景部分324和背景部分322。一旦在分割的图像320中定义了这些组322、324,则能够生成分割的图像324的二进制以得到二值图像(binary image)330(如示出的仅包括前景对象)。如在图像340中示出的,然后能够生成封装前景对象的边界多边形342。由边界多边形342的各种边缘封装的图像数据然后能够经受进一步的图像处理,包括但不限于对象的分类。

如上所述,能够结合本文提供的深度分割使用其它类型的对象定位技术。在某些情况下,诸如对于颜色分割,这些对象定位技术也能够单独地使用。参考图4至图5的示图400、500,提供了示出如本文所提供的颜色分割的一系列图像。颜色分割在本文中被提供作为定位/图像裁剪的示例类型,并且除非另有说明,否则被打算作为能够被利用的许多技术中的一个。最初,提供原始图像405(其能够是二维RGB图像或多维图像等),所述原始图像405随后被裁剪410。该裁剪能够基于对象识别或其它技术来减少从对象分支的像素/数据的量(即,移除明显不是对象的部分的图像的部分等)。在某些情况下,裁剪的图像410能够使用诸如结合图1所描述的技术被提供。

能够对裁剪的图像410执行颜色阈值(color thresholding)以得到经颜色阈值的图像415。该颜色阈值将具有在预定义带之内的颜色的像素分组在一起,使得颜色的总数减少。经颜色阈值的图像415能够稍后经受得到识别感兴趣的对象的可能边缘的边缘图像420的边缘建模。然后能够填充边缘图像420的孔(即,能够将由共同带的像素在至少两条边围绕的区修改为与最接近的像素分组公用等),以形成孔填充的边缘图像425。孔填充的边缘图像425然后能够用黑色填充以得到黑色填充的边缘图像430。然后黑色填充的边缘图像430能够被转换成二值图像435,其反过来,能够被转换成互补二值图像440。然后能够丢弃二值图像435的小区域,并且初始边界多边形(在这种情况下为一个框)能够封装对象以得到小区域滤波的,框图像445。小区域,滤波框445的互补能够被修改以丢弃具有低于预定义的阈值的大小的连接的区域,来得到丢弃的连接的区域图像450。丢弃的连接的区域图像450的逆455然后能够被修改以具有在最大连接的区域周围的新框以指定最终边界多边形457。然后能够将该最终边界多边形457应用到原始图像460,使得能够对最终边界多边形457内的图像的部分执行随后的成像处理(即,对象分类等)。

图6是示出用于对RGB-D图像数据610内的对象的分类的技术的过程流程图600。最初,在可能包含感兴趣的对象的RGB-D图像数据610内提议区域620。能够,例如,通过如结合图1所描述的裁剪RGB图像来提议这些区域。如上所述,其它类型的区域提议技术能够被使用。在所提议的区域内,在630处,能够使用,例如,深度分割、颜色分割、边缘模型、或用于生成边界多边形的其它技术来提议各种类型的边界多边形。

然后所提议的边界多边形630被提交到被用于做出是否每个提议的边界多边形封装对象的确定的二元分类器(binary classifier)640。二元分类器640不提供对在相应的提议的边界多边形内封装的对象的识别或其它分类,而是提供对是否在其中有被封装的对象的二元确定。在某些情况下,二元分类器640能够使用表征图像/对象的元数据来做出它的确定。如果二元分类器640确定在相应的边界多边形内没有被封装的对象,则丢弃提议的边界多边形(650)。否则,表征相应的边界多边形的信息被传送到第一对象分类器660和第二对象分类器670两者。这些分类器660、670两者做出在相应的边界多边形(边界多边形不再被提议,因为二元分类器640已经确定在其中封装了对象)内什么类型的对象被封装的确定。这些确定然后被提供到最终对象分类模块680,该最终对象分类模块680然后在相互矛盾的确定中选择在相应的边界多边形内封装的最终对象。然后能够以某些方式(包括,例如,存储在物理持久性中、加载到存储器、发送到远程计算系统、和/或在电子视觉显示器设备上显示)提供表征这个最终对象的信息。

二元分类器640能够在它的对是否提议的边界多边形封装对象的确定中利用一个或多个机器学习模型。这个确定能够是开放式的,因为它完全地涉及任何对象或它能够被限制到对象的定义的集合(即,已知的对象或已知的对象类型)。利用后一示例,例如,如果当前主题与仓库内的盘点相结合而使用,则对象的定义的集合能够涉及商品的包装,使得诸如人、叉车、货架、照明装置等的其它物品如果呈现在提议的边界多边形内,则能够被丢弃。

二元分类器640能够使用,例如,用能够可选择地表征已知的对象的历史数据训练的至少一个机器学习模型。被二元分类器640利用的机器学习模型能够是以下中的一个或多个:神经网络(例如,卷积神经网络、基于区域和测量的卷积神经网络等)、逻辑回归模型、支持向量机、决策树、系综(装袋、推进、随机森林等)、k-最近邻居、线性回归、朴素贝叶斯、逻辑回归、感知器以及其它机器学习模型。作为这样的机器学习模型的训练的部分,为图像数据建立特征,其然后从历史图像数据中被提取以促进使用二元分类器640的未来预测/确定。在某些情况下,二元分类器640利用RGB-D数据中的深度信息作为在训练机器学习模型和在确定是否提议的边界多边形封装对象两者中使用的特征中的一个。二元分类器640,当接收表征提议的边界多边形的数据时,从这样的数据中提取预定义的特征并且将这样的数据输入到至少一个机器学习模型中以做出是否提议的边界多边形封装对象的确定。

第一对象分类器660也能够利用至少一个机器学习模型。被第一对象分类器660利用的机器学习模型能够是以下中的一个或多个:神经网络(例如,卷积神经网络等)、逻辑回归模型、支持向量机、决策树、系综(装袋、推进、随机森林等)、k-最近邻居、线性回归、朴素贝叶斯、逻辑回归、感知器以及其它机器学习模型。作为这样的机器学习模型的训练的部分,为图像数据建立特征,其然后从历史图像数据中被提取以促进使用第一对象分类器660的未来预测/确定。和二元分类器640相反,第一对象分类器660是提供被封装在边界多边形内的对象的表征的多级分类器。

第一对象分类器660从图像数据提取特征,所述图像数据能够,例如,包括表征图像的元数据。在某些情况下,元数据作为图像数据的部分而被包括,然而,在其它实施方式中,元数据能够被分开地存储(或从生成图像数据的(多个)光学传感器被分开地导出)。例如,元数据能够包括在边界多边形内的对象的测量,诸如,例如,长度、高度、深度、世界坐标(3-D坐标)、平均颜色、尺寸和形状、图像捕获的当日时间等。

图7A和图7B示出这样的元数据中的某些如何能够被生成。参考700A,在提议的格点面(mask)(例如,20×20等)内画出苹果以用于测量。这个格点面能够被应用到裁剪的二值图像使得长度和高度能够使用格点计算并且能够确定这些格点的三维坐标。从格点面的每个单元(cell)内的不同值,在预定义的阈值(例如,在20×20格点面的情况中为16)之上的值的最大数量能够被表征为具有高置信度(其能够帮助避免传感器由于诸如噪声等的因素的测量错误)。用这些计算,能够表征对象的形状。

参考图7B的例示700B,为确定平均颜色(其将形成元数据的部分),裁剪的图像能够被细分(在此情况中被分为4×4矩阵)。在每个单元处,能够计算平均颜色。

在一种方案中,形成元数据的部分的所有特征能够被排列为行向量。然后能够应用支持向量机以训练和测试底层模型。在不同的方案中,能够应用LDA来将数据[例如N×48]变换到[N×M]的更低维度空间,其中(i)N=样本的数量,(ii)M=决定边界的目标维度空间(例如,2)。然后能够应用支持向量机以训练和测试底层模型。

第二对象分类器670也能够利用至少一个机器学习模型。被第二对象分类器670利用的机器学习模型能够是以下中的一个或多个:神经网络(例如,卷积神经网络等)、逻辑回归模型、支持向量机、决策树、系综(装袋、推进、随机森林等)、k-最近邻居、线性回归、朴素贝叶斯、逻辑回归、感知器以及其它机器学习模型。作为这样的机器学习模型的训练的部分,为图像数据建立特征,其然后从历史图像数据中被提取以促进使用第二对象分类器670的未来预测/确定。和第一对象分类器660类似,第二对象分类器670是提供被封装在边界多边形内的对象的表征的多级分类器。

第二对象分类器670也能够从表征提议的边界多边形的数据中提取特征用于向一个或多个机器学习模型的输入,从而识别边界多边形内的相应的对象。由第二对象分类器670提取的特征能够不同于由第一对象分类器660提取的特征。例如,第二对象分类器670可以不必利用元数据。

第二对象分类器670的特征提取能够,例如,使用将图像特征作为字对待的字袋(bag-of-word,BoW)模型。作为BoW模型的部分,特征能够被检测、基于学习视觉词汇在向量中被表示为特征描述符,并且能够通过将所有向量变换为码字(使用,例如,k-均值聚类)生成码本。能够使用该码本将图像表示为作为码字的直方图。码本和/或码字能够,例如,被支持向量机或其它机器学习模型利用以做出哪一个对象被包括在相应的边界多边形内的确定。

在某些变型中,第一对象分类器660和第二对象分类器670中的一个或两者能够使用一系列机器学习模型,所述机器学习模型各自被训练为表征/识别不同类型的对象。例如,第一机器学习模型能够被训练为将小的对象分类,第二机器学习模型能够被训练为将大的对象分类,第三机器学习模型能够被训练为将球形对象分类,第四机器学习模型能够被训练为将矩形对象分类,第五机器学习模型能够被训为将人分类,第六机器学习模型能够被训练为将动物分类,等等。在某些情况下,提取的特征和/或元数据能够被用于确定各种机器学习模型中的哪一个能够结合分类而被利用。在这种情况下,将从元数据中导出这些模型中的哪些(在并行处理中能够是若干个)被触发。在此处元数据被作为预分类使用并且将n级问题减少为更简单的问题,因为每个机器学习模型仅对这些n级的子集负责。

最终对象分类模块680能够从第一对象分类器660和第二对象分类器670接收指示被相应的对象分类器660、670识别的对象的可能性的分数或其它测量(例如,置信测量)。当选择最终对象时,最终对象分类模块680使用这样的分数/测量。例如,具有最高分数的对象能够被选择为最终对象(不管对象分类器660、670中的哪一个识别了这样的对象)。能够利用诸如使用多个分数的加权和的其它选择技术。

图8是过程流程图800,其中在810处,接收视场的组合的颜色和深度数据。其后,在820处,使用至少一个边界多边形算法,为视场定义至少一个提议的边界多边形。然后能够在830处,使用具有使用已知的对象的多个图像训练的至少一个机器学习模型的二元分类器,确定是否每个提议的边界多边形封装对象。然后能够在840处将在被确定为封装对象的每个边界多边形内的图像数据提供给具有使用已知的对象的多个图像训练的至少一个机器学习模型的第一对象分类器,以将被封装在相应的边界多边形内的对象分类。进一步地,在850处将在被确定为封装对象的每个边界多边形内的图像数据提供给具有使用已知的对象的多个图像训练的至少一个机器学习模型的第二对象分类器,以将被封装在相应的边界多边形内的对象分类。然后860处,基于第一分类器机器学习模型的输出和第二分类器机器学习模型的输出确定对于每个边界多边形的最终分类。然后能够在870处提供为每个边界多边形表征最终分类的数据。

本文描述的主题的一个或多个方面或特征能够被实现为数字电子电路、集成电路、专门设计的专用集成电路(application specific integrated circuit,ASIC)、场可编程逻辑阵列(field programmable gate array,FPGA)、计算机硬件、固件、软件、和/或其组合。能够由包括但不限于台式机、笔记本计算机和平板计算机、以及IoT设备、可穿戴设备(例如,智能眼镜、虚拟现实耳机、增强现实设备等)、和移动电话的各种各样的计算系统实现当前主题的多方面。这些各种方面或特征能够包括在包括至少一个可编程处理器的可编程系统上可运行和/或可解释的一个或多个计算机程序中的实施方式,所述可编程处理器能够是专用或通用的,被耦合以从以下各项接收数据和指令以及将数据和指令发送到以下各项:存储系统、至少一个输入设备、和至少一个输出设备。可编程系统或计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络交互。客户端和服务器的关系凭借在相应的计算机上运行并且具有对于彼此的客户端-服务器关系的计算机程序而出现。

也能够被称为程序、软件、软件应用、应用、组件、或代码的这些计算机程序,能够包括用于可编程处理器的机器指令,并且/或者能够用高级程序语言、面对对象的编程语言、功能性的编程语言、逻辑编程语言实现、和/或用汇编/机器语言实现。如本文所使用的,术语“机器可读介质”指的是被用于将机器指令和/或数据提供给包括接收机器指令作为机器可读信号的机器可读介质的可编程处理器的任何计算机程序产品、装置和/或设备,诸如,例如,磁性盘、光盘、存储器、和可编程逻辑设备(Programmable Logic Device,PLD)。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程数据处理器的任何信号。机器可读介质能够非暂时性地存储这样的机器指令,诸如,例如,正如非暂时性的固态存储器或磁性硬盘驱动器或任何等效的存储器介质将要做的那样。机器可读介质能够可选择地或额外地以暂时性的方式存储这样的机器指令,诸如,例如,正如处理器缓存或与一个或多个物理处理器核相关联的其它随机存取存储器将要做的那样。

本文描述的计算机组件、软件模块、功能、数据存储和数据结构能够直接地或间接地连接到彼此,以便允许它们的操作所需要的数据的流动。也注意到模块或处理器包括但不限于执行软件操作的代码的单元,并且能够被实现为,例如,代码的子程序单元、或代码的软件功能单元、或对象(当在面向对象的范式中时)、或小应用程序、或在计算机脚本语言中、或另一类型的计算机代码。软件组件和/或功能可以取决于当前的情形而位于单个计算机或跨多个计算机而分布。

图9是示出用于实现本文所描述的各种方面的样本计算设备架构的示图。总线904能够充当与其它示出的硬件的组件相互连接的信息高速公路。标记CPU(central processing unit,中央处理器)的处理系统908(例如,在给定计算机处或在多个计算机处的一个或多个计算机处理器/数据处理器),能够执行运行程序所要求的计算和逻辑操作。非暂时性处理器可读的存储介质,诸如只读存储器(read only memory,ROM)912和随机存取存储器(random access memory,RAM)916能够与处理系统908保持通信并且可以包括用于这里指定的操作的一个或多个编程指令。可选择地,程序指令可以存储在诸如磁盘、光盘、可记录存储器设备、闪存存储器、或其它物理存储介质的非暂时性计算机可读存储介质上。

在一个示例中,磁盘控制器948能够将一个或多个可选的磁盘驱动器接合到系统总线904。这些磁盘驱动器可以是诸如960的外部或内部磁盘驱动器,诸如952的外部或内部CD-ROM、CD-R、CD-RW或DVD、或固态驱动器,或外部或内部硬盘驱动器956。如前所述,这些各种磁盘驱动器952、956、960、和磁盘控制器是可选的设备。系统总线904也能够包括至少一个通信端口920以允许与物理连接到计算系统或通过有线或无线网络而外部可访问的外部设备的通信。在某些情况下,通信端口920包括或以其它方式包括网络接口。

为了提供与用户的交互,本文所描述的主题能够在具有用于向用户显示从总线904获得的信息的显示器设备940(例如,CRT(cathode ray tube,阴极射线管)或LCD(liquid crystal display,液晶显示器)监控器)以及通过其用户可以向计算机提供输入的诸如键盘和/或指示设备(例如,鼠标或轨迹球)和/或触摸屏的输入设备932的计算设备上实现。其它种类的设备也可以被用于提供与用户的交互;例如,被提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、经过麦克风936的听觉反馈、或触觉反馈);并且可以以任何形式从用户接收输入,包括声音、语音、触觉输入。在输入设备932中麦克风936能够经过输入设备接口928被耦合到总线904并且经由总线904传达信息。诸如专用服务器的其它计算设备,能够省略显示器940和显示器接口924、输入设备932、麦克风936、和输入设备接口928中的一个或多个。

在以上描述和权利要求中,诸如“…中的至少一个”或“…中的一个或多个”的短语可以出现,随后是元件或特征的连接列表。术语“和/或”也可以出现在两个或更多个元件或特征的列表中。除非另有隐式地或显式地与它在其中被使用的上下文相矛盾,否则这样的短语意在单独地表示任何列出的元件或特征或与任何其它所列举的元素或特征组合的任何所列举的元件或特征。例如,短语“A和B中的至少一个”、“A和B中的一个或多个”、和“A和/或B”各自意在表示“单独的A、单独的B、或A和B一起”。类似的解释也意在用于包括三个或更多个术语的列表。例如,短语“A、B、和C中的至少一个”、“A、B、和C中的一个或多个”、和“A、B、和/或C”各自意在表示“单独的A、单独的B、单独的C、A和B一起、A和C一起、B和C一起、或A和B和C一起”。此外,在上述和在权利要求中的术语“基于”的使用意在表示“至少部分地基于”,使得未被列举的特征或元件也是可允许的。

取决于所期望的配置,本文所描述的主题能够体现在系统、装置、方法、和/或物品中。在前面的描述中阐述的实施例不代表与本文所述主题一致的所有实施例。相反,它们仅仅是与和所述主题相关联的方面一致的一些示例。虽然上面已经详细地描述了一些变化,但是其它修改或者添加是可能的。特别地,除了本文所阐述的那些之外,还能够提供进一步的特征和/或变化。例如,上述实现能够针对所公开的特征的各种组合和子组合,和/或如上公开的若干进一步特征的组合和子组合。此外,在附图所描绘的和/或在本文所描述的逻辑流程不必要求所示的特别的顺序、或连续顺序,来达到所期望的结果。其它实施方式可以在所附权利要求的范围之内。

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