Machine Learning for Object Inference in 3D Modeling

By determining the basic template on the data set of 3D modeling objects and learning neural networks, the problem of insufficient inference accuracy of 3D modeling objects in the prior art is solved, and the accurate reconstruction of 3D modeling objects is achieved.

CN111382470BActive Publication Date: 2025-05-06DASSAULT SYSTEMES SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN201911393138.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-12-29
Filing Date
2019-12-30
Publication Date
2025-05-06
Estimated Expiration
2039-12-30

AI Technical Summary

Technical Problem

The prior art has accuracy problems when using data sets of 3D modeling objects for machine learning, making it difficult to effectively learn and infer deformation of 3D modeling objects.

Method used

Provide a data set including 3D modeling objects, determine the basic template for each sub-dataset, and learn a neural network to infer the deformation of the basic template to the corresponding 3D modeling object. The method includes calculating the loss to determine the optimal base template and training the neural network to accurately reconstruct the 3D modeled object.

Benefits of technology

Through this method, the accuracy of deformation inference of 3D modeled objects can be significantly improved, ensuring that the neural network is accurate in reconstruction of 3D modeled objects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111382470B_ABST
    Figure CN111382470B_ABST
Patent Text Reader

Abstract

The present invention particularly relates to a computer-implemented machine learning method. The method comprises providing a data set comprising 3D modeled objects, each 3D modeled object representing a respective mechanical part. The data set has one or more sub-data sets. Each sub-data set forms at least a portion of the data set. The method further comprises, for each respective sub-data set, determining a base template and learning a neural network configured to infer the deformation of the base template to the respective 3D modeled object. The base template is a 3D modeled object representing the centroid of the 3D modeled object of the sub-data set. The learning comprises training based on the sub-data set. This constitutes an improved method for machine learning using a data set comprising 3D modeled objects, each 3D modeled object representing a respective mechanical part.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer programs and systems, and more particularly to methods, systems and programs for performing machine learning using a data set comprising 3D modeled objects, each 3D modeled object representing a respective mechanical part. Background Art

[0002] Many systems and programs for design, engineering and manufacturing of objects are provided on the market. CAD is an acronym for computer-aided design, for example, CAD relates to software solutions for designing objects. CAE is an acronym for computer-aided engineering, for example, CAE relates to software solutions for simulating the physical behavior of future products. CAM is an acronym for computer-aided manufacturing, for example, CAM relates to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, graphical user interfaces play an important role in the efficiency of the technology. These technologies can be embedded in product lifecycle management (PLM) systems. PLM refers to such a business strategy: helping companies to share product data, apply common processes, and use corporate knowledge to develop products from concept to the end of the product's life span across the concept of extended enterprises. The PLM solutions provided by Dassault Systèmes (trademarks CATIA, ENOVIA and DELMIA) provide engineering centers that organize product engineering knowledge, manufacturing centers that manage manufacturing engineering knowledge, and enterprise centers that enable enterprises to integrate and connect to engineering and manufacturing centers. Together, the system provides an open object model that links products, processes, resources to enable dynamic and knowledge-based product creation and decision support, which drives optimized product definition, manufacturing preparation, production, and service.

[0003] In this and other contexts, machine learning, and especially autoencoders and / or manifold learning, becomes very important.

[0004] The following articles cover this area and are mentioned below:

[0005] [1]: "Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion", P. Vincent, H. Larcohelle, I. Lajoie, Y. Bengio, P. Manzagol, in The Journal of Machine Learning Research, 2010.

[0006] [2]:“Reducing the Dimensionality of Data with Neural Networks”,G.E.Hinton,R.R.Salakhutdinov,in Science,2006.

[0007] [3]:“Learning Deep Architectures for AI”,Y.Bengio,in Foundations andTrends in Machine Learning,2009.

[0008] [4]Maxim Tatarchenko,Alexey Dosovitskiy,and Thomas Brox.Multi-view 3dmodels from single images with a convolutional network.In European Conferenceon Computer Vision,2016.

[0009] [5]Xinchen Yan,Jimei Yang,Ersin Yumer,Yijie Guo,and HonglakLee.Perspective transformer nets:Learning single-view 3d objectreconstruction without 3d supervision.In Advances in Neural InformationProcessing Systems,2016.

[0010] [6]Zhirong Wu,Shuran Song,Aditya Khosla,Fisher Yu,Linguang Zhang,Xiaoou Tang,and Jianxiong Xiao.3d shapenets:A deep representation forvolumetric shapes.In Computer Vision and Pattern Recognition,2015.

[0011] [7]Christian Shubham Tulsiani,and Jitendra Malik.Hierarchicalsurface prediction for 3d object reconstruction.In 3DV,2017.

[0012] [8]Charles R Qi,Hao Su,Kaichun Mo,and Leonidas J Guibas.Pointnet:Deeplearning on point sets for 3d classification and segmentation.In ComputerVision and Pattern Regognition,2017.

[0013] [9]Charles Ruizhongtai Qi,Li Yi,Hao Su,and Leonidas J.Guibas.Pointnet++:Deep hierarchical feature learning on point sets in a metric space.InNIPS,2017.

[0014]

[10] Thibault Groueix,Matthew Fisher,Vladimir G.Kim,Bryan Russell,andMathieu Aubry.AtlasNet:A Approach to Learning 3D SurfaceGeneration.In Computer Vision and Pattern Recognition,2018.

[0015]

[11] Yaoqing Yang,Chen Feng,Yiru Shen,and Dong Tian.FoldingNet:PointCloud Auto-encoder via Deep Grid Deformation.In Computer Vision and PatternRecognition,2018.

[0016]

[12] Dimitri P. Bertsekas. The Auction Algorithm: a DistributedRelaxation Method for the Assignment. In Annals of Operations Research-SpecialIssue: Parallel Optimization on Novel Computer Architectures, Volume 14Issue 1-4, June 1988.

[0017] Given a dataset representing samples from the same class, e.g., a dataset of images of chairs or a dataset of 3D models of cars, an autoencoder (explained in the previously cited articles [1, 2]) can be used to learn a mapping between the original input space of the dataset and a low-dimensional space, which is often called a latent space. In addition, the autoencoder can also learn a reverse mapping from the latent space to the original input space. These mappings can be used to extract meaningful features in the data and / or compress the data into a compact representation.

[0018] In [4], an autoencoder is learned whose input is an RGB image of an object and a viewpoint and predicts the depth map of the object in the input image given the viewpoint, while in [5], an autoencoder is learned that can directly transform a single RGB image into a 32-dimensional representation of the 3D object in the input. 3 Autoencoders for voxel grids.

[0019] Article [6] directly in 32 3 Learning a 3D convolutional deep belief network on a voxel grid represents the binary occupancy volume of a 3D shape. As done in [7], an octree can be used to reconstruct a high-resolution voxel grid.

[0020] The paper [8] and its multi-scale extension in [9] introduce a deep architecture capable of learning directly on point clouds, called PointNet. If the point cloud is represented as a vector of n 3D points, the key is to build a network that is invariant to the permutation of the points, so that the network actually depends on the quotient of the space of n 3D points by permutation, that is, it is independent of the order used to represent the point cloud. To achieve this goal, the architecture relies on a shared layer applied to each input point and has the form g(h(x 1 ),···,h(x n )), where h is from arrive A neural network, and g is a permutation invariant function, for example, the max function.

[0021] All of these methods suffer from a lack of accuracy.

[0022] In this context, there remains a need for improved methods of machine learning utilizing datasets comprising 3D modeled objects, each 3D modeled object representing a respective mechanical part. Summary of the invention

[0023] Therefore, a computer-implemented machine learning method is provided. The method includes providing a data set including 3D modeled objects, each 3D modeled object representing a corresponding mechanical part. The data set has one or more sub-data sets. Each sub-data set forms at least a portion of the data set. The method also includes, for each corresponding sub-data set, determining a base template, and learning a neural network configured to infer the deformation of the base template to the corresponding 3D modeled object. The base template is a 3D modeled object representing the center of mass of the 3D modeled object of the sub-data set. The learning includes training based on the sub-data set.

[0024] This constitutes an improved method for machine learning using a dataset comprising 3D modeled objects, each 3D modeled object representing a respective mechanical part.

[0025] The method may include one or more of the following operations:

[0026] - determining the basic template includes calculating the minimum value of the loss within the candidate basic template, the loss penalizing the difference between the 3D modeled object of the sub-dataset and the candidate basic template for each 3D modeled object of the sub-dataset;

[0027] - the difference between the 3D modeled object of the sub-dataset and the candidate basic template is a function of the distance between the 3D modeled object and the candidate basic template;

[0028] - the distance is the distance between the first point cloud representing the 3D modeled object and the second point cloud representing the candidate basic template;

[0029] -The losses are of the following types:

[0030] in:

[0031] ·D 1 (S j ,x i,j ) is S j With x i,j A function of the distance between

[0032] ·S j is the second point cloud;

[0033] ·p j is the number of 3D modeled objects in the corresponding sub-dataset; and

[0034] ·x 1,j ,x 2,j ,…, is the first point cloud;

[0035] - The calculation includes:

[0036] Provide basic 3D modeling objects; and

[0037] Starting with basic 3D modeling objects, iterate the following operations:

[0038] Evaluate the impact of previous candidate base templates on the loss; and

[0039] Transform the previous candidate basic template into a new candidate basic template;

[0040] - the base 3D modeled object represents a sphere, and / or the loss penalizes, for each 3D modeled object of the sub-dataset, an Earth Mover distance loss between a first point cloud representing the 3D modeling of the sub-dataset and a second point cloud representing the new candidate base template;

[0041] The basic 3D modeled object is a point cloud, and the optimized point cloud is generated iteratively, and optionally, the determination of the basic template further includes:

[0042] Inferring normals at points in the optimized point cloud; and

[0043] performing an optimized surface reconstruction of the point cloud based on the inferred normals; and / or

[0044] - The neural network is an autoencoder comprising a decoder configured to infer a deformation.

[0045] A neural network capable of learning according to this method is also proposed.

[0046] A computer-implemented method using the neural network is also proposed.

[0047] The usage may include the following:

[0048] - the neural network is an autoencoder, the autoencoder comprising a decoder configured to infer a deformation, and the method comprises:

[0049] Providing a first 3D modeled object and a second 3D modeled object;

[0050] Applying an autoencoder to the first 3D modeled object and the second 3D modeled object;

[0051] Based on the result of applying the autoencoder, determining a shape match between the first 3D modeled object and the second 3D modeled object.

[0052] A computer program is also provided, the computer program comprising instructions for performing the method and / or the method of use.

[0053] Also provided is a device comprising a data storage medium having recorded thereon a neural network and / or a computer program.

[0054] The device may form or be used as a non-transitory computer-readable medium, for example, on a SaaS (Software as a Service) or other server, or on a cloud-based platform, etc. The device may alternatively include a processor coupled to a data storage medium. Thus, the device may form a computer system in whole or in part (e.g., the device is a subsystem of an overall system). The system may also include a graphical user interface coupled to the processor. BRIEF DESCRIPTION OF THE DRAWINGS

[0055] Embodiments will now be described by way of non-limiting examples and with reference to the accompanying drawings, in which:

[0056] - Figure 1 A flow chart showing an example computer-implemented process incorporating an example of the method;

[0057] - Figures 2 to 19 Methods and / or processes and / or methods of use are shown;

[0058] - Fig. 20 An example of a graphical user interface for the system is shown;

[0059] - Fig.21 An example of a system is shown. DETAILED DESCRIPTION

[0060] A computer-implemented method for performing machine learning using a data set including 3D modeled objects, each 3D modeled object representing a respective mechanical part is provided.

[0061] Significantly, a first computer-implemented method for machine learning is provided. The first method includes providing a data set including 3D modeled objects. The 3D modeled objects each represent a corresponding mechanical part. The data set has one or more sub-data sets. Each sub-data set forms at least a portion of the data set. The first method also includes determining a basic template for each corresponding sub-data set. The basic template is a 3D modeled object representing the center of mass of the 3D modeled object of the sub-data set. The first method also includes learning a neural network configured to infer deformations of the basic templates to the corresponding 3D modeled objects. The learning includes training based on the sub-data sets. Hereinafter, the first method may be referred to as a "template learning method".

[0062] The template learning method forms an improved method for machine learning using a data set comprising 3D modeled objects, each 3D modeled object representing a respective mechanical part.

[0063] Significantly, the template learning method allows for determining, for each respective sub-dataset, a 3D modeled object representing the centroid of the 3D modeled object of the sub-dataset. In other words, the template learning method determines a 3D modeled object, i.e., a basic template, which represents the 3D modeled object of the sub-dataset (e.g., its average shape). The template learning method also allows for learning a neural network that infers the deformation of the centroids to the respective 3D modeled objects. Learning of such a neural network includes training based on the sub-datasets. In other words, the learning uses the 3D modeled objects of the sub-datasets to learn the inference of the deformation of the centroid of such modeled objects. Therefore, learning can focus on learning the inference of the accurate details of the deformation, because the basic template as the centroid of the sub-dataset does not necessarily need to be heavily deformed and / or roughly transformed into the 3D modeled object of the sub-dataset. Therefore, the neural network learned according to the template learning method infers the accurate deformation of the basic template to the 3D modeled object of the data set. In an example, the neural network is an autoencoder including a decoder configured to infer the deformation. In such an example, the autoencoder may take as input a 3D modeled object and may output a reconstruction of the 3D modeled object that is or is based on a deformation of the base template inferred by the decoder to the 3D modeled object. Since the decoder infers an accurate deformation of the base template to the 3D modeled object of the sub-dataset, the reconstruction of such an object by the autoencoder is accurate.

[0064] In an example, the data set is divided into k corresponding sub-data sets or substantially divided into k corresponding sub-data sets, for example, the number k is greater than 2. In these examples, the template learning method determines k basic templates and learns k neural networks. Each basic template represents the center of mass of the corresponding sub-data set. In these examples, each neural network learned by the template learning method infers the deformation of a corresponding one of the k basic templates to the 3D modeled object. Therefore, as explained above, each neural network infers the accurate deformation of a corresponding one of the k basic templates to the 3D modeled object of the corresponding sub-data set (wherein the corresponding one of the k basic templates represents a center of mass). In other words, the template learning method learns k neural networks, each of which is specifically used to infer the center of mass of the corresponding sub-data set to the accurate deformation of the object of the sub-data set. In the example, the template learning method can therefore learn k autoencoders, each of which is specifically used to reconstruct the 3D modeled object of the corresponding sub-data set.

[0065] It will be appreciated that the number k may be equal to 1, in which case the data set comprises only one sub-dataset. The sub-dataset forms at least a part, in which case this means that the sub-dataset is equal to or substantially equal to the data set. In such an example, the template learning method still benefits from the accuracy of the previously discussed learning neural network configured to infer deformations of the determined base template. In fact, the determined base template represents the center of mass of all or substantially all 3D modeled objects of the data set, and therefore, during its learning, the neural network configured to infer deformations of the determined base template can focus on learning accurate details of the deformations.

[0066] The number k may correspond to the fact that the data set itself is divided or substantially divided into k respective categories of 3D modeled objects. That is, each respective sub-dataset consists uniquely or substantially uniquely of one respective category of 3D modeled objects. "The data set itself is divided into k respective sub-datasets, each sub-dataset consisting of a respective category of 3D modeled objects" means in the example that the template learning method comprises a step of dividing the data set into k respective sub-datasets before determining the basic template and / or before learning the neural network, each sub-dataset consisting of a respective category of 3D modeled objects. The division may comprise assigning a label representing a respective category to each 3D modeled object of the data set. Thus, in this case, the template learning method provides k neural networks, each of which is specialized for inferring an accurate deformation of the center of mass of the respective sub-dataset to an object of the category corresponding to the sub-dataset. In the example, the template learning method may therefore learn k autoencoders, each of which is specialized for reconstructing a respective category of 3D modeled objects.

[0067] Additionally or alternatively, the number k may be provided by a user. In such an example, the data set itself is not necessarily divided or substantially divided into k corresponding sub-data sets, each of which is composed of 3D modeled objects of a corresponding category, but the provision of the number k may force such a division. By "forced" it is meant that the division may originate from the determination of the basic template and / or the learning of the neural network (and / or occurs during the determination of the basic template and / or the learning of the neural network), for example, without user action. In fact, determining the k basic templates may include minimizing the common loss. For each 3D modeled object of the data set, the common loss selects an item from a plurality of items. Each item penalizes the difference between the 3D modeled object and the candidate basic template. The selected item may be an item of the plurality of items for which the difference is penalized to the minimum extent. In other words, the selection of the candidate basic template is operated (e.g., iteratively) according to the similarity of the candidate basic template (which is the 3D modeled object tested as a potential basic template) with the 3D modeled object of the data set. This forces the determination of k corresponding basic templates, which have the smallest average dissimilarity with all 3D modeled objects of the corresponding sub-data set. In other words, the template learning method divides the data set into k sub-datasets by forcing the determination of k centroids, thereby clustering the objects of the data set according to their (e.g., best) similarity to one of the centroids. In other words, providing the number k automatically divides the data set into k corresponding categories, each category corresponding to the objects of a corresponding one of the k sub-datasets, i.e., the objects with the smallest dissimilarity to the centroid of the sub-dataset. Such a division also forces each of the k learned neural networks to be specifically used to infer the accurate deformation of the centroid of the corresponding sub-dataset to the object of the category corresponding to the sub-dataset. In the example of dividing the data set itself or substantially dividing it into k corresponding categories of 3D modeled objects, the previously discussed data set division after providing the number k may actually correspond to or substantially correspond to the division of the data set itself. In other words, the previously discussed data set division after providing the number k may lead to the same result as the division of the data set itself (i.e., the same partitioning of the data set).

[0068] In the example, there is only one sub-dataset (e.g., the only sub-dataset that forms the entire data set), and therefore only one template representing the centroid of the entire data set is determined. In other examples, there are several sub-datasets, and therefore one centroid is determined for each sub-dataset. In a specific example of such an example, the original data set is provided (i.e., there is no information about which sub-dataset the elements of the data set belong to), and learning includes minimizing a single loss (i.e., and there are no other losses). In such a specific example, the loss is configured to operate on the allocation of elements to correct the corresponding sub-datasets. In such an example, learning of several basic templates can allow avoiding the requirement to divide the data set into several sub-datasets in advance. In such an example, a single loss can make it possible to automatically cluster the data set step by step during learning the basic templates (similar to learning several autoencoders).

[0069] A second computer-implemented method for machine learning is also provided. The second method includes providing a data set including 3D modeled objects. The 3D modeled objects each represent a corresponding mechanical part. The second method includes providing a set of neural networks. Each neural network has a corresponding weight. Each neural network is configured to infer the 3D modeled object. The second method also includes modifying the corresponding weight of the neural network by minimizing the loss. For each 3D modeled object in the data set, the loss selects an item from a plurality of items. Each item penalizes the difference between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network in the set. The selected item is the item from the plurality of items for which the difference is minimally penalized. The second method may be referred to as the "manifold learning method" hereinafter.

[0070] Manifold learning methods form an improved approach to machine learning using a dataset comprising 3D modeled objects, each 3D modeled object representing a respective mechanical part.

[0071] Significantly, the manifold learning method learns several neural networks on the same dataset of 3D modeled objects, each of which can infer 3D modeled objects. The learning includes minimizing the loss, and the loss operates on the selection of terms that penalize the differences between the 3D modeled objects of the dataset and the 3D modeled objects inferred by the corresponding neural network. The selected terms are the terms for which the differences are penalized to the minimum extent. In other words, the manifold learning method learns the neural network by (e.g., iteratively) operating on which neural network (e.g., most) accurately infers the 3D modeled object for each 3D modeled object of the dataset. Therefore, each neural network is (e.g., iteratively, such as gradually during its learning) specialized for inferring 3D modeled objects of a sub-dataset in the dataset, each sub-dataset consisting of 3D modeled objects of the dataset that the neural network is specialized for. The neural networks learned by the manifold learning method are therefore accurate. In the example, each neural network is an autoencoder that includes a decoder configured to infer 3D modeled objects. In such an example, each autoencoder may take as input a 3D modeled object and may output a reconstruction of the 3D modeled object that is or is based on the 3D modeled object inferred by the decoder. Since each decoder accurately infers the 3D modeled object of a sub-dataset in the dataset, the autoencoder's reconstruction of such an object is accurate.

[0072] In an example, a manifold learning method learns k neural networks. That is, the set of neural networks consists of k neural networks. The number k can be provided by a user. Then, this provision of the number k forces the specialization of each neural network discussed above in the inference of the 3D modeled object of a corresponding one of the k sub-datasets in the data set. This provision of the number k also forces the data set to be divided (e.g., during learning, e.g., without user action) into k categories of 3D modeled objects, each category corresponding to a 3D modeled object whose inference is a specialty of a corresponding one of the k neural networks learned. In an example, this forced division of the data set into k categories of 3D modeled objects can correspond to dividing the data set itself or substantially dividing it into k categories of 3D modeled objects, wherein each corresponding sub-dataset consists of a corresponding category of 3D modeled objects uniquely or substantially uniquely. "Dividing the data set itself into k categories of 3D modeled objects" further means in an example that the manifold learning method includes a step of dividing the data set into k corresponding sub-datasets before learning the neural network, each sub-dataset consisting of a corresponding category of 3D modeled objects. The partitioning may include assigning a label representing a corresponding category to each 3D modeled object of the data set.

[0073] In the examples, each neural network is configured to infer the deformation of the corresponding basic template to the corresponding 3D modeled object. In these examples, each corresponding basic template is a 3D modeled object. In these examples, each corresponding basic template can be a 3D modeled object representing the center of mass of the 3D modeled object of the sub-dataset in the data set. In such examples, each neural network is particularly accurate. First, because the neural network is specifically used to infer the 3D modeled object of the sub-dataset, it is accurate, as previously discussed. Secondly, because the 3D modeled objects inferred by the neural network are deformations of or based on the deformations of the 3D modeled objects (center of mass) similar to them, the neural network is accurate, as previously discussed. In the examples, the corresponding basic templates or at least a portion of them are determined according to the template learning method. In this case, the learned neural network will benefit from the accuracy of both the template learning method and the manifold learning method discussed previously, which makes these neural networks particularly accurate. Alternatively, the corresponding basic templates or at least a portion of them can be determined by any other method.

[0074] The template learning method and the manifold learning method may be performed independently. Learning of one or more neural networks according to the template learning method (i.e., learning of the neural network for each respective sub-data set in the one or more sub-data sets) may include minimizing the loss according to the manifold learning method. Alternatively, learning of one or more neural networks according to the template learning method may be performed by any other machine learning method. The neural network learned by manifold learning may be configured to infer a deformation of a base template, as previously discussed, the base template being determined by the template learning method or any other method.

[0075] Template learning methods and manifold learning methods can be integrated into the same process. Figure 1 A flow chart illustrating this process is shown and is now discussed.

[0076] The process includes providing S10 a public data set including 3D modeled objects. Each 3D modeled object represents a corresponding mechanical part. In an example, providing a data set according to a template learning method and providing a data set according to a manifold learning method include reusing the public data set provided S10 according to the process. In other words, the data set provided by the template learning method and the data set provided by the manifold learning method are the same as the public data set provided by the process. Alternatively, providing a data set according to a template learning method may include reusing a first part of the public data set, and providing a data set according to a manifold learning method may include reusing a second part of the public data set. The second part and the first part may be different. In an example, the second part and the first part may be different, but may include 3D modeled objects of the same category. In other words, both the second part and the first part themselves can be divided according to the same number k of 3D modeled objects of the category. The process further includes providing S20 a number k. The providing S20 of the number k may include specifying (e.g., declaring) the number k by a user. The process also includes determining S30 k basic templates. Determining S30 k basic templates is performed according to the template learning method. The process further comprises learning S40 k neural networks. The learning S40 of the k neural networks comprises modifying S420 the corresponding weights of the set of neural networks consisting of the k neural networks according to the manifold learning method.

[0077] Using the same data set (i.e., the common data set) in this process to perform the determination S30 of k basic templates according to the template learning method and to perform the learning of k neural networks according to the manifold learning method allows to benefit in particular from the combination of the two methods. In fact, the determination S30 of k basic templates according to the template learning method divides (e.g., clusters) the common data set into k sub-datasets, in other words, also divides the common data set into k categories of 3D modeled objects. Each corresponding neural network of the k neural networks learned according to the manifold learning method can be learned to be configured for inferring the deformation of a corresponding one of the k basic templates to the 3D modeled object of the common data set. In this case, the division of the common data set into k sub-datasets provided by the determination S30 of k basic templates helps and improves the previously discussed method of dedicating each corresponding neural network of the k neural networks to inferring the accurate deformation of the 3D modeled object of the sub-dataset from the center of mass of a corresponding one of the k sub-datasets to the sub-dataset. Furthermore, as previously discussed, each respective one of the k neural networks may focus on learning S40 details about the deformation of the centroid of the sub-dataset to the 3D modeled object of the sub-dataset, which improves its accuracy. In an example, the process may thus learn k autoencoders, each of which is particularly specialized for particularly accurately reconstructing the 3D modeled object of the respective sub-dataset.

[0078] Additionally or alternatively, the number k provided may correspond to the fact that the common dataset itself is divided or substantially divided into k categories of 3D modeled objects, as previously discussed. In this case, the process may therefore provide k neural networks that are specialized for inferring the deformation of the respective centroids of k respective sub-datasets (each consisting of a category of objects) to the 3D modeled objects of that category. Significantly, the process may therefore learn k autoencoders, each of which is specialized for particularly accurately reconstructing the respective category of 3D modeled objects.

[0079] Neural networks and / or sets of (e.g., k) neural networks learnable and / or obtainable according to the template learning method, manifold learning method, or the process are also presented. Computer-implemented methods using the neural networks and / or sets of (e.g., k) neural networks are also provided. Examples of using the methods are now discussed.

[0080] Now let's discuss an example of how neural networks can be used.

[0081] In these examples, the neural network is an autoencoder that includes a decoder configured to infer deformations of the base templates to respective 3D modeled objects. In these examples, the method of use also includes providing a first 3D modeled object and a second 3D modeled object. In these examples, the method of use also includes applying the autoencoder to the first 3D modeled object and the second 3D modeled object. In these examples, the method of use also includes determining a shape match between the first 3D modeled object and the second 3D modeled object based on a result of applying the autoencoder.

[0082] The base template may represent the centroid of a 3D modeled object in a class of 3D modeled objects. In an example, each 3D modeled object in the class and the base template are 3D meshes (or point clouds). In these examples, the decoder may be configured to infer a set of correspondences between each vertex (or point) of the base template and the vertices (or points) of the 3D modeled object of the class to which the base template is deformed. Both the 3D modeled object and the second 3D modeled object may be modeled objects of the class. Therefore, in an example, the application of the autoencoder outputs a first set of correspondences between each vertex (or point) of the base template and each vertex (or point) of the first 3D modeled object. In these examples, the application of the autoencoder also outputs a second set of correspondences between each vertex (or point) of the base template and each vertex (or point) of the second 3D modeled object. Based on the first set of correspondences and the second set of correspondences, a third set of correspondences between each vertex (or point) of the first 3D modeled object and each vertex (or point) of the second 3D modeled object may be inferred. In an example, determining that the shape matches corresponds to inference of the third set of correspondences.

[0083] Learning the base template ensures better topological consistency of the autoencoder. In particular, starting from the learned base template, vertex-to-vertex correspondence is ensured between all meshes or point clouds reconstructed by the autoencoder, allowing the use of methods to provide shape matching, as discussed previously. Two applications of shape matching are now discussed.

[0084] The first application is shape matching for simulation. The first application includes providing a first 3D modeled object and one or more second 3D modeled objects, for example, the first 3D modeled object and the one or more second 3D modeled objects are 3D modeled objects belonging to the same category. For each second 3D modeled object, the first application includes applying an autoencoder to the first 3D modeled object and the second 3D modeled object according to a method of use. The first application also includes determining a shape match between the first 3D modeled object and the second 3D modeled object based on a result of applying the autoencoder according to the method of use. The first application also includes annotating the first 3D modeled object with one or more publications and / or landmarks of the simulation experience, and redirecting one or more annotations in the annotation on each second 3D modeled object by using each determined shape match. The first application also includes rerunning the simulation experience for each annotated second 3D modeled object, thereby allowing the simulation for any second 3D modeled object to be rerun by annotating only the first 3D modeled object.

[0085] The second application is shape matching for material / texture redirection. The second application includes providing a first 3D modeled object and one or more second 3D modeled objects, for example, the first 3D modeled object and the one or more second 3D modeled objects are 3D modeled objects of the same category. For each second 3D modeled object, the second application includes applying an autoencoder to the first 3D modeled object and the second 3D modeled object according to a method of use. The second application also includes determining a shape match between the first 3D modeled object and the second 3D modeled object based on the result of applying the autoencoder according to the method of use. The second application also includes applying a texture or material with a UV mapping on the first modeled object. The second application also includes redirecting the UV mapping on one or more second modeled objects by using each determined shape match. This allows the UV mapping to be redirected on any other second 3D modeled object, thereby redirecting the texture or material.

[0086] Retargeting is easier with the reconstruction provided by the autoencoder, since the autoencoder can always have exactly the same mesh topology and the same output connectivity.

[0087] Examples of applications of shape matching determined by the examples of use methods discussed above are Figure 2, where it is shown that the autoencoder preserves connectivity and allows the vertices of the chair to be placed in correspondence.

[0088] An example of a method of using an ensemble of (eg, k) neural networks is now discussed.

[0089] In these examples, each neural network is a respective autoencoder comprising a respective decoder configured to infer a 3D modeled object. In these examples, the method of use comprises providing two or more 3D modeled objects. In these examples, the method of use further comprises projecting each of the two or more 3D modeled objects onto a latent space of a respective autoencoder of the set of neural networks. In these examples, the method of use further comprises computing one or more interpolations between the projected two or more 3D modeled objects on the latent space. In these examples, the method of use further comprises applying the decoder to each computed interpolation.

[0090] Any calculated interpolation of the one or more interpolations calculated on the latent space is a latent vector (also referred to as an "interpolated latent vector"), which is an interpolation between two latent vectors, which are respective projections of the 3D modeled objects in the two or more 3D modeled objects on the latent space. Therefore, one or more such interpolated latent vectors are calculated using the method. The interpolation between the two latent vectors may be any interpolation, for example, any linear interpolation on the vector space.

[0091] In the example, each 3D modeled object involved in the method of use is a class of 3D modeled objects. In such a case, the decoder of the corresponding autoencoder can be configured to (e.g., specifically for) inferring the 3D modeled objects of the class. Therefore, the decoder is applied to the calculated interpolation output 3D modeled objects of the class. Because the calculated interpolation is an interpolation potential vector calculated between two projections of two 3D modeled objects of the class, the decoded interpolation potential vector is a 3D modeled object of the class, which represents the interpolation between the two 3D modeled objects of the class, for example, an intermediate geometric shape. Therefore, the method of use can calculate one or more such interpolations.

[0092] Reference now Figure 3 and Figure 4 Discuss examples of how to use it.

[0093] Figure 3 Shown are a first 3D modeled object 30 and a second 3D modeled object 32. Both objects are chairs belonging to the class of chairs with four legs. Figure 3 A set 34 of six chairs with four legs is shown, each chair belonging to the category, each chair being an interpolation between the two chairs 30 and 32 calculated using the method.

[0094] Figure 4 Shown are a first 3D modeled object 40 and a second 3D modeled object 42. Both objects are chairs belonging to the category of chairs. Figure 4 A set 44 of six chairs is shown, each chair belonging to the category, each chair being an interpolation between the two chairs 40 and 42 calculated using the method.

[0095] Benefiting from the accuracy of the previously discussed template learning methods, manifold learning methods or procedures, the method thus used allows to perform realistic non-linear interpolation in the original input space of each autoencoder.

[0096] Other examples of methods of using an ensemble of (eg, k) neural networks are now discussed.

[0097] In these examples of the method of use, each neural network is a respective autoencoder comprising a respective decoder configured to infer the 3D modeled object. In these examples, the method of use comprises providing a portion of the 3D modeled object. In these examples, the method of use comprises applying the respective autoencoder to the portion of the 3D modeled object. In these examples, the method of use further comprises fitting a result of applying the respective autoencoder to the portion of the 3D modeled object to the portion of the 3D modeled object.

[0098] The decoder may be configured to infer a 3D modeled object in a class of 3D modeled objects. The 3D modeled object may belong to the class. Thus, applying the autoencoder to a portion of the 3D modeled object may output another 3D modeled object of the class. Thus, fitting the result of applying the corresponding autoencoder to a portion of the 3D modeled object to the portion of the 3D modeled object may include deforming another 3D modeled object of the class so that a portion of the other 3D modeled object of the class matches (e.g., geometrically) the portion of the 3D modeled object, thereby resulting in automatic completion of the 3D modeled object.

[0099] Reference now Figure 5 Discuss examples of this use. Figure 5 An example of a part 50 of a 3D modeled object is shown, the part being a chair with a missing leg. Figure 5 Also shown is the result 52 of applying the corresponding autoencoder to the portion 50 of the 3D modeled object once fitted to it. The fitting result 52 is a chair 50 without the missing legs.

[0100] Therefore, the usage method can be applied to the shape inference process for scan auto-completion in a 3D scanning pipeline. Such a pipeline is now discussed.

[0101] The 3D scanning pipeline may include scanning one or more real objects, for example, objects in a 3D scene of the real world. Scanning may include providing one or more physical sensors, each of which is configured to acquire corresponding physical signals, and acquiring one or more corresponding physical signals by operating one or more physical sensors on one or more real objects (i.e., for example, scanning one or more real objects one by one or simultaneously with each sensor). The 3D scanning pipeline may then include applying a 3D reconstruction method that automatically determines a 3D point cloud and / or 3D mesh representing the scanned real-world object for each scanned real-world object and based on measurements of one or more physical sensors. 3D reconstruction may be performed according to any known technique. One or more sensors may include multiple (e.g., RGB and / or image or video) cameras, and determining may include structural analysis based on motion. One or more sensors may alternatively or additionally include one or more depth sensors (e.g., on an RGB depth camera), and determining may include 3D reconstruction based on depth data. One or more depth sensors may, for example, include a laser (e.g., a lidar) or an ultrasonic transmitter-receiver.

[0102] One or more scanned real-world objects may be characterized by at least one occlusion each. Such an object may be represented by a partial point cloud (i.e., a portion of a complete point cloud should represent a complete real object without occlusion). The 3D scanning pipeline may then include applying the method of use to each of the one or more partial point clouds representing one or more scanned real-world objects characterized by occlusion to automatically complete each partial point cloud. Specifically, for each partial point cloud, the portion of the 3D modeled object provided according to the method of use is a partial point cloud. According to the method of use, a corresponding autoencoder is applied to the partial point cloud, and the result of applying the corresponding autoencoder is fit to the partial point cloud, thereby automatically completing the partial point cloud. It should be understood that in the examples, in order to perform automatic completion, the partial point cloud cannot be simply given as an automatic encoding. In these examples, those skilled in the art may prefer to learn another encoder that predicts a latent vector of a 3D shape from an incomplete cloud, or optimizes the 3D shape that best fits the partial point cloud in the latent space.

[0103] For each respective one of the partial point clouds, when the point cloud represents an object belonging to a class of 3D modeled objects, the method of use may thus allow the application of an autoencoder whose decoder is configured to infer the 3D modeled object of that class. Thus, the auto-completion for such an object is accurate, since it benefits from the previously discussed specialization of the decoder for inferring the 3D modeled object of that class. The use of several autoencoders according to the method of use, each having a respective decoder, which is specialized for inferring the 3D modeled object of the respective class, greatly improves the accuracy of the auto-completion.

[0104] Other examples of methods of using an ensemble of (eg, k) neural networks are now discussed.

[0105] In these examples of the method of use, each neural network is a respective autoencoder comprising a respective decoder configured to infer the 3D modeled object. In these examples, the method of use further comprises providing the 3D modeled object. In these examples, the method of use further comprises applying one or more respective autoencoders to the 3D modeled object. In these examples, the method of use further comprises selecting the respective autoencoder based on the application.

[0106] Selecting an autoencoder may include selecting an autoencoder that best reconstructs the provided 3D modeled object. Thus, the use method may be used in a clustering process. Specifically, each corresponding decoder may be specifically used to infer a corresponding category of 3D modeled objects in a data set of 3D modeled objects, the data set being divided, for example, by corresponding categories. The clustering process may include providing another data set of 3D modeled objects. The clustering process may also include applying the use method to each 3D modeled object of the other data set. Thus, for each 3D modeled object of the other data set, the clustering process determines which autoencoder best reconstructs the 3D modeled object. The clustering process may then assign the 3D modeled object to the category for which the decoder of the autoencoder is specifically used. In other words, an automatic clustering algorithm may be obtained by iteratively using the method.

[0107] The template learning method, manifold learning method and process are all computer implemented. The concept of computer implemented method (respectively process) is now discussed.

[0108] "The method (corresponding process) is computer-implemented" means that the steps (or substantially all steps) of the method (corresponding process) are performed by at least one computer or any similar system. Therefore, the steps of the method (corresponding process) are performed by a computer, which may be fully automatic, or may be semi-automatic. In an example, the triggering of at least some of the steps of the method (corresponding process) can be performed by user-computer interaction. The required level of user-computer interaction may depend on the level of automation foreseen and be balanced with the need to implement the user's wishes. In an example, the level may be user-defined and / or predefined.

[0109] A typical example of a computer implementation of a method (respectively a process) is to perform the method (respectively a process) using a system suitable for this purpose. The system may include a processor coupled to a memory and a graphical user interface (GUI), the memory having a computer program recorded thereon, the computer program including instructions for performing the method / process. The memory may also store a database. The memory is any hardware suitable for such storage, and may include several physically different parts (e.g., one part for the program and one part for the database).

[0110] In an example of the process, the determination S30 of k basic templates according to the template learning method and the learning S40 of k neural networks according to the manifold learning method can be performed by the same computer or the same set of computers. In these examples, the steps of the process can be performed by user interactions that can be triggered by the same user, for example, providing S20 number k. Alternatively, the process can be performed by different computers and / or users. For example, the determination S30 of k basic templates according to the template learning method can be performed by a first set of one or more computers, which may involve human-computer interaction with the first user, and the learning S40 of k neural networks according to the manifold learning method can be performed by a second set of one or more computers, which may involve human-computer interaction with the second user. The first set and the second set of one or more computers can be connected via a network.

[0111] The concept of providing a data set including 3D modeling objects involved in the template learning method, manifold learning method and process will be discussed. Before discussing this concept, the data structures involved are now discussed. As will be appreciated, the data structure definitions and examples provided herein can be applied to at least a portion (e.g., all) of the data set provided by the template learning method, manifold learning method and / or process.

[0112] A discrete geometric representation of a 3D shape is herein a data structure that includes a discrete collection of multiple pieces of data. Each piece of data represents a corresponding geometric entity located in 3D space. Each geometric entity represents a corresponding position of a 3D shape (in other words, a corresponding portion of the material constituting the entity represented by the 3D shape). The aggregation (i.e., union or juxtaposition) of geometric entities collectively represents a 3D shape. In an example, any discrete geometric representation herein may include many such pieces of data higher than 100, 1000, or 10,000.

[0113] Any discrete geometric representation herein may be, for example, a 3D point cloud, with each geometric entity being a point. Alternatively, any discrete geometric representation herein may be a 3D mesh, with each geometric entity being a mesh tile or face. Any 3D mesh herein may be regular or irregular (i.e., whether composed of faces of the same type). Any 3D mesh herein may be a polygonal mesh, e.g., a triangular mesh. Any 3D mesh herein may alternatively be a B-Rep. Any 3D mesh herein may be obtained from a 3D point cloud, e.g., by triangulating the 3D point cloud (e.g., using Delaunay triangulation).

[0114] Any 3D point cloud herein may be determined based on physical measurements of a real object, for example, during a 3D reconstruction process. The 3D reconstruction process may include: providing a real object; providing one or more physical sensors each configured to acquire a corresponding physical signal; and acquiring one or more corresponding physical signals by operating one or more physical sensors on the real object (i.e., scanning the real object with each sensor). Then, according to any known technique, the 3D reconstruction may automatically determine a 3D point cloud and / or a 3D mesh based on the measurements. One or more sensors may include multiple (e.g., RGB and / or image or video) cameras, and the determination may include structural analysis based on motion. One or more sensors may alternatively or additionally include one or more depth sensors (e.g., on an RGB depth camera), and the determination may include 3D reconstruction based on depth data. One or more depth sensors may, for example, include a laser (e.g., a lidar) or an ultrasonic transmitter-receiver.

[0115] Alternatively, any 3D point cloud or 3D mesh herein may be obtained from a 3D modeled object (e.g., a B-Rep model) representing the epidermis (i.e., the outer surface) of a solid, for example, by ray casting on the 3D modeled object or tessellizing the 3D modeled object. Tessellation may be performed according to any 3D modeled object rendering process. Such a rendering process may be encoded on any CAD system to display a graphical representation of a 3D modeled object. The 3D modeled object may be designed or designed by a user using a CAD system.

[0116] A modeling object is any object defined by data stored, for example, in a database. By extension, the expression "modeling object" specifies the data itself. Depending on the type of system that executes the template learning method, the manifold learning method and / or the process, the modeling object can be defined by different kinds of data. The system can actually be any combination of a CAD system, a CAE system, a CAM system, a PDM system, and / or a PLM system. In these different systems, the modeling object is defined by the corresponding data. Those skilled in the art may refer to CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, CAE data, respectively. However, these systems are not mutually exclusive, because the modeling object can be defined by data corresponding to any combination of these systems. The system can therefore also be both a CAD system and a PLM system, as will be apparent from the definition of such a system provided below.

[0117] A CAD system additionally refers to any system that is at least suitable for designing a modeled object on the basis of a graphical representation of the modeled object, such as CATIA. In this case, the data defining the modeled object includes data that allows the representation of the modeled object. For example, a CAD system may provide a representation of a CAD modeled object using edges or lines (in some cases using surfaces or faces). Lines, edges or faces may be represented in various ways such as non-uniform rational B-splines (NURBS). In particular, a CAD file contains specifications from which a geometric structure may be generated, which in turn allows the generation of a representation. The specifications of a modeled object may be stored in a single CAD file or in multiple CAD files. The typical size of a file representing a modeled object in a CAD system is in the range of one megabyte per part. And a modeled object may typically be an assembly consisting of tens of thousands of parts.

[0118] In the context of CAD, a modeled object may typically be a 3D modeled object, for example, representing a product such as a part or an assembly of parts, or perhaps an assembly of products. A "3D modeled object" means any object modeled by data that allows its 3D representation. The 3D representation allows the part to be viewed from all angles. For example, when a 3D modeled object is represented in 3D, it can be manipulated and rotated around any of its axes or around any axis in the screen displaying the representation. This significantly excludes non-3D modeled 2D icons. The display of a 3D representation facilitates design (i.e., increases the speed at which designers statistically complete their tasks). This speeds up the manufacturing process in industry, since the design of a product is part of the manufacturing process.

[0119] In the context of the present disclosure, a 3D modeled object may represent the geometry of a product that is to be manufactured in the real world after its virtual design has been completed using, for example, a CAD software solution or a CAD system: for example, a (e.g., mechanical) part or an assembly of parts (or equivalently, an assembly of parts, since an assembly of parts can be viewed as a part itself from the point of view of a template learning method, a manifold learning method and / or a process, or a template learning method, a manifold learning method and / or a process can be applied independently to each part in the assembly), or more generally any rigid body assembly (e.g., a moving mechanism). CAD software solutions allow the design of products in a variety of and unrestricted industrial fields, including: aerospace, architecture, construction, consumer products, high-tech equipment, industrial equipment, transportation, ships, and / or offshore oil / gas production or transportation. Therefore, any 3D modeled object involved in the template learning method, manifold learning method and / or process can represent an industrial product that can be any mechanical part, for example, a part of a land vehicle (including, for example, automobile and light truck equipment, racing cars, motorcycles, trucks and motor equipment, trucks and buses, trains), a part of an aviation vehicle (including, for example, fuselage equipment, aerospace equipment, propulsion equipment, defense products, aircraft equipment, space equipment), a part of a marine vehicle (including marine equipment, merchant ships, offshore equipment, yachts and workboats, ship equipment), general mechanical parts (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installation equipment, industrial equipment products, manufactured metal products, tire products, etc.), electromechanical or electronic parts (including, for example, consumer electronics, safety and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), consumer products (including, for example, furniture, home and garden products, leisure products, fashion products, products of hard goods retailers, products of soft goods retailers), packaging (including, for example, food and beverage and tobacco, beauty and personal care, household product packaging).

[0120] In an example, any 3D modeled object of the present disclosure may represent a mechanical part that is one or a reasonable combination of a molded part (i.e., a part manufactured by a molding manufacturing process), a machined part (i.e., a part manufactured by a machining manufacturing process), a drilled part (i.e., a part manufactured by a drilling manufacturing process), a turned part (i.e., a part manufactured by a turning manufacturing process), a forged part (i.e., a part manufactured by a forging manufacturing process), a stamped part (i.e., a part manufactured by a stamping manufacturing process) and / or a folded part (i.e., a part manufactured by a folding manufacturing process).

[0121] In the context of the present disclosure, a 3D modeled object may be a reasonable (e.g., realistic) 3D modeled object. A reasonable 3D modeled object may specify a 3D modeled object representing a reasonable (e.g., realistic) mechanical part. A reasonable mechanical part may specify a mechanical part that can be manufactured in reality in an industrial manufacturing process in the real world. A reasonable mechanical part may refer to such a mechanical part: the mechanical part complies with all constraints that must be complied with in order to manufacture the mechanical part in reality in an industrial manufacturing process in the real world. Constraints may include one or any reasonable combination of the following: mechanical constraints (e.g., constraints derived from the laws of classical mechanics), functional constraints (e.g., constraints related to one or more mechanical functions performed by a mechanical part once manufactured), manufacturing constraints (e.g., constraints related to the ability to apply one or more manufacturing tools to a mechanical part during one or more manufacturing processes for manufacturing a mechanical part), structural constraints (e.g., constraints related to the strength and / or resistance of a mechanical part) and / or assembly constraints (e.g., constraints defining how the mechanical part can be assembled with one or more other mechanical parts).

[0122] In the context of the present disclosure, a "dataset including a 3D modeled object" refers to a data set including at least a 3D modeled object. In an example, the data set may consist of a 3D modeled object. Alternatively, the data set may strictly include a 3D modeled object and may include additional data, for example, specifications relative to the 3D modeled object. The 3D modeled object of the data set may be a discrete geometric representation of the 3D modeled object. In other words, the data set may include a discrete geometric representation (e.g., a mesh and / or a point cloud) of the 3D modeled object. In this case, for simplicity, the discrete geometric representation of the 3D modeled object space may still be referred to as the 3D modeled object itself, rather than its corresponding discrete representation. The data set may have one or more sub-datasets. Each sub-dataset may form at least a portion (e.g., the entirety) of the data set.

[0123] In the context of the present disclosure, a data set including 3D modeled objects may be divided or substantially divided into one or more sub-datasets of 3D modeled objects. "Division" means that each 3D modeled object of the data set belongs to one and only one sub-dataset forming a partition. "Substantially divided" means that the sub-dataset forms a partition of at least a part of the data set. In this case, the data set consists of the at least one part and another part, and the number of 3D modeled objects belonging to the other part is negligible compared to the number of 3D modeled objects belonging to any of the sub-datasets in the sub-datasets. In an example, each sub-dataset consists of 3D modeled objects in a class of 3D modeled objects. In such an example, the data set may be specified as "divided by category of 3D modeled objects". Specifically, let k be the number of categories, k being greater than one, for example, greater than two. When it is mentioned that "the data set is divided or substantially divided into k categories of 3D modeled objects", it means that the data set is divided into k sub-datasets, and all 3D modeled objects of a corresponding one of the k sub-datasets belong to a corresponding one of the k categories. The concept of category will be further discussed below.

[0124] In the context of the present disclosure, a 3D modeled object may belong to a 3D modeled object space. A 3D modeled object space generally specifies a space composed of 3D modeled objects. A 3D modeled object space may be included in a vector space (e.g., is a subspace of a vector space). A 3D modeled object space may be a manifold of a vector space. A manifold may be a connected manifold. Alternatively, a manifold may be a non-connected manifold including one or more (e.g., two or more) connected components. Any data set of a 3D modeled object involved in the present disclosure may be included or may be strictly included in the 3D modeled object space. In examples, a data set is included or strictly included in a manifold. In these examples, a manifold may be a connected manifold or a non-connected manifold. In these examples, a data set may include one or more sub-data sets, each of which forms at least a portion of a data set, and each of which is included or strictly included in a connected component of a non-connected manifold.

[0125] In the context of the present disclosure, a class of 3D modeled objects may correspond to a connected manifold of a vector space. Alternatively or additionally, a class of 3D modeled objects may correspond to a connected component of a non-connected manifold of a vector space. Additionally or alternatively, a class of 3D modeled objects may specify a set of 3D modeled objects having the following property: any first 3D modeled object in the set is at least similar to a second 3D modeled object in the set, for example, has a shape at least similar to the second 3D modeled object in the set. It should be understood that, for simplicity, a class of 3D modeled objects may be segmented (e.g., divided) into one or more subclasses, which will still be referred to as categories.

[0126] In the example, a class of 3D modeled objects consists of 3D modeled objects representing corresponding mechanical parts, and the mechanical parts related to (i.e., corresponding to) the class all comply with any one or any combination of the following conditions:

[0127] · The parts of machinery related to this category are all manufactured in the same manufacturing process or the same combination of manufacturing processes;

[0128] ·The mechanical parts related to this category are all reasonable mechanical parts;

[0129] · The mechanical parts related to this category are from the same technical and / or industrial fields;

[0130] ·The mechanical parts related to this category all perform the same mechanical function;

[0131] the mechanical parts relating to the class are each represented by a 3D modeled object, the shape of which is similar to the shape of at least one other 3D modeled object of the class (thus representing another mechanical part relating to the class); and / or

[0132] • Mechanical parts associated with the category are all subject to (eg, satisfy, eg, comply with, eg, verify) the same mechanical constraints, functional constraints, manufacturing constraints, structural constraints, and / or assembly constraints.

[0133] Figure 6 An example of a dataset 60 of 3D modeled objects involved in a template learning method, a manifold learning method and / or a process is shown. The dataset consists of 3D modeled objects in a class of 3D modeled objects. The 3D modeled objects in this class are chairs. Chairs form a class of 3D modeled objects because they all perform the same mechanical function, namely supporting weight (e.g., the weight of a person). Performing this mechanical function also means that all chairs must obey the same mechanical constraints, functional constraints, and structural constraints. Figure 6 The chairs are reasonable mechanical parts because they obey mechanical constraints, functional constraints, manufacturing constraints, and structural constraints, allowing them to be manufactured in the real world through one or more manufacturing processes. Figure 6 All objects of the data set 60 are represented in FIG. For clarity, only a portion of the objects of the data set 60 are presented, but the data set may include more objects.

[0134] Figure 7An example of a dataset 70 of 3D modeled objects involved in a template learning method, a manifold learning method and / or a process is shown. The dataset consists of 3D modeled objects in a class of 3D modeled objects. The 3D modeled objects in this class are chairs (each) having four legs. Chairs with four legs form a class of 3D modeled objects because they all perform the same mechanical function, namely supporting weight (e.g., the weight of a person), and because performing this mechanical function with four legs also means that the chairs all obey the same mechanical constraints, functional constraints, and structural constraints. Figure 7 The chairs are reasonable mechanical parts because they obey mechanical constraints, functional constraints, manufacturing constraints, and structural constraints, allowing them to be manufactured in the real world through one or more manufacturing processes. Figure 7 All objects of the data set 70 are represented in FIG. For the sake of clarity, only a portion of the objects of the data set are presented, but the data set may include more objects.

[0135] Figure 8 Shows the Figure 6 An example of dividing the dataset 60 into two sub-datasets 82 and 84. The first dataset 82 includes chairs without legs, which are chairs in the first category of chairs, and the second dataset 84 includes chairs with four legs, which are chairs in the second category of chairs. In other words, referring to Figure 6 The category of chairs discussed can be divided into several categories of chairs, two of which are a first category and a second category. The two categories of chairs are subject to the same functional constraints because they perform the same mechanical function of supporting weight. However, performing the same mechanical function with a different number of legs means obeying different mechanical and / or structural constraints. In other words, the chairs of the first category are all subject to a first set of mechanical and / or structural constraints, and the chairs of the second category are all subject to a second set of mechanical and / or structural constraints, and the constraints of the first set and the second set are different. It should be understood that not all chairs in the first category are subject to the same functional constraints. Figure 8 All objects of the sub-dataset 82 (respectively 84) are represented in FIG. For the sake of clarity, only a portion of the objects of the sub-dataset 82 (respectively 84) are presented, but the sub-dataset may include more objects.

[0136] Other examples of 3D modeled objects are now discussed.

[0137] In the context of the present disclosure, any 3D modeled object may represent a car. Cars may form a class of 3D modeled objects. Alternatively or additionally, any 3D modeled object may represent an airplane. Aircraft may form a class of 3D modeled objects. Alternatively or additionally, any 3D modeled object may represent a ship. Ships may form a class of 3D modeled objects.

[0138] The concept of "providing a dataset including 3D modeled objects" involved in the template learning method, the manifold learning method, and the process is now discussed.

[0139] The provision of the data set may be performed automatically or by the user. For example, the user may retrieve the data set from a memory storing the data set. The user may also choose to complete the data set by adding one or more 3D modeling objects (e.g., one by one) to the retrieved data set. Adding one or more 3D modeling objects may include retrieving these 3D modeling objects from one or more memories and including them in the data set. Alternatively, the user may create the data set from scratch by selecting 3D modeling objects (e.g., one by one) and forming (e.g., declaring) the data set using these selected 3D modeling objects. Selecting a 3D modeling object may include retrieving the 3D modeling object from a memory. A portion (e.g., all of) the 3D modeling objects of the data set may have been previously designed (e.g., designed by one or more other users) and then stored in one or more memories before being retrieved by the user. "Designing a 3D modeling object" specifies any action or series of actions that is at least part of the process of drafting a 3D modeling object.

[0140] In the context of the present disclosure, at any provision of a data set, all 3D modeled objects of the data set may be provided as point clouds. Alternatively, at least a portion (e.g., all of) of the 3D modeled objects of the data set may be provided in another format (e.g., as a CAD object, e.g., as other discrete geometric representations, such as a 3D mesh). In this case, providing the data set may include determining (e.g., extracting) a point cloud from at least a portion of each 3D modeled object. Extracting the point cloud may include ray casting the modeled objects, e.g., on six orthogonal views, as known in the art.

[0141] In examples, regardless of whether all 3D modeled objects of the data set are provided as point clouds or whether ray casting has been performed as discussed above, the 3D modeled objects of the data set are all point clouds at some point. In these examples, providing the data set may include uniformly subsampling the point clouds so that each point cloud has the same fixed number of points, as is known in the art. In one implementation, for each point cloud, uniform subsampling includes first picking a random point of the point cloud and iteratively picking the farthest point of the point cloud from the already picked points until the fixed number of points is reached.

[0142] Thus, in examples, the 3D modeled objects of the data set are provided as point clouds, all having the same fixed number of points, regardless of whether the extraction step and / or the uniform subsampling step has been performed. In these examples, providing the data set may also include centering the point cloud, and optionally applying unit sphere scaling to the centered point cloud, as is known in the art.

[0143] Now let's discuss the concept of "learning neural networks".

[0144] "Learning a neural network" specifies that a set of one or more neural networks (e.g., a neural network, such as a set of two or more neural networks) is determined by a machine learning method. In the context of the present disclosure, each neural network in the set has a weight (e.g., is parameterized by a weight), and learning the neural network may generally include initializing the weight and updating the weight. Significantly, modifying the corresponding weights of the neural networks in the set according to the manifold learning method S420 is part of learning the set of neural networks S40. In the context of the present disclosure, learning each neural network in the set may include training based on a data set (respectively a sub-data set in the data set). By this, in the example, it means that the data set (respectively a sub-data set in the data set) is part of the training set (e.g., the learning set), but only the data set (respectively a sub-data set in the data set) directly participates in the modification S420 of the weights of the neural network, so other parts of the training set will not directly participate in the modification S420 of the weights of the neural network. For example, the modification S420 of the weights can be performed only based on data (e.g., calculation results) related to (e.g., obtained from, e.g., derived from) the 3D modeling object of the data set (respectively a sub-data set in the data set). This may be the case, for example, if the learning S40 and / or the modifying S420 comprises minimizing a loss operating a selection between 3D modeled objects of the training set, such that the modifying S420 of the respective weights only concerns the 3D modeled objects selected by the selection.

[0145] Any neural network learned according to the present disclosure may be a neural network configured to infer a 3D modeled object. This means that the neural network outputs a value in the 3D modeled object space or in a subset of the 3D modeled object space (e.g., in a class of 3D modeled objects). Additionally or alternatively, the neural network may be configured to infer the deformation of each basic template to the corresponding 3D modeled object. The concept of "basic template" will be further discussed below, but in any case, the "basic template" specifies a 3D modeled object. The deformation of the basic template to the corresponding 3D modeled object may be a set of one or more geometric transformations that map the basic template to the corresponding 3D modeled object. In this case, inferring the deformation may include inferring one or more geometric transformations and / or parameters thereof. Alternatively or additionally, if the basic template and the corresponding 3D modeled object are or are represented by a first 3D mesh (respectively a first point cloud) and a second 3D mesh (respectively a second point cloud), respectively, then the deformation of the basic template to the corresponding 3D modeled object may be a set of corresponding correspondences between each vertex (respectively a location) of the first 3D mesh (respectively a first point cloud) and each vertex (respectively a location) of the second 3D mesh (respectively a second point cloud). In this case, inferring the deformation may include inferring such a correspondence. Inferring the deformation may also include inferring the corresponding 3D modeled object to which the base template is mapped through a set of one or more geometric transformations. In other words, the output of the neural network may include a set of one or more geometric transformations and a corresponding 3D modeled object. In an example, the neural network is an autoencoder that includes a decoder configured to infer the 3D modeled object and / or infer the deformation.

[0146] Now let’s discuss the concept of autoencoders. An autoencoder can be defined as a component of two feed-forward deep neural networks (see the article cited earlier [3]), w : and g w′ : Parameterized by weights w and w′, where p<<m. w is the encoder, and g w′ It's a decoder. is the latent space, i.e., the encoder f w Output its value and decoder g w′ The vector space in which p takes its values. p is the dimension of the latent space. is the encoder f w Take its value and decoder g w′ The space whose value is output. may be referred to as the “original input space”. m is the dimension of the original input space. In the context of the present disclosure, the original input space may be or may strictly include the 3D modeled object space. In other words, the encoder f w(x) takes its value in the original input space, but the decoder g w′ The image of the latent space (e.g., 3D modeling object space) may be a subset of the original input space. The vector z=f w (x) can be called a “latent vector” or “hidden vector”. Autoencoder g w′ οf w (x) may also be referred to as a “reconstruction”. The reconstruction takes as input a first element of the original input space (e.g., a first 3D modeled object of the 3D modeled object space), maps it to a latent vector (i.e., an element of the latent space), and then reverses the mapping by outputting a second element of the original input space from the latent vector (e.g., a second 3D modeled object of the 3D modeled object space). The second element may be referred to as a “reconstruction” of the first element. In the example, this means that the second element represents an approximation of the first element. In the example, if x is a 3D modeled object, then the 3D modeled object can be referred to as the reconstructed 3D modeled object. x can also be referred to as the input, and can be called the reconstructed input. In the context of this process, the encoder f w and decoder g w It can be machine-learned (e.g., separately or simultaneously), for example, by minimizing reconstruction errors. Encoding an object means applying an encoder to the object. The result of the encoding can therefore be referred to as the "encoded object". Encoding an object can also be referred to as "projecting the object (e.g., onto a latent space such as an encoder)", and the result of the encoding can be referred to as the "projected object". Decoding a latent vector means applying a decoder to the latent vector. The result of the decoding can therefore be referred to as the "decoded latent vector".

[0147] Now let’s discuss how to implement the learning autoencoder. is the training set, where n is the number of 3D modeled objects in the training set. In this implementation, the learning autoencoder Including optimization reconstruction loss in is the distance between the input sample and the sample reconstructed by the autoencoder, for example, It can be L 2 By for each sample x i +ηApply random noise and train an autoencoder to reconstruct a clean version x i , making the learning process more robust. Such an example can be called a "denoising autoencoder" (introduced in the earlier cited article [5]). In the context of the present disclosure, as explained in the earlier cited article [6] (a version called stacked autoencoder), learning can also be done by pre-training the architecture in a greedy layer-by-layer manner.

[0148] The determination of the basic template S30 is now discussed.

[0149] In the context of the present disclosure, determination S30 of a basic template is performed for each sub-dataset in a data set including 3D modeled objects, each 3D modeled object representing a respective mechanical part, the data set having one or more sub-datasets, each sub-dataset forming at least a part of the data set. In other words, for each respective sub-dataset, a basic template is determined S30.

[0150] The determination of a basic template for a corresponding sub-data set S30 is now discussed. It should be understood that the following discussion is applicable to the determination of any basic template for any corresponding sub-data set S30.

[0151] The base template is a 3D modeled object, for example, representing a mechanical part. The base template can be a mesh or a point cloud. The base template is a 3D modeled object representing the centroid of the 3D modeled objects of the sub-dataset. This may mean that the geometry of the base template represents (for example, is) the average geometry of the shapes of the 3D modeled objects of the sub-dataset (for example, according to distances such as Hausdorff distance, Wasserstein distance, Earth Mover distance, or chamfer distance). In an example, the 3D base template is a 3D modeled object of the sub-dataset, which has the smallest average dissimilarity to all 3D modeled objects of the sub-dataset. The dissimilarity between the first 3D modeled object and the second 3D modeled object can be a quantification of the difference between the geometry of the first 3D modeled object and the geometry of the second 3D modeled object (for example, according to Hausdorff distance, Wasserstein distance, Earth Mover distance, or chamfer distance).

[0152] Fig. 9 An example of a determined basic template 92 is shown, which indicates Figure 6 The centroids of the 60 datasets. Fig.10 An example of a determined basic template 102 is shown, which indicates Figure 7 The 70 centroids of the dataset.

[0153] In an example, determining S30 the base template includes calculating a minimum value of a loss within the candidate base templates, the loss penalizing, for each 3D modeled object of the sub-dataset, a difference between the 3D modeled object of the sub-dataset and the candidate base template.

[0154] Calculating S300 the minimum value of the loss within the candidate basic template may include (e.g., iteratively) exploring the 3D modeled objects and evaluating the influence of each explored 3D modeled object on the loss. In this case, the candidate basic template specifies the explored 3D modeled object. The candidate basic template may, for example, be a 3D modeled object generated by a deformation of a 3D modeled object (e.g., another candidate basic template) or a continuous deformation of a 3D modeled object (e.g., a candidate basic template). Calculating S300 the minimum value of the loss may include using any relaxation algorithm.

[0155] The loss may be an amount (e.g., a function) that measures the (e.g., geometric) similarity and / or dissimilarity between the 3D modeled object and the candidate basic template for each 3D modeled object of the sub-dataset. The loss may, for example, be a function that takes each 3D modeled object of the sub-dataset as a parameter, takes the candidate basic template as an input, and outputs an amount (e.g., a positive real number) that represents the (e.g., geometric) similarity and / or dissimilarity between the input candidate basic template and the 3D modeled objects of the sub-dataset. For each 3D modeled object, the difference between the 3D modeled object and the candidate basic template may be a quantification of the (e.g., geometric) dissimilarity between the 3D modeled object and the candidate basic template. Penalizing the difference may mean that the loss is an increasing function of the difference.

[0156] Therefore, the determination S30 of the basic template can reward the similarity with the 3D modeled objects of the sub-dataset among the 3D modeled objects (candidate basic templates). Significantly, the determination S30 of the basic template can iteratively explore (e.g., visit) the candidate basic templates, and for each of the candidate basic templates, find and reward the similarity between the explored candidate basic template and each 3D modeled object of the sub-dataset, which results in the determination S30 that the basic template represents the centroid of the 3D modeled objects of the sub-dataset.

[0157] In an example, the difference between the 3D modeled object of the sub-dataset and the candidate base template is a function of the distance between the 3D modeled object and the candidate base template.

[0158] This distance is a particularly simple and effective way of measuring the similarity and / or dissimilarity between 3D modeled objects.

[0159] The distance may be any distance between the 3D modeled objects, for example, a distance that quantifies the (e.g., geometric) dissimilarity between the 3D modeled objects. Thus, the distance between the 3D modeled object and the candidate base template may quantify the (e.g., geometric) dissimilarity between the 3D modeled object and the candidate base template. The distance may be, for example, the Wasserstein distance, the Earthmover distance, the chamfer distance, or the Haussdorf distance. The difference may be an increasing function of the distance, for example, the square of the distance.

[0160] In an example, the distance is a distance between a first point cloud representing the 3D modeled object and a second point cloud representing the candidate base template.

[0161] As previously discussed, each 3D modeled object of the sub-dataset may be provided as a point cloud (thus representing a 3D modeled object), or a point cloud representing the 3D modeled object may be determined from another format in which the 3D modeled object is provided. In either case, the determination S30 of the base template may manipulate the point cloud representing each 3D modeled object of the sub-dataset. Also as a 3D modeled object, the candidate base template may also be represented by a corresponding point cloud, which may optionally be determined from other 3D modeled object formats. Thus, the distance may be any distance between point clouds, for example, the Wasserstein distance or the Earth Mover distance.

[0162] In the example, the losses are of the following type:

[0163] in:

[0164] ·D 1 (S j ,x i,j ) is S j With x i,j A function of the distance between

[0165] ·S j is the second point cloud;

[0166] ·p j is the number of 3D modeled objects in the corresponding sub-dataset; and

[0167] ·x 1,j ,x 2,j ,…, It is the first point cloud.

[0168] In the example, D 1 (S j ,x i,j ) is the Earth Mover distance loss, given by:

[0169]

[0170] In examples, computing S300 includes providing a base 3D modeled object. In these examples, computing S300 also includes iterating the following operations starting from the base 3D modeled object: evaluating the impact of previous candidate base templates on the loss, and deforming the previous candidate base templates into new candidate base templates.

[0171] The basic 3D modeled object is a 3D modeled object. The basic 3D modeled object is a candidate basic template. The basic 3D modeled object can be provided like any 3D modeled object of the data set is provided S10. In other words, the provision of the basic 3D modeled object can be performed like the provision S10 of any object, and in an example, for example, (e.g., substantially) simultaneously.

[0172] Now discuss iteration. Iteration starts from the basic 3D modeled object. Calculation S300 can explore (e.g., visit) the basic 3D modeled object, and can evaluate the impact of the basic 3D modeled object on the loss. Evaluating the impact of the basic 3D modeled object on the loss may include calculating the loss and / or the derivative of the result of calculating the loss. Evaluating the impact of the basic 3D modeled object may also include determining whether the result of calculating the loss and / or the derivative of the result of calculating the loss makes the loss small enough, for example, according to the convergence parameter of the relaxation algorithm that performs calculation S300. In the example, if the impact on the loss makes the loss not small enough, the basic 3D modeled object is deformed into a new candidate basic template. Then iterate: for each candidate basic template generated by the deformation of the previous candidate basic template, the iteration includes evaluating the impact of the candidate basic template on the loss, wherein the evaluation can be performed as an evaluation of the impact on the basic 3D modeled object. In the example, if the impact on the loss makes the loss not small enough, the candidate basic template is deformed into a new candidate basic template, and the impact of the new candidate basic template on the loss is evaluated, and so on. In other words, as long as it is not possible to make the loss small enough, the iterations continue to explore candidate base templates that are deformed into each other, and the candidate base templates are deformed into each other because the loss is not small enough.

[0173] The concept of deforming a previous candidate base template into a new candidate base template is now discussed. As previously discussed, for each 3D modeled object of the sub-dataset, the loss of the previous candidate base template penalizes the difference between the 3D modeled object and the previous candidate base template. Evaluating the loss may include determining one or more 3D modeled objects of the sub-dataset for which the corresponding difference between each corresponding 3D modeled object and the previous candidate base template is the difference that is least penalized (i.e., among all the differences in the loss). Then, deforming the previous candidate base template may include assigning the one or more 3D modeled objects to the previous candidate base template. The deformation of the previous candidate base template may also include transforming the previous candidate base template into the centroid of one or more 3D modeled objects, for example, based on distance. In this case, the centroid may form the new candidate base template.

[0174] In other words, the calculation S300 starts from a base 3D modeled object and iteratively deforms it into successive candidate base templates until the dissimilarity of one of the candidate base templates to (e.g., all) the 3D modeled objects of the sub-dataset is acceptable (e.g., below a convergence parameter, such as optimal). This constitutes an efficient way of deforming the 3D modeled object into the centroid of the sub-dataset.

[0175] In an example, the base 3D modeled object represents a sphere. Additionally or alternatively, for each 3D modeled object of the sub-dataset, the loss may penalize an Earth Mover distance loss between a first point cloud representing the 3D modeled object of the dataset and a second point cloud representing the new candidate base template.

[0176] The basic 3D modeled object may be a point cloud representing a sphere (e.g., a unit sphere). In this case, each new candidate base template that is the result of a deformation of a previous candidate base template is the result of an iterative deformation of the sphere. Each new candidate base template may therefore be represented by a point cloud resulting from an iterative deformation of the point cloud representing the sphere.

[0177] A sphere is a particularly convenient basic 3D modeled object, since a point cloud representing the sphere can be easily deformed into a point cloud representing a large number of 3D modeled objects (e.g., 3D modeled objects that are homeomorphic to the sphere). Using a unit sphere is particularly suitable for the case where the 3D modeled objects of the sub-dataset are provided S10 as point clouds that are centered and scaled according to the unit sphere scaling. The Earth Mover distance is particularly suitable for using a sphere as a basic 3D modeled object.

[0178] In examples, the basic 3D modeled object is a point cloud. In these examples, iteration results in an optimized point cloud. In these examples, determining S30 the basic template may also include inferring S330 normals at points in the optimized point cloud. In these examples, determining S30 the basic template may also include performing S340 surface reconstruction of the optimized point cloud based on the inferred normals.

[0179] The point cloud is optimized because it is generated by iterative deformation of the point cloud representing the basic 3D modeled object, wherein the deformation is performed to deform the point cloud representing the basic 3D modeled object into a point cloud representing the minimum value of loss (or at least an approximation of the minimum value of loss).

[0180] Inference S330 normals can be performed by any method capable of inferring normals on points in the point cloud. Normals provide topological information on the optimized point cloud. Surface reconstruction can be performed by any method capable of inferring the surface of meshing the point cloud based on the point cloud and the inferred normals. Therefore, the determined basic template of S30 can be output as a 3D mesh representing the centroid of the sub-dataset. In other words, in the example, the determined basic template of S30 is the result of performing S340 surface reconstruction.

[0181] At least from a geometric point of view, the points in the point cloud representing the basic 3D modeled object are optimized. In other words, the optimized point cloud can accurately represent the center of mass of the 3D modeled object only from a geometric point of view, but may not have the correct topology. For example, a sub-dataset may consist of a class of 3D modeled objects, and the optimized point cloud can geometrically represent the center of mass of the sub-dataset, but may have an incorrect topology, for example, so that the optimized point cloud (for example, if simply meshed) does not represent the 3D modeled object of this category. Inferring S330 normals and performing S340 subsequent surface reconstruction allows these difficulties to be avoided, and the optimized point cloud can be re-meshed so that the new mesh has the correct topology. Therefore, in these examples, the basic template determined S30 can be a 3D modeled object representing the center of mass of the 3D modeled object of this category.

[0182] Reference now Figures 11 to 16 An implementation of inferring S330 normals and performing S340 surface reconstruction is discussed. Fig.11 An example of a basic 3D modeled object 110 is shown, which is a point cloud representing a sphere. Fig.12 An optimized point cloud 120 representing a chair is shown. The optimized point cloud has incorrect topology, such as Fig.13 As shown, the optimized point cloud 120 has its wrong topology. Fig.13 As can be seen in , the optimized point cloud 130 does not have the topology of the chair that it should have. In this embodiment, the determination S30 of the basic template includes providing S310 a coarse grid, and the determination S30 places the optimized point cloud in the coarse grid. Each voxel containing a point has a value of 1 and the values ​​of other voxels are zero. In this implementation, the determination S30 also includes extracting S320 the coarse grid from the grid. The extraction S320 of the coarse grid can be performed by applying a marching cube algorithm with isometric values ​​close to 1. Fig.14 Shows from Fig.12The coarse mesh 140 extracted from the optimized point cloud 120. In this implementation, the inference S330 of the normal includes using the coarse mesh from the marching cubes algorithm to accurately calculate the normal of each point of the optimized point cloud 120. The inference S330 of the normal may include projecting each point onto the nearest triangle of the coarse mesh and assigning its normal a weighted average of the normals of the triangle, with the weight being the centroid weight of the projected point. Fig.15A shows the inferred normals Fig.12 The optimized point cloud 150 is obtained. With these appropriate normals, determining S30 also includes performing S340 Poisson surface reconstruction. This allows obtaining a basic template that is a 3D mesh with accurate topology. If there are too many vertices, determining S30 may optionally include taking a tenth of the 3D mesh. Fig. 15B An example of a 3D basic template 160 is shown, which is obtained by performing S340 Poisson surface reconstruction from a 3D basic template 160 having Fig.15A The inferred normals of the optimized point cloud 150 are obtained.

[0183] The determination S30 of the basic template for one corresponding sub-dataset has been discussed. It should be understood that in the presence of two or more corresponding sub-datasets, the determination of the basic template for the corresponding sub-dataset may be performed identically for each corresponding sub-dataset. All basic templates for all corresponding sub-datasets may be determined S30 simultaneously. Significantly, in the example, the simultaneous determination S30 of these basic templates includes calculating S300 the minimum value of the loss simultaneously and for each corresponding sub-dataset, for each corresponding sub-dataset, the calculation S300 is performed as previously discussed.

[0184] An example of simultaneously determining S30 these basic templates by computing the minimum value of the S300 loss simultaneously and for each corresponding sub-data set is now discussed.

[0185] In these examples, calculating S300 the minimum value of the loss simultaneously and for each respective sub-data set includes minimizing the common loss. Minimizing the common loss may correspond to (e.g., imply, e.g., be equivalent to) performing each calculation S300 as previously discussed for each respective sub-data set. For each 3D modeled object of the data set, the common loss selects an item from a plurality of items. Each item penalizes the difference between the 3D modeled object and the candidate basic template. The selected item may be an item from a plurality of items for which the difference is penalized to the minimum extent.

[0186] The common loss may be a quantity (e.g., a function) that measures two or more (e.g., geometric) corresponding similarities and / or dissimilarities between the 3D modeled object and the corresponding candidate basic template for each 3D modeled object of the data set. Each of the multiple terms may be a measure of a corresponding one of the two or more (e.g., geometric) corresponding similarities and / or dissimilarities. Therefore, the difference between the 3D modeled object and the corresponding candidate basic template penalized by the term may be a quantification of the (e.g., geometric) dissimilarities between the 3D modeled object and the candidate basic template. Therefore, penalizing the difference may mean that the term is an increasing function of the difference. The common loss selects the term that is penalized the least among the multiple terms and for each 3D modeled object of the data set. In an example, this means that the common loss is a function that takes the 3D modeled object of the data set as a parameter and the candidate basic template as an input, and outputs a quantity (e.g., a positive real number) that is a function (e.g., a sum) of each term selected for each 3D modeled object. In other words, the loss may output a result indicating which candidate base template is (e.g., most) similar to (e.g., geometrically similar to) the 3D modeled object for each 3D modeled object in the dataset. Any relaxation algorithm may be used to minimize the common loss, such as a mini-batch stochastic gradient relaxation algorithm.

[0187] In an example, the difference between the 3D modeled object and the corresponding candidate base template relates to a distance between the 3D modeled object and the corresponding candidate base template.

[0188] This distance is a particularly simple and efficient way of measuring the similarity and / or dissimilarity between 3D modeled objects.

[0189] The distance may be any distance, for example, a Haussdorf distance, a Wasserstein distance, a chamfer distance or an Earth Mover distance. In an example, the difference relates to the distance between the 3D modeled object and the corresponding candidate base template, because the difference is a (e.g., increasing) function of the distance between the 3D modeled object and the corresponding candidate base template. In an example, the difference relates to the distance between the 3D modeled object and the corresponding candidate base template, because the difference depends on the result of the calculation of the distance between the 3D modeled object and the corresponding candidate base template.

[0190] In an example, the distance is a distance between a first point cloud representing the 3D modeled object and a second point cloud representing the corresponding candidate base template.

[0191] As previously discussed, each 3D modeled object of the data set may be provided as a point cloud (thus, representing a 3D modeled object), or a point cloud representing the 3D modeled object may be determined from another format in which the 3D modeled object is provided. In either case, determining S30 may manipulate a point cloud representing each 3D modeled object of the data set. Also as a 3D modeled object, a corresponding candidate base template may also be represented by a corresponding point cloud, which may optionally be determined from other 3D modeled object formats. Thus, the distance may be any distance between point clouds, for example, a Wasserstein distance or an Earth Mover distance.

[0192] In the example, the common losses are of the following type:

[0193] in:

[0194] ·S 1 ,S 2 ,…,S k is the second point cloud;

[0195] For each j∈{1,2,3,…,k}, p j is the number of 3D modeled objects in the jth corresponding sub-dataset in the dataset of 3D modeled objects, and x 1,j ,x 2,j ,…, j is the first point cloud representing the 3D modeled object of the corresponding sub-dataset;

[0196] · Where n is the number of 3D modeled objects in the dataset;

[0197] ·D 1 (S j ,x i,j ) is related to the corresponding candidate basic template S j With the dataset x i,j The distance between the 3D modeled objects;

[0198] In the example, D 1 (S j ,x i,j ) is the Earth mover distance loss, given by:

[0199]

[0200] In the example, let the public loss L 1 (S 1 ,S 2 ,…,S k ) minimized results in (e.g., implies, e.g., is equivalent to) computing the S300 loss simultaneously and for each respective sub-dataset This has been discussed previously.

[0201] Now, the implementation method of determining k basic templates in S30 is discussed, where k≥2.

[0202] In this implementation, the dataset contains n 3D modeled objects, represented as {x 1 ,x 2 ,…,x n}. Each 3D modeled object x i is a point cloud that is centered and scaled according to the unit sphere. m is the number of points in each point cloud x i The determination S30 includes minimizing the common loss, and minimizing the common loss includes providing k point clouds S 1 ,…,S k , each point cloud represents a basic 3D modeled object, which is a unit sphere with m points. In this implementation, determining S30 includes adding very small noise to each point cloud S i , so that each basic 3D modeled object is slightly different from each other. This facilitates the determination of k centroids of k corresponding sub-datasets in the S30 data set, because each basic 3D modeled object is different from other basic 3D modeled objects from the beginning and has therefore been slightly specialized to represent the common shape of some 3D modeled objects of the data set.

[0203] In this implementation, the public loss that is minimized is of the following type:

[0204]

[0205] in is the first point cloud x representing the 3D modeled object of the dataset i and the second point cloud S representing the candidate basic template j The Earth Mover distance loss between . Minimization of the common loss can be performed by using the relaxation algorithm proposed in the earlier cited paper

[12] to optimize the points on each sphere so as to minimize the loss (via mini-batch stochastic gradient descent).

[0206] Each basic 3D modeled object is optimized by determining S30 in the basic template a shape representing a shape different from another optimized basic 3D modeled object, because for each training model, the minimum will only optimize the nearest basic 3D modeled object. Each basic 3D modeled object specializes itself for a specific basic template, which represents the centroid of the 3D modeled object of the corresponding sub-dataset in the data set that is different from other corresponding sub-datasets. In other words, each basic template represents the centroid of its own cluster in the data set of 3D models provided at the Earth Mover distance.

[0207] In order to force each basic 3D modeled object to be specialized for its own 3D modeled object shape, this implementation of determining S30 may also use a redistribution algorithm during mini-batch training. In practice, it may happen that all 3D modeled objects reach their minimum loss for the same basic template, thereby hindering other 3D modeled objects from being optimized. In order to prevent this effect, in each mini-batch during training, for each previous candidate basic template, determining S30 sorts the first point cloud in descending order according to its loss for the previous candidate template (first redistribution algorithm). Alternatively, determining S30 may sort the first point cloud according to the difference in loss between the previous candidate basic template and the best candidate basic template for reconstructing the 3D modeled object (second reallocation algorithm). Then, determining S30 may force the top Ω (where Ω is a small fraction of the mini-batch size) to be assigned to the previous candidate basic template, which means that determining S30 will change and the argmin of its generation for the first point cloud to force back propagation through the template for the first point cloud. Thus, the previous candidate basic template can be deformed into a new candidate basic template.

[0208] Now let's discuss the first and second reallocation algorithms. Both algorithms take the following as input:

[0209] - Small batch x 1 ,…,x B (B is the size of the mini-batch);

[0210] -Ω(must be ≤B / k);

[0211] - For i=1 to B:

[0212] - for i=1 to B:I i =argmin j=1,…,k D 1 (S j ,x i )(therefore ).

[0213] Both algorithms output:

[0214] -The loss L of the entire mini-batch after redistribution 1 .

[0215] Here is the pseudocode for the first reallocation algorithm:

[0216]

[0217] Here is the pseudocode for the second reallocation algorithm:

[0218]

[0219] Public loss L 1 The minimization of results in k optimized point clouds corresponding to the optimization of the vertices of each 3D basic template, but may not take into account the topology. This may result in the basic template having an accurate point cloud but with an incorrect topology. Therefore, determining S30 may include re-meshing of the basic template. In this case, determining S30 may include, for each basic template, providing S310 a coarse grid, and determining S30 placing the basic template into the coarse grid. The value of each voxel containing a point is 1, and the values ​​of other voxels are zero. Then, determining S30 may include extracting S320 a coarse grid from each coarse grid (for example, by applying a moving cube algorithm with isometric values ​​close to 1). Determining S330 may then include inferring S330 normals at points in each optimized point cloud. The inference S330 of normals may include using a coarse grid from a moving cube algorithm to calculate accurate normals for each point of each optimized point cloud. This may include projecting each point onto the nearest triangle of the coarse grid and assigning a weighted average of the normals of the triangle to its normal, the weight being the centroid weight of the projected point. With these appropriate normals, determining S340 may include performing a (eg, Poisson) surface reconstruction on each optimized point cloud in order to obtain a base template with accurate topology, which may eventually be decimalized if there are too many vertices.

[0220] Reference now Figure 16-19 An example of determining two basic templates of S30 is discussed. Fig.16 An example of a dataset 160 consisting of chairs with four legs is shown. The dataset is divided into two classes of four-legged chairs, a first class 162 consisting of chairs with four legs and narrow backs, and a second class 164 consisting of chairs with four legs and wide backs. Fig.17 and Fig.18Determination S30 of a first basic template representing the centroid of the first category 162 and a second basic template representing the centroid of the second category 164 is shown respectively. Point clouds 170 and 180 are two basic 3D modeled objects, each of which is iteratively deformed 172, 182 into optimized point clouds 174 and 184. Fig.19 A first base template 190 and a second base template 192 are shown, which are surface reconstructions of the optimized point clouds 174 and 184, respectively.

[0221] The learning of the neural network S40 is now discussed.

[0222] As previously discussed, learning S40 neural networks specifies the determination of a set of one or more neural networks (e.g., two or more neural networks). Each neural network in the set has a corresponding weight. Learning S40 the set of neural networks may include providing S400 the set of neural networks. Providing S400 the set of neural networks may be performed by a user. For example, the user may retrieve the set of neural networks from a memory storing a data set. Each neural network may be provided S400 as a structure, but the training of the neural network still has to be performed. In other words, the structure of each neural network including the weights of the neural network may be provided S400, but the weights may still have to be initialized S410 and / or modified S420. Learning S40 the set of neural networks may include initializing S410 the corresponding weights of each neural network and / or modifying S420 the corresponding weights of the neural network. As previously discussed, the modification S420 of the corresponding weights may be part of the training. As previously discussed, the training may be simultaneous training of all neural networks and may be based on the data set. In an example, this means that the training of each neural network is based on the entire data set. Alternatively or additionally, this may mean that the training of each respective neural network is based on a respective sub-dataset of the dataset, the dataset comprising one or more respective sub-datasets, each sub-dataset forming at least a portion of the dataset. In the following, a "dataset" refers to a dataset on which training of a set of neural networks is performed as just discussed.

[0223] In an example, after providing S400 a set of neural networks and before modifying S420 the corresponding weights, initialization S410 of the corresponding weights is performed. Initialization S410 of the corresponding weights typically includes specifying (e.g., declaring) a value of each corresponding weight of each neural network in the set, e.g., by user interaction. In an example, the corresponding weights of each neural network may all be initialized S410 to a value less than a predetermined threshold. The predetermined threshold may be provided by a user. The predetermined threshold may be lower than 1, 0.5, 0.1, or 0.001.

[0224] In the example, the weights are not initialized close to zero at the beginning, but the output of the neural network will be close to zero regardless of the (reasonable) input. However, in practice, placing weak weights at initialization S410 makes it possible to ensure that the neural network will start by predicting weak deformations given the architecture used. Therefore, in the example, there is no threshold per se, everything depends on the architecture used. In such an example, initialization S420 can be performed so that the output of the neural network predicts small distortions before learning begins.

[0225] Initializing S410 the respective weights of the neural network to a value below such a predetermined threshold is particularly suitable for learning a neural network configured to infer the deformation of the respective basic templates to the 3D modeled object. In this case, it may be required that the output of the neural network is small regardless of the input to the neural network, that is, the deformation of the respective basic template is small. In fact, if the respective basic template represents the centroid of a sub-dataset in the data set, the respective basic template does not necessarily need to be deformed a lot and / or roughly transformed into the 3D modeled object of the sub-dataset. By initializing S410 the weights of the neural network in this way, learning S40 ensures that the neural network will start training by outputting the 3D modeled object of the sub-dataset. In other words, the neural network will be specifically used to infer the deformation of the respective basic template to the 3D modeled object of the sub-dataset right from the initialization S410 of its respective weights, the respective basic template being the centroid of the sub-dataset.

[0226] The modification of the corresponding weights of the neural network S420 is now discussed.

[0227] The modification of the corresponding weights of the neural network is performed by minimizing a loss S420, the loss selecting, for each 3D modeled object of the data set, an item among a plurality of items, each item penalizing the difference between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network in the set, the selected item being the item among the plurality of items for which the difference is penalized minimally.

[0228] "Modifying the corresponding weights of the neural network" means that at least a portion (e.g., all) of the corresponding weights of at least a portion (e.g., all) of the neural network are modified, e.g., iteratively, e.g., during iterative minimization of the loss. For example, minimization of the loss may include executing one or more algorithms, and at least a portion (e.g., all) of the steps of the one or more algorithms may modify the corresponding weights when executed. Minimization of the loss may use any deep learning technique, e.g., an ADAM solver on a mini-batch.

[0229] The loss may be a quantity (e.g., a function) that measures, for each 3D modeled object of the data set, two or more (e.g., geometric) corresponding similarities and / or dissimilarities between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network. Each of the multiple terms may be a measure of a corresponding one of the two or more (e.g., geometric) corresponding similarities and / or dissimilarities. Thus, the difference between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network, which is penalized by the term, may be a quantification of the (e.g., geometric) dissimilarities between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network. Thus, penalizing the difference may mean that the term is an increasing function of the difference. The loss selects the term that is penalized to the minimum among the multiple terms and for each 3D modeled object of the data set. In an example, this means that the loss is a function that takes the 3D modeled objects of the data set as parameters and the set of neural networks as input, and outputs a quantity (e.g., a positive real number) that is a function (e.g., a sum) of each term selected for each 3D modeled object. In other words, the loss may output a result indicating, for each 3D modeled object of the data set, which neural network inferred a corresponding 3D modeled object that is (eg, most) similar to (eg, geometrically similar to) the 3D modeled object.

[0230] In an example, the difference between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network in the set relates to a distance between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network in the set.

[0231] This distance is a particularly simple and efficient way of measuring the similarity and / or dissimilarity between 3D modeled objects.

[0232] The distance may be any distance, for example, a Haussdorf distance, a Wasserstein distance, a chamfer distance or an Earth Mover distance. In an example, the difference relates to the distance between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network in the set, because the difference is a (e.g., increasing) function of the distance between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network in the set. In an example, the difference relates to the distance between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network in the set, because the difference depends on the result of the calculation of the distance between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network in the set.

[0233] In an example, the distance is a distance between a first point cloud representing the 3D modeled object and a second point cloud representing a corresponding 3D modeled object inferred by a corresponding neural network in the set.

[0234] As previously discussed, each 3D modeled object of the data set may be provided as a point cloud (thus representing a 3D modeled object), or the point cloud representing the 3D modeled object may be determined from another format in which the 3D modeled object is provided. In either case, the modification S420 may manipulate the point cloud representing each 3D modeled object of the data set. Also as a 3D modeled object, the corresponding 3D modeled object inferred by the corresponding neural network in the collection may also be represented by a corresponding point cloud, which may optionally be determined from other 3D modeled object formats. Thus, the distance may be any distance between point clouds, for example, the Wasserstein distance or the Earth Mover distance.

[0235] In examples, each neural network is configured to infer a deformation of a respective base template to a respective 3D modeled object. In these examples, each respective base template is a 3D modeled object.

[0236] In an example, each respective base template is a 3D modeled object representing the centroid of the 3D modeled objects of the sub-dataset in the data set.

[0237] In the example, the losses are of the following type:

[0238] in:

[0239] · is a collection of neural networks;

[0240] ·x 1 ,x 2 ,…,x n is the 3D modeling object of the dataset;

[0241] ·S 1 ,S 2 ,…,S k is the corresponding base template; and

[0242] ·D 2 (S j ,x i ) is related to the 3D modeling object x i With the corresponding neural network The inferred corresponding basic template S j The distance between the deformations.

[0243] In the example, D 2 is the chamfer distance loss:

[0244]

[0245] In examples, minimization includes iterating the following operations: selecting a set of 3D modeled objects of the data set, and for each 3D modeled object in the selected set, assigning a corresponding neural network to the 3D modeled object by rewarding the smallerness of the difference between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network. In these examples, each corresponding neural network is assigned to one or more 3D modeled objects in the selected set. In these examples, the weights of each corresponding neural network are modified as a result of the assignment.

[0246] Iterations of the selection may be performed until each 3D modeled object of the data set has been selected at least once and / or until each 3D modeled object of the data set has a corresponding neural network assigned to it. Assigning the corresponding neural network to the 3D modeled objects in the selected set may include evaluating each term of a loss that penalizes a difference between the 3D modeled object and the corresponding 3D modeled object inferred by the corresponding neural network. Assigning the corresponding neural network to the 3D modeled objects in the selected set may also include evaluating the term for which the difference is penalized to the minimum. In an example, the corresponding neural network corresponding to the difference penalized by the evaluated term is the neural network assigned to the 3D modeled object.

[0247] In other words, the method S420 is modified to iteratively access the sets of 3D modeled objects in the data set and assign a corresponding neural network to each 3D modeled object in each set, the corresponding neural network inferring a corresponding 3D modeled object that is (e.g. most) similar (e.g. geometrically similar) to the 3D modeled object. Thus, for each corresponding neural network, one or more 3D modeled objects are iteratively assigned to the corresponding neural network. The weights of the corresponding neural network are modified at each assignment. In the example, this means modifying the weights of the corresponding neural network so that the corresponding neural network is configured to infer at least each 3D modeled object that is currently being assigned and that was previously assigned to the corresponding neural network.

[0248] Thus, modification S420 iteratively explores the 3D modeled objects in the collection and iteratively assigns the corresponding neural networks to one or more 3D modeled objects. The weights may also be iteratively modified so that each corresponding neural network is at least specialized for inferring the 3D modeled objects assigned to it. In other words, modification S420 may operate on the selection of one or more sub-datasets (e.g., categories) of the 3D modeled objects of the data set, and substantially simultaneously, modify the corresponding weights of each corresponding neural network so that each corresponding neural network is specialized for inferring the 3D modeled objects of a corresponding one of the sub-datasets.

[0249] Discussing now an example implementation in which each respective neural network is a respective autoencoder comprising a respective decoder configured for inferring a 3D modeled object.

[0250] In this implementation, let {S 1 ,…,S k} is k basic templates of the determined S30, where k ≥ 2. Learning S50 includes learning k automatic encoders One autoencoder per base template. Each encoder takes as input a sample x of an input 3D mesh representing a 3D modeled object, based on earlier references [8, 9, 10, 11]. Each decoder g j By transforming the latent vector f j (x) and 3D coordinates y as input to predict the basic template S j The deformed template is obtained as S j +g j (f j (x),S j ). Each decoder is initialized to predict small deformations before learning begins. As previously discussed, this may include initializing S410 the corresponding weights of each decoder to an initial value below a predetermined threshold. The corresponding weights are modified S420 by minimizing the following chamfer distance loss (using standard deep learning techniques, such as an ADAM solver on a small batch):

[0251]

[0252] in is the chamfer distance.

[0253] The losses can be minimized by using a redistribution algorithm similar to the first redistribution algorithm or the second redistribution algorithm already described previously. This allows the redistribution and its argmin to force each autoencoder to be optimized over at least a few 3D modeled objects per mini-batch during training. Since in this implementation the autoencoders start from a base template, it is easy to specialize these autoencoders for the kind of 3D modeled objects represented by their associated base template. Furthermore, the autoencoder only needs to slightly deform the base template to match the input, so the autoencoder ensures that the topology of its output is more consistent.

[0254] We now discuss how this process is accomplished.

[0255] In this implementation, the process learns several autoencoders onto a grid, where each autoencoder automatically specializes itself for a specific kind of topology. Each decoder also deforms its own base template, which is automatically determined S30 to represent the different kinds of basic shapes present in the dataset provided S10. This allows learning manifolds with higher accuracy and lower reconstruction loss, efficiently handling different topologies, and ensuring that the reconstructed shapes share a more consistent topology.

[0256] This implementation of the process consists of four stages 1, 2, 3 and 4, which will now be discussed.

[0257] 1. Sampling the dataset

[0258] Let {x 1 ,x 2 ,…,x n} is a dataset of 3D meshes provided S10, which typically belong to the same class of objects (e.g., a dataset of chairs). The process consists of extracting a point cloud from each shape in the dataset by ray casting each model on six orthogonal views. The process also consists of uniformly subsampling each point cloud to obtain a fixed number of points m. To this end, the process starts with a random point in the point cloud and iteratively picks the farthest point in the point cloud from the already selected points until the number m of points is reached. Now {x 1 ,x 2 ,…,x n} represents the sampled point cloud of the training grid. The process further centers the shape and applies unit sphere scaling.

[0259] 2. Learning basic templates – Determine S30 k basic templates

[0260] The process starts from k unit balls S 1 ,…,S k We start with m points per unit sphere. This process adds a very small amount of noise to each sphere, making each sphere slightly different from the others.

[0261] This process uses the relaxation algorithm proposed in the earlier cited paper

[12] to optimize the points of each sphere to minimize (via mini-batch stochastic gradient descent) the following Earth Mover distance loss:

[0262]

[0263] in Is the template S j With shape x i The Earth Mover distance loss between them.

[0264] Each sphere will be optimized with a base template shape that represents a shape different from the other optimized spheres, because for each training model, the minimum will only optimize the closest sphere. Each sphere specializes itself to a specific base template that represents a specific topology and shape category, different from the other spheres. Each base template can be interpreted as the centroid of its own cluster in 3D model space (provided as Earth Mover distance).

[0265] In order to force each sphere to specialize for its own shape, the process also uses a reassignment algorithm during mini-batch training. In practice, it may happen that for the same base template, all shapes reach their minimum loss, thus preventing other spheres from being optimized. The reassignment algorithm can be one of the first and second reassignment algorithms discussed previously.

[0266] Loss L 1 The vertices of the sphere were optimized but the topology was not taken into account. This results in a base template with an accurate point cloud but with incorrect topology. Therefore, the process consists in remeshing the base templates. To do this, the process places each base template in a coarse 3D grid where each voxel containing a point has a value of 1 and the other voxels have values ​​of zero. The process then consists in applying the marching cubes algorithm with isometric values ​​close to 1 to extract a coarse mesh for each base template. The process uses the coarse mesh from the marching cubes algorithm in order to calculate accurate normals for each point of each base template. The process projects each point simply onto the nearest triangle of the coarse mesh and assigns to its normal a weighted average of the normals of the triangle, with the weight being the barycentric weight of the projected point. With these appropriate normals, the process runs a Poisson surface reconstruction in order to obtain a base template with accurate topology, which may end up taking one-tenth of the vertices if there are too many. Now {S 1 ,…,S k} represents k learned basic templates. Note that each basic template is homeomorphic to the sphere.

[0267] 3. Learning Manifolds – Learning S40 k Autoencoders

[0268] The process also involves learning k autoencoders One autoencoder per base template. Each encoder takes as input a sample x of the input grid based on the earlier referenced papers [8, 9, 10, 11]. Each decoder g j By transforming the latent vector f j (x) and 3D coordinates y as input to predict the basic template S j The deformed template is used as S j +g j (f j (x),Sj ) is obtained. Each decoder is initialized to predict small deformations before learning begins.

[0269] The autoencoder is learned by minimizing (using standard deep learning techniques, e.g., an ADAM solver on mini-batches) the following chamfer distance loss:

[0270]

[0271] in is a function of the chamfer distance.

[0272] This process also uses exactly the same partitioning algorithm as in the previous phase in order to redistribute and its argmin to force each autoencoder to optimize over at least a few shapes per mini-batch during training. Since the autoencoders start from a base template, it is easy to specialize these autoencoders for the kind of shapes represented by their associated base template. Furthermore, the autoencoder only needs to deform this base template slightly to match the input, so the autoencoder ensures that the topology of its output is more consistent.

[0273] 4. Turning Manifolds into Generative Models

[0274] Now that the manifold has been learned, the process can also fit a Gaussian mixture model for each latent space of each autoencoder so that new shapes can be sampled and synthesized. For each autoencoder, the process takes the training shapes that were best reconstructed by that autoencoder and uses these shapes to initialize k-means clustering before performing expectation maximization to fit a Gaussian mixture. The Gaussian mixture gives a probability distribution function over each latent space that can be easily sampled.

[0275] A computer program comprising instructions for executing a template learning method, a manifold learning method, a process and / or a method of use is also provided.

[0276] Also provided is a device comprising a data storage medium having recorded thereon a program and / or a neural network and / or a collection of neural networks. The device may form or be used as a non-transitory computer-readable medium, for example, on a SaaS (Software as a Service) or other server, or on a cloud-based platform, etc. The device may alternatively include a processor coupled to the data storage medium. Thus, the device may form, in whole or in part, a computer system (e.g., the device is a subsystem of an overall system). The system may also include a graphical user interface coupled to the processor.

[0277] Now let's talk about systems and procedures.

[0278] Fig. 20An example of a GUI for a system is shown, where the system is a CAD system.

[0279] GUI 2100 can be a typical CAD-like interface, which has a standard menu bar 2110, 2120 and a bottom and side toolbar 2140, 2150. Such a menu bar and toolbar contain a set of user-selectable icons, each icon being associated with one or more operations or functions as known in the art. Some of these icons are associated with software tools suitable for editing and / or working with the 3D modeling object 2000 displayed in GUI 2100. Software tools can be grouped into workbenches. Each workbench contains a subset of software tools. In particular, one of the workbenches is an editing workbench, which is suitable for editing geometric features of the modeling product 2000. In operation, the designer can, for example, pre-select a part of the object 2000, then initiate an operation (e.g., change size, color, etc.) or edit geometric constraints by selecting an appropriate icon. For example, a typical CAD operation is the modeling of punching or folding of a 3D modeling object displayed on the screen. The GUI can, for example, display data 2500 related to the displayed product 2000. In the example of the figure, data 2500 displayed as a "feature tree" and its 3D representation 2000 relate to a brake assembly including a brake caliper and a disc. The GUI may also show various types of graphical tools 2130, 2070, 2080, for example, to facilitate 3D orientation of an object, to trigger simulation of an operation of an edited product, or to render various properties of the displayed product 2000. A cursor 2060 may be controlled by a haptic device to allow the user to interact with the graphical tools.

[0280] Fig.21 An example of a system is shown, where the system is a client computer system such as a user's workstation.

[0281] The client computer of the example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, and a random access memory (RAM) 1070 also connected to the bus. The client computer is also provided with a graphics processing unit (GPU) 1110, which is associated with a video random access memory 1100 connected to the bus. The video RAM 1100 is also referred to as a frame buffer in the art. A mass storage device controller 1020 manages access to mass storage devices such as a hard disk drive 1030. Mass storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including, by way of example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the foregoing may be supplemented by or incorporated into a specially designed ASIC (Application Specific Integrated Circuit). A network adapter 1050 manages access to a network 1060. The client computer may also include a tactile device 1090, such as a cursor control device, a keyboard, etc. The cursor control device is used in the client computer to allow the user to selectively position the cursor at any desired location on the display 1080. In addition, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes several signal generating devices for inputting control signals to the system. Typically, the cursor control device can be a mouse, and the buttons of the mouse are used to generate signals. Alternatively or in addition, the client computer system may include a touch-sensitive pad and / or a touch-sensitive screen.

[0282] The computer program may include instructions executable by a computer, the instructions including units for causing the above-mentioned system to perform a template learning method, a manifold learning method, and / or a process. The program may be recorded on any data storage medium including a memory of the system. For example, the program may be implemented in a digital electronic circuit, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented as a device (e.g., a product tangibly embodied in a machine-readable storage device) for execution by a programmable processor. The process / method steps (i.e., the steps of the template learning method, the manifold learning method, and / or the process) may be performed by a programmable processor of a program that executes instructions to perform the function of the process by operating on input data and generating output. Therefore, the processor may be programmable and coupled to receive data and instructions from a data storage system, at least one input device, and at least one output device, and to transmit data and instructions thereto. The application may be implemented in a high-level procedural programming language or an object-oriented programming language, or in an assembly language or a machine language if necessary. In any case, the language may be a compiled language or an interpreted language. The program may be a fully installed program or an updater. In any case, application of the program to the system results in instructions for executing the template learning method, manifold learning method and / or process.

Claims

1. A computer-implemented machine learning method, the method comprising: - providing a data set comprising 3D modeled objects, each 3D modeled object representing a respective mechanical part, the data set having one or more sub-data sets, each sub-data set forming at least a part of the data set and each sub-data set comprising 3D modeled objects of a respective class of 3D modeled objects; -For each corresponding sub-dataset: determining a basic template, the basic template being a 3D modeled object representing the centroid of the 3D modeled objects of the sub-dataset and representing the average geometry of the shapes of the 3D modeled objects of the sub-dataset; and learning a neural network configured to infer deformations of the base template, each deformation being a deformation of the base template to a corresponding 3D modeled object, the neural network being specialized for reconstructing the 3D modeled objects of the sub-dataset, the learning comprising training the neural network based on the training of the sub-dataset to reconstruct the 3D modeled objects of the sub-dataset, the neural network being an autoencoder, the autoencoder comprising a decoder configured to perform the inference of the deformations, the autoencoder taking a 3D modeled object as input and outputting a reconstruction of the 3D modeled object, the reconstruction being a deformation of the base template to the 3D modeled object inferred by the decoder, the reconstruction being equal to the sum of the base template and the deformation vector inferred by the autoencoder, the learning comprising optimizing a reconstruction loss, wherein the determining of the basic template comprises calculating a minimum value of a loss within a candidate basic template, the loss penalizing, for each 3D modeled object of the sub-dataset, a difference between the 3D modeled object of the sub-dataset and the candidate basic template, The difference between the 3D modeled object of the sub-dataset and the candidate basic template is a function of the distance between the 3D modeled object and the candidate basic template, The distance is the distance between a first point cloud representing the 3D modeled object and a second point cloud representing the candidate basic template, The losses are of the following types: in: ·D1(S j ,x i,j ) is S j With x i,j A function of the distance between ·S j is the second point cloud; ·p j is the number of 3D modeled objects in the corresponding sub-dataset; and · It is the first point cloud.

2. The method according to claim 1, wherein: The calculations include: - Provide basic 3D modeling objects; and - Starting from the basic 3D modeled object, iterate the following operations: · Evaluate the impact of previous candidate base templates on the loss; and · Transform the previous candidate base template into a new candidate base template.

3. The method according to claim 2, wherein: The basic 3D modeled object represents a sphere, and / or the loss penalizes, for each 3D modeled object of the sub-dataset, an Earth Mover distance loss between a first point cloud representing the 3D modeled object of the sub-dataset and a second point cloud representing the new candidate basic template.

4. The method according to claim 2 or 3, wherein: The basic 3D modeled object is a point cloud, and the iteration produces an optimized point cloud.

5. The method according to claim 4, wherein: The determining of the basic template further comprises: - inferring normals at points in the optimized point cloud; and - performing a surface reconstruction of said optimized point cloud based on the inferred normals.

6. A computer implemented method using a neural network capable of learning according to the method of any one of claims 1 to 5.

7. The method according to claim 6, wherein: The method comprises: - providing a first 3D modeled object and a second 3D modeled object; - applying the autoencoder to the first 3D modeled object and the second 3D modeled object; - Based on a result of applying the autoencoder, determining a shape match between the first 3D modeled object and the second 3D modeled object.

8. A computer program product comprising instructions for executing the method according to any one of claims 1 to 5 and / or the method according to claim 6 or 7.

9. A device comprising a data storage medium having recorded thereon instructions for executing the method according to any one of claims 1 to 5 and / or the method according to claim 6 or 7.

10. The apparatus of claim 9, further comprising a processor coupled to the data storage medium.