IP Library Granted Patent US 9,852,543
Granted Patent B2
US 9,852,543 · App. 15/080,367 · Granted Dec 26, 2017

Automated three dimensional model generation

Inventors: Samuel Edward Hare (Pacific Palisades, CA); Ebony James Charlton (London, GB); Andrew James McPhee (San Francisco, CA); Michael John Evans (London, GB)
Assignee: SNAP INC.
G06T17/20G06F3/012G06F3/0481G06F3/0484G06K9/00201G06K9/00261G06K9/00912G06T7/55G06T13/40G06T2200/08G06T2200/24G06T2207/30201
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 9,852,543
App. No.
15/080,367
Granted
Dec 26, 2017
Kind
B2
Abstract

In various example embodiments, a system and methods are presented for generation and manipulation of three dimensional (3D) models. The system and methods cause presentation of an interface frame encompassing a field of view of an image capture device. The systems and methods detect an object of interest within the interface frame, generate a movement instruction with respect to the object of interest, and detect a first change in position and a second change in position of the object of interest. The systems and methods generate a 3D model of the object of interest based on the first change in position and the second change in position.

Claims (84)

1. A method, comprising:

causing presentation of a graphical user interface frame encompassing a graphical rendering of a field of view of an image capture device of a mobile computing device;

detecting a face within the graphical user interface frame and the field of view of the image capture device;

generating a movement instruction directing movement of the face within the field of view of the image capture device;

detecting a first change in position of the face within the field of view of the image capture device by:

identifying a set of facial tracking points on the face;

identifying a first key frame, in which the set of facial tracking points have a set of first positions;

determining a change in position of one or more facial tracking points by identifying a trajectory for each of the one or more facial tracking points, determining an average length of the trajectories, and determining the average length exceeds a trajectory threshold;

responsive to determining the change in position and the average length exceeding the trajectory threshold, identifying a second key frame where the one or more facial tracking points have a second position;

detecting a second change in position of the face within the field of view of the image capture device;

identifying one or more subsequent key frames based on one or more changes in position of the one or more facial tracking points along the trajectories;

based on the first key frame, the second key frame, and the one or more subsequent key frames, generating a set of relative position estimates for the mobile computing device with respect to the face, a relative position estimate of the set of relative position estimates being generated for each key frame;

based on the first key frame, the second key frame, the one or more subsequent key frames, and the set of relative position estimates, generating a set of depth maps including a depth map for each key frame, the set of depth maps generated by:

generating a first depth map having a first resolution, and

based on the first depth map, generating a second depth map having a second resolution higher than the first resolution; and

generating a three dimensional model of the face.

2. The method of claim 1 further comprising:

based on detecting the face within the graphical user interface, identifying the set of facial tracking points on the face;

in response to detecting one or more of the first change in position and the second change in position, generating graphical representations of the set of facial tracking points on the face within the graphical user interface frame; and

causing presentation of the graphical representations of the set of facial tracking points on the face for a duration of detecting the first change in position and the second change in position.

3. The method of claim 1 , wherein the first change in position of the face is an expected position change having a first initial position and a first final position, and the first change in position having a first set of intermediate positions, the first initial position, the first set of intermediate positions, and the first final position being associated with a first side of the face.

4. The method of claim 3 , wherein the second change in position of the face is an expected position change having a second initial position and a second final position, and the second change in position having a second set of intermediate positions, the second initial position, the second set of intermediate positions, and the second final position being associated with a second side of the face opposite the first side of the face.

5. The method of claim 1 further comprising:

fusing the set of depth maps to generate the three dimensional model of the face;

defining a volumetric three dimensional grid for the three dimensional model of the face; and

representing a three dimensional surface of the three dimensional model.

6. The method of claim 5 , further comprising:

identifying a facial mesh having a set of polygons and a set of vertices connecting the set of polygons, the set of vertices representing the set of facial tracking points; and

deforming one or more portions of the mesh to fit the three dimensional model of the face by moving one or more vertices connecting two or more polygons of the set of polygons.

7. A system, comprising:

one or more processors;

an image capture device operative coupled to the one or more processors; and

a non-transitory processor-readable storage medium storing processor executable instructions that, when executed by the one or more processors, causes the one or more processors to perform operations comprising:

causing presentation of a graphical user interface frame encompassing a graphical rendering of a field of view of an image capture device of a mobile computing device;

detecting a face within the graphical user interface frame and the field of view of the image capture device;

generating a movement instruction directing movement of the face within the field of view of the image capture device;

detecting a first change in position of the face within the field of view of the image capture device by:

identifying a set of facial tracking points on the face;

identifying a first key frame, in which the set of facial tracking points have a set of first positions;

determining a change in position of one or more facial tracking points by identifying a trajectory for each of the one or more facial tracking points, determining an average length of the trajectories, and determining the average length exceeds a trajectory threshold;

responsive to determining the change in position and the average length exceeding the trajectory threshold, identifying a second key frame where the one or more facial tracking points have a second position;

detecting a second change in position of the face within the field of view of the image capture device;

identifying one or more subsequent key frames based on one or more changes in position of the one or more facial tracking points along the trajectories;

based on the first key frame, the second key frame, and the one or more subsequent key frames, generating a set of relative position estimates for the mobile computing device with respect to the face, a relative position estimate of the set of relative position estimates being generated for each key frame;

based on the first key frame, the second key frame, the one or more subsequent key frames, and the set of relative position estimates, generating a set of depth maps including a depth map for each key frame, the set of depth maps generated by:

generating a first depth map having a first resolution, and

based on the first depth map, generating a second depth map having a second resolution higher than the first resolution; and

generating a three dimensional model of the face.

8. The system of claim 7 , wherein the operations further comprise:

fusing the set of depth maps to generate the three dimensional model of the face;

defining a volumetric three dimensional grid for the three dimensional model of the face; and

representing a three dimensional surface of the three dimensional model.

9. The system of claim 8 , wherein the operations further comprise:

identifying a facial mesh having a set of polygons and a set of vertices connecting the set of polygons, the set of vertices representing the set of facial tracking points; and

deforming one or more portions of the mesh to fit the three dimensional model of the face by moving one or more vertices connecting two or more polygons of the set of polygons.

10. A non-transitory processor-readable storage medium storing processor executable instructions that, when executed by one or more processors of a mobile computing device, causes the mobile computing device to perform operations comprising:

causing presentation of a graphical user interface frame encompassing a graphical rendering of a field of view of an image capture device of a mobile computing device;

detecting a face within the graphical user interface frame and the field of view of the image capture device;

generating a movement instruction directing movement of the face within the field of view of the image capture device;

detecting a first change in position of the face within the field of view of the image capture device by:

identifying a set of facial tracking points on the face;

identifying a first key frame, in which the set of facial tracking points have a set of first positions;

determining a change in position of one or more facial tracking points by identifying a trajectory for each of the one or more facial tracking points, determining an average length of the trajectories, and determining the average length exceeds a trajectory threshold;

responsive to determining the change in position and the average length exceeding the trajectory threshold, identifying a second key frame where the one or more facial tracking points have a second position;

detecting a second change in position of the face within the field of view of the image capture device;

identifying one or more subsequent key frames based on one or more changes in position of the one or more facial tracking points along the trajectories;

based on the first key frame, the second key frame, and the one or more subsequent key frames, generating a set of relative position estimates for the mobile computing device with respect to the face, a relative position estimate of the set of relative position estimates being generated for each key frame;

based on the first key frame, the second key frame, the one or more subsequent key frames, and the set of relative position estimates, generating a set of depth maps including a depth map for each key frame, the set of depth maps generated by:

generating a first depth map having a first resolution, and

based on the first depth map, generating a second depth map having a second resolution higher than the first resolution; and

generating a three dimensional model of the face.

11. The non-transitory processor-readable storage medium of claim 10 , wherein the operations further comprise:

based on detecting the face within the graphical user interface, identifying the set of facial tracking points on the face;

in response to detecting one or more of the first change in position and the second change in position, generating graphical representations of the set of facial tracking points on the face within the graphical user interface frame; and

causing presentation of the graphical representations of the set of facial tracking points on the face for a duration of detecting the first change in position and the second change in position.

12. The non-transitory processor-readable storage medium of claim 10 , wherein the first change in position of the face is an expected position change having a first initial position and a first final position, and the first change in position having a first set of intermediate positions, the first initial position, the first set of intermediate positions, and the first final position being associated with a first side of the face.

13. The non-transitory processor-readable storage medium of claim 12 , wherein the second change in position of the face is an expected position change having a second initial position and a second final position, and the second change in position having a second set of intermediate positions, the second initial position, the second set of intermediate positions, and the second final position being associated with a second side of the face opposite the first side of the face.

14. The non-transitory processor-readable storage medium of claim 10 , wherein the operations further comprise:

fusing the set of depth maps to generate the three dimensional model of the face;

defining a volumetric three dimensional grid for the three dimensional model of the face; and

representing a three dimensional surface of the three dimensional model.

15. The non-transitory processor-readable storage medium of claim 14 , wherein the operations further comprise:

identifying a facial mesh having a set of polygons and a set of vertices connecting the set of polygons, the set of vertices representing the set of facial tracking points; and

deforming one or more portions of the mesh to fit the three dimensional model of the face by moving one or more vertices connecting two or more polygons of the set of polygons.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2022
From: OBVIOUS ENGINEERING LIMITED
To: SNAPCHAT LIMITED
Reel/Frame 061193/0287 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2022
From: SNAP GROUP LIMITED (FORMERLY KNOWN AS SNAPCHAT LIMITED)
To: SNAP INC.
Reel/Frame 061193/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2017
From: OBVIOUS ENGINEERING LIMITED
To: SNAP INC.
Reel/Frame 044164/0526 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2016
From: HARE, SAMUEL EDWARD; CHARLTON, EBONY JAMES; MCPHEE, ANDREW JAMES; EVANS, MICHAEL JOHN
To: OBVIOUS ENGINEERING LIMITED
Reel/Frame 038097/0702 →
Continuity (2)
Provisional Application 62139009 · Mar 27, 2015
Related Publication 20160284123A1 · Sep 29, 2016