patents.google.com

US20200202622A1 - Mesh reconstruction using data-driven priors - Google Patents

  • ️Thu Jun 25 2020

US20200202622A1 - Mesh reconstruction using data-driven priors - Google Patents

Mesh reconstruction using data-driven priors Download PDF

Info

Publication number
US20200202622A1
US20200202622A1 US16/226,329 US201816226329A US2020202622A1 US 20200202622 A1 US20200202622 A1 US 20200202622A1 US 201816226329 A US201816226329 A US 201816226329A US 2020202622 A1 US2020202622 A1 US 2020202622A1 Authority
US
United States
Prior art keywords
mesh
decoder
value
training
processor
Prior art date
2018-12-19
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US16/226,329
Other versions
US11995854B2 (en
Inventor
Orazio Gallo
Abhishek BADKI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
2018-12-19
Filing date
2018-12-19
Publication date
2020-06-25
2018-12-19 Application filed by Nvidia Corp filed Critical Nvidia Corp
2018-12-19 Priority to US16/226,329 priority Critical patent/US11995854B2/en
2019-08-15 Assigned to NVIDIA CORPORATION reassignment NVIDIA CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BADKI, Abhishek, GALLO, ORAZIO
2019-11-26 Priority to EP19211501.2A priority patent/EP3671639A1/en
2019-12-16 Priority to CN201911293872.0A priority patent/CN111445581A/en
2020-06-25 Publication of US20200202622A1 publication Critical patent/US20200202622A1/en
2024-04-17 Priority to US18/638,346 priority patent/US20240265561A1/en
2024-05-28 Application granted granted Critical
2024-05-28 Publication of US11995854B2 publication Critical patent/US11995854B2/en
Status Active legal-status Critical Current
2038-12-19 Anticipated expiration legal-status Critical

Links

  • 238000000034 method Methods 0.000 claims abstract description 43
  • 238000012549 training Methods 0.000 claims description 113
  • 238000007670 refining Methods 0.000 claims description 21
  • 230000004931 aggregating effect Effects 0.000 claims description 8
  • 238000012935 Averaging Methods 0.000 claims description 4
  • 238000012545 processing Methods 0.000 description 87
  • 230000015654 memory Effects 0.000 description 73
  • 239000013598 vector Substances 0.000 description 47
  • 238000010801 machine learning Methods 0.000 description 32
  • 238000010586 diagram Methods 0.000 description 21
  • 238000003860 storage Methods 0.000 description 16
  • 238000004891 communication Methods 0.000 description 13
  • 230000006870 function Effects 0.000 description 12
  • 239000011159 matrix material Substances 0.000 description 12
  • 238000005192 partition Methods 0.000 description 9
  • 230000008569 process Effects 0.000 description 9
  • 238000013528 artificial neural network Methods 0.000 description 8
  • 238000009826 distribution Methods 0.000 description 7
  • 238000004590 computer program Methods 0.000 description 6
  • 238000010968 computed tomography angiography Methods 0.000 description 5
  • 238000009877 rendering Methods 0.000 description 5
  • 230000003287 optical effect Effects 0.000 description 4
  • 238000013473 artificial intelligence Methods 0.000 description 3
  • 230000008901 benefit Effects 0.000 description 3
  • 239000000872 buffer Substances 0.000 description 3
  • 238000001914 filtration Methods 0.000 description 3
  • 238000012986 modification Methods 0.000 description 3
  • 230000004048 modification Effects 0.000 description 3
  • 238000013519 translation Methods 0.000 description 3
  • 230000014616 translation Effects 0.000 description 3
  • HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
  • 238000009825 accumulation Methods 0.000 description 2
  • 238000003491 array Methods 0.000 description 2
  • 238000005266 casting Methods 0.000 description 2
  • 238000013527 convolutional neural network Methods 0.000 description 2
  • 238000001514 detection method Methods 0.000 description 2
  • 238000005286 illumination Methods 0.000 description 2
  • 230000002093 peripheral effect Effects 0.000 description 2
  • 238000000513 principal component analysis Methods 0.000 description 2
  • 230000000306 recurrent effect Effects 0.000 description 2
  • 239000007787 solid Substances 0.000 description 2
  • 238000012546 transfer Methods 0.000 description 2
  • 230000001133 acceleration Effects 0.000 description 1
  • 238000012884 algebraic function Methods 0.000 description 1
  • 238000004458 analytical method Methods 0.000 description 1
  • 230000006399 behavior Effects 0.000 description 1
  • 230000005540 biological transmission Effects 0.000 description 1
  • 230000008859 change Effects 0.000 description 1
  • 238000003066 decision tree Methods 0.000 description 1
  • 238000013135 deep learning Methods 0.000 description 1
  • 238000011156 evaluation Methods 0.000 description 1
  • 239000012634 fragment Substances 0.000 description 1
  • 239000013067 intermediate product Substances 0.000 description 1
  • 239000004973 liquid crystal related substance Substances 0.000 description 1
  • 238000013507 mapping Methods 0.000 description 1
  • 238000002156 mixing Methods 0.000 description 1
  • 239000013307 optical fiber Substances 0.000 description 1
  • 238000005457 optimization Methods 0.000 description 1
  • 239000000047 product Substances 0.000 description 1
  • 238000007637 random forest analysis Methods 0.000 description 1
  • 230000002441 reversible effect Effects 0.000 description 1
  • 239000004065 semiconductor Substances 0.000 description 1
  • 238000012706 support-vector machine Methods 0.000 description 1
  • 230000001360 synchronised effect Effects 0.000 description 1
  • 230000009466 transformation Effects 0.000 description 1
  • 238000000844 transformation Methods 0.000 description 1
  • 230000007704 transition Effects 0.000 description 1

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06K9/6256
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/513Sparse representations

Definitions

  • MVS Multiple view stereovision
  • FIG. 1 is a block diagram illustrating a system configured to implement one or more aspects of various embodiments.
  • FIG. 2 is a more detailed illustration of the training engine and execution engine of FIG. 1 , according to various embodiments.
  • FIG. 3 is a flow diagram of method steps for performing mesh reconstruction using data-driven priors, according to various embodiments.
  • FIG. 4 is a flow diagram of method steps for training a machine learning model to learn data-driven mesh priors, according to various embodiments.
  • FIG. 5 is a block diagram illustrating a computer system configured to implement one or more aspects of various embodiments.
  • FIG. 6 is a block diagram of a parallel processing unit (PPU) included in the parallel processing subsystem of FIG. 5 , according to various embodiments.
  • PPU parallel processing unit
  • FIG. 7 is a block diagram of a general processing cluster (GPC) included in the parallel processing unit (PPU) of FIG. 6 , according to various embodiments.
  • GPC general processing cluster
  • FIG. 8 is a block diagram of an exemplary system on a chip (SoC) integrated circuit, according to various embodiments.
  • SoC system on a chip
  • FIG. 1 illustrates a computing device 100 configured to implement one or more aspects of various embodiments.
  • computing device 100 may be a desktop computer, a laptop computer, a smart phone, a personal digital assistant (PDA), tablet computer, or any other type of computing device configured to receive input, process data, and optionally display images, and is suitable for practicing one or more embodiments.
  • Computing device 100 is configured to run a training engine 122 and execution engine 124 that reside in a memory 116 . It is noted that the computing device described herein is illustrative and that any other technically feasible configurations fall within the scope of the present disclosure.
  • computing device 100 includes, without limitation, an interconnect (bus) 112 that connects one or more processing units 102 , an input/output (I/O) device interface 104 coupled to one or more input/output (I/O) devices 108 , memory 116 , a storage 114 , and a network interface 106 .
  • Processing unit(s) 102 may be any suitable processor implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), an artificial intelligence (AI) accelerator, any other type of processing unit, or a combination of different processing units, such as a CPU configured to operate in conjunction with a GPU.
  • CPU central processing unit
  • GPU graphics processing unit
  • ASIC application-specific integrated circuit
  • FPGA field programmable gate array
  • AI artificial intelligence
  • any other type of processing unit such as a CPU configured to operate in conjunction with a GPU.
  • processing unit(s) 102 may be any technically feasible hardware unit capable of processing data and/or executing software applications.
  • the computing elements shown in computing device 100 may correspond to a physical computing system (e.g., a system in a data center) or may be a virtual computing instance executing within a computing cloud.
  • I/O devices 108 include devices capable of providing input, such as a keyboard, a mouse, a touch-sensitive screen, and so forth, as well as devices capable of providing output, such as a display device. Additionally, I/O devices 108 may include devices capable of both receiving input and providing output, such as a touchscreen, a universal serial bus (USB) port, and so forth. I/O devices 108 may be configured to receive various types of input from an end-user (e.g., a designer) of computing device 100 , and to also provide various types of output to the end-user of computing device 100 , such as displayed digital images or digital videos or text. In some embodiments, one or more of I/O devices 108 are configured to couple computing device 100 to a network 110 .
  • I/O devices 108 are configured to couple computing device 100 to a network 110 .
  • network 110 is any technically feasible type of communications network that allows data to be exchanged between computing device 100 and external entities or devices, such as a web server or another networked computing device.
  • network 110 may include a wide area network (WAN), a local area network (LAN), a wireless (WiFi) network, and/or the Internet, among others.
  • WAN wide area network
  • LAN local area network
  • WiFi wireless
  • storage 114 includes non-volatile storage for applications and data, and may include fixed or removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-Ray, HD-DVD, or other magnetic, optical, or solid state storage devices.
  • Training engine 122 and execution engine 124 may be stored in storage 114 and loaded into memory 116 when executed.
  • memory 116 includes a random access memory (RAM) module, a flash memory unit, or any other type of memory unit or combination thereof.
  • Processing unit(s) 102 , I/O device interface 104 , and network interface 106 are configured to read data from and write data to memory 116 .
  • Memory 116 includes various software programs that can be executed by processor(s) 102 and application data associated with said software programs, including training engine 122 and execution engine 124 .
  • training engine 122 generates one or more machine learning models for performing mesh reconstruction using data-driven priors.
  • Each machine learning model may learn priors related to vertices, edges, corners, faces, polygons, surfaces, shapes, and/or other attributes of two-dimensional (2D) and/or three-dimensional (3D) meshes.
  • each machine learning model may include a variational autoencoder (VAE) that learns to convert input meshes into latent vectors and reconstruct the meshes from the latent vectors.
  • VAE variational autoencoder
  • execution engine 124 executes the machine learning models to perform mesh reconstruction using the mesh priors learned by the machine learning models.
  • execution engine 124 may input an initial value of the latent vector into the decoder of the VAE to produce an initial estimate of a mesh.
  • Execution engine 124 may refine the mesh by selecting subsequent values of the latent vector based on geometric constraints associated with a set of image observations of an object. In various embodiments, the subsequent values of the latent vector are selected to minimize errors between the mesh and the image observations, thus allowing the mesh to approximate the shape of the object. Training engine 122 and execution engine 124 are described in further detail below with respect to FIG. 2 .
  • FIG. 2 is a more detailed illustration of training engine 122 and execution engine 124 of FIG. 1 , according to various embodiments.
  • training engine 122 creates a machine learning model that learns to reconstruct a set of training meshes 208 by learning and/or encoding priors associated with training meshes 208 .
  • the machine learning model may learn, from training meshes 208 , a number of “basic types” related to vertices, edges, corners, faces, triangles, polygons, surfaces, shapes, and/or other attributes of 2D and/or 3D meshes.
  • execution engine 124 uses the machine learning model to perform inverse rendering of an object 260 captured in a set of images 258 into a corresponding mesh 216 .
  • execution engine 124 may use the machine learning model to estimate a 3D mesh 216 of object from 2D images 258 that capture multiple views and/or multiple illuminations of object 260 .
  • images 258 may represent ground truth image observations of object 260 .
  • Machine learning models created by training engine 122 can include any technically feasible form of machine learning model.
  • the machine learning models may include recurrent neural networks (RNNs), convolutional neural networks (CNNs), deep neural networks (DNNs), deep convolutional networks (DCNs), deep belief networks (DBNs), restricted Boltzmann machines (RBMs), long-short-term memory (LSTM) units, gated recurrent units (GRUs), generative adversarial networks (GANs), self-organizing maps (SOMs), and/or other types of artificial neural networks or components of artificial neural networks.
  • the machine learning models may include functionality to perform clustering, principal component analysis (PCA), latent semantic analysis (LSA), Word2vec, and/or another unsupervised learning technique.
  • the machine learning models may include regression models, support vector machines, decision trees, random forests, gradient boosted trees, na ⁇ ve Bayes classifiers, Bayesian networks, hierarchical models, and/or ensemble models.
  • the machine learning model created by training engine 122 includes a VAE 200 , which includes an encoder 202 and a decoder 206 .
  • training engine 122 may input 2D and/or 3D training meshes 208 into encoder 202
  • encoder 202 may “encode” training meshes 208 into latent vectors 204 (e.g., scalars, geometric vectors, tensors, and/or other geometric objects) within a latent space of lower dimensionality than training meshes 208 .
  • a decoder 206 in VAE 200 may “decode” latent vectors 204 into higher dimensionality reconstructed meshes 210 that substantially reproduce training meshes 208 .
  • training meshes 208 may include collections of 2D and/or 3D points, representations of edges between pairs of points, and/or representations of triangles, polygons, and/or other shapes formed by the points and edges. Edges and/or shapes in training meshes 208 may be encoded in orderings of the points within training meshes 208 .
  • a 2D mesh may be parameterized as an ordered set of points, with each adjacent pair of points in the ordered set connected by an edge between the points.
  • a 3D mesh may be parameterized using one or more triangle strips, triangle fans, and/or other representations of triangles within the mesh.
  • training engine 122 configures VAE 200 to encode training meshes 208 in a way that is unaffected by the parameterization of training meshes 208 inputted into encoder 202 .
  • training engine 122 inputs multiple ordered sets of points in each training mesh into encoder 202 and standardizes the output of encoder 202 from the multiple ordered sets of points.
  • training engine 122 may decouple the parameterizations of training meshes 208 from the latent space of VAE 200 into which training meshes 208 are encoded.
  • ordered sets of points inputted into encoder 202 may include all possible orderings of points in a training mesh, a randomly selected subset of possible orderings of points in the training mesh, and/or any other combination of orderings of points in the training mesh.
  • training engine 122 may generate different ordered sets of points in a 2D mesh of a polygon by selecting different vertices of the polygon and/or various points along edges between the vertices as starting points in the ordered sets.
  • training engine 122 may generate two different orderings of points in the 2D mesh from the same starting point by traversing the mesh in the clockwise and counterclockwise directions beginning at the starting point.
  • training engine 122 trains a different encoder that is not in VAE 200 to generate intermediate representations of ordered sets of points and/or other parameterizations of training meshes 208 .
  • training engine 122 averages and/or otherwise aggregates the intermediate representations into a standardized value in the latent space, such that the standardized value defines the mean and standard deviation from which the output of encoder 202 is sampled.
  • training engine 122 inputs the output sampled using the standardized value into decoder 206 to obtain reconstructed meshes 210 as output of decoder 206 .
  • Training engine 122 also computes an error between each training mesh and a corresponding reconstructed mesh as the minimum error between an ordering of points in the training mesh inputted into encoder 202 and the outputted ordering of points from decoder 206 .
  • training engine 122 may compute the minimum error based on the intersection of points in the training mesh and reconstructed mesh, a Chamfer distance between the training mesh and reconstructed mesh, an earth mover's distance, and/or another measure of distance, similarity, and/or dissimilarity between the points, edges, shapes, and/or other attributes of the training mesh and reconstructed mesh.
  • training engine 122 uses the error between each training mesh and the corresponding reconstructed mesh to update the parameters of encoder 202 and decoder 206 .
  • training engine 122 may backpropagate the error across the layers and/or parameters of decoder 206 so that decoder 206 learns to decode the reconstructed mesh from the sampled output of encoder 202 .
  • Training engine 122 may also backpropagate the error across the layers and/or parameters of encoder 202 so that encoder 202 learns to produce a consistent latent vector representation (e.g., mean and standard deviation vectors) for different orderings of points in the corresponding training mesh.
  • a consistent latent vector representation e.g., mean and standard deviation vectors
  • training engine 122 trains decoder 206 to generate reconstructed meshes 210 from training meshes 208 at varying resolutions until a desired mesh resolution is reached.
  • decoder 206 may include a number of neural network layers, with each layer producing a reconstructed mesh with a higher number of vertices than the previous layer (e.g., by adding vertices to the centers of edges and/or polygon faces in the mesh from the previous layer).
  • training engine 122 may compare a coarse reconstructed mesh produced by the first layer of decoder 206 with the corresponding training mesh and update parameters of the first layer to reduce the error between the vertices of the reconstructed mesh and corresponding vertices of the training mesh. Training engine 122 may repeat the process with subsequent layers of decoder 206 , which upsample the reconstructed mesh from the previous layer, until the output layer of decoder 206 and/or the desired reconstructed mesh resolution is reached.
  • training engine 122 may allow the coarse mesh from the first layer of decoder 206 to be defined in a given reference coordinate frame and subsequent refinements to the coarse mesh from subsequent layers of decoder 206 to be defined in relative terms with respect to the coarse mesh.
  • the refinements and, in turn, most of the reconstructed mesh may be independent of the reference frame or global pose of the object. This allows decoder 206 to learn variations in reference coordinate system across meshes more easily and/or potentially omit estimation of global pose during generation of reconstructed meshes 210 .
  • execution engine 124 executes one or more portions of VAE 200 to produce a mesh 216 of an object 260 from a latent vector value 212 of a vector in the latent space of VAE 200 and images 258 of object 260 .
  • execution engine 124 may input latent vector value 212 into decoder 206 to generate mesh 216 as a decoded representation of the vector.
  • execution engine 124 varies latent vector value 212 inputted into decoder 206 with fixed parameters to generate mesh 216 so that mesh 216 reproduces an object 260 captured in a set of images 258 .
  • images 258 are associated with a set of assumptions that allow mesh 216 to be reconstructed base on images 258 .
  • images 258 may be associated with known camera poses that generate multiple views of object 260 , multiple lighting conditions that allow object 260 to be captured under different illuminations, and/or Lambertian surfaces on object 260 that have isotropic luminance (i.e., surfaces with uniform brightness from any direction of view).
  • execution engine 124 initially selects latent vector value 212 based on one or more criteria. For example, execution engine 124 may randomly select the initial latent vector value 212 and/or set the initial latent vector value 212 to a default latent vector value associated with decoder 206 . In another example, execution engine 124 may set the initial latent vector value 212 based on sparse features extracted from 2D images 258 (e.g., features extracted using a scale-invariant feature transform (SIFT) technique, a corner detection technique, and/or another image feature detection technique).
  • SIFT scale-invariant feature transform
  • Execution engine 124 may use the sparse features to generate the initial latent vector value 212 by estimating 3D locations of the sparse features based on the assumptions associated with images 258 , inputting the locations into encoder 202 , and obtaining the initial latent vector value 212 based on output from encoder 202 .
  • execution engine 124 uses assumptions associated with images 258 to determine geometric constraints 222 associated with object 260 , which may include constraints related to the shape and/or geometry of object 260 . Execution engine 124 also refines mesh 216 by updating latent vector value 212 based on mesh 216 and geometric constraints 222 .
  • execution engine 124 uses geometric constraints 222 to calculate one or more errors associated with mesh 216 and updates latent vector value 212 based on gradients associated with the errors. For example, execution engine 124 may use known camera poses and/or lighting conditions associated with images 258 to back-project an image from a first camera to mesh 216 and project a warped image back to a second camera. Execution engine 124 may calculate a photometric error and/or silhouette error between the warped image and a corresponding image observation of object 260 from images 258 (e.g., an image of object 260 taken from the second camera's location and/or under the same lighting conditions used to produce the warped image).
  • a photometric error and/or silhouette error between the warped image and a corresponding image observation of object 260 from images 258 (e.g., an image of object 260 taken from the second camera's location and/or under the same lighting conditions used to produce the warped image).
  • Execution engine 124 may use gradients associated with the photometric and/or silhouette error to modify latent vector value 212 so that mesh 216 better approximates the shape of object 260 . Execution engine 124 may also repeat the process, thus iteratively updating latent vector value 212 to search the latent space associated with VAE 200 and using decoder 206 to generate a more accurate mesh 216 from latent vector value 212 until mesh 216 is a substantially accurate representation of object 260 .
  • execution engine 124 generates warped images of mesh 216 for comparison to ground truth images 258 of object 260 by casting a ray from the first camera toward mesh 216 , selecting the ray's closest point of intersection on mesh 216 , and casting another ray from the point of intersection to the second camera.
  • a face of mesh 216 may be represented as a binary indicator function in an image, where the face is “visible” in the image at locations where rays from the corresponding camera intersect with the face and invisible otherwise. Because the indicator function is binary and includes an abrupt change from “seen” pixels of the face to “unseen” pixels elsewhere, the image may be non-differentiable, which may interfere with generating gradients that are used to update latent vector value 212 .
  • execution engine 124 generates images of mesh 216 using differentiable indicator functions that smooth the transition between visible and invisible portions of faces in mesh 216 .
  • a face in mesh 216 may have an indicator function that shows the face as “visible” wherever a ray from a camera intersects the face, invisible where a ray from the camera does not intersect the face, and smoothly but quickly transitioning between visible and invisible in the vicinity of the border between the two.
  • decoder 206 When mesh 216 is generated from a single latent vector value 212 inputted into decoder, decoder 206 may be required to learn the prior for the entire object 260 . As a result, execution engine 124 may be capable of generating mesh 216 as an accurate reconstruction of object 260 only when object 260 belongs to the distribution of training meshes 208 used to produce VAE 200 .
  • execution engine 124 reduces the number and/or complexity of mesh priors learned by decoder 206 by dividing mesh 216 into multiple smaller meshlets 218 that represent different portions of mesh 218 .
  • execution engine 124 may generate each meshlet as one or more polygons, surfaces, and/or shapes in mesh 216 .
  • Each meshlet may be defined using more basic priors than a much larger mesh 216 of object 260 , which may allow the priors to be generalized to a greater variety of objects and/or shapes.
  • Each meshlet may also encompass a different part of mesh 218 , and meshlets 218 may be combined to produce mesh 218 .
  • execution engine 124 inputs multiple latent vector values 214 into decoder 206 to generate multiple corresponding meshlets 218 as output from decoder 206 .
  • Execution engine 124 may similarly update latent vector values 214 to enforce subsets of geometric constraints 222 associated with individual meshlets 218 and/or reduce errors between meshlets 218 and the corresponding portions of object 260 .
  • execution engine 124 may map a meshlet to a portion of object 260 and use images 258 containing the portion to determine geometric constraints 222 associated with the portion.
  • Execution engine 124 may use geometric constraints 222 to generate errors between the meshlet and images 258 and perform gradient descent on the latent vector value used to produce the meshlet based on the errors.
  • meshlets 218 are additionally associated with poses 220 that project meshlets 218 back into mesh 216 .
  • the shape and/or geometry of each meshlet may be generated from a point in the latent space of VAE 200 .
  • Each meshlet may also be associated with one or more custom poses 220 (e.g., one or more rotations, translations, and/or other transformations) that align the global pose of images 258 and/or mesh 216 with the canonical pose of the meshlet learned by decoder 206 .
  • execution engine 124 uses gradients and/or errors associated with geometric constraints 222 to update both latent vector values 214 of meshlets 218 and poses 220 that transform meshlets 218 into their corresponding positions and/or orientations in mesh 216 .
  • object 260 may include a rectangular surface with four right-angle corners.
  • execution engine 124 may use geometric constraints 222 to identify a value in the latent space associated with VAE 200 that produces a meshlet with a right-angle corner and learn four different poses 220 that map the meshlet to the four corners of the rectangular surface.
  • execution engine 124 iteratively increases a resolution of meshlets 218 to meet geometric constraints 222 .
  • execution engine 124 may use a first layer of decoder 206 to generate an initial coarse mesh 216 that matches low-resolution images 258 of object 260 .
  • Execution engine 124 may use subsequent layers of decoder 206 to upsample the coarse mesh 216 into increasingly small and numerous meshlets 218 .
  • execution engine 124 may perform gradient descent on latent vector values 214 used to produce meshlets 218 and poses 220 of meshlets 218 with respect to the coarse mesh until the desired mesh 216 and/or meshlet resolution is reached.
  • execution engine 124 reconstructs mesh 216 from meshlets 218 and the corresponding poses 220 and stores the reconstructed mesh 216 in association with object 260 .
  • execution engine 124 may apply poses 220 to the corresponding meshlets 218 to map the points in the canonical poses of meshlets 218 to their locations in mesh 216 .
  • Execution engine 124 may then render the completed mesh 216 and/or store the points in mesh 216 under an identifier for object 260 , with images 258 of object 260 , and/or with other metadata for object 260 .
  • FIG. 3 is a flow diagram of method steps for performing mesh reconstruction using data-driven priors, according to various embodiments. Although the method steps are described in conjunction with the systems of FIGS. 1 and 2 , persons skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the present disclosure.
  • training engine 122 generates 302 a machine learning model as a VAE that learns to reconstruct a set of training meshes inputted into the VAE, as described in further detail below with respect to FIG. 4 .
  • the training meshes may include 2D and/or 3D meshes and/or meshlets.
  • execution engine 124 executes 304 the machine learning model to produce a mesh of an object from a first value of a vector in a latent space. For example, execution engine 124 may select the first value of the vector as a random value, a default value, a value that is based on a set of image observations of the object, and/or a value that is based on sparse features extracted from the image observations. Execution engine 124 may input the first value into a decoder in the VAE and obtain the mesh as output from the decoder.
  • the similarity of the mesh to the object may be affected by the criteria used to select the first value of the vector (e.g., a first value of the vector that reflects sparse features from the image observations is likely to produce a mesh that is more similar to the object than a first value of the vector that is selected randomly).
  • Execution engine 124 refines 306 the mesh of the object by selecting a second value of the vector in the latent space based on one or more geometric constraints associated with the image observations of the object. For example, execution engine 124 may use known camera poses and/or lighting conditions under which the image observations were made to project and/or back-project warped images of the mesh. Execution engine 124 may also calculate photometric and/or silhouette errors between the warped images of the mesh and corresponding image observations (e.g., image observations made under the same camera poses and/or lighting conditions). Execution engine 124 may then use gradients associated with the errors and constant parameters of the machine learning model to update the value of the vector.
  • execution engine 124 may project and/or divide the mesh into a set of meshlets that represent different portions of the mesh. For each meshlet, execution engine 124 may select a value of the vector in the latent space to learn a prior for a portion of the mesh represented by the meshlet. Execution engine 124 may also learn a custom pose of the meshlet that maps the meshlet into a position and/or orientation within the mesh and/or aligns a global pose of the image observations with the canonical pose of the meshlet learned by the machine learning model. Execution engine 124 may then reconstruct the mesh from the set of meshlets by using the custom poses of the meshlets to map points in the meshlets into the reference system of the mesh.
  • execution engine 124 stores 308 the mesh in association with the object.
  • execution engine 124 may store the points in mesh 216 under an identifier for the object, with images of the object, and/or with other metadata for the object.
  • FIG. 4 is a flow diagram of method steps for training a machine learning model to learn data-driven mesh priors, according to various embodiments. Although the method steps are described in conjunction with the systems of FIGS. 1 and 2 , persons skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the present disclosure.
  • training engine 122 applies 402 an encoder to multiple orderings of points in a training mesh to generate intermediate representations of the multiple orderings of points. For example, training engine 122 may select a random subset of all possible orderings of points in the training mesh as input to the encoder. The encoder may “encode” each ordering of points into a vector in a latent space.
  • training engine 122 averages 404 the intermediate representations into a standardized value of a vector in the latent space.
  • the standardized value may define the mean and standard deviation vectors outputted by an encoder in a VAE.
  • Training engine 122 then trains 406 a decoder in the VAE to reconstruct the training mesh from the standardized value.
  • Training engine 122 also optionally trains 408 an encoder in the VAE to generate the standardized value from each ordering of points in the training mesh.
  • training engine 122 may calculate an error between the reconstructed mesh and the training mesh as the minimum error between an ordering of points in the training mesh inputted into the encoder and the outputted ordering of points from the decoder. The error may be based on an intersection of points between the training mesh and reconstructed mesh, a distance metric between the training mesh and reconstructed mesh, and/or other measures of similarity or dissimilarity between the training mesh and reconstructed mesh.
  • Training engine 122 may backpropagate the error across the layers and/or parameters of the decoder so that the decoder learns to reconstruct the training mesh based on the standardized value. Training engine 122 may also backpropagate the error across the layers and/or parameters of the encoder so that the encoder learns to output the standardized value for different orderings of points in the corresponding training mesh.
  • FIG. 5 is a block diagram illustrating a computer system 500 configured to implement one or more aspects of various embodiments.
  • computer system 500 is a server machine operating in a data center or a cloud computing environment that provides scalable computing resources as a service over a network.
  • computer system 500 implements the functionality of computing device 100 of FIG. 1 .
  • computer system 500 includes, without limitation, a central processing unit (CPU) 502 and a system memory 504 coupled to a parallel processing subsystem 512 via a memory bridge 505 and a communication path 513 .
  • Memory bridge 505 is further coupled to an I/O (input/output) bridge 507 via a communication path 506 , and I/O bridge 507 is, in turn, coupled to a switch 516 .
  • I/O bridge 507 is configured to receive user input information from optional input devices 508 , such as a keyboard or a mouse, and forward the input information to CPU 502 for processing via communication path 506 and memory bridge 505 .
  • computer system 500 may be a server machine in a cloud computing environment. In such embodiments, computer system 500 may not have input devices 508 . Instead, computer system 500 may receive equivalent input information by receiving commands in the form of messages transmitted over a network and received via the network adapter 518 .
  • switch 516 is configured to provide connections between I/O bridge 507 and other components of the computer system 500 , such as a network adapter 518 and various add-in cards 520 and 521 .
  • I/O bridge 507 is coupled to a system disk 514 that may be configured to store content and applications and data for use by CPU 502 and parallel processing subsystem 512 .
  • system disk 514 provides non-volatile storage for applications and data and may include fixed or removable hard disk drives, flash memory devices, and CD-ROM (compact disc read-only-memory), DVD-ROM (digital versatile disc-ROM), Blu-ray, HD-DVD (high definition DVD), or other magnetic, optical, or solid state storage devices.
  • other components such as universal serial bus or other port connections, compact disc drives, digital versatile disc drives, film recording devices, and the like, may be connected to I/O bridge 507 as well.
  • memory bridge 505 may be a Northbridge chip
  • I/O bridge 507 may be a Southbridge chip
  • communication paths 506 and 513 may be implemented using any technically suitable protocols, including, without limitation, AGP (Accelerated Graphics Port), HyperTransport, or any other bus or point-to-point communication protocol known in the art.
  • AGP Accelerated Graphics Port
  • HyperTransport or any other bus or point-to-point communication protocol known in the art.
  • parallel processing subsystem 512 comprises a graphics subsystem that delivers pixels to an optional display device 510 that may be any conventional cathode ray tube, liquid crystal display, light-emitting diode display, or the like.
  • the parallel processing subsystem 512 incorporates circuitry optimized for graphics and video processing, including, for example, video output circuitry. As described in greater detail below in conjunction with FIGS. 6 and 7 , such circuitry may be incorporated across one or more parallel processing units (PPUs), also referred to herein as parallel processors, included within parallel processing subsystem 512 .
  • PPUs parallel processing units
  • the parallel processing subsystem 512 incorporates circuitry optimized for general purpose and/or compute processing. Again, such circuitry may be incorporated across one or more PPUs included within parallel processing subsystem 512 that are configured to perform such general purpose and/or compute operations. In yet other embodiments, the one or more PPUs included within parallel processing subsystem 512 may be configured to perform graphics processing, general purpose processing, and compute processing operations.
  • System memory 504 includes at least one device driver configured to manage the processing operations of the one or more PPUs within parallel processing subsystem 512 .
  • parallel processing subsystem 512 may be integrated with one or more of the other elements of FIG. 5 to form a single system.
  • parallel processing subsystem 512 may be integrated with CPU 502 and other connection circuitry on a single chip to form a system on chip (SoC).
  • SoC system on chip
  • CPU 502 is the master processor of computer system 500 , controlling and coordinating operations of other system components. In one embodiment, CPU 502 issues commands that control the operation of PPUs.
  • communication path 513 is a PCI Express link, in which dedicated lanes are allocated to each PPU, as is known in the art. Other communication paths may also be used.
  • PPU advantageously implements a highly parallel processing architecture. A PPU may be provided with any amount of local parallel processing memory (PP memory).
  • connection topology including the number and arrangement of bridges, the number of CPUs 502 , and the number of parallel processing subsystems 512 , may be modified as desired.
  • system memory 504 could be connected to CPU 502 directly rather than through memory bridge 505 , and other devices would communicate with system memory 504 via memory bridge 505 and CPU 502 .
  • parallel processing subsystem 512 may be connected to I/O bridge 507 or directly to CPU 502 , rather than to memory bridge 505 .
  • I/O bridge 507 and memory bridge 505 may be integrated into a single chip instead of existing as one or more discrete devices.
  • switch 516 could be eliminated, and network adapter 518 and add-in cards 520 , 521 would connect directly to I/O bridge 507 .
  • FIG. 6 is a block diagram of a parallel processing unit (PPU) 602 included in the parallel processing subsystem 512 of FIG. 5 , according to various embodiments.
  • PPU parallel processing unit
  • FIG. 6 depicts one PPU 602 , as indicated above, parallel processing subsystem 512 may include any number of PPUs 602 .
  • PPU 602 is coupled to a local parallel processing (PP) memory 604 .
  • PP parallel processing
  • PPU 602 and PP memory 604 may be implemented using one or more integrated circuit devices, such as programmable processors, application specific integrated circuits (ASICs), or memory devices, or in any other technically feasible fashion.
  • ASICs application specific integrated circuits
  • PPU 602 comprises a graphics processing unit (GPU) that may be configured to implement a graphics rendering pipeline to perform various operations related to generating pixel data based on graphics data supplied by CPU 502 and/or system memory 504 .
  • GPU graphics processing unit
  • PP memory 604 can be used as graphics memory that stores one or more conventional frame buffers and, if needed, one or more other render targets as well.
  • PP memory 604 may be used to store and update pixel data and deliver final pixel data or display frames to an optional display device 510 for display.
  • PPU 602 also may be configured for general-purpose processing and compute operations.
  • computer system 500 may be a server machine in a cloud computing environment. In such embodiments, computer system 500 may not have a display device 510 . Instead, computer system 500 may generate equivalent output information by transmitting commands in the form of messages over a network via the network adapter 518 .
  • CPU 502 is the master processor of computer system 500 , controlling and coordinating operations of other system components. In one embodiment, CPU 502 issues commands that control the operation of PPU 602 . In some embodiments, CPU 502 writes a stream of commands for PPU 602 to a data structure (not explicitly shown in either FIG. 5 or FIG. 6 ) that may be located in system memory 504 , PP memory 604 , or another storage location accessible to both CPU 502 and PPU 602 . A pointer to the data structure is written to a command queue, also referred to herein as a pushbuffer, to initiate processing of the stream of commands in the data structure.
  • a command queue also referred to herein as a pushbuffer
  • the PPU 602 reads command streams from the command queue and then executes commands asynchronously relative to the operation of CPU 502 .
  • execution priorities may be specified for each pushbuffer by an application program via device driver to control scheduling of the different pushbuffers.
  • PPU 602 includes an I/O (input/output) unit 605 that communicates with the rest of computer system 500 via the communication path 513 and memory bridge 505 .
  • I/O unit 605 generates packets (or other signals) for transmission on communication path 513 and also receives all incoming packets (or other signals) from communication path 513 , directing the incoming packets to appropriate components of PPU 602 .
  • commands related to processing tasks may be directed to a host interface 606
  • commands related to memory operations e.g., reading from or writing to PP memory 604
  • host interface 606 reads each command queue and transmits the command stream stored in the command queue to a front end 612 .
  • parallel processing subsystem 512 which includes at least one PPU 602 , is implemented as an add-in card that can be inserted into an expansion slot of computer system 500 .
  • PPU 602 can be integrated on a single chip with a bus bridge, such as memory bridge 505 or I/O bridge 507 .
  • some or all of the elements of PPU 602 may be included along with CPU 502 in a single integrated circuit or system of chip (SoC).
  • SoC system of chip
  • front end 612 transmits processing tasks received from host interface 606 to a work distribution unit (not shown) within task/work unit 607 .
  • the work distribution unit receives pointers to processing tasks that are encoded as task metadata (TMD) and stored in memory.
  • TMD task metadata
  • the pointers to TMDs are included in a command stream that is stored as a command queue and received by the front end unit 612 from the host interface 606 .
  • Processing tasks that may be encoded as TMDs include indices associated with the data to be processed as well as state parameters and commands that define how the data is to be processed.
  • the state parameters and commands could define the program to be executed on the data.
  • the TMD could specify the number and configuration of the set of CTAs.
  • each TMD corresponds to one task.
  • the task/work unit 607 receives tasks from the front end 612 and ensures that GPCs 608 are configured to a valid state before the processing task specified by each one of the TMDs is initiated.
  • a priority may be specified for each TMD that is used to schedule the execution of the processing task.
  • Processing tasks also may be received from the processing cluster array 630 .
  • the TMD may include a parameter that controls whether the TMD is added to the head or the tail of a list of processing tasks (or to a list of pointers to the processing tasks), thereby providing another level of control over execution priority.
  • PPU 602 implements a highly parallel processing architecture based on a processing cluster array 630 that includes a set of C general processing clusters (GPCs) 608 , where C ⁇ 1.
  • GPCs general processing clusters
  • Each GPC 608 is capable of executing a large number (e.g., hundreds or thousands) of threads concurrently, where each thread is an instance of a program.
  • different GPCs 608 may be allocated for processing different types of programs or for performing different types of computations. The allocation of GPCs 608 may vary depending on the workload arising for each type of program or computation.
  • memory interface 614 includes a set of D of partition units 615 , where D 1 .
  • Each partition unit 615 is coupled to one or more dynamic random access memories (DRAMs) 620 residing within PPM memory 604 .
  • DRAMs dynamic random access memories
  • the number of partition units 615 equals the number of DRAMs 620
  • each partition unit 615 is coupled to a different DRAM 620 .
  • the number of partition units 615 may be different than the number of DRAMs 620 .
  • a DRAM 620 may be replaced with any other technically suitable storage device.
  • various render targets such as texture maps and frame buffers, may be stored across DRAMs 620 , allowing partition units 615 to write portions of each render target in parallel to efficiently use the available bandwidth of PP memory 604 .
  • a given GPC 608 may process data to be written to any of the DRAMs 620 within PP memory 604 .
  • crossbar unit 610 is configured to route the output of each GPC 608 to the input of any partition unit 615 or to any other GPC 608 for further processing.
  • GPCs 608 communicate with memory interface 614 via crossbar unit 610 to read from or write to various DRAMs 620 .
  • crossbar unit 610 has a connection to I/O unit 605 , in addition to a connection to PP memory 604 via memory interface 614 , thereby enabling the processing cores within the different GPCs 608 to communicate with system memory 504 or other memory not local to PPU 602 .
  • crossbar unit 610 is directly connected with I/O unit 605 .
  • crossbar unit 610 may use virtual channels to separate traffic streams between the GPCs 608 and partition units 615 .
  • GPCs 608 can be programmed to execute processing tasks relating to a wide variety of applications, including, without limitation, linear and nonlinear data transforms, filtering of video and/or audio data, modeling operations (e.g., applying laws of physics to determine position, velocity and other attributes of objects), image rendering operations (e.g., tessellation shader, vertex shader, geometry shader, and/or pixel/fragment shader programs), general compute operations, etc.
  • PPU 602 is configured to transfer data from system memory 504 and/or PP memory 604 to one or more on-chip memory units, process the data, and write result data back to system memory 504 and/or PP memory 604 .
  • the result data may then be accessed by other system components, including CPU 502 , another PPU 602 within parallel processing subsystem 512 , or another parallel processing subsystem 512 within computer system 500 .
  • any number of PPUs 602 may be included in a parallel processing subsystem 512 .
  • multiple PPUs 602 may be provided on a single add-in card, or multiple add-in cards may be connected to communication path 513 , or one or more of PPUs 602 may be integrated into a bridge chip.
  • PPUs 602 in a multi-PPU system may be identical to or different from one another.
  • different PPUs 602 might have different numbers of processing cores and/or different amounts of PP memory 604 .
  • those PPUs may be operated in parallel to process data at a higher throughput than is possible with a single PPU 602 .
  • Systems incorporating one or more PPUs 602 may be implemented in a variety of configurations and form factors, including, without limitation, desktops, laptops, handheld personal computers or other handheld devices, servers, workstations, game consoles, embedded systems, and the like.
  • FIG. 7 is a block diagram of a general processing cluster (GPC) 608 included in the parallel processing unit (PPU) 602 of FIG. 6 , according to various embodiments.
  • the GPC 608 includes, without limitation, a pipeline manager 705 , one or more texture units 715 , a preROP unit 725 , a work distribution crossbar 730 , and an L1.5 cache 735 .
  • GPC 608 may be configured to execute a large number of threads in parallel to perform graphics, general processing and/or compute operations.
  • a “thread” refers to an instance of a particular program executing on a particular set of input data.
  • SIMD single-instruction, multiple-data
  • SIMT single-instruction, multiple-thread
  • SIMT execution allows different threads to more readily follow divergent execution paths through a given program.
  • a SIMD processing regime represents a functional subset of a SIMT processing regime.
  • operation of GPC 608 is controlled via a pipeline manager 705 that distributes processing tasks received from a work distribution unit (not shown) within task/work unit 607 to one or more streaming multiprocessors (SMs) 710 .
  • Pipeline manager 705 may also be configured to control a work distribution crossbar 730 by specifying destinations for processed data output by SMs 710 .
  • GPC 608 includes a set of M of SMs 710 , where M 1 .
  • each SM 710 includes a set of functional execution units (not shown), such as execution units and load-store units. Processing operations specific to any of the functional execution units may be pipelined, which enables a new instruction to be issued for execution before a previous instruction has completed execution. Any combination of functional execution units within a given SM 710 may be provided.
  • the functional execution units may be configured to support a variety of different operations including integer and floating point arithmetic (e.g., addition and multiplication), comparison operations, Boolean operations (AND, OR, 50 R), bit-shifting, and computation of various algebraic functions (e.g., planar interpolation and trigonometric, exponential, and logarithmic functions, etc.).
  • integer and floating point arithmetic e.g., addition and multiplication
  • comparison operations e.g., comparison operations
  • Boolean operations e.g., OR, 50 R
  • bit-shifting e.g., planar interpolation and trigonometric, exponential, and logarithmic functions, etc.
  • various algebraic functions e.g., planar interpolation and trigonometric, exponential, and logarithmic functions, etc.
  • each SM 710 includes multiple processing cores.
  • the SM 710 includes a large number (e.g., 128, etc.) of distinct processing cores.
  • Each core may include a fully-pipelined, single-precision, double-precision, and/or mixed precision processing unit that includes a floating point arithmetic logic unit and an integer arithmetic logic unit.
  • the floating point arithmetic logic units implement the IEEE 754-2008 standard for floating point arithmetic.
  • the cores include 64 single-precision (32-bit) floating point cores, 64 integer cores, 32 double-precision (64-bit) floating point cores, and 8 tensor cores.
  • tensor cores configured to perform matrix operations, and, in one embodiment, one or more tensor cores are included in the cores.
  • the tensor cores are configured to perform deep learning matrix arithmetic, such as convolution operations for neural network training and inferencing.
  • the matrix multiply inputs A and B are 16-bit floating point matrices
  • the accumulation matrices C and D may be 16-bit floating point or 32-bit floating point matrices.
  • Tensor Cores operate on 16-bit floating point input data with 32-bit floating point accumulation. The 16-bit floating point multiply requires 64 operations and results in a full precision product that is then accumulated using 32-bit floating point addition with the other intermediate products for a 4 ⁇ 4 ⁇ 4 matrix multiply. In practice, Tensor Cores are used to perform much larger two-dimensional or higher dimensional matrix operations, built up from these smaller elements.
  • An API such as CUDA 9 C++ API, exposes specialized matrix load, matrix multiply and accumulate, and matrix store operations to efficiently use tensor cores from a CUDA-C++ program.
  • the warp-level interface assumes 16 ⁇ 16 size matrices spanning all 32 threads of the warp.
  • the SMs 710 provide a computing platform capable of delivering performance required for deep neural network-based artificial intelligence and machine learning applications.
  • each SM 710 may also comprise multiple special function units (SFUs) that perform special functions (e.g., attribute evaluation, reciprocal square root, and the like).
  • the SFUs may include a tree traversal unit configured to traverse a hierarchical tree data structure.
  • the SFUs may include texture unit configured to perform texture map filtering operations.
  • the texture units are configured to load texture maps (e.g., a 2D array of texels) from memory and sample the texture maps to produce sampled texture values for use in shader programs executed by the SM.
  • each SM 710 also comprises multiple load/store units (LSUs) that implement load and store operations between the shared memory/L1 cache and register files internal to the SM 710 .
  • LSUs load/store units
  • each SM 710 is configured to process one or more thread groups.
  • a “thread group” or “warp” refers to a group of threads concurrently executing the same program on different input data, with one thread of the group being assigned to a different execution unit within an SM 710 .
  • a thread group may include fewer threads than the number of execution units within the SM 710 , in which case some of the execution may be idle during cycles when that thread group is being processed.
  • a thread group may also include more threads than the number of execution units within the SM 710 , in which case processing may occur over consecutive clock cycles. Since each SM 710 can support up to G thread groups concurrently, it follows that up to G*M thread groups can be executing in GPC 608 at any given time.
  • a plurality of related thread groups may be active (in different phases of execution) at the same time within an SM 710 .
  • This collection of thread groups is referred to herein as a “cooperative thread array” (“CTA”) or “thread array.”
  • CTA cooperative thread array
  • the size of a particular CTA is equal to m*k, where k is the number of concurrently executing threads in a thread group, which is typically an integer multiple of the number of execution units within the SM 710 , and m is the number of thread groups simultaneously active within the SM 710 .
  • a single SM 710 may simultaneously support multiple CTAs, where such CTAs are at the granularity at which work is distributed to the SMs 710 .
  • each SM 710 contains a level one (L1) cache or uses space in a corresponding L1 cache outside of the SM 710 to support, among other things, load and store operations performed by the execution units.
  • Each SM 710 also has access to level two (L2) caches (not shown) that are shared among all GPCs 608 in PPU 602 .
  • the L2 caches may be used to transfer data between threads.
  • SMs 710 also have access to off-chip “global” memory, which may include PP memory 604 and/or system memory 504 . It is to be understood that any memory external to PPU 602 may be used as global memory. Additionally, as shown in FIG.
  • a level one-point-five (L1.5) cache 735 may be included within GPC 608 and configured to receive and hold data requested from memory via memory interface 614 by SM 710 .
  • data may include, without limitation, instructions, uniform data, and constant data.
  • the SMs 710 may beneficially share common instructions and data cached in L1.5 cache 735 .
  • each GPC 608 may have an associated memory management unit (MMU) 720 that is configured to map virtual addresses into physical addresses.
  • MMU 720 may reside either within GPC 608 or within the memory interface 614 .
  • the MMU 720 includes a set of page table entries (PTEs) used to map a virtual address to a physical address of a tile or memory page and optionally a cache line index.
  • PTEs page table entries
  • the MMU 720 may include address translation lookaside buffers (TLB) or caches that may reside within SMs 710 , within one or more L1 caches, or within GPC 608 .
  • TLB address translation lookaside buffers
  • GPC 608 may be configured such that each SM 710 is coupled to a texture unit 715 for performing texture mapping operations, such as determining texture sample positions, reading texture data, and filtering texture data.
  • each SM 710 transmits a processed task to work distribution crossbar 730 in order to provide the processed task to another GPC 608 for further processing or to store the processed task in an L2 cache (not shown), parallel processing memory 604 , or system memory 504 via crossbar unit 610 .
  • a pre-raster operations (preROP) unit 725 is configured to receive data from SM 710 , direct data to one or more raster operations (ROP) units within partition units 615 , perform optimizations for color blending, organize pixel color data, and perform address translations.
  • preROP pre-raster operations
  • any number of processing units such as SMs 710 , texture units 715 , or preROP units 725 , may be included within GPC 608 .
  • PPU 602 may include any number of GPCs 608 that are configured to be functionally similar to one another so that execution behavior does not depend on which GPC 608 receives a particular processing task.
  • each GPC 608 operates independently of the other GPCs 608 in PPU 602 to execute tasks for one or more application programs.
  • FIG. 8 is a block diagram of an exemplary system on a chip (SoC) integrated circuit 800 , according to various embodiments.
  • SoC integrated circuit 800 includes one or more application processors 802 (e.g., CPUs), one or more graphics processors 804 (e.g., GPUs), one or more image processors 806 , and/or one or more video processors 808 .
  • SoC integrated circuit 800 also includes peripheral or bus components such as a serial interface controller 814 that implements Universal Serial Bus (USB), Universal Asynchronous Receiver/Transmitter (UART), Serial Peripheral Interface (SPI), Secure Digital Input Output (SDIO), inter-IC sound (I 2 S), and/or Inter-Integrated Circuit (I 2 C).
  • USB Universal Serial Bus
  • UART Universal Asynchronous Receiver/Transmitter
  • SPI Serial Peripheral Interface
  • SDIO Secure Digital Input Output
  • I 2 S Inter-Integrated Circuit
  • I 2 C Inter-Integrated Circuit
  • SoC integrated circuit 800 additionally includes a display device 818 coupled to a display interface 820 such as high-definition multimedia interface (HDMI) and/or a mobile industry processor interface (MIPI). SoC integrated circuit 800 further includes a Flash memory subsystem 824 that provides storage on the integrated circuit, as well as a memory controller 822 that provides a memory interface for access to memory devices.
  • a display interface 820 such as high-definition multimedia interface (HDMI) and/or a mobile industry processor interface (MIPI).
  • SoC integrated circuit 800 further includes a Flash memory subsystem 824 that provides storage on the integrated circuit, as well as a memory controller 822 that provides a memory interface for access to memory devices.
  • Flash memory subsystem 824 that provides storage on the integrated circuit, as well as a memory controller 822 that provides a memory interface for access to memory devices.
  • SoC integrated circuit 800 is implemented using one or more types of integrated circuit components.
  • SoC integrated circuit 800 may include one or more processor cores for application processors 802 and/or graphics processors 804 . Additional functionality associated with serial interface controller 814 , display device 818 , display interface 820 , image processors 806 , video processors 808 , AI acceleration, machine vision, and/or other specialized tasks may be provided by application-specific integrated circuits (ASICs), application-specific standard parts (ASSPs), field-programmable gate arrays (FPGAs), and/or other types of customized components.
  • ASICs application-specific integrated circuits
  • ASSPs application-specific standard parts
  • FPGAs field-programmable gate arrays
  • the disclosed techniques use a VAE to learn priors associated with meshes and/or portions of meshes.
  • a decoder in the VAE is used to generate additional meshes of objects by searching the latent space of the VAE for latent vector values that reduce errors between the meshes and image observations of the objects.
  • Each mesh may also be subdivided into meshlets, and shapes and poses of the meshlets may be individually refined to meet geometric constraints associated with the image observations before the meshlets are combined back into the mesh.
  • One technological advantage of the disclosed techniques is that mesh priors learned by the VAE are used to perform inverse rendering of objects in a way that enforces geometric constraints associated with image observations of the objects.
  • Another technological advantage of the disclosed techniques includes reduced complexity associated with estimating the global pose of the objects by performing coarse-to-fine rendering of the meshes.
  • a third technological advantage of the disclosed techniques is increased generalizability and reduced complexity in reconstructing the meshes through the division of the meshes into meshlets. Consequently, the disclosed techniques provide technological improvements in machine learning models, computer systems, applications, and/or techniques for performing mesh reconstruction.
  • a processor comprises logic to predict one or more three-dimensional (3D) mesh representations based on a plurality of digital images, wherein the one or more 3D mesh representations are refined by minimizing a difference between the one or more 3D mesh representations and the plurality of digital images.
  • predicting the one or more 3D mesh representations based on the plurality of digital images comprises executing a machine learning model to produce a mesh of an object from a first value in a latent space; and refining the mesh of the object by selecting a second value in the latent space based on one or more geometric constraints associated with the plurality of digital images of the object.
  • refining the mesh of the object comprises selecting the first value; calculating an error between the mesh and the plurality of digital images of the object; and performing gradient descent on the first value with parameters of the machine learning model to reduce the error.
  • selecting the first value comprises at least one of randomizing the first value, selecting the first value based on the set of image observations, and initializing the first value based on sparse features extracted from the set of image observations.
  • refining the mesh of the object comprises dividing the mesh into a set of meshlets; for each meshlet in the set of meshlets, selecting the second value in the latent space to learn a prior for a portion of the mesh represented by the meshlet; and reconstructing the mesh from the set of meshlets.
  • refining the mesh of the object further comprises, for each meshlet in the set of meshlets, learning a custom pose of the meshlet that aligns a global pose of the images with a canonical pose of the meshlet.
  • generating the machine learning model comprises for each training mesh in the set of training meshes, aggregating multiple orderings of points in the training mesh into a standardized value in the latent space; and training a decoder in the variational autoencoder to reconstruct the training mesh from the standardized value.
  • a method comprises predicting one or more three-dimensional (3D) mesh representations based on a plurality of digital images, wherein the one or more 3D mesh representations are refined by minimizing at least one difference between the one or more 3D mesh representations and the plurality of digital images.
  • predicting the one or more 3D mesh representations based on the plurality of digital images comprises executing a machine learning model to produce a mesh of an object from a first value in a latent space; and refining the mesh of the object by selecting a second value in the latent space based on one or more geometric constraints associated with the plurality of digital images of the object.
  • a non-transitory computer readable medium store instructions that, when executed by a processor, cause the processor to at least execute a machine learning model to produce a mesh of an object from a first value in a latent space; refine the mesh of the object by selecting a second value in the latent space based on one or more geometric constraints associated with a set of image observations of the object; and store the mesh in association with the object.
  • refining the mesh of the object comprises selecting the first value; and performing gradient descent on the first value with parameters of the machine learning model to reduce an error between the mesh and the set of image observations.
  • aspects of the present embodiments may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module” or “system.” In addition, any hardware and/or software technique, process, function, component, engine, module, or system described in the present disclosure may be implemented as a circuit or set of circuits. Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
  • the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
  • a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

One embodiment of a method includes predicting one or more three-dimensional (3D) mesh representations based on a plurality of digital images, wherein the one or more 3D mesh representations are refined by minimizing at least one difference between the one or more 3D mesh representations and the plurality of digital images.

Description

    BACKGROUND
  • Multiple view stereovision (MVS) techniques involve constructing three-dimensional (3D) surfaces from a number of overlapping two-dimensional (2D) images of an object. Such techniques may estimate the most likely 3D shape from the 2D images based on assumptions related to textures, viewpoints, lighting, and/or other conditions under which the images were taken. Given a set of images of an object and corresponding assumptions, MVS uses stereo correspondence among the images to reconstruct the 3D geometry of the scene captured by the images.

  • BRIEF DESCRIPTION OF THE DRAWINGS
  • So that the manner in which the above recited features of the various embodiments can be understood in detail, a more particular description of the inventive concepts, briefly summarized above, may be had by reference to various embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of the inventive concepts and are therefore not to be considered limiting of scope in any way, and that there are other equally effective embodiments.

  • FIG. 1

    is a block diagram illustrating a system configured to implement one or more aspects of various embodiments.

  • FIG. 2

    is a more detailed illustration of the training engine and execution engine of

    FIG. 1

    , according to various embodiments.

  • FIG. 3

    is a flow diagram of method steps for performing mesh reconstruction using data-driven priors, according to various embodiments.

  • FIG. 4

    is a flow diagram of method steps for training a machine learning model to learn data-driven mesh priors, according to various embodiments.

  • FIG. 5

    is a block diagram illustrating a computer system configured to implement one or more aspects of various embodiments.

  • FIG. 6

    is a block diagram of a parallel processing unit (PPU) included in the parallel processing subsystem of

    FIG. 5

    , according to various embodiments.

  • FIG. 7

    is a block diagram of a general processing cluster (GPC) included in the parallel processing unit (PPU) of

    FIG. 6

    , according to various embodiments.

  • FIG. 8

    is a block diagram of an exemplary system on a chip (SoC) integrated circuit, according to various embodiments.

  • DETAILED DESCRIPTION
  • In the following description, numerous specific details are set forth to provide a more thorough understanding of the various embodiments. However, it will be apparent to one of skilled in the art that the inventive concepts may be practiced without one or more of these specific details.

  • System Overview
  • FIG. 1

    illustrates a

    computing device

    100 configured to implement one or more aspects of various embodiments. In one embodiment,

    computing device

    100 may be a desktop computer, a laptop computer, a smart phone, a personal digital assistant (PDA), tablet computer, or any other type of computing device configured to receive input, process data, and optionally display images, and is suitable for practicing one or more embodiments.

    Computing device

    100 is configured to run a

    training engine

    122 and

    execution engine

    124 that reside in a

    memory

    116. It is noted that the computing device described herein is illustrative and that any other technically feasible configurations fall within the scope of the present disclosure.

  • In one embodiment,

    computing device

    100 includes, without limitation, an interconnect (bus) 112 that connects one or

    more processing units

    102, an input/output (I/O)

    device interface

    104 coupled to one or more input/output (I/O)

    devices

    108,

    memory

    116, a

    storage

    114, and a

    network interface

    106. Processing unit(s) 102 may be any suitable processor implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), an artificial intelligence (AI) accelerator, any other type of processing unit, or a combination of different processing units, such as a CPU configured to operate in conjunction with a GPU. In general, processing unit(s) 102 may be any technically feasible hardware unit capable of processing data and/or executing software applications. Further, in the context of this disclosure, the computing elements shown in

    computing device

    100 may correspond to a physical computing system (e.g., a system in a data center) or may be a virtual computing instance executing within a computing cloud.

  • In one embodiment, I/

    O devices

    108 include devices capable of providing input, such as a keyboard, a mouse, a touch-sensitive screen, and so forth, as well as devices capable of providing output, such as a display device. Additionally, I/

    O devices

    108 may include devices capable of both receiving input and providing output, such as a touchscreen, a universal serial bus (USB) port, and so forth. I/

    O devices

    108 may be configured to receive various types of input from an end-user (e.g., a designer) of

    computing device

    100, and to also provide various types of output to the end-user of

    computing device

    100, such as displayed digital images or digital videos or text. In some embodiments, one or more of I/

    O devices

    108 are configured to

    couple computing device

    100 to a

    network

    110.

  • In one embodiment,

    network

    110 is any technically feasible type of communications network that allows data to be exchanged between

    computing device

    100 and external entities or devices, such as a web server or another networked computing device. For example,

    network

    110 may include a wide area network (WAN), a local area network (LAN), a wireless (WiFi) network, and/or the Internet, among others.

  • In one embodiment,

    storage

    114 includes non-volatile storage for applications and data, and may include fixed or removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-Ray, HD-DVD, or other magnetic, optical, or solid state storage devices.

    Training engine

    122 and

    execution engine

    124 may be stored in

    storage

    114 and loaded into

    memory

    116 when executed.

  • In one embodiment,

    memory

    116 includes a random access memory (RAM) module, a flash memory unit, or any other type of memory unit or combination thereof. Processing unit(s) 102, I/

    O device interface

    104, and

    network interface

    106 are configured to read data from and write data to

    memory

    116.

    Memory

    116 includes various software programs that can be executed by processor(s) 102 and application data associated with said software programs, including

    training engine

    122 and

    execution engine

    124.

  • In one embodiment,

    training engine

    122 generates one or more machine learning models for performing mesh reconstruction using data-driven priors. Each machine learning model may learn priors related to vertices, edges, corners, faces, polygons, surfaces, shapes, and/or other attributes of two-dimensional (2D) and/or three-dimensional (3D) meshes. For example, each machine learning model may include a variational autoencoder (VAE) that learns to convert input meshes into latent vectors and reconstruct the meshes from the latent vectors.

  • In one embodiment,

    execution engine

    124 executes the machine learning models to perform mesh reconstruction using the mesh priors learned by the machine learning models. Continuing with the above example,

    execution engine

    124 may input an initial value of the latent vector into the decoder of the VAE to produce an initial estimate of a mesh.

    Execution engine

    124 may refine the mesh by selecting subsequent values of the latent vector based on geometric constraints associated with a set of image observations of an object. In various embodiments, the subsequent values of the latent vector are selected to minimize errors between the mesh and the image observations, thus allowing the mesh to approximate the shape of the object.

    Training engine

    122 and

    execution engine

    124 are described in further detail below with respect to

    FIG. 2

    .

  • Mesh Reconstruction Using Data-Driven Priors
  • FIG. 2

    is a more detailed illustration of

    training engine

    122 and

    execution engine

    124 of

    FIG. 1

    , according to various embodiments. In the embodiment shown,

    training engine

    122 creates a machine learning model that learns to reconstruct a set of training meshes 208 by learning and/or encoding priors associated with training meshes 208. For example, the machine learning model may learn, from training meshes 208, a number of “basic types” related to vertices, edges, corners, faces, triangles, polygons, surfaces, shapes, and/or other attributes of 2D and/or 3D meshes.

  • In one embodiment,

    execution engine

    124 uses the machine learning model to perform inverse rendering of an

    object

    260 captured in a set of

    images

    258 into a

    corresponding mesh

    216. For example,

    execution engine

    124 may use the machine learning model to estimate a

    3D mesh

    216 of object from

    2D images

    258 that capture multiple views and/or multiple illuminations of

    object

    260. Thus,

    images

    258 may represent ground truth image observations of

    object

    260.

  • Machine learning models created by

    training engine

    122 can include any technically feasible form of machine learning model. For example, the machine learning models may include recurrent neural networks (RNNs), convolutional neural networks (CNNs), deep neural networks (DNNs), deep convolutional networks (DCNs), deep belief networks (DBNs), restricted Boltzmann machines (RBMs), long-short-term memory (LSTM) units, gated recurrent units (GRUs), generative adversarial networks (GANs), self-organizing maps (SOMs), and/or other types of artificial neural networks or components of artificial neural networks. In another example, the machine learning models may include functionality to perform clustering, principal component analysis (PCA), latent semantic analysis (LSA), Word2vec, and/or another unsupervised learning technique. In a third example, the machine learning models may include regression models, support vector machines, decision trees, random forests, gradient boosted trees, naïve Bayes classifiers, Bayesian networks, hierarchical models, and/or ensemble models.

  • In some embodiments, the machine learning model created by

    training engine

    122 includes a VAE 200, which includes an

    encoder

    202 and a

    decoder

    206. For example,

    training engine

    122 may input 2D and/or 3D training meshes 208 into

    encoder

    202, and

    encoder

    202 may “encode” training meshes 208 into latent vectors 204 (e.g., scalars, geometric vectors, tensors, and/or other geometric objects) within a latent space of lower dimensionality than training meshes 208. A

    decoder

    206 in

    VAE

    200 may “decode”

    latent vectors

    204 into higher dimensionality reconstructed

    meshes

    210 that substantially reproduce training meshes 208.

  • In various embodiments, training meshes 208 may include collections of 2D and/or 3D points, representations of edges between pairs of points, and/or representations of triangles, polygons, and/or other shapes formed by the points and edges. Edges and/or shapes in training meshes 208 may be encoded in orderings of the points within training meshes 208. For example, a 2D mesh may be parameterized as an ordered set of points, with each adjacent pair of points in the ordered set connected by an edge between the points. In another example, a 3D mesh may be parameterized using one or more triangle strips, triangle fans, and/or other representations of triangles within the mesh.

  • In one or more embodiments,

    training engine

    122 configures VAE 200 to encode training meshes 208 in a way that is unaffected by the parameterization of training meshes 208 inputted into

    encoder

    202. In these embodiments,

    training engine

    122 inputs multiple ordered sets of points in each training mesh into

    encoder

    202 and standardizes the output of

    encoder

    202 from the multiple ordered sets of points. Thus,

    training engine

    122 may decouple the parameterizations of training meshes 208 from the latent space of

    VAE

    200 into which training meshes 208 are encoded.

  • In one embodiment, ordered sets of points inputted into

    encoder

    202 may include all possible orderings of points in a training mesh, a randomly selected subset of possible orderings of points in the training mesh, and/or any other combination of orderings of points in the training mesh. For example,

    training engine

    122 may generate different ordered sets of points in a 2D mesh of a polygon by selecting different vertices of the polygon and/or various points along edges between the vertices as starting points in the ordered sets. In another example,

    training engine

    122 may generate two different orderings of points in the 2D mesh from the same starting point by traversing the mesh in the clockwise and counterclockwise directions beginning at the starting point.

  • In one embodiment,

    training engine

    122 trains a different encoder that is not in

    VAE

    200 to generate intermediate representations of ordered sets of points and/or other parameterizations of training meshes 208. In one embodiment,

    training engine

    122 averages and/or otherwise aggregates the intermediate representations into a standardized value in the latent space, such that the standardized value defines the mean and standard deviation from which the output of

    encoder

    202 is sampled.

  • In one embodiment,

    training engine

    122 inputs the output sampled using the standardized value into

    decoder

    206 to obtain reconstructed

    meshes

    210 as output of

    decoder

    206.

    Training engine

    122 also computes an error between each training mesh and a corresponding reconstructed mesh as the minimum error between an ordering of points in the training mesh inputted into

    encoder

    202 and the outputted ordering of points from

    decoder

    206. For example,

    training engine

    122 may compute the minimum error based on the intersection of points in the training mesh and reconstructed mesh, a Chamfer distance between the training mesh and reconstructed mesh, an earth mover's distance, and/or another measure of distance, similarity, and/or dissimilarity between the points, edges, shapes, and/or other attributes of the training mesh and reconstructed mesh.

  • In one embodiment,

    training engine

    122 uses the error between each training mesh and the corresponding reconstructed mesh to update the parameters of

    encoder

    202 and

    decoder

    206. For example,

    training engine

    122 may backpropagate the error across the layers and/or parameters of

    decoder

    206 so that

    decoder

    206 learns to decode the reconstructed mesh from the sampled output of

    encoder

    202.

    Training engine

    122 may also backpropagate the error across the layers and/or parameters of

    encoder

    202 so that

    encoder

    202 learns to produce a consistent latent vector representation (e.g., mean and standard deviation vectors) for different orderings of points in the corresponding training mesh.

  • In one embodiment,

    training engine

    122 trains decoder 206 to generate

    reconstructed meshes

    210 from training meshes 208 at varying resolutions until a desired mesh resolution is reached. For example,

    decoder

    206 may include a number of neural network layers, with each layer producing a reconstructed mesh with a higher number of vertices than the previous layer (e.g., by adding vertices to the centers of edges and/or polygon faces in the mesh from the previous layer). In one embodiment, during training of

    decoder

    206,

    training engine

    122 may compare a coarse reconstructed mesh produced by the first layer of

    decoder

    206 with the corresponding training mesh and update parameters of the first layer to reduce the error between the vertices of the reconstructed mesh and corresponding vertices of the training mesh.

    Training engine

    122 may repeat the process with subsequent layers of

    decoder

    206, which upsample the reconstructed mesh from the previous layer, until the output layer of

    decoder

    206 and/or the desired reconstructed mesh resolution is reached.

  • By performing a “coarse to fine” autoencoding of training meshes 208,

    training engine

    122 may allow the coarse mesh from the first layer of

    decoder

    206 to be defined in a given reference coordinate frame and subsequent refinements to the coarse mesh from subsequent layers of

    decoder

    206 to be defined in relative terms with respect to the coarse mesh. As a result, the refinements and, in turn, most of the reconstructed mesh may be independent of the reference frame or global pose of the object. This allows

    decoder

    206 to learn variations in reference coordinate system across meshes more easily and/or potentially omit estimation of global pose during generation of reconstructed meshes 210.

  • In the embodiment shown,

    execution engine

    124 executes one or more portions of

    VAE

    200 to produce a

    mesh

    216 of an

    object

    260 from a

    latent vector value

    212 of a vector in the latent space of

    VAE

    200 and

    images

    258 of

    object

    260. For example,

    execution engine

    124 may input

    latent vector value

    212 into

    decoder

    206 to generate

    mesh

    216 as a decoded representation of the vector.

  • More specifically, in one embodiment,

    execution engine

    124 varies

    latent vector value

    212 inputted into

    decoder

    206 with fixed parameters to generate

    mesh

    216 so that

    mesh

    216 reproduces an

    object

    260 captured in a set of

    images

    258. In one or more embodiments,

    images

    258 are associated with a set of assumptions that allow

    mesh

    216 to be reconstructed base on

    images

    258. For example,

    images

    258 may be associated with known camera poses that generate multiple views of

    object

    260, multiple lighting conditions that allow

    object

    260 to be captured under different illuminations, and/or Lambertian surfaces on

    object

    260 that have isotropic luminance (i.e., surfaces with uniform brightness from any direction of view).

  • In one embodiment,

    execution engine

    124 initially selects

    latent vector value

    212 based on one or more criteria. For example,

    execution engine

    124 may randomly select the initial

    latent vector value

    212 and/or set the initial

    latent vector value

    212 to a default latent vector value associated with

    decoder

    206. In another example,

    execution engine

    124 may set the initial

    latent vector value

    212 based on sparse features extracted from 2D images 258 (e.g., features extracted using a scale-invariant feature transform (SIFT) technique, a corner detection technique, and/or another image feature detection technique).

    Execution engine

    124 may use the sparse features to generate the initial

    latent vector value

    212 by estimating 3D locations of the sparse features based on the assumptions associated with

    images

    258, inputting the locations into

    encoder

    202, and obtaining the initial

    latent vector value

    212 based on output from

    encoder

    202.

  • In one embodiment,

    execution engine

    124 uses assumptions associated with

    images

    258 to determine

    geometric constraints

    222 associated with

    object

    260, which may include constraints related to the shape and/or geometry of

    object

    260.

    Execution engine

    124 also refines

    mesh

    216 by updating

    latent vector value

    212 based on

    mesh

    216 and

    geometric constraints

    222.

  • In one embodiment,

    execution engine

    124 uses

    geometric constraints

    222 to calculate one or more errors associated with

    mesh

    216 and updates

    latent vector value

    212 based on gradients associated with the errors. For example,

    execution engine

    124 may use known camera poses and/or lighting conditions associated with

    images

    258 to back-project an image from a first camera to mesh 216 and project a warped image back to a second camera.

    Execution engine

    124 may calculate a photometric error and/or silhouette error between the warped image and a corresponding image observation of

    object

    260 from images 258 (e.g., an image of

    object

    260 taken from the second camera's location and/or under the same lighting conditions used to produce the warped image).

    Execution engine

    124 may use gradients associated with the photometric and/or silhouette error to modify

    latent vector value

    212 so that

    mesh

    216 better approximates the shape of

    object

    260.

    Execution engine

    124 may also repeat the process, thus iteratively updating

    latent vector value

    212 to search the latent space associated with

    VAE

    200 and using

    decoder

    206 to generate a more

    accurate mesh

    216 from

    latent vector value

    212 until

    mesh

    216 is a substantially accurate representation of

    object

    260.

  • In one embodiment,

    execution engine

    124 generates warped images of

    mesh

    216 for comparison to ground

    truth images

    258 of

    object

    260 by casting a ray from the first camera toward

    mesh

    216, selecting the ray's closest point of intersection on

    mesh

    216, and casting another ray from the point of intersection to the second camera. During this process, a face of

    mesh

    216 may be represented as a binary indicator function in an image, where the face is “visible” in the image at locations where rays from the corresponding camera intersect with the face and invisible otherwise. Because the indicator function is binary and includes an abrupt change from “seen” pixels of the face to “unseen” pixels elsewhere, the image may be non-differentiable, which may interfere with generating gradients that are used to update

    latent vector value

    212.

  • In one or more embodiments,

    execution engine

    124 generates images of

    mesh

    216 using differentiable indicator functions that smooth the transition between visible and invisible portions of faces in

    mesh

    216. For example, a face in

    mesh

    216 may have an indicator function that shows the face as “visible” wherever a ray from a camera intersects the face, invisible where a ray from the camera does not intersect the face, and smoothly but quickly transitioning between visible and invisible in the vicinity of the border between the two.

  • When

    mesh

    216 is generated from a single

    latent vector value

    212 inputted into decoder,

    decoder

    206 may be required to learn the prior for the

    entire object

    260. As a result,

    execution engine

    124 may be capable of generating

    mesh

    216 as an accurate reconstruction of

    object

    260 only when

    object

    260 belongs to the distribution of training meshes 208 used to produce

    VAE

    200.

  • In one or more embodiments,

    execution engine

    124 reduces the number and/or complexity of mesh priors learned by

    decoder

    206 by dividing

    mesh

    216 into multiple

    smaller meshlets

    218 that represent different portions of

    mesh

    218. For example,

    execution engine

    124 may generate each meshlet as one or more polygons, surfaces, and/or shapes in

    mesh

    216. Each meshlet may be defined using more basic priors than a much

    larger mesh

    216 of

    object

    260, which may allow the priors to be generalized to a greater variety of objects and/or shapes. Each meshlet may also encompass a different part of

    mesh

    218, and

    meshlets

    218 may be combined to produce

    mesh

    218.

  • As with generation of

    mesh

    216 from a single

    latent vector value

    212 inputted into

    decoder

    206, in one embodiment,

    execution engine

    124 inputs multiple latent vector values 214 into

    decoder

    206 to generate multiple corresponding

    meshlets

    218 as output from

    decoder

    206.

    Execution engine

    124 may similarly update latent vector values 214 to enforce subsets of

    geometric constraints

    222 associated with

    individual meshlets

    218 and/or reduce errors between

    meshlets

    218 and the corresponding portions of

    object

    260. For example,

    execution engine

    124 may map a meshlet to a portion of

    object

    260 and use

    images

    258 containing the portion to determine

    geometric constraints

    222 associated with the portion.

    Execution engine

    124 may use

    geometric constraints

    222 to generate errors between the meshlet and

    images

    258 and perform gradient descent on the latent vector value used to produce the meshlet based on the errors.

  • In the embodiment shown, meshlets 218 are additionally associated with

    poses

    220 that project meshlets 218 back into

    mesh

    216. For example, the shape and/or geometry of each meshlet may be generated from a point in the latent space of

    VAE

    200. Each meshlet may also be associated with one or more custom poses 220 (e.g., one or more rotations, translations, and/or other transformations) that align the global pose of

    images

    258 and/or mesh 216 with the canonical pose of the meshlet learned by

    decoder

    206.

  • In one embodiment,

    execution engine

    124 uses gradients and/or errors associated with

    geometric constraints

    222 to update both latent vector values 214 of

    meshlets

    218 and poses 220 that transform

    meshlets

    218 into their corresponding positions and/or orientations in

    mesh

    216. For example, object 260 may include a rectangular surface with four right-angle corners. During reconstruction of

    mesh

    216 for

    object

    260,

    execution engine

    124 may use

    geometric constraints

    222 to identify a value in the latent space associated with

    VAE

    200 that produces a meshlet with a right-angle corner and learn four

    different poses

    220 that map the meshlet to the four corners of the rectangular surface.

  • In one embodiment,

    execution engine

    124 iteratively increases a resolution of

    meshlets

    218 to meet

    geometric constraints

    222. For example,

    execution engine

    124 may use a first layer of

    decoder

    206 to generate an initial

    coarse mesh

    216 that matches low-

    resolution images

    258 of

    object

    260.

    Execution engine

    124 may use subsequent layers of

    decoder

    206 to upsample the

    coarse mesh

    216 into increasingly small and

    numerous meshlets

    218. At each layer of

    decoder

    206,

    execution engine

    124 may perform gradient descent on latent vector values 214 used to produce

    meshlets

    218 and poses 220 of

    meshlets

    218 with respect to the coarse mesh until the desired

    mesh

    216 and/or meshlet resolution is reached.

  • In one embodiment,

    execution engine

    124 reconstructs mesh 216 from

    meshlets

    218 and the

    corresponding poses

    220 and stores the reconstructed

    mesh

    216 in association with

    object

    260. For example,

    execution engine

    124 may apply

    poses

    220 to the

    corresponding meshlets

    218 to map the points in the canonical poses of

    meshlets

    218 to their locations in

    mesh

    216.

    Execution engine

    124 may then render the completed

    mesh

    216 and/or store the points in

    mesh

    216 under an identifier for

    object

    260, with

    images

    258 of

    object

    260, and/or with other metadata for

    object

    260.

  • FIG. 3

    is a flow diagram of method steps for performing mesh reconstruction using data-driven priors, according to various embodiments. Although the method steps are described in conjunction with the systems of

    FIGS. 1 and 2

    , persons skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the present disclosure.

  • As shown,

    training engine

    122 generates 302 a machine learning model as a VAE that learns to reconstruct a set of training meshes inputted into the VAE, as described in further detail below with respect to

    FIG. 4

    . In various embodiments, the training meshes may include 2D and/or 3D meshes and/or meshlets.

  • Next,

    execution engine

    124 executes 304 the machine learning model to produce a mesh of an object from a first value of a vector in a latent space. For example,

    execution engine

    124 may select the first value of the vector as a random value, a default value, a value that is based on a set of image observations of the object, and/or a value that is based on sparse features extracted from the image observations.

    Execution engine

    124 may input the first value into a decoder in the VAE and obtain the mesh as output from the decoder. The similarity of the mesh to the object may be affected by the criteria used to select the first value of the vector (e.g., a first value of the vector that reflects sparse features from the image observations is likely to produce a mesh that is more similar to the object than a first value of the vector that is selected randomly).

  • Execution engine

    124 refines 306 the mesh of the object by selecting a second value of the vector in the latent space based on one or more geometric constraints associated with the image observations of the object. For example,

    execution engine

    124 may use known camera poses and/or lighting conditions under which the image observations were made to project and/or back-project warped images of the mesh.

    Execution engine

    124 may also calculate photometric and/or silhouette errors between the warped images of the mesh and corresponding image observations (e.g., image observations made under the same camera poses and/or lighting conditions).

    Execution engine

    124 may then use gradients associated with the errors and constant parameters of the machine learning model to update the value of the vector.

  • In another example,

    execution engine

    124 may project and/or divide the mesh into a set of meshlets that represent different portions of the mesh. For each meshlet,

    execution engine

    124 may select a value of the vector in the latent space to learn a prior for a portion of the mesh represented by the meshlet.

    Execution engine

    124 may also learn a custom pose of the meshlet that maps the meshlet into a position and/or orientation within the mesh and/or aligns a global pose of the image observations with the canonical pose of the meshlet learned by the machine learning model.

    Execution engine

    124 may then reconstruct the mesh from the set of meshlets by using the custom poses of the meshlets to map points in the meshlets into the reference system of the mesh.

  • Finally,

    execution engine

    124

    stores

    308 the mesh in association with the object. For example,

    execution engine

    124 may store the points in

    mesh

    216 under an identifier for the object, with images of the object, and/or with other metadata for the object.

  • FIG. 4

    is a flow diagram of method steps for training a machine learning model to learn data-driven mesh priors, according to various embodiments. Although the method steps are described in conjunction with the systems of

    FIGS. 1 and 2

    , persons skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the present disclosure.

  • As shown,

    training engine

    122 applies 402 an encoder to multiple orderings of points in a training mesh to generate intermediate representations of the multiple orderings of points. For example,

    training engine

    122 may select a random subset of all possible orderings of points in the training mesh as input to the encoder. The encoder may “encode” each ordering of points into a vector in a latent space.

  • Next,

    training engine

    122

    averages

    404 the intermediate representations into a standardized value of a vector in the latent space. The standardized value may define the mean and standard deviation vectors outputted by an encoder in a VAE.

  • Training engine

    122 then trains 406 a decoder in the VAE to reconstruct the training mesh from the standardized value.

    Training engine

    122 also optionally trains 408 an encoder in the VAE to generate the standardized value from each ordering of points in the training mesh. For example,

    training engine

    122 may calculate an error between the reconstructed mesh and the training mesh as the minimum error between an ordering of points in the training mesh inputted into the encoder and the outputted ordering of points from the decoder. The error may be based on an intersection of points between the training mesh and reconstructed mesh, a distance metric between the training mesh and reconstructed mesh, and/or other measures of similarity or dissimilarity between the training mesh and reconstructed mesh.

    Training engine

    122 may backpropagate the error across the layers and/or parameters of the decoder so that the decoder learns to reconstruct the training mesh based on the standardized value.

    Training engine

    122 may also backpropagate the error across the layers and/or parameters of the encoder so that the encoder learns to output the standardized value for different orderings of points in the corresponding training mesh.

  • Example Hardware Architecture
  • FIG. 5

    is a block diagram illustrating a computer system 500 configured to implement one or more aspects of various embodiments. In some embodiments, computer system 500 is a server machine operating in a data center or a cloud computing environment that provides scalable computing resources as a service over a network. In some embodiments, computer system 500 implements the functionality of

    computing device

    100 of

    FIG. 1

    .

  • In various embodiments, computer system 500 includes, without limitation, a central processing unit (CPU) 502 and a

    system memory

    504 coupled to a

    parallel processing subsystem

    512 via a

    memory bridge

    505 and a

    communication path

    513.

    Memory bridge

    505 is further coupled to an I/O (input/output)

    bridge

    507 via a

    communication path

    506, and I/

    O bridge

    507 is, in turn, coupled to a

    switch

    516.

  • In one embodiment, I/

    O bridge

    507 is configured to receive user input information from

    optional input devices

    508, such as a keyboard or a mouse, and forward the input information to

    CPU

    502 for processing via

    communication path

    506 and

    memory bridge

    505. In some embodiments, computer system 500 may be a server machine in a cloud computing environment. In such embodiments, computer system 500 may not have

    input devices

    508. Instead, computer system 500 may receive equivalent input information by receiving commands in the form of messages transmitted over a network and received via the

    network adapter

    518. In one embodiment,

    switch

    516 is configured to provide connections between I/

    O bridge

    507 and other components of the computer system 500, such as a

    network adapter

    518 and various add-in

    cards

    520 and 521.

  • In one embodiment, I/

    O bridge

    507 is coupled to a

    system disk

    514 that may be configured to store content and applications and data for use by

    CPU

    502 and

    parallel processing subsystem

    512. In one embodiment,

    system disk

    514 provides non-volatile storage for applications and data and may include fixed or removable hard disk drives, flash memory devices, and CD-ROM (compact disc read-only-memory), DVD-ROM (digital versatile disc-ROM), Blu-ray, HD-DVD (high definition DVD), or other magnetic, optical, or solid state storage devices. In various embodiments, other components, such as universal serial bus or other port connections, compact disc drives, digital versatile disc drives, film recording devices, and the like, may be connected to I/

    O bridge

    507 as well.

  • In various embodiments,

    memory bridge

    505 may be a Northbridge chip, and I/

    O bridge

    507 may be a Southbridge chip. In addition,

    communication paths

    506 and 513, as well as other communication paths within computer system 500, may be implemented using any technically suitable protocols, including, without limitation, AGP (Accelerated Graphics Port), HyperTransport, or any other bus or point-to-point communication protocol known in the art.

  • In some embodiments,

    parallel processing subsystem

    512 comprises a graphics subsystem that delivers pixels to an

    optional display device

    510 that may be any conventional cathode ray tube, liquid crystal display, light-emitting diode display, or the like. In such embodiments, the

    parallel processing subsystem

    512 incorporates circuitry optimized for graphics and video processing, including, for example, video output circuitry. As described in greater detail below in conjunction with

    FIGS. 6 and 7

    , such circuitry may be incorporated across one or more parallel processing units (PPUs), also referred to herein as parallel processors, included within

    parallel processing subsystem

    512.

  • In other embodiments, the

    parallel processing subsystem

    512 incorporates circuitry optimized for general purpose and/or compute processing. Again, such circuitry may be incorporated across one or more PPUs included within

    parallel processing subsystem

    512 that are configured to perform such general purpose and/or compute operations. In yet other embodiments, the one or more PPUs included within

    parallel processing subsystem

    512 may be configured to perform graphics processing, general purpose processing, and compute processing operations.

    System memory

    504 includes at least one device driver configured to manage the processing operations of the one or more PPUs within

    parallel processing subsystem

    512.

  • In various embodiments,

    parallel processing subsystem

    512 may be integrated with one or more of the other elements of

    FIG. 5

    to form a single system. For example,

    parallel processing subsystem

    512 may be integrated with

    CPU

    502 and other connection circuitry on a single chip to form a system on chip (SoC).

  • In one embodiment,

    CPU

    502 is the master processor of computer system 500, controlling and coordinating operations of other system components. In one embodiment,

    CPU

    502 issues commands that control the operation of PPUs. In some embodiments,

    communication path

    513 is a PCI Express link, in which dedicated lanes are allocated to each PPU, as is known in the art. Other communication paths may also be used. PPU advantageously implements a highly parallel processing architecture. A PPU may be provided with any amount of local parallel processing memory (PP memory).

  • It will be appreciated that the system shown herein is illustrative and that variations and modifications are possible. The connection topology, including the number and arrangement of bridges, the number of

    CPUs

    502, and the number of

    parallel processing subsystems

    512, may be modified as desired. For example, in some embodiments,

    system memory

    504 could be connected to

    CPU

    502 directly rather than through

    memory bridge

    505, and other devices would communicate with

    system memory

    504 via

    memory bridge

    505 and

    CPU

    502. In other embodiments,

    parallel processing subsystem

    512 may be connected to I/

    O bridge

    507 or directly to

    CPU

    502, rather than to

    memory bridge

    505. In still other embodiments, I/

    O bridge

    507 and

    memory bridge

    505 may be integrated into a single chip instead of existing as one or more discrete devices. Lastly, in certain embodiments, one or more components shown in

    FIG. 5

    may not be present. For example, switch 516 could be eliminated, and

    network adapter

    518 and add-in

    cards

    520, 521 would connect directly to I/

    O bridge

    507.

  • FIG. 6

    is a block diagram of a parallel processing unit (PPU) 602 included in the

    parallel processing subsystem

    512 of

    FIG. 5

    , according to various embodiments. Although

    FIG. 6

    depicts one

    PPU

    602, as indicated above,

    parallel processing subsystem

    512 may include any number of

    PPUs

    602. As shown,

    PPU

    602 is coupled to a local parallel processing (PP)

    memory

    604.

    PPU

    602 and

    PP memory

    604 may be implemented using one or more integrated circuit devices, such as programmable processors, application specific integrated circuits (ASICs), or memory devices, or in any other technically feasible fashion.

  • In some embodiments,

    PPU

    602 comprises a graphics processing unit (GPU) that may be configured to implement a graphics rendering pipeline to perform various operations related to generating pixel data based on graphics data supplied by

    CPU

    502 and/or

    system memory

    504. When processing graphics data,

    PP memory

    604 can be used as graphics memory that stores one or more conventional frame buffers and, if needed, one or more other render targets as well. Among other things,

    PP memory

    604 may be used to store and update pixel data and deliver final pixel data or display frames to an

    optional display device

    510 for display. In some embodiments,

    PPU

    602 also may be configured for general-purpose processing and compute operations. In some embodiments, computer system 500 may be a server machine in a cloud computing environment. In such embodiments, computer system 500 may not have a

    display device

    510. Instead, computer system 500 may generate equivalent output information by transmitting commands in the form of messages over a network via the

    network adapter

    518.

  • In some embodiments,

    CPU

    502 is the master processor of computer system 500, controlling and coordinating operations of other system components. In one embodiment,

    CPU

    502 issues commands that control the operation of

    PPU

    602. In some embodiments,

    CPU

    502 writes a stream of commands for

    PPU

    602 to a data structure (not explicitly shown in either

    FIG. 5

    or

    FIG. 6

    ) that may be located in

    system memory

    504,

    PP memory

    604, or another storage location accessible to both

    CPU

    502 and

    PPU

    602. A pointer to the data structure is written to a command queue, also referred to herein as a pushbuffer, to initiate processing of the stream of commands in the data structure. In one embodiment, the

    PPU

    602 reads command streams from the command queue and then executes commands asynchronously relative to the operation of

    CPU

    502. In embodiments where multiple pushbuffers are generated, execution priorities may be specified for each pushbuffer by an application program via device driver to control scheduling of the different pushbuffers.

  • In one embodiment,

    PPU

    602 includes an I/O (input/output)

    unit

    605 that communicates with the rest of computer system 500 via the

    communication path

    513 and

    memory bridge

    505. In one embodiment, I/

    O unit

    605 generates packets (or other signals) for transmission on

    communication path

    513 and also receives all incoming packets (or other signals) from

    communication path

    513, directing the incoming packets to appropriate components of

    PPU

    602. For example, commands related to processing tasks may be directed to a

    host interface

    606, while commands related to memory operations (e.g., reading from or writing to PP memory 604) may be directed to a

    crossbar unit

    610. In one embodiment,

    host interface

    606 reads each command queue and transmits the command stream stored in the command queue to a

    front end

    612.

  • As mentioned above in conjunction with

    FIG. 5

    , the connection of

    PPU

    602 to the rest of computer system 500 may be varied. In some embodiments,

    parallel processing subsystem

    512, which includes at least one

    PPU

    602, is implemented as an add-in card that can be inserted into an expansion slot of computer system 500. In other embodiments,

    PPU

    602 can be integrated on a single chip with a bus bridge, such as

    memory bridge

    505 or I/

    O bridge

    507. Again, in still other embodiments, some or all of the elements of

    PPU

    602 may be included along with

    CPU

    502 in a single integrated circuit or system of chip (SoC).

  • In one embodiment,

    front end

    612 transmits processing tasks received from

    host interface

    606 to a work distribution unit (not shown) within task/

    work unit

    607. In one embodiment, the work distribution unit receives pointers to processing tasks that are encoded as task metadata (TMD) and stored in memory. The pointers to TMDs are included in a command stream that is stored as a command queue and received by the

    front end unit

    612 from the

    host interface

    606. Processing tasks that may be encoded as TMDs include indices associated with the data to be processed as well as state parameters and commands that define how the data is to be processed. For example, the state parameters and commands could define the program to be executed on the data. Also for example, the TMD could specify the number and configuration of the set of CTAs. Generally, each TMD corresponds to one task. The task/

    work unit

    607 receives tasks from the

    front end

    612 and ensures that

    GPCs

    608 are configured to a valid state before the processing task specified by each one of the TMDs is initiated. A priority may be specified for each TMD that is used to schedule the execution of the processing task. Processing tasks also may be received from the processing cluster array 630. Optionally, the TMD may include a parameter that controls whether the TMD is added to the head or the tail of a list of processing tasks (or to a list of pointers to the processing tasks), thereby providing another level of control over execution priority.

  • In one embodiment,

    PPU

    602 implements a highly parallel processing architecture based on a processing cluster array 630 that includes a set of C general processing clusters (GPCs) 608, where C≥1. Each

    GPC

    608 is capable of executing a large number (e.g., hundreds or thousands) of threads concurrently, where each thread is an instance of a program. In various applications,

    different GPCs

    608 may be allocated for processing different types of programs or for performing different types of computations. The allocation of

    GPCs

    608 may vary depending on the workload arising for each type of program or computation.

  • In one embodiment,

    memory interface

    614 includes a set of D of

    partition units

    615, where

    D

    1. Each

    partition unit

    615 is coupled to one or more dynamic random access memories (DRAMs) 620 residing within

    PPM memory

    604. In some embodiments, the number of

    partition units

    615 equals the number of DRAMs 620, and each

    partition unit

    615 is coupled to a different DRAM 620. In other embodiments, the number of

    partition units

    615 may be different than the number of DRAMs 620. Persons of ordinary skill in the art will appreciate that a DRAM 620 may be replaced with any other technically suitable storage device. In operation, various render targets, such as texture maps and frame buffers, may be stored across DRAMs 620, allowing

    partition units

    615 to write portions of each render target in parallel to efficiently use the available bandwidth of

    PP memory

    604.

  • In one embodiment, a given

    GPC

    608 may process data to be written to any of the DRAMs 620 within

    PP memory

    604. In one embodiment,

    crossbar unit

    610 is configured to route the output of each

    GPC

    608 to the input of any

    partition unit

    615 or to any

    other GPC

    608 for further processing.

    GPCs

    608 communicate with

    memory interface

    614 via

    crossbar unit

    610 to read from or write to various DRAMs 620. In some embodiments,

    crossbar unit

    610 has a connection to I/

    O unit

    605, in addition to a connection to

    PP memory

    604 via

    memory interface

    614, thereby enabling the processing cores within the

    different GPCs

    608 to communicate with

    system memory

    504 or other memory not local to

    PPU

    602. In the embodiment of

    FIG. 6

    ,

    crossbar unit

    610 is directly connected with I/

    O unit

    605. In various embodiments,

    crossbar unit

    610 may use virtual channels to separate traffic streams between the

    GPCs

    608 and

    partition units

    615.

  • In one embodiment,

    GPCs

    608 can be programmed to execute processing tasks relating to a wide variety of applications, including, without limitation, linear and nonlinear data transforms, filtering of video and/or audio data, modeling operations (e.g., applying laws of physics to determine position, velocity and other attributes of objects), image rendering operations (e.g., tessellation shader, vertex shader, geometry shader, and/or pixel/fragment shader programs), general compute operations, etc. In operation,

    PPU

    602 is configured to transfer data from

    system memory

    504 and/or

    PP memory

    604 to one or more on-chip memory units, process the data, and write result data back to

    system memory

    504 and/or

    PP memory

    604. The result data may then be accessed by other system components, including

    CPU

    502, another

    PPU

    602 within

    parallel processing subsystem

    512, or another

    parallel processing subsystem

    512 within computer system 500.

  • In one embodiment, any number of

    PPUs

    602 may be included in a

    parallel processing subsystem

    512. For example,

    multiple PPUs

    602 may be provided on a single add-in card, or multiple add-in cards may be connected to

    communication path

    513, or one or more of

    PPUs

    602 may be integrated into a bridge chip.

    PPUs

    602 in a multi-PPU system may be identical to or different from one another. For example,

    different PPUs

    602 might have different numbers of processing cores and/or different amounts of

    PP memory

    604. In implementations where

    multiple PPUs

    602 are present, those PPUs may be operated in parallel to process data at a higher throughput than is possible with a

    single PPU

    602. Systems incorporating one or more PPUs 602 may be implemented in a variety of configurations and form factors, including, without limitation, desktops, laptops, handheld personal computers or other handheld devices, servers, workstations, game consoles, embedded systems, and the like.

  • FIG. 7

    is a block diagram of a general processing cluster (GPC) 608 included in the parallel processing unit (PPU) 602 of

    FIG. 6

    , according to various embodiments. As shown, the

    GPC

    608 includes, without limitation, a

    pipeline manager

    705, one or

    more texture units

    715, a

    preROP unit

    725, a

    work distribution crossbar

    730, and an L1.5

    cache

    735.

  • In one embodiment,

    GPC

    608 may be configured to execute a large number of threads in parallel to perform graphics, general processing and/or compute operations. As used herein, a “thread” refers to an instance of a particular program executing on a particular set of input data. In some embodiments, single-instruction, multiple-data (SIMD) instruction issue techniques are used to support parallel execution of a large number of threads without providing multiple independent instruction units. In other embodiments, single-instruction, multiple-thread (SIMT) techniques are used to support parallel execution of a large number of generally synchronized threads, using a common instruction unit configured to issue instructions to a set of processing engines within

    GPC

    608. Unlike a SIMD execution regime, where all processing engines typically execute identical instructions, SIMT execution allows different threads to more readily follow divergent execution paths through a given program. Persons of ordinary skill in the art will understand that a SIMD processing regime represents a functional subset of a SIMT processing regime.

  • In one embodiment, operation of

    GPC

    608 is controlled via a

    pipeline manager

    705 that distributes processing tasks received from a work distribution unit (not shown) within task/

    work unit

    607 to one or more streaming multiprocessors (SMs) 710.

    Pipeline manager

    705 may also be configured to control a

    work distribution crossbar

    730 by specifying destinations for processed data output by

    SMs

    710.

  • In various embodiments,

    GPC

    608 includes a set of M of

    SMs

    710, where

    M

    1. Also, each

    SM

    710 includes a set of functional execution units (not shown), such as execution units and load-store units. Processing operations specific to any of the functional execution units may be pipelined, which enables a new instruction to be issued for execution before a previous instruction has completed execution. Any combination of functional execution units within a given

    SM

    710 may be provided. In various embodiments, the functional execution units may be configured to support a variety of different operations including integer and floating point arithmetic (e.g., addition and multiplication), comparison operations, Boolean operations (AND, OR, 50R), bit-shifting, and computation of various algebraic functions (e.g., planar interpolation and trigonometric, exponential, and logarithmic functions, etc.). Advantageously, the same functional execution unit can be configured to perform different operations.

  • In various embodiments, each

    SM

    710 includes multiple processing cores. In one embodiment, the

    SM

    710 includes a large number (e.g., 128, etc.) of distinct processing cores. Each core may include a fully-pipelined, single-precision, double-precision, and/or mixed precision processing unit that includes a floating point arithmetic logic unit and an integer arithmetic logic unit. In one embodiment, the floating point arithmetic logic units implement the IEEE 754-2008 standard for floating point arithmetic. In one embodiment, the cores include 64 single-precision (32-bit) floating point cores, 64 integer cores, 32 double-precision (64-bit) floating point cores, and 8 tensor cores.

  • In one embodiment, tensor cores configured to perform matrix operations, and, in one embodiment, one or more tensor cores are included in the cores. In particular, the tensor cores are configured to perform deep learning matrix arithmetic, such as convolution operations for neural network training and inferencing. In one embodiment, each tensor core operates on a 4×4 matrix and performs a matrix multiply and accumulate operation D=A×B+C, where A, B, C, and D are 4×4 matrices.

  • In one embodiment, the matrix multiply inputs A and B are 16-bit floating point matrices, while the accumulation matrices C and D may be 16-bit floating point or 32-bit floating point matrices. Tensor Cores operate on 16-bit floating point input data with 32-bit floating point accumulation. The 16-bit floating point multiply requires 64 operations and results in a full precision product that is then accumulated using 32-bit floating point addition with the other intermediate products for a 4×4×4 matrix multiply. In practice, Tensor Cores are used to perform much larger two-dimensional or higher dimensional matrix operations, built up from these smaller elements. An API, such as CUDA 9 C++ API, exposes specialized matrix load, matrix multiply and accumulate, and matrix store operations to efficiently use tensor cores from a CUDA-C++ program. At the CUDA level, the warp-level interface assumes 16×16 size matrices spanning all 32 threads of the warp.

  • Neural networks rely heavily on matrix math operations, and complex multi-layered networks require tremendous amounts of floating-point performance and bandwidth for both efficiency and speed. In various embodiments, with thousands of processing cores, optimized for matrix math operations, and delivering tens to hundreds of TFLOPS of performance, the

    SMs

    710 provide a computing platform capable of delivering performance required for deep neural network-based artificial intelligence and machine learning applications.

  • In various embodiments, each

    SM

    710 may also comprise multiple special function units (SFUs) that perform special functions (e.g., attribute evaluation, reciprocal square root, and the like). In one embodiment, the SFUs may include a tree traversal unit configured to traverse a hierarchical tree data structure. In one embodiment, the SFUs may include texture unit configured to perform texture map filtering operations. In one embodiment, the texture units are configured to load texture maps (e.g., a 2D array of texels) from memory and sample the texture maps to produce sampled texture values for use in shader programs executed by the SM. In various embodiments, each

    SM

    710 also comprises multiple load/store units (LSUs) that implement load and store operations between the shared memory/L1 cache and register files internal to the

    SM

    710.

  • In one embodiment, each

    SM

    710 is configured to process one or more thread groups. As used herein, a “thread group” or “warp” refers to a group of threads concurrently executing the same program on different input data, with one thread of the group being assigned to a different execution unit within an

    SM

    710. A thread group may include fewer threads than the number of execution units within the

    SM

    710, in which case some of the execution may be idle during cycles when that thread group is being processed. A thread group may also include more threads than the number of execution units within the

    SM

    710, in which case processing may occur over consecutive clock cycles. Since each

    SM

    710 can support up to G thread groups concurrently, it follows that up to G*M thread groups can be executing in

    GPC

    608 at any given time.

  • Additionally, in one embodiment, a plurality of related thread groups may be active (in different phases of execution) at the same time within an

    SM

    710. This collection of thread groups is referred to herein as a “cooperative thread array” (“CTA”) or “thread array.” The size of a particular CTA is equal to m*k, where k is the number of concurrently executing threads in a thread group, which is typically an integer multiple of the number of execution units within the

    SM

    710, and m is the number of thread groups simultaneously active within the

    SM

    710. In some embodiments, a

    single SM

    710 may simultaneously support multiple CTAs, where such CTAs are at the granularity at which work is distributed to the

    SMs

    710.

  • In one embodiment, each

    SM

    710 contains a level one (L1) cache or uses space in a corresponding L1 cache outside of the

    SM

    710 to support, among other things, load and store operations performed by the execution units. Each

    SM

    710 also has access to level two (L2) caches (not shown) that are shared among all

    GPCs

    608 in

    PPU

    602. The L2 caches may be used to transfer data between threads. Finally,

    SMs

    710 also have access to off-chip “global” memory, which may include

    PP memory

    604 and/or

    system memory

    504. It is to be understood that any memory external to

    PPU

    602 may be used as global memory. Additionally, as shown in

    FIG. 7

    , a level one-point-five (L1.5)

    cache

    735 may be included within

    GPC

    608 and configured to receive and hold data requested from memory via

    memory interface

    614 by

    SM

    710. Such data may include, without limitation, instructions, uniform data, and constant data. In embodiments having

    multiple SMs

    710 within

    GPC

    608, the

    SMs

    710 may beneficially share common instructions and data cached in L1.5

    cache

    735.

  • In one embodiment, each

    GPC

    608 may have an associated memory management unit (MMU) 720 that is configured to map virtual addresses into physical addresses. In various embodiments,

    MMU

    720 may reside either within

    GPC

    608 or within the

    memory interface

    614. The

    MMU

    720 includes a set of page table entries (PTEs) used to map a virtual address to a physical address of a tile or memory page and optionally a cache line index. The

    MMU

    720 may include address translation lookaside buffers (TLB) or caches that may reside within

    SMs

    710, within one or more L1 caches, or within

    GPC

    608.

  • In one embodiment, in graphics and compute applications,

    GPC

    608 may be configured such that each

    SM

    710 is coupled to a

    texture unit

    715 for performing texture mapping operations, such as determining texture sample positions, reading texture data, and filtering texture data.

  • In one embodiment, each

    SM

    710 transmits a processed task to work

    distribution crossbar

    730 in order to provide the processed task to another

    GPC

    608 for further processing or to store the processed task in an L2 cache (not shown),

    parallel processing memory

    604, or

    system memory

    504 via

    crossbar unit

    610. In addition, a pre-raster operations (preROP)

    unit

    725 is configured to receive data from

    SM

    710, direct data to one or more raster operations (ROP) units within

    partition units

    615, perform optimizations for color blending, organize pixel color data, and perform address translations.

  • It will be appreciated that the architecture described herein is illustrative and that variations and modifications are possible. Among other things, any number of processing units, such as

    SMs

    710,

    texture units

    715, or

    preROP units

    725, may be included within

    GPC

    608. Further, as described above in conjunction with

    FIG. 6

    ,

    PPU

    602 may include any number of

    GPCs

    608 that are configured to be functionally similar to one another so that execution behavior does not depend on which

    GPC

    608 receives a particular processing task. Further, each

    GPC

    608 operates independently of the

    other GPCs

    608 in

    PPU

    602 to execute tasks for one or more application programs.

  • FIG. 8

    is a block diagram of an exemplary system on a chip (SoC)

    integrated circuit

    800, according to various embodiments. SoC

    integrated circuit

    800 includes one or more application processors 802 (e.g., CPUs), one or more graphics processors 804 (e.g., GPUs), one or

    more image processors

    806, and/or one or

    more video processors

    808. SoC

    integrated circuit

    800 also includes peripheral or bus components such as a

    serial interface controller

    814 that implements Universal Serial Bus (USB), Universal Asynchronous Receiver/Transmitter (UART), Serial Peripheral Interface (SPI), Secure Digital Input Output (SDIO), inter-IC sound (I2S), and/or Inter-Integrated Circuit (I2C). SoC

    integrated circuit

    800 additionally includes a display device 818 coupled to a

    display interface

    820 such as high-definition multimedia interface (HDMI) and/or a mobile industry processor interface (MIPI). SoC

    integrated circuit

    800 further includes a

    Flash memory subsystem

    824 that provides storage on the integrated circuit, as well as a

    memory controller

    822 that provides a memory interface for access to memory devices.

  • In one or more embodiments, SoC

    integrated circuit

    800 is implemented using one or more types of integrated circuit components. For example, SoC

    integrated circuit

    800 may include one or more processor cores for

    application processors

    802 and/or

    graphics processors

    804. Additional functionality associated with

    serial interface controller

    814, display device 818,

    display interface

    820,

    image processors

    806,

    video processors

    808, AI acceleration, machine vision, and/or other specialized tasks may be provided by application-specific integrated circuits (ASICs), application-specific standard parts (ASSPs), field-programmable gate arrays (FPGAs), and/or other types of customized components.

  • In sum, the disclosed techniques use a VAE to learn priors associated with meshes and/or portions of meshes. A decoder in the VAE is used to generate additional meshes of objects by searching the latent space of the VAE for latent vector values that reduce errors between the meshes and image observations of the objects. Each mesh may also be subdivided into meshlets, and shapes and poses of the meshlets may be individually refined to meet geometric constraints associated with the image observations before the meshlets are combined back into the mesh.

  • One technological advantage of the disclosed techniques is that mesh priors learned by the VAE are used to perform inverse rendering of objects in a way that enforces geometric constraints associated with image observations of the objects. Another technological advantage of the disclosed techniques includes reduced complexity associated with estimating the global pose of the objects by performing coarse-to-fine rendering of the meshes. A third technological advantage of the disclosed techniques is increased generalizability and reduced complexity in reconstructing the meshes through the division of the meshes into meshlets. Consequently, the disclosed techniques provide technological improvements in machine learning models, computer systems, applications, and/or techniques for performing mesh reconstruction.

  • 1. In some embodiments, a processor comprises logic to predict one or more three-dimensional (3D) mesh representations based on a plurality of digital images, wherein the one or more 3D mesh representations are refined by minimizing a difference between the one or more 3D mesh representations and the plurality of digital images.

  • 2. The processor of

    clause

    1, wherein predicting the one or more 3D mesh representations based on the plurality of digital images comprises executing a machine learning model to produce a mesh of an object from a first value in a latent space; and refining the mesh of the object by selecting a second value in the latent space based on one or more geometric constraints associated with the plurality of digital images of the object.

  • 3. The processor of clauses 1-2, wherein refining the mesh of the object comprises selecting the first value; calculating an error between the mesh and the plurality of digital images of the object; and performing gradient descent on the first value with parameters of the machine learning model to reduce the error.

  • 4. The processor of clauses 1-3, wherein selecting the first value comprises at least one of randomizing the first value, selecting the first value based on the set of image observations, and initializing the first value based on sparse features extracted from the set of image observations.

  • 5. The processor of clauses 1-4, wherein refining the mesh of the object comprises dividing the mesh into a set of meshlets; for each meshlet in the set of meshlets, selecting the second value in the latent space to learn a prior for a portion of the mesh represented by the meshlet; and reconstructing the mesh from the set of meshlets.

  • 6. The processor of clauses 1-5, wherein refining the mesh of the object further comprises, for each meshlet in the set of meshlets, learning a custom pose of the meshlet that aligns a global pose of the images with a canonical pose of the meshlet.

  • 7. The processor of clauses 1-6, wherein refining the mesh of the object further comprises iteratively increasing a resolution of the set of meshlets to meet the one or more geometric constraints.

  • 8. The processor of clauses 1-7, wherein the logic further generates the machine learning model as a variational autoencoder to reconstruct a set of training meshes inputted into the variational autoencoder.

  • 9. The processor of clauses 1-8, wherein generating the machine learning model comprises for each training mesh in the set of training meshes, aggregating multiple orderings of points in the training mesh into a standardized value in the latent space; and training a decoder in the variational autoencoder to reconstruct the training mesh from the standardized value.

  • 10. The processor of clauses 1-9, wherein aggregating the multiple orderings of points in the training mesh into the standardized value comprises applying an encoder to the multiple orderings of points to generate intermediate representations of the multiple orderings of points; and averaging the intermediate representations into the standardized value.

  • 11. In some embodiments, a method comprises predicting one or more three-dimensional (3D) mesh representations based on a plurality of digital images, wherein the one or more 3D mesh representations are refined by minimizing at least one difference between the one or more 3D mesh representations and the plurality of digital images.

  • 12. The method of clause 11, wherein predicting the one or more 3D mesh representations based on the plurality of digital images comprises executing a machine learning model to produce a mesh of an object from a first value in a latent space; and refining the mesh of the object by selecting a second value in the latent space based on one or more geometric constraints associated with the plurality of digital images of the object.

  • 13. The method of clauses 11-12, further comprising generating the machine learning model as a variational autoencoder to reconstruct a set of training meshes inputted into the variational autoencoder.

  • 14. The method of clauses 11-13, wherein generating the machine learning model comprises for each training mesh in the set of training meshes, aggregating multiple orderings of points in the training mesh into a standardized value in the latent space; and training a decoder in the variational autoencoder to reconstruct the training mesh from the standardized value.

  • 15. The method of clauses 11-14, wherein aggregating the multiple orderings of points in the training mesh into the standardized value comprises applying an encoder to the multiple orderings of points to generate intermediate representations of the multiple orderings of points; and averaging the intermediate representations into the standardized value.

  • 16. In some embodiments, a non-transitory computer readable medium store instructions that, when executed by a processor, cause the processor to at least execute a machine learning model to produce a mesh of an object from a first value in a latent space; refine the mesh of the object by selecting a second value in the latent space based on one or more geometric constraints associated with a set of image observations of the object; and store the mesh in association with the object.

  • 17. The non-transitory computer readable medium of clause 16, wherein refining the mesh of the object comprises selecting the first value; and performing gradient descent on the first value with parameters of the machine learning model to reduce an error between the mesh and the set of image observations.

  • 18. The non-transitory computer readable medium of clauses 16-17, wherein the error comprises at least one of a photometric error and a silhouette error.

  • 19. The non-transitory computer readable medium of clauses 16-18, wherein refining the mesh of the object comprises dividing the mesh into a set of meshlets; for each meshlet in the set of meshlets, selecting the second value in the latent space to learn a prior for a portion of the mesh represented by the meshlet; and reconstructing the mesh from the set of meshlets.

  • 20. The non-transitory computer readable medium of clauses 16-19, wherein refining the mesh of the object further comprises iteratively increasing a resolution of the set of meshlets to meet the one or more geometric constraints.

  • Any and all combinations of any of the claim elements recited in any of the claims and/or any elements described in this application, in any fashion, fall within the contemplated scope of the present embodiments and protection.

  • The descriptions of the various embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.

  • Aspects of the present embodiments may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module” or “system.” In addition, any hardware and/or software technique, process, function, component, engine, module, or system described in the present disclosure may be implemented as a circuit or set of circuits. Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.

  • Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.

  • Aspects of the present disclosure are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine. The instructions, when executed via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions/acts specified in the flowchart and/or block diagram block or blocks. Such processors may be, without limitation, general purpose processors, special-purpose processors, application-specific processors, or field-programmable gate arrays.

  • The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

  • While the preceding is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.

Claims (20)

1. A processor, comprising:

logic to predict one or more three-dimensional (3D) mesh representations based on a plurality of digital images, wherein the one or more 3D mesh representations are refined using a decoder based on differences between the one or more 3D mesh representations and the plurality of digital images.

2. The processor of

claim 1

, wherein predicting the one or more 3D mesh representations based on the plurality of digital images comprises:

executing the decoder to produce a mesh of an object from a first value in a latent space; and

refining the mesh of the object using the decoder, wherein refining the mesh of the object comprises selecting a second value in the latent space based on one or more geometric constraints associated with the plurality of digital images of the object.

3. The processor of

claim 2

, wherein refining the mesh of the object comprises:

selecting the first value;

calculating an error between the mesh and the plurality of digital images of the object; and

performing gradient descent on the first value using the decoder to reduce the error.

4. The processor of

claim 3

, wherein selecting the first value comprises at least one of randomizing the first value, selecting the first value based on the set of image observations, or initializing the first value based on sparse features extracted from the set of image observations.

5. The processor of

claim 2

, wherein refining the mesh of the object comprises:

dividing the mesh into a set of meshlets;

for each meshlet in the set of meshlets, selecting the second value in the latent space to learn a prior for a portion of the mesh represented by the meshlet; and

reconstructing the mesh from the set of meshlets.

6. The processor of

claim 5

, wherein refining the mesh of the object further comprises, for each meshlet in the set of meshlets, learning a custom pose of the meshlet that aligns a global pose of the images with a canonical pose of the meshlet.

7. The processor of

claim 5

, wherein refining the mesh of the object further comprises iteratively increasing a resolution of the set of meshlets to meet the one or more geometric constraints.

8. The processor of

claim 2

, further comprising logic that generates the decoder as a decoder of a variational autoencoder capable of reconstructing a set of training meshes input into the variational autoencoder.

9. The processor of

claim 8

, wherein generating the decoder as a decoder of the variational autoencoder comprises:

for each training mesh in the set of training meshes, aggregating multiple orderings of points in the training mesh into a standardized value in the latent space; and

training the decoder to reconstruct the training mesh from the standardized value.

10. The processor of

claim 9

, wherein aggregating the multiple orderings of points in the training mesh into the standardized value comprises:

applying an encoder to the multiple orderings of points to generate intermediate representations of the multiple orderings of points; and

averaging the intermediate representations into the standardized value.

11. A method, comprising:

predicting one or more three-dimensional (3D) mesh representations based on a plurality of digital images, wherein the one or more 3D mesh representations are refined using a decoder based on at least one difference between the one or more 3D mesh representations and the plurality of digital images.

12. The method of

claim 11

, wherein predicting the one or more 3D mesh representations based on the plurality of digital images comprises:

executing the decoder to produce a mesh of an object from a first value in a latent space; and

refining the mesh of the object using the decoder, wherein refining the mesh of the object comprises selecting a second value in the latent space based on one or more geometric constraints associated with the plurality of digital images of the object.

13. The method of

claim 12

, further comprising generating the decoder as a decoder of a variational autoencoder capable of reconstructing a set of training meshes input into the variational autoencoder.

14. The method of

claim 13

, wherein generating the decoder as a decoder of the variational autoencoder comprises:

for each training mesh in the set of training meshes, aggregating multiple orderings of points in the training mesh into a standardized value in the latent space; and

training the decoder to reconstruct the training mesh from the standardized value.

15. The method of

claim 14

, wherein aggregating the multiple orderings of points in the training mesh into the standardized value comprises:

applying an encoder to the multiple orderings of points to generate intermediate representations of the multiple orderings of points; and

averaging the intermediate representations into the standardized value.

16. A non-transitory computer readable medium storing instructions that, when executed by a processor, cause the processor to at least:

execute a decoder to produce a mesh of an object from a first value in a latent space;

refine the mesh of the object using the decoder, wherein refining the mesh of the object comprises selecting a second value in the latent space based on one or more geometric constraints associated with a set of image observations of the object; and

store the mesh in association with the object.

17. The non-transitory computer readable medium of

claim 16

, wherein refining the mesh of the object comprises:

selecting the first value; and

performing gradient descent on the first value using the decoder to reduce an error between the mesh and the set of image observations.

18. The non-transitory computer readable medium of

claim 17

, wherein the error comprises at least one of a photometric error or a silhouette error.

19. The non-transitory computer readable medium of

claim 16

, wherein refining the mesh of the object comprises:

dividing the mesh into a set of meshlets;

for each meshlet in the set of meshlets, selecting the second value in the latent space to learn a prior for a portion of the mesh represented by the meshlet; and

reconstructing the mesh from the set of meshlets.

20. The non-transitory computer readable medium of

claim 19

, wherein refining the mesh of the object further comprises iteratively increasing a resolution of the set of meshlets to meet the one or more geometric constraints.

US16/226,329 2018-12-19 2018-12-19 Mesh reconstruction using data-driven priors Active US11995854B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/226,329 US11995854B2 (en) 2018-12-19 2018-12-19 Mesh reconstruction using data-driven priors
EP19211501.2A EP3671639A1 (en) 2018-12-19 2019-11-26 Mesh reconstruction using data-driven priors
CN201911293872.0A CN111445581A (en) 2018-12-19 2019-12-16 Mesh reconstruction using data-driven priors
US18/638,346 US20240265561A1 (en) 2018-12-19 2024-04-17 Mesh reconstruction using data-driven priors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/226,329 US11995854B2 (en) 2018-12-19 2018-12-19 Mesh reconstruction using data-driven priors

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/638,346 Continuation US20240265561A1 (en) 2018-12-19 2024-04-17 Mesh reconstruction using data-driven priors

Publications (2)

Publication Number Publication Date
US20200202622A1 true US20200202622A1 (en) 2020-06-25
US11995854B2 US11995854B2 (en) 2024-05-28

Family

ID=68696341

Family Applications (2)

Application Number Title Priority Date Filing Date
US16/226,329 Active US11995854B2 (en) 2018-12-19 2018-12-19 Mesh reconstruction using data-driven priors
US18/638,346 Pending US20240265561A1 (en) 2018-12-19 2024-04-17 Mesh reconstruction using data-driven priors

Family Applications After (1)

Application Number Title Priority Date Filing Date
US18/638,346 Pending US20240265561A1 (en) 2018-12-19 2024-04-17 Mesh reconstruction using data-driven priors

Country Status (3)

Country Link
US (2) US11995854B2 (en)
EP (1) EP3671639A1 (en)
CN (1) CN111445581A (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210192839A1 (en) * 2019-12-20 2021-06-24 Andrew P. Mason Inferred Shading
US20210378746A1 (en) * 2020-06-05 2021-12-09 Verb Surgical Inc. Port placement guide based on insufflated patient torso model and normalized surgical targets
US20210398336A1 (en) * 2019-03-11 2021-12-23 Preferred Networks, Inc. Image generation method, image generation apparatus, and image generation system
US11238650B2 (en) * 2020-03-13 2022-02-01 Nvidia Corporation Self-supervised single-view 3D reconstruction via semantic consistency
US11257276B2 (en) * 2020-03-05 2022-02-22 Disney Enterprises, Inc. Appearance synthesis of digital faces
US20220130143A1 (en) * 2020-10-02 2022-04-28 Servicenow Canada Inc. Method and system for meaningful counterfactual explanations
US20220172430A1 (en) * 2019-02-27 2022-06-02 3Shape A/S Method for generating objects using an hourglass predictor
US20220180253A1 (en) * 2020-12-08 2022-06-09 International Business Machines Corporation Communication-efficient data parallel ensemble boosting
US20220277431A1 (en) * 2021-02-26 2022-09-01 Adobe Inc. Initializing a learned latent vector for neural-network projections of diverse images
US11450066B2 (en) * 2019-03-11 2022-09-20 Beijing University Of Technology 3D reconstruction method based on deep learning
US20220369070A1 (en) * 2019-09-27 2022-11-17 Nokia Technologies Oy Method, Apparatus and Computer Program for User Equipment Localization
US11556678B2 (en) * 2018-12-20 2023-01-17 Dassault Systemes Designing a 3D modeled object via user-interaction
US20230032012A1 (en) * 2019-03-29 2023-02-02 Microsoft Technology Licensing, Llc Control system using autoencoder
US20230104702A1 (en) * 2021-10-01 2023-04-06 Disney Enterprises, Inc. Transformer-based shape models
US20240265561A1 (en) * 2018-12-19 2024-08-08 Nvidia Corporation Mesh reconstruction using data-driven priors
GB2632364A (en) * 2023-07-24 2025-02-05 Disney Entpr Inc Anatomically constrained implicit shape models

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361549B (en) * 2020-03-04 2025-01-21 华为技术有限公司 A model updating method and related device
US12223577B2 (en) * 2022-01-26 2025-02-11 Disney Enterprises, Inc. Data-driven physics-based models with implicit actuations

Citations (242)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185850A (en) * 1990-05-22 1993-02-09 Toyo Ink Mfg. Co., Ltd. Color transformation method and apparatus for transforming physical to psychological attribute using a neural network
US5511134A (en) * 1991-01-02 1996-04-23 Matsushita Electric Industrial Co., Ltd. Image recognition device and image recognition method
US5542006A (en) * 1994-06-21 1996-07-30 Eastman Kodak Company Neural network based character position detector for use in optical character recognition
US5912986A (en) * 1994-06-21 1999-06-15 Eastman Kodak Company Evidential confidence measure and rejection technique for use in a neural network based optical character recognition system
US6028956A (en) * 1997-04-04 2000-02-22 Kofile Inc. Object location and span determination method and apparatus which determines a location and span of an object in an image
US6047088A (en) * 1996-12-16 2000-04-04 Sharp Laboratories Of America, Inc. 2D mesh geometry and motion vector compression
US6175818B1 (en) * 1996-05-29 2001-01-16 Domain Dynamics Limited Signal verification using signal processing arrangement for time varying band limited input signal
US20020159518A1 (en) * 1999-12-28 2002-10-31 Vincent Bottreau Snr scalable video encoding method and corresponding decoding method
US20030063086A1 (en) * 2001-09-28 2003-04-03 Canon Europa N.V. 3D computer model processing apparatus
US6738062B1 (en) * 2001-01-10 2004-05-18 Nvidia Corporation Displaced subdivision surface representation
US20040202381A1 (en) * 2003-04-09 2004-10-14 Canon Kabushiki Kaisha Image processing apparatus, method, program and storage medium
US6819790B2 (en) * 2002-04-12 2004-11-16 The University Of Chicago Massive training artificial neural network (MTANN) for detecting abnormalities in medical images
US20040249617A1 (en) * 2003-06-03 2004-12-09 Pccw-Hkt Datacom Services Limited Selective, pregressive transmission of 3D geometry models with the pre-ordered hierarchical meshes
US20050089213A1 (en) * 2003-10-23 2005-04-28 Geng Z. J. Method and apparatus for three-dimensional modeling via an image mosaic system
US20050251021A1 (en) * 2001-07-17 2005-11-10 Accuimage Diagnostics Corp. Methods and systems for generating a lung report
US20060044309A1 (en) * 2004-08-31 2006-03-02 Satoshi Kanai Tetrahedral mesh generating method for finite-element analysis and finite-element analyzing system using its method
US7149564B2 (en) * 1994-10-27 2006-12-12 Wake Forest University Health Sciences Automatic analysis in virtual endoscopy
US20070036414A1 (en) * 2005-08-15 2007-02-15 Siemens Corporate Research Inc Method for database guided simultaneous multi slice object detection in three dimensional volumetric data
US7184041B2 (en) * 2004-04-20 2007-02-27 The Chinese University Of Hong Kong Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer
US20070165948A1 (en) * 2004-01-13 2007-07-19 Koninklijke Philips Electronic, N.V. Mesh models with internal discrete elements
US20070211939A1 (en) * 2004-08-09 2007-09-13 Koninklijke Philips Electronics N.V. Region-competitive deformable mesh adaptation
US20080123927A1 (en) * 2006-11-16 2008-05-29 Vanderbilt University Apparatus and methods of compensating for organ deformation, registration of internal structures to images, and applications of same
US20080204832A1 (en) * 2007-02-27 2008-08-28 Canon Kabushiki Kaisha Constructing a color transform using a neural network for colors outside the spectrum locus
US7545965B2 (en) * 2003-11-10 2009-06-09 The University Of Chicago Image modification and detection using massive training artificial neural networks (MTANN)
US20100111370A1 (en) * 2008-08-15 2010-05-06 Black Michael J Method and apparatus for estimating body shape
US20100290679A1 (en) * 2007-10-19 2010-11-18 Gasser Christian T Automatic geometrical and mechanical analyzing method and system for tubular structures
US20110295579A1 (en) * 2009-02-25 2011-12-01 Dalin Tang Automatic vascular model generation based on fluid-structure interactions (fsi)
US20110304619A1 (en) * 2010-06-10 2011-12-15 Autodesk, Inc. Primitive quadric surface extraction from unorganized point cloud data
US20120189178A1 (en) * 2011-01-25 2012-07-26 Samsung Electronics Co., Ltd. Method and apparatus for automatically generating optimal 2-dimensional medical image from 3-dimensional medical image
US20120230566A1 (en) * 1999-08-11 2012-09-13 Case Western Reserve University Producing a three dimensional model of an implant
US8396268B2 (en) * 2010-03-31 2013-03-12 Isis Innovation Limited System and method for image sequence processing
US20130096899A1 (en) * 2010-07-29 2013-04-18 Exxonmobile Upstream Research Company Methods And Systems For Machine - Learning Based Simulation of Flow
US20130114910A1 (en) * 2010-06-29 2013-05-09 Fittingbox Method for compressing/decompressing a three-dimensional mesh
US8538108B2 (en) * 2005-12-20 2013-09-17 University Of Maryland, Baltimore Method and apparatus for accelerated elastic registration of multiple scans of internal properties of a body
US20130259345A1 (en) * 2012-03-30 2013-10-03 University Of Louisville Research Foundation, Inc. Computer aided diagnostic system incorporating shape analysis for diagnosing malignant lung nodules
US8576250B2 (en) * 2007-10-24 2013-11-05 Vorum Research Corporation Method, apparatus, media, and signals for applying a shape transformation to a three dimensional representation
US20140036054A1 (en) * 2012-03-28 2014-02-06 George Zouridakis Methods and Software for Screening and Diagnosing Skin Lesions and Plant Diseases
US8654121B1 (en) * 2009-10-02 2014-02-18 Pixar Structured polygonal mesh retesselation
US20140219550A1 (en) * 2011-05-13 2014-08-07 Liberovision Ag Silhouette-based pose estimation
US20140241570A1 (en) * 2013-02-22 2014-08-28 Kaiser Foundation Hospitals Using a combination of 2d and 3d image data to determine hand features information
US8830235B1 (en) * 1999-09-13 2014-09-09 Alcatel Lucent Non-uniform relaxation procedure for multiresolution mesh processing
US9001123B1 (en) * 2012-07-17 2015-04-07 Lockheed Martin Corporation Forming a polygon mesh without shifting vertex positions
US20150112901A1 (en) * 2013-10-23 2015-04-23 Stenomics, Inc. Machine learning system for assessing heart valves and surrounding cardiovascular tracts
US9024939B2 (en) * 2009-03-31 2015-05-05 Vorum Research Corporation Method and apparatus for applying a rotational transform to a portion of a three-dimensional representation of an appliance for a living body
US20150206504A1 (en) * 2014-01-21 2015-07-23 Nvidia Corporation Unified optimization method for end-to-end camera image processing for translating a sensor captured image to a display image
US20150213646A1 (en) * 2014-01-28 2015-07-30 Siemens Aktiengesellschaft Method and System for Constructing Personalized Avatars Using a Parameterized Deformable Mesh
US9202144B2 (en) * 2013-10-30 2015-12-01 Nec Laboratories America, Inc. Regionlets with shift invariant neural patterns for object detection
US20160055237A1 (en) * 2014-08-20 2016-02-25 Mitsubishi Electric Research Laboratories, Inc. Method for Semantically Labeling an Image of a Scene using Recursive Context Propagation
US20160058520A1 (en) * 2014-08-28 2016-03-03 Siemens Healthcare Gmbh System and Method for Patient-Specific Image-Based Simulation of Artial Electrophysiology
US20160110632A1 (en) * 2014-10-20 2016-04-21 Siemens Aktiengesellschaft Voxel-level machine learning with or without cloud-based support in medical imaging
US20160117859A1 (en) * 2014-10-23 2016-04-28 Kabushiki Kaisha Toshiba Method and systems for generating a three dimensional model of a subject
US20160174902A1 (en) * 2013-10-17 2016-06-23 Siemens Aktiengesellschaft Method and System for Anatomical Object Detection Using Marginal Space Deep Neural Networks
US20160292847A1 (en) * 2015-03-31 2016-10-06 Sony Corporation Automatic 3d segmentation and cortical surfaces reconstruction from t1 mri
US20160360180A1 (en) * 2015-02-17 2016-12-08 Nextvr Inc. Methods and apparatus for processing content based on viewing information and/or communicating content
US20170018088A1 (en) * 2015-07-14 2017-01-19 Samsung Electronics Co., Ltd. Three dimensional content generating apparatus and three dimensional content generating method thereof
US20170046616A1 (en) * 2015-08-15 2017-02-16 Salesforce.Com, Inc. Three-dimensional (3d) convolution with 3d batch normalization
US20170046868A1 (en) * 2015-08-14 2017-02-16 Samsung Electronics Co., Ltd. Method and apparatus for constructing three dimensional model of object
US20170078170A1 (en) * 2015-09-16 2017-03-16 Cisco Technology, Inc. Detecting oscillation anomalies in a mesh network using machine learning
US20170109881A1 (en) * 2015-10-14 2017-04-20 The Regents Of The University Of California Automated segmentation of organ chambers using deep learning methods from medical imaging
US20170140236A1 (en) * 2015-11-18 2017-05-18 Adobe Systems Incorporated Utilizing interactive deep learning to select objects in digital visual media
US20170140260A1 (en) * 2015-11-17 2017-05-18 RCRDCLUB Corporation Content filtering with convolutional neural networks
US20170161635A1 (en) * 2015-12-02 2017-06-08 Preferred Networks, Inc. Generative machine learning systems for drug design
US20170185740A1 (en) * 2014-04-02 2017-06-29 Siemens Healthcare Gmbh System and method for characterization of electrical properties of the heart from medical images and body surface potentials
US20170206464A1 (en) * 2016-01-14 2017-07-20 Preferred Networks, Inc. Time series data adaptation and sensor fusion systems, methods, and apparatus
US20170262479A1 (en) * 2016-03-08 2017-09-14 Shutterstock, Inc. User drawing based image search
US20170287137A1 (en) * 2016-03-31 2017-10-05 Adobe Systems Incorporated Utilizing deep learning for boundary-aware image segmentation
US20170281094A1 (en) * 2016-04-05 2017-10-05 The Board Of Trustees Of The University Of Illinois Information Based Machine Learning Approach to Elasticity Imaging
US20170337682A1 (en) * 2016-05-18 2017-11-23 Siemens Healthcare Gmbh Method and System for Image Registration Using an Intelligent Artificial Agent
US20170337343A1 (en) * 2010-07-16 2017-11-23 The University Of Houston System Methods of computing pericardial and abdominal fat and methods for motion compensation
US20170357896A1 (en) * 2016-06-09 2017-12-14 Sentient Technologies (Barbados) Limited Content embedding using deep metric learning algorithms
US20170358133A1 (en) * 2016-06-09 2017-12-14 Microsoft Technology Licensing, Llc Adaptive Decimation Using 3D Video Features
US20170357406A1 (en) * 2016-05-31 2017-12-14 Coreline Soft Co., Ltd. Medical image display system and method for providing user interface enabling three-dimensional mesh to be edited on three-dimensional volume
US20170371017A1 (en) * 2016-06-23 2017-12-28 Siemens Healthcare Gmbh System and Method For Normalized Reference Database For MR Images Via Autoencoders
US20170372480A1 (en) * 2016-06-28 2017-12-28 University Of Cincinnati Systems, Media, and Methods for Pre-Processing and Post-Processing in Additive Manufacturing
US20180012411A1 (en) * 2016-07-11 2018-01-11 Gravity Jack, Inc. Augmented Reality Methods and Devices
US20180041536A1 (en) * 2016-08-02 2018-02-08 Invincea, Inc. Methods and apparatus for detecting and identifying malware by mapping feature data into a semantic space
US20180046649A1 (en) * 2016-08-12 2018-02-15 Aquifi, Inc. Systems and methods for automatically generating metadata for media documents
US20180047208A1 (en) * 2016-08-15 2018-02-15 Aquifi, Inc. System and method for three-dimensional scanning and for capturing a bidirectional reflectance distribution function
US20180061058A1 (en) * 2016-08-26 2018-03-01 Elekta, Inc. Image segmentation using neural network method
US20180061059A1 (en) * 2016-08-26 2018-03-01 Elekta, Inc. System and methods for image segmentation using convolutional neural network
US20180089888A1 (en) * 2016-09-23 2018-03-29 Blue Vision Labs UK Limited Method and system for creating a virtual 3d model
US20180101784A1 (en) * 2016-10-05 2018-04-12 D-Wave Systems Inc. Discrete variational auto-encoder systems and methods for machine learning using adiabatic quantum computers
US20180101989A1 (en) * 2016-10-06 2018-04-12 Google Inc. Headset removal in virtual, augmented, and mixed reality using an eye gaze database
US20180115785A1 (en) * 2016-10-21 2018-04-26 Flux Planet, Inc. Content streaming system and method
US20180129893A1 (en) * 2016-11-07 2018-05-10 Samsung Electronics Co., Ltd. Convolutional neural network processing method and apparatus
US9968257B1 (en) * 2017-07-06 2018-05-15 Halsa Labs, LLC Volumetric quantification of cardiovascular structures from medical imaging
US20180150929A1 (en) * 2015-05-11 2018-05-31 Siemens Aktiengesellschaft Method and system for registration of 2d/2.5d laparoscopic and endoscopic image data to 3d volumetric image data
US20180157964A1 (en) * 2016-12-05 2018-06-07 Fu-Chang Hsu High-density neural network array
US20180165573A1 (en) * 2016-12-09 2018-06-14 Fu-Chang Hsu Three-dimensional neural network array
US10002419B2 (en) * 2015-03-05 2018-06-19 Siemens Healthcare Gmbh Direct computation of image-derived biomarkers
US20180174311A1 (en) * 2015-06-05 2018-06-21 Siemens Aktiengesellschaft Method and system for simultaneous scene parsing and model fusion for endoscopic and laparoscopic navigation
US10004471B2 (en) * 2015-08-06 2018-06-26 Case Western Reserve University Decision support for disease characterization and treatment response with disease and peri-disease radiomics
US20180182101A1 (en) * 2016-12-23 2018-06-28 Heartflow, Inc. Systems and methods for probabilistic segmentation in anatomical image processing
US20180182152A1 (en) * 2016-12-26 2018-06-28 Beihang University Method for skinning technology based on extended position based dynamics and for weight retargeting in character animation
US10032281B1 (en) * 2017-05-03 2018-07-24 Siemens Healthcare Gmbh Multi-scale deep reinforcement machine learning for N-dimensional segmentation in medical imaging
US20180234348A1 (en) * 2017-02-14 2018-08-16 Cisco Technology, Inc. Prediction of network device control plane instabilities
US20180247427A1 (en) * 2017-02-24 2018-08-30 Siemens Healthcare Gmbh Patient Position Control for Scanning
US20180247201A1 (en) * 2017-02-28 2018-08-30 Nvidia Corporation Systems and methods for image-to-image translation using variational autoencoders
US20180247227A1 (en) * 2017-02-24 2018-08-30 Xtract Technologies Inc. Machine learning systems and methods for data augmentation
US20180260532A1 (en) * 2017-03-10 2018-09-13 General Electric Company Systems and methods for multi-dimensional fluid modeling of an organism or organ
US20180268262A1 (en) * 2017-03-15 2018-09-20 Fuji Xerox Co., Ltd. Information processing device and non-transitory computer readable medium
US20180286120A1 (en) * 2017-04-04 2018-10-04 Intel Corporation Application of convolutional neural networks to object meshes
US20180285715A1 (en) * 2017-03-28 2018-10-04 Samsung Electronics Co., Ltd. Convolutional neural network (cnn) processing method and apparatus
US20180314937A1 (en) * 2017-04-28 2018-11-01 Microsoft Technology Licensing, Llc Learning-based noise reduction in data produced by a network of sensors, such as one incorporated into loose-fitting clothing worn by a person
US20180315232A1 (en) * 2017-05-01 2018-11-01 Lockheed Martin Corporation Real-time incremental 3d reconstruction of sensor data
US20180322623A1 (en) * 2017-05-08 2018-11-08 Aquifi, Inc. Systems and methods for inspection and defect detection using 3-d scanning
US20180330551A1 (en) * 2017-05-09 2018-11-15 Microsoft Technology Licensing, Llc Edge welding of geometries having differing resolutions
US20180330511A1 (en) * 2017-05-11 2018-11-15 Kla-Tencor Corporation Learning based approach for aligning images acquired with different modalities
US20180338742A1 (en) * 2017-05-23 2018-11-29 Siemens Healthcare Gmbh X-ray system and method for standing subject
US20180350132A1 (en) * 2017-05-31 2018-12-06 Ethan Bryce Paulson Method and System for the 3D Design and Calibration of 2D Substrates
US20180374274A1 (en) * 2017-06-26 2018-12-27 Vpersonalize Inc System and method for creating editable configurations of 3d model
US20190005343A1 (en) * 2017-04-26 2019-01-03 Mashgin Inc. Fast item identification for checkout counter
US20190004543A1 (en) * 2017-07-03 2019-01-03 Skydio, Inc. Detecting optical discrepancies in captured images
US20190018933A1 (en) * 2016-01-15 2019-01-17 Preferred Networks, Inc. Systems and methods for multimodal generative machine learning
US20190019331A1 (en) * 2015-08-01 2019-01-17 Inria Institut National De Recherche En Informatiq Processing of geometric data with isotopic approximation within a tolerance volume
US20190026917A1 (en) * 2017-07-18 2019-01-24 Qualcomm Incorporated Learning geometric differentials for matching 3d models to objects in a 2d image
US20190026631A1 (en) * 2017-07-19 2019-01-24 Disney Enterprises, Inc. Factorized variational autoencoders
US20190035150A1 (en) * 2017-07-28 2019-01-31 The Boeing Company Resolution adaptive mesh for performing 3-d metrology of an object
US20190030371A1 (en) * 2017-07-28 2019-01-31 Elekta, Inc. Automated image segmentation using dcnn such as for radiation therapy
US20190043201A1 (en) * 2017-12-28 2019-02-07 Christina R. Strong Analytic image format for visual computing
US20190042918A1 (en) * 2017-08-01 2019-02-07 Wave Computing, Inc. Remote usage of machine learned layers by a second machine learning construct
US20190042981A1 (en) * 2017-08-04 2019-02-07 Hannes Bendfeldt Adaptive interface for screen-based interactions
US20190050981A1 (en) * 2017-08-09 2019-02-14 Shenzhen Keya Medical Technology Corporation System and method for automatically detecting a target object from a 3d image
US20190073580A1 (en) * 2017-09-01 2019-03-07 Facebook, Inc. Sparse Neural Network Modeling Infrastructure
US20190073581A1 (en) * 2017-09-01 2019-03-07 Facebook, Inc. Mixed Machine Learning Architecture
US20190073590A1 (en) * 2017-09-01 2019-03-07 Facebook, Inc. Sparse Neural Network Training Optimization
US20190073586A1 (en) * 2017-09-01 2019-03-07 Facebook, Inc. Nested Machine Learning Architecture
US20190080512A1 (en) * 2017-09-12 2019-03-14 Microsoft Technology Licensing, Llc Three-dimensional graphics image processing
US20190088004A1 (en) * 2018-11-19 2019-03-21 Intel Corporation Method and system of 3d reconstruction with volume-based filtering for image processing
US20190095798A1 (en) * 2017-09-28 2019-03-28 D5Ai Llc Stochastic categorical autoencoder network
US20190095698A1 (en) * 2016-10-31 2019-03-28 Google Llc Face Reconstruction from a Learned Embedding
US20190102678A1 (en) * 2017-09-29 2019-04-04 Samsung Electronics Co., Ltd. Neural network recogntion and training method and apparatus
US20190108679A1 (en) * 2017-10-11 2019-04-11 Alibaba Group Holding Limited Point Cloud Meshing Method, Apparatus, Device and Computer Storage Media
US20190110038A1 (en) * 2017-10-11 2019-04-11 Adobe Systems Incorporated Virtual Reality Parallax Correction
US20190108396A1 (en) * 2017-10-11 2019-04-11 Aquifi, Inc. Systems and methods for object identification
US20190105009A1 (en) * 2017-10-10 2019-04-11 Holo Surgical Inc. Automated segmentation of three dimensional bony structure images
US20190114540A1 (en) * 2017-10-16 2019-04-18 Samsung Electronics Co., Ltd. Method of updating sentence generation model and sentence generating apparatus
US20190114537A1 (en) * 2017-10-16 2019-04-18 Facebook, Inc. Distributed training and prediction using elastic resources
US20190122106A1 (en) * 2017-10-23 2019-04-25 Samsung Electronics Co., Ltd. Method and apparatus with neural network
US20190138786A1 (en) * 2017-06-06 2019-05-09 Sightline Innovation Inc. System and method for identification and classification of objects
US20190147221A1 (en) * 2017-11-15 2019-05-16 Qualcomm Technologies Inc. Pose estimation and model retrieval for objects in images
US20190147253A1 (en) * 2017-11-15 2019-05-16 Uber Technologies, Inc. Autonomous Vehicle Lane Boundary Detection Systems and Methods
US20190147220A1 (en) * 2016-06-24 2019-05-16 Imperial College Of Science, Technology And Medicine Detecting objects in video data
US20190142519A1 (en) * 2017-08-15 2019-05-16 Holo Surgical Inc. Graphical user interface for displaying automatically segmented individual parts of anatomy in a surgical navigation system
US20190147335A1 (en) * 2017-11-15 2019-05-16 Uber Technologies, Inc. Continuous Convolution and Fusion in Neural Networks
US20190164351A1 (en) * 2017-11-24 2019-05-30 Electronics And Telecommunications Research Institute Method of reconstrucing 3d color mesh and apparatus for same
US20190163747A1 (en) * 2017-11-30 2019-05-30 Samsung Electronics Co., Ltd. Language model translation and training method and apparatus
US20190164301A1 (en) * 2017-11-24 2019-05-30 Electronics And Telecommunications Research Institute Apparatus and method of learning pose of moving object
US20190164055A1 (en) * 2017-11-29 2019-05-30 Microsoft Technology Licensing, Llc Training neural networks to detect similar three-dimensional objects using fuzzy identification
US10311334B1 (en) * 2018-12-07 2019-06-04 Capital One Services, Llc Learning to process images depicting faces without leveraging sensitive attributes in deep learning models
US10318891B1 (en) * 2018-07-23 2019-06-11 Google Llc Geometry encoder
US20190179858A1 (en) * 2017-12-11 2019-06-13 Facebook, Inc. Fast Indexing with Graphs and Compact Regression Codes on Online Social Networks
US20190180499A1 (en) * 2016-08-19 2019-06-13 Movidius Ltd. Rendering operations using sparse volumetric data
US20190183576A1 (en) * 2017-12-15 2019-06-20 Medtronic, Inc. Augmented reality solution to disrupt, transform and enhance cardiovascular surgical and/or procedural mapping navigation and diagnostics
US20190192880A1 (en) * 2016-09-07 2019-06-27 Elekta, Inc. System and method for learning models of radiotherapy treatment plans to predict radiotherapy dose distributions
US20190199743A1 (en) * 2017-12-22 2019-06-27 Robert Bosch Gmbh Method and device for recognizing anomalies in a data stream of a communication network
US10346728B2 (en) * 2017-10-26 2019-07-09 Hitachi, Ltd. Nodule detection with false positive reduction
US10346524B1 (en) * 2018-03-29 2019-07-09 Sap Se Position-dependent word salience estimation
US20190220691A1 (en) * 2016-05-20 2019-07-18 Curious Ai Oy Segmentation of Data
US20190220573A1 (en) * 2018-01-17 2019-07-18 Samsung Electronics Co., Ltd. Method and apparatus for generating a chemical structure using a neural network
US20190228330A1 (en) * 2018-01-25 2019-07-25 Ctrl-Labs Corporation Handstate reconstruction based on multiple inputs
US20190228110A1 (en) * 2018-01-19 2019-07-25 General Electric Company System and method for abstracting characteristics of cyber-physical systems
US20190228590A1 (en) * 2018-01-25 2019-07-25 Ctrl-Labs Corporation User-controlled tuning of handstate representation model parameters
US20190228312A1 (en) * 2018-01-25 2019-07-25 SparkCognition, Inc. Unsupervised model building for clustering and anomaly detection
US20190237186A1 (en) * 2014-04-02 2019-08-01 University Of Louisville Research Foundation, Inc. Computer aided diagnosis system for classifying kidneys
US20190236809A1 (en) * 2018-01-26 2019-08-01 Sony Corporation Multiple mesh encoding using motion tracking data of objects
US20190236362A1 (en) * 2018-01-30 2019-08-01 Mashgin Inc. Generation of two-dimensional and three-dimensional images of items for visual recognition in checkout apparatus
US10373313B2 (en) * 2017-03-02 2019-08-06 Siemens Healthcare Gmbh Spatially consistent multi-scale anatomical landmark detection in incomplete 3D-CT data
US20190244423A1 (en) * 2018-02-08 2019-08-08 Google Llc Machine learning-based geometric mesh simplification
US20190253614A1 (en) * 2018-02-15 2019-08-15 Adobe Inc Smart guide to capture digital images that align with a target image model
US20190253452A1 (en) * 2018-02-14 2019-08-15 Cisco Technology, Inc. Adaptive union file system based protection of services
US20190250998A1 (en) * 2018-02-14 2019-08-15 Commvault Systems, Inc. Machine-learning based data object retrieval
US20190251694A1 (en) * 2018-02-14 2019-08-15 Elekta, Inc. Atlas-based segmentation using deep-learning
US20190259216A1 (en) * 2018-02-21 2019-08-22 Adobe Inc. Refining local parameterizations for applying two-dimensional images to three-dimensional models
US20190261945A1 (en) * 2018-02-26 2019-08-29 Siemens Medical Solutions Usa, Inc. Three-Dimensional Segmentation from Two-Dimensional Intracardiac Echocardiography Imaging
US10402726B1 (en) * 2018-05-03 2019-09-03 SparkCognition, Inc. Model building for simulation of one or more target features
US20190272631A1 (en) * 2018-03-01 2019-09-05 Carl Zeiss Meditec, Inc. Identifying suspicious areas in ophthalmic data
US20190271966A1 (en) * 2016-11-01 2019-09-05 Xometry, Inc. Methods and Apparatus For Machine Learning Predictions of Manufacture Processes
US20190278292A1 (en) * 2018-03-06 2019-09-12 Zoox, Inc. Mesh Decimation Based on Semantic Information
US20190287230A1 (en) * 2018-03-19 2019-09-19 Kla-Tencor Corporation Semi-supervised anomaly detection in scanning electron microscope images
US20190287301A1 (en) * 2017-06-27 2019-09-19 Mad Street Den, Inc. Systems and Methods for Synthesizing Images of Apparel Ensembles on Models
US20190294961A1 (en) * 2018-03-23 2019-09-26 Abbyy Production Llc Generative augmentation of image data
US20190295318A1 (en) * 2018-03-21 2019-09-26 Zoox, Inc. Generating maps without shadows
US20190295282A1 (en) * 2018-03-21 2019-09-26 Nvidia Corporation Stereo depth estimation using deep neural networks
US20190304480A1 (en) * 2018-03-29 2019-10-03 Ford Global Technologies, Llc Neural Network Generative Modeling To Transform Speech Utterances And Augment Training Data
US20190304184A1 (en) * 2018-03-27 2019-10-03 Electronic Arts, Inc. Directional dilation at a mesh boundary of three-dimensional images
US20190303745A1 (en) * 2018-03-27 2019-10-03 Hon Hai Precision Industry Co., Ltd. Artificial neural network
US20190318244A1 (en) * 2019-06-27 2019-10-17 Intel Corporation Methods and apparatus to provide machine programmed creative support to a user
US20190333643A1 (en) * 2018-04-26 2019-10-31 Vektor Medical, Inc. Machine learning using clinical and simulated data
US20190332729A1 (en) * 2018-04-26 2019-10-31 Vektor Medical, Inc. Calibration of simulated cardiograms
US20190332900A1 (en) * 2018-04-30 2019-10-31 Elekta Ab Modality-agnostic method for medical image representation
US20190333224A1 (en) * 2017-06-01 2019-10-31 Wuxi Ea Medical Instruments Technologies Limited Method For Segmenting 3D Digital Model Of Jaw
US20190340716A1 (en) * 2018-05-06 2019-11-07 Strong Force TX Portfolio 2018, LLC Transaction-enabled systems and methods for creating an aggregate stack of intellectual property
US20190336109A1 (en) * 2018-05-07 2019-11-07 Siemens Healthcare Gmbh System and Methods for Performing Biomechanically Driven Image Registration Using Ultrasound Elastography
US20190340541A1 (en) * 2018-05-03 2019-11-07 International Business Machines Corporation Layered stochastic anonymization of data
US20190347553A1 (en) * 2018-05-08 2019-11-14 Microsoft Technology Licensing, Llc Training neural networks using mixed precision computations
US10482674B1 (en) * 2018-06-27 2019-11-19 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for mobile augmented reality
US20190356905A1 (en) * 2018-05-17 2019-11-21 Niantic, Inc. Self-supervised training of a depth estimation system
US20190355150A1 (en) * 2018-05-17 2019-11-21 Nvidia Corporation Detecting and estimating the pose of an object using a neural network model
US20190354804A1 (en) * 2018-05-15 2019-11-21 Toyota Research Institute, Inc. Systems and methods for conditional image translation
US10489708B2 (en) * 2016-05-20 2019-11-26 Magic Leap, Inc. Method and system for performing convolutional image transformation estimation
US10489683B1 (en) * 2018-12-17 2019-11-26 Bodygram, Inc. Methods and systems for automatic generation of massive training data sets from 3D models for training deep learning networks
US20190362530A1 (en) * 2017-01-26 2019-11-28 Sony Corporation Information processing apparatus, information processing method, and program
US20190362551A1 (en) * 2018-05-25 2019-11-28 Lowe's Companies, Inc. System and techniques for automated mesh retopology
US10492723B2 (en) * 2017-02-27 2019-12-03 Case Western Reserve University Predicting immunotherapy response in non-small cell lung cancer patients with quantitative vessel tortuosity
US20190371080A1 (en) * 2018-06-05 2019-12-05 Cristian SMINCHISESCU Image processing method, system and device
US20190373264A1 (en) * 2018-05-29 2019-12-05 Qualcomm Incorporated Bandwidth compression for neural network systems
US20190370435A1 (en) * 2018-05-31 2019-12-05 International Business Machines Corporation Generating synthetic layout patterns by feedforward neural network based variational autoencoders
US10504004B2 (en) * 2016-09-16 2019-12-10 General Dynamics Mission Systems, Inc. Systems and methods for deep model translation generation
US10504005B1 (en) * 2019-05-10 2019-12-10 Capital One Services, Llc Techniques to embed a data object into a multidimensional frame
US20190378050A1 (en) * 2018-06-12 2019-12-12 Bank Of America Corporation Machine learning system to identify and optimize features based on historical data, known patterns, or emerging patterns
US20190377848A1 (en) * 2018-06-06 2019-12-12 International Business Machines Corporation Coordinates-based variational autoencoder for generating synthetic via layout patterns
US20190378049A1 (en) * 2018-06-12 2019-12-12 Bank Of America Corporation Ensemble of machine learning engines coupled to a graph structure that spreads heat
US20190377955A1 (en) * 2018-06-08 2019-12-12 Adobe Inc. Generating digital video summaries utilizing aesthetics, relevancy, and generative neural networks
US20190378051A1 (en) * 2018-06-12 2019-12-12 Bank Of America Corporation Machine learning system coupled to a graph structure detecting outlier patterns using graph scanning
US20190378332A1 (en) * 2018-06-06 2019-12-12 Ke.Com (Beijing)Technology Co., Ltd Systems and methods for filling holes in a virtual reality model
US20200099954A1 (en) * 2018-09-26 2020-03-26 Google Llc Video encoding by providing geometric proxies
US20200098137A1 (en) * 2018-09-26 2020-03-26 Google Llc Texture coordinate compression using texture atlas
US20200153885A1 (en) * 2018-10-01 2020-05-14 Lg Electronics Inc. Apparatus for transmitting point cloud data, a method for transmitting point cloud data, an apparatus for receiving point cloud data and/or a method for receiving point cloud data
US20200151952A1 (en) * 2018-11-08 2020-05-14 Adobe Inc. Three-dimensional mesh deformation using deep learning neural networks
US20200195526A1 (en) * 2018-12-13 2020-06-18 Sap Se Amplifying scaling elasticity of microservice meshes
US20200273248A1 (en) * 2019-02-27 2020-08-27 3Shape A/S Method for manipulating 3d objects by flattened mesh
US20200294194A1 (en) * 2019-03-11 2020-09-17 Nvidia Corporation View synthesis using neural networks
US10937236B1 (en) * 2019-11-11 2021-03-02 Bentley Systems, Incorporated Mesh smoothing for visual quality and analysis improvement
US10937237B1 (en) * 2020-03-11 2021-03-02 Adobe Inc. Reconstructing three-dimensional scenes using multi-view cycle projection
US10990848B1 (en) * 2019-12-27 2021-04-27 Sap Se Self-paced adversarial training for multimodal and 3D model few-shot learning
US11010951B1 (en) * 2020-01-09 2021-05-18 Facebook Technologies, Llc Explicit eye model for avatar
US20210201075A1 (en) * 2019-12-27 2021-07-01 Sap Se Low-shot learning from imaginary 3d model
US20210225089A1 (en) * 2020-01-20 2021-07-22 Beijing Baidu Netcom Science And Technology Co., Ltd. Video blending method, apparatus, electronic device and readable storage medium
US11113880B1 (en) * 2019-07-22 2021-09-07 Facebook Technologies, Llc System and method for optimizing the rendering of dynamically generated geometry
US20210279952A1 (en) * 2020-03-06 2021-09-09 Nvidia Corporation Neural rendering for inverse graphics generation
US20210279956A1 (en) * 2020-03-04 2021-09-09 Disney Enterprises, Inc. Semantic deep face models
US20210287430A1 (en) * 2020-03-13 2021-09-16 Nvidia Corporation Self-supervised single-view 3d reconstruction via semantic consistency
US20210295606A1 (en) * 2020-03-18 2021-09-23 Adobe Inc. Reconstructing three-dimensional scenes in a target coordinate system from multiple views
US20210343082A1 (en) * 2020-04-30 2021-11-04 Adobe Inc. Decimating a three-dimensional mesh via successive self-parameterization
US20210383616A1 (en) * 2020-06-05 2021-12-09 Uber Technologies, Inc. Photorealistic Image Simulation with Geometry-Aware Composition
US20210386359A1 (en) * 2020-06-10 2021-12-16 The Board Of Trustees Of The Leland Stanford Junior University Systems and Methods for Estimation of Parkinson's Disease Gait Impairment Severity from Videos Using MDS-UPDRS
US20220130110A1 (en) * 2020-10-28 2022-04-28 Autodesk, Inc. Machine learning techniques for generating designs for three-dimensional objects
US20220130127A1 (en) * 2020-10-28 2022-04-28 Autodesk, Inc. Techniques for training a machine learning model to modify portions of shapes when generating designs for three-dimensional objects
US20220392162A1 (en) * 2021-05-28 2022-12-08 Nvidia Corporation Synthesizing high resolution 3d shapes from lower resolution representations for synthetic data generation systems and applications
US20230081791A1 (en) * 2021-09-16 2023-03-16 Nvidia Corporation Displaced Micro-meshes for Ray and Path Tracing
US20230140460A1 (en) * 2021-11-03 2023-05-04 Nvidia Corporation Extracting triangular 3-d models, materials, and lighting from images

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7098435B2 (en) * 1996-10-25 2006-08-29 Frederick E. Mueller Method and apparatus for scanning three-dimensional objects
US7272264B2 (en) * 2003-09-11 2007-09-18 International Business Machines Corporation System and method for hole filling in 3D models
US20070064099A1 (en) * 2004-06-18 2007-03-22 Raphaele Balter Method of representing a sequence of pictures using 3d models, and corresponding devices and signals
US8289318B1 (en) 2008-08-29 2012-10-16 Adobe Systems Incorporated Determining three-dimensional shape characteristics in a two-dimensional image
US8531473B2 (en) 2009-07-28 2013-09-10 Technion R&D Foundation Ltd. Photogrammetric texture mapping using casual images
US20130124148A1 (en) 2009-08-21 2013-05-16 Hailin Jin System and Method for Generating Editable Constraints for Image-based Models
KR101669873B1 (en) * 2009-10-16 2016-10-27 삼성전자주식회사 APPARATUS AND METHOD FOR coding three dimentional mesh
US8675943B2 (en) * 2010-11-29 2014-03-18 Siemens Aktiengesellschaft Method and system for heart isolation in cardiac computed tomography volumes for patients with coronary artery bypasses
US8837771B2 (en) * 2012-02-28 2014-09-16 Siemens Aktiengesellschaft Method and system for joint multi-organ segmentation in medical image data using local and global context
US10068157B2 (en) * 2012-05-10 2018-09-04 Apple Inc. Automatic detection of noteworthy locations
US20150178988A1 (en) 2012-05-22 2015-06-25 Telefonica, S.A. Method and a system for generating a realistic 3d reconstruction model for an object or being
US9269156B2 (en) * 2012-07-24 2016-02-23 Siemens Aktiengesellschaft Method and system for automatic prostate segmentation in magnetic resonance images
US9665800B1 (en) * 2012-10-21 2017-05-30 Google Inc. Rendering virtual views of three-dimensional (3D) objects
US9111393B2 (en) 2012-11-26 2015-08-18 Nvidia Corporation System, method, and computer program product for sampling a hierarchical depth map
US9589383B2 (en) * 2013-10-18 2017-03-07 Nvidia Corporation Unified position based solver for visual effects
US9659408B2 (en) 2013-11-27 2017-05-23 Autodesk, Inc. Mesh reconstruction from heterogeneous sources of data
US9367924B2 (en) * 2014-05-06 2016-06-14 Siemens Aktiengesellschaft Method and system for segmentation of the liver in magnetic resonance images using multi-channel features
EP3251096B1 (en) * 2015-01-28 2024-07-10 Koninklijke Philips N.V. Finite element modeling of anatomical structure
US10304203B2 (en) * 2015-05-14 2019-05-28 Qualcomm Incorporated Three-dimensional model generation
WO2017131672A1 (en) 2016-01-27 2017-08-03 Hewlett Packard Enterprise Development Lp Generating pose frontalized images of objects
US9996771B2 (en) * 2016-02-15 2018-06-12 Nvidia Corporation System and method for procedurally synthesizing datasets of objects of interest for training machine-learning models
CN113532326B (en) * 2016-02-29 2023-11-21 派克赛斯有限责任公司 Systems and methods for assisted 3D scanning
US10607408B2 (en) * 2016-06-04 2020-03-31 Shape Labs Inc. Method for rendering 2D and 3D data within a 3D virtual environment
CN109644030B (en) * 2016-08-10 2021-05-04 华为技术有限公司 Unit norm codebook design and quantization
KR102289837B1 (en) * 2017-01-06 2021-08-17 삼성전자주식회사 Method and electronic device for taking a photograph
US10685430B2 (en) * 2017-05-10 2020-06-16 Babylon VR Inc. System and methods for generating an optimized 3D model
US10431000B2 (en) * 2017-07-18 2019-10-01 Sony Corporation Robust mesh tracking and fusion by using part-based key frames and priori model
US11270161B2 (en) * 2017-11-27 2022-03-08 Nvidia Corporation Deep-learning method for separating reflection and transmission images visible at a semi-reflective surface in a computer image of a real-world scene
US10762620B2 (en) * 2017-11-27 2020-09-01 Nvidia Corporation Deep-learning method for separating reflection and transmission images visible at a semi-reflective surface in a computer image of a real-world scene
US10839557B1 (en) * 2018-04-03 2020-11-17 A9.Com, Inc. Camera calibration for augmented reality
CN108898630B (en) 2018-06-27 2020-12-15 清华-伯克利深圳学院筹备办公室 A three-dimensional reconstruction method, apparatus, device and storage medium
US10891758B2 (en) * 2018-07-23 2021-01-12 Google Llc Geometry encoder
US11645356B2 (en) * 2018-09-04 2023-05-09 International Business Machines Corporation Deep learning for partial differential equation (PDE) based models
US11727724B1 (en) * 2018-09-27 2023-08-15 Apple Inc. Emotion detection
WO2020075768A1 (en) * 2018-10-10 2020-04-16 株式会社Preferred Networks Three-dimensional scanning device, three-dimensional model generation method, training data, and machine learning model
US11995854B2 (en) * 2018-12-19 2024-05-28 Nvidia Corporation Mesh reconstruction using data-driven priors
EP3674983B1 (en) * 2018-12-29 2024-09-18 Dassault Systèmes Machine-learning for 3d modeled object inference
US11645800B2 (en) * 2019-08-29 2023-05-09 Didimo, Inc. Advanced systems and methods for automatically generating an animatable object from various types of user input
US11055910B1 (en) * 2019-12-09 2021-07-06 A9.Com, Inc. Method and system for generating models from multiple views
EP3859610A1 (en) * 2020-01-30 2021-08-04 Dassault Systèmes Deformations basis learning
WO2021164887A1 (en) * 2020-02-21 2021-08-26 Toyota Motor Europe 6d pose and shape estimation method
EP3872771B1 (en) * 2020-02-25 2024-10-16 Dassault Systèmes Determining a 3d modeled object deformation
US20230129194A1 (en) * 2020-03-17 2023-04-27 Liset VAZQUEZ ROMAGUERA Methods and systems for reconstructing a 3d anatomical structure undergoing non-rigid motion
WO2021240416A1 (en) * 2020-05-27 2021-12-02 Djuric Marko Notification application for a computing device
US10930066B1 (en) * 2020-09-11 2021-02-23 Mythical, Inc. Systems and methods for using natural language processing (NLP) to automatically generate three-dimensional objects in a virtual space
US11948338B1 (en) * 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
US20220319096A1 (en) * 2021-03-30 2022-10-06 Advanced Micro Devices, Inc. Machine-learning based collision detection for objects in virtual environments
US11669986B2 (en) * 2021-04-16 2023-06-06 Adobe Inc. Generating enhanced three-dimensional object reconstruction models from sparse set of object images
WO2022222011A1 (en) * 2021-04-19 2022-10-27 浙江大学 Drivable implicit three-dimensional human body representation method
US11727639B2 (en) * 2021-08-23 2023-08-15 Sony Group Corporation Shape refinement of three-dimensional (3D) mesh reconstructed from images
US20230128878A1 (en) * 2021-10-27 2023-04-27 Illusio, Inc. Three-dimensional content optimization for uniform object to object comparison
US12190452B2 (en) * 2021-11-16 2025-01-07 Ecole Polytechnique Federale De Lausanne (Epfl) Method and system for enforcing smoothness constraints on surface meshes from a graph convolutional neural network
US20230360327A1 (en) * 2022-05-03 2023-11-09 Adobe Inc. Generating three-dimensional representations for digital objects utilizing mesh-based thin volumes
US12067680B2 (en) * 2022-08-02 2024-08-20 Adobe Inc. Systems and methods for mesh generation
US20240096017A1 (en) * 2022-08-25 2024-03-21 Nvidia Corporation Generating textured meshes using one or more neural networks
US12051168B2 (en) * 2022-09-15 2024-07-30 Lemon Inc. Avatar generation based on driving views
US20240144584A1 (en) * 2022-10-17 2024-05-02 Samsung Electronics Co., Ltd. Method and device with model for 3d scene generation
US20240338917A1 (en) * 2023-04-06 2024-10-10 Datum Point Labs Inc. Systems and methods for image to 3d generation
US20240346763A1 (en) * 2023-04-13 2024-10-17 Riza Alp Guler Body mesh reconstruction from rgb image
US20240346735A1 (en) * 2023-04-13 2024-10-17 University Of Rochester System and method for generating videos depicting virtual characters
US20240346762A1 (en) * 2023-04-13 2024-10-17 Snap Inc. Animatable garment extraction through volumetric reconstruction
US20240371096A1 (en) * 2023-05-04 2024-11-07 Nvidia Corporation Synthetic data generation using morphable models with identity and expression embeddings
CN118918241A (en) * 2023-06-12 2024-11-08 谷歌有限责任公司 Diffusion guided three-dimensional reconstruction

Patent Citations (246)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185850A (en) * 1990-05-22 1993-02-09 Toyo Ink Mfg. Co., Ltd. Color transformation method and apparatus for transforming physical to psychological attribute using a neural network
US5511134A (en) * 1991-01-02 1996-04-23 Matsushita Electric Industrial Co., Ltd. Image recognition device and image recognition method
US5542006A (en) * 1994-06-21 1996-07-30 Eastman Kodak Company Neural network based character position detector for use in optical character recognition
US5912986A (en) * 1994-06-21 1999-06-15 Eastman Kodak Company Evidential confidence measure and rejection technique for use in a neural network based optical character recognition system
US7149564B2 (en) * 1994-10-27 2006-12-12 Wake Forest University Health Sciences Automatic analysis in virtual endoscopy
US6175818B1 (en) * 1996-05-29 2001-01-16 Domain Dynamics Limited Signal verification using signal processing arrangement for time varying band limited input signal
US6047088A (en) * 1996-12-16 2000-04-04 Sharp Laboratories Of America, Inc. 2D mesh geometry and motion vector compression
US6028956A (en) * 1997-04-04 2000-02-22 Kofile Inc. Object location and span determination method and apparatus which determines a location and span of an object in an image
US20120230566A1 (en) * 1999-08-11 2012-09-13 Case Western Reserve University Producing a three dimensional model of an implant
US8830235B1 (en) * 1999-09-13 2014-09-09 Alcatel Lucent Non-uniform relaxation procedure for multiresolution mesh processing
US20020159518A1 (en) * 1999-12-28 2002-10-31 Vincent Bottreau Snr scalable video encoding method and corresponding decoding method
US6738062B1 (en) * 2001-01-10 2004-05-18 Nvidia Corporation Displaced subdivision surface representation
US20050251021A1 (en) * 2001-07-17 2005-11-10 Accuimage Diagnostics Corp. Methods and systems for generating a lung report
US20030063086A1 (en) * 2001-09-28 2003-04-03 Canon Europa N.V. 3D computer model processing apparatus
US6819790B2 (en) * 2002-04-12 2004-11-16 The University Of Chicago Massive training artificial neural network (MTANN) for detecting abnormalities in medical images
US20040202381A1 (en) * 2003-04-09 2004-10-14 Canon Kabushiki Kaisha Image processing apparatus, method, program and storage medium
US20040249617A1 (en) * 2003-06-03 2004-12-09 Pccw-Hkt Datacom Services Limited Selective, pregressive transmission of 3D geometry models with the pre-ordered hierarchical meshes
US20050089213A1 (en) * 2003-10-23 2005-04-28 Geng Z. J. Method and apparatus for three-dimensional modeling via an image mosaic system
US7545965B2 (en) * 2003-11-10 2009-06-09 The University Of Chicago Image modification and detection using massive training artificial neural networks (MTANN)
US20070165948A1 (en) * 2004-01-13 2007-07-19 Koninklijke Philips Electronic, N.V. Mesh models with internal discrete elements
US7184041B2 (en) * 2004-04-20 2007-02-27 The Chinese University Of Hong Kong Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer
US20070211939A1 (en) * 2004-08-09 2007-09-13 Koninklijke Philips Electronics N.V. Region-competitive deformable mesh adaptation
US20060044309A1 (en) * 2004-08-31 2006-03-02 Satoshi Kanai Tetrahedral mesh generating method for finite-element analysis and finite-element analyzing system using its method
US20070036414A1 (en) * 2005-08-15 2007-02-15 Siemens Corporate Research Inc Method for database guided simultaneous multi slice object detection in three dimensional volumetric data
US8538108B2 (en) * 2005-12-20 2013-09-17 University Of Maryland, Baltimore Method and apparatus for accelerated elastic registration of multiple scans of internal properties of a body
US20080123927A1 (en) * 2006-11-16 2008-05-29 Vanderbilt University Apparatus and methods of compensating for organ deformation, registration of internal structures to images, and applications of same
US20080204832A1 (en) * 2007-02-27 2008-08-28 Canon Kabushiki Kaisha Constructing a color transform using a neural network for colors outside the spectrum locus
US20100290679A1 (en) * 2007-10-19 2010-11-18 Gasser Christian T Automatic geometrical and mechanical analyzing method and system for tubular structures
US8576250B2 (en) * 2007-10-24 2013-11-05 Vorum Research Corporation Method, apparatus, media, and signals for applying a shape transformation to a three dimensional representation
US20100111370A1 (en) * 2008-08-15 2010-05-06 Black Michael J Method and apparatus for estimating body shape
US20110295579A1 (en) * 2009-02-25 2011-12-01 Dalin Tang Automatic vascular model generation based on fluid-structure interactions (fsi)
US9024939B2 (en) * 2009-03-31 2015-05-05 Vorum Research Corporation Method and apparatus for applying a rotational transform to a portion of a three-dimensional representation of an appliance for a living body
US8654121B1 (en) * 2009-10-02 2014-02-18 Pixar Structured polygonal mesh retesselation
US8396268B2 (en) * 2010-03-31 2013-03-12 Isis Innovation Limited System and method for image sequence processing
US20110304619A1 (en) * 2010-06-10 2011-12-15 Autodesk, Inc. Primitive quadric surface extraction from unorganized point cloud data
US20130114910A1 (en) * 2010-06-29 2013-05-09 Fittingbox Method for compressing/decompressing a three-dimensional mesh
US20170337343A1 (en) * 2010-07-16 2017-11-23 The University Of Houston System Methods of computing pericardial and abdominal fat and methods for motion compensation
US20130096899A1 (en) * 2010-07-29 2013-04-18 Exxonmobile Upstream Research Company Methods And Systems For Machine - Learning Based Simulation of Flow
US20120189178A1 (en) * 2011-01-25 2012-07-26 Samsung Electronics Co., Ltd. Method and apparatus for automatically generating optimal 2-dimensional medical image from 3-dimensional medical image
US20140219550A1 (en) * 2011-05-13 2014-08-07 Liberovision Ag Silhouette-based pose estimation
US20140036054A1 (en) * 2012-03-28 2014-02-06 George Zouridakis Methods and Software for Screening and Diagnosing Skin Lesions and Plant Diseases
US20130259345A1 (en) * 2012-03-30 2013-10-03 University Of Louisville Research Foundation, Inc. Computer aided diagnostic system incorporating shape analysis for diagnosing malignant lung nodules
US9001123B1 (en) * 2012-07-17 2015-04-07 Lockheed Martin Corporation Forming a polygon mesh without shifting vertex positions
US20140241570A1 (en) * 2013-02-22 2014-08-28 Kaiser Foundation Hospitals Using a combination of 2d and 3d image data to determine hand features information
US20160174902A1 (en) * 2013-10-17 2016-06-23 Siemens Aktiengesellschaft Method and System for Anatomical Object Detection Using Marginal Space Deep Neural Networks
US20150112901A1 (en) * 2013-10-23 2015-04-23 Stenomics, Inc. Machine learning system for assessing heart valves and surrounding cardiovascular tracts
US9202144B2 (en) * 2013-10-30 2015-12-01 Nec Laboratories America, Inc. Regionlets with shift invariant neural patterns for object detection
US20150206504A1 (en) * 2014-01-21 2015-07-23 Nvidia Corporation Unified optimization method for end-to-end camera image processing for translating a sensor captured image to a display image
US20150213646A1 (en) * 2014-01-28 2015-07-30 Siemens Aktiengesellschaft Method and System for Constructing Personalized Avatars Using a Parameterized Deformable Mesh
US20170185740A1 (en) * 2014-04-02 2017-06-29 Siemens Healthcare Gmbh System and method for characterization of electrical properties of the heart from medical images and body surface potentials
US20190237186A1 (en) * 2014-04-02 2019-08-01 University Of Louisville Research Foundation, Inc. Computer aided diagnosis system for classifying kidneys
US20160055237A1 (en) * 2014-08-20 2016-02-25 Mitsubishi Electric Research Laboratories, Inc. Method for Semantically Labeling an Image of a Scene using Recursive Context Propagation
US20160058520A1 (en) * 2014-08-28 2016-03-03 Siemens Healthcare Gmbh System and Method for Patient-Specific Image-Based Simulation of Artial Electrophysiology
US20160110632A1 (en) * 2014-10-20 2016-04-21 Siemens Aktiengesellschaft Voxel-level machine learning with or without cloud-based support in medical imaging
US20160117859A1 (en) * 2014-10-23 2016-04-28 Kabushiki Kaisha Toshiba Method and systems for generating a three dimensional model of a subject
US20160360180A1 (en) * 2015-02-17 2016-12-08 Nextvr Inc. Methods and apparatus for processing content based on viewing information and/or communicating content
US10002419B2 (en) * 2015-03-05 2018-06-19 Siemens Healthcare Gmbh Direct computation of image-derived biomarkers
US20160292847A1 (en) * 2015-03-31 2016-10-06 Sony Corporation Automatic 3d segmentation and cortical surfaces reconstruction from t1 mri
US20180150929A1 (en) * 2015-05-11 2018-05-31 Siemens Aktiengesellschaft Method and system for registration of 2d/2.5d laparoscopic and endoscopic image data to 3d volumetric image data
US20180174311A1 (en) * 2015-06-05 2018-06-21 Siemens Aktiengesellschaft Method and system for simultaneous scene parsing and model fusion for endoscopic and laparoscopic navigation
US20170018088A1 (en) * 2015-07-14 2017-01-19 Samsung Electronics Co., Ltd. Three dimensional content generating apparatus and three dimensional content generating method thereof
US20190019331A1 (en) * 2015-08-01 2019-01-17 Inria Institut National De Recherche En Informatiq Processing of geometric data with isotopic approximation within a tolerance volume
US10004471B2 (en) * 2015-08-06 2018-06-26 Case Western Reserve University Decision support for disease characterization and treatment response with disease and peri-disease radiomics
US20170046868A1 (en) * 2015-08-14 2017-02-16 Samsung Electronics Co., Ltd. Method and apparatus for constructing three dimensional model of object
US20170046616A1 (en) * 2015-08-15 2017-02-16 Salesforce.Com, Inc. Three-dimensional (3d) convolution with 3d batch normalization
US20170078170A1 (en) * 2015-09-16 2017-03-16 Cisco Technology, Inc. Detecting oscillation anomalies in a mesh network using machine learning
US20170109881A1 (en) * 2015-10-14 2017-04-20 The Regents Of The University Of California Automated segmentation of organ chambers using deep learning methods from medical imaging
US20170140260A1 (en) * 2015-11-17 2017-05-18 RCRDCLUB Corporation Content filtering with convolutional neural networks
US20170140236A1 (en) * 2015-11-18 2017-05-18 Adobe Systems Incorporated Utilizing interactive deep learning to select objects in digital visual media
US20170161635A1 (en) * 2015-12-02 2017-06-08 Preferred Networks, Inc. Generative machine learning systems for drug design
US20170206464A1 (en) * 2016-01-14 2017-07-20 Preferred Networks, Inc. Time series data adaptation and sensor fusion systems, methods, and apparatus
US20190018933A1 (en) * 2016-01-15 2019-01-17 Preferred Networks, Inc. Systems and methods for multimodal generative machine learning
US20170262479A1 (en) * 2016-03-08 2017-09-14 Shutterstock, Inc. User drawing based image search
US20170287137A1 (en) * 2016-03-31 2017-10-05 Adobe Systems Incorporated Utilizing deep learning for boundary-aware image segmentation
US20170281094A1 (en) * 2016-04-05 2017-10-05 The Board Of Trustees Of The University Of Illinois Information Based Machine Learning Approach to Elasticity Imaging
US20170337682A1 (en) * 2016-05-18 2017-11-23 Siemens Healthcare Gmbh Method and System for Image Registration Using an Intelligent Artificial Agent
US10489708B2 (en) * 2016-05-20 2019-11-26 Magic Leap, Inc. Method and system for performing convolutional image transformation estimation
US20190220691A1 (en) * 2016-05-20 2019-07-18 Curious Ai Oy Segmentation of Data
US20170357406A1 (en) * 2016-05-31 2017-12-14 Coreline Soft Co., Ltd. Medical image display system and method for providing user interface enabling three-dimensional mesh to be edited on three-dimensional volume
US20170357896A1 (en) * 2016-06-09 2017-12-14 Sentient Technologies (Barbados) Limited Content embedding using deep metric learning algorithms
US20170358133A1 (en) * 2016-06-09 2017-12-14 Microsoft Technology Licensing, Llc Adaptive Decimation Using 3D Video Features
US20170371017A1 (en) * 2016-06-23 2017-12-28 Siemens Healthcare Gmbh System and Method For Normalized Reference Database For MR Images Via Autoencoders
US20190147220A1 (en) * 2016-06-24 2019-05-16 Imperial College Of Science, Technology And Medicine Detecting objects in video data
US20170372480A1 (en) * 2016-06-28 2017-12-28 University Of Cincinnati Systems, Media, and Methods for Pre-Processing and Post-Processing in Additive Manufacturing
US20180012411A1 (en) * 2016-07-11 2018-01-11 Gravity Jack, Inc. Augmented Reality Methods and Devices
US20180041536A1 (en) * 2016-08-02 2018-02-08 Invincea, Inc. Methods and apparatus for detecting and identifying malware by mapping feature data into a semantic space
US20180046649A1 (en) * 2016-08-12 2018-02-15 Aquifi, Inc. Systems and methods for automatically generating metadata for media documents
US20180047208A1 (en) * 2016-08-15 2018-02-15 Aquifi, Inc. System and method for three-dimensional scanning and for capturing a bidirectional reflectance distribution function
US20190180499A1 (en) * 2016-08-19 2019-06-13 Movidius Ltd. Rendering operations using sparse volumetric data
US9947102B2 (en) * 2016-08-26 2018-04-17 Elekta, Inc. Image segmentation using neural network method
US20180061059A1 (en) * 2016-08-26 2018-03-01 Elekta, Inc. System and methods for image segmentation using convolutional neural network
US20180061058A1 (en) * 2016-08-26 2018-03-01 Elekta, Inc. Image segmentation using neural network method
US9965863B2 (en) * 2016-08-26 2018-05-08 Elekta, Inc. System and methods for image segmentation using convolutional neural network
US10346986B2 (en) * 2016-08-26 2019-07-09 Elekta, Inc. System and methods for image segmentation using convolutional neural network
US20190192880A1 (en) * 2016-09-07 2019-06-27 Elekta, Inc. System and method for learning models of radiotherapy treatment plans to predict radiotherapy dose distributions
US10504004B2 (en) * 2016-09-16 2019-12-10 General Dynamics Mission Systems, Inc. Systems and methods for deep model translation generation
US20180089888A1 (en) * 2016-09-23 2018-03-29 Blue Vision Labs UK Limited Method and system for creating a virtual 3d model
US20180101784A1 (en) * 2016-10-05 2018-04-12 D-Wave Systems Inc. Discrete variational auto-encoder systems and methods for machine learning using adiabatic quantum computers
US20180101989A1 (en) * 2016-10-06 2018-04-12 Google Inc. Headset removal in virtual, augmented, and mixed reality using an eye gaze database
US20180115785A1 (en) * 2016-10-21 2018-04-26 Flux Planet, Inc. Content streaming system and method
US20190095698A1 (en) * 2016-10-31 2019-03-28 Google Llc Face Reconstruction from a Learned Embedding
US20190271966A1 (en) * 2016-11-01 2019-09-05 Xometry, Inc. Methods and Apparatus For Machine Learning Predictions of Manufacture Processes
US20180129893A1 (en) * 2016-11-07 2018-05-10 Samsung Electronics Co., Ltd. Convolutional neural network processing method and apparatus
US20180157964A1 (en) * 2016-12-05 2018-06-07 Fu-Chang Hsu High-density neural network array
US20180165573A1 (en) * 2016-12-09 2018-06-14 Fu-Chang Hsu Three-dimensional neural network array
US20180182101A1 (en) * 2016-12-23 2018-06-28 Heartflow, Inc. Systems and methods for probabilistic segmentation in anatomical image processing
US20180182152A1 (en) * 2016-12-26 2018-06-28 Beihang University Method for skinning technology based on extended position based dynamics and for weight retargeting in character animation
US20190362530A1 (en) * 2017-01-26 2019-11-28 Sony Corporation Information processing apparatus, information processing method, and program
US20180234348A1 (en) * 2017-02-14 2018-08-16 Cisco Technology, Inc. Prediction of network device control plane instabilities
US20180247427A1 (en) * 2017-02-24 2018-08-30 Siemens Healthcare Gmbh Patient Position Control for Scanning
US20180247227A1 (en) * 2017-02-24 2018-08-30 Xtract Technologies Inc. Machine learning systems and methods for data augmentation
US10492723B2 (en) * 2017-02-27 2019-12-03 Case Western Reserve University Predicting immunotherapy response in non-small cell lung cancer patients with quantitative vessel tortuosity
US20180247201A1 (en) * 2017-02-28 2018-08-30 Nvidia Corporation Systems and methods for image-to-image translation using variational autoencoders
US10373313B2 (en) * 2017-03-02 2019-08-06 Siemens Healthcare Gmbh Spatially consistent multi-scale anatomical landmark detection in incomplete 3D-CT data
US20180260532A1 (en) * 2017-03-10 2018-09-13 General Electric Company Systems and methods for multi-dimensional fluid modeling of an organism or organ
US20180268262A1 (en) * 2017-03-15 2018-09-20 Fuji Xerox Co., Ltd. Information processing device and non-transitory computer readable medium
US20180285715A1 (en) * 2017-03-28 2018-10-04 Samsung Electronics Co., Ltd. Convolutional neural network (cnn) processing method and apparatus
US20180286120A1 (en) * 2017-04-04 2018-10-04 Intel Corporation Application of convolutional neural networks to object meshes
US20190005343A1 (en) * 2017-04-26 2019-01-03 Mashgin Inc. Fast item identification for checkout counter
US20180314937A1 (en) * 2017-04-28 2018-11-01 Microsoft Technology Licensing, Llc Learning-based noise reduction in data produced by a network of sensors, such as one incorporated into loose-fitting clothing worn by a person
US20180315232A1 (en) * 2017-05-01 2018-11-01 Lockheed Martin Corporation Real-time incremental 3d reconstruction of sensor data
US10032281B1 (en) * 2017-05-03 2018-07-24 Siemens Healthcare Gmbh Multi-scale deep reinforcement machine learning for N-dimensional segmentation in medical imaging
US20180322623A1 (en) * 2017-05-08 2018-11-08 Aquifi, Inc. Systems and methods for inspection and defect detection using 3-d scanning
US20180330551A1 (en) * 2017-05-09 2018-11-15 Microsoft Technology Licensing, Llc Edge welding of geometries having differing resolutions
US20180330511A1 (en) * 2017-05-11 2018-11-15 Kla-Tencor Corporation Learning based approach for aligning images acquired with different modalities
US20180338742A1 (en) * 2017-05-23 2018-11-29 Siemens Healthcare Gmbh X-ray system and method for standing subject
US20180350132A1 (en) * 2017-05-31 2018-12-06 Ethan Bryce Paulson Method and System for the 3D Design and Calibration of 2D Substrates
US20190333224A1 (en) * 2017-06-01 2019-10-31 Wuxi Ea Medical Instruments Technologies Limited Method For Segmenting 3D Digital Model Of Jaw
US20190138786A1 (en) * 2017-06-06 2019-05-09 Sightline Innovation Inc. System and method for identification and classification of objects
US20180374274A1 (en) * 2017-06-26 2018-12-27 Vpersonalize Inc System and method for creating editable configurations of 3d model
US20190287301A1 (en) * 2017-06-27 2019-09-19 Mad Street Den, Inc. Systems and Methods for Synthesizing Images of Apparel Ensembles on Models
US20190004543A1 (en) * 2017-07-03 2019-01-03 Skydio, Inc. Detecting optical discrepancies in captured images
US9968257B1 (en) * 2017-07-06 2018-05-15 Halsa Labs, LLC Volumetric quantification of cardiovascular structures from medical imaging
US20190026917A1 (en) * 2017-07-18 2019-01-24 Qualcomm Incorporated Learning geometric differentials for matching 3d models to objects in a 2d image
US20190026631A1 (en) * 2017-07-19 2019-01-24 Disney Enterprises, Inc. Factorized variational autoencoders
US20190030371A1 (en) * 2017-07-28 2019-01-31 Elekta, Inc. Automated image segmentation using dcnn such as for radiation therapy
US20190035150A1 (en) * 2017-07-28 2019-01-31 The Boeing Company Resolution adaptive mesh for performing 3-d metrology of an object
US20190042918A1 (en) * 2017-08-01 2019-02-07 Wave Computing, Inc. Remote usage of machine learned layers by a second machine learning construct
US20190042981A1 (en) * 2017-08-04 2019-02-07 Hannes Bendfeldt Adaptive interface for screen-based interactions
US20190050981A1 (en) * 2017-08-09 2019-02-14 Shenzhen Keya Medical Technology Corporation System and method for automatically detecting a target object from a 3d image
US20190142519A1 (en) * 2017-08-15 2019-05-16 Holo Surgical Inc. Graphical user interface for displaying automatically segmented individual parts of anatomy in a surgical navigation system
US20190073590A1 (en) * 2017-09-01 2019-03-07 Facebook, Inc. Sparse Neural Network Training Optimization
US20190073581A1 (en) * 2017-09-01 2019-03-07 Facebook, Inc. Mixed Machine Learning Architecture
US20190073586A1 (en) * 2017-09-01 2019-03-07 Facebook, Inc. Nested Machine Learning Architecture
US20190073580A1 (en) * 2017-09-01 2019-03-07 Facebook, Inc. Sparse Neural Network Modeling Infrastructure
US20190080512A1 (en) * 2017-09-12 2019-03-14 Microsoft Technology Licensing, Llc Three-dimensional graphics image processing
US20190095798A1 (en) * 2017-09-28 2019-03-28 D5Ai Llc Stochastic categorical autoencoder network
US20190102678A1 (en) * 2017-09-29 2019-04-04 Samsung Electronics Co., Ltd. Neural network recogntion and training method and apparatus
US20190105009A1 (en) * 2017-10-10 2019-04-11 Holo Surgical Inc. Automated segmentation of three dimensional bony structure images
US20190110038A1 (en) * 2017-10-11 2019-04-11 Adobe Systems Incorporated Virtual Reality Parallax Correction
US20190108679A1 (en) * 2017-10-11 2019-04-11 Alibaba Group Holding Limited Point Cloud Meshing Method, Apparatus, Device and Computer Storage Media
US20190108396A1 (en) * 2017-10-11 2019-04-11 Aquifi, Inc. Systems and methods for object identification
US20190114537A1 (en) * 2017-10-16 2019-04-18 Facebook, Inc. Distributed training and prediction using elastic resources
US20190114540A1 (en) * 2017-10-16 2019-04-18 Samsung Electronics Co., Ltd. Method of updating sentence generation model and sentence generating apparatus
US20190122106A1 (en) * 2017-10-23 2019-04-25 Samsung Electronics Co., Ltd. Method and apparatus with neural network
US10346728B2 (en) * 2017-10-26 2019-07-09 Hitachi, Ltd. Nodule detection with false positive reduction
US20190147335A1 (en) * 2017-11-15 2019-05-16 Uber Technologies, Inc. Continuous Convolution and Fusion in Neural Networks
US20190147253A1 (en) * 2017-11-15 2019-05-16 Uber Technologies, Inc. Autonomous Vehicle Lane Boundary Detection Systems and Methods
US20190147221A1 (en) * 2017-11-15 2019-05-16 Qualcomm Technologies Inc. Pose estimation and model retrieval for objects in images
US20190164301A1 (en) * 2017-11-24 2019-05-30 Electronics And Telecommunications Research Institute Apparatus and method of learning pose of moving object
US20190164351A1 (en) * 2017-11-24 2019-05-30 Electronics And Telecommunications Research Institute Method of reconstrucing 3d color mesh and apparatus for same
US20190164055A1 (en) * 2017-11-29 2019-05-30 Microsoft Technology Licensing, Llc Training neural networks to detect similar three-dimensional objects using fuzzy identification
US20190163747A1 (en) * 2017-11-30 2019-05-30 Samsung Electronics Co., Ltd. Language model translation and training method and apparatus
US20190179858A1 (en) * 2017-12-11 2019-06-13 Facebook, Inc. Fast Indexing with Graphs and Compact Regression Codes on Online Social Networks
US20190183576A1 (en) * 2017-12-15 2019-06-20 Medtronic, Inc. Augmented reality solution to disrupt, transform and enhance cardiovascular surgical and/or procedural mapping navigation and diagnostics
US20190199743A1 (en) * 2017-12-22 2019-06-27 Robert Bosch Gmbh Method and device for recognizing anomalies in a data stream of a communication network
US20190043201A1 (en) * 2017-12-28 2019-02-07 Christina R. Strong Analytic image format for visual computing
US20190220573A1 (en) * 2018-01-17 2019-07-18 Samsung Electronics Co., Ltd. Method and apparatus for generating a chemical structure using a neural network
US20190228110A1 (en) * 2018-01-19 2019-07-25 General Electric Company System and method for abstracting characteristics of cyber-physical systems
US20190228590A1 (en) * 2018-01-25 2019-07-25 Ctrl-Labs Corporation User-controlled tuning of handstate representation model parameters
US20190228330A1 (en) * 2018-01-25 2019-07-25 Ctrl-Labs Corporation Handstate reconstruction based on multiple inputs
US20190228312A1 (en) * 2018-01-25 2019-07-25 SparkCognition, Inc. Unsupervised model building for clustering and anomaly detection
US20190236809A1 (en) * 2018-01-26 2019-08-01 Sony Corporation Multiple mesh encoding using motion tracking data of objects
US20190236362A1 (en) * 2018-01-30 2019-08-01 Mashgin Inc. Generation of two-dimensional and three-dimensional images of items for visual recognition in checkout apparatus
US20190244423A1 (en) * 2018-02-08 2019-08-08 Google Llc Machine learning-based geometric mesh simplification
US20190251694A1 (en) * 2018-02-14 2019-08-15 Elekta, Inc. Atlas-based segmentation using deep-learning
US20190250998A1 (en) * 2018-02-14 2019-08-15 Commvault Systems, Inc. Machine-learning based data object retrieval
US20190253452A1 (en) * 2018-02-14 2019-08-15 Cisco Technology, Inc. Adaptive union file system based protection of services
US20190253614A1 (en) * 2018-02-15 2019-08-15 Adobe Inc Smart guide to capture digital images that align with a target image model
US20190259216A1 (en) * 2018-02-21 2019-08-22 Adobe Inc. Refining local parameterizations for applying two-dimensional images to three-dimensional models
US20190261945A1 (en) * 2018-02-26 2019-08-29 Siemens Medical Solutions Usa, Inc. Three-Dimensional Segmentation from Two-Dimensional Intracardiac Echocardiography Imaging
US20190272631A1 (en) * 2018-03-01 2019-09-05 Carl Zeiss Meditec, Inc. Identifying suspicious areas in ophthalmic data
US20190278292A1 (en) * 2018-03-06 2019-09-12 Zoox, Inc. Mesh Decimation Based on Semantic Information
US20190287230A1 (en) * 2018-03-19 2019-09-19 Kla-Tencor Corporation Semi-supervised anomaly detection in scanning electron microscope images
US20190295318A1 (en) * 2018-03-21 2019-09-26 Zoox, Inc. Generating maps without shadows
US20190295282A1 (en) * 2018-03-21 2019-09-26 Nvidia Corporation Stereo depth estimation using deep neural networks
US20190294961A1 (en) * 2018-03-23 2019-09-26 Abbyy Production Llc Generative augmentation of image data
US20190304184A1 (en) * 2018-03-27 2019-10-03 Electronic Arts, Inc. Directional dilation at a mesh boundary of three-dimensional images
US20190303745A1 (en) * 2018-03-27 2019-10-03 Hon Hai Precision Industry Co., Ltd. Artificial neural network
US20190304480A1 (en) * 2018-03-29 2019-10-03 Ford Global Technologies, Llc Neural Network Generative Modeling To Transform Speech Utterances And Augment Training Data
US10346524B1 (en) * 2018-03-29 2019-07-09 Sap Se Position-dependent word salience estimation
US20190332729A1 (en) * 2018-04-26 2019-10-31 Vektor Medical, Inc. Calibration of simulated cardiograms
US20190333643A1 (en) * 2018-04-26 2019-10-31 Vektor Medical, Inc. Machine learning using clinical and simulated data
US20190332900A1 (en) * 2018-04-30 2019-10-31 Elekta Ab Modality-agnostic method for medical image representation
US20190340541A1 (en) * 2018-05-03 2019-11-07 International Business Machines Corporation Layered stochastic anonymization of data
US10402726B1 (en) * 2018-05-03 2019-09-03 SparkCognition, Inc. Model building for simulation of one or more target features
US20190347105A1 (en) * 2018-05-06 2019-11-14 Strong Force TX Portfolio 2018, LLC Transaction-enabled systems for providing provable access to a distributed ledger with a tokenized instruction set
US20190340716A1 (en) * 2018-05-06 2019-11-07 Strong Force TX Portfolio 2018, LLC Transaction-enabled systems and methods for creating an aggregate stack of intellectual property
US20190336109A1 (en) * 2018-05-07 2019-11-07 Siemens Healthcare Gmbh System and Methods for Performing Biomechanically Driven Image Registration Using Ultrasound Elastography
US20190347553A1 (en) * 2018-05-08 2019-11-14 Microsoft Technology Licensing, Llc Training neural networks using mixed precision computations
US20190354804A1 (en) * 2018-05-15 2019-11-21 Toyota Research Institute, Inc. Systems and methods for conditional image translation
US20190356905A1 (en) * 2018-05-17 2019-11-21 Niantic, Inc. Self-supervised training of a depth estimation system
US20190355150A1 (en) * 2018-05-17 2019-11-21 Nvidia Corporation Detecting and estimating the pose of an object using a neural network model
US20190362551A1 (en) * 2018-05-25 2019-11-28 Lowe's Companies, Inc. System and techniques for automated mesh retopology
US20190373264A1 (en) * 2018-05-29 2019-12-05 Qualcomm Incorporated Bandwidth compression for neural network systems
US20190370435A1 (en) * 2018-05-31 2019-12-05 International Business Machines Corporation Generating synthetic layout patterns by feedforward neural network based variational autoencoders
US20190371080A1 (en) * 2018-06-05 2019-12-05 Cristian SMINCHISESCU Image processing method, system and device
US20190378332A1 (en) * 2018-06-06 2019-12-12 Ke.Com (Beijing)Technology Co., Ltd Systems and methods for filling holes in a virtual reality model
US20190377848A1 (en) * 2018-06-06 2019-12-12 International Business Machines Corporation Coordinates-based variational autoencoder for generating synthetic via layout patterns
US20190377955A1 (en) * 2018-06-08 2019-12-12 Adobe Inc. Generating digital video summaries utilizing aesthetics, relevancy, and generative neural networks
US20190378050A1 (en) * 2018-06-12 2019-12-12 Bank Of America Corporation Machine learning system to identify and optimize features based on historical data, known patterns, or emerging patterns
US20190378051A1 (en) * 2018-06-12 2019-12-12 Bank Of America Corporation Machine learning system coupled to a graph structure detecting outlier patterns using graph scanning
US20190378049A1 (en) * 2018-06-12 2019-12-12 Bank Of America Corporation Ensemble of machine learning engines coupled to a graph structure that spreads heat
US10482674B1 (en) * 2018-06-27 2019-11-19 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for mobile augmented reality
US10318891B1 (en) * 2018-07-23 2019-06-11 Google Llc Geometry encoder
US20200099954A1 (en) * 2018-09-26 2020-03-26 Google Llc Video encoding by providing geometric proxies
US20200098137A1 (en) * 2018-09-26 2020-03-26 Google Llc Texture coordinate compression using texture atlas
US20200153885A1 (en) * 2018-10-01 2020-05-14 Lg Electronics Inc. Apparatus for transmitting point cloud data, a method for transmitting point cloud data, an apparatus for receiving point cloud data and/or a method for receiving point cloud data
US20200151952A1 (en) * 2018-11-08 2020-05-14 Adobe Inc. Three-dimensional mesh deformation using deep learning neural networks
US20190088004A1 (en) * 2018-11-19 2019-03-21 Intel Corporation Method and system of 3d reconstruction with volume-based filtering for image processing
US10311334B1 (en) * 2018-12-07 2019-06-04 Capital One Services, Llc Learning to process images depicting faces without leveraging sensitive attributes in deep learning models
US20200195526A1 (en) * 2018-12-13 2020-06-18 Sap Se Amplifying scaling elasticity of microservice meshes
US10489683B1 (en) * 2018-12-17 2019-11-26 Bodygram, Inc. Methods and systems for automatic generation of massive training data sets from 3D models for training deep learning networks
US20200273248A1 (en) * 2019-02-27 2020-08-27 3Shape A/S Method for manipulating 3d objects by flattened mesh
US20200294194A1 (en) * 2019-03-11 2020-09-17 Nvidia Corporation View synthesis using neural networks
US10504005B1 (en) * 2019-05-10 2019-12-10 Capital One Services, Llc Techniques to embed a data object into a multidimensional frame
US20190318244A1 (en) * 2019-06-27 2019-10-17 Intel Corporation Methods and apparatus to provide machine programmed creative support to a user
US11113880B1 (en) * 2019-07-22 2021-09-07 Facebook Technologies, Llc System and method for optimizing the rendering of dynamically generated geometry
US10937236B1 (en) * 2019-11-11 2021-03-02 Bentley Systems, Incorporated Mesh smoothing for visual quality and analysis improvement
US10990848B1 (en) * 2019-12-27 2021-04-27 Sap Se Self-paced adversarial training for multimodal and 3D model few-shot learning
US20210201075A1 (en) * 2019-12-27 2021-07-01 Sap Se Low-shot learning from imaginary 3d model
US11010951B1 (en) * 2020-01-09 2021-05-18 Facebook Technologies, Llc Explicit eye model for avatar
US20210225089A1 (en) * 2020-01-20 2021-07-22 Beijing Baidu Netcom Science And Technology Co., Ltd. Video blending method, apparatus, electronic device and readable storage medium
US20210279956A1 (en) * 2020-03-04 2021-09-09 Disney Enterprises, Inc. Semantic deep face models
US20210279952A1 (en) * 2020-03-06 2021-09-09 Nvidia Corporation Neural rendering for inverse graphics generation
US10937237B1 (en) * 2020-03-11 2021-03-02 Adobe Inc. Reconstructing three-dimensional scenes using multi-view cycle projection
US20210287430A1 (en) * 2020-03-13 2021-09-16 Nvidia Corporation Self-supervised single-view 3d reconstruction via semantic consistency
US20210295606A1 (en) * 2020-03-18 2021-09-23 Adobe Inc. Reconstructing three-dimensional scenes in a target coordinate system from multiple views
US20210343082A1 (en) * 2020-04-30 2021-11-04 Adobe Inc. Decimating a three-dimensional mesh via successive self-parameterization
US20210383616A1 (en) * 2020-06-05 2021-12-09 Uber Technologies, Inc. Photorealistic Image Simulation with Geometry-Aware Composition
US20210386359A1 (en) * 2020-06-10 2021-12-16 The Board Of Trustees Of The Leland Stanford Junior University Systems and Methods for Estimation of Parkinson's Disease Gait Impairment Severity from Videos Using MDS-UPDRS
US20220130110A1 (en) * 2020-10-28 2022-04-28 Autodesk, Inc. Machine learning techniques for generating designs for three-dimensional objects
US20220130127A1 (en) * 2020-10-28 2022-04-28 Autodesk, Inc. Techniques for training a machine learning model to modify portions of shapes when generating designs for three-dimensional objects
US20220392162A1 (en) * 2021-05-28 2022-12-08 Nvidia Corporation Synthesizing high resolution 3d shapes from lower resolution representations for synthetic data generation systems and applications
US20230081791A1 (en) * 2021-09-16 2023-03-16 Nvidia Corporation Displaced Micro-meshes for Ray and Path Tracing
US20230140460A1 (en) * 2021-11-03 2023-05-04 Nvidia Corporation Extracting triangular 3-d models, materials, and lighting from images

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
I. Ivrissimtzis, C. Rossl and H. . -P. Seidel, "A divide and conquer algorithm for triangle mesh connectivity encoding," 10th Pacific Conference on Computer Graphics and Applications, 2002. Proceedings., Beijing, China, 2002, pp. 294-303, doi: 10.1109/PCCGA.2002.1167873. (Year: 2002) *

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240265561A1 (en) * 2018-12-19 2024-08-08 Nvidia Corporation Mesh reconstruction using data-driven priors
US11556678B2 (en) * 2018-12-20 2023-01-17 Dassault Systemes Designing a 3D modeled object via user-interaction
US11887209B2 (en) * 2019-02-27 2024-01-30 3Shape A/S Method for generating objects using an hourglass predictor
US20220172430A1 (en) * 2019-02-27 2022-06-02 3Shape A/S Method for generating objects using an hourglass predictor
US11450066B2 (en) * 2019-03-11 2022-09-20 Beijing University Of Technology 3D reconstruction method based on deep learning
US12182911B2 (en) * 2019-03-11 2024-12-31 Preferred Networks, Inc. Image generation method, image generation apparatus, and image generation system
US20210398336A1 (en) * 2019-03-11 2021-12-23 Preferred Networks, Inc. Image generation method, image generation apparatus, and image generation system
US20230032012A1 (en) * 2019-03-29 2023-02-02 Microsoft Technology Licensing, Llc Control system using autoencoder
US11960259B2 (en) * 2019-03-29 2024-04-16 Microsoft Technology Licensing, Llc. Control system using autoencoder
US20220369070A1 (en) * 2019-09-27 2022-11-17 Nokia Technologies Oy Method, Apparatus and Computer Program for User Equipment Localization
US11967018B2 (en) * 2019-12-20 2024-04-23 Apple Inc. Inferred shading
US20210192839A1 (en) * 2019-12-20 2021-06-24 Andrew P. Mason Inferred Shading
US11257276B2 (en) * 2020-03-05 2022-02-22 Disney Enterprises, Inc. Appearance synthesis of digital faces
US12182940B2 (en) 2020-03-13 2024-12-31 Nvidia Corporation Self-supervised single-view 3D reconstruction via semantic consistency
US11238650B2 (en) * 2020-03-13 2022-02-01 Nvidia Corporation Self-supervised single-view 3D reconstruction via semantic consistency
US11672602B2 (en) * 2020-06-05 2023-06-13 Verb Surgical Inc. Port placement guide based on insufflated patient torso model and normalized surgical targets
US20210378746A1 (en) * 2020-06-05 2021-12-09 Verb Surgical Inc. Port placement guide based on insufflated patient torso model and normalized surgical targets
US11961287B2 (en) * 2020-10-02 2024-04-16 Servicenow Canada Inc. Method and system for meaningful counterfactual explanations
US20220130143A1 (en) * 2020-10-02 2022-04-28 Servicenow Canada Inc. Method and system for meaningful counterfactual explanations
US11948056B2 (en) * 2020-12-08 2024-04-02 International Business Machines Corporation Communication-efficient data parallel ensemble boosting
US20220180253A1 (en) * 2020-12-08 2022-06-09 International Business Machines Corporation Communication-efficient data parallel ensemble boosting
US20220277431A1 (en) * 2021-02-26 2022-09-01 Adobe Inc. Initializing a learned latent vector for neural-network projections of diverse images
US11893717B2 (en) * 2021-02-26 2024-02-06 Adobe Inc. Initializing a learned latent vector for neural-network projections of diverse images
US20230104702A1 (en) * 2021-10-01 2023-04-06 Disney Enterprises, Inc. Transformer-based shape models
US12198225B2 (en) * 2021-10-01 2025-01-14 Disney Enterprises, Inc. Transformer-based shape models
GB2632364A (en) * 2023-07-24 2025-02-05 Disney Entpr Inc Anatomically constrained implicit shape models

Also Published As

Publication number Publication date
CN111445581A (en) 2020-07-24
EP3671639A1 (en) 2020-06-24
US11995854B2 (en) 2024-05-28
US20240265561A1 (en) 2024-08-08

Similar Documents

Publication Publication Date Title
US20240265561A1 (en) 2024-08-08 Mesh reconstruction using data-driven priors
US11631239B2 (en) 2023-04-18 Iterative spatio-temporal action detection in video
US11715251B2 (en) 2023-08-01 Neural network model trained using generated synthetic images
US10922793B2 (en) 2021-02-16 Guided hallucination for missing image content using a neural network
US20200074707A1 (en) 2020-03-05 Joint synthesis and placement of objects in scenes
US10776688B2 (en) 2020-09-15 Multi-frame video interpolation using optical flow
US12148099B2 (en) 2024-11-19 Reducing level of detail of a polygon mesh to decrease a complexity of rendered geometry within a scene
US11106261B2 (en) 2021-08-31 Optimal operating point estimator for hardware operating under a shared power/thermal constraint
US10614613B2 (en) 2020-04-07 Reducing noise during rendering by performing parallel path space filtering utilizing hashing
US20240338871A1 (en) 2024-10-10 Context-aware synthesis and placement of object instances
CN110390644A (en) 2019-10-29 Add greater realism to computer-generated images by smoothing jagged edges
US11379420B2 (en) 2022-07-05 Decompression techniques for processing compressed data suitable for artificial neural networks
US20200226461A1 (en) 2020-07-16 Asynchronous early stopping in hyperparameter metaoptimization for a neural network
GB2609685A (en) 2023-02-15 Multiresolution hash encoding for neural networks
US11925860B2 (en) 2024-03-12 Projective hash maps
CN115439628A (en) 2022-12-06 Joint shape and appearance optimization by topological sampling
US20190278574A1 (en) 2019-09-12 Techniques for transforming serial program code into kernels for execution on a parallel processor
US11513686B2 (en) 2022-11-29 Techniques for dynamically compressing memory regions having a uniform value
CN113822975B (en) 2024-06-11 Techniques for efficient sampling of images
US20230081641A1 (en) 2023-03-16 Single-image inverse rendering
US20240104845A1 (en) 2024-03-28 Mesh topology generation using parallel processing
US11263051B2 (en) 2022-03-01 Techniques for scaling dictionary-based compression
US20240111532A1 (en) 2024-04-04 Lock-free unordered in-place compaction
US11823319B2 (en) 2023-11-21 Techniques for rendering signed distance functions
US20240104847A1 (en) 2024-03-28 Techniques for parallel edge decimation of a mesh

Legal Events

Date Code Title Description
2018-12-19 FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

2019-08-15 AS Assignment

Owner name: NVIDIA CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GALLO, ORAZIO;BADKI, ABHISHEK;REEL/FRAME:050068/0907

Effective date: 20181210

2020-06-23 STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

2020-10-16 STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED

2021-02-08 STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

2021-03-31 STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

2021-09-29 STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

2021-10-04 STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

2022-01-08 STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

2022-01-18 STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

2022-05-21 STCV Information on status: appeal procedure

Free format text: NOTICE OF APPEAL FILED

2022-08-03 STCV Information on status: appeal procedure

Free format text: APPEAL BRIEF (OR SUPPLEMENTAL BRIEF) ENTERED AND FORWARDED TO EXAMINER

2022-11-15 STCV Information on status: appeal procedure

Free format text: EXAMINER'S ANSWER TO APPEAL BRIEF MAILED

2023-01-19 STCV Information on status: appeal procedure

Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS

2023-09-28 STCV Information on status: appeal procedure

Free format text: BOARD OF APPEALS DECISION RENDERED

2024-01-12 STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

2024-01-17 ZAAB Notice of allowance mailed

Free format text: ORIGINAL CODE: MN/=.

2024-03-14 STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

2024-04-17 STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED

2024-04-18 STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

2024-05-08 STCF Information on status: patent grant

Free format text: PATENTED CASE