KR101980603B1 - 오브젝트(들)를 캡처하는 이미지(들)에 기초하는 그리고 환경에서의 미래 로봇 움직임에 대한 파라미터(들)에 기초하여 로봇 환경에서의 오브젝트(들)의 모션(들)을 예측하는 것과 관련된 머신 학습 방법들 및 장치 - Google Patents
오브젝트(들)를 캡처하는 이미지(들)에 기초하는 그리고 환경에서의 미래 로봇 움직임에 대한 파라미터(들)에 기초하여 로봇 환경에서의 오브젝트(들)의 모션(들)을 예측하는 것과 관련된 머신 학습 방법들 및 장치 Download PDFInfo
- Publication number
- KR101980603B1 KR101980603B1 KR1020187035430A KR20187035430A KR101980603B1 KR 101980603 B1 KR101980603 B1 KR 101980603B1 KR 1020187035430 A KR1020187035430 A KR 1020187035430A KR 20187035430 A KR20187035430 A KR 20187035430A KR 101980603 B1 KR101980603 B1 KR 101980603B1
- Authority
- KR
- South Korea
- Prior art keywords
- robot
- image
- motion
- candidate
- predicted
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 328
- 238000000034 method Methods 0.000 title claims description 107
- 230000009466 transformation Effects 0.000 claims abstract description 35
- 238000013528 artificial neural network Methods 0.000 claims description 114
- 238000012549 training Methods 0.000 claims description 91
- 230000009471 action Effects 0.000 claims description 83
- 238000009826 distribution Methods 0.000 claims description 21
- 239000002131 composite material Substances 0.000 claims description 14
- 230000015572 biosynthetic process Effects 0.000 claims description 12
- 238000003786 synthesis reaction Methods 0.000 claims description 12
- 230000001131 transforming effect Effects 0.000 claims description 11
- 230000002085 persistent effect Effects 0.000 claims description 9
- 238000000844 transformation Methods 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 5
- 230000002194 synthesizing effect Effects 0.000 claims description 2
- 230000006403 short-term memory Effects 0.000 claims 1
- 230000001052 transient effect Effects 0.000 claims 1
- 230000004044 response Effects 0.000 abstract description 9
- 238000003062 neural network model Methods 0.000 abstract description 6
- 238000010801 machine learning Methods 0.000 abstract description 2
- 239000012636 effector Substances 0.000 description 49
- 230000000875 corresponding effect Effects 0.000 description 24
- 239000013598 vector Substances 0.000 description 14
- 239000003795 chemical substances by application Substances 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 8
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 7
- 244000046052 Phaseolus vulgaris Species 0.000 description 7
- 230000010399 physical interaction Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 5
- 230000001143 conditioned effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000001537 neural effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000001994 activation Methods 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 210000000078 claw Anatomy 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009189 diving Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000017511 neuron migration Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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/1697—Vision controlled systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/0265—Adaptive 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/027—Adaptive 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
-
- G06K9/00—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/008—Artificial 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G06N3/0454—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local 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/443—Local 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/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39289—Adaptive ann controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Robotics (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Fuzzy Systems (AREA)
- Databases & Information Systems (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Human Computer Interaction (AREA)
- Biodiversity & Conservation Biology (AREA)
- Manipulator (AREA)
- Image Analysis (AREA)
Abstract
본 명세서의 일부 구현예들은 일반적으로, 환경 내의 로봇의 특정 움직임에 응답하여 로봇의 환경에서 오브젝트(들)에 대해 발생할 (만약 존재한다면) 모션(들)을 예측하는 것에 관한 딥 머신 학습 방법 및 장치에 관한 것이다. 일부 구현예들은 환경 내의 로봇의 특정 움직임의 적어도 일부를 구현하는 것의 결과로서 발생할, 로봇의 환경의 이미지의, (만약 존재한다면) 적어도 하나의 변환을 예측하기 위해 딥 신경망(deep neural network) 모델을 트레이닝하는 것에 관한 것이다. 트레이닝된 딥 신경망 모델은 특정 움직임의 일부를 정의하는 로봇 움직임 파라미터들의 그룹 및 이미지를 포함하는 입력에 기초하여 변환을 예측할 수 있다.
Description
많은 로봇들이 하나 이상의 엔드 이펙터를 이용하여 하나 이상의 오브젝트를 조작하도록 프로그래밍된다. 예를 들어, 로봇은 엔드 이펙터를 이용하여 오브젝트에 힘을 인가하고 그 오브젝트의 움직임을 야기할 수 있다. 예를 들어, 로봇은 잡기 엔드 이펙터(grasping end effector) 또는 다른 엔드 이펙터를 이용하여 오브젝트를 반드시 잡지 않고도 그 오브젝트를 변위시킬 수 있다. 또한, 예를 들어, 로봇은 "충격형(impactive)" 그리퍼(gripper) 또는 "진입형(ingressive)" 그리퍼(예를 들어, 핀, 바늘 등을 사용하여 오브젝트를 물리적으로 투과하는)와 같은 잡기 엔드 이펙터를 이용하여 오브젝트를 제1 위치에서 들어올려서, 그 오브젝트를 제2 위치로 이동시키고, 그 오브젝트를 제2 위치에 떨어뜨릴 수 있다.
이 명세서의 일부 구현예들은 일반적으로, 환경 내에서 로봇의 특정 움직임에 응답하여 로봇의 환경에서 오브젝트(들)에 대해 발생할 (만약 존재하는 경우) 모션(들)을 예측하는 것에 관련된 딥 머신 학습 방법들 및 장치에 관한 것이다. 일부 구현예들은, 환경 내의 로봇의 특정 움직임의 적어도 일부를 구현하는 것의 결과로서 발생할, 로봇의 환경의 이미지의, (만약 존재하는 경우) 적어도 하나의 변환을 예측하기 위해 딥 신경망 모델을 트레이닝하는 것에 관한 것이다. 트레이닝된 딥 신경망 모델은: (1) 이미지, 및 (2) 특정 움직임의 일부를 정의하는 로봇 움직임 파라미터들을 포함하는 입력에 기초하여 변환을 예측할 수 있다. 예측되는 변환은 이미지를 변환하여 로봇의 환경의 예측되는 이미지를 생성하기 위해 이용될 수 있으며, 예측되는 이미지가 로봇의 환경을 예측하는 경우는 발생할 특정 움직임의 일부였다. 다시 말해, 예측되는 이미지는 특정 움직임의 일부가 발생한 이후 로봇의 환경의 예측을 예시하며, 예를 들어, 특정 움직임의 결과로서 발생할 환경 내의 오브젝트(들)의 모션(들)을 예측하기 위해 이용될 수 있다.
예측되는 모션(들)은 예를 들어, 특정 움직임을 실행하도록 로봇의 액추에이터(들)에 제어 커맨드들을 제공할지를 결정하는 것과 같은, 다양한 목적들을 위해 이용될 수 있다. 예를 들어, 예측되는 모션(들)은 원하는 모션(들)과 비교될 수 있고, 제어 커맨드들은 예측되는 모션(들)이 원하는 모션(들)에 따르는 경우 구현된다. 이러한 방식으로, 특정 움직임의 결과는 특정 움직임의 구현 이전에 효과적으로 "시각화"될 수 있고, 특정 움직임은 그 결과가 바람직한 경우 구현된다. 본원에 기술된 바와 같이, 다양한 구현예들에서, 딥 신경망 모델은 복수의 미래 시간 단계들에 대한 후보 움직임 파라미터들에 기초하여 그 미래 시간 단계들 각각에서의 이미지를 예측하고, 이에 의해 미래에 많은 시간 단계들에 대한 효과적인 시각화를 가능하게 한다.
일부 구현예들에서는, 로봇의 하나 이상의 컴포넌트에 의해 로봇의 환경에서 수행가능한 후보 움직임의 적어도 일부를 정의하는 후보 로봇 움직임 파라미터들을 생성하는 단계를 포함하는 방법이 제공된다. 이 방법은 로봇과 연관된 비전 센서에 의해 캡처되는 현재 이미지를 식별하는 단계를 더 포함한다. 현재 이미지는 로봇의 환경의 적어도 일부를 캡처한다. 이 방법은: 트레이닝된 신경망에 대한 입력으로서 현재 이미지 및 후보 로봇 움직임 파라미터들을 적용하는 단계; 및 트레이닝된 신경망에 대한 현재 이미지 및 후보 로봇 움직임 파라미터들의 적용에 기초하여 현재 이미지의 적어도 하나의 예측되는 변환을 생성하는 단계를 더 포함한다. 이 방법은 적어도 하나의 예측되는 변환에 기초하여 현재 이미지를 변환하여 적어도 하나의 예측되는 이미지를 생성하는 단계를 더 포함한다. 예측되는 이미지는 후보 움직임의 적어도 일부가 로봇의 컴포넌트들에 의해 환경에서 수행되는 경우 로봇의 환경의 일부를 예측한다.
이들, 및 다른 구현예들은 후속하는 특징들 중 하나 이상을 임의로 포함할 수 있다.
일부 구현예들에서, 방법은, 예측되는 이미지에 기초하여, 후보 움직임을 수행하도록 결정하는 단계; 및 로봇의 하나 이상의 액추에이터에 하나 이상의 제어 커맨드를 제공하여 후보 움직임을 수행하는 단계를 더 포함한다.
일부 구현예들에서, 방법은: 예측되는 이미지에 기초하여, 후보 움직임 대신 대안적인 움직임을 수행하도록 결정하는 단계; 및 로봇의 하나 이상의 액추에이터에 하나 이상의 제어 커맨드를 제공하여 대안적인 움직임을 수행하는 단계를 더 포함한다.
일부 구현예들에서, 방법은 트레이닝된 신경망으로의 현재 이미지 및 후보 로봇 움직임 파라미터들의 적용에 기초하여 적어도 하나의 합성 마스크를 생성하는 단계를 더 포함한다. 현재 이미지를 변환하는 단계는 적어도 하나의 합성 마스크에 추가로 기초한다. 일 예로서, 적어도 하나의 예측되는 변환은 복수의 예측되는 변환을 포함할 수 있고, 적어도 하나의 합성 마스크는 복수의 복수의 합성 마스크를 포함하고, 적어도 하나의 예측되는 변환에 기초하여 현재 이미지를 변환하여 예측되는 이미지를 생성하는 단계는: 복수의 예측되는 변환에 기초하여 복수의 예측되는 이미지를 생성하는 단계; 및 복수의 합성 마스크에 기초하여 예측되는 이미지들을 합성하여 예측되는 이미지를 생성하는 단계를 포함할 수 있다.
일부 구현예들에서, 방법은 후보 움직임 대신 컴포넌트들 중 하나 이상에 의해 환경 내에서 수행가능한 제2 후보 움직임의 적어도 일부를 정의하는 제2 후보 로봇 움직임 파라미터들을 생성하는 단계를 더 포함한다. 그 구현예들에서, 방법은: 트레이닝된 신경망에 대한 입력으로서 현재 이미지 및 제2 후보 로봇 움직임 파라미터들을 적용하는 단계; 트레이닝된 신경망으로의 현재 이미지 및 제2 후보 로봇 움직임 파라미터들의 적용에 기초하여 현재 이미지의 적어도 하나의 제2 예측되는 변환을 생성하는 단계; 및 제2 예측되는 변환에 기초하여 현재 이미지의 픽셀들 중 하나 이상을 변환하여 적어도 하나의 제2 예측되는 이미지를 생성하는 단계를 포함한다. 제2 예측되는 이미지는, 제2 후보 움직임의 적어도 일부가 로봇의 컴포넌트들에 의해 환경 내에서 수행되는 경우 로봇의 환경의 일부를 예측한다. 그 구현예들의 일부 버전들에서, 방법은: 예측되는 이미지 및 제2 예측되는 이미지에 기초하여, 후보 움직임 또는 제2 후보 움직임을 선택하는 단계; 및 로봇의 하나 이상의 액추에이터에 하나 이상의 제어 커맨드를 제공하여 후보 움직임 및 제2 후보 움직임 중 선택된 하나를 수행하는 단계를 더 포함한다.
일부 구현예들에서, 방법은: 후보 움직임의 일부에 후속하는 후보 움직임의 또 다른 부분을 정의하는 지속적인 후보 로봇 움직임 파라미터들을 생성하는 단계; 트레이닝된 신경망에 예측되는 이미지 및 지속적인 후보 로봇 움직임 파라미터들을 적용하는 단계; 트레이닝된 신경망으로의 예측되는 이미지 및 지속적인 후보 로봇 움직임 파라미터들의 적용에 기초하여 예측되는 이미지의 적어도 하나의 지속적인 예측되는 변환을 생성하는 단계; 및 지속적인 예측되는 변환에 기초하여 예측되는 이미지를 변환하여 지속적인 예측되는 이미지를 생성하는 단계를 더 포함한다. 그 구현예들 중 일부에서, 방법은: 예측되는 이미지 및 지속적인 예측되는 이미지에 기초하여, 후보 움직임을 수행하도록 결정하는 단계; 및 후보 움직임을 수행하도록 로봇의 하나 이상의 액추에이터에 하나 이상의 제어 커맨드를 제공하는 단계를 더 포함한다.
일부 구현예들에서, 트레이닝된 신경망은 복수의 스택화된 컨볼루션 장단기 메모리 계층을 포함한다.
일부 구현예들에서, 현재 이미지의 픽셀들의 적어도 하나의 예측되는 변환은 하나 이상의 공간 변환기의 파라미터들을 포함한다. 그 구현예들 중 일부에서, 현재 이미지를 변환하는 단계는: 파라미터들을 이용하여 현재 이미지에 하나 이상의 공간 변환기를 적용하는 단계를 포함한다.
일부 구현예들에서, 현재 이미지의 픽셀들의 적어도 하나의 예측되는 변환은 각각이 픽셀들 중 하나 이상에 대응하는 하나 이상의 정규화된 분포를 포함한다. 그 구현예들 중 일부에서, 현재 이미지를 변환하는 단계는: 컨볼루션 연산을 사용하여 현재 이미지에 정규화된 분포를 적용하는 단계를 포함한다. 그 구현예들의 일부 버전들에서, 정규화된 분포의 각각은 픽셀들 중 대응하는 하나에 대응한다.
일부 구현예들에서, 트레이닝된 신경망에 대한 입력으로서 현재 이미지 및 후보 로봇 모션 파라미터들을 적용하는 단계는: 트레이닝된 신경망의 초기 계층에 대한 입력으로서 현재 이미지를 적용하는 단계; 및 트레이닝된 신경망의 추가 계층에 후보 로봇 모션 파라미터들을 적용하는 단계를 포함하고, 추가 계층은 초기 계층의 다운스트림이다.
일부 구현예들에서, 후보 로봇 파라미터들은 초기 로봇 상태, 및 후속적인 로봇 상태를 나타내는 액션을 포함한다. 그 구현예들 중 일부에서, 초기 로봇 상태는 엔드 이펙터의 현재 포즈이고, 액션은 엔드 이펙터의 지시된 포즈(commanded pose)이다.
일부 구현예들에서는, 로봇과 연관된 비전 센서에 의해 캡처되는 현재 이미지를 식별하는 단계를 포함하는 방법이 제공된다. 이 방법은 로봇의 현재 상태를 식별하는 단계, 및 로봇을 현재 상태로부터 후보 상태로 트랜지션하기 위한 후보 액션을 식별하는 단계를 더 포함한다. 이 방법은 트레이닝된 신경망에 대한 입력으로서 현재 이미지, 현재 상태, 및 후보 액션을 적용하는 단계를 더 포함한다. 이 방법은 트레이닝된 신경망으로의 현재 이미지, 현재 상태, 및 후보 액션의 적용에 기초하여 적어도 하나의 예측되는 이미지를 생성하는 단계를 더 포함한다. 이 방법은 예측되는 이미지에 기초하여, 후보 액션을 수행하도록 결정하는 단계를 더 포함한다. 이 방법은 후보 액션을 수행하도록 결정하는 것에 응답하여, 로봇의 하나 이상의 액추에이터에 하나 이상의 제어 커맨드를 제공하여 후보 액션을 수행하는 단계를 더 포함한다.
일부 구현예들에서는, 로봇들에 의한 복수의 오브젝트 모션 시도 동안 하나 이상의 로봇과 연관된 센서들로부터의 센서 출력에 기초하여 생성되는 복수의 트레이닝 예를 식별하는 단계를 포함하는 방법이 제공된다. 트레이닝 예들 각각은 오브젝트 모션 시도들 중 대응하는 시도로부터의 순차적인 이미지들의 그룹을 포함한다. 이미지들 각각은 대응하는 시간 인스턴스에서 환경 내의 하나 이상의 대응하는 오브젝트를 캡처하고, 순차적인 이미지들 각각에 대해: 대응하는 시간 인스턴스에서의 로봇의 상태, 및 대응하는 시간 인스턴스에서의 로봇의 상태를 순차적인 이미지들 중 다음 순차적인 이미지에 대응하는 새로운 상태로 트랜지션하기 위해 적용될 액션을 캡처한다. 이 방법은 트레이닝 예들에 기초하여 신경망을 트레이닝하는 단계를 더 포함한다.
다른 구현예들은 위에서 그리고/또는 본원의 다른 곳에서 기술되는 방법들 중 하나 이상과 같은 방법을 수행하기 위해 프로세서(예를 들어, 중앙 처리 장치(CPU) 또는 그래픽 처리 장치(GPU))에 의해 실행가능한 명령어들을 저장하는 비-일시적 컴퓨터 판독가능한 저장 매체를 포함할 수 있다. 또 다른 구현예들은 위에서 그리고/또는 본원의 다른 곳에서 기술되는 방법들 중 하나 이상과 같은 방법을 수행하기 위해 저장된 명령어들을 실행하도록 동작가능한 하나 이상의 프로세서를 포함하는 하나 이상의 컴퓨터 및/또는 하나 이상의 로봇의 시스템을 포함할 수 있다. 또 다른 구현예들은, 컴퓨팅 장치에 의해 실행될 때, 위에서 그리고/또는 본원의 다른 곳에서 기술되는 방법 중 하나 이상의 수행을 야기하는 머신 판독가능한 명령어들을 포함하는 컴퓨터 프로그램을 포함할 수 있다.
앞의 개념들 및 본원에서 더 상세히 기술되는 추가적인 개념들의 모든 조합들이 본원에 개시되는 발명 대상의 일부인 것으로서 참작된다는 것이 인지되어야 한다. 예를 들어, 이 개시내용의 마지막에 나오는 청구되는 발명 대상의 모든 조합들은 본원에 개시되는 발명 대상의 일부로서 참작된다.
도 1은, 오브젝트 모션 시도들이 로봇들에 의해 수행될 수 있고, 오브젝트 모션 시도들과 연관된 데이터가 트레이닝 예들을 생성하기 위해 이용될 수 있고, 그리고/또는 트레이닝 예들이 신경망을 트레이닝하기 위해 이용될 수 있는 예시적인 환경을 예시한다.
도 2는 도 1의 로봇들 중 하나, 및 경로에 따른 로봇의 잡기 엔드 이펙터의 움직임의 예를 예시한다.
도 3은 오브젝트 모션 시도들을 수행하고 오브젝트 모션 시도들과 연관된 데이터를 저장하는 예시적인 방법을 예시하는 플로우차트이다.
도 4는 로봇들의 오브젝트 모션 시도들과 연관된 데이터에 기초하여 트레이닝 예들을 생성하는 예시적인 방법을 예시하는 플로우차트이다.
도 5은 트레이닝 예들에 기초하여 신경망을 트레이닝하는 예시적인 방법을 예시하는 플로우차트이다.
도 6a 및 6b는 예시적인 신경망의 아키텍처를 예시하고, 신경망에 제공될 수 있는 예시적인 입력들을 예시하고, 신경망의 예시적인 출력들을 예시하고, 예측되는 이미지를 생성하기 위해 예시적인 출력들이 어떻게 이용될 수 있는지를 예시한다.
도 7은 로봇의 움직임이 발생한 이후 로봇의 환경을 예측하는 예측되는 이미지(들)를 생성하기 위해 트레이닝된 신경망을 이용하는 그리고/또는 예측되는 이미지들에 기초하여 하나 이상의 액션을 수행하는 예시적인 방법을 예시하는 플로우차트이다.
도 8은 로봇의 예시적인 아키텍처를 개략적으로 도시한다.
도 9는 컴퓨터 시스템의 예시적인 아키텍처를 개략적으로 도시한다.
도 2는 도 1의 로봇들 중 하나, 및 경로에 따른 로봇의 잡기 엔드 이펙터의 움직임의 예를 예시한다.
도 3은 오브젝트 모션 시도들을 수행하고 오브젝트 모션 시도들과 연관된 데이터를 저장하는 예시적인 방법을 예시하는 플로우차트이다.
도 4는 로봇들의 오브젝트 모션 시도들과 연관된 데이터에 기초하여 트레이닝 예들을 생성하는 예시적인 방법을 예시하는 플로우차트이다.
도 5은 트레이닝 예들에 기초하여 신경망을 트레이닝하는 예시적인 방법을 예시하는 플로우차트이다.
도 6a 및 6b는 예시적인 신경망의 아키텍처를 예시하고, 신경망에 제공될 수 있는 예시적인 입력들을 예시하고, 신경망의 예시적인 출력들을 예시하고, 예측되는 이미지를 생성하기 위해 예시적인 출력들이 어떻게 이용될 수 있는지를 예시한다.
도 7은 로봇의 움직임이 발생한 이후 로봇의 환경을 예측하는 예측되는 이미지(들)를 생성하기 위해 트레이닝된 신경망을 이용하는 그리고/또는 예측되는 이미지들에 기초하여 하나 이상의 액션을 수행하는 예시적인 방법을 예시하는 플로우차트이다.
도 8은 로봇의 예시적인 아키텍처를 개략적으로 도시한다.
도 9는 컴퓨터 시스템의 예시적인 아키텍처를 개략적으로 도시한다.
세상과 상호작용하기 위한 로봇 또는 다른 에이전트에 대한 한가지 도전과제는 그것의 액션들이 그것의 환경에서 오브젝트들에 어떻게 영향을 주는지를 예측하는 것이다. 물리적 상호작용들의 역학을 학습하기 위한 많은 방법들은 수동으로 라벨링된 오브젝트 정보를 요구한다. 그러나, 다양한 장면들 및 오브젝트들에 대한 실제 상호작용 학습을 스케일링하기 위해, 수동으로 라벨링된 오브젝트 정보를 취득하는 것은 점점 더 비현실적이 되고 있다. 오브젝트들의 라벨들을 필요로 하지 않고 물리적 오브젝트 모션에 관해 학습하기 위해, 본원에 기술되는 구현예들은, 이전 프레임들로부터 픽셀 모션에 대한 분포를 예측함으로써, 픽셀 모션을 명시적으로 모델링하는 액션-조건의 모션 예측 모델을 사용한다. 예를 들어, 구현예들은, 스크래치로부터 새로운 이미지를 구성하기보다는, 이전 이미지 프레임으로부터 픽셀들을 이송시키고(advect) 이들을 새로운 이미지로 합성시킬 수 있다. 모델이 모션을 명시적으로 예측하기 때문에, 그것은 오브젝트 외관에 대해 적어도 부분적으로 불변하여, 그것이 이전에 보이지 않은 오브젝트들에 대해 일반화될 수 있게 한다. 실제 상호작용 에이전트들에 대한 비디오 예측을 탐색하기 위해, 데이터세트는 푸시 모션들을 수반하는 다량의(예를 들어, 50,000+) 로봇 상호작용들에 이용될 수 있다. 이러한 데이터세트를 이용하여, 로봇 미래 액션들에 대해 조건화된, 이미지 내의 오브젝트(들)의 모션의 정확한 예측을 가능하게 하는 모션 예측 모델이 트레이닝될 수 있다. 이는 모션 예측 모델의 이용으로 액션의 상이한 코스들에 기초하여 상이한 미래들을 "시각적으로 상상"할 수 있게 한다.
오브젝트 검출, 추적, 및 모션 예측은 컴퓨터 비전에서의 근본적인 문제들이며, 물리적 상호작용들의 효과를 예측하는 것은 로봇, 자동차, 및 드론과 같은 실제로 작용하는 에이전트들에 대한 도전과제이다. 물리적 상호작용들의 효과를 예측하도록 학습하기 위한 일부 기존의 기법들은 많은, 수동으로 라벨링된 데이터세트들에 의존한다. 그러나, 상호작용 에이전트들로부터의 라벨링되지 않은 미가공 비디오 데이터(순차적인 이미지 프레임들로 구성됨)가 물리적 상호작용에 관해 학습하기 위해 사용되는 경우, 상호작용 에이전트들은 이들의 고유한 탐색을 통해 가상으로 제한되지 않은 경험을 자율적으로 수집할 수 있다. 라벨들 없이 미래 비디오를 예측할 수 있는 표현을 학습하는 것은 액션 인식 및 예측에서의 응용예들을 가지며, 에이전트의 액션에 대해 조건화될 때, 계획 및 결정 수행을 위해 에이전트에 의해 이후 사용될 수 있는 예측 모델의 학습에 해당한다.
그러나, 실제 물리적 상호작용들이 복합적이고 확률적인 경향이 있기 때문에, 물리적 현상들을 예측하도록 학습하는 것은 많은 도전과제들을 제기하고, 미가공 비디오로부터 학습하는 것은 높은 차원수(dimensionality)의 이미지 픽셀들 및 비디오들로부터의 오브젝트 모션의 부분 관측성을 핸들링하는 것을 요구한다. 이전의 비디오 예측 방법들은 통상적으로 단거리 예측, 작은 이미지 패치, 또는 합성 이미지들로 간주되었다. 이러한 이전 방법들은 모델의 내부 상태로부터 미래 프레임들을 재구성하는 패러다임을 따른다. 본원에 기술된 일부 구현예들에서는, 모션 예측 모델이 오브젝트 및 배경 외관을 저장하는 것이 요구되지 않는다. 이러한 외관 정보는 대신, 이전 이미지 프레임(예를 들어, 로봇의 비전 센서에 의해 캡처되는 이전 이미지 프레임, 또는 이전에 재구성된 이미지 프레임)으로부터 획득되어, 모션 예측 모델이 모션 예측에 초점을 두도록 할 수 있다. 본원에 기술되는 예측 모델들은 각각 이전 프레임(들)로부터의 외관 정보를 모델에 의해 예측되는 모션과 병합할 수 있다. 그 결과, 모델들은 각각, 트레이닝 시간에 보여지지 않는 오브젝트들을 수반할지라도, 다수의 단계 동안 미래 비디오 시퀀스들을 (이전 기법들에 비해) 더 잘 예측할 수 있다.
외관 및 예측되는 모션을 병합하기 위해, 이전 이미지에 대한 픽셀들의 모션은 본원에 기술되는 예측 모델들에 대한 출력으로서 생성될 수 있다. 이전 이미지 프레임에 대해 이 모션을 적용하는 것은 다음 이미지 프레임을 형성한다. 다양한 모션 예측 모델들이 이용될 수 있고, 이 중 세 개가 본원에 상세히 기술된다. 본원에서 때때로 동적 신경 이송(dynamic neural advection)(DNA) 모델이라 지칭되는 첫번째는 새로운 프레임 내의 각각의 픽셀에 대해 이전 이미지 프레임 내의 위치들에 대한 분포를 출력한다. 예측되는 픽셀 값은 이후 이 분포 하에서의 기대치로서 계산된다. 본원에서 때때로 컨볼루션 동적 신경 이송(convolutional dynamic neural advection)(CDNA) 모델이라 지칭되는 DNA 모델에 대한 변형은 이전 이미지 프레임에 적용할 다수의 정규화된 컨볼루션 커널들의 파라미터들을 출력하여 새로운 픽셀 값들을 계산한다. 본원에서 때때로 공간 변환기 예측기(spatial transformer predictor)(STP) 모델이라 지칭되는 마지막 접근법은 이전 이미지 프레임에 적용할 다수의 아핀 변환들의 파라미터들을 출력한다. DNA 및 STP 모델들의 경우, 각각의 예측되는 변환은 별도의 오브젝트들을 핸들링하도록 의도된다. 예측들을 단일 이미지로 조합시키기 위해, 모델은 또한 변환들 각각에 대해 합성 마스크를 예측한다. DNA 및 CDNA는 STP보다 구현하기에 더 간단하고 그리고/또는 더 용이할 수 있고, 오브젝트-중심 CDNA 및 STP 모델들은 또한 분석가능한 내부 표현들을 제공할 수 있다.
본원에 기술되는 다양한 구현예들은 픽셀 모션을 예측함으로써 실제 이미지들에서 장거리 예측들을 수행하기 위한 기법들을 제시한다. 에이전트(예를 들어, 로봇)에 의해 취해지는 액션들에 대해 조건화될 때, 모델은 (상이한 액션들이 구현되기 이전에) 상이한 액션들로부터 상이한 미래들을 상상하도록 학습할 수 있다. 비디오들로부터의 물리적 상호작용에 대해 학습하기 위해, 복잡한 오브젝트 상호작용들을 가지는 큰 데이터세트가 이용될 수 있다. 일 예로서, 각각의 시간 단계에서 대응하는 액션을 가지는 140만개의 이미지 프레임들로 구성되는 50,000개 로봇 푸싱 모션들의 데이터세트가 이용될 수 있다.
외관에 대해 불변으로 유지하는 동안 오브젝트 모션에 관해 학습하기 위해, 이전 프레임(들)으로부터 외관 정보를 직접 사용하여 픽셀 모션 예측들을 구성하는 모션 예측 모델들의 클래스가 이용될 수 있다. 모델은 픽셀 공간에서 오브젝트들의 모션들을 먼저 예측함으로써 다음 프레임을 계산하고, 이후 마스킹을 통해 이들 예측들을 병합한다. 다수의 오브젝트들의 예측되는 모션을 단일의 다음 이미지 예측으로 어떻게 효과적으로 병합할지를 포함하는, 잠재적 모션 예측 모델들의 일부가 하기에 기술된다. 오브젝트(들)의 외관을 재구성하려고 시도하지 않고도 오브젝트(들)의 모션(들)을 예측하는 본원에 기술되는 모션 예측 모델들은 외관에 대해 부분적으로 불변일 수 있고, 이전에 보여지지 않은 오브젝트들에 대해 효과적으로 일반화될 수 있다. 모션 예측 모델들의 3가지 예가 이제 차례로 간략하게 기술된다.
동적 신경 이송(DNA)
모션
예측 모델
DNA 모션 예측 모델에서, 위치들에 대한 분포는 새로운 프레임 내의 각각의 픽셀에 대해 이전 프레임 내에서 예측된다. 예측되는 픽셀 값은 이 분포 하에서의 기대치로서 계산된다. 픽셀 움직임은, 픽셀들이 큰 거리를 움직이지 않을 것이라는 정규화된 가정(regularizing assumption) 하에, 국부적 영역으로 제한된다. 이는 예측의 차원수를 낮게 유지할 수 있다.
여기서, 는 예측되는 분포의 공간 정도이다. 이는 제한되지 않은 가중치들과의 컨볼루션으로서 구현될 수 있다. 이 모델의 아키텍처는, 더 높은-차원의 변환 파라미터들 이 도 6a 및 6b의 CDNA 모델에서와 같이 제5 장단기 메모리 계층(도 6b의 LSTM 계층(675))에 의해 출력되는 것 대신, 마지막 컨볼루션 계층(도 6b의 컨볼루션 계층(662))에 의해 출력된다는 것을 제외하고는, 도 6a 및 6b에서의 예시적인 CDNA 모델에 매치할 수 있다.
컨볼루션
동적 신경 이송(CDNA)
모션
예측 모델
동일한 메커니즘이 사용되어 이미지의 상이한 영역들 내의 상이한 오브젝트들의 모션을 예측할 수 있다는 가정 하에, CDNA 모션 예측 모델은 모션 예측에 대해 보다 오브젝트-중심 접근법을 제시할 수 있다. 각각의 픽셀에 대한 상이한 분포를 예측하는 것 대신, 이 모델은, 모든 픽셀에 대한 모션 분포의 예측된 값을 계산하는 (제한된 가중치들과의) 컨볼루션을 통해 각각이 전체 이미지에 적용되는 다수의 이산 분포를 예측한다. 동일한 강성 오브젝트 상의 픽셀들은 함께 움직일 것이고, 따라서 동일한 변환을 공유할 수 있다. 더 공식적으로는, 이전 이미지 에 적용되는 하나의 예측되는 오브젝트 변환은 각각의 픽셀(x, y)에 대한 이미지 를 다음과 같이 생성한다:
여기서, 는 정규화된 예측되는 컨볼루션 커널 의 공간 크기이다. 다수의 변환 이 이전 이미지 에 적용되어 다수의 이미지 를 형성한다. 이들 출력 이미지들은 하기에 기술되는 바와 같이 그리고 도 6a 및 6b에 예시되는 바와 같이 단일의 예측 으로 조합된다.
공간 변환기 예측기( STP ) 모션 예측 모델
STP 모션 예측 모델은 2D 아핀 이미지 변환들에 대한 파라미터들의 다수의 세트를 생성하고, 바이리니어 샘플링 커널을 사용하여 변환들을 적용한다. 더 공식적으로는, 아핀 파라미터들 의 세트는 이전 이미지 내의 픽셀들 과 생성되는 이미지 내의 픽셀들 사이에 와핑 그리드(warping grid)를 생성한다.
여기서 W 및 H는 이미지 폭 및 높이이다. 다수의 변환 이 이전 이미지 에 적용되어 다수의 이미지 를 형성하는데, 이는 이후 마스크들에 기초하여 합성된다. 아키텍처는 도 6a 및 6b의 CDNA 아키텍처에 매치할 수 있지만, 제5 LSTM 계층(도 6b의 LSTM 계층(775))에서 CDNA 커널들을 출력하는 것 대신, 모델은 제5 LSTM 계층(도 6b의 LSTM 계층(775))에서 변환 파라미터들을 출력한다.
DNA, CDNA, 및 STP 모션 예측 모델들은 각각 오브젝트 외관보다는 물리현상을 학습하는데 초점을 두도록 구성되고 트레이닝될 수 있다. 그 결과, 이러한 모델들은 픽셀들을 직접 재구성하거나 이전 프레임과의 차이를 예측하는 모델들에 비해, 보이지 않은 오브젝트들에 대해 더 양호하게 일반화될 수 있다.
CDNA 및 STP 모션 예측 모델들은 다수의 변환된 이미지(각각의 오브젝트 모션 예측에 대해 변환된 이미지)를 생성하기 위해 사용될 수 있는 다수의 오브젝트 모션 예측을 생성한다. 다수의 변환된 이미지는 단일 이미지로 조합될 필요가 있다. 그렇게 하기 위해, CDNA 및 STP 모델들은 또한 변환된 이미지들에 적용할 마스크들의 세트를 예측할 수 있다. 이들 마스크들은 각각의 변환된 이미지가 각각의 픽셀에 얼마나 많이 영향을 주는지를 나타낸다. 마스크의 채널들에 대한 소프트맥스(softmax)는 그것이 1로 합산됨을 보장할 수 있다. 더 공식적으로는, 예측되는 이미지의 합성이 마스크 에 의해 모듈화될 수 있는데, 이는 각각의 픽셀에 대해, 각각의 예측 상의 가중치를 정의한다. 따라서, 이고, 여기서 c는 마스크의 채널을 표기하고, 엘리먼트-방식 곱셈은 픽셀들에 대한 것이다. 실제로, 모델은 지속적인 방향으로 움직이는 오브젝트들을 마스킹하도록 학습할 수 있다. 이 접근법의 이점들은, 예를 들어: 예측되는 모션 변환들이 이미지 내의 다수의 픽셀에 대해 재사용되고; 그리고/또는 모델이 관리되지 않는 방식으로 보다 오브젝트 중심적인 표현을 자연적으로 추출해낸다는 것을 포함하는데, 이는 오브젝트들과 상호작용하도록 학습하는 에이전트에 대해 잠재적으로 바람직한 특성이다.
DNA를 포함하는, 각각의 모션 예측 모델의 경우, "배경 마스크"가 포함될 수 있는데, 여기서 모델들은 이전 이미지(예를 들어, 초기 반복시의 캡처된 이미지 프레임, 또는 후속 반복들에서의 바로 선행하는 예측되는 이미지)로부터 직접 픽셀들을 복사하도록 허용된다. 추가로, 근처 픽셀들에 의해 적절히 표현되지 않을 수 있는, 이전에 가려진 영역들을 채우기 위해, 모델들은 이미지로부터 픽셀들을 생성하도록 허용되고, 그것을 최종 마스킹 단계에 포함시킨다. 성능을 개선하는 것 외에도, 이는 분석가능한 배경 마스크들을 생성한다.
위에서 논의된 모션 예측들을 생성하기 위해, 스택화된 컨볼루션 LSTM들이 모션 예측 모델들에서 사용될 수 있다. 컨볼루션들을 통한 반복은, 물리학 법칙들이 공간에 걸쳐 거의 일정함에 따라, 그것이 이미지 표현의 공간 불변성을 사용하기 때문에 다-단계 비디오 예측을 위해 일한다. 그 결과, 컨볼루션 반복을 이용하는 모델들은 훨씬 더 적은 파라미터들을 요구하고 그리고/또는 그 파라미터들을 더 효율적으로 사용할 수 있다.
상호작용 설정에서, 에이전트의 후보 액션들 및 내부 상태(예컨대, 로봇 그리퍼의 포즈)가 또한 다음 이미지에 영향을 주며, 둘 모두는 최저-차원 활성화 맵의 공간 범위에 걸쳐 연쇄적인 내부 상태 및 후보 액션(들)의 벡터를 타일링(tiling)함으로써 모델 내로 통합될 수 있다. 그러나, 에이전트의 내부 상태(예를 들어, 현재 로봇 그리퍼 포즈)가 초기 시간 단계에서 네트워크 내에 유일하게 입력되며, 일부 구현예들에서는 미래 시간 단계들에서 액션들로부터 예측되어야 한다는 것에 유의한다. 예를 들어, 로봇 그리퍼 포즈는 후보 액션(들)의 견지에서 현재 로봇 그리퍼 포즈의 수정에 기초하여 미래 시간 단계에서 예측될 수 있다. 다시 말해, 미래 시간 단계에서의 로봇 그리퍼 포즈는 이전 시간 단계(들)의 후보 액션(들)이 구현되었다는 가정에 기초하여 결정될 수 있다. 신경망은 재구성 손실을 사용하여 트레이닝될 수 있다. 대안적인 손실들이 이 방법을 보완할 수 있다.
액션-조건의 비디오 예측의 한가지 응용예는 비전-기반 로봇 제어 작업들에서 결정 수행을 위해 학습된 모델을 사용하는 것이다. 비디오로부터의 관리되지 않는 학습은 에이전트들이 인간의 관여 없이, 자신만의 세계에 관해 학습할 수 있게 하는데, 이는 상호작용 학습을 업스케일링하는데 유리할 수 있다. 로봇 작업을 위한 액션-조건의 비디오 예측을 조사하기 위해, 실제 물리적 오브젝트 상호작용들을 가지는 데이터세트가 사용될 수 있다. 예를 들어, 데이터세트는 빈(bin) 안에 수백개의 오브젝트들을 푸시하는 10개의 로봇 팔을 사용하여 생성될 수 있는데, 이는 1백만개 비디오 프레임들에 대한 50,000개의 상호작용 시퀀스에 해당한다. 이미지(예를 들어, RGB 이미지 또는 RGBD 이미지)를 포함시키는 것에 더하여, 각각의 프레임에는 또한: 본원에서 "내부 상태" 또는 "로봇 상태"라 지칭될 수 있는, 프레임의 시간 단계에서의 그리퍼 포즈; 및 후속적인(예를 들어, 다음) 시간 단계에서의 그리퍼 포즈, 또는 후속적인 시간 단계에서 그리퍼 포즈에 도달하기 위한 모션 벡터 또는 커맨드에 대응할 수 있는 시간 단계에서의 액션이 주석으로 달릴 수 있다.
일부 구현예들에서, 런 타임에서, 초기 이미지(들)가 트레이닝된 신경망 모델, 뿐만 아니라 초기 로봇 상태 및 후보 액션(들)에 대한 입력으로서 제공된다. 초기 로봇 상태는, 예를 들어, 현재 그리퍼 포즈일 수 있고, 후보 액션(들)은 각각이 현재 그리퍼 포즈가 대응하는 새로운 그리퍼 포즈로 이동하도록 하는 후보 액션들일 수 있다. 모델은 이후 순차적으로 롤아웃될 수 있고, 각각의 순차적 시간 단계는 이전 시간 단계로부터의 예측되는 이미지, 해당 시간 단계에 대한 후보 액션, 및 업데이트된 로봇 상태를 통과한다. 전술된 바와 같이, 주어진 반복의 업데이트된 로봇 상태는 이전 시간 단계(들)의 후보 액션(들)이 적용되었다고 가정하는 상태(즉, 이전 시간 단계(들)의 후보 액션(들)에 의해 수정되는 바와 같은 초기 로봇 상태)일 수 있다. 일부 구현예들에서, 신경망은 모든 반복적인 모델들에 대한 8개의 미래 시간 단계에 대해 트레이닝되고, 최대 18개의 미래 시간 단계에 사용될 수 있다. 다른 수량의 미래 시간 단계들이 트레이닝 및/또는 사용을 위해 사용될 수 있다.
본원에 기술되는 기법들의 일부 구현예들은 추가로 또는 대안적으로 이용되어 로봇 상태들 및/또는 액션들 없이도 미래 비디오를 예측하기 위한 모델을 생성할 수 있다. 예를 들어, 방 안에서 다양한 액션들을 수행하는 휴먼 액터들의 비디오들로 구성되는 데이터세트가 사용되어 모델을 트레이닝할 수 있다. 비디오는 임의로 하향으로(예를 들어, 초당 10개 프레임으로) 서브샘플링될 수 있고, 따라서 적절한 시간 프레임들 내의 비디오들 내에 현저한 모션이 존재하게 된다. 모델이 액션들에 대해 더 이상 조건화되지 않기 때문에, X개(예를 들어, 10개)의 비디오 프레임들이 공급되고 네트워크가 트레이닝되어 다음 X개(예를 들어, 10개 프레임)를 생성할 수 있다.
물리적 상호작용의 상황에서 미래 오브젝트 모션을 예측하는 것은 지능형 상호작용 시스템에서 이용될 수 있다. 본원에서 기술되는 이같은 미래 비디오 프레임들의 액션-조건의 예측은 로봇과 같은 상호작용 에이전트가 이용가능한 후보 액션들에 기초하여 상이한 미래들을 상상하도록 허용할 수 있다. 이러한 메커니즘은 특정 목표를 달성하고, 가능한 미래 문제들을 (예를 들어, 자율 자동차, 장애물 회피의 상황에서) 예견하고, 탐색의 상황에서 관심있는 새로운 현상들을 인식하기 위한 액션들에 대해 계획하는데 사용될 수 있다. 한 가지 특별한 예로서, 오브젝트에 대한 목표 상태가 정의될 수 있다. 예를 들어, 사람은 사용자 인터페이스 입력을 이용하여 오브젝트에 대한 목표 상태를 정의할 수 있다. 예를 들어, 사람은 로봇에 의해 캡처되는 이미지를 디스플레이하는 인터페이스를 통해 오브젝트를 조작할 수 있고, 여기서 이미지는 오브젝트를 포함하고 조작은 오브젝트의 포즈의 조정을 가능하게 한다. 또한, 예를 들어, 로봇의 내부 시스템들은 오브젝트 쪽으로 향하는(예를 들어, 오브젝트를 새로운 포즈로 이동시키는) 작업을 달성할 시에 오브젝트에 대한 목표 상태를 정의할 수 있다. 다양한 후보 액션들이 이후 다수의 예측되는 이미지들을 생성하기 위해 모션 예측 모델을 이용하는 것으로 고려될 수 있다. 오브젝트를 그것의 목표 상태에 가장 가깝게 묘사하는 예측되는 이미지가 결정될 수 있고, 예측되는 이미지를 생성하기 위해 적용되는 후보 액션들이 로봇에 의해 선택되고 적용되어 오브젝트를 그것의 목표 상태로 이동시킬 수 있다. 이러한 방식으로, 모션 예측 모델이 이용되어 로봇의 환경에 대한 다양한 후보 액션들의 효과들을 예측할 수 있고, 후보 액션들은 바람직한 환경 효과에 가장 가깝게 따르는 예측되는 이미지(들)를 가져오도록 선택된다. 이는, 고려되는 효과들에 기초하여 실제로 구현할 로봇 액션들 중 하나 이상의 선택에 선행하는, 그 액션들을 실제로 구현하지 않고도, 다양한 로봇 액션들의 효과의 초기 고려를 가능하게 한다.
본원에 기재되는 기술의 일부 구현예들은, 트레이닝된 신경망의 이용으로 환경에서의 로봇의 특정 움직임에 응답하여 로봇의 환경의 이미지에 대해 발생할 변환을 예측할 수 있게 하기 위한, 스택화된 장단기 메모리(LSTM) 계층들을 포함하는 신경망과 같은, 신경망의 트레이닝에 관한 것이다. 일부 구현예들에서, 트레이닝된 신경망은 비전 센서에 의해 생성되는 이미지를 수용하고, 현재 로봇 상태 및/또는 현재 로봇 상태가 상이한 로봇 상태로 트랜지션하도록 하기 위해 수행될 하나 이상의 후보 액션들을 정의하는 파라미터들과 같은, 후보 로봇 움직임 파라미터들 을 수용한다. 일부 구현예들에서, 현재 로봇 상태는 로봇의 엔드 이펙터의 포즈(예를 들어, 잡기 엔드 이펙터의 포즈)일 수 있고, 각각의 후보 액션은 각각 엔드 이펙터의 후속적인 포즈일 수 있다(또는 이를 나타낼 수 있다). 따라서, 그 구현예들 중 일부에서, 후보 액션들은 각각 엔드 이펙터의 포즈로부터 엔드 이펙터의 후속적인 포즈로 이동할 모션 벡터를 나타낼 수 있다. 예를 들어, 제1 후보 액션은 현재 포즈로부터 다음 시간 단계에서의 포즈로 이동할 모션 벡터를 나타낼 수 있고, 제2 후보 액션은 그 포즈로부터 그 다음 시간 단계에서의 포즈로 이동할 모션 벡터를 나타낼 수 있는 등의 식이다. 트레이닝된 신경망으로의 이미지 및 후보 로봇 움직임 파라미터들의 적용이 사용되어, 신경망을 통해, 후보 로봇 움직임 파라미터들 의 구현에 응답하여 이미지 에 대해 발생할 적어도 하나의 예측되는 변환을 생성할 수 있다. 그 구현예들 중 일부에서, 예측되는 변환이 이용되어 이미지 를 예측되는 이미지 로 변환한다. 예측되는 이미지 및/또는 신경망의 추가적인 예측되는 변환들에 기초하여 생성되는 하나 이상의 추가적인 예측되는 이미지가 이용되어, 후보 로봇 움직임 파라미터들을 구현할지를 결정할 수 있다. 예를 들어, 예측되는 이미지(들)가 분석되어 후보 로봇 움직임 파라미터들에 기초하여 발생할 환경에서 오브젝트(들)의 예측되는 모션(들)을 결정할 수 있고, 후보 로봇 움직임 파라미터들은 예측되는 모션(들)이 바람직한 경우 구현된다. 이들 및 다른 구현예들의 기술에 대한 추가적인 기재가 하기에 제공된다.
도 1-7을 참조하면, 모션 예측 신경망을 트레이닝하고 이용하는 다양한 구현예들이 기술된다. 도 1은 오브젝트 모션 시도들이 로봇들(예를 들어, 로봇들(180A, 180B), 및/또는 다른 로봇들)에 의해 수행될 수 있고, 오브젝트 모션 시도들과 연관된 데이터가 이용되어 트레이닝 예들을 생성할 수 있고, 그리고/또는 트레이닝 예들이 이용되어 모션 예측 신경망을 트레이닝할 수 있는, 예시적인 환경을 예시한다.
예시적인 로봇들(180A 및 180B)이 도 1에 예시된다. 로봇들(180A 및 180B)은, 로봇의 움직임을 통해, 원하는 포즈들로 잡기 엔드 이펙터들(182A 및 182B)을 위치시키기 위해 복수의 잠재적 경로 중 임의의 것을 따르는 잡기 엔드 이펙터들(182A 및 182B)의 운행을 가능하게 하기 위한 다수의 자유도를 가지는 "로봇 팔들"이다. 예를 들어, 도 2를 참조하면, 경로(201)를 따라 그것의 엔드 이펙터를 운행하는 로봇(180A)의 예가 예시된다. 도 2는 경로(201)를 따라 운행할 시 로봇(180A) 및 그것의 엔드 이펙터에 의해 처해지는 포즈들의 세트 중 2개의 상이한 포즈를 도시하는 로봇(180A)의 팬텀 및 비-팬텀 이미지를 포함한다. 도 1을 다시 참조하면, 로봇들(180A 및 180B) 각각은 이들의 대응하는 잡기 엔드 이펙터(182A, 182B)의 2개의 반대되는 "클로(claws)"를 추가로 제어하여, 적어도 개방 위치와 폐쇄 위치(그리고/또는 임의로 복수의 "부분적으로 폐쇄된" 위치들) 사이의 클로들을 활성화시킨다.
예시적인 비전 센서들(184A 및 184B)가 도 1에 또한 예시된다. 도 1에서, 비전 센서(184A)는 로봇(180A)의 베이스 및 다른 정적 기준점에 대해 고정된 포즈로 장착된다. 비전 센서(184B)는 또한 로봇(180B)의 베이스 또는 다른 정적 기준점에 대해 고정된 포즈로 장착된다. 도 1에 예시된 바와 같이, 로봇(180A)에 대한 비전 센서(184A)의 포즈는 로봇(180B)에 대한 비전 센서(184B)의 포즈와는 상이하다. 일부 구현예들에서, 이러한 상이한 포즈들은 카메라 캘리브레이션에 대해 강건한 그리고/또는 이와는 독립적인 신경망을 트레이닝하기 위해 이용될 수 있는 다양한 트레이닝 예들의 생성을 가능하게 하는데 유리할 수 있다. 비전 센서들(184A 및 184B)은 센서들의 시선에 있는 오브젝트(들)의 형상, 컬러, 깊이, 및/또는 다른 피처들에 관련된 이미지들을 생성할 수 있는 센서들이다. 비전 센서들(184A 및 184B)은 예를 들어, 모노그래픽 카메라, 스테레오그래픽 카메라, 및/또는 3D 레이저 스캐너일 수 있다. 3D 레이저 스캐너는 광을 방출하는 하나 이상의 센서, 및 방출된 광의 반사들에 관련된 데이터를 수집하는 하나 이상의 센서를 포함한다. 3D 레이저 스캐너는, 예를 들어, 비행시간(time-of-flight) 3D 레이저 스캐너 또는 삼각측량 기반 3D 레이저 스캐너일 수 있고, 위치 감지 검출기(PSD) 또는 다른 광학 위치 센서를 포함할 수 있다.
비전 센서(184A)는 예시적인 오브젝트들(191A)을 포함하는 작업공간의 일부와 같은, 로봇(180A)의 작업공간의 적어도 일부의 시야를 가진다. 오브젝트들(191A)에 대한 받침면(resting surface)(들)이 도 1에 예시되지 않지만, 그 오브젝트들은 테이블, 빈, 및/또는 다른 표면(들) 상에 받쳐질 수 있다. 오브젝트들(191A)은 주걱, 스태플러, 및 연필을 포함한다. 다른 구현예들에서, 더 많은 오브젝트들, 더 적은 오브젝트들, 추가적인 오브젝트들, 및/또는 대안적인 오브젝트들은 본원에 기술된 바와 같이 로봇(180A)의 오브젝트 모션 시도들의 전부 또는 일부 동안 제공될 수 있다. 비전 센서(184B)는 예시적인 오브젝트들(191B)을 포함하는 작업공간의 일부와 같은, 로봇(180B)의 작업공간의 적어도 일부의 시야를 가진다. 오브젝트들(191B)에 대한 받침면(들)이 도 1에 예시되지 않지만, 이들은 테이블, 빈, 및/또는 다른 표면(들) 상에 받쳐질 수 있다. 오브젝트들(191B)은 연필, 스태플러, 및 안경을 포함한다. 다른 구현예들에서, 더 많은 오브젝트들, 더 적은 오브젝트들, 추가적인 오브젝트들, 및/또는 대안적인 오브젝트들은 본원에 기술된 바와 같이 로봇(180B)의 오브젝트 모션 시도들의 전부 또는 일부 동안 제공될 수 있다.
특정 로봇들(180A 및 180B)이 도 1에 예시되지만, 로봇들(180A 및 180B), 다른 로봇 팔 형태들을 가지는 로봇들, 휴머노이드 형태를 가지는 로봇들, 동물 형태를 가지는 로봇들, 하나 이상의 바퀴를 통해 이동하는 로봇들(예를 들어, 셀프-밸런싱 로봇들), 잠수 차량 로봇들, 무인 비행선("UAV"), 등과 유사한, 추가적인 로봇 팔들을 가지는 추가적인 그리고/또는 대안적인 로봇들이 이용될 수 있다. 또한, 특정 잡기 엔드 이펙터들이 도 1에 예시되지만, 추가적인 그리고/또는 대안적인 엔드 이펙터들이 이용될 수 있다. 예를 들어, 잡을 수 없는 엔드 이펙터들이 이용될 수 있다. 추가로, 비전 센서들(184A 및 184B)의 특정 장착들이 도 1에 예시되지만, 추가적인 그리고/또는 대안적인 장착들이 이용될 수 있다. 예를 들어, 일부 구현예들에서, 비전 센서들은, 예를 들어 로봇들의 작동불가능한 컴포넌트들 상에 또는 로봇들의 작동가능한 컴포넌트들 상에서(예를 들어, 엔드 이펙터 상에 또는 엔드 이펙터에 가까운 컴포넌트 상에서) 로봇들에 직접 장착될 수 있다. 또한, 예를 들어, 일부 구현예들에서, 비전 센서는 그것의 연관된 로봇과는 별도인 비-고정 구조체 상에 장착될 수 있고 그리고/또는 그것의 연관된 로봇과는 별도인 구조체 상에 비-고정 방식으로 장착될 수 있다.
로봇들(180A, 180B), 및/또는 다른 로봇들은 대량의 오브젝트 모션 시도들을 수행하도록 이용될 수 있고, 오브젝트 모션 시도들과 연관된 데이터는 트레이닝 예들을 생성하기 위해 트레이닝 예 생성 시스템(110)에 의해 이용될 수 있다. 일부 구현예들에서, 오브젝트 모션 시도들은 로봇의 환경에서 하나 이상의 오브젝트를 움직이려는 시도 시 로봇들의 엔드 이펙터들의 랜덤 및/또는 의사-랜덤 움직임을 포함한다. 예를 들어, 로봇(180A)에 의해 오브젝트들(191A) 중 하나 이상을 움직이려는 시도.
일부 구현예들에서, 트레이닝 예 생성 시스템(110)의 모두 또는 그 양태들은 로봇(180A) 및/또는 로봇(180B) 상에서 (예를 들어, 로봇들(180A 및 180B)의 하나 이상의 프로세서를 통해) 구현될 수 있다. 예를 들어, 로봇들(180A 및 180B)은 각각 트레이닝 예 생성 시스템(110)의 인스턴스를 포함할 수 있다. 일부 구현예들에서, 트레이닝 예 생성 시스템(110)의 모두 또는 그 양태들은 로봇들(180A 및 180B)과는 별도인, 그러나 이와 네트워크 통신하는, 하나 이상의 컴퓨터 시스템 상에서 구현될 수 있다.
로봇(180A, 180B), 및/또는 다른 로봇들에 의한 각각의 오브젝트 모션 시도는 T개의 별도의 시간 단계들 또는 인스턴스들로 구성된다. 각각의 시간 단계에서, 오브젝트 모션 시도를 수행하는 로봇의 비전 센서에 의해 캡처되는 현재 이미지가 저장되고, 현재 로봇 파라미터들 역시 저장되고, 로봇은 다음 시간 단계에 대한 움직임을 선택한다. 일부 구현예들에서, 시간 단계에 대한 현재 로봇 파라미터들은, 예를 들어, 로봇의 현재 상태(예를 들어, 시간 단계에서의 현재 엔드 이펙터 포즈), 및 액션(예를 들어, 다음 시간 단계의 움직임을 구현하기 위해 실행될 액션)을 포함할 수 있다. 일부 구현예들에서, 시간 단계에 대한 액션은 로봇의 현재 상태에 반해, 후속적인 시간 단계에서 로봇의 상태에 기초하여 결정될 수 있다. 예를 들어, 액션은 오브젝트 모션 시도의 종료시 로봇의 현재 상태로부터 로봇의 최종 상태로 이동할 모션 벡터(예를 들어, 현재 상태로부터 최종 상태까지의 벡터)일 수 있다. 일부 구현예들에서, 로봇들은 하나 이상의 오브젝트 모션 시도 동안 이들의 엔드 이펙터들의 임피던스 제어를 통해 지시받을 수 있다. 일부 구현예들에서, 하나 이상의(예를 들어, 모든) 오브젝트 모션 시도는 대략 3-5초 지속될 수 있다. 일부 구현예들에서, 로봇(180A, 180B), 및/또는 다른 로봇들은 오브젝트 모션 시도들 사이에 비전 센서의 시야로부터 벗어나 움직이도록 프로그래밍될 수 있고, 이미지는 로봇이 보이지 않을 때 비전 센서에 의해 캡처되고 해당 이미지는 바로 후속하는 오브젝트 모션 시도와 연관된다.
일부 구현예들에서, 오브젝트 모션 시도들은 랜덤 푸시 시도들 및/또는 "중간에 스윕(sweep to the middle)" 시도들을 포함할 수 있다. 랜덤 푸시 시도들은 오브젝트들(191A/191B) 근처의 영역, 오브젝트들(191A/191B)을 포함하는 빈에 기초하는 영역 등과 같은 제한된 영역 내의 임의적인, 엔드 이펙터의 랜덤(예를 들어, 참 랜덤 및/또는 의사-랜덤) 움직임들일 수 있다. 중간에 스윕 시도는 오브젝트 모션 시도들이 제한되는 제한된 영역의 외부 경계 근처 또는 외부 경계 상의 랜덤 위치로부터 시작할 수 있고, 제한된 영역의 중간 쪽으로 엔드 이펙터를 미앤더(meander) 할 수 있다. 예를 들어, 제한된 영역은 일반적으로 빈에 따를 수 있고, 랜덤 스윕 시도들은 빈의 둘레 근처의 랜덤 위치로부터 시작하여 빈의 중심 쪽으로 랜덤하게 미앤더될 수 있다. 랜덤 스윕 시도들은 오브젝트들이 빈의 에지들 상에 쌓이는 것을 방지하는데 유리할 수 있다.
각각의 오브젝트 모션 시도는 에 의해 표현되는, T개의 프레임들을 가지는 적어도 하나의 트레이닝 예를 초래한다. 즉, 트레이닝 예의 각각의 프레임은 적어도 대응하는 시간 단계 에서 관측되는 이미지, 대응하는 시간 단계에서의 로봇 상태를 나타내는 로봇 움직임 파라미터들 및 대응하는 시간 단계에서 구현될 액션을 포함한다. 복수의 로봇의 복수의 오브젝트 모션 시도에 대한 트레이닝 예들은 트레이닝 예 데이터베이스(117) 내의 트레이닝 예 생성 시스템(110)에 의해 저장된다.
로봇과 연관되는 센서(들)에 의해 생성되는 데이터 및/또는 생성되는 데이터로부터 유도되는 데이터는 로봇에 대해 국부적인 그리고/또는 로봇으로부터 원격인 하나 이상의 비-일시적 컴퓨터 판독가능한 매체에 저장될 수 있다. 일부 구현예들에서, 비전 센서들에 의해 캡처되는 이미지들은 레드 채널, 블루 채널, 그린 채널, 및/또는 깊이 채널과 같은 다수의 채널을 포함할 수 있다. 이미지의 각각의 채널은 이미지의 픽셀들 각각에 대한 0 내지 255의 값과 같은, 이미지의 복수의 픽셀 각각에 대한 값을 정의한다. 일부 구현예들에서, 트레이닝 예들 각각에 대해 초기 시간 단계 에서 관측되는 이미지는 트레이닝 예들 내의 추가적인 이미지와 연결(concatenate)될 수 있다. 추가적인 이미지는 대응하는 오브젝트 모션 시도에 선행하는 추가적인 이미지일 수 있고, 여기서 추가적인 이미지는 로봇의 잡기 엔드 이펙터 및/또는 다른 컴포넌트를 포함하지 않거나, 또는 상이한 포즈(즉, 현재 이미지의 포즈와 중첩되지 않는 포즈)의 엔드 이펙터 및/또는 다른 로봇 컴포넌트들을 포함한다. 예를 들어, 추가적인 이미지는 임의의 선행하는 오브젝트 모션 시도 이후에, 그러나 오브젝트 모션 시도의 엔드 이펙터 움직임이 시작하기 이전에, 그리고 잡기 엔드 이펙터가 비전 센서의 시야 밖으로 움직일 때 캡처될 수 있다.
트레이닝 엔진(120)은 트레이닝 예 데이터베이스(117)의 트레이닝 예들에 기초하여 신경망(125)을 트레이닝한다. 일부 구현예들에서, CNN(125)을 트레이닝하는 것은 신경망(125)으로의 트레이닝 예들의 적용에 기초하여 신경망(125)을 반복적으로 업데이트하는 것을 포함한다. 트레이닝된 CNN(125)은 환경 내의 로봇의 특정 움직임(들)에 응답하여 로봇의 환경의 이미지에 대해 발생할 변환(들)을 예측하도록 트레이닝된다.
도 3은 오브젝트 모션 시도들을 수행하고 오브젝트 모션 시도들과 연관된 데이터를 저장하는 예시적인 방법(300)을 예시하는 플로우차트이다. 편의상, 플로우 차트의 동작들은 동작들을 수행하는 시스템을 참고하여 설명된다. 이 시스템은 로봇(180A, 180B, 840), 및/또는 다른 로봇의 프로세서 및/또는 로봇 제어 시스템과 같은 로봇의 하나 이상의 컴포넌트를 포함할 수 있다. 또한, 방법(300)의 동작들이 특정 순서로 도시되었지만, 이는 제한적인 것으로 의도되지 않는다. 하나 이상의 동작은 재순서화되고, 생략되거나 추가될 수 있다.
블록(352)에서, 시스템은 오브젝트 모션 시도를 시작한다. 블록(354)에서, 시스템은 이미지 내에 존재하는 엔드 이펙터 없는 환경의 이미지를 저장한다. 예를 들어, 시스템은 비전 센서의 시야 밖으로 잡기 엔드 이펙터를 이동시키고(즉, 환경의 뷰를 막지 않음), 잡기 엔드 이펙터가 시야를 벗어난 인스턴스에서 이미지를 캡처할 수 있다. 이미지는 이후 저장되고 오브젝트 모션 시도와 연관될 수 있다. 일부 구현예들에서, 블록(354)은 생략될 수 있다.
블록(356)에서, 시스템은 움직임을 결정하고 구현한다. 예를 들어, 시스템은 하나 이상의 모션 커맨드를 생성하여, 엔드 이펙터의 포즈를 제어하는 액추에이터들 중 하나 이상이 활성화하게 하고, 이에 의해 엔드 이펙터의 포즈를 변경할 수 있다.
일부 구현예들에서 그리고/또는 블록(356)의 반복들에서, 모션 커맨드(들)는 엔드 이펙터에 의해 도달가능한 작업-공간, 엔드 이펙터가 오브젝트 모션 시도들에 대해 한정되는 제한된 공간, 및/또는 엔드 이펙터의 포즈를 제어하는 액추에이터(들)의 위치 및/또는 토크 제한들에 의해 정의되는 공간과 같은, 주어진 공간 내에서 랜덤일 수 있다. 예를 들어, 움직임을 실행하기 위해 블록(356)에서 시스템에 의해 생성되는 모션 커맨드(들)는 주어진 공간 내에서 랜덤일 수 있다. 랜덤은, 본원에서 사용되는 바와 같이, 참 랜덤 또는 의사-랜덤을 포함할 수 있다.
일부 구현예들에서, 각각의 오브젝트 모션 시도에 대한 블록(356)의 제1 반복 시에, 엔드 이펙터는 블록(354)에서 그것이 시야를 벗어나 움직이는 것에 기초하여 "위치를 벗어날(out of position)" 수 있다. 그 구현예들 중 일부에서, 블록(356)의 제1 반복 이전에, 엔드 이펙터는 랜덤으로 또는 다른 방식으로 "원위치로" 이동될 수 있다. 예를 들어, 엔드 이펙터는 설정 "시작 위치"로 다시 이동되고 그리고/또는 주어진 공간 내에서 랜덤하게 선택된 위치로 이동될 수 있다.
블록(358)에서, 시스템은: (1) 오브젝트 모션 시도의 현재 인스턴스(시간 단계)에서 로봇의 환경을 캡처하는 이미지, 및 (2) 현재 인스턴스에서의 로봇 파라미터들을 저장한다. 예를 들어, 시스템은 로봇과 연관된 비전 센서에 의해 생성되는 현재 이미지를 저장하고, 이미지를 현재 인스턴스와(예를 들어, 타임스탬프와) 연관시킬 수 있다. 또한, 예를 들어, 시스템은 로봇의 관절들의 하나 이상의 관절 위치 센서 및/또는 로봇의 토크 센서들로부터의 데이터에 기초하여 로봇 파라미터들을 결정할 수 있고, 시스템은 그 파라미터들을 저장할 수 있다. 시스템은 로봇 파라미터들을 결정하여 작업-공간, 관절-공간, 및/또는 또 다른 공간 내에 저장할 수 있다.
블록(360)에서, 시스템은 현재 인스턴스가 오브젝트 모션 시도에 대한 최종 인스턴스인지를 결정한다. 일부 구현예들에서, 시스템은 블록(352, 354, 356, 또는 358)에서 인스턴스 카운터를 증분시키고 그리고/또는 시간이 지남에 따라 시간 카운터를 증분시키고, 그리고 카운터의 값을 임계치와 비교하는 것에 기초하여 현재 인스턴스가 최종 인스턴스인지를 결정할 수 있다. 예를 들어, 카운터는 시간 카운터일 수 있고, 임계치는 3초, 4초, 5초, 및/또는 다른 값일 수 있다. 일부 구현예들에서, 임계치는 방법(300)의 한번 이상의 반복 사이에서 변할 수 있다.
시스템이 블록(360)에서 현재 인스턴스가 오브젝트 모션 시도에 대한 최종 인스턴스가 아니라고 결정하는 경우, 시스템은 블록(356)으로 돌아가는데, 여기서 추가적인 움직임을 결정하고 구현하며, 이후 (추가적인 움직임의) 현재 인스턴스에서의 이미지 및 로봇 파라미터들을 저장하는 블록(358)으로 진행한다. 많은 구현예들에서, 블록들(356, 358, 360), 및/또는 다른 블록들은 상대적으로 높은 빈도로 수행될 수 있고, 이에 의해 각각의 오브젝트 모션 시도에 대한 상대적으로 큰 양의 데이터를 저장할 수 있다.
시스템이 블록(360)에서, 현재 인스턴스가 오브젝트 모션 시도에 대한 최종 인스턴스라고 결정하는 경우, 시스템은 시스템이 카운터(예를 들어, 인스턴스 카운터 및/또는 시간 카운터)를 리셋시키는 블록(366)으로 진행하고, 블록(352)으로 다시 진행하여 또 다른 오브젝트 모션 시도를 시작한다.
일부 구현예들에서, 도 3의 방법(300)은 복수의 로봇 각각에 대해 구현될 수 있고, 임의적으로는 방법(300)의 이들 각자의 반복들 중 하나 이상 동안 병렬로 동작할 수 있다. 이는 단 하나의 로봇이 방법(300)을 수행한 경우보다는 더 많은 오브젝트 모션 시도들이 주어진 시간 기간 내에서 달성될 수 있도록 할 수 있다. 또한, 복수의 로봇 중 하나 이상이 로봇들 중 다른 것들과 연관되는 하나 이상의 비전 센서의 포즈로부터 고유한 로봇에 대한 포즈를 가지는 연관된 비전 센서를 포함하는 구현예들에서, 복수의 로봇으로부터의 오브젝트 모션 시도들에 기초하여 생성되는 트레이닝 예들은 그 트레이닝 예들에 기초하여 트레이닝된 신경망에서 비전 센서 포즈에 강건성을 제공할 수 있다. 또한, 복수의 로봇들의 엔드 이펙터들 및/또는 다른 하드웨어 컴포넌트들이 변하고 그리고/또는 상이하게 마모하는(wear) 구현예들에서, 그리고/또는 상이한 로봇들이 상이한 오브젝트들(예를 들어, 상이한 크기, 상이한 무게들, 상이한 형상들, 상이한 투명도들, 상이한 재료들의 오브젝트들)과 상호작용하는 구현예들에서, 그리고/또는 상이한 환경들(예를 들어, 상이한 표면들, 상이한 조명, 상이한 환경적 장애물들)에서, 복수의 로봇으로부터의 오브젝트 모션 시도들에 기초하여 생성되는 트레이닝 예들은 다양한 로봇 구성 및/또는 환경 구성에 강건성을 제공할 수 있다.
일부 구현예들에서, 주어진 로봇에 의해 도달가능한 그리고 오브젝트 모션 시도들이 이루어지는 오브젝트들은 방법(300)의 상이한 반복들 동안 상이할 수 있다. 예를 들어, 휴먼 운용자 및/또는 또 다른 로봇은 로봇의 하나 이상의 오브젝트 모션 시도 사이에 로봇의 작업 공간에 오브젝트들을 추가하고 그리고/또는 제거할 수 있다. 이는 트레이닝 데이터의 다양성을 증가시킬 수 있다. 일부 구현예들에서, 조명, 표면(들), 장애물들 등과 같은 환경적 요인들은 추가로 그리고/또는 대안적으로 방법(300)의 상이한 반복들 동안 상이할 수 있는데, 이는 트레이닝 데이터의 다양성을 또한 증가시킬 수 있다.
도 4는 로봇들의 오브젝트 모션 시도들과 연관된 데이터에 기초하여 트레이닝 예들을 생성하는 예시적인 방법(400)을 예시하는 플로우차트이다. 편의상, 플로우 차트의 동작들은 동작들을 수행하는 시스템을 참고하여 설명된다. 이 시스템은 로봇(180A, 180B, 840)의 프로세서 및/또는 로봇 제어 시스템, 및/또는 로봇과는 별도로 임의로 구현될 수 있는 트레이닝 예 생성 시스템(110) 및/또는 다른 시스템의 프로세서와 같은, 로봇 및/또는 또 다른 컴퓨터 시스템의 하나 이상의 컴포넌트를 포함할 수 있다. 또한, 방법(400)의 동작들이 특정 순서로 도시되지만, 이는 제한적인 것으로 의도되지 않는다. 하나 이상의 동작은 재순서화되고, 생략되거나 추가될 수 있다.
블록(452)에서, 시스템은 트레이닝 예 생성을 시작한다. 블록(454)에서, 시스템은 오브젝트 모션 시도를 선택한다. 예를 들어, 시스템은 복수의 저장된 오브젝트 모션 시도와 연관된 데이터를 포함하는 데이터베이스에 액세스하고, 저장된 오브젝트 모션 시도들 중 하나를 선택할 수 있다. 선택된 오브젝트 모션 시도는, 예를 들어, 도 3의 방법(300)에 기초하여 생성되는 오브젝트 모션 시도일 수 있다.
블록(456)에서, 시스템은 오브젝트 모션 시도의 순차적인 프레임들의 그룹을 선택한다. 예를 들어, 시스템은 그룹의 제1 인스턴스로서 오브젝트 모션 시도의 초기 프레임을 선택할 수 있고, 그룹의 제2 인스턴스로서 시간 프레임 내에서 바로 다음을 선택하고, 그룹의 제3 인스턴스로서 시간 프레임 내에서 바로 다음을 선택할 수 있는 등의 식이다. 또 다른 예로서, 시스템은 그룹의 제1 인스턴스로서 오브젝트 모션 시도의 제5 프레임을 선택하고, 그룹의 제2 인스턴스로서 오브젝트의 제6 프레임을 선택할 수 있는 등의 식이다.
블록(458)에서, 시스템은 순차적인 프레임들을 트레이닝 예로서 할당한다. 기술된 바와 같이, 순차적인 프레임들은 각각 대응하는 시간 단계에서의 이미지, 대응하는 시간 단계에서의 로봇 상태, 및 대응하는 시간 단계에 대한 액션을 포함할 수 있다. 일부 구현예들에서, 블록(456) 또는 블록(458)에서, 시스템은 프레임들의 이미지(들)를 임의로 프로세싱할 수 있다. 예를 들어, 시스템은 임의로 신경망의 입력 계층의 정의된 크기에 맞도록 이미지를 크기조절하고(resize), 이미지로부터 하나 이상의 채널을 제거하고, 그리고/또는 깊이 채널(들)에 대한 값들을 정규화할 수 있다(이미지가 깊이 채널을 포함하는 구현예들에서).
블록(460)에서, 시스템은 추가적인 트레이닝 예들이 생성될지를 결정한다. 만약 그러하다면, 시스템은 블록(454)으로 다시 진행하고, 오브젝트 모션 시도(예를 들어, 상이한 오브젝트 모션 시도)를 선택한다. 그렇지 않은 경우, 트레이닝 예 생성은 블록(468)에서 종료한다.
일부 구현예들에서, 추가적인 트레이닝 예들이 생성되어야 할지를 결정하는 것은 임의의 남아 있는 미처리된 오브젝트 모션 시도들이 존재하는지를 결정하는 것을 포함할 수 있다. 일부 구현예들에서, 추가적인 트레이닝 예들이 생성되어야 할지를 결정하는 것은 임계 개수의 트레이닝 예들이 이미 생성되었는지 그리고/또는 다른 기준이 만족되었는지를 결정하는 것을 추가로 그리고/또는 대안적으로 포함할 수 있다.
방법(400)의 또 다른 반복이 다시 수행될 수 있다. 예를 들어, 방법(400)은 적어도 임계 개수의 추가적인 오브젝트 모션 시도들이 수행되는 것에 응답하여 다시 수행될 수 있다.
방법(300) 및 방법(400)이 명료함을 위해 본원에서 별도의 도면들에 예시되었지만, 방법(400)의 하나 이상의 블록이 방법(300)의 하나 이상의 블록을 수행하는 동일한 컴포넌트(들)에 의해 수행될 수 있다는 것이 이해된다. 예를 들어, 방법(300) 및 방법(400)의 블록들 중 하나 이상(예를 들어, 모두)은 로봇의 프로세서(들)에 의해 수행될 수 있다. 또한, 방법(400)의 하나 이상의 블록이 방법(300)의 하나 이상의 블록과 함께, 또는 이에 선행하거나 뒤이어 수행될 수 있다는 것이 이해된다.
도 5는 트레이닝 예들에 기초하여 신경망을 트레이닝하는 예시적인 방법(500)을 예시하는 플로우차트이다. 플로우 차트의 동작들은 동작들을 수행하는 시스템을 참고하여 설명된다. 이 시스템은 신경망 상에서(예를 들어, 신경망(125) 상에서) 동작하는 트레이닝 엔진(120) 및/또는 다른 컴퓨터 시스템의 프로세서(예를 들어, GPU)와 같은, 컴퓨터 시스템의 하나 이상의 컴포넌트를 포함할 수 있다. 또한, 방법(500)의 동작들이 특정 순서로 도시되지만, 이는 제한적인 것으로 의도되지 않는다. 하나 이상의 동작들은 재순서화되고, 생략되거나 추가될 수 있다.
블록(552)에서, 시스템은 트레이닝을 시작한다. 블록(554)에서, 시스템은 트레이닝 예를 선택한다. 예를 들어, 시스템은 도 4의 방법(400)에 기초하여 생성되는 트레이닝 예를 선택할 수 있다.
블록(556)에서, 시스템은 선택된 트레이닝 예의 제1 프레임의 이미지를 신경망의 초기 계층에 적용한다. 예를 들어, 시스템은 제1 프레임의 이미지를 신경망의 초기 컨볼루션 계층에 적용할 수 있다. 본원에 기술되는 바와 같이, 일부 구현예들에서, 트레이닝 예는 엔드 이펙터 및/또는 다른 로봇 컴포넌트들을 적어도 부분적으로 생략하는 추가적인 이미지를 임의로 포함할 수 있다. 이들 구현예 중 일부에서, 시스템은 제1 프레임의 이미지 및 추가적인 이미지를 연결시키고, 연결된 이미지를 초기 계층에 적용한다. 이들 구현예 중 다른 일부에서, 제1 프레임의 이미지는 트레이닝 예에서의 추가적인 이미지와 이미 연결되었다.
블록(558)에서, 시스템은 신경망의 추가 계층에 제1 프레임의 로봇 움직임 파라미터들을 적용한다. 예를 들어, 시스템은 블록(556)에서 이미지가 적용되는 초기 계층의 다운스트림인 신경망의 추가 계층(예를 들어, 컨볼루션 LSTM 계층)에 제1 프레임의 로봇 움직임 파라미터들을 적용할 수 있다. 본원에 기술되는 바와 같이, 제1 프레임의 로봇 움직임 파라미터들은 초기 프레임의 시간 단계에서의 로봇 상태, 및 초기 프레임의 시간 단계에서 수행될 액션을 포함할 수 있다.
블록(560)에서, 시스템은 적용되는 이미지 및 적용되는 로봇 움직임 파라미터들에 기초하여 신경망을 통해 예측되는 이미지를 생성한다. 예측되는 이미지를 생성하는 것은 신경망의 구조에 종속적일 것이며, 신경망의 DNA, CDNA, 및 STP 변형들에 대해 본원에서 기술되는 기법들 중 하나 이상을 포함할 수 있다.
블록(562)에서, 시스템은 예측되는 이미지를 트레이닝 예의 제2 프레임의 이미지와 비교하는 것에 기초하여 신경망에 대해 역전파 및/또는 다른 트레이닝 기법들을 수행한다. 일부 구현예들에서, 시스템은 비교에 기초하여 재구성 손실을 결정하고, 재구성 손실에 기초하여 신경망을 업데이트한다.
블록(564)에서, 시스템은 신경망의 초기 계층에 대한 입력으로서 가장 최근에 예측된 이미지를 적용한다. 블록(564)의 초기 반복에서, 이는 블록(560)의 예측되는 이미지이다. 일부 구현예들에서, 블록(564)에서 시스템은, 신경망의 추가 계층에 대한 입력으로서, 가장 최근에 예측된 이미지에 대응하는 트레이닝 예의 프레임의 이미지를 대신 적용할 수 있다. 블록(564)의 초기 반복 시, 이는 트레이닝 예의 제2 프레임의 이미지일 수 있다.
블록(566)에서, 시스템은 신경망의 추가 계층에 다음 프레임의 로봇 움직임 파라미터들을 적용한다. 블록(564)의 초기 반복 시, 이는 제2 프레임의 로봇 움직임 파라미터들일 것이다.
블록(568)에서, 시스템은 신경망으로의 이미지의 적용 및 적용된 로봇 움직임 파라미터들에 기초하여 예측되는 이미지를 생성한다. 예측되는 이미지를 생성하는 것은 신경망의 구조에 종속적일 것이며, 신경망의 DNA, CDNA, 및 STP 변형들에 대해 본원에 기술되는 기법들 중 하나 이상을 포함할 수 있다.
블록(570)에서, 시스템은 예측된 이미지를 트레이닝 예의 다음 프레임의 이미지와 비교하는 것에 기초하여 신경망에 대해 역 전파 및/또는 다른 트레이닝 기법들을 수행한다. 블록(570)의 초기 반복 시, 다음 프레임의 이미지는 제3 프레임의 이미지일 것이다. 일부 구현예들에서, 시스템은 비교에 기초하여 재구성 손실을 결정하고, 재구성 손실에 기초하여 신경망을 업데이트한다.
블록(572)에서, 시스템은 트레이닝 예에서 고려할 추가적인 프레임이 존재하는지를 결정한다. 예를 들어, 트레이닝이 8번의 반복에 대한 것인 경우, 시스템은 8개의 프레임이 아직 고려되어야 하는지를 고려하기 위해 추가적인 프레임이 존재한다고 결정할 수 있다. 시스템이 블록(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)일 수 있고, 본원에 기술되는 3개의 제안된 모션 예측 모델들 중 하나이다. 도 6a 및 6b의 신경망(600)에서, 컨볼루션 계층(661), 컨볼루션 LSTM 계층들(672-677), 및 컨볼루션 계층(662)이 이용되어 이미지(601)(초기 반복시에 카메라 캡처된 이미지, 및 후속적인 반복들에서 가장 최근에 예측된 이미지)를 프로세싱한다. 10개의 정규화된 CDNA 변환 커널들(682)의 출력이 네트워크의 최소 차원 계층(컨볼루션 LSTM 계층(675)) 상에서 출력으로서 생성되고, 합성 마스크들(684)의 출력(예를 들어, 11 채널 마스크)이 마지막 계층(컨볼루션 계층(62)) 상에서 출력으로서 생성된다. 본원에 기술된 바와 같이, 합성 마스크들(684)은 정적 배경에 대한 하나의 채널, 및 10개의 추가 채널들을 포함할 수 있다(각각은 10개의 CDNA 변환 커널들(682) 중 대응하는 하나에 기초하여 생성될 변환된 이미지에 대응함). CDNA 커널들(682)이 적용되어 이미지(601)(예를 들어, 초기 반복 시 카메라 캡처된 이미지, 및 후속적인 반복들에서 가장 최근에 예측되는 이미지)를 10개의 상이한 변환된 이미지(683)로 변환한다(693). 10개의 상이한 변환된 이미지는, 합성 마스크들(684)에 따라, 마스킹된 합성(694)에서 합성되어, 예측되는 이미지(685)를 생성한다. 이미지(601)의 10개의 상이한 변환된 이미지(683)로의 변환(693)은 CDNA 커널들(682)에 기초하여 이미지(601)를 컨볼빙하는 것(예를 들어, CDNA 커널들(682) 중 제1 커널에 기초하여 이미지(601)를 컨볼빙하여 변환된 이미지들(683) 중 제1 이미지를 생성하는 것, CDNA 커널들 중 제2 커널에 기초하여 이미지(601)를 컨볼빙하여 변환된 이미지들(683) 중 제2 이미지를 생성하는 것 등)을 포함할 수 있다. 합성 마스크들(684)은 적용되는 채널-방식 소프트맥스로 인해 각각의 픽셀에서 1로 합산된다.
다양한 스킵 접속들이 도 6a 및 6b에 예시된다. 특히, 컨볼루션 LSTM 계층(673)의 출력으로부터 컨볼루션 LSTM 계층(677)의 입력으로의 스킵 접속, 및 컨볼루션 LSTM 계층(671)의 출력으로부터 컨볼루션 LSTM 계층(662)의 입력까지의 스킵 접속. 다양한 계층들 및 출력들의 예시적인 차원들이 또한 예시된다. 예를 들어, 이미지(601)는 64 픽셀 x 64 픽셀일 수 있고, 3개 채널("64x64x4"로 표시되는 바와 같음)을 포함할 수 있다. 또한, 예를 들어, 컨볼루션 LSTM 계층(675)은 8x8 차원("8x8"로 표시되는 바와 같음)일 수 있고, 5x5 컨볼루션들("5x5"로 표시되는 바와 같음)을 적용할 수 있다.
예시적인 신경망(600)의 추가적인 기재가 이제 제공된다. 신경망(600)은 컨볼루션 LSTM 계층들(671-677)에 선행하여, 하나의 스트라이드-2 5x5 컨볼루션 계층(661)으로 구성되는 코어 트렁크를 포함한다. 컨볼루션 LSTM 계층들(671-677) 각각은 5x5 컨볼루션들로 배열되는 가중치들을 가지고, 이전의 LSTM의 출력은 다음 하나에 직접 공급된다. 컨볼루션 LSTM 계층들(673 및 675)은 스트라이드 2 다운샘플링에 후속하여 해상도를 감소시키고, 컨볼루션 LSTM 계층들(675, 676, 및 677)은 업샘플링에 후속한다. LSTM 스택의 단부는 업샘플링 스테이지 및 최종 컨볼루션 계층(662)에 선행하는데, 이는 이후 다양한 변환된 이미지들(683)을 합성하고 정적 배경에 대해 합성하기 위한 전체 해상도 합성 마스크들(684)을 출력한다. 마스킹된 합성(694)은 합성 마스크들(684) 및 변환된 이미지들(683)을 사용하여 예측된 이미지(685)를 생성할 수 있다. STP 모션 예측 모델의 경우, 마스크들이 또한 다양한 변환된 이미지들을 합성하기 위해 생성되고(변환 행렬들에 기초하여 생성되고), STP 및 DNA 모두의 경우, 합성 마스크는 정적 배경에 대해 합성하기 위해 생성될 것이다.
고해상도 정보를 보존하기 위해, 컨볼루션 LSTM 계층(671)의 출력으로부터 컨볼루션 계층(662)의 입력으로의 스킵 접속, 및 컨볼루션 LSTM 계층(673)의 출력으로부터 컨볼루션 LSTM 계층(677)의 입력으로의 스킵 접속이 제공된다. 스킵 접속들은 스킵 계층 활성화들, 및 이들을 후속 계층에 송신하기 이전에 이전 계층의 활성화를 연결시킨다. 예를 들어, 컨볼루션 LSTM 계층(677)에 대한 입력은 컨볼루션 LSTM 계층(673)으로부터의 출력과 컨볼루션 LSTM 계층(676)으로부터의 출력의 연결(concatenation)로 구성된다. 모델은 또한, 입력으로서 로봇 상태(602)(그리퍼 포즈) 및 로봇 액션(603)(예를 들어, 그리퍼 모션 커맨드)의 로봇 움직임 파라미터들을 포함한다. 예를 들어, 로봇 상태(602)는 벡터(x, y, z) 및 각들(피치, 요)에 대한 값들을 가지는, 5개의 차원일 수 있다. 로봇 액션 역시 5개의 차원일 수 있고, 액션이 적용되는 경우 후속적인(예를 들어, 다음) 시간 단계에 대한 벡터 및 각들에 대한 그리고/또는 액션이 적용되는 경우 모션 벡터에 대한 값들일 수 있다. 예를 들어, 로봇 액션은 지시된 그리퍼 포즈에 대한 벡터(x, y, z) 및 각들(피치, 요)일 수 있다. 지시된 그리퍼 포즈는 다음 시간 단계, 또는 추가적인 시간 단계의 지시된 그리퍼 포즈(예를 들어, 최종 시간 단계에서의 그리퍼에 대한 타겟 포즈)일 수 있다. 로봇 상태(602) 및 로봇 액션(603) 벡터들은 먼저 10개의 채널을 이용하여 8x8 응답 맵(681)으로 타일링되고, 이후 693에서 채널-방식으로, 컨볼루션 LSTM 계층(675)의 입력으로 연결된다(컨볼루션 LSTM 계층(674))로부터의 출력과 연결된다). 현재 반복에서 로봇 상태(602)는 현재 로봇 상태일 수 있고, 후속적인 반복들에서의 로봇 상태(602)는 이전 현재 로봇 상태 및 이전 로봇 액션으로부터 선형적으로 예측될 수 있지만, 추가적인 또는 대안적인 로봇 상태 예측 모델들이 사용될 수 있다.
액션-조건의 로봇 조작 작업의 경우, 모든 3개 모델들(DNA, CDNA, 및 STP)은 입력으로서 로봇의 현재 상태(예를 들어, 그리퍼 포즈) 및 액션(예를 들어, 그리퍼 모션 커맨드)을 포함한다. 3개 모델들은 이전 이미지에 적용되는 변환의 형태와는 상이하다. 오브젝트-중심형 CDNA 및 STP 모델들은 컨볼루션 LSTM 계층(675) 다음에 변환 파라미터들을 출력한다. 두 경우 모두에서, 컨볼루션 LSTM 계층(675)의 출력은 평탄화되고, CDNA의 경우 직접 필터 파라미터들로, 또는 STP의 경우 하나의 100-유닛 은닉 계층을 통해, 선형 변환된다. 크기가 5x5이고 공간 소프트맥스를 통해 정규화되어 1로 합산될 수 있는, CDNA의 경우 10개의 CDNA 필터들이 존재할 수 있고, 따라서 각각의 필터는 새로운 픽셀 값이 획득될 수 있는 이전 이미지 내의 위치들에 대한 분포를 나타낸다. STP 파라미터들은 10개의 3x2 아핀 변환 행렬들에 대응할 수 있다. 변환들은 이전 이미지에 적용되어 10개의 별도의 변환된 이미지들을 생성한다. CDNA 변환은 컨볼루션(그러나 커널은 네트워크의 출력임)에 대응하는 반면, STP 변환은 아핀 변환이다. DNA 모델은, 변환 파라미터들이 마스크와 동일한 장소에서, 마지막 컨볼루션 계층(662)에서 출력된다는 점에서 다른 2개와 상이하다. 이것은 DNA 모델이 전체 이미지만큼 큰 변환 맵을 출력하기 때문이다. 각각의 이미지 픽셀에 대해, DNA 모델은 CDNA 모델과 유사하게, 이전 이미지에 적용되어 새로운 픽셀 값을 획득할 수 있는 5x5 컨볼루션 커널을 출력한다. 그러나, 커널이 공간적으로 가변적이기 때문에, 이 모델은 CDNA와는 등가적이지 않다. 이 변환은 오직 하나의 변환된 이미지를 생성한다. 변환 이후, 변환된 이미지(들) 및 이전 이미지는 마스크에 기초하여 함께 합성된다. 이전 이미지는 정적 "배경" 이미지로서 포함되고, 본원에 기술되는 바와 같이, 배경 이미지 상의 마스크는 장면의 정적 부분들을 골라내는 경향이 있다. 최종 이미지는 각각의 변환된 이미지 및 배경 이미지를 이들의 마스크 값들과 곱하고, 마스킹된 이미지들 모두를 함께 더함으로써 형성된다.
특정 컨볼루션 신경망이 도 6a 및 6b에 예시되지만, 변형들이 가능하다. 예를 들어, 더 많거나 더 적은 LSTM 계층들이 제공될 수 있고, 하나 이상의 계층이 예들로서 제공된 것과는 상이한 크기들일 수 있는 등의 식이다. 또한, 예를 들어, 대안적인 예측된 변환 및/또는 합성 마스크들이 모델에 대해 생성될 수 있다.
일단 도 6a 및 6b의 신경망 또는 다른 신경망이 본원에 기술된 기법들에 따라 트레이닝되면, 그것은 다양한 목적들로 이용될 수 있다. 도 7을 참조하면, 트레이닝된 신경망을 이용하여 로봇의 움직임이 발생한 이후 로봇의 환경을 예측하는 예측된 이미지(들)를 생성하고, 그리고/또는 예측된 이미지들에 기초하여 하나 이상의 액션을 수행하는 예시적인 방법(700)의 플로우차트가 예시된다. 편의상, 플로우차트의 동작들은 동작들을 수행하는 시스템에 대해 기술된다. 이 시스템은 로봇(180A, 180B, 840), 및/또는 다른 로봇의 프로세서(예를 들어, CPU 및/또는 GPU) 및/또는 로봇 제어 시스템과 같은, 로봇의 하나 이상의 컴포넌트를 포함할 수 있다. 방법(700)의 하나 이상의 블록을 구현할 시, 시스템은, 예를 들어, 로봇에 국부적으로 저장될 수 있는 그리고/또는 로봇으로부터 원격으로 저장될 수 있는 트레이닝된 신경망 상에서 동작할 수 있다. 또한, 방법(700)의 동작들이 특정 순서로 도시되지만, 이는 제한적인 것으로 의도되지 않는다. 하나 이상의 동작은 재순서화되고, 생략되거나, 추가될 수 있다.
블록(752)에서, 시스템은 로봇의 후보 움직임의 적어도 일부에 대한 후보 로봇 움직임 파라미터들을 생성한다. 후보 로봇 움직임 파라미터들은, 예를 들어, 현재 로봇 상태(예를 들어, 현재 로봇 상태 또는 후보 로봇 움직임 파라미터들의 초기 로봇 상태), 및 수행될 하나 이상의 액션(예를 들어, 지시된 로봇 상태)을 포함할 수 있다. 후보 로봇 움직임 파라미터들은 로봇의 환경에서 로봇의 하나 이상의 컴포넌트에 의해 수행가능한 후보 움직임의 적어도 일부를 정의한다. 예를 들어, 움직임은 제1 포즈로부터 제2 포즈로의 로봇의 엔드 이펙터의 움직임을 포함할 수 있고, 후보 로봇 움직임 파라미터들은 제1 포즈로부터 제2 포즈로의 움직임과 연관된 다양한 파라미터들, 또는 제1 포즈로부터 제1 포즈와 제2 포즈 사이의 중간 포즈(들)로의 움직임과 연관된 파라미터들을 정의할 수 있다. 예를 들어, 후보 로봇 움직임 파라미터들은 후보 움직임의 일부분만(예를 들어, 그것의 제1 부분의 일부만 또는 그것의 처음 X개의 시간 단계들만)을 정의할 수 있다.
움직임 파라미터들은 예를 들어, 후보 움직임의 일부를 달성하기 위한 관절-공간 모션 벡터들(예를 들어, 관절 각 움직임들), 후보 움직임의 일부에 대한 엔드 이펙터의 포즈의 변환, 후보 움직임의 일부를 달성하기 위한 관절-공간 토크 벡터들, 및/또는 다른 파라미터들을 포함할 수 있다. 특정 움직임 파라미터들 및/또는 움직임 파라미터들의 형태가 추가적인 블록들에서 이용되는 트레이닝된 신경망의 입력 파라미터들에 종속적일 것임에 유의한다.
일부 구현예들에서, 후보 움직임은 또 다른 시스템에 의해 생성되고, 후보 움직임에 대한 후보 로봇 움직임 파라미터들은 후보 움직임이 구현되는 경우 환경 내의 오브젝트(들)에 어떻게 영향을 줄지를 결정하기 위해 방법(700)에서의 신경망에 적용된다. 그 구현예들 중 일부에서, 후보 움직임은 그것이 오브젝트(들)에 어떻게 영향을 줄지에 기초하여 실행될 수 있고, 그것이 오브젝트(들)에 어떻게 영향을 줄지에 기초하여 정제될 수 있고, 또는 그것이 오브젝트(들)에 어떻게 영향을 줄지에 기초하여 실행되지 않을 수도 있다. 일부 구현예들에서, 시스템은 복수의 다른 후보 움직임들을 생성하고, 이들 각각에 대한 후보 로봇 움직임 파라미터들을 방법(700)의 다수의 반복시 신경망에 적용하여 각각이 환경 내의 오브젝트(들)에 어떻게 영향을 줄지를 결정한다. 그 구현예들 중 일부에서, 움직임들 중 하나는 이들이 오브젝트(들)에 어떻게 영향을 줄지에 기초하여 구현을 위해 선택될 수 있다.
블록(754)에서, 시스템은 로봇의 환경에서 하나 이상의 환경 오브젝트를 캡처하는 이미지를 식별한다. 후보 움직임의 일부에 대한 방법(700)의 제1 반복과 같은, 일부 구현예들에서, 이미지는 현재 이미지이다. 일부 구현예들에서, 시스템은 또한 엔드 이펙터 및/또는 다른 로봇 컴포넌트들을 적어도 부분적으로 생략하는 추가 이미지, 예컨대 엔드 이펙터가 비전 센서의 시야로부터 적어도 부분적으로 벗어날 때 비전 센서에 의해 캡처된 환경 오브젝트들의 추가 이미지를 식별한다. 일부 구현예들에서, 시스템은 이미지와 추가 이미지를 연결시켜 연결된 이미지를 생성한다. 일부 구현예들에서, 시스템은 이미지(들) 및/또는 연결된 이미지의 프로세싱을 임의로 수행한다(예를 들어, 신경망의 입력에 대해 크기를 맞추기 위해).
블록(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)의 하나 이상의 반복은 제1 후보 움직임에 대해 수행될 수 있고, 제2 후보 움직임에 대해 별도로 수행될 수 있다. 시스템은 제1 후보 움직임에 대한 예측되는 이미지(들) 및 제2 후보 움직임에 대한 예측되는 이미지(들)에 기초하여 제1 후보 움직임 및 제2 후보 움직임 중 하나를 선택할 수 있다. 시스템은 로봇의 하나 이상의 액추에이터에 하나 이상의 대응하는 제어 커맨드를 제공함으로써 선택된 후보 움직임을 수행할 수 있다.
도 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)은 현재 이미지 및 후보 로봇 움직임 파라미터들을 트레이닝된 신경망에 제공하고, 적용에 기초하여 예측된 변환을 생성할 수 있고, 예측된 변환에 기초하여 예측된 이미지를 생성하고, 예측된 이미지를 이용하여 로봇의 움직임을 제어하기 위한 하나 이상의 엔드 이펙터 제어 커맨드를 생성할 수 있다. 제어 시스템(860)이 로봇(820)의 일체부로서 도 8에 예시되지만, 일부 구현예들에서, 제어 시스템(860)의 전부 또는 그 양태들은 로봇(820)과는 별도인, 그러나 이와 통신하는 컴포넌트에서 구현될 수 있다. 예를 들어, 제어 시스템(860)의 전부 또는 그 양태들은 컴퓨팅 디바이스(910)와 같은, 로봇(820)과 유선 및/또는 무선 통신하는 하나 이상의 컴퓨팅 디바이스 상에서 구현될 수 있다.
도 9는 본원에 기술된 기법들 중 하나 이상의 양태를 수행하기 위해 임의로 이용될 수 있는 예시적인 컴퓨팅 디바이스(910)의 블록도이다. 컴퓨팅 디바이스(910)는 통상적으로는 버스 서브시스템(912)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(914)를 포함한다. 이들 주변 디바이스들은 예를 들어, 메모리 서브시스템(925)과 파일 저장 서브시스템(926)을 포함하는 저장 서브시스템(924), 사용자 인터페이스 출력 디바이스들(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 드라이브, 광학 드라이브, 또는 이동식 미디어 카트리지들을 포함할 수 있다. 특정 구현예들의 기능성을 구현하는 모듈들은 저장 서브시스템(924) 내의 파일 저장 서브시스템(926)에 의해, 또는 프로세서(들)(914)에 의해 액세스가능한 다른 머신들에 저장될 수 있다.
버스 서브시스템(912)은 컴퓨팅 디바이스(910)의 다양한 컴포넌트들이 의도된 바와 같이 서로 통신하도록 하기 위한 메커니즘을 제공한다. 버스 서브시스템(912)이 단일 버스로서 개략적으로 도시되지만, 버스 서브시스템의 대안적인 구현예들은 다수의 버스를 사용할 수 있다.
컴퓨팅 디바이스(910)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 타입들일 수 있다. 컴퓨터들 및 네트워크들의 지속적으로 변경하는 속성으로 인해, 도 9에 도시된 컴퓨팅 디바이스(910)의 기재는 일부 구현예들을 예시하기 위한 목적으로 단지 특정 예들로서 의도된다. 도 9에 도시된 컴퓨팅 디바이스보다 더 많거나 더 적은 컴포넌트들을 가지는, 컴퓨팅 디바이스(910)의 많은 다른 구성들이 가능하다.
Claims (25)
- 하나 이상의 프로세서에 의해 구현되는 방법으로서,
후보 로봇 움직임 파라미터들을 생성하는 단계 - 상기 후보 로봇 움직임 파라미터들은 상기 로봇의 하나 이상의 컴포넌트에 의해 로봇의 환경에서 수행가능한 후보 움직임의 적어도 일부를 정의함 -;
상기 로봇과 연관된 비전 센서에 의해 캡처되는 현재 이미지를 식별하는 단계 - 상기 현재 이미지는 상기 로봇의 환경의 적어도 일부를 캡처함 -;
이전 프레임들로부터 픽셀 모션에 대한 분포를 예측함으로써 픽셀 모션을 명시적으로 모델링하는 액션-조건의 모션 예측 모델(action-conditioned motion prediction model)을 이용하는 트레이닝된 신경망에 대한 입력으로서 상기 현재 이미지 및 상기 후보 로봇 움직임 파라미터들을 적용하는 단계;
상기 현재 이미지의 적어도 하나의 예측되는 변환을 생성하는 단계 - 상기 예측되는 변환은 상기 트레이닝된 신경망으로의 상기 현재 이미지 및 상기 후보 로봇 움직임 파라미터들의 적용에 기초하여 생성됨 -;
적어도 하나의 예측되는 이미지를 생성하기 위해 상기 적어도 하나의 예측되는 변환에 기초하여 상기 현재 이미지를 변환하는 단계 - 상기 예측되는 이미지는 상기 후보 움직임의 적어도 일부가 상기 로봇의 컴포넌트들에 의해 상기 환경에서 수행되는 경우 상기 로봇의 환경의 일부를 예측함 -;
상기 예측되는 이미지에 기초하여, 상기 후보 움직임을 수행하도록 결정하는 단계; 및
상기 로봇의 하나 이상의 액추에이터에 하나 이상의 제어 커맨드를 제공하여 상기 후보 움직임을 수행하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 트레이닝된 신경망으로의 상기 현재 이미지 및 상기 후보 로봇 움직임 파라미터들의 적용에 기초하여 적어도 하나의 합성 마스크를 생성하는 단계를 더 포함하고,
상기 현재 이미지를 변환하는 단계는 상기 적어도 하나의 합성 마스크에 추가로 기초하는 방법. - 제2항에 있어서,
상기 적어도 하나의 예측되는 변환은 복수의 예측되는 변환을 포함하고, 상기 적어도 하나의 합성 마스크는 복수의 합성 마스크를 포함하고, 상기 예측되는 이미지를 생성하기 위해 상기 적어도 하나의 예측되는 변환에 기초하여 상기 현재 이미지를 변환하는 단계는:
상기 복수의 예측되는 변환에 기초하여 복수의 예측되는 이미지를 생성하는 단계; 및
상기 복수의 합성 마스크에 기초하여 상기 예측되는 이미지들을 합성하여 상기 예측되는 이미지를 생성하는 단계
를 포함하는 방법. - 제1항에 있어서,
제2 후보 로봇 움직임 파라미터들을 생성하는 단계 - 상기 제2 후보 로봇 움직임 파라미터들은 상기 컴포넌트들 중 하나 이상에 의해 상기 환경에서 수행가능한 제2 후보 움직임의 적어도 일부를 정의하고, 상기 제2 후보 움직임은 상기 후보 움직임 대신 수행가능함 -;
상기 현재 이미지 및 상기 제2 후보 로봇 움직임 파라미터들을 상기 트레이닝된 신경망에 대한 입력으로서 적용하는 단계;
상기 현재 이미지의 적어도 하나의 제2 예측되는 변환을 생성하는 단계 - 상기 제2 예측되는 변환은 상기 트레이닝된 신경망으로의 상기 현재 이미지 및 상기 제2 후보 로봇 움직임 파라미터들의 적용에 기초하여 생성됨 -;
상기 제2 예측되는 변환에 기초하여 상기 현재 이미지의 픽셀들 중 하나 이상을 변환하여 적어도 하나의 제2 예측되는 이미지를 생성하는 단계
를 더 포함하고, 상기 제2 예측되는 이미지는 상기 제2 후보 움직임의 적어도 일부가 상기 로봇의 컴포넌트들에 의해 상기 환경에서 수행되는 경우 상기 로봇의 환경의 일부를 예측하는 방법. - 제4항에 있어서,
상기 예측되는 이미지 및 상기 제2 예측되는 이미지에 기초하여, 상기 후보 움직임 또는 상기 제2 후보 움직임을 선택하는 단계; 및
상기 로봇의 하나 이상의 액추에이터에 하나 이상의 제어 커맨드를 제공하여 상기 후보 움직임 또는 상기 제2 후보 움직임 중 선택된 하나를 수행하는 단계
를 더 포함하는 방법. - 제1항에 있어서,
지속적인 후보 로봇 움직임 파라미터들을 생성하는 단계 - 상기 지속적인 후보 로봇 움직임 파라미터들은 상기 후보 움직임의 일부에 후속하는 상기 후보 움직임의 또 다른 부분을 정의함 -;
상기 예측되는 이미지 및 상기 지속적인 후보 로봇 움직임 파라미터들을 상기 트레이닝된 신경망에 적용하는 단계;
상기 예측되는 이미지의 적어도 하나의 지속적인 예측되는 변환을 생성하는 단계 - 상기 지속적인 예측되는 변환은 상기 트레이닝된 신경망으로의 상기 예측되는 이미지 및 상기 지속적인 후보 로봇 움직임 파라미터들의 적용에 기초하여 생성됨 -;
상기 지속적인 예측되는 변환에 기초하여 상기 예측되는 이미지를 변환하여 지속적인 예측되는 이미지를 생성하는 단계
를 더 포함하는 방법. - 제6항에 있어서,
상기 예측되는 이미지 및 상기 지속적인 예측되는 이미지에 기초하여, 상기 후보 움직임을 수행하도록 결정하는 단계; 및
상기 로봇의 하나 이상의 액추에이터에 하나 이상의 제어 커맨드를 제공하여 상기 후보 움직임을 수행하는 단계
를 더 포함하는 방법. - 제1항에 있어서,
상기 트레이닝된 신경망은 복수의 스택화된 컨볼루션 장단기 메모리 계층들(stacked convolutional long short-term memory layers)을 포함하는 방법. - 제1항에 있어서,
상기 현재 이미지의 픽셀들의 적어도 하나의 예측되는 변환은 하나 이상의 공간 변환기의 파라미터들을 포함하는 방법. - 제9항에 있어서,
상기 현재 이미지를 변환하는 단계는: 상기 하나 이상의 공간 변환기의 파라미터들을 이용하여 상기 현재 이미지에 상기 하나 이상의 공간 변환기를 적용하는 단계를 포함하는 방법. - 제1항에 있어서,
상기 현재 이미지의 픽셀들의 적어도 하나의 예측되는 변환은, 각각이 상기 픽셀들 중 하나 이상에 대응하는 하나 이상의 정규화된 분포를 포함하는 방법. - 제11항에 있어서,
상기 현재 이미지를 변환하는 단계는: 컨볼루션 연산을 사용하여 상기 현재 이미지에 상기 정규화된 분포를 적용하는 단계를 포함하는 방법. - 제11항에 있어서,
상기 정규화된 분포들 각각은 상기 픽셀들 중 대응하는 하나에 대응하는 방법. - 제1항에 있어서,
상기 현재 이미지 및 상기 후보 로봇 모션 파라미터들을 상기 트레이닝된 신경망에 대한 입력으로서 적용하는 단계는:
상기 현재 이미지를 상기 트레이닝된 신경망의 초기 계층에 대한 입력으로서 적용하는 단계; 및
상기 후보 로봇 모션 파라미터들을 상기 트레이닝된 신경망의 추가 계층에 적용하는 단계
를 포함하고, 상기 추가 계층은 상기 초기 계층의 다운스트림인 방법. - 시스템으로서,
환경을 보는 비전 센서;
하나 이상의 비-일시적 컴퓨터 판독가능한 매체 내에 저장되는 트레이닝된 신경망;
적어도 하나의 프로세서
를 포함하고, 상기 적어도 하나의 프로세서는:
로봇과 연관되는 상기 비전 센서에 의해 캡처되는 현재 이미지를 식별하고;
상기 로봇의 현재 상태를 식별하고;
후보 액션을 식별하여 상기 로봇을 상기 현재 상태로부터 후보 상태로 트랜지션하고;
이전 프레임들로부터 픽셀 모션에 대한 분포를 예측함으로써 픽셀 모션을 명시적으로 모델링하는 액션-조건의 모션 예측 모델을 이용하는 상기 트레이닝된 신경망에 대한 입력으로서 상기 현재 이미지, 상기 현재 상태, 및 상기 후보 액션을 적용하고;
상기 트레이닝된 신경망으로의 상기 현재 이미지, 상기 현재 상태, 및 상기 후보 액션의 적용에 기초하여 적어도 하나의 예측되는 이미지를 생성하고;
상기 예측되는 이미지에 기초하여, 상기 후보 액션을 수행하도록 결정하고;
상기 로봇의 하나 이상의 액추에이터에 하나 이상의 제어 커맨드를 제공하여 상기 후보 액션을 수행하도록
구성되는 시스템. - 제15항에 있어서,
상기 적어도 하나의 프로세서는:
상기 후보 액션에 기초하여, 상기 현재 상태에 후속하는 다음 상태를 결정하고;
다음 후보 액션을 식별하여 상기 로봇을 상기 다음 상태로부터 추가적인 후보 상태로 트랜지션하고;
상기 트레이닝된 신경망에 대한 입력으로서 상기 현재 이미지, 상기 현재 상태, 및 상기 후보 액션의 입력에 후속하는, 상기 트레이닝된 신경망에 대한 입력으로서 상기 예측되는 이미지, 상기 다음 상태, 및 상기 다음 후보 액션을 적용하고;
상기 트레이닝된 신경망에 대한 입력으로서 상기 예측되는 이미지, 상기 다음 상태, 및 상기 다음 후보 액션의 적용에 기초하여 다음 예측되는 이미지를 생성하도록
추가로 구성되고, 상기 후보 액션을 수행하도록 결정할 시에, 상기 적어도 하나의 프로세서는 추가로 상기 다음 예측되는 이미지에 기초하여 상기 후보 액션을 수행하도록 결정하는 시스템. - 이전 프레임들로부터 픽셀 모션에 대한 분포를 예측함으로써 픽셀 모션을 명시적으로 모델링하는 액션-조건의 모션 예측 모델을 이용하는 신경망을 트레이닝하는 방법으로서,
하나 이상의 프로세서에 의해, 로봇들에 의한 복수의 오브젝트 모션 시도 동안 하나 이상의 로봇과 연관되는 센서들로부터의 센서 출력에 기초하여 생성되는 복수의 트레이닝 예를 식별하는 단계 - 상기 트레이닝 예들 각각은:
상기 오브젝트 모션 시도들 중 대응하는 시도로부터의 순차적인 이미지들의 그룹 - 상기 이미지들 각각은 대응하는 시간 인스턴스에서 환경 내의 하나 이상의 대응하는 오브젝트를 캡처함 -, 및
상기 순차적인 이미지들 각각에 대해:
상기 대응하는 시간 인스턴스에서의 상기 로봇의 상태, 및
상기 대응하는 시간 인스턴스에서의 상기 로봇의 상태를 상기 순차적인 이미지들 중 다음 순차적인 이미지에 대응하는 새로운 상태로 트랜지션하기 위해 적용될 액션
을 포함함 -; 및
상기 프로세서들 중 하나 이상에 의해, 상기 트레이닝 예들에 기초하여 상기 신경망을 트레이닝하는 단계
를 포함하는 방법. - 제17항에 있어서,
상기 트레이닝 예들에 기초하여 상기 신경망을 트레이닝하는 단계는:
상기 신경망에 대한 초기 입력으로서:
상기 순차적인 이미지들의 주어진 이미지, 및 상기 주어진 이미지에 대한 상태와 액션
을 적용하는 단계;
상기 신경망으로의 상기 초기 입력의 적용에 기초하여 예측되는 이미지를 생성하는 단계;
상기 예측되는 이미지, 및 상기 순차적인 이미지들 내에서 상기 주어진 이미지에 후속하는 다음 순차적인 이미지에 기초하여 에러를 결정하는 단계; 및
상기 에러에 기초하여 상기 신경망을 업데이트하는 단계
를 포함하는 방법. - 제18항에 있어서,
상기 트레이닝 예들에 기초하여 상기 신경망을 트레이닝하는 단계는:
상기 초기 입력의 적용에 후속하는 상기 신경망에 대한 다음 입력으로서:
상기 예측되는 이미지, 및 상기 다음 순차적인 이미지에 대한 상태와 액션
을 적용하는 단계;
상기 신경망에 대한 상기 다음 입력의 적용에 기초하여 추가적인 예측되는 이미지를 생성하는 단계;
상기 추가적인 예측되는 이미지, 및 상기 순차적인 이미지들 내의 상기 다음 순차적인 이미지에 후속하는 추가적인 다음 순차적인 이미지에 기초하여 추가적인 에러를 결정하는 단계; 및
상기 에러에 기초하여 상기 신경망을 업데이트하는 단계
를 더 포함하는 방법. - 제18항에 있어서,
상기 초기 입력을 적용하는 단계는:
상기 주어진 트레이닝 예의 주어진 이미지를 상기 신경망의 초기 계층에 대한 입력으로서 적용하는 단계; 및
상기 주어진 이미지에 대한 상기 상태 및 상기 액션을 상기 신경망의 추가 계층에 적용하는 단계
를 포함하고, 상기 추가 계층은 상기 초기 계층의 다운스트림인 방법. - 제17항에 있어서,
상기 트레이닝 예들은:
제1 로봇에 의한 복수의 오브젝트 모션 시도 동안 상기 제1 로봇의 복수의 제1 로봇 센서로부터의 출력에 기초하여 생성되는 트레이닝 예들의 제1 그룹; 및
제2 로봇에 의한 복수의 오브젝트 모션 시도 동안 상기 제2 로봇의 복수의 제2 로봇 센서로부터의 출력에 기초하여 생성되는 트레이닝 예들의 제2 그룹
을 포함하는 방법. - 프로그램을 저장하는 컴퓨터-판독가능 기록 매체로서,
상기 프로그램은,
컴퓨팅 장치에 의해 실행될 때 제1항 내지 제14항 중 어느 한 항의 방법의 수행을 야기하는 머신 판독가능한 명령어들을 포함하는 컴퓨터-판독가능 기록 매체. - 프로그램을 저장하는 컴퓨터-판독가능 기록 매체로서,
상기 프로그램은,
컴퓨팅 장치에 의해 실행될 때 제17항 내지 제21항 중 어느 한 항의 방법의 수행을 야기하는 머신 판독가능한 명령어들을 포함하는 컴퓨터-판독가능 기록 매체. - 삭제
- 삭제
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662339734P | 2016-05-20 | 2016-05-20 | |
US62/339,734 | 2016-05-20 | ||
US15/596,103 | 2017-05-16 | ||
US15/596,103 US11173599B2 (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 |
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 |
---|---|---|---|
KR1020197013816A Division KR102168003B1 (ko) | 2016-05-20 | 2017-05-16 | 오브젝트(들)를 캡처하는 이미지(들)에 기초하는 그리고 환경에서의 미래 로봇 움직임에 대한 파라미터(들)에 기초하여 로봇 환경에서의 오브젝트(들)의 모션(들)을 예측하는 것과 관련된 머신 학습 방법들 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180137026A KR20180137026A (ko) | 2018-12-26 |
KR101980603B1 true KR101980603B1 (ko) | 2019-05-22 |
Family
ID=58873885
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187035430A KR101980603B1 (ko) | 2016-05-20 | 2017-05-16 | 오브젝트(들)를 캡처하는 이미지(들)에 기초하는 그리고 환경에서의 미래 로봇 움직임에 대한 파라미터(들)에 기초하여 로봇 환경에서의 오브젝트(들)의 모션(들)을 예측하는 것과 관련된 머신 학습 방법들 및 장치 |
KR1020197013816A KR102168003B1 (ko) | 2016-05-20 | 2017-05-16 | 오브젝트(들)를 캡처하는 이미지(들)에 기초하는 그리고 환경에서의 미래 로봇 움직임에 대한 파라미터(들)에 기초하여 로봇 환경에서의 오브젝트(들)의 모션(들)을 예측하는 것과 관련된 머신 학습 방법들 및 장치 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197013816A KR102168003B1 (ko) | 2016-05-20 | 2017-05-16 | 오브젝트(들)를 캡처하는 이미지(들)에 기초하는 그리고 환경에서의 미래 로봇 움직임에 대한 파라미터(들)에 기초하여 로봇 환경에서의 오브젝트(들)의 모션(들)을 예측하는 것과 관련된 머신 학습 방법들 및 장치 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11173599B2 (ko) |
JP (4) | JP2019516568A (ko) |
KR (2) | KR101980603B1 (ko) |
WO (1) | WO2017201023A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220067973A (ko) | 2020-11-18 | 2022-05-25 | 지니주식회사 | 인공지능 로봇 교육 장치 및 그 제어 방법 |
Families Citing this family (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9948885B2 (en) * | 2003-12-12 | 2018-04-17 | Kurzweil Technologies, Inc. | Virtual encounters |
US9634855B2 (en) | 2010-05-13 | 2017-04-25 | Alexander Poltorak | Electronic personal interactive device that determines topics of interest using a conversational agent |
US9381916B1 (en) * | 2012-02-06 | 2016-07-05 | Google Inc. | System and method for predicting behaviors of detected objects through environment representation |
DE102015216659A1 (de) * | 2015-09-01 | 2017-03-02 | Siemens Aktiengesellschaft | Vorrichtung zur Anbindung an einen Roboter |
US10163250B2 (en) | 2016-03-25 | 2018-12-25 | Outward, Inc. | Arbitrary view generation |
US11989820B2 (en) | 2016-03-25 | 2024-05-21 | Outward, Inc. | Arbitrary view generation |
US11222461B2 (en) | 2016-03-25 | 2022-01-11 | Outward, Inc. | Arbitrary view generation |
US11989821B2 (en) | 2016-03-25 | 2024-05-21 | Outward, Inc. | Arbitrary view generation |
US11972522B2 (en) | 2016-03-25 | 2024-04-30 | Outward, Inc. | Arbitrary view generation |
US11232627B2 (en) | 2016-03-25 | 2022-01-25 | Outward, Inc. | Arbitrary view generation |
US10163249B2 (en) | 2016-03-25 | 2018-12-25 | Outward, Inc. | Arbitrary view generation |
US10163251B2 (en) | 2016-03-25 | 2018-12-25 | Outward, Inc. | Arbitrary view generation |
US10058995B1 (en) | 2016-07-08 | 2018-08-28 | X Development Llc | Operating multiple testing robots based on robot instructions and/or environmental parameters received in a request |
WO2018022715A1 (en) * | 2016-07-26 | 2018-02-01 | University Of Connecticut | Early prediction of an intention of a user's actions |
US11370113B2 (en) * | 2016-09-06 | 2022-06-28 | Verily Life Sciences Llc | Systems and methods for prevention of surgical mistakes |
US11518051B2 (en) | 2017-02-07 | 2022-12-06 | Veo Robotics, Inc. | Dynamic, interactive signaling of safety-related conditions in a monitored environment |
US10882185B2 (en) | 2017-02-07 | 2021-01-05 | Veo Robotics, Inc. | Dynamically determining workspace safe zones with speed and separation monitoring |
US11820025B2 (en) | 2017-02-07 | 2023-11-21 | Veo Robotics, Inc. | Safe motion planning for machinery operation |
US11541543B2 (en) | 2017-02-07 | 2023-01-03 | Veo Robotics, Inc. | Dynamic, interactive signaling of safety-related conditions in a monitored environment |
US10223821B2 (en) * | 2017-04-25 | 2019-03-05 | Beyond Imagination Inc. | Multi-user and multi-surrogate virtual encounters |
CN117915108A (zh) | 2017-05-19 | 2024-04-19 | 渊慧科技有限公司 | 视觉交互网络***及其方法、训练方法和计算机存储介质 |
US11237872B2 (en) * | 2017-05-23 | 2022-02-01 | Kla-Tencor Corporation | Semiconductor inspection and metrology systems for distributing job among the CPUs or GPUs based on logical image processing boundaries |
US11468286B2 (en) * | 2017-05-30 | 2022-10-11 | Leica Microsystems Cms Gmbh | Prediction guided sequential data learning method |
US11126854B1 (en) * | 2017-06-02 | 2021-09-21 | Amazon Technologies, Inc. | Efficient identification of objects in videos using motion information |
JP6695843B2 (ja) * | 2017-09-25 | 2020-05-20 | ファナック株式会社 | 装置、及びロボットシステム |
US10692244B2 (en) | 2017-10-06 | 2020-06-23 | Nvidia Corporation | Learning based camera pose estimation from images of an environment |
CN111278613B (zh) * | 2017-11-02 | 2022-10-04 | 三菱电机株式会社 | 校准装置、校准方法和控制装置 |
EP3621773B1 (en) * | 2017-12-05 | 2023-10-04 | Google LLC | Viewpoint invariant visual servoing of robot end effector using recurrent neural network |
US10572775B2 (en) | 2017-12-05 | 2020-02-25 | X Development Llc | Learning and applying empirical knowledge of environments by robots |
JP7122821B2 (ja) * | 2017-12-15 | 2022-08-22 | 川崎重工業株式会社 | ロボットシステム及びロボット制御方法 |
US10579908B2 (en) * | 2017-12-15 | 2020-03-03 | Google Llc | Machine-learning based technique for fast image enhancement |
JP6734253B2 (ja) * | 2017-12-20 | 2020-08-05 | ファナック株式会社 | ワークを撮像する視覚センサを備える撮像装置 |
US12008465B1 (en) | 2017-12-29 | 2024-06-11 | Perceive Corporation | Dynamic generation of data sets for training machine-trained network |
EP3724820A1 (en) * | 2018-01-22 | 2020-10-21 | Apple Inc. | Generating objectives for objective-effectuators in synthesized reality settings |
US20210205995A1 (en) * | 2018-02-06 | 2021-07-08 | Clara Vu | Robot end-effector sensing and identification |
CN108491767B (zh) * | 2018-03-06 | 2022-08-09 | 北京因时机器人科技有限公司 | 基于在线视频感知的自主滚动响应方法、***和机械手 |
JP6933167B2 (ja) * | 2018-03-14 | 2021-09-08 | オムロン株式会社 | ロボットの制御装置 |
CN108390380B (zh) * | 2018-05-16 | 2021-04-06 | 国网山东省电力公司青岛供电公司 | 一种变压器状态参量趋势预测方法及*** |
EP3793783A1 (en) | 2018-05-18 | 2021-03-24 | Google LLC | System and methods for pixel based model predictive control |
US20190362235A1 (en) * | 2018-05-23 | 2019-11-28 | Xiaofan Xu | Hybrid neural network pruning |
JP7008136B2 (ja) * | 2018-06-14 | 2022-01-25 | ヤマハ発動機株式会社 | 機械学習装置及びこれを備えたロボットシステム |
US10713487B2 (en) * | 2018-06-29 | 2020-07-14 | Pixart Imaging Inc. | Object determining system and electronic apparatus applying the object determining system |
US10953548B2 (en) | 2018-07-19 | 2021-03-23 | International Business Machines Corporation | Perform peg-in-hole task with unknown tilt |
WO2020037127A1 (en) * | 2018-08-17 | 2020-02-20 | Dauntless.Io, Inc. | Systems and methods for modeling and controlling physical dynamical systems using artificial intelligence |
US11597086B2 (en) | 2018-09-13 | 2023-03-07 | The Charles Stark Draper Laboratory, Inc. | Food-safe, washable interface for exchanging tools |
US10860927B2 (en) | 2018-09-27 | 2020-12-08 | Deepmind Technologies Limited | Stacked convolutional long short-term memory for model-free reinforcement learning |
US20200160210A1 (en) * | 2018-11-20 | 2020-05-21 | Siemens Industry Software Ltd. | Method and system for predicting a motion trajectory of a robot moving between a given pair of robotic locations |
US11839983B2 (en) * | 2018-11-27 | 2023-12-12 | Ocado Innovation Limited | Systems and methods for robotic grasp verification |
US11501179B2 (en) | 2018-11-28 | 2022-11-15 | International Business Machines Corporation | Cognitive robotics system that requests additional learning content to complete learning process |
CN109658413B (zh) * | 2018-12-12 | 2022-08-09 | 达闼机器人股份有限公司 | 一种机器人目标物体抓取位置检测的方法 |
US20200202178A1 (en) * | 2018-12-19 | 2020-06-25 | Abb Schweiz Ag | Automatic visual data generation for object training and evaluation |
CN111476257A (zh) * | 2019-01-24 | 2020-07-31 | 富士通株式会社 | 信息处理方法和信息处理装置 |
WO2020160388A1 (en) * | 2019-01-31 | 2020-08-06 | Brain Corporation | Systems and methods for laser and imaging odometry for autonomous robots |
US11413751B2 (en) * | 2019-02-11 | 2022-08-16 | Hypertherm, Inc. | Motion distribution in robotic systems |
US11657801B2 (en) * | 2019-02-27 | 2023-05-23 | Comcast Cable Communications, Llc | Voice command detection and prediction |
EP3930615A1 (en) * | 2019-02-28 | 2022-01-05 | Koninklijke Philips N.V. | Feedforward continuous positioning control of end-effectors |
CN112512755A (zh) * | 2019-03-01 | 2021-03-16 | 谷歌有限责任公司 | 使用从2.5d视觉数据预测的域不变3d表示的机器人操纵 |
US11945113B2 (en) | 2019-03-15 | 2024-04-02 | Omron Corporation | Parameter adjustment device, parameter adjustment method, and program |
CN110000781B (zh) * | 2019-03-29 | 2021-06-08 | 郑州大学 | 基于发育网络的移动机器人运动方向预先决策方法 |
US11845191B1 (en) * | 2019-06-26 | 2023-12-19 | Amazon Technologies, Inc. | Robotic picking of cuboidal items from a pallet |
CN114051443A (zh) * | 2019-07-03 | 2022-02-15 | 首选网络株式会社 | 信息处理装置、机器人***以及信息处理方法 |
CN110450153B (zh) * | 2019-07-08 | 2021-02-19 | 清华大学 | 一种基于深度强化学习的机械臂物品主动拾取方法 |
KR20210011591A (ko) * | 2019-07-23 | 2021-02-02 | 엘지전자 주식회사 | 액션 로봇과 연결된 단말기 및 그의 동작 방법 |
WO2021040699A1 (en) * | 2019-08-27 | 2021-03-04 | Google Llc | Future prediction, using stochastic adversarial based sampling, for robotic control |
WO2021044751A1 (ja) * | 2019-09-02 | 2021-03-11 | ソニー株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
US11685045B1 (en) * | 2019-09-09 | 2023-06-27 | X Development Llc | Asynchronous robotic control using most recently selected robotic action data |
US20210125052A1 (en) * | 2019-10-24 | 2021-04-29 | Nvidia Corporation | Reinforcement learning of tactile grasp policies |
KR20220078651A (ko) * | 2019-11-08 | 2022-06-10 | 아웃워드, 인코포레이티드 | 임의적 뷰 생성 |
US20210158141A1 (en) * | 2019-11-22 | 2021-05-27 | Sony Interactive Entertainment Inc. | Control input scheme for machine learning in motion control and physics based animation |
US20220189185A1 (en) * | 2019-12-09 | 2022-06-16 | Cognex Corporation | System and method for applying deep learning tools to machine vision and interface for the same |
CN111002349A (zh) * | 2019-12-13 | 2020-04-14 | 中国科学院深圳先进技术研究院 | 一种机器人跟随转向方法及采用该方法的机器人*** |
US11635802B2 (en) * | 2020-01-13 | 2023-04-25 | Sony Interactive Entertainment Inc. | Combined light intensity based CMOS and event detection sensor for high speed predictive tracking and latency compensation in virtual and augmented reality HMD systems |
CN111324987B (zh) * | 2020-02-20 | 2022-07-08 | 西北工业大学 | 一种基于稀疏高斯过程的目标运动预测方法 |
WO2021195970A1 (zh) * | 2020-03-31 | 2021-10-07 | 西门子股份公司 | 工业***的预测模型学习方法、装置和*** |
US20220084306A1 (en) * | 2020-07-14 | 2022-03-17 | Kalpit Jain | Method and system of guiding a user on a graphical interface with computer vision |
JP7436317B2 (ja) | 2020-07-29 | 2024-02-21 | 日立建機株式会社 | 電動作業機械 |
US12017359B2 (en) | 2020-11-11 | 2024-06-25 | Sony Interactive Entertainment Inc. | Method for robotic training based on randomization of surface damping |
US20220152816A1 (en) * | 2020-11-13 | 2022-05-19 | Intrinsic Innovation Llc | Decentralized robotic operating environment optimization |
CN113211441B (zh) * | 2020-11-30 | 2022-09-09 | 湖南太观科技有限公司 | 神经网络训练和机器人控制方法及装置 |
US20220188625A1 (en) * | 2020-12-11 | 2022-06-16 | Poyen Hsieh | Method and computer implemented system for generating layout plan using neural network |
US11938638B2 (en) | 2020-12-31 | 2024-03-26 | Google Llc | Simulation driven robotic control of real robot(s) |
CA3177585A1 (en) * | 2021-04-16 | 2022-10-16 | Strong Force Vcn Portfolio 2019, Llc | Systems, methods, kits, and apparatuses for digital product network systems and biology-based value chain networks |
WO2023003979A2 (en) * | 2021-07-21 | 2023-01-26 | University Of Washington | Optimal data-driven decision-making in multi-agent systems |
WO2023115182A1 (pt) | 2021-12-20 | 2023-06-29 | Embraer S.A. | Plataforma de controle para sistemas autônomos |
CN114363617A (zh) * | 2022-03-18 | 2022-04-15 | 武汉大学 | 一种网络轻量级视频流传输方法、***及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016782A1 (en) | 1996-05-02 | 2002-02-07 | Cooper David L. | Method and apparatus for fractal computation |
US20150148953A1 (en) | 2013-11-22 | 2015-05-28 | Brain Corporation | Discrepancy detection apparatus and methods for machine learning |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06106490A (ja) * | 1992-09-29 | 1994-04-19 | Fujitsu Ltd | 制御装置 |
JPH06314103A (ja) * | 1993-04-30 | 1994-11-08 | Fujitsu Ltd | 制御装置と能動的センシング装置 |
JPH0780790A (ja) * | 1993-09-16 | 1995-03-28 | Fujitsu Ltd | 三次元物体把持システム |
JP3560670B2 (ja) | 1995-02-06 | 2004-09-02 | 富士通株式会社 | 適応的認識システム |
JP2002059384A (ja) | 2000-08-22 | 2002-02-26 | Sony Corp | ロボットのための学習システム及び学習方法 |
JP2002239960A (ja) | 2001-02-21 | 2002-08-28 | Sony Corp | ロボット装置の動作制御方法、プログラム、記録媒体及びロボット装置 |
US9286941B2 (en) * | 2001-05-04 | 2016-03-15 | Legend3D, Inc. | Image sequence enhancement and motion picture project management system |
US7107107B2 (en) * | 2003-01-31 | 2006-09-12 | Matsushita Electric Industrial Co., Ltd. | Predictive action decision device and action decision method |
JPWO2008047872A1 (ja) | 2006-10-20 | 2010-02-25 | 株式会社日立製作所 | マニピュレータ |
JP5115965B2 (ja) | 2007-10-01 | 2013-01-09 | 独立行政法人理化学研究所 | ニューロン装置、神経回路網装置、非負整数符号化装置、整数クラスタ装置、フィードバック制御装置、ならびに、プログラム |
CN101482923B (zh) | 2009-01-19 | 2012-05-23 | 刘云 | 视频监控中人体目标的检测与性别识别方法 |
US9346167B2 (en) * | 2014-04-29 | 2016-05-24 | Brain Corporation | Trainable convolutional network apparatus and methods for operating a robotic vehicle |
US10032280B2 (en) * | 2014-09-19 | 2018-07-24 | Brain Corporation | Apparatus and methods for tracking salient features |
US9630318B2 (en) * | 2014-10-02 | 2017-04-25 | Brain Corporation | Feature detection apparatus and methods for training of robotic navigation |
CN104758096B (zh) | 2015-03-30 | 2016-11-30 | 山东科技大学 | 一种对假肢目标空间定位精度矫正的方法 |
US10372968B2 (en) * | 2016-01-22 | 2019-08-06 | Qualcomm Incorporated | Object-focused active three-dimensional reconstruction |
US10242266B2 (en) * | 2016-03-02 | 2019-03-26 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for detecting actions in videos |
-
2017
- 2017-05-16 KR KR1020187035430A patent/KR101980603B1/ko active IP Right Grant
- 2017-05-16 WO PCT/US2017/032865 patent/WO2017201023A1/en active Application Filing
- 2017-05-16 JP JP2018559945A patent/JP2019516568A/ja active Pending
- 2017-05-16 KR KR1020197013816A patent/KR102168003B1/ko active IP Right Grant
- 2017-05-16 US US15/596,103 patent/US11173599B2/en active Active
-
2020
- 2020-04-08 JP JP2020069785A patent/JP2020128003A/ja not_active Ceased
-
2021
- 2021-07-14 JP JP2021116336A patent/JP7399912B2/ja active Active
- 2021-11-11 US US17/524,185 patent/US20220063089A1/en active Pending
-
2023
- 2023-12-06 JP JP2023205781A patent/JP2024019422A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016782A1 (en) | 1996-05-02 | 2002-02-07 | Cooper David L. | Method and apparatus for fractal computation |
US20150148953A1 (en) | 2013-11-22 | 2015-05-28 | Brain Corporation | Discrepancy detection apparatus and methods for machine learning |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220067973A (ko) | 2020-11-18 | 2022-05-25 | 지니주식회사 | 인공지능 로봇 교육 장치 및 그 제어 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR102168003B1 (ko) | 2020-10-20 |
KR20180137026A (ko) | 2018-12-26 |
JP2021175592A (ja) | 2021-11-04 |
WO2017201023A1 (en) | 2017-11-23 |
KR20190054189A (ko) | 2019-05-21 |
JP2020128003A (ja) | 2020-08-27 |
US20170334066A1 (en) | 2017-11-23 |
JP2024019422A (ja) | 2024-02-09 |
US20220063089A1 (en) | 2022-03-03 |
US11173599B2 (en) | 2021-11-16 |
JP2019516568A (ja) | 2019-06-20 |
JP7399912B2 (ja) | 2023-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101980603B1 (ko) | 오브젝트(들)를 캡처하는 이미지(들)에 기초하는 그리고 환경에서의 미래 로봇 움직임에 대한 파라미터(들)에 기초하여 로봇 환경에서의 오브젝트(들)의 모션(들)을 예측하는 것과 관련된 머신 학습 방법들 및 장치 | |
EP3402633B1 (en) | 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 | |
EP3621773B1 (en) | Viewpoint invariant visual servoing of robot end effector using recurrent neural network | |
US11045949B2 (en) | Deep machine learning methods and apparatus for robotic grasping | |
US11325252B2 (en) | Action prediction networks for robotic grasping | |
KR102023588B1 (ko) | 로봇 파지용 심층 기계 학습 방법 및 장치 | |
US11823048B1 (en) | Generating simulated training examples for training of machine learning model used for robot control | |
CN112757284B (zh) | 机器人控制装置、方法和存储介质 | |
CN112512755A (zh) | 使用从2.5d视觉数据预测的域不变3d表示的机器人操纵 | |
US20240118667A1 (en) | Mitigating reality gap through training a simulation-to-real model using a vision-based robot task model | |
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 | |
US20240094736A1 (en) | Robot navigation in dependence on gesture(s) of human(s) in environment with robot | |
Hong et al. | Sim-to-Real: Autonomous Robotic Control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |