一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于机器人拣选的系统和方法与流程

2022-06-18 14:13:19 来源:中国专利 TAG:

用于机器人拣选的系统和方法
1.相关申请的交叉引用
2.本技术与于2019年9月7日提交的题为“application for patent”的第62/897,282号美国临时专利申请相关并且要求享有该美国临时专利申请的优先权,该美国临时专利申请通过引用整体并入本文。


背景技术:

3.近几十年来,机器人技术领域已经迅猛发展。机器人可以是能够执行某些计算机程序以执行任务的物理机器。机器人和类似的操纵器系统通常在许多商业场合和工业场合中使用,以用于精确或重复移动。机器人可以被用来拣选(pick)和放置零件、焊接、访问人类难以到达或人类到达不安全的定位(location)、以及在许多其他应用中帮助人类。
4.为了让机器以真正有用的方式执行,它必须能够感测或感知在它周围正在发生的事情的至少一些方面,并且将该知识应用于未来的决策。机器仅仅被编程为重复一个任务或动作,遇到问题或经常被卡住,因此需要人工干预并且有时甚至完全违背拥有机器人的目的。机器人和机器常常由某种程度的计算机视觉导引。计算机视觉可以允许机器人系统从数字图像、视频、扫描和类似的视觉机制获得对其环境的了解。高级视觉系统可以被使用,使得机器可以准确地获取、处理和分析来自现实世界的数据。机器学习技术允许机器接收输入并且基于所述输入生成输出。一些机器学习技术利用具有一个或多个隐藏层的深度人工神经网络来执行导致输出的一系列计算。
5.在人类大脑之后松散地建模的人工神经网络学习从输入到输出的映射函数并且被设计为识别图案。深度神经网络包括输入层和输出层,在输入层和输出层之间具有一个或多个隐藏层。所述层由节点构成,在所述节点中进行计算。各种训练方法被用来训练人工神经网络,该人工神经网络使用优化来基于失败不断更新各个节点处的权重,直到实现令人满意的模型。当前存在许多类型的深度神经网络,并且它们被用于各种各样的应用和行业——包括计算机视觉、序列预测、自动驾驶、医疗手术、航空航天以及许多其他应用。深度人工神经网络的一个优点是能够通过示例进行学习,而不是需要特定的编程来执行任务,尤其是当任务需要不可能的大量编程来执行它们今天被用于的操作时。
6.在此部分中提供的信息作为背景信息呈现并且仅用于帮助对本公开内容的任何理解。对于任何以上所述是否可以适合作为相对于本公开内容的现有技术,未作出任何确定并且也没有作出任何断言。


技术实现要素:

7.提供本发明内容以便以简化的形式介绍一系列构思,下文在具体实施方式中进一步描述了所述构思。本发明内容不意在确认所要求保护的主题的关键特征或必要特征,也不意在被用作辅助确定所要求保护的主题的范围。
8.本技术的多个实施方案总体上涉及机器人设备(robotic device,机械设备)和人工智能。更具体地,一些实施方案涉及一种用于从箱(bin)中拣选物品和扰动(perturb)箱
中的物品的机器人设备。当不存在具有合理的成功概率的拣选选项时,可以执行扰动。该机器人设备包括一个或多个拣选元件和一个或多个扰动元件。在一些实施方案中,该机器人设备是机器人臂(robotic arm,机械臂),该机器人臂具有耦合到该机器人臂的拣选元件和扰动元件。一个或多个拣选元件可以被用来拾取(pick up)箱中的物品。一个或多个扰动元件可以被用来将高压空气吹入箱内,以扰动箱的内容物。在一些实施方式中,可以在不存在具有合理的成功概率的拣选选项时执行扰动。在一些实施方案中,该机器人设备可以包括或多个计算机视觉系统。
9.根据本文所描述的技术的计算机视觉系统可以包括产生二维(2d)图像的两个摄像机。用每个摄像机可以拍摄一区域的2d图像。然后可以关联两个图像以生成该区域的三维(3d)信息。本文的机器人设备可以使用包括3d信息的渲染图像来识别箱中的不同的对象和几何结构,从而确定拣选策略和定位,并且可以确定扰动策略。此外,公开了一种训练所描述的计算机视觉系统的方法。
10.该视觉系统可以被训练以基于已知的真实(ground-truth)数据根据2d图像生成3d信息。在一些实施方式中,由3d摄像机生成的3d映射被用来提供用于训练的真实数据。计算机渲染的模拟也可以被用来提供用于训练的真实数据。
11.此外,本文包括一种在人工神经网络应用于机器人设备和计算机视觉系统时训练所述人工神经网络的方法。在一些实施方式中,该方法包括用机器人设备尝试任务,其中该机器人设备未能成功完成该任务尝试。该方法还包括泛化(generalize)与失败尝试相关的信息并且将与失败尝试相关的泛化信息转移(transfer)到类似的场景。泛化信息包括关于也可能导致失败的类似的场景的信息。在转移和泛化之后,该机器人设备再次尝试该任务。该机器人设备可以重复此过程直到成功为止或甚至可以在成功之后继续。
附图说明
12.参考以下附图可以更好地理解本公开内容的许多方面。附图中的部件不一定按比例绘制。此外,在附图中,在所有数个视图中相似的附图标记指定对应的部分。虽然结合这些附图描述了数个实施方案,本公开内容不限于本文所公开的实施方案。相反,其意图是涵盖所有替代方案、改型和等同物。
13.图1例示了根据本技术的一些实施方案的用于拣选和扰动箱中的物品的机器人臂的一个示例;
14.图2是例示了根据本技术的一些实施方案的用于拣选和扰动箱中的物品的示例性的一系列操作的流程图;
15.图3例示了根据本技术的一些实施方案的用于导引机器人从箱中拣选物品的图像处理和推理环境;
16.图4是例示了根据本技术的一些实施方案的用于决策制定、拣选物品和扰动物品的示例性的一系列操作的流程图;
17.图5例示了根据本技术的一些实施方案的如何使用两个摄像机来创建用来感知箱中的一组物品的深度的图像的一个示例;
18.图6例示了根据本技术的一些实施方案的如何使用一组二维图像来经由人工神经网络产生单个深度图的一个示例;
19.图7例示了根据本技术的一些实施方案的用于学习感知深度的训练环境的一个示例;
20.图8是例示了根据本技术的一些实施方案的少样本训练(few-shot training)模型中的示例性的一系列步骤的流程图;以及
21.图9是本技术的一些实施方案可以在其中被使用的计算系统的一个示例。
22.附图不一定按比例绘制。类似地,出于讨论本技术的一些实施方案的目的,一些部件或操作可以不被分成不同的块或被组合成单个块。此外,虽然该技术可以修改为各种改型和替代形式,但是具体实施方案已经通过示例的方式示出在附图中并且下文对其进行详细描述。然而,其意图不是将该技术限制于所描述的具体实施方案。相反,该技术意在涵盖落入如由所附权利要求所限定的技术的范围内的所有改型、等同物和替代方案。
具体实施方式
23.以下描述和相关联的附图教导了本发明的最好模式。出于教导发明原理的目的,可以简化或省略该最好模式的一些常规方面。以下权利要求指定了本发明的范围。注意,最好模式的一些方面可能未落入由权利要求所指定的本发明的范围。因此,本领域技术人员将理解落入本发明的范围内的从最好模式的变化。本领域技术人员将理解,下文所描述的特征可以各种方式组合以形成本发明的多个变化。因此,本发明不限于下文所描述的具体示例,而仅由权利要求以及其等同物限制。
24.机器人可以被编程以执行各种各样的任务,包括抓握(grasp)、拣选和移动。然而,用传统的编程方法,必须经由书写代码确切地告诉机器人对于每一个单个移动要做什么。虽然机器人继续发展并且服务于重复的、费力的、不安全的或其他不受欢迎的任务,但是它们持续地不满足执行不能够被直接编码成程序并且需要至少某一程度的直觉的任务。通过各种学习技术和计算机视觉而不是遵循预先编程的轨迹,智能机器人可以能够更像人类一样感知和执行。
25.自主机器人应能够感知和识别其周围的环境并且处理该信息以提出执行任务的方法。因此,如果机器人正从箱中拣选物品,它应能够感测特定物品的定位和位置(position),并且应用该定位和位置来确定如何拾取该物品和将其移动到期望的定位。能够感测和应用该知识的机器人,即使在高度重复的场合中,也急剧地减少了对人工干预、操纵和帮助的需要。因此,举一些例子,当物品未被完美堆叠或当机器人卡住时,可能不再需要人类在场。如果机器人经常卡住,这可能完全违背拥有机器人的目的,因为可能需要人类经常帮助机器人。
26.此外,已经被设计用以完成工业任务或商业任务的机器人,诸如被配置为从箱中挑选物品的机器人,面临许多问题。即使具有最先进的机器人臂以及感测和制定决策的能力,由于各种原因,机器人也无法完成诸如从箱中拣选每一个物品的任务。挑战包括具有难处理的形状的物品、箱内难以到达的地点或定位(诸如角落)、各种各样的物品材料和尺寸、以及类似的挑战或未知。为了准确地导引机器人系统,需要先进的计算机视觉系统。计算机视觉系统可以能够为系统提供高质量的视觉信息,该视觉信息可以被用来了解深度、几何结构、不同的形状或物品、材料属性等。此外,目前由机器人臂使用的每个夹持器(gripper)具有一些弱点,其中它可能不能够夹持某些物品。无限数目的可能布置致使几乎不可能保
证机器人每次都将能够拾取箱中的每一个单个物品。基于目前的机器人所面临的各种各样的挑战,公开了一种用于用机器人设备拣选和扰动箱中的物品的新技术。
27.因此,除了控制和训练机器人的系统和方法之外,本发明的多个实施方案总体上涉及一种用于执行任务的机器人。更具体地,一些实施方案包括一种用于智能地扰动和从箱中拣选物品的机器人。根据本技术的一些实施方案,一种用于从箱中拣选元素的机器人包括两个操纵装置(effector):拣选器元件和扰动元件,它们可以是不同的物理部件或相同的物理部件,这取决于具体实施方案。如先前所提到的,用于从箱中拣选物品的先进机器——诸如机器人臂——可以非常熟练地拣选大多数物品,但是达不到能够在每一个位置、每一次都从箱中拣选每一个物品。这可能是部分由于机器的设计上的、导致某些角度和定位难以访问的物理约束或限制。这些限制也是由于各种各样的材料和物品可能位于的位置。因此,除了可以从箱中拣选物品和将它们移动到新定位的拣选器元件以外,在机器人设备上包括扰动元件。在某些实施方案中,该机器人设备是具有基于抽吸的拣选元件和基于高压空气的扰动元件的机器人臂。
28.根据本技术,该扰动元件扰动箱中的物品的目前布置。该机器人设备可以包括一个或多个扰动机构。在某些实施方式中,该扰动元件是压缩空气阀。机器人可以使用该压缩空气阀将高压空气吹入箱内,以重新布置箱中的一个或多个物品。通过扰动箱中的物品,所述物品可以移动,使得然后可以从不同的位置拾取它们。扰动可以总体的方式或有针对性的方式发生。例如,在总体的扰动策略中,机器人可以沿围绕箱的边缘的轨迹不断将压缩空气吹入箱内。以此方式,箱中的大部分或所有物品可能由于被压缩空气吹乱而移动。在扰动完成之后,机器人然后可以再评估箱中的物品的布置并且再尝试拾取物品。在其他实施方式中,可以使用扰动元件,而无需耦合到拣选元件。在这样的情况下,扰动元件对于出于除了拣选以外的目的而扰动对象可以是有用的。在一些实施方案中,拣选元件和扰动元件是相同的物理部件。例如,一个或多个吸杯可以被用于拣选和扰动。类似地,空气阀可以被用于经由抽吸来拣选物品和通过吹压缩空气或通过物理接触(例如,将物品撞翻)来扰动物品。
29.替代地,机器人可以有针对性的方式扰动箱中的物品。在有针对性的扰动策略中,机器人可以离散的方式或连续的方式吹压缩空气,或物理地触摸物品,以便以特定的方式或非特定的方式扰动特定物品。例如,如果标志物(marker)直立地站立在箱的角落中,许多类型的拣选元件由于该标志物的位置可能挣扎着抓取(grap)该标志物。因此,扰动元件可以将该标志物击倒到其一侧以使它更更容易拾取。如果扰动元件成功击倒该标志物,则它可以再尝试拾取该标志物。如果扰动元件未能击倒该标志物,因为它可能仅将其推动朝向角落,例如,扰动元件可能尝试一种替代方式。在一个不同的尝试中,扰动元件可以将压缩空气在该标志物的后面吹入后面的角落,以使该标志物倒下或移动远离该角落。如果扰动元件成功移动该标志物,则它可以再尝试拾取该标志物。如果扰动元件未能移动该标志物,它可能尝试另一种扰动方法。例如,在又一个扰动尝试中,扰动元件可以采取总体的、无针对性的方式,其中它连续地围绕箱的内周界吹空气。以此方式,扰动元件可以有效地通过总体扰动扰乱(disturb)标志物的位置,并且随后再尝试拾取该标志物。
30.机器可以继续尝试以此方式扰动和拾取标记,直到它成功。扰动技术和策略可以排除任何所提到的方式和方法,或可以包括附加的方式和方法,诸如搅拌,作为一个示例。
先前的示例中的操作顺序仅仅出于解释的目的而被呈现,并且不意在限制实际的操作序列、限制步骤的数目或限制扰动方式的类型。实际的操作顺序可以变化,包括但不限于具有更少的步骤、具有附加的步骤、具有附加的方法、具有不同的步骤和方法的顺序,或其类似变化。
31.拣选元件可以包括一个或多个不同类型的拣选机构,包括但不限于夹紧(pinching)机构、夹持(gripping)机构、抓取(grabbing)机构、机器人手、平行板机构、抽吸或真空机构、磁体或磁性机构、或能够拣选物品的类似机构。在本技术的一个示例性实施方案中,一种机器人臂包括用于从箱中拣选物品的抽吸机构(即,拣选元件)和用于扰动箱中的元素的压缩空气阀(即,扰动元件)。尽管抽吸机构可以拾取许多不同形状、尺寸、定向和材料的对象,但是由于位置限制、材料限制以及类似的物品或设备相关的限制,它可能仍然不能够拾取某些物品。因此,扰动元件可以经由压缩空气或触摸重新定位对象,使得可以实现拣选。
32.例如,如果拣选设备(即,机器人臂和抽吸元件)需要从箱中拾取一双袜子,它可能不能够直接拣选袜子,因为它们的多孔织物使得不能够在它们和抽吸元件之间形成真空。然而,袜子可以包括附接到它们的、拣选器可以用抽吸元件成功抓取的标签。因此,如果标签正在示出,机器可以识别出它应尝试通过袜子的标签来拾取袜子并且继续这样进行。如果尝试失败,或如果标签对机器是不可见的,该机器可以启动扰动序列。例如,由于袜子的位置,该机器可以意识到将有针对性的一股压缩空气吹向袜子最有可能成功扰动袜子。因此,该机器将尝试所确定的扰动。在扰动尝试之后,该机器针对它可能能够成功拾取的物品再评估箱。如果袜子的标签正在示出,该机器可以再尝试使用抽吸元件抓取该标签来拾取袜子。如果尝试成功,该机器可以继续移动到具有下一个最高拣选成功概率的另一个物品。如果尝试未成功,该机器可以在此期间继续移动到另一个物品或重新启动扰动序列。该扰动序列可以是与第一次尝试类似的技术,或可以是不同的技术,例如总体的箱扰动。
33.在一些实施方案中,当评估箱布置、确定要尝试拣选哪些物品、确定成功的可能性、确定如何拣选物品、确定何时以及如何扰动一个或多个物品,或附加的步骤时,该机器可以遵循预先确定的一系列步骤。在替代实施方案中,该机器可以针对每种情况对最适当的一系列步骤制定决策,从而致使每个序列对象部分地或完全地不同于先前的序列或本文所提供的任何示例性序列。
34.本文所描述的技术不应限于拣选和扰动箱中的物品。本技术具有许多应用,其中一种用于拣选和扰动物品或对象的机构是有用的。在一些示例中,本文所描述的机器人设备可以被用来拣选和扰动机器人设备可访问的任何区域内的物品,所述区域是诸如平坦表面、传送带、物品堆和其他定位或场景。该区域可以包括壁或障碍物,类似于箱,或可以不包括任何限定的边界。在一些示例中,本文中的机器人设备可以被用来在类似于箱的区域中拣选和扰动物品,该区域是诸如桶、盒子、桶、板条箱、床或与所列出的区域类似的区域。出于解释和清楚的目的,在本文所包括的许多示例中使用了箱,但是本技术对于许多其他类型的区域是有用的并且这些用途被预期。
35.图1例示了根据本技术的一些实施方案的具有用于拣选和扰动箱中的物品的机器人臂的商业环境100的一示例。商业环境100包括机器人臂105和箱125。机器人臂包括视觉系统110、拣选元件115和扰动元件120。箱125容纳可以在仓库、商业场合或工业场合中找到
的各种各样的物品,包括铅笔、罐、杯子、袜子和用具。根据本公开内容,许多其他类型的物品可以在箱中以供拣选。在本示例中,机器人臂105是六自由度(6dof)机器人臂。拣选元件115和扰动元件120被设计用于从箱125中拣选所有物品并且将它们移动到不同定位。在某些实施方式中,机器人臂可以一次拣选一个物品并且将物品分类到它们各自的分类定位中。
36.拣选元件115可以包括用于抓取箱125中的物品的一个或多个拣选机构。拣选机构可以包括抽吸机构、夹持机构、机器人手、夹紧机构、磁体或根据本公开内容可以使用的任何其他拣选机构。在一些示例中,拣选元件115附加地可以被用于扰动,诸如戳刺、触摸、搅拌,或被用于以其他方式移动箱125中的任何物品,仅举几个例子。机器人臂105可以移动和定位拣选元件115,使得它能够拾取箱125中的物品。在某些实施方案中,使用深度人工神经网络来确定要拾取哪个物品以及如何拾取它。深度神经网络(dnn)可以被训练以导引物品拾取和确定哪些物品具有最大拾取成功概率。在其他实施方案中,拣选可以由不使用dnn进行决策制定的程序导引。
37.在本示例中,扰动元件120是连接到气动空气供应装置的气动空气阀,其中该气动空气阀在某些情况下将压缩空气吹入箱125内。扰动元件120可以在如下情况中被使用:dnn或另一个模型确定按照物品目前的目前布置该扰动元件将能够用拣选元件115拾取箱125中的任何物品的概率低。在一些示例中,机器人臂可能已经尝试并且未能拣选箱中的每一个可见物品,并且因此决定启动扰动序列。可以总体的方式或有针对性的方式以及以连续的方式或离散的方式进行扰动。在扰动期间,扰动元件120可以通过将压缩空气吹入箱125内来扰乱箱125中的物品的目前布置。压缩空气可以被吹入箱125的特定位置以试图移动特定物品。除此以外,可以总体模式、在箱中的随机位置或以可以扰乱物品的目前布置的任何其他方式将压缩空气吹入整个箱内。
38.视觉系统110可以包括任何数目的视觉仪器,诸如摄像机或扫描仪,以导引运动、拣选和扰动。视觉系统110接收视觉信息并且将其提供给计算系统进行分析。基于由视觉系统110提供的视觉信息,系统可以导引由机器人臂105采取的运动和动作。视觉系统110可以提供可以被用来辨认几何结构、材料属性、不同的物品、箱边界的信息以及与从箱中拣选物品有关的其他视觉信息。基于此信息,系统可以决定尝试拾取哪个物品,并且然后可以使用视觉系统110将机器人臂105导引至该物品。视觉系统110还可以被用来决定箱中的物品应被扰动以提供更高的拣选成功概率。在本示例中,视觉系统110被安装到机器人臂105。然而,视觉系统110可以位于它可以恰当地察看箱125的任何其他定位,在机器人臂105上或不在机器人臂105上。在一些示例中,视觉系统110可以被安装到固定部件,从该固定部件它可以察看与机器人设备分开的箱125。
39.图2是例示了根据本技术的一些实施方案的机器可以使用以从箱中拣选物品的示例性的一组操作的流程图。在步骤205中,该机器收集箱的内容物的一个或多个图像。该机器可以使用视觉感测、成像、扫描或对于识别箱中的物品有帮助的任何其他类型的基于计算机的视觉。在一些示例中,该机器使用至少一个摄像机拍摄一个或多个图像以查看箱中物品的布置。该机器可以使用3d摄像机、rgb摄像机、类似的摄像机或其变化或组合来对箱中的内容物成像。在本示例中,该机器包括具有真空元件和压缩空气阀的6dof机器人臂。
40.在步骤210中,该机器使用在步骤205中收集的数据来确定拣选策略。可以基于箱
中的物品的数目、箱中的物品的材料属性、箱中的物品的布置或类似的特质或其组合来选择拣选策略。基于这些特质,可以确定拣选各种物品的成功概率和用于每个物品的拣选策略。拣选策略可以包括待被拣选的物品的顺序、如何拾取每个物品、从每个物品上的哪个位置拾取它们、拾取它们的方向或定向、或它们的变化和组合。建议的拣选策略可以包括机器人设备的6dof范围内的任何移动或位置。
41.一旦已经确定了拣选策略,在步骤215中该机器尝试拾取物品。该尝试基于在步骤210中确定的拣选策略。如果机器人臂成功拣选物品,它可以根据场景的需要将物品移动到另一个定位。在一些示例中,该机器然后可以尝试拣选下一个物品。在步骤220中,该机器确定它是否未能拾取该物品。该机器可以基于由于根本未拣选物品而未能创建真空、根据如果物品掉落则真空丢失、或根据基于所使用的拣选方法的其他因素来识别出物品未被拣选。如果该机器确定物品未被成功拾取和移动,则它可以确定箱中的所有选项是否已经被耗尽。如果还存在供拾取的剩余可行选项,则该机器可以返回到步骤215并且尝试拾取不同的物品。如果不存在更好的选项来尝试拾取,该机器可以移动到步骤230。在确定机器是否未能拾取物品之后,与尝试相关的信息可以被存储在存储器中以在将来的决策制定或尝试中使用。可以基于失败的尝试或成功的尝试来存储信息。在一些示例中,该信息然后可以是可访问的以供在下一次尝试时使用,或可以被用来推理出接下来要执行什么动作。
42.在步骤230中,该机器基于图像确定扰动策略。所述图像可以是在步骤205中使用的相同图像,或可以是为扰动分析特别收集的新的一组图像。该数据可以类似地经由摄像机或如先前所讨论的类似的感测或成像方法来收集。基于图像,该机器可以使用与物品的相对位置、物品的数目、物品的材料属性、或与扰动方法相关的其他特质以及其组合相关的信息。该机器可以拣选扰动策略,诸如有针对性的策略或总体的策略、连续的或离散的、物理接触或压缩空气、以及与扰动相关的类似的选项。该机器可以使用其机器人臂将空气吹入箱内、搅拌该箱、击倒物品、触摸物品、或使用类似的扰乱或扰动方法或其组合。在确定该机器将使用的扰动策略之后,在步骤235中该机器执行扰动策略。在一些示例中,该机器可以随后在扰动之后返回到步骤205。在扰动箱中的布置之后,与尝试相关的信息可以被存储在存储器中以在将来的扰动中使用。然后该信息是可访问的,以用于在下一次尝试时使用或用于未来决策制定。例如,扰动策略可以被存储,使得它可以将下一轮拣选中的失败或成功与扰动策略相关联,或可以被用来推理出下一步要采取什么动作。
43.在一些场景中,选择拣选或扰动策略基于预定义的协议。以此方式,该机器可以能够尝试一系列不同的方法,直到它成功。可以基于诸如图像的各种输入来使用预先确定的协议。以这些方式,通用的一组逻辑控制可以被用来确定接下来要尝试什么策略。然而,在一些实施方案中,选择拣选或扰动策略可以基于实施机器学习算法的机器学习技术。可以在机器人拣选和机器人扰动过程的许多部分内实施机器学习技术。出于确定操纵装置(即拣选器元件和扰动元件)拣选和扰动物品的时间、地点、内容和方式的目的,可以实施和训练深度神经网络。出于生成操纵装置逻辑的目的而使用深度神经网络可以允许该机器通过从先前的失败中学习并且不断改进或改善所使用的技术来适应任何情况、布置、物品类型和其他场景。机器学习算法——诸如强化学习、模仿学习、监督学习、非监督学习以及其变化或组合——可以被用于操作本文所描述的机器和方法。
44.图3例示了根据本技术的一些实施方案的环境300内的示例流程。在本示例中,图
像305被用作统一推理模块310的输入并且在统一推理模块310中被处理。图像305可以是由成像或计算机视觉系统拍摄的一个或多个图像。在本示例中,拣选和扰动机器包括6dof机器人臂。耦合到6dof机器人臂的是至少一个摄像机、抽吸阀(即真空)和压缩空气阀。在本示例中,图像305由耦合到6dof机器人臂的至少一个摄像机收集,如图1中所示例的。所述图像在统一推理模块310中被处理。在一些示例中,统一推理模型包括被训练用于分析图像的至少一个深度神经网络。在本示例中,图像分析包括执行分割、辨认材料属性和确定深度。然而,更少或附加的图像分析过程可以被包括在统一推理模块310中并且被预期。
45.分割包括辨认图像305中的不同的对象。分割可以包括有助于寻找不同的对象的各种各样的子过程。了解每个不同的对象的材料属性对于了解关于如何能够拾取物品的限制可以是重要的。了解每个对象的深度可以有助于分割并且也可以有助于何时用机器人设备接近和拾取物品。尽管出于例示的目的将分割、材料属性和深度例示为单独的输出,但是统一推理模块310的输出可以是单个、统一的模型,该模型包括与所讨论的各种类型的数据或输出的数据的变化或组合相关的信息。
46.统一推理模块310的一个或多个输出用作排序和决策模块315的输入。排序和决策模块315可以处理由统一推理模块310提供的统一模型以产生潜在的拾取点的排序。该排序可以包括根据成功拾取概率的对物品的排序和根据成功拾取概率的对一个物品或多个物品上的点的排序。在一些示例中,不同类型的排序可以被包括在同一列表中。排序模型可以包括一个或多个深度神经网络,所述深度神经网络已经被训练用于对拾取选项中的成功概率进行排序。排序模型可以提供一组建议的拾取策略,所述拾取策略包括在6dof机器人臂的范围内的抓握和定向。基于排序模型和建议的拾取策略,排序和决策模块315决定尝试什么。排序和决策模块315然后可以输出该决策。基于该决策,机器人臂尝试在指定的点处拾取指定的对象。
47.图4是例示了根据本技术的一些实施方案的机器可以使用以从箱中拣选物品的示例性的一组操作的流程图。在步骤405中,该机器评估箱以收集关于箱中的物品的当前状态的信息。该机器可以使用视觉感测、成像或对于识别箱中的物品有帮助的任何其他类型的感测。在一些示例中,该机器可以使用至少一个摄像机拍摄一个或多个图像以查看箱中的物品的布置。该机器可以使用3d摄像机、rgb摄像机或类似的摄像机或其变化或组合来对箱中的内容物成像。
48.在步骤410中,该机器使用在步骤405中收集的数据来推理出箱中的情况。在一些实施方案中,此推理包括分割。经由分割,该机器可以推理出或识别箱内的不同的对象。在一些示例中,分割是在诸如深度神经网络的机器学习算法中实施的,其中该机器可以学习如何有效地识别不同的对象并且随后在分割方面进行改进。在训练之后并且随时间的推移,该机器可以从先前的失败中学习,以不断在分割出不同的物品方面进行改进。在步骤410期间,该机器可以进一步推理出不同的对象的几何结构、对象相对于该机器或箱的深度或距离、不同的对象的材料属性、或类似的特质以及包括其组合的特征。与分割类似,该机器可以包括智能学习结构,该智能学习结构可以学习如何有效地推理出所提到的特质和特征,并且随后在识别它们方面进行改进。
49.在步骤415中,该机器推理出具有最高拣选成功概率的物品和点。由该机器执行的推理可以基于来自先前的拣选经验或尝试的知识。该机器可以寻找物品以及物品上已经知
道的或学习的已经在历史上导致成功的元素的位置。例如,返回参考袜子的示例,该机器可以搜索平坦标签来通过其抓取袜子,因为它从先前的经验知道该机器通过平坦表面拾取东西时很可能成功。在给定的物品上,该机器可以拣选各种各样的点,并且推理出对于拾取物品而言哪些点比其他点更好。在某些实施方案中,该机器对对象和位置都使用排序模型。使用排序模型,该机器可以通过该机器成功拾取每个物品的概率对视图中的物品进行排序。类似地,该机器可以根据在该点处成功拾取的概率对各种对象上的点进行排序。基于排序,该机器可以产生一组建议的抓握和定向以尝试拣选物品。类似于步骤410,在步骤415中执行的推理可以在机器学习结构中实施。使用经训练的深度神经网络,该机器可以从先前的失败中学习,并且基于所提供的信息在识别和选择拣选策略方面进行不断改进。由该机器建议的抓握和定向可以在臂的完整的运动范围内,在一些实施方案中,该臂可以是包括基于抽吸的拣选机构的完整的6dof机器人臂。这样,深度神经网络可以是对无限数目的可能拣选策略进行分类的有效解决方案。
50.在步骤420中,该机器尝试在箱中的排序最高的(即,最有希望的)点附近拾取物品并且将该物品移动到新定位。在一些示例中,该新定位可以是不同的箱。如果该机器正被用来从箱对物品进行分类,该机器可以将物品移动到其对应的、经分类的箱中。如果该机器成功拾取物品并且将该物品移动到其新定位,该机器可以沿排序向下继续并且尝试在箱中的下一个最高排序的点附近拾取物品。
51.在步骤425中,该机器确定它是否未能拾取物品。在基于抽吸的拣选元件的示例中,如果该机器掉落物品或通过确定在抽吸元件和物品之间从未形成真空而从未发生拣选,该机器可以能够感测拾取失败。如果该机器未能拾取物品,它移动到步骤430以确定箱中是否存在更多选项来尝试。如果存在更多选项,该机器可以尝试在下一个最高排序的点附近拾取物品。下一个最高排序的点可以在相同的物品或不同的物品上。如果箱中的每一个选项都已经失败(即,排序中的每个物品点都已应被尝试),该机器继续移动以扰动。在确定该机器是否未能拾取物品之后,可以存储与最后一次尝试相关的信息。然后可以在未来的尝试中实施和使用该信息。
52.在步骤435中,该机器评估箱以收集关于箱中的物品的当前状态的信息。此数据可以经由摄像机或先前所讨论的类似的感测或成像方法来收集。在步骤440,该机器推理出扰动箱中的多个物品或单个物品的最好方式。该机器可以拣选扰动策略,诸如有针对性的或总体的、连续的或离散的、物理接触或压缩空气、以及类似的用于扰动的选项。该机器可以使用其机器人臂将空气吹入箱内、搅拌箱、击倒物品、触摸物品或类似的扰动方法、变化、或其组合。该机器选择首先尝试哪种方式可以取决于目前的场景、先前的学习经验、预先确定的顺序或类似的协议。该方式可以至少部分地基于箱中剩下多少物品。类似于通过先前所讨论的步骤进行的推理,推理出扰动策略可以在机器学习结构内实施。使用经训练的深度神经网络,该机器可以能够基于它已经从先前的扰动失败中学习的知识有效地确定具有最高成功可能性的扰动策略,并且随时间的推移不断提高其拣选扰动策略的能力。
53.最后,在步骤445中,该机器执行所确定的扰动策略。在一些场景中,该机器然后可以返回到步骤405并且再评估箱内的目前情况。替代地,该机器可以返回到不同的步骤,诸如在步骤435中再评估箱或特定物品并且尝试不同的扰动策略。在执行扰动策略之后,可以存储关于扰动策略和执行的方法的信息。在一些示例中,然后可以在未来的扰动方法中实
施和使用此信息。
54.几种确定深度的方法——包括三维(3d)成像——存在,但是达不到每一个场景中准确地确定深度。3d摄像机常常在困难的成像场景中提供不正确的结果。这些场景包括尝试对反射材料、半透明材料、低纹理材料、重复图案和实体进行成像,仅举几个例子。
55.图5例示了根据本技术的一些实施方案的成像技术。本示例包括摄像机505、摄像机510、箱515、图像520和图像525。在本示例中,两个数字红-绿-蓝(grb)摄像机以相距固定距离安装并且被用来确定深度。为了确定深度,用摄像机、摄像机505和摄像机510中的每个拍摄箱515的图像。摄像机505产生图像520并且摄像机510产生图像525。然后使用深度神经网络(dnn)深度模型将这两个图像重叠。一旦dnn已经被训练以确定深度,它能够基于训练数据找到这两个图像之间的大部分或全部匹配像素(即“对应关系”)。在另一种更传统的方法中,可以使用三角测量来基于像素之间的距离、已知的摄像机505和摄像机510之间的距离以及已知的描述摄像机的光学几何结构的固有参数来找到用于每个像素的深度值。
56.训练数据可以被用来教导dnn如何确定深度,即使在诸如反射材料、半透明材料、低纹理材料、重复图案、纯色和类似的有挑战性的情况的困难场景中。在训练dnn以基于图像确定深度之后,可以仅使用两个rgb摄像机——摄像机505和摄像机510——来准确地感知深度。尽管本示例使用两个rgb摄像机,但是可以使用其他类型的摄像机或不同数目的摄像机来实现相同的结果,并且预期本示例的变化。
57.此外,图5中所示出的计算机视觉系统可以被用于除深度感知和3d映射之外的目的。该计算机视觉系统可以被使用和训练以估计材料属性、3d边界框、以及与各种拣选或扰动任务相关的许多其他类型的信息。
58.图6例示了根据本技术的一些实施方案的示例流程600,其中由两个rgb摄像机产生的图像被用来生成单个图像的深度图。图像605可以是在图5的示例中产生的图像或可以是替代的一组图像。图像605被用作dnn 610的输入。在一些示例中,整个图像可以被用作dnn 610的输入,而在其他示例中,来自图像的像素组或超像素可以被用作dnn 610的输入。在一些实施方案中,dnn 610是卷积神经网络。在某些实施方案中,dnn 610可以表示不止一个神经网络。图像615被产生作为dnn 610的输出。在由dnn 610输出之后,图像615为图像中的每个像素提供一个深度值,如图6中所例示的。图像615可以是完整的渲染图像或原始图像的与输入的像素组相关的一较小部分。在一些示例中,深度值是给定的像素中的物品与摄像机的距离。本示例中所示出的深度图仅仅是出于解释的目的。实际深度图和图像可以包含远多于可以在本示例中所例示的像素。
59.为了使dnn如在上文的成像示例中所描述的那样操作,dnn训练包括一种用于训练dnn使得其学习使用两个rgb图像来产生深度图的方法。查看深度在图像分析过程(诸如分割、辨认物品几何结构或控制机器人臂)中是重要因素。为了训练dnn以本文所描述的方式产生深度图,可以在真实标注数据上训练dnn,使得它可以学习如何识别深度。在真实标注数据上训练dnn之后,它可以仅仅使用rgb摄像机来确定深度,如先前的示例中所描述的。
60.图7例示了根据本技术的某些实施方案的训练环境700,其中出于察看深度的目的训练dnn。训练环境700包括摄像机505、摄像机510、箱515、3d摄像机705、图像710、图像715和3d图像720。在本示例中,3d摄像机705产生用来训练dnn的图像。训练可以包括任何数目的训练集,其范围从小于十个到几千个。3d图像720提供训练深度图以用于在图像710和715
中参考。因此,在训练之后,dnn可以仅仅从两个rgb图像创建深度图。在一些示例中,3d摄像机705可以将已知的图案投影到一区域上,诸如在箱515中,以确定深度。3d摄像机705拍摄该区域和该图案的3d图像以产生3d图像720。3d图像720可以是包括3d数据的3d扫描或类似类型的图像。可以使用其他3d成像技术来取得所产生的3d图像。使用3d图像720作为参考,dnn可以学习一起使用图像710和图像715来辨认深度。3d图像720校准dnn,使得对于最初具有rgb值的每个像素,可以产生一个深度值,与rgb值一起或代替rgb值。
61.在许多场景中,可以仅使用3d摄像机和rgb摄像机对各种各样的场景或物品进行成像来充分地训练dnn。然而,一些场景可能更具挑战性,诸如在反射率、半透明、低纹理、图案和纯色的情况下。因此,对于针对这些更困难的场景训练dnn来说其他步骤可能是必需的。3d摄像机705可以被用来训练dnn以在这些场景中使用真实标注数据基于rgb图像了解深度。例如,为了针对半透明进行训练,可以使用图7中所示出的训练设置对澄清水瓶进行成像。然而,此成像过程的原始结果可能是不正确的,因为3d摄像机705不能够准确地确定到半透明瓶的距离。因此,可以使用附加的训练图像,其中在不破坏图像中的物品的当前布置的情况下,在半透明瓶之上使用涂层。该涂层可以是使3d摄像机705更容易确定深度的任何薄的、非破坏性的层。该涂层的示例包括但不限于薄粉末、喷漆、替代的类型的喷涂、或替代的类型的涂料。该涂层允许拍摄具有相同3d几何结构但具有改进的用于3d感知的表面的第二训练图像。
62.在拍摄3d摄像机705可以通过其准确地确定深度的附加的训练图像之后,该图像可以被用来训练dnn以仅仅基于两个rgb图像在类似的场景中确定深度。在本示例中,第二3d图像(即具有被涂敷的瓶的图像)包含真实数据。使用真实数据,dnn可以确定对应关系并且使用它们学习何时rgb图像的两个像素相同,即使它们可能看起来不同。在使用3d摄像机705训练dnn的同时,此过程可以被重复任何次。可以形成相同类型的训练以学习在具有反射表面、半透明表面、低纹理表面、重复图案、纯色和其他困难场景的图像上辨认深度。如先前所讨论的,可以使用任何数目的训练集,其范围从少于十个到数千个以上。
63.一种替代的用于训练dnn以辨认深度的方法可以使用模拟。与参考图7所描述的方法类似,3d模拟可以被用来基于非3d图像(诸如图像520和525)在dnn中训练深度。在一个模拟数据集中,真实数据已经是已知的,因为模拟环境中的所有事物都已经被虚拟地渲染。因此,可以在模拟环境中创建对象,其中完全准确的深度图自动可得。使用模拟环境,可以训练dnn以基于已知的真实标注数据感知深度。模拟环境为在各种情况、多个视图中进行训练提供了许多机会,并且以比使用真正的、物理数据集进行训练更快的速率执行许多训练集,诸如参考图7所描述的。
64.使用深度神经网络,诸如在本文所描述的拣选、扰动、分割、排序和深度感知模型中所使用的那些,来学习从输入到输出的映射函数。生成映射函数是通过dnn训练过程完成的。许多各种类型的训练和机器学习方法目前存在并且通常被使用,所述方法包括监督学习、无监督学习、强化学习、模仿学习以及许多其他学习。在训练期间,响应于误差、失败或错误,不断更新dnn中的权重。为了创建鲁棒的、工作的模型,训练数据被用来最初拨入权重,直到找到足够强大的模型或学习过程被卡住并且被迫停止。在一些实施方式中,权重可以在整个使用期间继续更新,甚至在训练周期结束之后,而在其他实施方式中,它们可以不允许在训练周期之后更新。
65.在一些场景中,训练神经网络可以是使用人工神经网络的最困难的部分。神经网络的参数是使用通过许多个或有时无限个可能的解决方案进行优化来找到的。现代深度学习模型——尤其是用于计算机视觉和图像处理的模型——基于卷积神经网络,尽管也可以包含其他深度生成模型。如本文所描述的,使用人工神经网络用于拣选、扰动、分割、排序和计算机视觉过程首先需要训练过程。大多数训练过程是复杂的并且需要大量时间。可以使用各种各样的训练方法来训练机器人臂以智能地拣选和扰动箱中的物品。然而,公开了一种使机器通过从一些先前的错误中学习来快速学习新技能的方法,该方法也称为少样本训练。在一些示例中,少样本训练可以被用来训练用以执行任务的机器人设备,诸如图1的机器人臂,但是也可以在多种多样的应用中在训练人工神经网络中被使用。
66.图8是例示了参考图1的示例的少样本训练过程的示例的一组操作的流程图。操作的序列可以应用于任何人工神经网络学习环境并且不意在仅仅用于在机器人设备或物品拣选中使用。用于拣选箱中的物品的机器人臂仅仅是出于解释的目的。在少样本训练过程中,机器(诸如图1的机器人臂)使用转移(transference)和泛化(generalization)从失败中学习。与先前的神经网络训练方法相比,以此方式从失败中学习需要少得多的训练数据集和试错尝试。
67.在步骤805中,机器人臂尝试在点1处从箱中拣选标志物。点1可以是标志物上的任何点。例如,点1可以是标记物的帽的边缘上的点。在一些场景中,步骤805可以是机器人臂第一次尝试拾取标志物,而在其他示例中,它可能先前已经尝试拾取相同的标志物或类似的标志物。在步骤810中,机器人臂未能拾取标志物。未能拾取标志物可以包括从未成功抓取或在拣选元件和标志物之间产生抽吸,或可以包括拣选标志物并且随后将其掉下。
68.在未能拾取标志物之后,在步骤815中,机器人臂将从失败中获得的知识转移并且尝试将其泛化到标志物的其他区域。例如,如果机器人臂包括计算机视觉系统——例如图5的计算机视觉系统,它可以识别出它尝试通过帽的边缘拣选标志物。在标志物的帽的边缘处的失败可以被泛化到包含与点1类似的元素的其他像素或区域,诸如包括帽的边缘的所有像素。在一些示例中,标志物的边缘可以具有无限个点,因此如果机器仅学习避开它在步骤805中尝试的单个点,它可能继续尝试沿标志物的边缘的其他点,但是它们很可能导致该机器无法拾取标志物。因此,看起来与失败点的像素类似的任何像素或像素组可以被指示为具有高失败概率。与点1不太类似的其他像素可以不被计分或以低失败概率计分,直到机器学习到其他情况。
69.在根据其他像素的失败概率对其他像素进行评级之后,在步骤820中,机器人臂尝试再次拾取标志物,这次在点2处。点2与点1不同。在本示例中,点2是尚未被预测为具有高失败概率的位置。然而,在步骤825中,机器人臂未能拾取标志物。类似于步骤815,在步骤830中,该机器应用并且尝试泛化从第二次尝试获得的知识。例如,如果点2位于标志物的窄端上,与点2周围的像素看起来类似的像素将被已知为具有高失败概率。在第二次尝试中获得的知识与来自第一次的知识结合使用,而不是替代它。以此方式,存储的关于标志物的哪些区域更可能失败的信息已经从先前的尝试增长,从而留下更少的点以供机器人尝试从中拣选。以此方式,机器人可能继续失败并且从先前的失败中学习,直到它找到成功的拣选点。
70.机器指示哪些像素具有比其他像素更高的失败概率的方式可以变化。在一些示例
中,机器可以直接将如下一个数值分配给每个被评级的像素,该数值与每个被评级的像素的失败概率、相对失败概率或某个其他任意系统关联以指示失败概率。在其他示例中,失败概率可以完全不同的方式被存储或记录,诸如在不同的定位,而不使用数字(例如,在颜色映射上),或通过像素组而不是单个像素。
71.最后,在步骤835中,机器人臂尝试在点3处拣选标志物,其中点3不同于点1和点2。在步骤840中,机器人臂成功拣选标志物。在本示例中,机器人臂仅在两次失败尝试之后就成功完成了任务。然而,在其他示例中,机器可能在第一次尝试、第二次尝试、第四次尝试或任何其他尝试时成功。此外,机器可以在成功尝试之后继续学习失败概率。如果机器人臂第一次尝试拾取标志物就成功,但然后需要再次拾取另一个类似的标志物或相同的标志物,则第二次尝试在不同的点处拾取标志物可能失败。然后,当机器继续以此方式或以类似的方式尝试和失败时,它可以继续转移和泛化其知识。
72.机器关于对象收集的知识可以被转移到具有类似特质的其他对象。例如,如果机器学习到尝试通过小边缘拾取物品通常导致失败,它可能知道不去尝试通过小边缘拾取之前从未见过的物品。少样本学习方式的方法可以在dnn中实施。在一些示例中,dnn可以关联每个像素。然而,在一些情况下,相同的物品或类似的物品可能从其他角度或视角看起来非常不同。以此方式,dnn可以被训练以解决此问题。在一些场景中,训练dnn以解决此问题可以包括模拟训练。在模拟训练中,dnn可以学习在相对短的时间段内从多个不同角度识别对象。因此,dnn可能已经练习理解什么是相同的物品,以及当从不同角度察看物品时关联哪些像素具有高失败概率。在其他场景中,dnn可能还未被训练以理解此知识转移,但可能经由试错和另外的经验来学习这样做。
73.在一种替代方法中,dnn可以学习使用相对运动和位置(诸如对象的平移和旋转)将失败区域转移到其他像素,其中计算机可以能够直接将先前位置与新位置关联。此手段在物品的位置可以随时间的推移变化的场景中可能是特别有用的。例如,如果机器人臂正试图拾取标志物,诸如在图8的示例中,它可能意外地将标志物撞翻或移动其相对于机器的位置。在此场景中,机器可以跟踪标志物的相对运动并且将某些像素的知识转移到它们在图像中的新定位。因此,标志物的新状态不意味着先前学习的所有关于标志物的信息都已经丢失。
74.在又一个替代方案中,系统可以被训练以使用人工标注的数据在少样本方法中转移和泛化知识。人工标注的数据可以直接通知系统图像中的像素和类似的区域之间的任何对应关系。此外,诸如各种对象的真实图像的真实图像数据可以被用来训练系统在图像或视图之间转移和泛化知识。本文所讨论的任何少样本训练方法可以被单独使用或与讨论的或出于简洁的目的而未讨论的任何其他训练方法结合使用。可以使用和预期转移和泛化与计算机视觉或人工神经网络有关的知识的其他方法。
75.如先前所提到的,少样本学习的应用扩展远远超出机器人臂从箱中拣选物品的示例。少样本学习可以被应用以出于各种目的训练各种各样的人工神经网络。信息可以被学习和转移或泛化以应用于更宽的一组情况的任何场景可以使用少样本训练方法来训练系统。在一些示例中,用于执行各种任务的另一种类型的自主设备可以使用少样本训练方法来快速学习任务。
76.本文所描述的过程可以在包括软件、硬件、固件和其变化或组合的介质的若干不
同变化中实施。例如,本文所描述的神经网络训练方法可以软件实施,而用于拣选和扰动物品的经训练的神经网络可以完全以硬件实施并且安装在机器人设备中。替代地,机器人设备可以由完全以软件实施在外部计算系统上的经训练的神经网络控制,或可以跨一个或多个设备被实施为两者的组合。类似地,本文的计算机视觉系统和训练方法可以在各种类型的部件上实施,包括完全基于软件的实施方式、完全基于硬件的方面,诸如经训练的计算机视觉系统,或其变化和组合。
77.图9例示了代表可以在其中实施本文所公开的各种过程、程序、服务和场景的任何系统或系统集合的计算系统905。计算系统905的示例包括但不限于台式计算机、膝上型计算机、服务器计算机、路由器、网络服务器、云计算平台和数据中心设备,以及任何其他类型的物理或虚拟服务器机器、物理或虚拟路由器、容器、以及其任何变化或组合。
78.计算系统905可以被实施为单个装置、系统或设备,或可以分布式方式被实施为多个装置、系统或设备。计算系统905可以包括但不限于存储系统910、软件915、通信接口系统920、处理系统925和用户接口系统930。在某些实施方式中,计算系统905的部件可以是可选的或排除的。在本示例中,处理系统925与存储系统910、通信接口系统920和用户接口系统930操作性地耦合。
79.处理系统925从存储系统910加载并且执行软件915。软件915包括并且实施本文所描述的各种过程,所述过程代表关于在前的图所讨论的过程。当由处理系统925执行时,软件915引导处理系统925如本文至少针对在前述实施方式中所讨论的各种过程、操作场景和序列所描述的那样操作。计算系统905可以可选地包括出于简洁的目的而未讨论的附加的设备、特征或功能。
80.仍然参考图9,处理系统925可以包括微处理器和从存储系统910检索和执行软件915的其他电路系统。处理系统925可以在单个处理设备内实施,但是也可以分布在协作执行程序指令的多个处理设备或子系统上。处理系统925的示例包括通用中央处理单元、图形处理单元、应用专用处理器和逻辑器件,以及任何其他类型的处理设备、其组合或变化。
81.存储系统910可以包括能够由处理系统925读取并且能够存储软件915的任何计算机可读存储介质。存储系统910可以包括以用于存储信息的任何方法或技术实施的易失性和非易失性、可移动和不可移动介质,诸如计算机可读指令、数据结构、程序模块或其他数据。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、光学介质、闪存、虚拟存储器和非虚拟存储器、磁带盒、磁带、磁盘存储装置或其他磁性存储设备,或任何其他合适的存储介质。在任何情况下,计算机可读存储介质都不是传播的信号。
82.除了计算机可读存储介质之外,在一些实施方式中,存储系统910还可以包括计算机可读通信介质,通过所述计算机可读通信介质,至少一些软件915可以被内部地或外部地传达。存储系统910可以被实施为单个存储设备,但是也可以被实施在相对于彼此共同定位或分布的多个存储设备或子系统上。存储系统910可以包括能够与处理系统925或可能地与其他系统通信的附加的元件,诸如控制器。
83.软件915可以程序指令实施,并且除了别的功能之外,当由处理系统925执行时,可以引导处理系统925如关于本文所例示的各种操作场景、序列和过程所描述的那样操作。例如,软件915可以包括用于实施机器人控制过程、计算机视觉过程、神经网络训练过程、决策制定过程、分割过程、排序过程或如本文所描述的任何其他推理过程或操作过程的程序指
令。
84.具体地,程序指令可以包括协作或以其他方式交互以执行本文所描述的各种过程和操作场景的各种部件或模块。所述各种部件或模块可以被体现在编译的或解译的指令中,或被体现在指令的某个其他变化或组合中。可以同步方式或异步方式、串行地或并行地、在单线程环境或多线程中、或根据任何其他合适的执行范例、变化、或其组合来执行各种部件或模块。软件915可以包括附加的过程、程序或部件,诸如操作系统软件、机器人控制软件、计算机视觉软件、虚拟化软件或其他应用软件。软件915还可以包括固件或可由处理系统925执行的一些其他形式的机器可读处理指令。
85.通常,软件915在被加载到处理系统925内并且被执行时可以将合适的装置、系统或设备(其中计算系统905代表)总体从通用计算系统整体转变为专用计算系统,该专用计算系统是针对本文所描述的各种操作或过程中的一个或多个定制的。实际上,存储系统910上的编码软件915可以转变存储系统910的物理结构。该物理结构的具体转变可以取决于此描述的不同实施方式中的各种因素。这样的因素的示例可以包括但不限于用来实施存储系统910的存储介质的技术以及计算机存储介质是否被表征为初级或次级存储装置,以及其他因素。
86.例如,如果计算机可读存储介质被实施为基于半导体的存储器,软件915可以在程序指令被编码在半导体存储器内时转变半导体存储器的物理状态,诸如通过转变构成半导体存储器的晶体管、电容器或其他分立电路元件。对于磁性或光学介质,可以发生类似的转变。在不脱离本描述的范围的情况下,物理介质的其他转变是可能的,提供前述示例仅是为了便于本讨论。
87.通信接口系统920可以包括允许通过通信网络或连接(未示出)与其他计算系统(未示出)进行通信的通信连接和设备。一起允许系统间通信的连接和设备的示例可以包括网络接口卡、天线、功率放大器、射频电路系统、收发器和其他通信电路系统。连接和设备可以通过通信介质进行通信,以与其他计算系统或系统网络交换通信,诸如金属、玻璃、空气或任何其他合适的通信介质。上述介质、连接和设备是众所周知的并且不必在此被详细讨论。
88.计算系统905和其他计算系统(未示出)之间的通信可以通过一个或多个通信网络并且根据各种通信协议、协议的组合或其变化发生。示例包括内联网、互联网、因特网、局域网、广域网、无线网络、有线网络、虚拟网络、软件定义网络、数据中心总线和背板,或任何其他类型的网络、网络组合或其变化。上述通信网络和协议是众所周知的并且不必在此被详细讨论。
89.如本领域技术人员将理解的,本发明的各方面可以被体现为系统、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施方案、完全软件实施方案(包括固件、常驻软件、微代码等)或组合软件方面和硬件方面的实施方案的形式,所述软件方面和硬件方面全都可以在本文中被统称为“电路”、“模块”或“系统”。此外,本发明的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,所述计算机可读介质具有体现在其上的计算机可读程序代码。
90.除非上下文另有明确要求,否则在整个说明书和权利要求书中,词语“包括(comprise)”、“包括(comprising)”等应在包括性的意义上而不是在排他性或穷举性意义
来解释;也就是说,在“包括但不限于”的意义上。如本文所使用的,术语“连接”、“耦合”或其任何变体意味着两个或更多个元件之间的任何直接或间接的连接或耦合;元件之间的耦合或连接可以是物理的、逻辑的或其组合。此外,当在本技术中使用时,词语“本文”、“上文”、“下文”和类似含义的词语是指整个本技术,并且不是指本技术的任何特定部分。在上下文准许的情况下,上文的具体实施方式中使用单数或复数的词语也可以分别包括复数或单数。在提及两个或更多个物品的列表时,词语“或”涵盖对该词语的以下所有解释:该列表中的物品中的任何一个、该列表中的所有物品以及该列表中的物品的任何组合。
91.短语“在一些实施方案中”、“根据一些实施方案”、“在示出的实施方案中”、“在其他实施方案中”等通常意味着在该短语之后的特定特征、结构或特性被包括在本技术的至少一个实施方式中,并且可以被包括在不止一个实施方式中。此外,这样的短语不一定指代相同的实施方案或不同的实施方案。
92.对技术的示例的上文的具体实施方式并非意在是穷举性的或将技术限制于上文所公开的确切形式。虽然上文出于例示性目的描述了该技术的具体示例,但是各种等同改型在该技术的范围内是可能的,如相关领域的技术人员将认识的。例如,虽然过程或块以给定顺序呈现,替代实施方式可以执行具有步骤的例程,或采用具有不同顺序的块的系统,并且可以删除、移动、添加、细分、组合和/或修改一些过程或块,以提供替代方案或子组合。这些过程或块中的每个可以各种各样的方式来实施。此外,虽然过程或块有时被示出为被串行执行,但是这些过程或块可以代替地被并行执行或实施,或可以在不同时间被执行。此外,本文所指出的任何特定数目仅是示例:替代实施方案可以采用不同的值或范围。
93.本文所提供的技术的教导可以被应用于其他系统,不一定是上文所描述的系统。上文所描述的各种示例的元件和动作可以被组合以提供该技术另外的实施方式。该技术的一些替代实施方式不仅可以包括对上文所指出的那些实施方式附加的元件,而且可以包括更少的元件。
94.可以根据上文的具体实施方式对该技术进行这些和其他改变。虽然上文的描述描述了该技术的某些示例,但是无论上文在文本中呈现得多么详细,可以多种方式实践该技术。系统的细节在其特定实施方式中可以相当多地变化,但是仍被本文所公开的技术涵盖。如上文所指出的,在描述该技术的某些特征或方面时所使用的特定术语不应被理解为暗示该术语在本文中被重新定义为被限制于与该术语相关联的技术的任何特定特性、特征或方面。通常,下面的权利要求中所使用的术语不应被解释为将技术限制于说明书中所公开的具体示例,除非上文的具体实施方式部分明确定义了这样的术语。因此,该技术的实际范围不仅包含所公开的示例,而且包含实践或实施根据权利要求的技术的所有等同方式。
95.为了减少权利要求的数目,下文以某些权利要求形式呈现了该技术的某些方面,但是申请人以任何数目的权利要求形式设想了该技术的各个方面。例如,虽然该技术的仅一个方面被记载为计算机可读介质权利要求,但是其他方面同样可以被体现为计算机可读介质权利要求,或以其他形式被体现,诸如被体现在装置加功能权利要求中。任何意在根据35u.s.c.
§
112(f)被对待的任何权利要求将以词语“用于
……
的装置”开始,但是在任何其他上下文中使用术语“用于”并不意在援引根据35u.s.c.
§
112(f)的对待。因此,申请人保留在提交本技术之后寻求附加权利要求以在本技术或在继续申请中寻求这样的附加权利要求形式的权利。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献