IP Library Granted Patent US 12,131,243
Granted Patent B2
US 12,131,243 · App. 17/798,108 · Granted Oct 29, 2024

Autoregressive neural networks for the generation of polygonal meshes of 3D objects

Inventors: Charlie Thomas Curtis Nash (London, GB); Iaroslav Ganin (Montreal, CA); Seyed Mohammadali Eslami (London, GB); Peter William Battaglia (London, GB)
Assignee: DeepMind Technologies Limited
G06N3/02G06T17/205G06N3/047
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 12,131,243
App. No.
17/798,108
Granted
Oct 29, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for generating data specifying a three-dimensional mesh of an object using an auto-regressive neural network.

Claims (74)

1. A method performed by one or more computers, the method comprising:

generating, using an auto-regressive mesh generation neural network, an output sequence that specifies vertices and faces of a three-dimensional mesh of an object, the output sequence comprising a respective mesh token at each of a plurality of output positions, wherein:

the output sequence comprises a first set of output positions followed by a second set of output positions,

the mesh tokens at each of the first set of the output positions are respective coordinates of each of a plurality of vertices of the mesh,

the mesh tokens at the second set of output positions are respective coordinates of each of a plurality of faces of the mesh, and wherein the generating comprises,

at each of the first set of output positions:

processing an input for the output position in the first set of output positions using the auto-regressive mesh generation neural network conditioned on at least coordinates of any of the plurality of vertices of the mesh that correspond to mesh tokens that have already been selected at any earlier output positions to generate a probability distribution over possible mesh tokens for the output position, and

selecting, using the probability distribution, the mesh token at the output position in the first set of output positions from the possible mesh tokens for the output position; and

at each of the second set of output positions:

processing an input for the output position in the second set of output positions using the auto-regressive mesh generation neural network conditioned on at least (i) the respective coordinates of each of the plurality of vertices of the mesh corresponding to the mesh tokens at the first set of output positions and (ii) respective coordinates of any faces that correspond to any mesh tokens that have already been selected at any earlier output positions in the second set of output positions to generate a probability distribution over possible mesh tokens for the output position, and

selecting, using the probability distribution, the mesh token at the output position in the second set of output positions from the possible mesh tokens for the output position.

2. The method of claim 1 , further comprising:

generating, from the output sequence, the three-dimensional mesh of the object.

3. The method of claim 1 , wherein selecting, using the probability distribution, the mesh token at the output position comprises:

sampling a mesh token from the probability distribution.

4. The method of claim 1 , wherein the auto-regressive mesh generation neural network comprises a vertex generation neural network that includes a vertex decoder, and wherein the generating comprises, for each output position in the first set of output positions:

generating a respective embedding for any vertex coordinates that have already been selected at any earlier output positions using a vertex encoder; and

processing the respective embedding using the vertex decoder to generate the probability distribution.

5. The method of claim 4 , wherein the vertex decoder is an attention-based decoder neural network.

6. The method of claim 5 , wherein the vertex decoder comprises a plurality of self-attention neural network layers.

7. The method of claim 1 , wherein the generating comprises generating vertex coordinates until the selected mesh token is a pre-determined stopping token that indicates that generation is terminated.

8. The method of claim 1 , wherein the auto-regressive mesh generation neural network comprises a face decoder, and wherein the generating comprises:

generating a respective contextual embedding of (i) each of the plurality of vertices, (ii) a new face token, and (iii) a stopping token, wherein the new face token indicates that a face has been completed and the stopping token indicates that generation is terminated; and

at each of the second set of output positions:

generating a decoder input that includes a respective embedding of each mesh token that has been generated at any earlier output positions in the second set;

processing the decoder input using the face decoder to generate a pointer vector; and

generating, from the pointer vector and the respective contextual embeddings of (i) each of the plurality of vertices, (ii) the new face token, and (iii) the stopping token, a probability distribution over (i) each of the plurality of vertices, (ii) the new face token, and (iii) the stopping token.

9. The method of claim 8 , wherein the auto-regressive mesh generation neural network comprises a face encoder, and wherein generating a respective contextual embedding of (i) each of the plurality of vertices, (ii) a new face token, and (iii) a stopping token comprises:

processing (i) each of the plurality of vertices, (ii) the new face token, and (iii) the stopping token using the face encoder.

10. The method of claim 9 , wherein the face encoder has a Transformer architecture.

11. The method of claim 8 , wherein the face decoder comprises a plurality of self-attention neural network layers.

12. The method of claim 11 , wherein the face decoder applies cross-attention into the contextual embeddings.

13. The method of claim 8 , wherein the respective embedding of each mesh token that has been generated at any earlier output positions in the second set is generated based on the contextual embedding for the mesh token.

14. The method of claim 1 , wherein generating the probability distribution over possible mesh tokens for the output position comprises masking out logits for any possible mesh tokens for the output position that are not valid given the mesh tokens that have been selected at earlier positions.

15. The method of claim 1 , further comprising:

receiving a context input that specifies a context for the three-dimensional mesh; and

wherein the generating comprises, at one or more of the plurality of output positions:

processing an input for the output position using the auto-regressive mesh generation neural network conditioned on (i) at least any mesh tokens that have already been selected at any earlier output positions and (ii) conditioned on the context input to generate a probability distribution over possible mesh tokens for the output position.

16. The method of claim 15 , wherein the context input is an input identifying an object class for the object, and wherein conditioning the auto-regressive mesh generation neural network on the context input comprises: generating an embedding of the object class and conditioning the mesh generation neural network on the embedding.

17. The method of claim 15 , wherein the context input is an image of the object, and wherein conditioning the auto-regressive mesh generation neural network on the context input comprises: processing the image using an image encoder neural network to generate a sequence of image embeddings and conditioning the mesh generation neural network on the sequence of image embeddings.

18. The method of claim 17 , wherein the face decoder applies cross-attention into the sequence of voxel embeddings or the sequence of image embeddings.

19. The method of claim 15 , wherein the context input is a set of voxels representing the object, and wherein conditioning the auto-regressive mesh generation neural network on the context input comprises: processing the set of voxels using a voxel encoder neural network to generate a sequence of voxel embeddings and conditioning the mesh generation neural network on the sequence of voxel embeddings.

20. The method of claim 17 , wherein the vertex decoder applies cross-attention into the sequence of voxel embeddings or the sequence of image embeddings.

21. One or more non-transitory computer-readable storage media storing instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

generating, using an auto-regressive mesh generation neural network, an output sequence that specifies vertices and faces of a three-dimensional mesh of an object, the output sequence comprising a respective mesh token at each of a plurality of output positions, wherein:

the output sequence comprises a first set of output positions followed by a second set of output positions,

the mesh tokens at each of the first set of the output positions are respective coordinates of each of a plurality of vertices of the mesh,

the mesh tokens at the second set of output positions are respective coordinates of each of a plurality of faces of the mesh, and wherein the generating comprises,

at each of the first set of output positions:

processing an input for the output position in the first set of output positions using the auto-regressive mesh generation neural network conditioned on at least coordinates of any of the plurality of vertices of the mesh that correspond to mesh tokens that have already been selected at any earlier output positions to generate a probability distribution over possible mesh tokens for the output position, and

selecting, using the probability distribution, the mesh token at the output position in the first set of output positions from the possible mesh tokens for the output position; and

at each of the second set of output positions:

processing an input for the output position in the second set of output positions using the auto-regressive mesh generation neural network conditioned on at least (i) the respective coordinates of each of the plurality of vertices of the mesh corresponding to the mesh tokens at the first set of output positions and (ii) respective coordinates of any faces that correspond to any mesh tokens that have already been selected at any earlier output positions in the second set of output positions to generate a probability distribution over possible mesh tokens for the output position, and

selecting, using the probability distribution, the mesh token at the output position in the second set of output positions from the possible mesh tokens for the output position.

22. A system comprising one or more computers and one or more storage device storing instructions that when executed by the one or more computers cause the one or more computers to perform operations comprising:

generating, using an auto-regressive mesh generation neural network, an output sequence that specifies vertices and faces of a three-dimensional mesh of an object, the output sequence comprising a respective mesh token at each of a plurality of output positions, wherein:

the output sequence comprises a first set of output positions followed by a second set of output positions,

the mesh tokens at each of the first set of the output positions are respective coordinates of each of a plurality of vertices of the mesh,

the mesh tokens at the second set of output positions are respective coordinates of each of a plurality of faces of the mesh, and wherein the generating comprises,

at each of the first set of output positions:

processing an input for the output position in the first set of output positions using the auto-regressive mesh generation neural network conditioned on at least coordinates of any of the plurality of vertices of the mesh that correspond to mesh tokens that have already been selected at any earlier output positions to generate a probability distribution over possible mesh tokens for the output position, and

selecting, using the probability distribution, the mesh token at the output position in the first set of output positions from the possible mesh tokens for the output position; and

at each of the second set of output positions:

processing an input for the output position in the second set of output positions using the auto-regressive mesh generation neural network conditioned on at least (i) the respective coordinates of each of the plurality of vertices of the mesh corresponding to the mesh tokens at the first set of output positions and (ii) respective coordinates of any faces that correspond to any mesh tokens that have already been selected at any earlier output positions in the second set of output positions to generate a probability distribution over possible mesh tokens for the output position, and

selecting, using the probability distribution, the mesh token at the output position in the second set of output positions from the possible mesh tokens for the output position.

23. The system of claim 22 , wherein the auto-regressive mesh generation neural network comprises a vertex generation neural network that includes a vertex decoder, and wherein the generating comprises, for each output position in the first set of output positions:

generating a respective embedding for any vertex coordinates that have already been selected at any earlier output positions using a vertex encoder; and

processing the respective embedding using the vertex decoder to generate the probability distribution.

24. The system of claim 22 , wherein the auto-regressive mesh generation neural network comprises a face decoder, and wherein the generating comprises:

generating a respective contextual embedding of (i) each of the plurality of vertices, (ii) a new face token, and (iii) a stopping token, wherein the new face token indicates that a face has been completed and the stopping token indicates that generation is terminated; and

at each of the second set of output positions:

generating a decoder input that includes a respective embedding of each mesh token that has been generated at any earlier output positions in the second set;

processing the decoder input using the face decoder to generate a pointer vector; and

generating, from the pointer vector and the respective contextual embeddings of (i) each of the plurality of vertices, (ii) the new face token, and (iii) the stopping token, a probability distribution over (i) each of the plurality of vertices, (ii) the new face token, and (iii) the stopping token.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: DEEPMIND TECHNOLOGIES LIMITED
To: GDM HOLDING LLC
Reel/Frame 071109/0414 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2022
From: NASH, CHARLIE THOMAS CURTIS; GANIN, IAROSLAV; ESLAMI, SEYED MOHAMMADALI; BATTAGLIA, PETER WILLIAM
To: DEEPMIND TECHNOLOGIES LIMITED
Reel/Frame 060774/0060 →