首页> 中国专利> 学习模板表示库

学习模板表示库

摘要

用于学习模板表示库的方法,系统和装置,包括在计算机存储介质上编码的计算机程序。在一个方面,一种方法包括获得描述物理环境的图像,其中环境包括给定的物理对象。当可能时,基于模板表示库使用模板匹配技术来推测给定的对象在环境中的位置。响应于确定不可以基于模板表示库使用模板匹配技术来预测给定的对象在环境中的位置,模板表示库被自动扩充有新的模板表示。

著录项

  • 公开/公告号CN112449701A

    专利类型发明专利

  • 公开/公告日2021-03-05

    原文格式PDF

  • 申请/专利权人 谷歌有限责任公司;

    申请/专利号CN201980021378.0

  • 申请日2019-07-19

  • 分类号G06K9/32(20060101);G06K9/62(20060101);

  • 代理机构31300 上海华诚知识产权代理有限公司;

  • 代理人肖华

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 10:05:17

说明书

背景技术

本说明书涉及使用数字图像处理方法来处理数据。

计算机可以通过使用数字图像处理方法处理表征环境的数据来对环境进行建模。表征环境的数据可以是例如描述环境的图像数据。计算机可以使用环境模型作为与环境交互的基础。例如,计算机可以使用机器人致动器与环境交互。

发明内容

本说明书描述了在一个或多个位置中的一个或多个计算机上实施为计算机程序的学习模板表示库的系统。

根据第一方面,提供了一种用于学习模板表示库的方法。该方法包括获得描述物理环境的第一图像,其中该环境包括给定的物理对象。该方法包括确定是否可以基于模板表示库使用模板匹配技术来推测给定的对象在环境中的位置,其中模板表示库包括多个模板表示。响应于确定不可以基于模板表示库使用模板匹配技术来推测给定的对象在环境中的位置,从环境的多个图像生成环境的重建。环境的重建表征了环境的几何形状。使用环境的重建来确定给定的对象的估计位置。使用给定的对象的估计位置来生成给定的对象的新模板表示。模板表示库用新的模板表示来扩充。

在一些实施方式中,确定是否可以基于模板表示库使用模板匹配技术来推测给定的对象在环境中的位置包括,对于来自模板表示库的多个模板表示中的每一个模板表示,确定模板表示与第一图像的区域之间的相似性度量是否超过阈值。

在一些实施方式中,从环境的多个图像生成环境的重建包括将立体重建技术应用到环境的图像。

在一些实施方式中,环境的重建包括定义环境的三维重建的多个坐标。

在一些实施方式中,使用环境的重建来确定给定的对象的估计位置包括基于环境的重建,确定将环境分割成多个分割区域的分割。将分割区域识别为给定的对象。基于被识别为给定的对象的分割区域来确定给定的对象的估计位置。

在一些实施方式中,基于环境的重建来确定将环境分割成多个区域包括确定表示环境的重建的图像的分水岭变换。

在一些实施方式中,使用给定的对象的估计位置生成给定的对象的新模板表示包括裁剪由给定的对象的估计位置定义的环境图像的区域。

在一些实施方式中,该方法包括基于使用环境的重建确定的给定的对象的估计位置与环境进行物理交互。确定交互成功条件。如果交互不满足交互成功条件,则禁止使用给定的对象的估计位置来生成给定的对象的新模板表示。

在一些实施方式中,基于使用环境重建确定的给定的对象的估计位置与环境进行物理交互包括尝试使用机器人致动器基于使用环境重建确定的给定的对象的估计位置来操纵给定的对象。

根据第二方面,提供了一种系统,其包括存储可执行指令的存储器,以及执行所述指令以执行先前描述的方法的操作的一个或多个计算机。

根据第三方面,提供了一种或多种存储指令的非暂时性计算机存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行前述方法的操作。

可以实施本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。

本说明书中描述的系统可以在很少或没有人为干预的情况下构建可由代理(例如,机械代理)用来与环境交互的模板表示库。更具体地,每当系统确定当前模板表示库不足以使用模板匹配技术来推测感兴趣对象在环境中的位置时,系统可以自动生成表示感兴趣对象的新模板表示,并用新模板表示来扩充模板表示库。相反,当一些传统系统确定模板表示库不足以使用模板匹配技术来推测感兴趣对象在环境中的位置时,传统系统缺少自动恢复的机制。在这些传统系统中的一些中,需要人工干预来生成新的模板表示以扩充模板表示库。本说明书中描述的系统消除了在构建模板表示库中人工干预的需要。上述任何优点构成计算机视觉技术领域的改进。

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

附图说明

图1是示例模板学习系统的框图。

图2是用于使用新模板表示来扩充模板表示库的示例处理的流程图。

图3是用于根据环境的重建来确定感兴趣对象的估计位置的示例处理的流程图。

在各个附图中相同的附图标记和标号表示相同的元件。

具体实施方式

本说明书描述了一种用于构建模板表示库的系统,代理(例如,机器人代理)可以使用所述模板表示库来与物理环境交互。更具体地,代理可以使用模板表示库来使用模板匹配技术推测感兴趣对象在环境中的位置,并且随后与这些感兴趣对象交互(例如,通过使用机械抓取设备来拾取它们)。

当当前模板表示库不足以推测感兴趣对象在环境中的位置时,系统可以自动(即,几乎没有或没有人工干预)用表示感兴趣对象的新模板表示来扩充模板表示库。为了生成新的模板表示,系统捕捉环境的多个图像,生成环境的重建(例如,三维(3D)重建),并且根据环境的重建来确定感兴趣对象的位置。在根据环境的重建来确定感兴趣对象的位置之后,系统可以通过裁剪区域来确定新的模板表示,所述区域根据所捕捉的环境图像来描述感兴趣对象。

下面将更详细地描述这些特征和其它特征。

图1示出了示例模板学习系统100。模板学习系统100是在一个或多个位置中的一个或多个计算机上实施的计算机程序的系统的示例,在该系统中实施以下描述的系统,组件和技术。

模板学习系统100被配置为学习模板表示库102。模板表示库102是图像数据的集合,并且根据所使用的实施方式,图像数据可以是不同类型的。在一些实施方式中,模板表示库102是图像的集合,每个图像描述各自物理对象(例如,计算机硬件组件,机器部分或制造工具)。在一些实施方式中,模板表示库102是特征表示的集合,每个特征表示来源于描述各自物理对象的图像。来源于图像的特征表示可以包括,例如,指示感兴趣点和线段在图像中的位置的数据。在一些实施方式中,模板表示库102定义跨越描述各自物理对象的多个图像的共同特征的一个或多个模型。模板表示库102的组件(其可以是图像,特征表示等)在本说明书中被称为模板表示。也就是说,模板表示是指表征对象的外观(例如,形状,纹理,颜色,反射率等)的图像数据(例如,图像或来源于图像的特征表示)。

在一些情况下,模板表示库102中的每个模板表示表示相同类型的对象,而在其它情况下,模板表示库102中的不同模板表示表示不同类型的对象。每个模板表示可以表示相应的对象,同时排除对象的背景(例如,描述围绕相应对象的区域的背景)的表示。模板表示库102中的模板表示可以基于包括以下内容的因素而彼此不同:(i)捕捉用于生成模板表示的图像时的照明,(ii)捕捉用于生成模板表示的图像的相机的视图(例如,位置和角度),(iii)用于生成模板表示的图像的分辨率,(iv)用于生成模板表示的图像的色彩平衡,以及(v)在用于生成模板表示的图像中描述的对象等。

代理104可以使用模板表示库102来确定物理环境106中感兴趣的物理对象的位置。确定感兴趣对象在环境106中的位置可以允许代理与感兴趣对象进行物理交互。例如,环境106可以是仓库环境,并且代理104可以是通过拾取感兴趣对象并将它们移动到环境106中的不同位置而与环境交互的机器人代理。作为另一个例子,环境106可以是制造环境,并且代理104可以是通过将感兴趣的对象组装到装配线上的制造产品中而与环境相互作用的机器人代理。

为了确定感兴趣对象的位置,系统100捕捉环境106的一个或多个图像108。系统100可以通过重复改变捕捉图像108的照相机的视图来顺序地捕捉环境106的图像108。例如,系统100可以通过以不同视图的预定序列(例如,以螺旋形状)移动捕捉图像108的照相机来顺序地捕捉环境106的图像108。

对于环境106的每个图像108,系统使用模板匹配引擎110来处理图像108,以确定是否可以使用模板匹配技术基于模板表示库102推测感兴趣对象在图像108中的位置。也就是说,模板匹配引擎110使用模板匹配技术来确定模板表示库102中的任何模板表示是否"匹配"任何图像108的任何区域。更具体地,模板匹配引擎110确定来自模板表示库102的任何模板表示与图像108的任何区域之间的相似性度量(其可以被表示为数值)是否超过给定阈值。作为说明性示例,模板匹配引擎110可以确定示例模板表示图像112(其描述矩形对象)与图像116的区域114(其也描述矩形对象)相匹配。参考图2中将更详细地描述的,模板匹配引擎110可以使用任何适当的模板匹配技术,例如兴趣点模板匹配技术,互相关模板匹配技术,绝对差和模板匹配技术或其组合。

当模板匹配引擎110确定可以使用模板匹配技术基于模板表示库102推测感兴趣对象在图像108中的位置时,模板匹配引擎110输出定义感兴趣对象在图像108中的位置118的数据。使用模板匹配技术基于模板表示库102成功地推测对象的位置的优点在于,确定匹配模板的过程比通过重建环境来确定位置的过程更有效,这将在后面解释。在这种意义上,模板表示库102可以被理解为先前可能遇到的观察库,该观察库使得能够有效地确定对象的位置而不重建环境。例如,定义感兴趣对象在图像108中的位置118的数据可以包括感兴趣对象的中心的坐标,定义感兴趣对象的长轴和短轴的坐标,或两者皆有。代理104可以使用所确定的感兴趣对象的位置118来与感兴趣对象进行物理交互。例如,代理104可以使用机器人致动器(例如,机械抓握装置)来操纵感兴趣的对象(例如,通过拾取它)。

在一些情况下,系统100可以确定当前模板表示库102不足以使用模板匹配技术推测感兴趣对象的位置118。也就是说,模板匹配引擎110可以确定模板表示库102中的模板表示都不匹配环境的任何所捕捉图像108的任何区域。当前模板表示库102可能是不足的,因为例如,感兴趣的对象包括那些不包括在由任何当前模板表示(即,当前包括在模板表示库102中的模板表示)表示的对象中的特征(例如,形状,颜色,端口,附件等)。作为另一个例子,当前模板表示库102可能是不足的,因为环境的图像108从与用于生成当前模板表示的图像的视图不同的视图来描述感兴趣的对象。

当系统100确定当前模板表示库102不足以使用模板匹配技术推测感兴趣对象的位置118时,系统100可以自动地用新的模板表示120扩充模板表示库102,同时几乎不需要人工干预,或者甚至不需要人工干预。新模板表示120增强了模板表示库102,因为它们以不同于当前模板表示的方式来表征感兴趣对象。例如,新模板表示120可以是从与当前模板表示不同的视图描述感兴趣对象的图像。作为另一个例子,由新模板表示120表示的感兴趣对象可以是没有由任何当前模板表示来表示的对象类型。在用新的模板表示120扩充模板表示库102之后,模板匹配引擎110可以使用扩充的模板表示库102来推测将来在环境106中其它感兴趣对象的位置。

为了确定新的模板表示120,系统100将环境106的图像108提供给重建引擎122。重建引擎122被配置为处理图像108以生成表征环境106的几何形状的环境106的重建124。例如,环境106的重建124可以通过定义环境106中的表面上的各种位置的多个3D坐标(例如,具有分量的坐标)来表征环境106的三维(3D)结构。重建引擎122可以使用任何适当的重建技术(例如,立体重建技术)来生成环境106的重建124。

系统100将环境106的重建124提供给定位引擎126,定位引擎126被配置为处理重建124以确定感兴趣对象在环境106中的估计位置128。例如,参考图3中将更详细地描述的,定位引擎126可以确定将环境106分割成多个不同的分割区域的分割,其中每个分割区域表示相应的对象或背景区域。在确定环境106的分割之后,定位引擎126使用例如关于感兴趣对象的预期形状和预期位置的先前知识来识别要成为感兴趣对象的分割区域中的一个。例如,感兴趣对象的预期形状可以近似为矩形,并且感兴趣对象的预期位置可以近似在环境的"中心"(例如,在环境的某一参考帧中)。在该示例中,定位引擎126可以将最接近地符合感兴趣对象的预期形状,感兴趣对象的预期位置或两者的分割区域识别为感兴趣对象。

在将环境106的分割区域识别为感兴趣对象之后,定位引擎可以使用分割区域来确定感兴趣对象的估计位置128(参考图3中将更详细地描述的)。由定位引擎126确定的感兴趣对象的估计位置128可以以任何适当的数字格式来表示,并且可以参考环境的任何预定参考帧来表示。例如,感兴趣对象的估计位置128可以由例如感兴趣对象的中心的坐标,定义感兴趣对象的长轴和短轴的坐标或两者来定义。

在根据环境的重建124来确定感兴趣对象的估计位置128之后,系统100可以使用感兴趣对象的估计位置128来生成新的模板表示120。更具体地,系统100可以通过确定环境的图像108的各个区域来生成新的模板表示120,所述区域根据估计的位置128来描述感兴趣的对象。系统100可以在环境的图像108中裁剪描述感兴趣对象的这些相应的区域,并根据裁剪的图像区域来确定新的模板表示120。例如,系统100可以确定新的模板表示120是裁剪的图像区域。作为另一个例子,系统100可以确定新的模板表示120是来源于裁剪的图像区域的特征表示。

可选地,在生成新模板表示120之前,代理104可以尝试基于由定位引擎126根据环境106的重建124所确定的感兴趣对象的估计位置128,来与环境106进行物理交互。例如,代理104可以尝试基于感兴趣对象的估计位置128使用机器人致动器(例如,机械抓取设备)来操纵感兴趣对象(例如,通过拾取它)。系统100可以评估所尝试的交互的成功(例如,通过确定代理是否成功地拾取感兴趣的对象),并且如果交互被确定为不成功,则可以禁止使用估计位置128来生成新的模板表示120。以这种方式,当系统100不能根据环境106的重建124来准确地估计感兴趣对象的位置时,系统100可以避免用错误的新模板表示来扩充模板表示库102。

通过用新的模板表示120重复地扩充模板表示库102,系统100可以逐步地构造综合模板表示库102。在一些情况下,模板表示库102最初可以是空的,在这种情况下,最终包括在模板表示库102中的每个模板表示曾一度是由系统100生成的新模板表示120。在其它情况下,模板表示库102可由一组多个默认模板表示(例如,手动获取的图像)来初始化。

图2是用于使用新模板表示来扩充模板表示库的示例处理的流程图。为方便起见,处理200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的模板学习系统(例如图1的模板学习系统100)可以执行处理200。

系统获得描述物理环境的一个或多个图像(202)。该环境可以是例如仓库环境或制造环境。物理环境包括感兴趣的物理对象(例如,计算机硬件组件,机器部件或制造工具)。图像可以以任何适当的格式表示,例如,作为灰度图像或彩色图像(例如,红-绿-蓝(RGB)图像)。系统可以通过重复改变捕捉图像的照相机的视图来顺序地捕捉环境的图像。例如,系统可以通过以不同视图的预定序列(例如,以螺旋形状)移动捕捉图像的照相机来顺序地捕捉环境的图像。

对于环境的每个图像,系统使用模板匹配技术基于模板表示库来确定感兴趣对象在图像中的位置是否可以被推测(即,是否满足模板匹配条件)(204)。对于环境的给定图像,如果模板表示库中的任何模板表示与环境的图像的任何区域相匹配,则系统可以基于模板表示库来推测感兴趣对象在图像中的位置。更具体地,如果任何模板表示和环境图像的任何区域之间的相似性度量超过给定阈值,则系统可以基于模板表示库来确定感兴趣对象在环境图像中的位置。

该系统可以使用任何适当的模板匹配技术,例如兴趣点模板匹配技术,互相关模板匹配技术,绝对差和模板匹配技术,或其组合。在特定示例中,模板表示可以是图像,并且系统可以应用兴趣点模板匹配技术。在该示例中,系统处理环境的模板表示和图像以确定每个图像中的相应兴趣点。兴趣点是指定义角落,斑点或任何其它独特图像特征的位置的坐标。如果对模板表示的兴趣点应用仿射变换使得它们与给定区域中的图像的至少一个阈值数量的兴趣点对准(近似地或精确地),则系统可以确定模板表示与环境的图像的给定区域相匹配。

如果系统基于模板表示库使用模板匹配技术可从环境图像中推测出感兴趣对象的位置,则系统维护当前的模板表示库(206)。该系统可以将感兴趣对象的位置提供给代理,该代理随后可以使用机器人致动器(例如,机械抓握装置)来操纵感兴趣对象(例如,通过拾取它)。系统可以通过例如感兴趣对象的中心的坐标,定义感兴趣对象的长轴和短轴的坐标,或两者来表示感兴趣对象的位置。可选地,系统不是响应于确定可以基于模板表示库从环境的图像推测感兴趣对象的位置来维护当前模板表示库,而是使用从所获得的环境图像确定的新模板表示来扩充模板表示库。以这种方式,即使当模板表示库足以推测感兴趣对象的位置时,系统也可以增强模板表示库的稳健性。

如果系统基于模板表示库使用模板匹配技术不能从环境的图像确定感兴趣对象的位置推测,则系统生成表征环境的几何形状的环境的重建(208)。例如,环境的重建可以通过定义环境中表面上的各种位置的多个3D坐标(例如,分量的坐标)来表征环境的3D结构。系统可以使用任何适当的重建技术生成环境的重建。在特定实例中,系统可使用立体重建技术来产生环境的重建。立体重建技术可以处理从不同视点捕捉的环境的一对图像,并且"三角化"定义环境中表面上的各种位置的各自的坐标。

该系统使用环境的重建来确定感兴趣对象的估计位置(210)。参考图3中将更详细地描述的,系统可以通过确定将环境分割成多个不同的分割区域的分割,来确定感兴趣对象的位置。该系统可以使用关于感兴趣对象在环境中的预期形状和预期位置的先前知识来将分割区域中的一个识别为感兴趣对象。在将分割区域识别为感兴趣对象之后,系统可以从分割区域确定感兴趣对象的估计位置。

可选地,代理可以尝试基于感兴趣对象的估计位置(例如,如在210中确定的)与环境进行物理交互(212)。例如,代理可以尝试基于感兴趣对象的估计位置使用机器人致动器(例如,机械抓握装置)来操纵感兴趣对象(例如,通过拾取它)。

系统可以通过确定是否满足交互成功条件来评估尝试交互的成功(214)。例如,如果代理成功地拾取感兴趣的对象(例如,使用机械抓取设备),则系统可以确定满足交互成功条件。响应于确定满足交互成功条件,系统推测对象的估计位置(例如,如在210中确定的)准确地定位对象,并且此后使用感兴趣对象的估计位置来生成表示感兴趣对象的新模板表示(216)。

为了使用感兴趣对象的估计位置来生成表示感兴趣对象的新模板表示,系统可以确定环境图像的区域,该区域根据感兴趣对象的估计位置来描述感兴趣对象。在使用感兴趣对象的估计位置来确定描述感兴趣对象的环境图像的区域之后,系统可以通过从环境图像裁剪所确定的区域来生成新的模板表示。此后,系统可以从裁剪的图像区域生成新的模板表示。例如,系统可以通过将新模板表示确定为裁剪图像区域来生成新模板表示。作为另一个例子,系统可以通过来源于裁剪图像区域的特征表示(例如,包括定义裁剪图像区域中的感兴趣点和线段的数据)来生成新的模板表示。在生成新模板表示之后,系统可以用新模板表示来扩充模板表示库(218)。

响应于确定不满足交互成功条件(例如,因为代理未能拾取感兴趣对象),系统确定感兴趣对象的估计位置(例如,如在210中确定的)可能不准确。系统可以返回到步骤202并重复前面的步骤,以获得感兴趣对象的位置的不同(并且理想地,更准确)的估计。

图3是用于根据环境的重建来确定感兴趣对象的估计位置的示例处理的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的模板学习系统,例如图1的模板学习系统100,可以执行处理300。

系统使用环境的重建(例如,如在208中确定的)来确定将环境分割成多个不同区域的分割(302)。每个分割区域可以表示环境的相应对象或背景区域。例如,如果环境是包括装配线传送带的制造环境,则分割区域可对应于传送带的部分和位于传送带上的各种对象。系统可以使用任何适当的分割技术来确定环境的分割。例如,系统可以对表示环境重建的图像应用分水岭变换。对图像应用分水岭变换产生将图像分割成由边缘分开的不同区域(即,高图像强度梯度幅度的区域)的分割。

系统将环境的分割区域识别为感兴趣对象(304)。为了将分割区域识别为感兴趣对象,系统可以依赖于关于感兴趣对象在环境中的预期形状和预期位置的先前知识。例如,感兴趣对象的预期形状可以近似为矩形,并且感兴趣对象的预期位置可以近似在环境的"中心"(例如,基于环境的某一参考帧)。在该示例中,系统可以将最接近地确认感兴趣对象的预期形状,感兴趣对象的预期位置或两者的分割区域识别为感兴趣对象。

该系统基于被识别为感兴趣对象的环境的分割区域来确定感兴趣对象的估计位置(306)。例如,如果感兴趣对象的估计位置由感兴趣对象的中心的坐标定义,则系统可以通过计算被识别为感兴趣对象的分割区域的质心来确定感兴趣对象的估计位置。作为另一个例子,如果感兴趣对象的估计位置另外由定义感兴趣对象的长轴和短轴的坐标定义,则系统可以通过计算被识别为感兴趣对象的分割区域的长轴和短轴来确定感兴趣对象的估计位置。

本说明书结合系统和计算机程序组件使用术语"配置"。对于要被配置成执行特定操作或动作的一个或多个计算机的系统,意味着系统已经安装在其上的软件,固件,硬件或它们的组合在操作中使系统执行操作或动作。对于要被配置成执行特定操作或动作的一个或多个计算机程序,意味着所述一个或多个程序包括指令,所述指令在由数据处理设备执行时使所述设备执行所述操作或动作。

在本说明书中描述的主题和功能操作的实施例可以在数字电子电路中,在有形地实现的计算机软件或固件中,在计算机硬件中实现,包括在本说明书中公开的结构及其结构等价物,或者在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,在有形的非暂时性存储介质上编码的计算机程序指令的一个或多个模块,用于由数据处理设备执行或控制数据处理设备的操作。计算机存储介质可以是机器可读存储设备,机器可读存储衬底,随机或串行存取存储器设备,或它们中的一个或多个的组合。可替换地或另外地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电,光或电磁信号,该信号被生成来编码信息以便发送到适当的接收机设备以便由数据处理设备执行。

术语"数据处理装置"是指数据处理硬件,并且包括用于处理数据的所有类型的装置,设备和机器,包括例如可编程处理器,计算机,或多处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件,协议栈,数据库管理系统,操作系统或它们中的一个或多个的组合的代码。

计算机程序,其也可以被称为或描述为程序,软件,软件应用程序,app,模块,软件模块,脚本或代码,可以用任何形式的编程语言来编写,包括编译或解释语言,或声明性或过程性语言;并且它可以以任何形式部署,包括作为独立程序或作为模块,组件,子例程或其他适合在计算环境中使用的单元。程序可以但不必须对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本,存储在专用于所述程序的单个文件中,或者存储在多个协调文件中,例如,存储一个或多个模块,子程序或代码部分的文件中。计算机程序可被部署为在一个计算机上或在位于一个站点或分布在多个站点上并通过数据通信网络互连的多个计算机上执行。

在本说明书中,术语"引擎"广泛地用于指被编程以执行一个或多个特定功能的基于软件的系统,子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定的引擎;在其它情况下,可以在同一台或多台计算机上安装和运行多个引擎。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机来执行,所述可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流程也可由专用逻辑电路(例如,FPGA或ASIC)或由专用逻辑电路与一个或一个以上经编程计算机的组合来执行。

适于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其它类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。通常,计算机还将包括或被可操作地耦合以从一个或多个大容量存储设备接收数据或向一个或多个大容量存储设备传送数据,所述大容量存储设备用于存储数据,例如磁盘,磁光盘或光盘。然而,计算机不必具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话,个人数字助理(PDA),移动音频或视频播放器,游戏控制台,全球定位系统(GPS)接收器,或便携式存储设备,例如通用串行总线(USB)闪存驱动器,仅举几个例子。

适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,介质和存储器设备,包括例如半导体存储器设备,例如EPROM,EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;CD-ROM和DVD-ROM盘。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器,以及键盘和定点设备,例如鼠标或轨迹球,用户可以通过该定点设备向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈,听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音,语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求向用户设备上的web浏览器发送网页。此外,计算机可以通过将文本消息或其它形式的消息发送到运行消息传送应用程序的个人设备(例如,智能电话),并接收来自用户的回应消息来与用户交互。

用于实现机器学习模型的数据处理设备还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集型部分,即,推理,工作负荷。

机器学习模型可以使用机器学习框架来实现和部署,例如,TensorFlow框架,MicrosoftCognitiveToolkit框架,ApacheSinga框架或ApacheMXNet框架。

本说明书中所描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面,web浏览器或应用程序的客户端计算机,用户可以通过该客户端计算机与本说明书中所描述的主题的实现进行交互。或一个或多个这样的后端,中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。

计算系统可以包括客户机和服务器。客户机和服务器通常彼此远离,并且通常通过通信网络进行交互。客户机和服务器之间的关系是通过在各个计算机上运行并且彼此具有客户机-服务器关系的计算机程序而产生的。在一些实施例中,服务器将数据(例如,HTML页面)传输到用户设备,例如,用于向用户显示数据和从用户接收用户输入,所述用户与充当客户端的设备交互。在用户设备处生成的数据(例如,用户交互的结果)可以在服务器处从设备接收。

虽然本说明书包含许多具体的实现细节,但这些不应被解释为对任何发明的范围或所要求保护的范围的限制,而应被解释为对特定发明的特定实施例可能特定的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管上面可以将特征描述为在某些组合中起作用,并且甚至最初如此要求保护,但是在一些情况下,可以从组合中切下要求保护的组合的一个或多个特征,并且要求保护的组合可以针对子组合或子组合的变型。

类似地,虽然在附图中描述了操作并以特定顺序在权利要求中叙述,但这不应被理解为要求以所示的特定顺序或以顺序的顺序执行这些操作,或者要求执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为需要所有实施例中的这种分离,并且应当理解,所描述的程序组件和系统通常可以被集成到单个软件产品中或者被封装到多个软件产品中。

已经描述了本主题的特定实施例。其它实施例在所附权利要求的范围内。例如,权利要求中所述的动作可以以不同的顺序执行,并且仍然获得期望的结果。作为一个实例,附图中所示的过程不一定需要所示的特定顺序或顺序,以获得所需的结果。在一些情况下,多任务和并行处理可能是有利的。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号