IP Library Granted Patent US 10,417,781
Granted Patent B1
US 10,417,781 · App. 15/396,105 · Granted Sep 17, 2019

Automated data capture

Inventors: Kurt Konolige (Menlo Park, CA); Nareshkumar Rajkumar (Cupertino, CA); Stefan Hinterstoisser (Munich, DE); Paul Wohlhart (Sunnyvale, CA)
Assignee: X Development LLC
G06T7/73G06F16/5854G06K9/4671G06K9/52G06K9/6256G06K9/66G06N3/08G06T7/60G06T2200/04G06T2207/30244G06T2219/004
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 10,417,781
App. No.
15/396,105
Granted
Sep 17, 2019
Kind
B1
Abstract

Methods for annotating objects within image frames are disclosed. Information is obtained that represents a camera pose relative to a scene. The camera pose includes a position and a location of the camera relative to the scene. Data is obtained that represents multiple images, including a first image and a plurality of other images, being captured from different angles by the camera relative to the scene. A 3D pose of the object of interest is identified with respect to the camera pose in at least the first image. A 3D bounding region for the object of interest in the first image is defined, which indicates a volume that includes the object of interest. A location and orientation of the object of interest is determined in the other images based on the defined 3D bounding region of the object of interest and the camera pose in the other images.

Claims (48)

1. A computer-implemented method comprising:

obtaining information representing a pose of a camera relative to a scene, the pose of the camera including a position and a location of the camera relative to the scene;

obtaining data representing multiple images of a scene that includes an object of interest, the multiple images being captured from different angles by the camera relative to the scene, the multiple images including a first image and a plurality of other images;

identifying a three-dimensional (3D) pose of the object of interest with respect to the pose of the camera in at least the first image;

defining a 3D bounding region for the object of interest in the first image, the 3D bounding region indicating a volume that includes the object of interest; and

determining a location and orientation of the object of interest in the other images by using the defined 3D bounding region of the object of interest and the pose of the camera for the other images to project the defined 3D bounding region onto a two-dimensional (2D) region of each of the other images.

2. The computer-implemented method of claim 1 , further comprising:

annotating each of the other images to indicate (i) a location in the image where the object of interest appears and (ii) an orientation that the object appears in the image; and

storing the annotated images.

3. The computer-implemented method of claim 2 , further comprising training a machine learning model using the annotated images.

4. The computer-implemented method of claim 3 , wherein training the machine learning model comprises training a neural network to recognize objects in image data using the annotated images.

5. The computer-implemented method of claim 1 , wherein identifying a 3D pose of the object of interest with respect to the pose of the camera in at least the first image comprises using a LINEMOD method.

6. The computer-implemented method of claim 1 , wherein determining the location and orientation of the object of interest in the other images includes applying a camera pose estimation algorithm to the other images.

7. The computer-implemented method of claim 6 , wherein the camera pose estimation algorithm is a visual odometry algorithm.

8. The computer-implemented method of claim 1 , further comprising:

determining, for a particular image of the multiple images, an occlusion score for the object of interest that indicates an amount of the object of interest that is occluded in the particular image; and

storing data that associates the occlusion score for the object of interest with the particular image.

9. The computer-implemented method of claim 8 , further comprising:

obtaining a three-dimensional representation of the scene;

determining a camera position that was used to acquire the particular image; and

determining, based on the camera position and the three-dimensional representation of the scene, that a second object occludes a portion of the object of interest from the perspective of the determined camera position but does not fully occlude the object of interest;

wherein determining the occlusion score comprises determining the occlusion score based on an amount of the object of interest that is occluded by the second object.

10. The computer implemented method of claim 8 , further comprising training a neural network using the particular image and the occlusion score.

11. A system comprising:

one or more computers; and

one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

obtaining information representing a pose of a camera relative to a scene, the pose of the camera including a position and a location of the camera relative to the scene;

obtaining data representing multiple images of a scene that includes an object of interest, the multiple images being captured from different angles by the camera relative to the scene, the multiple images including a first image and a plurality of other images;

identifying a three-dimensional (3D) pose of the object of interest with respect to the pose of the camera in at least the first image;

defining a 3D bounding region for the object of interest in the first image, the 3D bounding region indicating a volume that includes the object of interest; and

determining a location and orientation of the object of interest in the other images by using the defined 3D bounding region of the object of interest and the pose of the camera for the other images to project the defined 3D bounding region onto a two-dimensional (2D) region of each of the other images.

12. The system of claim 11 , wherein the operations further comprise:

annotating each of the other images to indicate (i) a location in the image where the object of interest appears and (ii) an orientation that the object appears in the image; and storing the annotated images.

13. The system of claim 12 , further comprising training a machine learning model using the annotated images.

14. The system of claim 13 , wherein training the machine learning model comprises training a neural network to recognize objects in image data using the annotated images.

15. One or more non-transitory computer-readable storage mediums comprising instructions stored thereon that are executable by a processing device and upon such execution cause the processing device to perform operations comprising:

obtaining information representing a pose of a camera relative to a scene, the pose of the camera including a position and a location of the camera relative to the scene;

obtaining data representing multiple images of a scene that includes an object of interest, the multiple images being captured from different angles by the camera relative to the scene, the multiple images including a first image and a plurality of other images;

identifying a three-dimensional (3D) pose of the object of interest with respect to the pose of the camera in at least the first image;

defining a 3D bounding region for the object of interest in the first image, the 3D bounding region indicating a volume that includes the object of interest; and

determining a location and orientation of the object of interest in the other images by using the defined 3D bounding region of the object of interest and the pose of the camera for the other images to project the defined 3D bounding region onto a two-dimensional (2D) region of each of the other images.

16. The computer-implemented method of claim 1 , further comprising:

determining, for a particular image of the multiple images, an occlusion score for the object of interest that indicates an amount of the object of interest that is occluded in the particular image; and

training a neural network including providing the occlusion score for the object of interest to the neural network during training.

17. The computer-implemented method of claim 16 , wherein the particular image has multiple objects of interest at least partially visible in the particular image;

wherein the method comprises determining an occlusion score for each of the objects of interest; and

wherein training the neural network comprises providing the neural network with the occlusion score for each object of interest during training.

18. The computer-implemented method of claim 1 , further comprising, for each particular image of the other images, annotating the particular image to indicate a region representing a 2D projection of the 3D bounding region onto the particular image, wherein the 2D projection is determined according to the pose of the camera when the particular image was captured.

Assignments (4)
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 21, 2023
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 064658/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2023
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 064067/0043 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2017
From: KONOLIGE, KURT; RAJKUMAR, NARESHKUMAR; HINTERSTOISSER, STEFAN; WOHLHART, PAUL
To: X DEVELOPMENT LLC
Reel/Frame 041358/0772 →
Cited By (7)
US 12,223,595 US 12,248,217 US 12,293,563 US 12,380,641 US 12,384,052 US 12,399,916 US 12,441,003