CN109153123B - 与基于捕获物体的图像并且基于用于环境中的未来机器人运动的参数来预测机器人环境中的物体运动有关的机器学习方法和装置 - Google Patents

与基于捕获物体的图像并且基于用于环境中的未来机器人运动的参数来预测机器人环境中的物体运动有关的机器学习方法和装置 Download PDF

Info

Publication number
CN109153123B
CN109153123B CN201780031172.7A CN201780031172A CN109153123B CN 109153123 B CN109153123 B CN 109153123B CN 201780031172 A CN201780031172 A CN 201780031172A CN 109153123 B CN109153123 B CN 109153123B
Authority
CN
China
Prior art keywords
robot
motion
image
candidate
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780031172.7A
Other languages
English (en)
Other versions
CN109153123A (zh
Inventor
S.莱文
C.芬恩
I.古德费洛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202210417177.6A priority Critical patent/CN114967433B/zh
Priority claimed from PCT/US2017/032865 external-priority patent/WO2017201023A1/en
Publication of CN109153123A publication Critical patent/CN109153123A/zh
Application granted granted Critical
Publication of CN109153123B publication Critical patent/CN109153123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39289Adaptive ann controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Robotics (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Psychiatry (AREA)
  • Fuzzy Systems (AREA)
  • Social Psychology (AREA)
  • Manipulator (AREA)
  • Image Analysis (AREA)

Abstract

本说明书的一些实施方式通常涉及深度机器学习方法和装置,其涉及预测响应于机器人在环境中的特定运动而将对机器人的环境中的物体发生的运动(如果有的话)。一些实施方式涉及训练深度神经网络模型以预测机器人环境的图像的至少一个变换(如果有的话),其将作为实现机器人在环境中的特定运动的至少一部分的结果而发生。训练的深度神经网络模型可以基于包括图像和定义特定运动的部分的一组机器人运动参数的输入来预测变换。

Description

与基于捕获物体的图像并且基于用于环境中的未来机器人运 动的参数来预测机器人环境中的物体运动有关的机器学习方 法和装置
技术领域
背景技术
许多机器人被编程为利用一个或多个末端执行器来操纵一个或多个物体。例如,机器人可以利用末端执行器将力施加到物体上并引起该物体的运动。例如,机器人可以利用抓握末端执行器或其他末端执行器来移动物体而不必抓住该物体。此外,例如,机器人可以利用抓握末端执行器比如“冲击式”抓取器或“渐进式”抓取器(例如使用销、针等物理地穿透物体)从第一位置拾取物体,将物体移动到第二位置,然后在第二位置放下物体。
发明内容
本说明书的一些实施方式通常涉及深度机器学习方法和装置,其涉及预测响应于机器人在环境中的特定运动而将对机器人的环境中的物体发生的运动(如果有的话)。一些实施方式涉及训练深度神经网络模型以预测机器人环境的图像的至少一个变换(如果有的话),其将作为实现机器人在环境中的特定运动的至少一部分的结果而发生。训练的深度神经网络模型可以基于包括(1)图像和(2)定义特定运动的部分的机器人运动参数的输入来预测变换。可以利用预测的变换来变换图像以生成机器人环境的预测图像,其中预测图像预测机器人的环境是要发生的特定运动的部分。换句话说,预测图像示出了在特定运动的一部分发生之后机器人的环境的预测,并且可以用于例如预测将作为特定运动的结果而发生的环境中的物体的运动。
预测的运动可以用于各种目的,例如确定是否向机器人的致动器提供控制命令以实现特定运动。例如,可以将预测的运动与期望的运动进行比较,并且如果预测的运动符合期望的运动则实施控制命令。以这种方式,特定运动的结果可以在实施特定运动之前被有效地“可视化”,并且如果结果是期望的,则实施特定运动。如本文所述,在各种实施方式中,深度神经网络模型基于用于那些未来时间步骤的候选运动参数来预测多个未来时间步骤中的每一个的图像,从而使得能够有效地可视化进入未来的许多时间步骤。
在一些实施方式中,提供了一种方法,其包括生成候选机器人运动参数,所述候选机器人运动参数定义可由机器人的一个或多个部件在机器人的环境中执行的候选运动的至少一部分。所述方法还包括识别由与机器人相关的视觉传感器捕获的当前图像。所述当前图像捕获机器人的环境的至少一部分。所述方法还包括:将所述当前图像和候选机器人运动参数作为输入应用于训练的神经网络;和基于将所述当前图像和候选机器人运动参数应用于训练的神经网络来生成所述预测变换来生成所述当前图像的至少一个预测变换。所述方法还包括基于所述至少一个预测变换来变换所述当前图像以生成至少一个预测图像。如果候选运动的至少一部分由机器人的部件在环境中执行,则所述预测图像预测机器人的环境的部分。
这些和其他实施方式可以可选地包括以下特征中的一个或多个。
在一些实施方式中,该方法还包括:基于所述预测图像,确定执行所述候选运动;和向机器人的一个或多个致动器提供一个或多个控制命令以执行所述候选运动。
在一些实施方式中,该方法还包括:基于所述预测图像,确定执行替代运动以代替所述候选运动;和向机器人的一个或多个致动器提供一个或多个控制命令以执行所述替代运动。
在一些实施方式中,该方法还包括基于将所述当前图像和候选机器人运动参数应用于训练的神经网络,生成至少一个合成掩模(mask)。变换所述当前图像还基于所述至少一个合成掩模。作为一个示例,所述至少一个预测变换可以包括多个预测变换,所述至少一个合成掩模可以包括多个合成掩模,并且基于所述至少一个预测变换来变换所述当前图像以生成所述预测图像可以包括:基于所述多个预测变换生成多个预测图像;和基于所述多个合成掩模合成预测图像以生成所述预测图像。
在一些实施方式中,该方法还包括:生成第二候选机器人运动参数,所述第二候选机器人运动参数定义可由所述部件中的一个或多个在环境中执行的第二候选运动的至少一部分,所述第二候选运动可执行以代替所述候选运动。在这些实施方式中,该方法还可以包括:将所述当前图像和第二候选机器人运动参数作为输入应用于训练的神经网络;基于将所述当前图像和第二候选机器人运动参数应用于训练的神经网络来生成所述第二预测变换来生成所述当前图像的至少一个第二预测变换;和基于所述第二预测变换来变换所述当前图像的一个或多个像素以生成至少一个第二预测图像。如果所述第二候选运动的至少一部分由机器人的部件在环境中执行,则所述第二预测图像预测机器人的环境的部分。在这些实施方式的一些版本中,该方法还包括:基于所述预测图像和第二预测图像,选择所述候选运动或第二候选运动;和向机器人的一个或多个致动器提供一个或多个控制命令以执行所述候选运动和第二候选运动中的所选择的一个。
在一些实施方式中,该方法还包括:生成连续候选机器人运动参数,所述连续候选机器人运动参数定义在所述候选运动的一部分之后的所述候选运动的另一部分;将所述预测图像和连续候选机器人运动参数应用于训练的神经网络;基于将所述预测图像和连续候选机器人运动参数应用于训练的神经网络来生成所述预测图像的至少一个连续预测变换;和基于所述连续预测变换来变换所述预测图像以生成连续预测图像。在这些实施方式的其中一些中,该方法还包括:基于所述预测图像和连续预测图像,确定执行所述候选运动;和向机器人的一个或多个致动器提供一个或多个控制命令以执行所述候选运动。
在一些实施方式中,训练的神经网络包括多个堆叠的卷积长短期存储层。
在一些实施方式中,所述当前图像的像素的至少一个预测变换包括一个或多个空间变换器的参数。在这些实施方式的其中一些中,变换所述当前图像包括:利用所述参数将所述一个或多个空间变换器应用于所述当前图像。
在一些实施方式中,所述当前图像的像素的至少一个预测变换包括一个或多个归一化分布,每个归一化分布对应于一个或多个像素。在这些实施方式的其中一些中,变换所述当前图像包括:使用卷积运算将归一化分布应用于所述当前图像。在这些实施方式的一些版本中,每个归一化分布对应于相应的一个像素。
在一些实施方式中,将所述当前图像和候选机器人运动参数作为输入应用于训练的神经网络包括:将所述当前图像作为输入应用于训练的神经网络的初始层;和将所述候选机器人运动参数应用于训练的神经网络的附加层,所述附加层位于所述初始层的下游。
在一些实施方式中,候选机器人参数包括初始机器人状态和指示后续机器人状态的动作。在这些实施方式的其中一些中,初始机器人状态是末端执行器的当前姿势,并且动作是末端执行器的命令姿势。
在一些实施方式中,提供了一种方法,其包括识别由与机器人相关的视觉传感器捕获的当前图像。该方法还包括识别机器人的当前状态;和识别将机器人从所述当前状态转换到候选状态的候选动作。该方法还包括将所述当前图像、当前状态和候选动作作为输入应用于训练的神经网络。该方法还包括基于将所述当前图像、当前状态和候选动作应用于训练的神经网络来生成至少一个预测图像。该方法还包括基于所述预测图像,确定执行所述候选动作。该方法还包括:响应于确定执行候选动作,向机器人的一个或多个致动器提供一个或多个控制命令以执行所述候选动作。
在一些实施方式中,提供了一种方法,其包括识别在由机器人的多个物体运动尝试期间基于来自与一个或多个机器人相关的传感器的传感器输出而生成的多个训练示例。每个训练示例包括来自所述物体运动尝试的相应尝试的一组顺序图像。每个图像在相应的时刻(instance)捕获环境中的一个或多个相应物体,和对于每个顺序图像:机器人在相应时刻的状态,以及要被应用于将机器人在相应时刻的状态转换为与所述顺序图像的下一个顺序图像对应的新状态的动作。该方法还包括基于所述训练示例来训练所述神经网络。
其他实施方式可以包括存储可由处理器(例如中央处理单元(CPU)或图形处理单元(GPU))执行的指令的非暂时性计算机可读存储介质,以执行诸如上文和/或本文其他地方描述的一种或多种方法的方法。其他实施方式还可以包括一个或多个计算机和/或一个或多个机器人的系统,其包括一个或多个处理器,其可操作以执行存储的指令来执行诸如上文和/或本文其他地方描述的一种或多种方法的方法。其他实施方式还可以包括计算机程序,该计算机程序包括机器可读指令,当由计算装置执行时,所述机器可读指令使得执行上文和/或本文其他地方描述的一种或多种方法。
应当理解,本文更详细描述的前述概念和附加概念的所有组合都被认为是本文公开的主题的一部分。例如,出现在本公开结尾处的所要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1示出了示例环境,其中可以由机器人执行物体运动尝试,可以利用与物体运动尝试相关的数据来生成训练示例,和/或可以利用训练示例来训练神经网络。
图2示出了图1的机器人之一和沿着路径移动机器人的抓握末端执行器的示例。
图3是示出执行物体运动尝试和存储与物体运动尝试相关的数据的示例方法的流程图。
图4是示出基于与机器人的物体运动尝试相关的数据生成训练示例的示例方法的流程图。
图5是示出基于训练示例训练神经网络的示例方法的流程图。
图6A和6B示出了示例神经网络的架构,示出了可以提供给神经网络的示例输入,示出了神经网络的示例输出,并且示出了可如何利用示例输出来生成预测图像。
图7是示出利用训练的神经网络生成预测图像的示例方法的流程图,该预测图像在机器人移动发生之后预测机器人的环境和/或基于预测图像执行一个或多个动作。
图8示意性地描绘了机器人的示例架构。
图9示意性地描绘了计算机系统的示例架构。
具体实施方式
机器人或其他代理学习与世界交互的一个挑战是预测其行为如何影响其环境中的物体。用于学习物理交互动态的许多方法需要手动标记的物体信息。然而,为了将现实世界的交互学习扩展到各种场景和物体,获取手动标记的物体信息变得越来越不切实际。为了在不需要物体标记的情况下了解物理物体运动,本文描述的实施方式采用动作条件运动预测模型,其通过预测来自先前帧的像素运动的分布来显示建模像素运动。例如,实施方式可以平移来自先前图像帧的像素并将它们合成到新图像上,而不是从头开始构造新图像。因为模型明确地预测了运动,所以它对物体外观至少部分不变,使其能够推广到先前看不见的物体。为了探索真实世界交互式代理的视频预测,可以利用涉及推动运动的大量(例如50000+)机器人交互的数据集。利用这样的数据集,可以训练运动预测模型,其能够以机器人的未来动作为条件准确预测图像中的物体的运动。这使得能够利用运动预测模型以基于不同的动作过程“在视觉上想象”不同的未来。
物体检测、跟踪和运动预测是计算机视觉中的基本问题,预测物理交互的影响对于在世界上行动的代理来说是一个挑战,比如机器人、自动驾驶汽车和无人驾驶飞机。用于学习预测物理交互影响的一些现有技术依赖于大的手动标记数据集。但是,如果使用来自交互式代理的未标记的原始视频数据(由顺序图像帧组成)来了解物理交互,则交互式代理可以通过其自身的探索自主地收集几乎无限的体验。学习可以在没有标记的情况下预测未来视频的表示具有动作识别和预测中的应用,并且当以代理的动作为条件时,相当于学习预测模型,然后可以由该代理用于规划和决策。
然而,学习预测物理现象带来了许多挑战,因为现实世界的物理交互往往是复杂和随机的,并且从原始视频学习需要处理图像像素的高维度和视频中物体运动的部分可观察性。先前的视频预测方法通常考虑短程预测、小图像补丁或合成图像。这种现有方法遵循从模型的内部状态重建未来帧的范例。在本文描述的一些实施方式中,不要求运动预测模型存储物体和背景外观。这样的外观信息可以替代地从先前图像帧(例如由机器人的视觉传感器捕获的先前图像帧,或先前重建的图像帧)获得,使得运动预测模型能够专注于运动预测。这里描述的预测模型可以各自将来自先前帧的外观信息与由模型预测的运动合并。结果,模型可以各自更好地(相对于现有技术)能够预测多个步骤的未来视频序列,甚至涉及在训练时间未见的物体。
为了合并外观和预测的运动,可以生成像素相对于先前图像的运动作为在此描述的预测模型的输出。将此运动应用于前一图像帧形成下一图像帧。可以使用各种运动预测模型,这里将详细描述其中的三种。第一种(其有时在本文中称为动态神经平流(DNA)模型)对于新帧中的每个像素输出前一图像帧中的位置的分布。然后将预测的像素值计算为该分布下的期望值。DNA模型的变体(其有时在本文中称为卷积动态神经平流(CDNA)模型)输出多个归一化卷积内核的参数以应用于先前图像帧来计算新的像素值。最后一种方法(其有时在本文中称为空间变换预测器(STP)模型)输出多个仿射变换的参数以应用于先前图像帧。在DNA和STP模型的情况下,每个预测的变换旨在处理单独的物体。为了将预测组合成单个图像,模型还预测每个变换上的合成掩模。DNA和CDNA可以比STP更简单和/或更容易实现,并且以物体为中心的CDNA和STP模型也可以提供可解释的内部表示。
本文描述的各种实施方式呈现了用于通过预测像素运动来在真实世界图像中进行远程预测的技术。当以代理(例如机器人)采取的动作为条件时,模型可以学习想象来自不同动作的不同未来(在实施那些不同动作之前)。为了从视频中了解物理交互,可以使用具有复杂物体交互的大型数据集。作为一个示例,可以使用50000个机器人推动运动的数据集,其包括在每个时间步骤具有相应动作的140万个图像帧。
为了在保持对外观不变的同时了解物体运动,可以利用一类运动预测模型,其直接使用来自先前帧的外观信息来构建像素运动预测。该模型通过首先预测像素空间中物体的运动来计算下一帧,然后通过掩蔽合并这些预测。下面描述了一些潜在的运动预测模型,包括如何有效地将多个物体的预测运动合并为单个下一图像预测。这里描述的预测物体的运动而不试图重建物体外观的运动预测模型可以对外观部分不变并且可以有效地推广到先前未见过的物体。现在依次简要描述运动预测模型的三个示例。
动态神经平流(DNA)运动预测模型
在DNA运动预测模型中,对于新帧中的每个像素,在先前帧中预测位置上的分布。预测像素值被计算为该分布下的期望值。在像素不会移动很远距离的正规假设下,像素移动被约束到局部区域。这可以使预测的维度保持较低。
正式地,对于任何像素(x,y),将预测运动变换
Figure BDA0001872096710000071
应用于先前图像预测
Figure BDA0001872096710000072
以形成下一图像预测
Figure BDA0001872096710000073
如下:
Figure BDA0001872096710000074
其中κ是预测分布的空间范围。这可以实施为具有解开权重的卷积。该模型的架构可以与图6A和6B中的示例CDNA模型匹配,除了高维变换参数
Figure BDA0001872096710000075
由最后的卷积层(图6B的卷积层662)输出而不是由第五长短期存储层(图6B的LSTM层675)输出之外,如图6A和6B的CDNA模型中那样。
卷积动态神经平流(CDNA)运动预测模型
在可以使用相同的机制来预测图像的不同区域中的不同物体的运动的假设下,CDNA运动预测模型可以呈现更加以物体为中心的方法来预测运动。该模型不是预测每个像素的不同分布,而是预测多个离散分布,每个分布通过卷积(带有绑定权重)应用于整个图像,该卷积计算每个像素的运动分布的预期值。同一个刚性物体上的像素将一起移动,因此可以共享相同的变换。更正式地,一个预测的物体变换应用于前一个图像
Figure BDA0001872096710000081
为每个像素(x,y)生成图像
Figure BDA0001872096710000082
如下:
Figure BDA0001872096710000083
其中κ是归一化预测卷积内核
Figure BDA0001872096710000084
的空间大小。多个变换
Figure BDA0001872096710000085
应用于先前图像
Figure BDA0001872096710000086
以形成多个图像
Figure BDA0001872096710000087
这些输出图像被组合成单个预测
Figure BDA0001872096710000088
如下所述并且如图6A和6B所示。
空间变换器预测器(STP)运动预测模型
STP运动预测模型为2D仿射图像变换产生多组参数,并使用双线性采样内核应用变换。更正式地,一组仿射参数
Figure BDA0001872096710000089
在先前图像中的像素(xt-i,yt-i)与所生成的图像中的像素(xt,yt)之间产生翘曲网格。
Figure BDA00018720967100000810
该网格可以应用双线性内核来形成图像
Figure BDA00018720967100000811
Figure BDA00018720967100000812
其中W和H是图像的宽度和高度。将多个变换
Figure BDA00018720967100000813
应用于先前图像
Figure BDA00018720967100000814
以形成多个图像
Figure BDA00018720967100000815
然后基于这些掩模合成。该架构可以匹配图6A和6B的CDNA架构,而不是在第五LSTM层(图6B的LSTM层775)输出CDNA内核,模型在第五LSTM层(图6B的LSTM层775)输出变换参数。
DNA、CDNA和STP运动预测模型可以各自构建和训练成专注于学习物理而不是物体外观。结果,与直接重建像素或预测与前一帧的差异的模型相比,这些模型可以能够更好地推广到看不见的物体。
CDNA和STP运动预测模型产生多个物体运动预测,其可用于生成多个变换图像(每个物体运动预测的变换图像)。需要将多个变换图像组合成单个图像。为此,CDNA和STP模型还可以预测要应用于变换图像的一组掩模。这些掩模表示每个变换图像对每个像素的影响程度。掩模的通道上的回归可以确保它总和为1。更正式地,可以通过掩模Ξ来调制预测图像
Figure BDA0001872096710000092
的合成,该掩模针对每个像素定义每个预测的权重。因此,
Figure BDA0001872096710000093
其中c表示掩模的通道,并且逐元素乘法是在像素上。在实践中,模型可以学习掩盖在一致方向上移动的物体。例如,该方法的益处可包括:预测的运动变换被重用于图像中的多个像素;和/或模型以无监督的方式自然地提取更多以物体为中心的表示,这对于学习与物体交互的代理而言是潜在期望属性。
对于包括DNA的每个运动预测模型,可以包括“背景掩模”,其中允许模型直接从先前图像(例如在初始迭代中捕获的图像帧,或者在后续迭代中紧接先前预测的图像)复制像素。另外,为了填充可能未被附近像素很好地表示的先前被遮挡的区域,允许模型从图像生成像素,并将其包括在最终的掩蔽步骤中。除了提高性能外,这还可以生成可解释的背景掩模。
为了生成上面讨论的运动预测,可以在运动预测模型中采用堆叠卷积LSTM。通过卷积的递归适用于多步骤视频预测,因为它利用了图像表示的空间不变性,因为物理定律在空间上大多是一致的。结果,具有卷积递归的模型可能需要显著更少的参数和/或更有效地使用这些参数。
在交互式设置中,代理的候选动作和内部状态(例如机器人抓取器的姿势)也会影响下一个图像,并且可以通过在跨越最低维激活图的空间范围上平铺连接的内部状态和候选动作的矢量来将两者都集成到模型中。但是,请注意,代理的内部状态(例如当前机器人抓取器姿势)仅在初始时间步骤输入到网络中,并且在一些实施方式中必须从未来时间步骤中的动作来预测。例如,考虑到候选动作,可以基于当前机器人抓取器姿势的修改在未来时间步骤预测机器人抓取器姿势。换句话说,可以基于假设已经实施先前时间步骤的候选动作来确定未来时间步骤的机器人抓取器姿势。可以使用l2重建损失来训练神经网络。替代损失可以补充这种方法。
动作条件视频预测的一个应用是使用学习的模型在基于视觉的机器人控制任务中进行决策。从视频中进行无监督学习可以使代理在没有人为参与的情况下能够自己了解世界,这对于扩大交互式学习是有益的。为了研究机器人任务的动作条件视频预测,可以使用具有真实世界物理物体交互的数据集。例如,可以使用10个机器人手臂在箱中推动数百个物体来生成数据集,相当于50000个交互序列,具有超过100万个视频帧。除了包括图像(例如RGB图像或RGBD图像)之外,每个帧还可以用以下内容注释:在帧的时间步骤的抓取器姿势,其在本文中可被称为“内部状态”或“机器人状态”;和在该时间步骤的动作,其可以对应于在后续(例如下一个)时间步骤的抓取器姿势,或者在后续时间步骤到达抓取器姿势的运动矢量或命令。
在一些实施方式中,在运行时,可以提供初始图像作为训练的神经网络模型的输入,以及初始机器人状态和候选动作。初始机器人状态可以是例如当前抓取器姿势,并且候选动作可以是每个都使当前抓取器姿势移动到相应的新抓取器姿势的候选动作。然后可以顺序地推出模型,每个后续时间步骤从先前时间步骤传递预测图像、该时间步骤的候选动作和更新的机器人状态。如上所述,给定迭代的更新的机器人状态可以是假设已经应用了先前时间步骤的候选动作的状态(即如由先前时间步骤的候选动作修改的初始机器人状态)。在一些实施方式中,可以针对所有递归模型对于8个未来时间步骤训练神经网络,并且将其用于多达18个未来时间步骤。其他数量的未来时间步骤可用于训练和/或使用。
本文描述的技术的一些实施方式可以另外或可替代地用于生成用于预测未来视频的模型,而不考虑机器人状态和/或动作。例如,可以使用由在房间中执行各种动作的人类演员的视频组成的数据集来训练模型。视频可以可选地被子采样(例如每秒10帧),使得在合理的时间帧内视频中有明显的运动。由于模型不再以动作为条件,因此可以馈入X个(例如10个)视频帧并训练网络以产生下X个(例如10个帧)。
可以在智能交互系统中利用在物理交互的情况下预测未来物体运动。本文描述的未来视频帧的动作条件预测的类型可以允许交互式代理(例如机器人)基于可用的候选动作来想象不同的未来。这种机制可用于计划实现特定目标的动作,预测可能的未来问题(例如在自主车辆的情况下避障),并且在探索的情况下识别有趣的新现象。作为一个特定示例,可以定义物体的目标状态。例如,人可以利用用户接口输入来定义物体的目标状态。例如,人可以通过显示由机器人捕获的图像的接口来操纵物体,其中图像包括物体,并且操纵使得能够调整物体的姿势。而且,例如,机器人的内部系统可以在完成涉及物体的任务时定义物体的目标状态(例如将物体移动到新姿势)。然后可以利用运动预测模型来考虑各种候选动作以生成多个预测图像。可以确定预测图像,其描绘最接近其目标状态的物体,并且可以由机器人选择并应用用于生成预测图像的应用候选动作以将物体移动到其目标状态。以这种方式,运动预测模型可以用于预测各种候选动作对机器人的环境的影响,以及所选择的候选动作,其导致最接近地符合期望的环境影响的预测图像。这使得能够初始考虑各种机器人动作的效果,而不实际实施那些动作,然后基于所考虑的效果选择那些机器人动作中的一个或多个以实际地实施。
本文描述的技术的一些实施方式涉及训练神经网络,比如包括堆叠长短期存储(LSTM)层的神经网络,以使得能够利用训练的神经网络来预测机器人环境图像发生的变换,以响应机器人在环境中的特定运动。在一些实施方式中,训练的神经网络接受由视觉传感器生成的图像(It)并接受候选机器人运动参数(pt),比如定义当前机器人状态的参数和/或要执行的一个或多个候选动作,以使当前机器人状态转换到不同的机器人状态。在一些实施方式中,当前机器人状态可以是机器人的末端执行器的姿势(例如抓握末端执行器的姿势),并且每个候选动作可以各自(或指示)末端执行器的后续姿势。因此,在那些实施方式的其中一些中,候选动作可以各自指示运动矢量从末端执行器的姿势移动到末端执行器的后续姿势。例如,第一候选动作可指示运动矢量从当前姿势移动到下一时间步骤的姿势,第二候选动作可指示运动矢量从该姿势移动到下一时间步骤的姿势,等等。将图像(It)和候选机器人运动参数(pt)应用于训练的神经网络可以用于在神经网络上生成将对图像(It)发生的至少一个预测变换,以响应于候选机器人运动参数(pt)的实施。在这些实施方式的其中一些中,利用预测的变换将图像(It)变换为预测的图像(PIt)。可以利用预测的图像(PIt)和/或基于神经网络的附加预测的变换生成的一个或多个附加预测的图像来确定是否实施候选机器人运动参数。例如,可以分析预测的图像以确定将基于候选机器人运动参数发生的环境中的物体的预测运动,并且如果预测运动是可期望的则实施候选机器人运动参数。下面提供对这些及该技术的其他实施方式的附加描述。
参照图1-7,描述了训练和利用运动预测神经网络的各种实施方式。图1示出了示例环境,其中可以由机器人(例如机器人180A、180B和/或其他机器人)执行物体运动尝试,可以利用与物体运动尝试相关的数据来生成训练示例,和/或可以利用训练示例来训练运动预测神经网络。
示例机器人180A和180B在图1中示出。机器人180A和180B是具有多个自由度的“机器人臂”,以通过机器人的运动,使得抓握末端执行器182A和182B能够沿着多个潜在路径中的任何一个横穿,从而以所需的姿势定位抓握末端执行器182A和182B。例如,参考图2,示出了机器人180A使其末端执行器沿路径201横穿的示例。图2包括机器人180A的虚线和非虚线图像,示出了机器人180A及其末端执行器在沿着路径201横穿时所拍摄的一组姿势的两个不同姿势。再次参照图1,机器人180A和180B各自进一步控制其相应的抓握末端执行器182A、182B的两个相对的“爪”,以在至少打开位置和闭合位置(和/或可选地多个“部分闭合”位置)之间致动爪。
示例视觉传感器184A和184B也在图1中示出。在图1中,视觉传感器184A相对于机器人180A的基座或其他固定参考点以固定姿势安装。视觉传感器184B也相对于机器人180B的基座或其他固定参考点以固定姿势安装。如图1所示,视觉传感器184A相对于机器人180A的姿势不同于视觉传感器184B相对于机器人180B的姿势。在一些实施方式中,这样的不同姿势可以有益于使得能够生成可以用于训练对摄像机校准稳健和/或与之独立的神经网络的各种训练示例。视觉传感器184A和184B是可以生成与传感器的视线中的物体的形状、颜色、深度和/或其他特征有关的图像的传感器。视觉传感器184A和184B可以是例如专题摄像机、立体摄影机和/或3D激光扫描仪。3D激光扫描仪包括一个或多个发射光的激光器和一个或多个传感器,其收集与所发射的光的反射有关的数据。3D激光扫描仪可以是例如飞行时间3D激光扫描仪或基于三角测量的3D激光扫描仪,并且可以包括位置敏感检测器(PSD)或其他光学位置传感器。
视觉传感器184A具有机器人180A的工作空间的至少一部分的视野,比如包括示例物体191A的工作空间的部分。尽管在图1中未示出用于物体191A的搁置表面,但那些物体可以搁置在桌子、箱子和/或其他表面上。物体191A包括刮刀、订书机和铅笔。在其他实施方式中,可以在如本文所述的机器人180A的物体运动尝试的全部或部分期间提供更多物体、更少物体、附加物体和/或替代物体。视觉传感器184B具有机器人180B的工作空间的至少一部分的视野,比如包括示例物体191B的工作空间的部分。尽管在图1中未示出用于物体191B的搁置表面,但它们可以搁置在桌子、箱子和/或其他表面上。物体191B包括铅笔、订书机和眼镜。在其他实施方式中,可以在如本文所述的机器人180B的物体运动尝试的全部或部分期间提供更多物体、更少物体、附加物体和/或替代物体。
尽管图1中示出了特定的机器人180A和180B,但可以使用附加的和/或替代的机器人,包括与机器人180A和180B相似的附加机器人臂、具有其他机器人臂形式的机器人、具有人形式的机器人、具有动物形式的机器人、通过一个或多个轮移动的机器人(例如自平衡机器人)、潜水车辆机器人、无人驾驶飞行器(“UAV”)等。而且,尽管图1中示出了特定的抓握末端执行器,但可以使用附加的和/或替代的末端执行器。例如,可以使用不能抓握的末端执行器。另外,尽管图1中示出了视觉传感器184A和184B的特定安装件,但可以使用附加的和/或替代的安装件。例如,在一些实施方式中,视觉传感器可以直接安装到机器人,例如安装在机器人的不可致动部件上或在机器人的可致动部件上(例如在末端执行器上或靠近末端执行器的部件上)。而且,例如,在一些实施方式中,视觉传感器可以安装在与其相关的机器人分离的非固定结构上和/或可以以非固定方式安装在与其相关的机器人分离的结构上。。
机器人180A、180B和/或其他机器人可以用于执行大量的物体运动尝试,并且可以通过训练示例生成系统110来利用与物体运动尝试相关的数据以生成训练示例。在一些实施方式中,物体运动尝试包括机器人的末端执行器的随机和/或伪随机运动,以试图在机器人的环境中移动一个或多个物体。例如,机器人180A尝试移动一个或多个物体191A。
在一些实施方式中,训练样本生成系统110的全部或各方面可以在机器人180A和/或机器人180B上实施(例如经由机器人180A和180B的一个或多个处理器)。例如,机器人180A和180B每个可以包括训练样本生成系统110的实例。在一些实施方式中,训练样本生成系统110的全部或各方面可以在与机器人180A和180B分离但与其网络通信的一个或多个计算机系统上实施。
由机器人180A、180B和/或其他机器人的每个物体运动尝试由T个单独的时间步骤或时刻组成。在每个时间步骤,存储由执行物体运动尝试的机器人的视觉传感器捕获的当前图像(IT),还存储当前机器人参数(pT),并且机器人为下一时间步骤选择运动。在一些实施方式中,用于时间步骤的当前机器人参数可以包括例如机器人的当前状态(例如在该时间步骤的当前末端执行器姿势)和动作(例如要被实施以实施下一时间步骤的运动的动作)。在一些实施方式中,与机器人的当前状态相比,可以基于在后续时间步骤的机器人状态来确定时间步骤的动作。例如,动作可以是在物体运动尝试结束时从机器人的当前状态移动到机器人的最终状态的运动矢量(例如从当前状态到最终状态的矢量)。在一些实施方式中,可以在一个或多个物体运动尝试期间通过其末端执行器的阻抗控制来命令机器人。在一些实施方式中,一个或多个(例如所有)物体运动尝试可持续约3-5秒。在一些实施方式中,机器人180A、180B和/或其他机器人可被编程为在物体运动尝试之间移出视觉传感器的视野,并且当机器人不在视野范围内时,视觉传感器可以捕获图像,且该图像与紧接着的物体运动尝试相关。
在一些实施方式中,物体运动尝试可以包括随机推动尝试和/或“向中间扫掠”尝试。随机推动尝试可以是末端执行器的随机(例如真正随机和/或伪随机)运动,可选地在约束区域内,比如物体191A/191B附近的区域、基于包含物体191A/191B的箱子的区域等。向中间扫掠尝试可以从约束区域的外边界附近或外边界上的随机位置开始,在该约束区域内物体运动尝试受到限制,并且可以将末端执行器蜿蜒到约束区域的中间。例如,约束区域通常可以符合箱子,并且随机扫掠尝试可以从箱子的外围附近的随机位置开始并且随机地朝向箱子的中间蜿蜒。随机扫掠尝试可能有益于防止物体堆积在箱子的边缘上。
每个物体运动尝试产生至少一个具有T帧的训练示例,由(IT,pT)表示。也就是说,训练示例的每个帧至少包括在相应的时间步骤(It)观察到的图像、在相应的时间步骤指示机器人状态的机器人运动参数(pT)以及在相应的时间步骤要实施的动作。用于多个机器人的多个物体运动尝试的训练示例由训练示例生成系统110存储在训练示例数据库117中。
由与机器人相关的传感器生成的数据和/或从生成的数据导出的数据可以存储在机器人本地和/或远离机器人的一个或多个非暂时性计算机可读介质中。在一些实施方式中,由视觉传感器捕获的图像可包括多个通道,比如红色通道、蓝色通道、绿色通道和/或深度通道。图像的每个通道为图像的多个像素中的每个定义值,比如对于图像的每个像素,值为0到255。在一些实施方式中,对于每个训练示例在初始时间步骤(IT)观察到的图像可以与训练示例中的附加图像连接。附加图像可以是在相应的物体运动尝试之前的附加图像,其中附加图像不包括抓握末端执行器和/或机器人的其他部件—或者包括末端执行器和/或处于不同姿势(例如与当前图像的姿势不重叠的姿势)的其他机器人部件。例如,可以在任何先前的物体运动尝试之后但在物体运动尝试的末端执行器运动开始之前以及当抓握末端执行器移出视觉传感器的视野时捕获附加图像。
训练引擎120基于训练示例数据库117的训练示例训练神经网络125。在一些实施方式中,训练CNN125包括基于训练示例应用于神经网络125而迭代地更新神经网络125。训练的CNN125被训练成响应于环境中机器人的特定运动来预测对机器人环境的图像将发生的变换。
图3是示出执行物体运动尝试并存储与物体运动尝试相关的数据的示例方法300的流程图。为方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括机器人的一个或多个部件,比如机器人180A、180B、840和/或其他机器人的处理器和/或机器人控制系统。此外,虽然方法300的操作以特定顺序示出,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在方框352,系统开始物体运动尝试。在方框354,系统存储环境的图像,而没有末端执行器存在于图像中。例如,系统可以将抓握末端执行器移出视觉传感器的视野(即不遮挡环境的视野)并且当抓握末端执行器不在视野时捕获图像。然后可以存储图像并将其与物体运动尝试相关。在一些实施方式中,可以省略方框354。
在方框356,系统确定并实施运动。例如,系统可以生成一个或多个运动命令以使控制末端执行器的姿势的一个或多个致动器致动,从而改变末端执行器的姿势。
在方框356的一些实施方式和/或迭代中,运动命令在给定空间内可以是随机的,比如末端执行器可到达的工作空间、末端执行器在其内被限制用于物体运动尝试的约束空间和/或由控制末端执行器姿势的致动器的位置和/或扭矩限制限定的空间。例如,系统在方框356生成的用于实施移动的运动命令在给定空间内可以是随机的。如本文所用,随机可以包括真正随机或伪随机。
在一些实施方式中,在方框356的第一次迭代中,对于每个物体运动尝试,末端执行器可以基于在方框354移出视野而“不在位置”。在这些实施方式的其中一些中,在方框356的第一次迭代之前,末端执行器可以随机地或以其他方式移“回到位置”。例如,末端执行器可以移回到设定的“起始位置”和/或移动到给定空间内的随机选择的位置。
在方框358,系统存储:(1)在物体运动尝试的当前时刻(时间步骤)捕获机器人的环境的图像和(2)当前时刻的机器人参数。例如,系统可以存储由与机器人相关的视觉传感器生成的当前图像,并将图像与当前时刻(例如与时间戳)相关。而且,例如,系统可以基于来自机器人的关节的一个或多个关节位置传感器和/或机器人的扭矩传感器的数据来确定机器人参数,并且系统可以存储那些参数。系统可以确定机器人参数并将其存储在任务空间、关节空间和/或另一空间中。
在方框360,系统确定当前时刻是否是物体运动尝试的最终时刻。在一些实施方式中,系统可以在方框352、354、356或358处递增时刻计数器和/或随着时间的推移递增时间计数器—并且基于将计数器的值与阈值进行比较来确定当前时刻是否是最终时刻。例如,计数器可以是时间计数器,并且阈值可以是3秒、4秒、5秒和/或其他值。在一些实施方式中,阈值可以在方法300的一次或多次迭代之间变化。
如果系统在方框360确定当前时刻不是物体运动尝试的最终时刻,则系统返回到方框356,在方框356中它确定并实施附加运动,然后进行到方框358,其中它存储图像和在当前时刻(附加运动)的机器人参数。在许多实施方式中,可以以相对高的频率执行方框356、358、360和/或其他方框,从而为每个物体运动尝试存储相对大量的数据。
如果系统在方框360确定当前时刻是物体运动尝试的最终时刻,则系统进行到方框366,其中系统重置计数器(例如时刻计数器和/或时间计数器),并继续返回到方框352以开始另一物体运动尝试。
在一些实施方式中,图3的方法300可以在多个机器人中的每一个上实施,可选地在方法300的它们各自的迭代中的一个或多个(例如全部)期间并行操作。与仅有一个机器人操作方法300相比,这可以使得能够在给定时间段内实现更多的物体运动尝试。此外,在多个机器人中的一个或多个包括具有相对于机器人同与其他机器人相关的一个或多个视觉传感器的姿势是唯一的姿势的相关视觉传感器的实施方式中,基于来自多个机器人的物体运动尝试生成的训练示例可以在基于那些训练示例所训练的神经网络中提供对视觉传感器姿势的稳健性。此外,在多个机器人的末端执行器和/或其他硬件部件变化和/或不同磨损的实施方式中,和/或其中不同的机器人与不同的物体(例如不同尺寸、不同重量、不同形状、不同半透明、不同材料的物体)交互和/或在不同的环境中(例如不同表面、不同照明、不同环境障碍),基于来自多个机器人的物体运动尝试生成的训练示例可以为各种机器人和/或环境配置提供稳健性。
在一些实施方式中,在方法300的不同迭代期间,可由给定机器人到达且可在其上进行物体运动尝试的物体可以是不同的。例如,人类操作员和/或另一机器人可以添加和/或移除物体到机器人的一次或多次物体运动尝试之间机器人的工作空间。这可以增加训练数据的多样性。另外和/或可替代地,在一些实施方式中,环境因素比如照明、表面、障碍物等可以在方法300的不同迭代期间不同,这也可以增加训练数据的多样性。
图4是示出基于与机器人的物体运动尝试相关的数据生成训练示例的示例方法400的流程图。为方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括机器人和/或另一计算机系统的一个或多个部件,比如机器人180A、180B、840的处理器和/或机器人控制系统,和/或训练示例生成系统110的处理器和/或可选地可以与机器人分开实施的其他系统。此外,虽然方法400的操作以特定顺序示出,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在方框452,系统开始训练示例生成。在方框454,系统选择物体运动尝试。例如,系统可以访问包括与多个存储的物体运动尝试相关的数据的数据库,并选择存储的物体运动尝试之一。所选择的物体运动尝试例如可以是基于图3的方法300生成的物体运动尝试。
在方框456,系统选择物体运动尝试的一组顺序帧。例如,系统可以选择物体运动尝试的初始帧作为组的第一时刻,可以选择紧接在时间帧中的下一个作为组的第二时刻,选择紧接在时间帧中的下一个作为组的第三时刻等。作为另一示例,系统可以选择物体运动尝试的第五帧作为组的第一时刻,选择物体的第六帧作为组的第二时刻等。
在方框458,系统将顺序帧分配为训练示例。如上所述,顺序帧可以各自包括在相应时间步骤的图像、在相应时间步骤的机器人状态以及相应时间步骤的动作。在一些实施方式中,在方框456或方框458,系统可以可选地处理帧的图像。例如,系统可以可选地调整图像的大小以适合神经网络的输入层的定义大小,从图像中移除一个或多个通道,和/或归一化深度通道的值(在实施方式中图像包括深度通道)。
在方框460,系统确定是否要生成附加训练示例。如果是,则系统返回到方框454并选择物体运动尝试(例如不同的物体运动尝试)。如果否,则训练示例生成在方框468结束。
在一些实施方式中,确定是否要生成附加训练示例可以包括确定是否存在任何剩余的未处理的物体运动尝试。另外和/或可替代地,在一些实施方式中,确定是否要生成附加训练示例可以包括确定是否已经生成阈值数量的训练示例和/或是否已经满足其他标准。
可以再次执行方法400的另一次迭代。例如,响应于至少执行阈值数量的附加物体运动尝试,可以再次执行方法400。
尽管为了清楚起见在本文的单独附图中示出了方法300和方法400,但是应当理解,方法400的一个或多个方框可以由执行方法300的一个或多个方框的相同部件来执行。例如,方法300和方法400的一个或多个(例如全部)方框可以由机器人的处理器执行。而且,应当理解,方法400的一个或多个方框可以与方法300的一个或多个方框组合执行,或在其之前或在其之后。
图5是示出基于训练示例训练神经网络的示例方法500的流程图。为方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括计算机系统的一个或多个部件,比如训练引擎120的处理器(例如GPU)和/或在神经网络上(例如在神经网络125上)操作的其他计算机系统。此外,虽然方法500的操作以特定顺序示出,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在方框552,系统开始训练。在方框554,系统选择训练示例。例如,系统可以选择基于图4的方法400生成的训练示例。
在方框556,系统将所选训练示例的第一帧的图像应用于神经网络的初始层。例如,系统可以将第一帧的图像应用于神经网络的初始卷积层。如本文所述,在一些实施方式中,训练示例可以可选地包括附加图像,其至少部分地省略末端执行器和/或其他机器人部件。在这些实施方式的其中一些中,系统连接第一帧的图像和附加图像,并将连接的图像应用于初始层。在这些实施方式的其中一些其他中,第一帧的图像已经与训练示例中的附加图像连接。
在方框558,系统将第一帧的机器人运动参数应用于神经网络的附加层。例如,系统可以将第一帧的机器人运动参数应用于神经网络的附加层(例如卷积LSTM层),该附加层位于图像在方框556所应用到的初始层的下游。如本文所述,第一帧的机器人运动参数可以包括在初始帧的时间步骤的机器人状态,以及在初始帧的时间步骤要执行的动作。
在方框560,系统基于所应用的图像和所应用的机器人运动参数在神经网络上生成预测图像。生成预测图像将取决于神经网络的结构,并且可以包括本文描述的关于神经网络的DNA、CDNA和STP变化的一种或多种技术。
在方框562,系统基于预测图像与训练示例的第二帧的图像的比较在神经网络上执行反向传播和/或其他训练技术。在一些实施方式中,系统基于该比较确定l2重建损失,并基于l2重建损失更新神经网络。
在方框564,系统将最近预测的图像作为输入应用于神经网络的初始层。在方框564的初始迭代中,这是方框560的预测图像。在一些实施方式中,在方框564,系统可以替代地将对应于最近预测的图像的训练示例的帧的图像作为输入应用于神经网络的附加层。在方框564的初始迭代中,这将是训练示例的第二帧的图像。
在方框566,系统将下一帧的机器人运动参数应用于神经网络的附加层。在方框564的初始迭代中,这将是第二帧的机器人运动参数。
在方框568,系统基于将图像和所应用的机器人运动参数应用于神经网络来生成预测图像。生成预测图像将取决于神经网络的结构,并且可以包括本文描述的关于神经网络的DNA、CDNA和STP变化的一种或多种技术。
在方框570,系统基于预测图像与训练示例的下一帧的图像的比较在神经网络上执行反向传播和/或其他训练技术。在方框570的初始迭代中,下一帧的图像将是第三帧的图像。在一些实施方式中,系统基于该比较确定l2重建损失,并基于l2重建损失更新神经网络。
在方框572,系统确定在训练示例中是否存在要考虑的附加帧。例如,如果训练是八次迭代,则系统可以确定如果还有八个帧要考虑则需要考虑附加帧。如果系统在方框572确定存在要考虑的附加帧,则系统返回到方框564并执行方框564、566、568、570和572的另一次迭代。
如果系统在方框572确定不存在要考虑的附加帧,则系统进行到方框574。在方框574,系统确定是否存在附加训练示例。如果系统确定存在附加训练示例,则系统返回到方框554并选择另一个训练示例。在一些实施方式中,确定是否存在附加训练示例可以包括确定是否存在尚未用于训练神经网络的任何剩余训练示例。另外和/或可替代地,在一些实施方式中,确定是否存在附加训练示例可以包括确定是否已经利用阈值数量的训练示例和/或是否已经满足其他标准。
如果系统确定没有附加训练示例和/或已经满足一些其他标准,则系统进行到方框576。
在方框576,神经网络的训练可以结束。然后可以提供训练的神经网络以供一个或多个机器人在确定要在环境中执行的一个或多个运动时使用。例如,机器人可以在执行图7的方法700时利用训练的神经网络。
图6A和6B示出了示例神经网络600的架构,示出了可以提供给神经网络的示例输入,示出了神经网络600的示例输出,并且示出了如何利用示例输出来生成预测图像。图6A和6B的神经网络600是可以基于图5的方法500训练的神经网络的示例。图6A和6B的神经网络600进一步是神经网络的示例,其一旦被训练,就可用于实施图7的方法700。
图6A和6B的示例神经网络600是CDNA运动预测模型的示例。示例神经网络600可以是图1的神经网络125,并且是本文描述的三种提出的运动预测模型之一。在图6A和6B的神经网络600中,卷积层661、卷积LSTM层672-677和卷积层662用于处理图像601(例如初始迭代中的相机捕获图像以及后续迭代中的最近预测图像)。生成十个归一化CDNA变换内核682的输出作为网络的最小维层(卷积LSTM层675)上的输出,并且生成合成掩模684(例如11通道掩模)的输出作为最后一层(卷积层62)上的输出。如本文所述,合成掩模684可包括用于静态背景的一个通道以及十个附加通道(每个通道对应于基于十个CDNA变换内核682中的对应一个生成的变换图像)。CDNA内核682应用于将图像601(例如初始迭代中的相机捕获图像以及后续迭代中的最近预测图像)变换693成十个不同的变换图像683。十个不同的变换图像被合成,在掩蔽合成694,根据合成掩模684生成预测图像685。图像601变换693成十个不同的变换图像683可以包括基于CDNA内核682卷积图像601(例如基于第一CDNA内核682对图像601进行卷积以生成第一变换图像683,基于第二CDNA内核对图像601进行卷积以生成第二变换图像683等)。由于应用的通道方式回归,合成掩模684在每个像素处总和为1。
各种跳过连接在图6A和6B中示出。特别地,从卷积LSTM层673的输出到卷积LSTM层677的输入的跳过连接,以及从卷积LSTM层671的输出到卷积层662的输入的跳过连接。还示出了各种层和输出的示例尺寸。例如,图像601可以是64像素乘64像素,并且包括3个通道(如“64×64×4”所示)。而且,例如,卷积LSTM层675可以是8×8维(如“8×8”所示),并且应用5乘5卷积(如“5×5”所示)。
现在提供示例神经网络600的附加描述。神经网络600包括包括由一个步幅-2 5×5卷积层661组成的核心主干,接着是卷积LSTM层671-677。每个卷积LSTM层671-677具有布置成5×5卷积的权重,并且前一个LSTM的输出直接馈送到下一个中。卷积LSTM层673和675之前是步幅2下采样以降低分辨率,并且卷积LSTM层675、676和677之前是上采样。LSTM堆叠的末尾之后是上采样级和最终卷积层662,其然后输出全分辨率合成掩模684,用于合成各种变换图像683并针对静态背景进行合成。掩蔽合成694可以使用合成掩模684和变换图像683来生成预测图像685。注意,在STP运动预测模型的情况下,还将生成掩模以合成各种变换图像(基于转换矩阵而生成),并且在STP和DNA的情况下,将生成合成掩模以用于针对静态背景进行合成。
为了保留高分辨率信息,提供了从卷积LSTM层671的输出到卷积层662的输入的跳过连接以及从卷积LSTM层673的输出到卷积LSTM层677的输入的跳过连接。在将它们发送到下一层之前,跳过连接会连接跳过层激活和前一层的激活。例如,卷积LSTM层677的输入包括来自卷积LSTM层673的输出和来自卷积LSTM层676的输出的连接。该模型还包括机器人状态602(例如抓取器姿势)和机器人动作603(例如抓取器运动命令)的机器人运动参数作为输入。例如,机器人状态602可以是五维,具有矢量(x,y,z)和角度(俯仰、偏航)的值。机器人动作也可以是五维,并且如果应用动作则可以是后续(例如下一个)时间步骤的矢量和角度的值,和/或如果应用动作则可以是运动矢量。例如,机器人动作可以是命令的抓取器姿势的矢量(x,y,z)和角度(俯仰、偏航)。命令的抓取器姿势可以是下一个时间步骤的命令的抓取器姿势或另一个时间步骤(例如在最后时间步骤的抓取器的目标姿势)。首先将机器人状态602和机器人动作603矢量平铺成具有10个通道的8×8响应图681,然后在693处以通道方式连接到卷积LSTM层675的输入(与来自卷积LSTM层674的输出连接)。当前迭代的机器人状态602可以是当前机器人状态,并且可以从先前当前机器人状态和先前机器人动作线性地预测后续迭代的机器人状态602,尽管可以使用附加或替代的机器人状态预测模型。
在动作条件机器人操纵任务的情况下,所有三个模型(DNA、CDNA和STP)包括机器人的当前状态(例如抓取器姿势)和动作(例如抓取器动作命令)作为输入。这三个模型的不同之处在于应用于前一图像的变换形式。在卷积LSTM层675之后,以物体为中心的CDNA和STP模型输出变换参数。在两种情况下,卷积LSTM层675的输出被平坦化并线性变换,或在CDNA的情况下直接变换为滤波器参数,或在STP的情况下通过一个100单元的隐藏层。在CDNA的情况下可以有10个CDNA滤波器,其大小可以是5×5并且通过空间回归归一化为总和1,使得每个滤波器表示在先前图像中的位置上的分布,可以从其获得新的像素值。STP参数可以对应于10个3×2仿射变换矩阵。将变换应用于前一图像以创建10个单独的变换图像。CDNA变换对应于卷积(尽管内核是网络的输出),而STP变换是仿射变换。DNA模型与其他两个不同之处在于,变换参数在最后的卷积层662处输出,在与掩模相同的位置。这是因为DNA模型输出与整个图像一样大的变换图。对于每个图像像素,DNA模型输出5×5卷积内核,其可应用于前一图像以获得新的像素值,类似于CDNA模型。但是,由于内核在空间上是变化的,因此该模型不等同于CDNA。该变换仅产生一个变换图像。在变换之后,基于掩模将变换的图像和先前的图像合成在一起。包括前一图像作为静态“背景”图像,并且如本文所述,背景图像上的掩模倾向于挑选场景的静态部分。通过将每个变换图像和背景图像乘以它们的掩模值并将所有掩模图像相加在一起来形成最终图像。
尽管在图6A和6B中示出了特定的卷积神经网络,变化是可能的。例如,可以提供更多或更少的LSTM层,一个或多个层可以是与作为示例等提供的那些不同的尺寸。此外,例如,可以在模型上生成替代的预测变换和/或合成掩模。
一旦图6A和6B的神经网络或其他神经网络根据本文描述的技术训练,它可以用于各种目的。参照图7,示出了利用训练的神经网络生成预测图像的示例方法700的流程图,该预测图像在机器人移动发生之后预测机器人的环境和/或基于预测图像执行一个或多个动作。为方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括机器人的一个或多个部件,比如机器人180A、180B、840的处理器(例如CPU和/或GPU)和/或机器人控制系统,和/或其他机器人。在实施方法700的一个或多个方框时,系统可以在训练的神经网络上操作,该神经网络可以例如本地存储在机器人中和/或可以远离机器人存储。此外,虽然方法700的操作以特定顺序示出,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在方框752,系统针对机器人的候选运动的至少一部分生成候选机器人运动参数。候选机器人运动参数可以包括例如当前机器人状态(例如当前机器人状态或候选机器人运动参数的初始机器人状态)以及要执行的一个或多个动作(例如命令的机器人状态)。候选机器人运动参数定义在机器人的环境中可由机器人的一个或多个部件执行(但尚未执行)的候选运动的至少一部分。例如,运动可以包括机器人的末端执行器从第一姿势到第二姿势的运动,并且候选机器人运动参数可以定义与从第一姿势到第二姿势的运动相关的各种参数或与从第一姿势到第一姿势和第二姿势之间的中间姿势的运动相关的参数。例如,候选机器人运动参数可以仅定义候选运动的一部分(例如仅仅是其第一部分的百分比或仅仅是其第一X个时间步骤)。
例如,运动参数可以包括关节空间运动矢量(例如关节角度运动),以完成候选运动的部分、末端执行器的姿势在候选运动的部分上的变换,关节空间扭矩矢量,以完成候选运动的一部分,和/或其他参数。应注意,特定运动参数和/或运动参数的形式将取决于在其他方框中使用的训练神经网络的输入参数。
在一些实施方式中,候选运动由另一系统生成,并且用于候选运动的候选机器人运动参数在方法700中应用于神经网络,以确定候选运动如果被实施时将如何影响环境中的物体。在这些实施方式的其中一些中,候选运动可以基于它将如何影响物体来实施,可以基于它将如何影响物体来细化,或者可以不基于它将如何影响物体来实施。在一些实施方式中,系统生成多个不同的候选运动,并且在方法700的多次迭代中将它们中的每一个的候选机器人运动参数应用于神经网络,以确定每个将如何影响环境中的物体。在这些实施方式的其中一些中,可以基于它们将如何影响物体来选择其中一个运动用于实施。
在方框754,系统识别捕获机器人环境中的一个或多个环境物体的图像。在一些实施方式中,比如用于候选运动的一部分的方法700的第一次迭代,图像是当前图像。在一些实施方式中,系统还识别至少部分地省略末端执行器和/或其他机器人部件的附加图像,比如当末端执行器至少部分地在视觉传感器的视野之外时由视觉传感器捕获的环境物体的附加图像。在一些实施方式中,系统连接图像和附加图像以生成连接图像。在一些实施方式中,系统可选地执行图像和/或级联图像的处理(例如调整到神经网络的输入的大小)。
在方框756,系统将图像和候选机器人运动参数(例如候选机器人状态和候选动作)应用于训练的神经网络。例如,系统可以将图像应用于训练的神经网络的初始层。系统还可以将当前机器人状态和候选机器人运动参数应用于在初始层下游的训练神经网络的附加层。
在方框758,系统通过训练的神经网络生成方框754的图像的预测变换。基于在方框756将图像和候选机器人运动参数(连同当前机器人状态)应用于训练的神经网络生成预测变换,并基于训练的神经网络的学习权重确定预测的变换。
在方框760,系统基于方框758的预测变换来变换图像,以生成预测图像。例如,在方框758的预测变换包括一个或多个空间变换器的参数的情况下,系统可以利用参数将一个或多个空间变换器应用于当前图像。而且,例如,在方框758的预测变换包括每个对应于一个或多个像素的一个或多个归一化分布的情况下,变换当前图像可以包括使用卷积运算将归一化分布应用于当前图像。在这些实施方式的其中一些中,每个归一化分布对应于对应的一个像素。也可以如本文所述利用合成掩模,其中基于在方框756将图像(以及可选地附加图像)和候选机器人运动参数应用于训练的神经网络来生成合成掩模的参数。例如,可以利用合成掩模以从使用如本文所述的CDNA和/或STP模型生成的多个变换图像生成单个预测图像。此外,合成掩模可以包括背景掩模,该背景掩模可以应用于当前图像以在生成预测图像时从当前图像复制像素。
如果由方框752的参数指示的候选运动的至少一部分由机器人的部件在环境中执行,则预测图像预测由图像捕获的环境的部分。换句话说,在候选运动的至少一部分将引起环境中的一个或多个物体的运动的情况下,预测图像可以表示运动之后的物体。
在一些实施方式中,系统确定是否存在对于候选运动要考虑的附加候选机器人运动参数。例如,系统可以确定是否存在要考虑的候选运动的另一部分,并且如果是,则系统返回到方框752并生成该部分的候选机器人运动参数,然后进行到方框754并识别图像,然后进行到框756-758并基于附加候选机器人运动参数生成另一预测图像。在一些实施方式中,在方框754的附加迭代处识别的图像是在方框760的紧接在前的迭代中生成的预测图像。该过程可以重复,每次利用来自紧接在前的迭代的预测图像作为在方框754的该标识处识别和在方框756的该迭代处应用的图像,从而使得能够为将来的多个时间步骤中的每一个生成预测图像。以这种方式,预测图像可用于确定在多个时间步骤上的物体的运动,以当前图像为条件并基于候选机器人运动参数。
在方框762,系统基于预测图像并且可选地基于“当前图像”执行一个或多个动作。例如,系统可以基于将预测图像与当前图像进行比较来确定候选运动引起的运动是期望的。基于确定运动是期望的,系统可以通过例如向机器人的一个或多个致动器提供一个或多个控制命令来执行候选运动以实现候选运动。而且,例如,在针对候选运动确定多个预测图像的情况下,系统可以基于预测图像和/或当前图像确定由候选运动引起的运动是期望的。基于确定运动是期望的,系统可以通过例如向机器人的一个或多个致动器提供一个或多个控制命令来执行候选运动以实现候选运动。
在一些实施方式中,对一个或多个候选运动执行方框752-760的一次或多次迭代,且在方框764,系统可基于那些迭代的预测图像来选择候选运动之一。例如,可以针对第一候选运动执行方框752-760的一次或多次迭代,并且针对第二候选运动单独执行。系统可以基于第一候选运动的预测图像和第二候选运动的预测图像来选择第一候选运动和第二候选运动中的一个。系统可以通过向机器人的一个或多个致动器提供一个或多个相应的控制命令来执行所选择的候选运动。
图8示意性地描绘了机器人840的示例架构。机器人840包括机器人控制系统860、一个或多个操作部件840a-840n以及一个或多个传感器842a-842m。传感器842a-842m可包括例如视觉传感器、光传感器、压力传感器、压力波传感器(例如麦克风)、接近传感器、加速度计、陀螺仪、温度计、气压计等。虽然传感器842a-m被描绘为与机器人820成一体,但这并不意味着限制。在一些实施方式中,传感器842a-m可以位于机器人820的外部,例如作为独立单元。
操作部件840a-840n可以包括例如一个或多个末端执行器和/或一个或多个伺服马达或其他致动器,以实现机器人的一个或多个部件的运动。例如,机器人820可以具有多个自由度,并且每个致动器可以响应于控制命令在一个或多个自由度内控制机器人820的致动。如本文所用,术语致动器包括产生运动的机械或电气装置(例如马达),以及可与致动器相关并且将所接收的控制命令转换成一个或多个信号用于驱动致动器的任何驱动器。因此,向致动器提供控制命令可以包括向驱动器提供控制命令,驱动器将控制命令转换成适当的信号以驱动电气或机械装置来产生期望的运动。
机器人控制系统860可以在一个或多个处理器中实施,比如CPU、GPU,和/或机器人820的其他控制器。在一些实施方式中,机器人820可以包括“脑盒”,其可以包括控制系统860的全部或各方面。例如,脑盒可以向操作部件840a-n提供实时的数据突发,其中每个实时突发包括一组一个或多个控制命令,其尤其针对一个或多个操作部件840a-n中的每一个指示运动参数(如果有的话)。在一些实施方式中,机器人控制系统860可以执行本文描述的方法300、400、500和/或700的一个或多个方面。
如本文所述,在一些实施方式中,由控制系统860在移动机器人的一个或多个部件时生成的控制命令的全部或各方面可以基于利用经由训练的神经网络确定的预测变换生成的预测图像。例如,传感器842a-m的视觉传感器可以捕获当前图像,并且机器人控制系统860可以生成候选机器人运动参数。机器人控制系统860可以将当前图像和候选机器人运动参数提供给训练的神经网络,基于该应用生成预测变换,可以基于预测变换生成预测图像,并且利用预测图像生成一个或者多个末端执行器控制命令,用于控制机器人的运动。尽管图8中示出了控制系统860作为机器人820的组成部分,在一些实施方式中,控制系统860的全部或各方面可以在与机器人820分离但与其通信的部件中实施。例如,控制系统860的全部或各方面可以在与机器人820进行有线和/或无线通信的一个或多个计算设备上实施,比如计算设备910。
图9是可任选地用于执行本文描述的技术的一个或多个方面的示例计算设备910的框图。计算设备910通常包括至少一个处理器914,其经由总线子系统912与多个外围设备通信。这些外围设备可以包括存储子系统924,包括例如存储器子系统925和文件存储子系统926,用户接口输出设备920、用户接口输入设备922和网络接口子系统916。输入和输出设备允许用户与计算设备910交互。网络接口子系统916提供到外部网络的接口并且耦合到其他计算设备中的相应接口设备。
用户接口输入设备922可以包括键盘、指示设备比如鼠标、轨迹球、触摸板或图形输入板、扫描仪、结合到显示器中的触摸屏、音频输入设备比如语音识别系统、麦克风和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括所有可能类型的设备和将信息输入到计算设备910中或输入到通信网络上的方式。
用户接口输出设备920可以包括显示子系统、打印机、传真机或非可视显示器比如音频输出设备。显示子系统可包括阴极射线管(CRT)、平板设备比如液晶显示器(LCD)、投影设备或用于产生可视图像的一些其他机构。显示子系统还可以提供非可视显示,比如通过音频输出设备。通常,术语“输出设备”的使用旨在包括所有可能类型的设备以及将信息从计算设备910输出到用户或另一机器或计算设备的方式。
存储子系统924存储编程和数据构造,其提供本文描述的一些或所有模块的功能。例如,存储子系统924可以包括执行图3、4、5和/或7的方法的所选方面的逻辑。
这些软件模块通常由处理器914单独执行或与其他处理器组合执行。存储子系统924中使用的存储器925可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)930和存储固定指令的只读存储器(ROM)932。文件存储子系统926可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关的可移动介质、CD-ROM驱动器、光盘驱动器或可移动介质盒。实现某些实施方式的功能的模块可以由文件存储子系统926存储在存储子系统924中,或者存储在可由处理器914访问的其他机器中。
总线子系统912提供用于使计算设备910的各个部件和子系统按预期彼此通信的机构。虽然总线子系统912被示意性地示为单个总线,但是总线子系统的替代实施方式可以使用多个总线。
计算设备910可以是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器群、或者任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图9中描绘的计算设备910的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算设备910的许多其他配置可能具有比图9中描绘的计算设备更多或更少的部件。

Claims (23)

1.一种基于捕获的图像和机器人运动参数控制机器人执行候选运动的由一个或多个处理器实施的方法,包括:
生成候选机器人运动参数,所述候选机器人运动参数定义可由机器人的一个或多个部件在机器人的环境中执行的候选运动的至少一部分;
识别由与机器人相关的视觉传感器捕获的当前图像,所述当前图像捕获机器人的环境的至少一部分;
采用动作条件运动预测模型,将所述当前图像和候选机器人运动参数作为输入应用于训练的神经网络,所述动作条件运动预测模型通过预测来自先前帧的像素运动的分布来显示建模像素运动;
生成所述当前图像的至少一个预测变换,基于将所述当前图像和候选机器人运动参数应用于训练的神经网络来生成所述预测变换;
基于所述至少一个预测变换来变换所述当前图像以生成至少一个预测图像,如果候选运动的至少一部分由机器人的部件在环境中执行,则所述预测图像预测机器人的环境的部分;
基于所述预测图像,确定执行所述候选运动;和
向机器人的一个或多个致动器提供一个或多个控制命令以执行所述候选运动。
2.根据权利要求1所述的方法,还包括:
基于将所述当前图像和候选机器人运动参数应用于训练的神经网络,生成至少一个合成掩模;
其中,变换所述当前图像还基于所述至少一个合成掩模。
3.根据权利要求2所述的方法,其中,所述至少一个预测变换包括多个预测变换,其中,所述至少一个合成掩模包括多个合成掩模,并且其中,基于所述至少一个预测变换来变换所述当前图像以生成所述预测图像包括:
基于所述多个预测变换生成多个预测图像;和
基于所述多个合成掩模合成预测图像以生成所述预测图像。
4.根据权利要求1所述的方法,还包括:
生成第二候选机器人运动参数,所述第二候选机器人运动参数定义可由所述部件中的一个或多个在环境中执行的第二候选运动的至少一部分,所述第二候选运动可执行以代替所述候选运动;
将所述当前图像和第二候选机器人运动参数作为输入应用于训练的神经网络;
生成所述当前图像的至少一个第二预测变换,基于将所述当前图像和第二候选机器人运动参数应用于训练的神经网络来生成所述第二预测变换;
基于所述第二预测变换来变换所述当前图像的一个或多个像素以生成至少一个第二预测图像,如果所述第二候选运动的至少一部分由机器人的部件在环境中执行,则所述第二预测图像预测机器人的环境的部分。
5.根据权利要求4所述的方法,还包括:
基于所述预测图像和第二预测图像,选择所述候选运动或第二候选运动;和
向机器人的一个或多个致动器提供一个或多个控制命令以执行所述候选运动和第二候选运动中的所选择的一个。
6.根据权利要求1所述的方法,还包括:
生成连续候选机器人运动参数,所述连续候选机器人运动参数定义在所述候选运动的所述部分之后的所述候选运动的另一部分;
将所述预测图像和连续候选机器人运动参数应用于训练的神经网络;
生成所述预测图像的至少一个连续预测变换,基于将所述预测图像和连续候选机器人运动参数应用于训练的神经网络来生成所述连续预测变换;
基于所述连续预测变换来变换所述预测图像以生成连续预测图像。
7.根据权利要求6所述的方法,还包括:
基于所述预测图像和连续预测图像,确定执行所述候选运动;和
向机器人的一个或多个致动器提供一个或多个控制命令以执行所述候选运动。
8.根据权利要求1所述的方法,其中,所述训练的神经网络包括多个堆叠的卷积长短期存储层。
9.根据权利要求1所述的方法,其中,所述当前图像的至少一个预测变换包括一个或多个空间变换器的参数。
10.根据权利要求9所述的方法,其中,变换所述当前图像包括:利用所述一个或多个空间变换器的参数将所述一个或多个空间变换器应用于所述当前图像。
11.根据权利要求1所述的方法,其中,所述当前图像的像素的至少一个预测变换包括一个或多个归一化分布,每个归一化分布对应于一个或多个像素。
12.根据权利要求11所述的方法,其中,变换所述当前图像包括:使用卷积运算将归一化分布应用于所述当前图像。
13.根据权利要求11所述的方法,其中,每个归一化分布对应于相应的一个像素。
14.根据权利要求1所述的方法,其中,将所述当前图像和候选机器人运动参数作为输入应用于训练的神经网络包括:
将所述当前图像作为输入应用于训练的神经网络的初始层;和
将所述候选机器人运动参数应用于训练的神经网络的附加层,所述附加层位于所述初始层的下游。
15.一种基于捕获的图像和机器人运动参数控制机器人执行候选运动的系统,包括:
观察环境的视觉传感器;
存储在一个或多个非暂时性计算机可读介质中的训练的神经网络;
至少一个处理器,其配置为:
识别由与机器人相关的所述视觉传感器捕获的当前图像;
识别机器人的当前状态;
识别将机器人从所述当前状态转换到候选状态的候选动作;
将所述当前图像、当前状态和候选动作作为输入应用于训练的神经网络;
采用动作条件运动预测模型,基于将所述当前图像、当前状态和候选动作应用于训练的神经网络来生成至少一个预测图像,所述动作条件运动预测模型通过预测来自先前帧的像素运动的分布来显示建模像素运动;
基于所述预测图像,确定执行所述候选动作;以及
向机器人的一个或多个致动器提供一个或多个控制命令以执行所述候选动作。
16.根据权利要求15所述的系统,其中,所述至少一个处理器还配置为:
基于所述候选动作,确定所述当前状态之后的下一个状态;
识别下一个候选动作以将机器人从所述下一个状态转换到另一个候选状态;
在把作为输入的所述当前图像、当前状态和候选动作输入到训练的神经网络之后,将所述预测图像、下一个状态和下一个候选动作作为输入应用于训练的神经网络;以及
基于将所述预测图像、下一个状态和下一个候选动作作为输入应用于训练的神经网络来生成下一个预测图像;
其中,在确定执行所述候选动作时,所述至少一个处理器还基于所述下一个预测图像,确定执行所述候选动作。
17.一种采用动作条件运动预测模型来训练神经网络的方法,所述动作条件运动预测模型通过预测来自先前帧的像素运动的分布来显示建模像素运动,所述方法包括:
通过一个或多个处理器识别在由机器人的多个物体运动尝试期间基于来自与一个或多个机器人相关的传感器的传感器输出而生成的多个训练示例,
每个训练示例包括:
来自所述物体运动尝试的相应尝试的一组顺序图像,每个图像在相应的时刻捕获环境中的一个或多个相应物体,和
对于每个顺序图像:
机器人在相应时刻的状态,以及
要被应用于将机器人在相应时刻的状态转换为与所述顺序图像的下一个顺序图像对应的新状态的动作;
基于所述训练示例,由一个或多个处理器训练所述神经网络。
18.根据权利要求17所述的方法,其中,基于所述训练示例来训练所述神经网络包括:
作为初始输入应用于所述神经网络:
所述顺序图像的给定图像和针对所述给定图像的状态及动作;
基于将所述初始输入应用于所述神经网络来生成预测图像;
基于所述预测图像和所述顺序图像中的给定图像之后的下一个顺序图像来确定误差;以及
基于所述误差来更新所述神经网络。
19.根据权利要求18所述的方法,其中,基于所述训练示例来训练所述神经网络还包括:
在应用所述初始输入之后,作为下一个输入应用于所述神经网络:
所述预测图像和针对所述下一个顺序图像的状态及动作;
基于将所述下一个输入应用于所述神经网络来生成附加预测图像;
基于所述附加预测图像和所述顺序图像中的下一个顺序图像之后的附加下一个顺序图像来确定附加误差;以及
基于所述附加误差来更新所述神经网络。
20.根据权利要求18所述的方法,其中,应用所述初始输入包括:
将给定训练示例的给定图像作为输入应用于所述神经网络的初始层;和
将针对所述给定图像的状态和动作应用于所述神经网络的附加层,所述附加层位于所述初始层的下游。
21.根据权利要求17所述的方法,其中,所述训练示例包括:
第一组训练示例,其在由第一机器人的多个物体运动尝试期间基于来自所述第一机器人的多个第一机器人传感器的输出而生成;和
第二组训练示例,其在由第二机器人的多个物体运动尝试期间基于来自所述第二机器人的多个第二机器人传感器的输出而生成。
22.一种计算机程序,包括机器可读指令,所述机器可读指令在由计算装置执行时导致执行根据权利要求1-14中任一项所述的方法。
23.一种计算机程序,包括机器可读指令,所述机器可读指令在由计算装置执行时导致执行根据权利要求17-21中任一项所述的方法。
CN201780031172.7A 2016-05-20 2017-05-16 与基于捕获物体的图像并且基于用于环境中的未来机器人运动的参数来预测机器人环境中的物体运动有关的机器学习方法和装置 Active CN109153123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210417177.6A CN114967433B (zh) 2016-05-20 2017-05-16 基于捕获物体的图像的机器学习方法和装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662339734P 2016-05-20 2016-05-20
US62/339,734 2016-05-20
PCT/US2017/032865 WO2017201023A1 (en) 2016-05-20 2017-05-16 Machine learning methods and apparatus related to predicting motion(s) of object(s) in a robot's environment based on image(s) capturing the object(s) and based on parameter(s) for future robot movement in the environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210417177.6A Division CN114967433B (zh) 2016-05-20 2017-05-16 基于捕获物体的图像的机器学习方法和装置

Publications (2)

Publication Number Publication Date
CN109153123A CN109153123A (zh) 2019-01-04
CN109153123B true CN109153123B (zh) 2022-04-26

Family

ID=63799139

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210417177.6A Active CN114967433B (zh) 2016-05-20 2017-05-16 基于捕获物体的图像的机器学习方法和装置
CN201780031172.7A Active CN109153123B (zh) 2016-05-20 2017-05-16 与基于捕获物体的图像并且基于用于环境中的未来机器人运动的参数来预测机器人环境中的物体运动有关的机器学习方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210417177.6A Active CN114967433B (zh) 2016-05-20 2017-05-16 基于捕获物体的图像的机器学习方法和装置

Country Status (2)

Country Link
EP (2) EP3402633B1 (zh)
CN (2) CN114967433B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9381916B1 (en) * 2012-02-06 2016-07-05 Google Inc. System and method for predicting behaviors of detected objects through environment representation
CN109807887B (zh) * 2019-01-18 2020-09-15 上海交通大学 基于深度神经网络的柔性臂智能感知与控制方法和系统
EP3831545A4 (en) 2019-03-15 2022-03-16 OMRON Corporation PARAMETER SETTING DEVICE, PARAMETER SETTING METHOD AND PROGRAM
CN110000785B (zh) * 2019-04-11 2021-12-14 上海交通大学 农业场景无标定机器人运动视觉协同伺服控制方法与设备
US11288883B2 (en) * 2019-07-23 2022-03-29 Toyota Research Institute, Inc. Autonomous task performance based on visual embeddings
CN112287728A (zh) * 2019-07-24 2021-01-29 鲁班嫡系机器人(深圳)有限公司 智能体轨迹规划方法、装置、系统、存储介质及设备
CN110491088A (zh) * 2019-07-26 2019-11-22 安徽泛米科技有限公司 一种区域滞留报警装置
US11584004B2 (en) * 2019-12-17 2023-02-21 X Development Llc Autonomous object learning by robots triggered by remote operators
CN111476162A (zh) * 2020-04-07 2020-07-31 广东工业大学 一种操作命令生成方法、装置及电子设备和存储介质
CN113547504A (zh) * 2020-04-23 2021-10-26 曰轮法寺 一种装配方法、装置、系统、存储介质及设备
CN111844034B (zh) * 2020-07-17 2022-03-04 北京控制工程研究所 基于深度强化学习的端到端在轨自主加注控制系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1457287A (zh) * 2001-02-21 2003-11-19 索尼公司 用于机器人装置的操作控制的方法、程序、和记录介质、以及机器人装置
CN101482923A (zh) * 2009-01-19 2009-07-15 刘云 视频监控中人体目标的检测与性别识别方法
CN101809598A (zh) * 2007-10-01 2010-08-18 独立行政法人理化学研究所 神经元装置、神经网络装置、反馈控制装置及信息存储介质
CN104758096A (zh) * 2015-03-30 2015-07-08 山东科技大学 一种对假肢目标空间定位精度矫正的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469237B2 (en) * 1996-05-02 2008-12-23 Cooper David L Method and apparatus for fractal computation
US9248569B2 (en) * 2013-11-22 2016-02-02 Brain Corporation Discrepancy detection apparatus and methods for machine learning

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1457287A (zh) * 2001-02-21 2003-11-19 索尼公司 用于机器人装置的操作控制的方法、程序、和记录介质、以及机器人装置
CN101809598A (zh) * 2007-10-01 2010-08-18 独立行政法人理化学研究所 神经元装置、神经网络装置、反馈控制装置及信息存储介质
CN101482923A (zh) * 2009-01-19 2009-07-15 刘云 视频监控中人体目标的检测与性别识别方法
CN104758096A (zh) * 2015-03-30 2015-07-08 山东科技大学 一种对假肢目标空间定位精度矫正的方法

Also Published As

Publication number Publication date
EP3402633A1 (en) 2018-11-21
EP3402633B1 (en) 2020-05-13
CN114967433A (zh) 2022-08-30
CN114967433B (zh) 2023-08-18
CN109153123A (zh) 2019-01-04
EP3689557A1 (en) 2020-08-05

Similar Documents

Publication Publication Date Title
JP7399912B2 (ja) 物体を取り込む画像に基づき、環境内の将来のロボット運動に関するパラメータに基づいて、ロボットの環境内の物体の動きを予測することに関する機械学習の方法および装置
CN109153123B (zh) 与基于捕获物体的图像并且基于用于环境中的未来机器人运动的参数来预测机器人环境中的物体运动有关的机器学习方法和装置
KR102023588B1 (ko) 로봇 파지용 심층 기계 학습 방법 및 장치
EP3693138B1 (en) Robotic grasping prediction using neural networks and geometry aware object representation
US12053886B2 (en) Device control using policy training based on task embeddings
US20230289988A1 (en) Robotic control based on 3d bounding shape, for an object, generated using edge-depth values for the object
EP3621773A2 (en) Viewpoint invariant visual servoing of robot end effector using recurrent neural network
US11823048B1 (en) Generating simulated training examples for training of machine learning model used for robot control
US12112494B2 (en) Robotic manipulation using domain-invariant 3D representations predicted from 2.5D vision data
CN112757284A (zh) 机器人控制装置、方法和存储介质
Kim et al. Acceleration of actor-critic deep reinforcement learning for visual grasping in clutter by state representation learning based on disentanglement of a raw input image
US20240118667A1 (en) Mitigating reality gap through training a simulation-to-real model using a vision-based robot task model
CN118081758A (zh) 一种杂乱场景下机器人自主拾取与放置位姿获取方法
Kim et al. Acceleration of actor-critic deep reinforcement learning for visual grasping by state representation learning based on a preprocessed input image
JP7406654B2 (ja) 実際の場所の仮想環境復元を作成するための方法
US20230154160A1 (en) Mitigating reality gap through feature-level domain adaptation in training of vision-based robot action model
US20240094736A1 (en) Robot navigation in dependence on gesture(s) of human(s) in environment with robot
Barate et al. Generalization performance of vision based controllers for mobile robots evolved with genetic programming
Hong et al. Sim-to-Real: Autonomous Robotic Control

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant