IP Library Granted Patent US 11,468,285
Granted Patent B1
US 11,468,285 · App. 15/606,875 · Granted Oct 11, 2022

Analysis of objects of interest in sensor data using deep neural networks

Inventors: Yichuan Tang (Sunnyvale, CA); Nitish Srivastava (San Francisco, CA); Ruslan Salakhutdinov (Pittsburgh, PA)
Assignee: Apple Inc.
G06N3/0445G01S17/89G06F16/434G06T7/20H04N5/144B60W30/08B60W2420/42B60W2420/52
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,468,285
App. No.
15/606,875
Granted
Oct 11, 2022
Kind
B1
Abstract

Sensor data captured by one or more sensors may be received at an analysis system. A neural network may be used to detect an object in the sensor data. A plurality of polygons surrounding the object may be generated in one or more subsets of the sensor data. A prediction of a future position of the object may be generated based at least in part on the polygons. One or more commands may be provided to a control system based on the prediction of the future position.

Claims (78)

1. A system, comprising:

one or more processors and an associated memory, the memory storing a neural network, the neural network configured to:

receive sensor data captured by one or more sensors coupled to a movable device, the sensor data comprising one or more image frames;

detect an object in the one or more image frames, including to:

determine a probability that a portion of the object is positioned at a location in one of the one or more image frames; and

produce a post-processed image using one or more transformations of the image frame that removes one or more areas of the image frame that does not include the object;

generate a plurality of polygons surrounding the object in individual ones of the one or more image frames;

generate a prediction of a future position of the object based at least on the plurality of polygons;

generate, based at least on the prediction of the future position of the object, a plurality of movement plans, wherein a movement plan of the plurality of movement plans comprises a sequence of movements to move the movable device from a first position to a second position relative to the object;

for each of the plurality of movement plans, determine respective cost functions for individual movements of the sequence of movements; and

select a movement plan of the plurality of movement plans based on the respective cost functions for respective ones of the plurality of movement plans; and

wherein the one or more processors are further configured to provide one or more commands to a control system based at least on the selected movement plan.

2. The system as recited in claim 1 , wherein to detect the object in an image frame of the one or more image frames, the neural network is configured to:

generate a heat map of an image frame, the heat map comprising a plurality of pixels, wherein individual ones of the pixels indicate a respective value representing a respective probability that at least a portion of the object is located at the pixel; and

gate a post-processed image and the heat map to remove the one or more areas of the post-processed image that do not contain the object, producing a gated image, wherein the post-processed image is obtained by performing the one or more transformations on the image frame.

3. The system as recited in claim 2 , wherein to generate the polygons surrounding the object, the neural network is configured to generate a centroid and a set of vertices of a convex polygon from the gated image using a recurrent portion of the neural network.

4. The system as recited in claim 1 , wherein to generate the prediction of the future position of the object, the neural network is configured to:

obtain respective centroids and sets of vertices for individual ones of the plurality of polygons; and

determine a position of a future polygon in a future image frame, based at least in part on the respective centroids and sets of vertices.

5. The system as recited in claim 1 , wherein:

the one or more sensors include a video camera,

the control system comprises a controller for the video camera, and

the one or more commands instruct the video camera to move or zoom to focus attention on the object.

6. The system as recited in claim 1 , wherein:

the one or more sensors are configured to capture sensor data of an environment of a vehicle,

the control system comprises a motion control subsystem of the vehicle, and

the one or more commands comprise motion directives to the motion control subsystem to control movements of the vehicle.

7. The system as recited in claim 6 , wherein the one or more sensors include a Light Detection and Ranging (LIDAR) device.

8. The system as recited in claim 1 , wherein the neural network is configured to:

determine, using an object-of-interest database, an object type of the object;

monitor portions of the image frames in respective polygons using an object analysis technique, wherein the object analysis technique is selected based at least in part on the object type; and

detect a state change of the object based at least in part on monitoring of the portions; and

wherein the one or more commands are generated based at least in part on the detection of the state change.

9. The system as recited in claim 1 , wherein the respective cost functions are determined based on a risk of performing the individual movements.

10. The system as recited in claim 1 , wherein the neural network is configured to:

generate predictions of respective future movements of a plurality of objects detected in the image frames;

wherein the movement plan to move the movable device from the first position to the second position is determined further based at least on the predictions of respective future movements.

11. A method, comprising:

receiving sensor data captured by one or more sensors, the sensor data comprising one or more image frames;

using a neural network:

detecting an object in the one or more image frames, the detecting including:

determining a probability that a portion of the object is positioned at a location in one of the one or more image frames; and

producing a post-processed image using one or more transformations of the image frame that removes one or more areas of the image frame that does not include the object;

generating a plurality of polygons surrounding the object in individual ones of the image frames;

generating a prediction of a future position of the object based at least on the plurality of polygons;

generating, based at least on the prediction of the future position of the object, a plurality of movement plans, wherein a movement plan of the plurality of movement plans comprises a sequence of movements to move a movable device from a first position to a second position relative to the object;

for each of the plurality of movement plans, determining respective cost functions for individual movements of the sequence of movements; and

selecting a movement plan of the plurality of movement plans based on the respective cost functions for respective ones of the plurality of movement plans; and

providing one or more commands to a control system based at least on the selected movement plan.

12. The method as recited in claim 11 , wherein detecting the object in an image frame of the one or more image frames comprises:

generating a heat map of the image frame, the heat map comprising a plurality of pixels, wherein individual ones of the pixels indicate a respective value representing a respective probability that at least a portion of the object is located at the pixel; and

gating a post-processed image and the heat map to remove the one or more areas of the post-processed image that do not contain the object, producing a gated image, wherein the post-processed image is obtained from the one or more image frames using the one or more transformation operations.

13. The method as recited in claim 11 , wherein generating the prediction of a future position of the object comprises:

obtaining respective centroid locations and sets of vertices for individual ones of the plurality of polygons; and

determining a position of a future polygon in a future image frame, based at least in part on the centroid locations and sets of vertices of the plurality of polygons.

14. The method as recited in claim 11 , wherein the one or more sensors are located on a vehicle and configured to capture sensor data of an environment of the vehicle, and wherein providing one or more commands to a control system comprises providing one or more motion directives to a motion control subsystem controlling movements of the vehicle.

15. The method as recited in claim 14 , wherein receiving sensor data captured by one or more sensors comprises receiving sensor data from a Light Detection and Ranging (LIDAR) device of the vehicle.

16. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors cause the one or more processors to:

receive sensor data captured by one or more sensors;

use a neural network to:

detect an object in the sensor data, including to:

determine a probability that a portion of the object is positioned at a location in one of the one or more image frames; and

produce a post-processed image using one or more transformations of the image frame that removes one or more areas of the image frame that does not include the object;

generate a plurality of polygons surrounding the object in one or more subsets of the sensor data;

generate a prediction of a future position of the object based at least on the plurality of polygons;

generate, based at least on the prediction of the future position of the object, a plurality of movement plans, wherein a movement plan of the plurality of movement plans comprises a sequence of movements to move a movable device from a first position to a second position relative to the object;

for each of the plurality of movement plans, determine respective cost functions for individual movements of the sequence of movements; and

select a movement plan of the plurality of movement plans based on the respective cost functions for respective ones of the plurality of movement plans; and

provide one or more commands to a control system based at least on the selected movement plan.

17. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the one or more sensors are located on a vehicle and configured to capture sensor data of an environment of the vehicle, and wherein the one or more commands comprise one or more motion directives to a motion control subsystem of the vehicle.

18. The non-transitory computer-accessible storage medium as recited in claim 17 , wherein to receive sensor data captured by one or more sensors, the program instructions when executed on the one or more processors cause the one or more processors to receive sensor data from a Light Detection and Ranging (LIDAR) device of the vehicle.

19. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the program instructions when executed on the one or more processors cause the one or more processors to:

determine a type of the object indicated in an object-of-interest database;

monitor portions of the one or more subsets of the sensor data in the respective polygons using an object analysis technique selected based at least in part on the object type;

detect a state change of the object based at least in part on monitoring the portions; and

wherein the one or more commands are generated based at least in part on the detection of the state change.

20. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the program instructions when executed on the one or more processors cause the one or more processors to:

generate predictions of respective future movements of a plurality of objects detected in the sensor data, wherein the movement plan to move the movable device from the first position to the second position is determined further based at least on the predictions of respective future movements.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2017
From: TANG, YICHUAN; SRIVASTAVA, NITISH; SALAKHUTDINOV, RUSLAN
To: APPLE INC.
Reel/Frame 042575/0352 →
Continuity (4)
Provisional Application 62343071 · May 30, 2016
Provisional Application 62343082 · May 30, 2016
Provisional Application 62343080 · May 30, 2016
Provisional Application 62343077 · May 30, 2016
Cited By (12)
US 12,198,396 US 12,217,323 US 12,275,437 US 12,311,981 US 12,325,434 US 12,450,768 US 12,494,036 US 12,585,281 US 12,591,980 US 12,613,584 US 12,676,644 US 12,718,475