IP Library Granted Patent US 11,688,136
Granted Patent B2
US 11,688,136 · App. 17/249,441 · Granted Jun 27, 2023

3D object model reconstruction from 2D images

Inventors: Georgios Papandreou (London, GB); Iason Kokkinos (London, GB)
Assignee: SNAP INC.
G06T17/20G06N20/00G06T2210/32G06T2210/56G06T2219/2016
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,688,136
App. No.
17/249,441
Granted
Jun 27, 2023
Kind
B2
Abstract

Systems and methods for reconstructing 3D models of human bodies from 2D images that counts for perspective and/or distortion effects are provided. The systems and methods include reconstructing a three-dimensional model of an object in a three-dimensional scene from a two-dimensional image comprising an image of the object. The systems and methods include determining an absolute depth of a key point of the object in the image; determining, using the absolute depth of the key point, a three-dimensional position of the key point in the three-dimensional scene; generating, using a neural network, a three-dimensional representation of the object, the three-dimensional representation comprising mesh nodes defined in a coordinate system relative to the key point; and positioning the three-dimensional representation of the object in the scene based on the position of the key point by applying a position dependent rotation to the three-dimensional object.

Claims (64)

1. A computer-implemented method of reconstructing a three-dimensional model of an object in a three-dimensional scene from a two-dimensional image comprising an image of the object, the method comprising:

determining a size of the object in an image plane of a camera used to capture the image;

converting the size of the object in the image plane into a pixel size based on a camera sampling density of the camera used to capture the image;

determining, from the two-dimensional image, a depth of a key point of the object in the image based on the size of the pixel size of the object using similar triangles;

determining, using the depth of the key point, a three-dimensional position of the key point in the three-dimensional scene;

generating, using a neural network, a three-dimensional representation of the object, the three-dimensional representation comprising a plurality of mesh nodes defined in a coordinate system relative to the key point; and

positioning the three-dimensional representation of the object in the three-dimensional scene based at least in part on the three-dimensional position of the key point,

wherein positioning the three-dimensional representation of the object comprises applying a position dependent rotation to the three-dimensional representation of the object.

2. The method of claim 1 , wherein determining the three-dimensional position of the key point in the three-dimensional scene comprises:

determining, using the same or another neural network, an intersection of a ray connecting a camera that captured the two-dimensional image to the key point of the object with an image plane of the two-dimensional image; and

determining the three-dimensional position of the key point of the object in the coordinate system of the three-dimensional scene based on a world depth and the intersection.

3. The method of claim 1 , wherein determining the three-dimensional position of the key point in the three-dimensional scene is further based on a focal length of a camera that captured the two-dimensional image.

4. The method of claim 1 , wherein the position dependent rotation is a rotation by an angle dependent on a ratio of a two components of the three-dimensional position of the key point, wherein one of the two components is a depth component.

5. The method of claim 1 , further comprising:

projecting the positioned three-dimensional representation into a two-dimensional image plane to generate a projected image of the object;

comparing locations of points in the projected image to the locations of corresponding points in the two-dimensional image; and

updating parameters of the neural network based on the comparing.

6. The method of claim 5 , wherein projecting the positioned three-dimensional representation into a two-dimensional image plane is based at least in part on absolute depth of the key point and depths of the mesh nodes defined by the three-dimensional representation.

7. The method of claim 1 , further comprising training a model using an absolute depth that is a function of the pixel size, the absolute depth being used to determine the depth of the key point.

8. The method of claim 1 , further comprising:

projecting the three-dimensional representation of the object into the image plane to generate a re-projected image;

comparing the re-projected image with the image captured by the camera; and

determining one or more updates to the neural network based on the comparing of the re-projected image with the image captured by the camera.

9. The method of claim 8 , further comprising:

computing a loss based on a position of a particular point of the three-dimensional representation of the object in the re-projected image with a corresponding point in the image captured by the camera.

10. A system comprising:

one or more processors configured to perform operations comprising:

determining a size of an object in an image plane of a camera used to capture an image depicting the object;

converting the size of the object in the image plane into a pixel size based on a camera sampling density of the camera used to capture the image;

determining, from the image, a depth of a key point of the object in the image based on the size of the pixel size of the object using similar triangles;

determining, using the depth of the key point, a three-dimensional position of the key point;

generating, using a neural network, a three-dimensional representation of the object, the three-dimensional representation comprising a plurality of mesh nodes defined in a coordinate system relative to the key point; and

positioning the three-dimensional representation of the object based at least in part on the three-dimensional position of the key point,

wherein positioning the three-dimensional representation of the object comprises applying a position dependent rotation to the three-dimensional representation of the object.

11. The system of claim 10 , wherein determining the three-dimensional position of the key point comprises:

determining, using the same or another neural network, an intersection of a ray connecting a camera that captured the two-dimensional image to the key point of the object with an image plane of the two-dimensional image; and

determining the three-dimensional position of the key point of the object based on a world depth and the intersection.

12. The system of claim 10 , wherein determining the three-dimensional position of the key point is further based on a focal length of a camera that captured the two-dimensional image.

13. The system of claim 10 , wherein the position dependent rotation is a rotation by an angle dependent on a ratio of a two components of the three-dimensional position of the key point, wherein one of the two components is a depth component.

14. The system of claim 10 , the operations further comprising:

projecting the positioned three-dimensional representation into a two-dimensional image plane to generate a projected image of the object;

comparing locations of points in the projected image to the locations of corresponding points in the two-dimensional image; and

updating parameters of the neural network based on the comparing.

15. The system of claim 14 , wherein projecting the positioned three-dimensional representation into a two-dimensional image plane is based at least in part on absolute depth of the key point and depths of the mesh nodes defined by the three-dimensional representation.

16. The system of claim 10 , the operations further comprising training a model using an absolute depth that is a function of the pixel size, the absolute depth being used to determine the depth of the key point.

17. The system of claim 10 , the operations further comprising:

projecting the three-dimensional representation of the object into the image plane to generate a re-projected image;

comparing the re-projected image with the image captured by the camera; and

determining one or more updates to the neural network based on the comparing of the re-projected image with the image captured by the camera.

18. The system of claim 17 , the operations further comprising:

computing a loss based on a position of a particular point of the three-dimensional representation of the object in the re-projected image with a corresponding point in the image captured by the camera.

19. A non-transitory computer readable medium comprising computer readable instructions that, when executed by one or more processors, configure the one or more processors to perform operations comprising:

one or more processors configured to perform operations comprising:

determining a size of an object in an image plane of a camera used to capture an image depicting the object;

converting the size of the object in the image plane into a pixel size based on a camera sampling density of the camera used to capture the image;

determining, from the image, a depth of a key point of the object in the image based on the size of the pixel size of the object using similar triangles;

determining, using the depth of the key point, a three-dimensional position of the key point;

generating, using a neural network, a three-dimensional representation of the object, the three-dimensional representation comprising a plurality of mesh nodes defined in a coordinate system relative to the key point; and

positioning the three-dimensional representation of the object based at least in part on the three-dimensional position of the key point,

wherein positioning the three-dimensional representation of the object comprises applying a position dependent rotation to the three-dimensional representation of the object.

20. The non-transitory computer readable medium of claim 19 , wherein determining the three-dimensional position of the key point comprises:

determining, using the same or another neural network, an intersection of a ray connecting a camera that captured the two-dimensional image to the key point of the object with an image plane of the two-dimensional image; and

determining the three-dimensional position of the key point of the object based on a world depth and the intersection.

21. The non-transitory computer readable medium of claim 19 , wherein determining the three-dimensional position of the key point is further based on a focal length of a camera that captured the two-dimensional image.

Assignments (5)
CHANGE OF NAME Recorded Apr 25, 2023
From: ARIEL AI, INC.
To: ARIEL AI, LLC
Reel/Frame 063433/0452 →
MERGER Recorded Apr 25, 2023
From: ARIEL AI, LLC
To: SNAP INTERMEDIATE, INC.
Reel/Frame 063433/0567 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2023
From: SNAP INTERMEDIATE INC.
To: SNAP INC.
Reel/Frame 063433/0666 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2021
From: PAPANDREOU, GEORGIOS; KOKKINOS, IASON
To: ARIEL AI LTD
Reel/Frame 056570/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2021
From: ARIEL AI LTD
To: ARIEL AI, INC.
Reel/Frame 056570/0818 →
Priority Claims (1)
GB 2009515 · Jun 22, 2020 · national
Continuity (1)
Related Publication 20210398351A1 · Dec 23, 2021
Cited By (2)
US 12,524,963 US 12,725,351