IP Library Granted Patent US 11,440,196
Granted Patent B1
US 11,440,196 · App. 16/717,896 · Granted Sep 13, 2022

Object association using machine learning models

Inventors: Sean Kirmani (Mountain View, CA); Guy Satat (Sunnyvale, CA); Michael Quinlan (Sunnyvale, CA)
Assignee: X Development LLC
B25J9/1697B25J9/161G06N3/04G06N20/20G06T7/277G06T7/70
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,440,196
App. No.
16/717,896
Granted
Sep 13, 2022
Kind
B1
Abstract

A method includes receiving sensor data representing a first object in an environment and generating, based on the sensor data, a first state vector that represents physical properties of the first object. The method also includes generating, by a first machine learning model and based on the first state vector and a second state vector that represents physical properties of a second object previously observed in the environment, a metric indicating a likelihood that the first object is the same as the second object. The method further includes determining, based on the metric, to update the second state vector and updating, by a second machine learning model configured to maintain the second state vector over time and based on the first state vector, the second state vector to incorporate into the second state vector information concerning physical properties of the second object as represented in the first state vector.

Claims (56)

1. A method comprising:

receiving, from a sensor on a robotic device, sensor data representing a first object in an environment;

generating, based on the sensor data, a first state vector that represents physical properties of the first object;

generating, by a first machine learning (ML) model and based on (i) the first state vector and (ii) a second state vector that represents physical properties of a second object previously observed in the environment by the sensor, a metric indicating a likelihood that the first object is the same as the second object;

determining, based on the metric, to update the second state vector; and

updating, by a second ML model configured to maintain the second state vector over time and based on the first state vector, the second state vector to incorporate into the second state vector information concerning physical properties of the second object as represented in the first state vector.

2. The method of claim 1 , wherein determining to update the second state vector comprises:

determining, based on the metric, that the likelihood exceeds a threshold value; and

based on determining that the likelihood exceeds a threshold value, determining to update the second state vector.

3. The method of claim 1 , wherein generating the metric indicating the likelihood that the first object is the same as the second object comprises:

generating, for each respective object of a plurality of objects previously observed in the environment by the sensor, a respective metric indicating a likelihood that the first object is the same as the respective object, wherein the respective metric is generated by the first ML model based on (i) the first state vector and (ii) a respective state vector that represents physical properties of the respective object.

4. The method of claim 3 , wherein determining to update the second state vector comprises:

determining that the second object is associated with a highest likelihood of being the same as the first object based on the respective metric of each respective object of the plurality of objects previously observed in the environment;

based on determining that the second object is associated with the highest likelihood of being the same as the first object, determining that the respective metric of the second object exceeds a threshold value; and

based on determining that the respective metric of the second object exceeds the threshold value, selecting the second ML model for updating the second state vector.

5. The method of claim 4 , wherein the sensor data additionally represents a third object in the environment, wherein the third object is different from the first object, and wherein selecting of the second ML model excludes the second object from being a candidate for comparison to the third object by the first ML model to determine a likelihood that the third object is the same as the second object.

6. The method of claim 3 , wherein the plurality of objects previously observed in the environment by the sensor comprises every object for which the robotic device stores a corresponding ML model that maintains a corresponding state vector over time.

7. The method of claim 3 , wherein the plurality of objects previously observed in the environment by the sensor comprises n objects associated with corresponding n state vectors that are nearest to the first state vector.

8. The method of claim 1 , further comprising:

receiving, from the sensor, additional sensor data representing a third object in the environment;

generating, based on the additional sensor data, a third state vector that represents physical properties of the third object;

generating, for each respective object of a plurality of objects previously observed in the environment by the sensor, a respective metric indicating a likelihood that the third object is the same as the respective object, wherein the respective metric is generated by the first ML model based on (i) the third state vector and (ii) a respective state vector that represents physical properties of the respective object;

determining that the respective metric of each respective object of the plurality of objects does not exceed a threshold value;

based on determining that the respective metric of each respective object of the plurality of objects does not exceed a threshold value, determining that the third object is different from each respective object; and

based on determining that the third object is different from each respective object, initializing a third ML model to maintain the third state vector over time.

9. The method of claim 1 , wherein the second ML model comprises an instance of a type of ML model that corresponds to a class of the second object.

10. The method of claim 1 , wherein the second ML model comprises a long short term memory neural network.

11. The method of claim 1 , wherein the first state vector comprises a plurality of values indicating one or more of: (i) a position of the first object within the environment, (ii) a size of the first object, (iii) a classification of the first object, (iv) an embedding representing the first object, (v) a time at which the first state vector was last updated, (vi) a distance between the sensor and the first object, (vii) a confidence with which the first state vector represents the physical properties of the first object, (viii) an indication of whether the first object is within a current field of view of the sensor, (ix) a weight of the first object, or (x) a time at which the first object was last observed by the sensor.

12. The method of claim 1 , wherein the first ML model and the second ML model are trained using a loss function that interrelates outputs of the first ML model and the second ML model and is configured to maximize a confidence of the first ML model when the first ML model correctly determines, based on a respective state vector maintained by the second ML model and a training state vector, whether the respective state vector and the training state vector represent two different objects or the same object.

13. The method of claim 1 , wherein at least one of (i) the metric or (ii) the second state vector as updated is used to select parameters of a Kalman filter used by an object tracker of the robotic device.

14. The method of claim 1 , wherein the sensor data representing the first object is acquired after the second object (i) has been observed by the sensor and (ii) has left a field of view of the sensor.

15. The method of claim 1 , further comprising:

determining, based on the metric, that the likelihood exceeds a threshold value; and

based on determining that the likelihood exceeds the threshold value, determining one or more operations for the robotic device to interact with the first object.

16. A system comprising:

a sensor configured to generate sensor data representing a first object in an environment;

a state vector generator communicatively connected to the sensor and configured to generate, based on the sensor data, a first state vector that represents physical properties of the object;

a first machine learning (ML) model communicatively connected to the state vector generator and configured to generate, based on (i) the first state vector and (ii) a second state vector that represents physical properties of a second object previously observed in the environment by the sensor, a metric indicating a likelihood that the first object is the same as the second object;

processing circuitry configured to determine, based on the metric, to update the second state vector; and

a second ML model communicatively connected to the processing circuitry and configured to (i) maintain the second state vector over time and (ii) update, based on the first state vector, the second state vector to incorporate into the second state vector information concerning physical properties of the second object as represented in the first state vector.

17. The system of claim 16 , wherein the first ML model is configured to generate the metric indicating the likelihood that the first object is the same as the second object by:

generating, for each respective object of a plurality of objects previously observed in the environment by the sensor, a respective metric indicating a likelihood that the first object is the same as the respective object, wherein the respective metric is generated by the first ML model based on (i) the first state vector and (ii) a respective state vector that represents physical properties of the respective object.

18. The system of claim 17 , wherein the processing circuitry is configured to determine to update the second state vector by:

determining that the second object is associated with a highest likelihood of being the same as the first object based on the respective metric of each respective object of the plurality of objects previously observed in the environment;

based on determining that the second object is associated with the highest likelihood of being the same as the first object, determining that the respective metric of the second object exceeds a threshold value; and

based on determining that the respective metric of the second object exceeds the threshold value, selecting the second ML model for updating the second state vector.

19. The system of claim 16 , wherein the sensor is further configured to additional sensor data representing a third object in the environment, wherein the state vector generator is further configured to generate, based on the additional sensor data, a third state vector that represents physical properties of the third object, wherein the first ML model is further configured to generate, for each respective object of a plurality of objects previously observed in the environment by the sensor, a respective metric indicating a likelihood that the third object is the same as the respective object, wherein the first ML model is configured to generate the respective metric based on (i) the third state vector and (ii) a respective state vector that represents physical properties of the respective object, wherein the processing circuitry is further configured to:

determine that the respective metric of each respective object of the plurality of objects does not exceed a threshold value;

based on determining that the respective metric of each respective object of the plurality of objects does not exceed a threshold value, determining that the third object is different from each respective object; and

based on determining that the third object is different from each respective object, initializing a third ML model to maintain the third state vector over time.

20. A non-transitory computer readable storage medium having stored thereon instructions that, when executed by a computing device, cause the computing device to perform operations comprising:

receiving, from a sensor, sensor data representing a first object in an environment;

generating, based on the sensor data, a first state vector that represents physical properties of the object;

generating, by a first machine learning (ML) model and based on (i) the first state vector and (ii) a second state vector that represents physical properties of a second object previously observed in the environment by the sensor, a metric indicating a likelihood that the first object is the same as the second object;

determining, based on the metric, to update the second state vector; and

updating, by a second ML model configured to maintain the second state vector over time and based on the first state vector, the second state vector to incorporate into the second state vector information concerning physical properties of the second object as represented in the first state vector.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: GOOGLE LLC
To: GDM HOLDING LLC
Reel/Frame 071109/0342 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2023
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 064532/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2019
From: KIRMANI, SEAN; SATAT, GUY; QUINLAN, MICHAEL
To: X DEVELOPMENT LLC
Reel/Frame 051310/0033 →
Cited By (2)
US 12,654,330 US 12,657,351