IP Library › Granted Patent US 11,710,248
Granted Patent B2
US 11,710,248 · App. 17/813,887 · Granted Jul 25, 2023

Photometric-based 3D object modeling

Inventor: Oliver Woodford (Santa Monica, CA)
Assignee: Snap Inc.
G06T7/55G06T5/006G06T5/50G06T2200/08G06T2207/10028
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,710,248
App. No.
17/813,887
Granted
Jul 25, 2023
Kind
B2
Abstract

Aspects of the present disclosure involve a system and a method for performing operations comprising: accessing a source image depicting a target structure; accessing one or more target images depicting at least a portion of the target structure; computing correspondence between a first set of pixels in the source image of a first portion of the target structure and a second set of pixels in the one or more target images of the first portion of the target structure, the correspondence being computed as a function of camera parameters that vary between the source image and the one or more target images; and generating a three-dimensional (3D) model of the target structure based on the correspondence between the first set of pixels in the source image and the second set of pixels in the one or more target images based on a joint optimization of target structure and camera parameters.

Claims (66)

1. A method comprising:

accessing a source image depicting a target structure;

accessing one or more target images depicting at least a portion of the target structure;

computing correspondence between a first set of pixels in the source image of a first portion of the target structure and a second set of pixels in the one or more target images of the first portion of the target structure by:

projecting a first line from the first set of pixels to three-dimensional (3D) coordinates of the first portion using a first set of camera parameters associated with the source image;

projecting a second line from the 3D coordinates to the second set of pixels using a second set of camera parameters associated with the one or more target images; and

computing a difference between each pixel in the first and second sets of pixels; and

generating a 3D model of the target structure based on the correspondence.

2. The method of claim 1 , wherein the correspondence is further computed as a function of one or more camera parameters that vary between the source image and the one or more target images, and further comprising:

generating the 3D model based on a joint optimization of the target structure and the one or more camera parameters, the joint optimization comprising solving an optimization problem that is based on a cost function that relates pixels of a portion of a structure in the source image to pixels in a target image.

3. The method of claim 1 , further comprising:

identifying the second set of pixels as a function of the second set of camera parameters and the 3D coordinates; and

reducing photometric error based on the correspondence to generate the 3D model.

4. The method of claim 1 , further comprising:

un-distorting the first set of pixels based on the first set of camera parameters to project the first line; and

applying distortion to the second line to project the second line to the second set of pixels.

5. The method of claim 1 , further comprising normalizing the first and second sets of pixels.

6. The method of claim 1 , further comprising computing a sum of squares of computed differences between each pixel in the first and second sets of pixels.

7. The method of claim 1 , further comprising:

computing a pixel to 3D coordinate correspondence between pixels in the source image and a 3D point on the target structure; and

computing a 3D coordinate to pixel correspondence between the 3D point on the target structure and a pixel in the one or more target images.

8. The method of claim 1 , wherein the first set of camera parameters include at least one of rotation, translation, sensor, lens un-distortion, or lens distortion parameters.

9. The method of claim 1 , further comprising:

defining an optimization problem comprising a plurality of structure parameters and one or more camera parameters, the optimization problem being lighting invariant and surface normal invariant.

10. The method of claim 9 , wherein solving the optimization problem comprises decoupling camera parameter updates from structure parameter updates to reduce an amount of data that is stored.

11. The method of claim 1 , wherein the source image and the one or more target images are received in real-time in a camera feed from a camera on a client device, further comprising:

accessing an augmented reality content item comprising an augmented reality effect; and

overlaying the augmented reality content item onto the camera feed based on the 3D model to provide an augmented reality experience in which the augmented reality content item is displayed as part of the camera feed.

12. The method of claim 1 , wherein the source image and the one or more target images are previously captured and processed offline on a server.

13. The method of claim 1 , further comprising:

matching a resolution of the source image to a resolution of the one or more target images.

14. The method of claim 13 , further comprising:

identifying a first collection of pixels in the source image corresponding to the portion of the target structure;

identifying a second collection of pixels in the one or more target images corresponding to the portion of the target structure;

computing a first distance between each pixel in the first collection of pixels and a second distance between each pixel in the second collection of pixels; and

selecting a sampling parameter based on a difference between the first and second distances.

15. The method of claim 14 , further comprising up-sampling or down-sampling the one or more target images based on the sampling parameter.

16. The method of claim 1 , wherein accessing the source image comprises:

generating a 3D coordinate frame of the target structure;

computing visibility of the 3D coordinate frame for a plurality of images as a depth map; and

selecting one of the plurality of images as the source image based on the computed visibility.

17. The method of claim 16 , further comprising:

computing a grid of pixels having specified spacing corresponding to the 3D coordinate frame;

sampling the plurality of images associated with the grid of pixels to generate a matrix, each column of the matrix corresponding to a different one of the plurality of images;

computing a mean, a weighted mean, or a solution to a robustified sum of squares of the columns of the matrix; and

selecting as the source image an image of the plurality of images for which the corresponding column is closest in value to the computed mean, the weighted mean, or the solution to the robustified sum of squares.

18. The method of claim 1 , further comprising:

processing a first set of images that are reduced in size during an initial phase of optimization; and

processing a second set of images as the one or more target images that are full size images following the initial phase of optimization to improve convergence.

19. A system comprising:

a processor configured to perform operations comprising:

accessing a source image depicting a target structure;

accessing one or more target images depicting at least a portion of the target structure;

computing correspondence between a first set of pixels in the source image of a first portion of the target structure and a second set of pixels in the one or more target images of the first portion of the target structure by:

projecting a first line from the first set of pixels to three-dimensional (3D) coordinates of the first portion using a first set of camera parameters associated with the source image;

projecting a second line from the 3D coordinates to the second set of pixels using a second set of camera parameters associated with the one or more target images; and

computing a difference between each pixel in the first and second sets of pixels; and

generating a 3D model of the target structure based on the correspondence.

20. A non-transitory machine-readable storage medium that includes instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:

accessing a source image depicting a target structure;

accessing one or more target images depicting at least a portion of the target structure;

computing correspondence between a first set of pixels in the source image of a first portion of the target structure and a second set of pixels in the one or more target images of the first portion of the target structure by:

projecting a first line from the first set of pixels to three-dimensional (3D) coordinates of the first portion using a first set of camera parameters associated with the source image;

projecting a second line from the 3D coordinates to the second set of pixels using a second set of camera parameters associated with the one or more target images; and

computing a difference between each pixel in the first and second sets of pixels; and

generating a 3D model of the target structure based on the correspondence.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2022
From: WOODFORD, OLIVER
To: SNAP INC.
Reel/Frame 060685/0703 →
Continuity (2)
Continuation 16861034 · Apr 28, 2020
Related Publication 20220375111A1 · Nov 24, 2022