Techniques for generating subjective style comparison metrics for B-REP of 3D CAD objects
By using few-shot learning and unsupervised techniques, and leveraging neural networks to generate personalized style comparison metrics, this approach addresses the issue of insufficient accuracy in existing style models, enabling efficient geometric style comparison of 3D CAD objects.
Patent Information
- Application Number
- CN202111369029.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-11-10
- Filing Date
- 2021-11-12
- Publication Date
- 2026-02-24
- Estimated Expiration
- 2042-02-24
AI Technical Summary
Existing technologies struggle to generate personalized style comparison metrics that reflect individual user preferences, and lack fidelity when using 3D meshes and 3D point clouds to represent style details, resulting in insufficient accuracy of style models.
A few-shot learning method is adopted to map 3D CAD objects to feature map atlases through a trained neural network, extract style signals and generate personalized style comparison metrics, and use unsupervised techniques to process 3D CAD objects represented by B-rep.
It improves the accuracy of geometric style comparison for multiple pairs of different 3D CAD objects, generates personalized style comparison metrics that reflect individual user perception, and improves the accuracy of style models.
Smart Images

Figure CN114494109B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims priority to U.S. Provisional Patent Application No. 63 / 113,755, filed November 13, 2020, entitled "Unsupervised FEW-SHOT LEARNING OF THREE-DIMENSIONAL STYLE SIMILARITY MEASUREFOR B-REPS". The subject matter of the related application is hereby incorporated by reference. Background of the Invention Technical Field
[0004] The embodiments of the present invention generally relate to computer science and computer-aided design software, and more specifically, to techniques for generating subjective style comparison metrics for B-rep of 3D CAD objects. Background Technology
[0006] In the context of three-dimensional (“3D”) mechanical design, computer-aided design (“CAD”) tools are frequently used to streamline the process of generating, analyzing, modifying, optimizing, displaying, and / or recording the designs of different 3D objects that constitute the overall mechanical design. A particularly useful feature of CAD tools is their ability to automatically compare the computational representations of various 3D CAD objects based on certain metrics. One such metric is a style comparison metric, which quantifies the geometrical style similarity or dissimilarity between a pair of different 3D objects, regardless of the underlying substantive content of the two 3D objects.
[0007] In one approach to establishing a style comparison metric, a training set of 3D meshes or 3D point clouds representing different 3D objects is labeled as a style by a number of individuals. For example (Through crowdsourcing). Then, supervised learning techniques are used to train a machine learning model to estimate the style differences, or "style distances," between multiple pairs of distinct 3D objects represented by the labeled training set. The resulting trained style model can then be used to estimate the style distances between multiple pairs of distinct 3D objects represented by multiple pairs of distinct 3D meshes or different 3D point clouds.
[0008] One drawback of the above methods is that machine learning models typically learn only a general style comparison metric, which does not consider the different style perceptions among individual users. Using supervised learning to establish personalized style comparison metrics would require training the machine learning model on a relatively large training set labeled with styles tailored to individual users. Because labeling relatively large training sets is extremely time-consuming, supervised learning techniques are rarely (if ever) used to generate style comparison metrics that reflect individual user preferences. Another drawback of the above methods is that 3D meshes and 3D point clouds often lose fidelity when used to represent style details, which can reduce the accuracy of the resulting trained style model.
[0009] In contrast to 3D meshes and 3D point clouds, boundary representations of 3D objects (“B-rep”) are characterized by high fidelity when used to represent stylistic details. Therefore, B-rep has become an industry standard in 3D computer-aided design and 3D computer-aided manufacturing. However, because the number of B-rep tags labeled with styles is relatively small, applying supervised learning techniques to B-rep in the context of style comparison metrics is impractical.
[0010] As explained above, when using computer-aided design tools, there is a need in the art for more efficient techniques to generate style comparison metrics for multiple pairs of different 3D objects. Summary of the Invention
[0011] One embodiment of the present invention describes a computer-implemented method for generating style comparison metrics for multiple pairs of different three-dimensional (3D) computer-aided design (CAD) objects. The method includes executing one or more trained neural networks to map multiple 3D CAD objects to a feature map atlas; calculating a style signal set based on the feature map atlas; determining a set of values for a weight set based on the style signal set; and generating the style comparison metric based on the weight set and a parameterized style comparison metric.
[0012] At least one technical advantage of the disclosed technique over existing techniques lies in its implementation of a few-shot learning method to generate effective personalized style comparison metrics for multiple pairs of different 3D CAD objects. In this regard, the disclosed technique can learn the relative importance of different items to geometric style in a parametric style comparison metric perceived by a single user using as few as two user-specified examples of 3D CAD objects with similar styles. Furthermore, the items in the parametric style comparison metric can be derived from data generated by a neural network trained to process B-reps using unsupervised techniques that do not require labeled training data. Therefore, unlike existing methods, the disclosed technique can be used to compare the geometric styles of multiple pairs of different 3D CAD objects represented by B-reps, thereby increasing the accuracy of geometric style comparisons compared to existing techniques. These technical advantages provide one or more technological advancements superior to existing methods. Attached Figure Description
[0013] By referring to various embodiments, the above-described features of the various embodiments can be understood in more detail in the more specific description of the inventive concept briefly summarized above, some of which are shown in the accompanying drawings. However, it should be noted that the drawings only illustrate typical embodiments of the inventive concept and should therefore not be considered as limiting the scope in any way, and other equally effective embodiments exist.
[0014] Figure 1 It is a conceptual diagram of a system configured to implement one or more aspects of various implementation schemes;
[0015] Figure 2 It is based on various implementation plans. Figure 1 A more detailed diagram of the style learning engine;
[0016] Figure 3 It is based on various implementation plans. Figure 2 A more detailed illustration of the style signal extractor;
[0017] Figure 4 It is based on various implementation plans. Figure 1 The style is compared to more detailed illustrations in the application;
[0018] Figure 5 It is based on various implementation plans. Figure 4 A more detailed illustration of the gradient engine;
[0019] Figure 6 It is a flowchart of the method steps for generating style comparison metrics for multiple pairs of different 3D CAD objects according to various implementation schemes;
[0020] Figure 7This is a flowchart illustrating the steps of a method for comparing the geometric styles of different 3D CAD objects, based on various implementation schemes; and
[0021] Figure 8 It is a flowchart of one or more visual method steps for generating at least one geometric style gradient for a pair of different 3D CAD objects, according to various implementation schemes. Detailed Implementation
[0022] In the following description, numerous specific details are set forth to provide a more thorough understanding of various embodiments. However, it will be apparent to those skilled in the art that the inventive concept can be practiced without one or more of these specific details. For illustrative purposes, multiple instances of similar objects are indicated, where necessary, by reference numerals identifying the objects and bracketed designations identifying the instances.
[0023] System Overview
[0024] Figure 1 This is a conceptual diagram of a system 100 configured to implement one or more aspects of various implementation schemes. As shown, system 100 includes, but is not limited to, computational instance 110(0), computational instance 110(1), display device 102(0), display device 102(1), 3D CAD object database 108(0), 3D CAD object database 108(1), trained 3D CAD object neural network (NN) 120(0), and trained 3D CAD object NN 120(1). For illustrative purposes, computational instance 110(0) and computational instance 110(1) are also referred to herein separately as “computational instance 110” and collectively as “computational instance 110”.
[0025] In some embodiments, system 100 may include, but is not limited to, any number of computational instances 110. In the same or other embodiments, system 100 may omit display device 102(0), display device 102(1), 3D CAD object database 108(0), 3D CAD object database 108(1), trained 3D CAD object NN 120(0) or trained 3D CAD object NN 120(1), or any combination thereof. In some embodiments, system 100 may include one or more other display devices, one or more other 3D CAD object databases, one or more other trained 3D CAD object NNs, or any combination thereof. In some embodiments, 3D CAD object database 108(0) and / or 3D CAD object database 108(1) may be replaced or supplemented with any number of datasets.
[0026] In various implementations, any number of components of system 100 may be distributed across multiple geographical locations or in any combination within one or more cloud computing environments. Right now It is implemented in the encapsulated shared resources, software, data, etc.
[0027] As also shown in the figure, computing instance 110(0) includes, but is not limited to, processor 112(0) and memory 116(0). As also shown in the figure, computing instance 110(1) includes, but is not limited to, processor 112(1) and memory 116(1). For illustrative purposes, processor 112(0) and 112(1) are also referred to herein individually as “processor 112” and collectively as “processor 112”. For illustrative purposes, memory 116(0) and 116(1) are also referred to herein individually as “memory 116” and collectively as “memory 116”.
[0028] Each processor 112 can be any instruction execution system, device, or apparatus capable of executing instructions. For example, each processor 112 may include a central processing unit (CPU), a graphics processing unit (GPU), a controller, a microcontroller, a state machine, or any combination thereof. The memory 116 of each computing instance 110 stores content used by the processors 112 of the computing instance 110, such as software applications and data. In some alternative embodiments, each computing instance 110 may include any number of processors 112 and any number of memories 116 in any combination. In particular, any number (including one) of computing instances 110 can provide any number of multiprocessing environments in any technically feasible manner.
[0029] Each memory 116 can be one or more readily available memories, such as random access memory, read-only memory, floppy disk, hard disk, or any other form of local or remote digital storage device. In some embodiments, storage devices (not shown) may supplement or replace any number of memories 116. Storage devices may include any number and type of external memory accessible to any number of processors 112. For example, but not limited to, storage devices may include secure digital cards, external flash memory, portable optical disc read-only memory, optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0030] Each computing instance 110 is configured to implement one or more software applications. For illustrative purposes only, each software application is depicted as residing in the memory 116 of a single computing instance 110 and executing on the processor 112 of that single computing instance 110. However, as those skilled in the art will recognize, the functionality of each software application may be distributed across any number of other software applications residing in the memory 116 of any number of computing instances 110 and executing on the processor 112 of any number of computing instances 110 in any combination. Furthermore, the functionality of any number of software applications may be consolidated into a single application or subsystem.
[0031] Specifically, computational instance 110(0) is configured to generate a style comparison metric 170 that quantifies the geometrical style similarity or dissimilarity between a pair of distinct 3D CAD objects, regardless of the underlying material content of the two 3D CAD objects. Complementarily, computational instance 110(1) automatically compares and / or evaluates 3D CAD objects based on the style comparison metric 170.
[0032] As previously discussed, conventional methods for implementing style comparison metrics employ supervised learning techniques to train machine learning models based on labeled 3D meshes or 3D point clouds. A drawback of this approach is that the machine learning model typically learns only a general style comparison metric that does not account for the different style perceptions among individual users. Another drawback is that 3D meshes and 3D point clouds often lack fidelity in representing style details, potentially reducing the accuracy of the trained style model. In contrast to 3D meshes and 3D point clouds, B-rep of 3D objects is characterized by high fidelity in representing style details. However, because the number of B-rep labeled as styles is relatively small, using supervised learning techniques to train machine learning models based on B-rep to establish style comparison metrics is impractical.
[0033] Generate subjective style comparison metrics
[0034] To address the aforementioned limitations, system 100 includes, but is not limited to, a style comparison metric application 130 and a style comparison application 180. In some embodiments, the style comparison metric application 130 executes a trained 3D CAD object neural network 120(0) to map 3D CAD objects to a feature map atlas, extracts style signals from the feature map atlas, and implements few-shot learning techniques to learn the relative importance of style signals to a user. Using few-shot learning techniques, the relative importance of style signals to a user can be accurately determined based on as few as two user-specified examples of 3D CAD objects with similar styles.
[0035] As shown in the figure, in some embodiments, the style comparison metric application 130 resides in the memory 116(0) of the computing instance 110(0) and executes on the processor 112(0) of the computing instance 110(0). In the same or other embodiments, the style comparison metric application 130 includes, but is not limited to, an example engine 140 and a style learning engine 160. The example engine 140 generates, but is not limited to, a positive example set 152 and a negative example set 154.
[0036] As shown in the figure, the positive example set 152 is denoted as T in this document. In some implementations, the positive example set 152 includes, but is not limited to, a set of P 3D CAD objects, wherein the set is denoted as {t1,…,t...} P}, t1-t P This is an example of the target style, and P can be any integer ≥ 2. Each of the P 3D CAD objects can be represented in any technically feasible way. For example, in some implementations, each 3D CAD object is a B-rep. In some other implementations, each 3D CAD object is a 3D mesh. In some other implementations, each 3D CAD object is a 3D point cloud. The representation of a 3D CAD object is also referred to herein as a 3D CAD object. For illustrative purposes, Figure 1 Depict two 3D CAD objects (labeled t1 and t2) from the positive example set 152. As shown in the figure, the two 3D CAD objects t1 and t2 have different contents, but some stylistic aspects are shared between t1 and t2.
[0037] In some implementations, the negative instance set 154 is denoted as T' herein. As shown in the figure, in some implementations, the negative instance set 154 includes, but is not limited to, a set of N 3D CAD objects, wherein the set is denoted as {t'1,...,t'}. N}, t′1-t′ N This is a counterexample to the target style, and N can be any integer ≥ 2. In some other implementations, the set of negative examples includes, but is not limited to, a single 3D CAD object (t'1). In some other implementations, the set of negative examples 154 can be an empty set. For illustrative purposes, Figure 1 Describe two 3D CAD objects (labeled t′1 and t′2) from negative example set 154.
[0038] As shown in the figure, in some embodiments, the style comparison measurement application 130 generates a target style graphical user interface (GUI) 142. The target style GUI 142 enables the user to specify, review, and / or modify positive and negative examples of the target style in any technically feasible manner. As shown in the figure, in some embodiments, the style comparison measurement application 130 facilitates the user's selection of positive and negative examples from a 3D CAD object database 108(0). The 3D CAD object database 108(0) may include, but is not limited to, any number of 3D CAD objects represented in any technically feasible manner.
[0039] As shown in the figure, in some embodiments, the style comparison measurement application 130 displays the target style GUI 142 on the display device 102(0). The display device 102(0) can be any type of device that can be configured to display any amount and / or type of visual content in any technically feasible manner. In the same or other embodiments, computing instance 110(0), zero or more other computing instances, display device 102(0), and zero or more other display devices are integrated into a user device (not shown). Some examples of user devices include, but are not limited to, desktop computers, laptop computers, smartphones, smart TVs, game consoles, tablet computers, etc.
[0040] In some implementations, each of the 3D CAD objects in the positive example set 152 is selected by the user. For example (via a target-style GUI). In the same or other implementations, zero or more of the 3D CAD objects in the negative example set 154 are selected by the user, and zero or more of the 3D CAD objects in the negative example set 154 are automatically selected by the example engine 140. The example engine 140 may select any number of negative examples and add them to the negative example set 154 in any technically feasible manner. For example, in some implementations, in order to reduce the risk of overfitting during few-shot learning, the example engine 140 randomly selects a relatively large number of 3D CAD objects from the 3D CAD object database 108(0) and adds the selected 3D CAD objects to the negative example set 154.
[0041] The style learning engine 160 uses a trained 3D CAD object neural network 120(0) to generate a style comparison metric 170 based on a positive example set 152 and a negative example set 154. The trained 3D CAD object neural network 120(0) can be any type of neural network that processes representations of any type of 3D CAD object. For example, in some implementations, the trained 3D CAD object neural network 120(0) is a trained B-rep encoder, a trained 3D mesh classifier, a trained UV-net encoder, a trained 3D point cloud classifier, a trained B-pre classifier, a trained 3D mesh encoder, or any other similar type of encoder or classifier.
[0042] As follows Figure 2 and Figure 3 More specifically, in some embodiments, the style learning engine 160 executes a trained 3D CAD object neural network 120(0) to map 3D CAD objects to a feature map set. Notably, each feature map set includes multiple feature maps, where each feature map is associated with a different layer of the trained 3D CAD object neural network. In some embodiments, the style learning engine 160 adds input feature maps to each feature map set. In the same or other embodiments, for each feature map, the style learning engine 160 extracts second-order activation information (represented in the feature map) from the feature map. For example, Different style signals are extracted using statistical measures and / or second-order feature information. Then, the style learning engine 160 implements few-shot learning techniques based on a positive example set 152 and a negative example set 154 to learn the relative importance of style signals to users. The style learning engine 160 generates a style comparison metric 170 based on the relative importance of style signals to users.
[0043] Style comparison metric 170 can be any type of measurement technique that can be used to quantify the geometrical style similarity or dissimilarity between two 3D CAD objects or a "pair of 3D CAD objects". For example, in some embodiments, style comparison metric 170 is an equation that quantifies the difference or "distance" between the geometrical styles of two 3D CAD objects. In some other embodiments, style comparison metric 170 can be any other type of technique, such as a loss function, used to quantify the geometrical style dissimilarity between two 3D CAD objects. In still other embodiments, style comparison metric 170 can be any type of technique, such as a similarity metric, used to quantify the geometrical similarity between two 3D CAD objects. The techniques described herein can be modified to reflect any number and / or type of style comparison metrics.
[0044] As shown in the figure, in some embodiments, the style comparison application 180 resides in the memory 116(1) of computing instance 110(1) and executes on the processor 112(1) of computing instance 110(1). The style comparison application 180 can perform any number and / or type of operations to automatically evaluate the style of any number of 3D CAD objects based on applying style comparison metric 170 to multiple pairs of 3D CAD objects. Although not shown, in some embodiments, different instances of the style comparison application 180 can compare the same or different 3D CAD objects based on different style comparison metrics. In the same or other embodiments, different style comparison metrics can reflect different style perceptions.
[0045] Style comparison application 180 can determine the 3D CAD objects to be evaluated and the number and / or type of evaluation to be performed in any technically feasible manner. As shown, in some embodiments, style comparison application 180 generates a style evaluation GUI 182 that allows a user to specify any number and / or type of evaluation to be performed in any technically feasible manner. In some embodiments, style evaluation GUI 182 allows a user to select any number of 3D CAD objects from a 3D CAD object database 108(1) for display and / or evaluation. The 3D CAD object database 108(1) may include, but is not limited to, any number of 3D CAD objects represented in any technically feasible manner. In the same or other embodiments, style evaluation GUI 182 allows style comparison application 180 to display any number and / or type of evaluation results in any technically feasible manner.
[0046] As shown in the figure, in some embodiments, the style comparison application 180 displays a style evaluation GUI 182 on a display device 102(1). The display device 102(1) can be any type of device that can be configured to display any amount and / or type of visual content in any technically feasible manner. In the same or other embodiments, computing instance 110(1), zero or more other computing instances, display device 102(1), and zero or more other display devices are integrated into a user device (not shown). Some examples of user devices include, but are not limited to, desktop computers, laptop computers, smartphones, smart TVs, game consoles, tablet computers, etc.
[0047] As follows Figures 3 to 5More specifically, in some embodiments, to compare the geometric styles of a pair of 3D CAD objects, the style comparison application 180 executes a trained 3D CAD object neural network 120(1) to map the pair of 3D CAD objects to a feature map set. In some embodiments, the trained 3D CAD object neural network 120(0) and the trained 3D CAD object neural network 120(1) are different instances of the same trained 3D CAD object neural network. In some embodiments, the style comparison application 180 adds input feature maps to each feature map set. In the same or other embodiments, for each feature map, the style comparison application 180 extracts second-order activation information (represented in the feature map) from the feature map. For example, Different style signals are extracted using statistical measures and / or second-order feature information. Then, the style comparison application 180 calculates a metric value for the style comparison measure based on the style signals. The metric value quantifies the geometric style similarity or dissimilarity between the 3D objects.
[0048] Style comparison application 180 can perform any number and / or type of evaluation-related operations on any number of metrics to determine and / or display any number and / or type of evaluation results. For example, in some embodiments, style comparison application 180 can perform any number and / or type of ranking operations, statistical operations, filtering operations, any other type of mathematical operations, plotting operations, any other type of graphical operations, or any combination thereof on any number of metrics 440 and optionally any number of previously generated metrics to generate any number and / or type of evaluation results (not shown).
[0049] As follows Figure 5 In more detail, in some implementations, the style comparison application 180 includes, but is not limited to, a gradient engine ( Figure 1 (Not shown in the image), the gradient engine computes any number of style gradients and displays any number of visualizations for any number of trained 3D CAD object neural networks and any number of style comparison metrics corresponding to any number of pairs of 3D CAD objects. Notably, in some embodiments, the direction of the vector included in the gradient between a pair of 3D CAD objects indicates the direction in which corresponding sample points can be moved in the geometric domain to increase the geometric style similarity of the pair of 3D CAD objects.
[0050] It will be understood that the system shown herein is illustrative and variations and modifications are possible. The connection topology can be modified as needed, including the location and arrangement of the following items: style comparison metric application 130, example engine 140, style learning engine 160, target style GUI 142, display device 102(0), 3D CAD object database 108(0), trained 3D CAD object neural network 120(0), style comparison application 180, display device 102(1), 3D CAD object database 108(1), and trained 3D CAD object neural network 120(1), or any combination thereof.
[0051] In some implementation schemes, Figure 1 One or more of the components shown may be absent. In the same or other embodiments, the functionality of the style comparison metric application 130, the example engine 140, the style learning engine 160, the trained 3D CAD object neural network 120(0), the style comparison application 180, the trained 3D CAD object neural network 120(1), or any combination thereof may be distributed across any number of other software applications or components that may or may not be included in system 100.
[0052] It should be noted that the techniques described herein are illustrative rather than restrictive, and modifications may be made without departing from the broader spirit and scope of the invention. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments and techniques. Furthermore, in various embodiments, any number of the techniques disclosed herein may be implemented in any technically feasible manner, while others may be omitted.
[0053] For explanatory purposes, in Figures 2-5 In the depicted implementation, style comparison metric 170 is a style distance metric that quantifies the geometrical style dissimilarity, or "style distance," between two 3D CAD objects. In some other implementations, style comparison metric 170 can be any other type of technique used to quantify the geometrical style dissimilarity between two 3D CAD objects, such as a loss function. In still other implementations, style comparison metric 170 can be any type of technique used to quantify the geometrical similarity between two 3D CAD objects, such as a similarity metric. The techniques described herein can be modified to reflect any type of style comparison metric 170.
[0054] Figure 2 It is based on various implementation plans. Figure 1A more detailed illustration of the style learning engine 160. As shown, the style learning engine 160 uses a trained 3D CAD object neural network 120(0) to generate a style comparison metric 170 based on a set of positive examples 152 and a set of negative examples 154. For illustrative purposes, in the context of generating the style comparison metric 170 that quantifies the geometrical style dissimilarity between two 3D CAD objects, Figure 2 The functionality of the style learning engine 160 is described and illustrated herein. In some other embodiments, the style learning engine 160 may generate any type of style comparison metric 170, and the techniques described herein are modified accordingly.
[0055] As shown in the figure, the positive example set 152 includes, but is not limited to, at least two 3D CAD objects that serve as examples of the target style. In some implementations, it includes... Figure 2 The depicted implementation scheme includes, but is not limited to, at least two counterexamples of the target style. In some other implementation schemes, the negative example set may include a single 3D CAD object or may be an empty set, and in combination with... Figure 2 The features of the described style learning engine 160 have been modified accordingly.
[0056] exist Figure 2 In the context of this document and for illustrative purposes, the 3D CAD objects included in the positive example set 152 are denoted as t1-t. P , where P can be any integer greater than or equal to 2. Figure 2 In the context of this document and for illustrative purposes, the 3D CAD objects included in the negative example set 154 are denoted as t1-t. N , where N can be any integer ≥ 2. The 3D CAD objects included in the positive example set 152 and the negative example set 154 can be represented in any technically feasible manner.
[0057] As shown in the figure, the style learning engine 160 includes, but is not limited to, a style signal extractor 210, a positive style signal set 222, a negative style signal set 224, and a subjective style engine 230. In some implementations, the style learning engine 160 executes any number of instances of the style signal extractor 210 to generate the positive style signal set 222 based on the positive example set 152 and the negative style signal set 224 based on the negative example set 154. The positive style signal set 222 includes, but is not limited to, different style signal sets for each of the 3D CAD objects included in the positive example set 152. The negative style signal set 224 includes, but is not limited to, different style signal sets for each of the 3D CAD objects included in the negative example set 154.
[0058] Style signal extractor 210 can generate a set of style signals for 3D CAD objects in any technically feasible manner. As combined with the following... Figure 3More specifically, in some embodiments, the style signal extractor 210 generates input data for a trained 3D CAD object neural network 120(0) based on 3D CAD objects. In some embodiments, including Figure 2 and Figure 3 In the depicted implementation, style signal extractor 210 stores at least a portion of the input data as a feature map, which is also referred to herein as an "input feature map". In some other implementations, style signal extractor 210 does not generate an input feature map, and this document combines... Figure 2 and Figure 3 The described techniques have been modified accordingly.
[0059] Subsequently, the style signal extractor 210 performs a trained 3D CAD object neural network 120(0) on the input features to generate multiple feature maps, where each feature map corresponds to a different layer in a subset of layers of the trained 3D CAD object neural network 120(0). In some implementations, the style signal extractor 210 ignores the content result set as the output of the last layer of the trained 3D CAD object neural network 120(0), and / or any number of feature maps generated by the trained 3D CAD object neural network 120(0) but not corresponding to any layer in the subset of layers.
[0060] A subset of layers in the trained 3D CAD object neural network 120(0) may include, but is not limited to, any number and / or type of layers in the trained 3D CAD object neural network 120(0) at any hierarchical level. If the trained 3D CAD object neural network 120(0) is a composite neural network, including but not limited to multiple constituent neural networks, then the subset of layers may include, but is not limited to, any number and / or type of layers from the trained 3D CAD object neural network 120(0) and / or any number and / or type of layers from any number of constituent neural networks.
[0061] In some embodiments, the feature map set (not shown) of the 3D CAD object includes, but is not limited to, an associated initial feature map and associated feature maps corresponding to a subset of layers of the trained 3D CAD object neural network 120(0). For illustrative purposes, the feature maps included in the feature map set are associated with different “style layers.” In some embodiments, the input feature map is associated with style layer 1, and the feature maps generated by the trained 3D CAD object neural network 120(0) are associated with style layers 2–L, where L is >2. Therefore, in some embodiments, the subset of layers of the trained 3D CAD object neural network 120(0) includes, but is not limited to, (L-1) layers.
[0062] Style signal extractor 210 generates different style signals for each 3D CAD object in the feature map included in the feature map set to generate a style signal set for the 3D CAD object. In some embodiments, each style signal set includes, but is not limited to, a total of L different style signals, corresponding to style layers 1-L. Style signal extractor 210 can perform any number and / or type of operations on the feature map to generate the corresponding style signal. For example, in some embodiments, style signal extractor 210 performs any number and / or type of masking, normalization, correlation, statistical operations, linear algebra operations, matrix operations, or any other type of mathematical operations on each feature map to generate the corresponding style signal.
[0063] In some implementations, each style signal represents, but is not limited to, one or more aspects of style information associated with a 3D CAD object. For example, in some implementations, each representation in the style signal includes a second-order statistic or correlation between features or activations in a corresponding feature map. In the same or other implementations, the set of style signals provides representations of style aspects of the 3D CAD object at different scales.
[0064] In some implementation schemes, and as combined herein Figures 2 to 5 The style signal used, corresponding to both 3D CAD object a and layer l, is denoted as G. l (a). Therefore, in some implementations, the positive style signal set 222 includes, but is not limited to, {G1(t1),...,G...} L (t1)}–{G1(t N ),...,G L (t N The negative style signal set 224 includes, but is not limited to, {G1(t′1),..,G}. L (t′1)}–{G1(t′ N ),..,G L (t′ N )}.
[0065] As shown in the figure, the subjective style engine 230 generates a style comparison metric 170 based on a positive style signal set 222 and a negative style signal set 224. To generate the style comparison metric 170, the subjective style engine 230 learns the relative importance of style signals corresponding to different style layers based on the positive style signal set 222 and the negative style signal set 224. Advantageously, if the positive example set 152 reflects the target style perceived by an individual user, then the style comparison metric 170 is personalized for the user. The subjective style engine 230 can generate the style comparison metric 170 in any technically feasible manner.
[0066] As shown in the figure, in some implementations, the subjective style engine 230 generates a style comparison metric 170 that quantifies the style distance between two 3D CAD objects. In the same or other implementations, the style comparison metric 170 is an equation used to calculate the style distance between two 3D CAD objects, also referred to herein as a "pair of 3D CAD objects". For illustrative purposes, the style distance between any two 3D CAD objects is denoted herein as D. style (a, b), where a and b denote the two 3D CAD objects. 3D CAD objects a and b can be represented in any technically feasible manner consistent with the style signal extractor 210. For example, in some embodiments, 3D CAD objects a and b are B-rep. In some other embodiments, 3D CAD objects a and b are 3D meshes. In some other embodiments, 3D CAD objects a and b are 3D point clouds.
[0067] In some implementations, the subjective style engine 230 includes, but is not limited to, a parametric style comparison metric 240, a parametric subjective loss 250, an optimization engine 260, subjective weights 270, and a substitution engine 280. The parametric style comparison metric 240 defines a style comparison value between two 3D CAD objects based on the style signal of the 3D CAD objects and any number and / or type of learnable parameters. For example (e.g., style distance, style similarity). Learnable parameters are also referred to as "weights" in this paper. Parametric style comparison metrics can be defined in any technically feasible way to determine any type of style comparison value.
[0068] As shown in the figure, in some implementations, the parametric style comparison metric 240 will D style (a,b) is expressed as a weighted combination of layer-specific style distances corresponding to style layers 1-L. In some implementations, the L different weights are denoted as w1–w in this paper. L Each style layer in style layers 1–L contributes to the style distance between 3D CAD objects a and b. In the same or other implementations, the layer-specific style distances in style layers 1–L between 3D CAD objects a and b are denoted as D1(a,b)–D1(a,b)–D1(b,b). L (a, b). For style layer variable l ranging from 1 to L (inclusive), D l (a,b) reflects the style signal G l (a) and G l (b)
[0069] Parametric style comparison metric 240 can be defined in any technically feasible way.style (a,b) and D l (a,b). As shown in the figure, in some implementations, the parametric style comparison metric 240 is defined by equations (1) and (2) for D. style (a,b) and D l (a,b):
[0070]
[0071]
[0072] In some implementations, the parameterized subjective loss 250 defines the subjective loss associated with the positive example set 152 and the negative example set 154. For illustrative purposes, the parameterized subjective loss 250 is denoted as L in this document. subjective It is worth noting that if the positive example set 152 reflects the target style perceived by an individual user, then the parameterized subjective loss 250 reflects the loss or error in the parameterized style comparison metric 240 perceived by the user. The parameterized subjective loss 250 can be compared with the parameterized style comparison metric 240 (…). For example Subjective loss is defined in any technically feasible manner consistent with the definitions of equations (1) and (2). Parameterized subjective loss is also referred to as "parameterized loss" in this paper.
[0073] In some implementations, the parameterized subjective loss 250 is based on weights w1–w included in the parameterized style comparison metric 240. L Subjective loss is defined using the layer-by-layer energy term. The layer-by-layer energy term is denoted as E1–E L And they correspond to style layers 1–L respectively. As shown in the figure, in some implementations, the parameterized subjective loss 250 is defined by the following equation (3):
[0074]
[0075] The layer-by-layer energy term is defined based on the layer-specific style distance between combinations of 3D CAD objects included in the positive example set 152(T) and the negative example set 154(T'). For each layer associated with a non-zero weight, the subjective loss increases as the layer-specific style distance between two 3D CAD objects from the positive example set 152 increases. For each layer associated with a non-zero weight, the subjective loss decreases as the layer-specific style distance between a 3D CAD object from the positive example set 152 and a 3D CAD object from the negative example set 154 increases.
[0076] In some implementations, to take into account both the positive example set 152 and the negative example set 154, the layer-by-layer energy term is expressed using each possible pair of two 3D CAD objects from the positive example set 152, and each possible pair of one 3D CAD object from the positive example set 152 and one 3D CAD object from the negative example set 154. For example, in some implementations, the layer-by-layer energy term for the style layer variable l, ranging from 1 to L (inclusive), is denoted as E. l And expressed by the following equation (4):
[0077]
[0078] In equation (4), c1 and c2 are normalization constants that can be determined in any technically feasible manner.
[0079] The optimization engine 260 includes weights w1–w in the parameterized subjective loss 250. L To generate subjective weight 270, which is denoted as w in this document. * 1–w * L For illustrative purposes, the vector of subjective weights 270 is also denoted as w in this paper. If the positive example set 152 reflects the target style as perceived by an individual user, then the subjective weights 270 can reflect the importance of different style aspects perceived by the user. The optimization engine 260 can execute any number and / or type of optimization algorithms and / or any number and / or type of optimization operations to optimize the weights included in the parameterized subjective loss 250 according to zero or more constraints.
[0080] As shown in the figure, in some implementations, the optimization engine 260 solves the following equation (5a) according to constraints (5b) and (5c) to generate subjective weights 270:
[0081]
[0082]
[0083] w≥0 (5c)
[0084] In some implementations, the optimization engine 260 imposes constraints (5b) and (5c) to prevent trivial solutions. In the same or other implementations, if the optimization engine 260 imposes constraints (5b) and (5c), the layer-by-layer energy terms E1–E can be sufficiently determined based on the positive example set 152. L This is without considering whether the negative set 154 includes any 3D CAD objects. In the same or other embodiments, the negative set 154 is an empty set, and the second term of equation (4) is omitted. In some other embodiments, and as previously mentioned herein... Figure 1The above, Figure 1 Example engine 140 randomly samples one or more negative examples from the 3D CAD object database 108(0) to reduce the optimization weight w1–w of engine 260. L The risk of overfitting.
[0085] The optimization engine 260 can solve equation (5a) according to constraints (5b) and (5c) in any technically feasible manner. In some implementations, because E l Since w is a constant, equation (5a) is a linear combination, and therefore the intersection of equation (5a) and the hyperplane corresponding to equation (5b) leads to a quadratic differentiable convex optimization solved by the optimization engine 260 using sequential least squares quadratic programming.
[0086] The replacement engine 280 will include the weights w1–w in the parameterized style comparison metric 240. L Set to equal subjective weight 270w respectively * 1–w * L Optionally, any number and / or type of simplification operations are performed on the parameterized style comparison metric 240 to generate the style comparison metric 170. For example, in some implementations, if the optimization engine 260 determines w * =[0,0,0,1,0,0,0] T Then the optimization engine 260 can determine D. style (a,b) = D4(a,b).
[0087] Figure 3 It is based on various implementation plans. Figure 2 A more detailed illustration of the style signal extractor 210. As previously illustrated in this article... Figure 2 In some embodiments, the style learning engine 160 executes any number of instances of the style signal extractor 210 to generate a positive style signal set 222 based on the positive example set 152 and a negative style signal set 224 based on the negative example set 154. In the same or other embodiments, the style comparison application 180 executes any number of instances of the style signal extractor 210 to generate different style signal sets for each of at least two 3D CAD objects. (The following is in conjunction with...) Figure 4 A more detailed description of the style comparison application 180 based on some implementation schemes.
[0088] In some implementations, the style signal extractor 210 can generate a different set of style signals for each of any number of 3D CAD objects. Each of the 3D CAD objects can be represented in any technically feasible manner. For example, in some implementations, each 3D CAD object is a B-rep. In some other implementations, each 3D CAD object is a 3D mesh. In some other implementations, each 3D CAD object is a 3D point cloud.
[0089] As previously mentioned in this article Figure 2 In some embodiments, to generate a style signal set for 3D CAD objects, the style signal extractor 210 executes a trained 3D CAD object neural network 120(0) to map the 3D CAD objects to (L-1) feature maps. In the same or other embodiments, to generate a style signal set for multiple 3D CAD objects, the style signal extractor 210 executes any number of instances of the trained 3D CAD object neural network 120 to map each of the 3D CAD objects to (L-1) feature maps.
[0090] The trained 3D CAD object neural network 120(0) can be any type of neural network that processes each of any number and / or type of 3D CAD objects in any technically feasible manner to generate any number and / or type of corresponding content result sets. In some embodiments, the trained 3D CAD object neural network can be any type of trained encoder or any type of trained classifier. For example, in some embodiments, the trained 3D CAD object neural network 120(0) can be a trained B-rep encoder or a trained UV-net encoder that generates a set of content embeddings corresponding to B-rep. In some other embodiments, the trained 3D CAD object neural network 120(0) can be any type of trained 3D CAD object encoder that generates a set of content embeddings corresponding to 3D meshes or 3D point clouds. In some other embodiments, the trained 3D CAD object neural network 120(0) can be any type of trained 3D CAD object classifier that generates content classifications corresponding to any other technically feasible representation of a B-rep, 3D mesh, 3D point cloud, or 3D CAD object. In some implementations, the trained 3D CAD object neural network can be a composite neural network, which includes, but is not limited to, multiple component neural networks.
[0091] For illustrative purposes only, Figure 3The function of the style signal extractor 210 is depicted and described in the context of some embodiments, where each 3D CAD object is a B-rep, the trained 3D CAD object neural network 120(0) is a trained UV-net encoder, and the style signal extractor 210 performs a single instance of the trained UV-net encoder to map the B-rep 302 labeled 'a' to six feature maps. In some embodiments, the trained UV-net encoder is pre-trained using an unsupervised learning technique that does not require labeled training data. Therefore, unlike prior art methods, the disclosed technique can be used to compare the geometric styles of multiple pairs of different 3D CAD objects represented by B-rep, thereby increasing the accuracy of geometric style comparisons relative to prior art.
[0092] As shown in the figure, in some embodiments, the style signal extractor 210 includes, but is not limited to, a parameter domain graph application 310, a UV-net representation 320, a trained 3D CAD object neural network 120(0) as an instance of a UV-net encoder, a face recentering engine 342, an instance normalization engine 344, a normalized feature map atlas 350, a style signal engine 360, and a style signal set 370. For illustrative purposes, the trained 3D CAD object neural network 120(0) is depicted as part of the style signal extractor 210. In some embodiments, the trained 3D CAD object neural network 120(0) is integrated into the style signal extractor 210 in any technically feasible manner. In some other embodiments, the trained 3D CAD object neural network 120(0) is a standalone application. In the same or other embodiments, the style signal extractor 210 and the trained 3D CAD object neural network 120(0) can interact in any technically feasible manner.
[0093] In some implementations, the parameter domain graph application 310 converts the B-rep 302a into a UV-net representation 320. The UV-net representation 320 describes salient aspects of the 3D CAD object represented by the B-rep 302a. The UV-net representation 320 includes, but is not limited to, a face adjacency graph 324, two-dimensional (2D) UV grids 322(1)–322(F) (where F can be any positive integer), and optionally a one-dimensional (1D) UV grid. The 2D UV grids 322(1)–322(F) are the node attributes of the face adjacency graph 324. Any 1D UV grid is an edge attribute of the face adjacency graph 324. For illustrative purposes, Figure 3 The 1D UV grid is not depicted, and it is not in Figure 3 The description in the middle is not combined Figure 3Describe any corresponding part of the UV network encoder.
[0094] In some implementations, each 2D UV grid is a regular 2D grid of samples, where each sample corresponds to a grid point in the parametric domain of an associated parametric surface and has an additional set of surface features. As shown in the figure, in some implementations, each 2D UV grid is a 10×10 UV grid of samples. In the same or other implementations, each set of sample features includes, but is not limited to, 3D point locations in the geometric domain, optionally 3D surface normals, and visibility markers.
[0095] In some implementations, each 3D point location is a set of three values representing the absolute 3D point coordinates within a specified geometric domain. For example (xyz). In the same or other embodiments, each 3D surface normal is a set of three values that specify the 3D absolute surface normal. In some embodiments, each visibility flag is zero or one. If a given sample is located in the visible region of the corresponding surface, the parameter domain graph application 310 sets the visibility flag corresponding to the sample to one. Otherwise, the parameter domain graph application 310 sets the visibility flag corresponding to the sample to zero. The visibility flag is also referred to herein as a “trimming mask”.
[0096] In the same or other implementations, within the context of a trained UV-net encoder, the number of input channels is equal to the number of values included in each surface feature set. Therefore, in some implementations, each of the 2D UV grids 322(1)-322(F) specifies a value at one hundred grid points in the associated parameter domain for each of the seven channels.
[0097] As shown in the figure, in some embodiments, the style signal extractor 210 generates a feature set or "input feature set" corresponding to style layer 1 based on a 2D UV grid 322(1)–322(F). The style signal extractor 210 can generate the input feature set in any technically feasible manner. In the same or other embodiments, the style signal extractor 210 inputs a two-dimensional (2D) UV grid 322(1)–322(F) and a face adjacency graph 324 into, but not limited to, a trained UV-net encoder. In response, the trained UV-net encoder generates, but not limited to, multiple feature sets and a content result set 308. In some embodiments, the content result set 308 is a content embedding set. In some embodiments, the style signal extractor 210 ignores zero or more of the feature sets and / or content result sets 308.
[0098] As shown in the figure, in some implementations, the trained UV-net encoder includes, but is not limited to, a trained surface encoder 332 and a trained graph encoder 334. The trained surface encoder 332 is a trained surface CNN that maps a 2D UV grid 322(1)-322(F) to, but not limited to, one or more feature sets and node feature vectors (not shown). The trained graph encoder 334 is a graph neural network that maps, but not limited to, a surface adjacency graph 324 and node feature vectors to node embeddings (not shown), shape embeddings (not shown), or both. The trained UV-net encoder outputs node embeddings, shape embeddings, or both as a content result set 308.
[0099] As shown in the figure, in some embodiments, the trained surface encoder 332 includes, but is not limited to, the following sequence: three 2D convolutional layers, each labeled "Conv2D", followed by a 2D pooling layer labeled "Pool2D", and then a fully connected layer labeled "FC". In some other embodiments, the number and / or type of layers in the surface encoder 332 may vary, and the techniques described herein are modified accordingly. In some embodiments, each of the 2D convolutional layers generates and outputs a different feature set. For illustrative purposes, the output of the first 2D convolutional layer corresponds to the feature set of style layer 2, the output of the second 2D convolutional layer corresponds to the feature set of style layer 3, the output of the third 2D convolutional layer corresponds to the feature set of style layer 4, and the output of the fully connected layer corresponds to the feature set of style layer 5, along with the associated node feature vectors.
[0100] As shown in the figure, in the same or other embodiments, the trained graph encoder 334 includes, but is not limited to, the following sequence: two graph isomorphic network (GIN) layers, each labeled "GIN", followed by a fully connected layer labeled "FC", and then a max-pooling layer labeled "MaxPool". In some other embodiments, the number and / or type of layers in the trained graph encoder 334 may vary, and the techniques described herein are modified accordingly. In some embodiments, each of the GIN layers generates and outputs a different feature set. For interpretive purposes, the output of the first GIN layer corresponds to the feature set of style layer 6, and the output of the second GIN layer corresponds to the feature set of style layer 7.
[0101] In some implementations, the face recentering engine 342 processes each of the feature maps that group the samples into faces to generate a corresponding normalized feature map included in the normalized feature map set 350. In the same or other implementations, the instance normalization engine 344 processes each of the remaining feature maps to generate a corresponding normalized feature map included in the normalized feature map set 350. In some implementations, 3D CAD objects are represented as 3D meshes or 3D point clouds instead of B-rep. In some such implementations, the face recentering engine 342 is omitted because 3D meshes or 3D point clouds cannot be grouped by face in the feature map.
[0102] For illustrative purposes, as used in this article:
[0103] Φ l (a) A normalized feature map corresponding to 3D CAD object a
[0104] This indicates the normalized maskless feature of input channel i at position j in style layer 1.
[0105] Indicates the normalized activation of filter i at position j in style layer l>1.
[0106] Where d l and N l The number of input channels in Style Layer 1 that do not include the trimmed mask channel and the maskless sample, respectively.
[0107] Where d l and N l These represent the number of dissimilar filters and the number of maskless samples in style layer l>1, respectively.
[0108] As shown in the figure, in some implementations, the surface recentering engine 342 processes the feature maps corresponding to style layers 1-4 to generate maps labeled as follows: The normalized feature maps 352(1)-352(4). In some implementations, the face recentering engine 342 masks the samples and associated features in the input feature map (corresponding to style layer 1) relative to the positions on the curved surfaces of the trimmed faces that are not located according to the trimmed mask. For each of the unmasked features in the input feature map and the activations in the feature maps corresponding to style layers 2-4, the face recentering engine 342 recenters the UV sample points face by face ( For example(subtract its mean) to generate normalized feature maps 352(1)-352(4). In this way, the face recentering engine 342 performs normalization of each face instance without dividing by the standard deviation to generate normalized feature maps 352(1)-352(4).
[0109] In the same or other implementations, instance normalization engine 344 processes feature maps corresponding to style layers 5-7 to generate respectively labeled as The normalized feature maps 352(5)-352(7) are generated. Each of the feature maps corresponding to style layers 5-7 includes, but is not limited to, a single vector for each face. Therefore, the instance normalization engine 344 applies instance normalization across the feature maps corresponding to style layers 5-7 to generate normalized feature maps 352(5)-352(7).
[0110] In some implementations, the style signal engine 360 generates a style signal set 370 based on a normalized feature map set 350. More specifically, for each normalized feature map where the variable style layer l ranges from 1 to L (inclusive of endpoints). Style Signal Engine 360 generates style signal G l (a). As previously mentioned in this article Figure 2 Each style signal represents, but is not limited to, one or more aspects of style information associated with a 3D CAD object a. In the same or other embodiments, the style signal set 370 provides representations of the style aspects of the 3D CAD object at different scales. The style signal engine 360 can generate each style signal in any technically feasible manner.
[0111] As shown in the figure, in some implementations, for each normalized feature map included in the normalized feature map set 350, the style signal engine 360 extracts the normalized flat upper triangle of the Gram matrix of the normalized feature map to generate a style signal. The style signal engine 360 precisely normalizes the normalized flat upper triangle of the Gram matrix of the feature map in any technically feasible manner. As shown in the figure, in some implementations, the style signal engine 360 is precisely denoted as Φ. l (a) The normalized flat upper triangular Gram matrix of the normalized eigenmap is generated by the following equation (6) to produce the label G. l (a) Corresponding style signal:
[0112] G l (a)=triu(Φ l (a)Φ l (a) T For l = 1 - L (6)
[0113] As shown in the figure, in some implementation schemes, the normalized feature map set 350 includes, but is not limited to, those labeled as The normalized feature maps 352(1)-352(7) are used. In the same or other embodiments, the style signal engine 360 applies equation (6) to each of the feature maps 352(1)-352(7) to generate style signals 372(1)-372(7) (denoted as G1(a)–G7(a) respectively). Therefore, the style signal set 370 includes, but is not limited to, style signals 372(1)-372(7).
[0114] Those skilled in the art will recognize that, in some embodiments, style signals 372(1)-372(7) represent second-order statistics of the correlation between features or activations in normalized feature maps 352(1)-352(7). In the same or other embodiments, style signal 372(1) simulates local curvature ( For example The distribution of flat / saddle-shaped / double-curved surfaces, and the subsequent style signals 372(2)-352(7) simulate higher-order curvatures ( For example The distribution of the S-shape leads to the correlation of low-level feature patterns, which in turn leads to the content.
[0115] As shown in the figure, style signal extractor 210 outputs a style signal set 370. In some embodiments, as depicted by the dashed arrows, in addition to the style signal set 370, style signal extractor 210 also outputs a sample set 328 and / or a normalized feature map set 350. In the same or other embodiments, the sample set 328 includes, but is not limited to, maskless input features included in the input feature map. As combined below Figure 6 In more detail, in some implementations, instances of sample set 328 and / or instances of normalized feature map set 350 facilitate the visualization of style gradients.
[0116] Comparing the styles of 3D CAD objects
[0117] Figure 4 It is based on various implementation plans. Figure 1 A more detailed illustration of the style comparison application 180 is provided. The style comparison application 180 can perform any number and / or type of operations to automatically evaluate the style of any number of 3D CAD objects based on applying style comparison metric 170 to multiple pairs of 3D CAD objects. Although not shown, in some embodiments, different instances of the style comparison application 180 may compare the same or different 3D CAD objects based on different style comparison metrics. In the same or other embodiments, different style comparison metrics may reflect different style perceptions.
[0118] Style comparison application 180 can determine the 3D CAD objects to be evaluated and the number and / or type of evaluations to be performed in any technically feasible manner. As shown in some embodiments, style comparison application 180 generates a style evaluation GUI 182 that allows the user to specify any number and / or type of evaluations to be performed in any technically feasible manner. In the same or other embodiments, style evaluation GUI 182 enables style comparison application 180 to display any number and / or type of evaluation results in any technically feasible manner.
[0119] For illustrative purposes, in the context of responding to a command that displays ten other shapes in the 3D CAD object database 108(1) that are most similar in shape to the 3D CAD object 402(0), combined with Figure 4 The functionality of the depiction and description style comparison application 180. In the same or other embodiments, the 3D CAD object database 108(1) includes, but is not limited to, 3D CAD objects 402(0) and 3D CAD objects 402(1)-402(Q), where Q can be any positive integer. For illustrative purposes, 3D CAD object 402(0) is also referred to herein as a “reference 3D CAD object” and denoted as r. 3D CAD objects 402(1)-402(Q) are also referred to herein as “query 3D CAD objects” and denoted as q1-q respectively. Q .
[0120] As shown in the figure, in some embodiments, the style comparison application 180 includes, but is not limited to, a style signal extractor 210, a style signal set 420, a metric calculation engine 430, metric values 440, and a comparison engine 450. In some embodiments, the style comparison application 180 executes any number of instances of the style signal extractor 210 to generate a style signal set 420 corresponding to 3D CAD objects 402(0)-402(Q). The functionality of the style signal extractor 210 has been previously described herein. Figure 2 and Figure 3 A detailed description is provided. As shown in the figure, the style signal set 420 includes, but is not limited to, different signal style sets for each of the 3D CAD objects 402(0)–402(Q). More precisely, the style signal set 420 includes, but is not limited to, {G1(r),...,G...} L (r)} and {G1(q1),...,G L (q1)}–{G1(q Q ),...,G L (q Q )}.
[0121] The metric calculation engine 430 applies the style comparison metric 170 to any number of style signal set pairs from the style signal set 420 to calculate the corresponding metric value 440. In some implementations, in response to Figure 4 The described command describes a metric calculation engine 430 applying style comparison metric 170 to calculate a metric value for Q on 3D CAD objects, where each pair includes different 3D CAD objects 402(0) and 402(1)–402(Q). More precisely, the metric calculation engine 430 applies style comparison metric 170 to multiple pairs of signal style sets, each pair including {G1(r),…,G...} L (r)} and {G1(q1),…,G L (q1)}–{G1(q Q ),…,G L (q Q The differences in )} are represented by (r,q1)–(r,q) for generating Q pairs of 3D CAD objects. Q The metric value is 440.
[0122] In some implementations, style comparison metric 170 is D style (a,b) (This article previously combined) Figure 2 (to be described), and in response to Figure 4 The command described is denoted as D by the metric calculation engine 430. style (r,q1)–D style (r,q Q The metric value is 440. It is labeled as D. style (r,q1)–D style (r,q Q The quantization value 440 of the 3D CAD object 402(0) (denoted as r) is respectively compared with the 3D CAD object 402(1)–402(Q) (denoted as q1-q). Q The geometric style distance between each of them.
[0123] The comparison engine 450 can perform any number and / or type of ranking operations, statistical operations, filtering operations, any other type of mathematical operations, plotting operations, any other type of graphical operations, or any combination thereof on any number of metrics 440 and optionally any number of previously generated metrics to generate any number and / or type of evaluation results (not shown).
[0124] In some implementations, in response to Figure 4 The commands described are based on the comparison engine 450, denoted as (r,q1)–(r,q1). QThe comparison engine 450 ranks 3D CAD objects 402(1)–402(Q) using a metric 440 to determine a ranking list of 3D CAD objects 402(1)–402(Q). Based on the ranking list, the comparison engine 450 generates an evaluation result of the ten geometric styles of the specified 3D CAD objects 402(1)–402(Q) that are most similar to the geometric style of 3D CAD object 402(0). For example, in some implementations, if the metric 440 quantifies the geometric style distance between 3D CAD objects 402(0) and 3D CAD objects 402(1)–402(Q), the comparison engine 450 generates an evaluation result of the ten lowest values in the specified, but not limited to, metric 440, and the corresponding subsets of 3D CAD objects 402(1)–402(Q).
[0125] In some implementations, the style comparison application 180 may display any number and / or type of evaluation results via the style evaluation GUI 182, store any number and / or type of evaluation results in any memory, transfer any number and / or type of evaluation results to any number and / or type of software applications, or any combination thereof.
[0126] In some implementations, in response to Figure 4 The style comparison application 180 generates a response to the described command, which, when displayed, graphically depicts the evaluation results corresponding to the command. The style comparison application 180 then displays the response via a style evaluation GUI 182. In some embodiments, the displayed response graphically depicts a subset of the metrics 440 specified in the evaluation results and corresponding subsets of the 3D CAD objects 402(1)-402(Q).
[0127] For explanatory purposes, Figure 4 The style evaluation GUI 182 in the document describes an exemplary response, which includes, but is not limited to, the style comparison metric 170D. style The ten lowest values in metric 440 of (a,b) and the corresponding subsets of 3D CAD objects 402(1)–402(Q). In the exemplary response, the ten lowest values in metric 440 are D values of 0.05. style (r,q 134 ), 0.06 of D style (r,q8), D = 0.06 style (r,q 87 ), 0.07 of D style (r,q 162 ), 0.07 of D style (r,q 32 ), 0.07 of D style (r,q93 ), 0.08 of D style (r,q1), D = 0.08 style (r,q 22 ), 0.08 of D style (r,q 88 ) and 0.08 D style (r,q 11 These correspond to 3D CAD objects 402(134), 402(8), 402(87), 402(162), 402(32), 402(93), 402(1), 402(22), 402(88), and 402(11), respectively. It is worth noting that the response may differ for any other style comparison metric 170.
[0128] As depicted by dashed boxes and dashed arrows, in some embodiments, the style comparison application 180 includes, but is not limited to, a style signal extractor 210, a style signal set 420, a gradient engine 460, optionally a metric calculation engine 430, optionally a metric value 440, and optionally a comparison engine 450. (As combined below) Figure 5 More specifically, in some embodiments, gradient engine 460 generates one or more visualizations of at least one geometric style gradient. As shown in the figure, in the same or other embodiments, gradient engine 460 computes one or more geometric style gradients and generates one or more visualizations of one or more geometric style gradients based on style comparison metric 170, trained 3D CAD object neural network 120(1), sample set, normalized feature map atlas, style signal set, and 3D CAD object. In some other embodiments, gradient engine 460 may compute one or more geometric style gradients and generate one or more visualizations of one or more geometric style gradients based on any amount and / or type of relevant data.
[0129] Visualizing stylistic differences between 3D objects
[0130] Figure 5 It is based on various implementation plans. Figure 4 A more detailed illustration of the gradient engine 460. For any number of pairs of 3D CAD objects, the gradient engine 460 can compute the gradient of the style comparison metric 170 between the pair of 3D CAD objects with respect to one of the 3D CAD objects in the pair, and optionally the gradient of the style comparison metric 170 between the pair of 3D CAD objects with respect to the other 3D CAD object in the pair. The 3D CAD objects can be represented in any technically feasible manner consistent with the style comparison metric 170 and the trained 3D CAD object neural network 120(1).
[0131] The gradient of style comparison metric 170 is also referred to herein as "style gradient" and "geometric style gradient". Although not shown, in some embodiments, different instances of style comparison application 180 may generate style gradients based on different style comparison metrics. In the same or other embodiments, different style comparison metrics may reflect different style perceptions. In some embodiments, gradient engine 460 and / or style comparison application 180 are configured in any technically feasible manner ( example like, Generate any number and / or type of visualizations of any number of style gradients using the Style Evaluation GUI182.
[0132] The style comparison application 180 can determine the style gradient to be computed and / or visualized in any technically feasible manner. (As previously mentioned in this article...) Figure 4 In some embodiments, the style comparison application 180 generates a style evaluation GUI 182. In some embodiments, the style comparison application 180 enables a user to specify, in any technically feasible manner and without limitation, any number and / or type of style gradients to be computed and any number and / or type of style gradient visualizations to be displayed. In the same or other embodiments, the style evaluation GUI 182 enables, in any technically feasible manner and without limitation, the style comparison application 180 and / or gradient engine 460 to display any number and / or type of evaluation results derived from any number and / or type of style gradients, including the visualization of style gradients.
[0133] For explanatory purposes, Figure 5 The functionality of gradient engine 460 is depicted and described in the context of some embodiments, in which gradient engine 460 responds to commands displaying the style distance gradient associated with the trained UV-net encoder between B-rep 502(1) denoted as c and B-rep 502(2) denoted as s. In some embodiments, in response to Figure 5 The command described is denoted as Δ by the gradient engine 460. xyz (c) style gradient 540(1) and denoted as Δ xyz The style gradient of (s) is 540(2). Then, the gradient engine 460 displays the corresponding visualization through the style evaluation GUI 182.
[0134] In some implementations, the gradient engine 460 computes any number of style gradients and displays any number of visualizations corresponding to any number and / or type of style comparison metrics of any number of pairs of 3D CAD objects that can be represented in any technically feasible manner, and the techniques described herein are modified accordingly.
[0135] As shown in the figure, in some implementations, the gradient engine 460 includes, but is not limited to, absolute position set 510(1), absolute position set 510(2), partial derivative engine 520, style gradient 540(1), style gradient 540(2), scaling gradient 550(1), and scaling gradient 550(2). In some implementations, the gradient engine 460 generates absolute position set 510(1) and absolute position set 510(2) based on sample set 328(1) and sample set 328(2), respectively. Sample set 328(1) and sample set 328(2) are different instances of sample set 328 generated by style signal extractor 210. Sample set 328 was previously combined with Figure 3 Describe it.
[0136] In some implementations, the sample set 328(1) includes, but is not limited to, 3D point locations in the geometric domain and, optionally, 3D surface normals of each of the maskless samples in the input feature map derived from B-rep 502(1). Gradient engine 460 extracts the specified 3D point locations from sample set 328(1) to generate absolute location set 510(1). In some implementations, absolute location set 510(1) specifies, but is not limited to, the absolute 3D point location of each of the maskless UV sample points associated with B-rep 502(1). 3D point locations are also referred to herein as “3D locations”. The absolute locations of the UV sample points associated with B-rep 502(1) are uniformly denoted herein as c. xyz .
[0137] In the same or other embodiments, the sample set 328(2) includes, but is not limited to, 3D point locations in the geometric domain and, optionally, 3D surface normals of each of the unmasked UV sample points in the input feature map of B-rep 502(2). Gradient engine 460 extracts the specified 3D point locations from the sample set 328(2) to generate an absolute position set 510(2). In some embodiments, the absolute position set 510(2) specifies, but is not limited to, the absolute 3D point location or 3D position of each of the unmasked UV sample points associated with B-rep 502(2). The absolute position of the UV sample points associated with B-rep 502(2) is uniformly denoted herein as s. xyz .
[0138] As shown in the figure, in some implementations, the partial derivative engine 520 computes style gradient 540(1) and style gradient 540(2). The partial derivative engine 520 may define and compute style gradient 540(1) and style gradient 540(2) in any technically feasible manner. In some implementations, the partial derivative engine 520 defines style gradient 540(1) as a set of vectors representing the different partial derivatives of style comparison metric 170 with respect to each 3D location included in sample set 328(1). In the same or other implementations, the partial derivative engine 520 defines style gradient 540(2) as a set of vectors representing the different partial derivatives of style comparison metric 170 with respect to each 3D location included in sample set 328(2).
[0139] As shown in the figure, in some implementations, style comparison metric 170 is used to calculate the D-values of 3D CAD objects a and b. style The style distance metric for (a,b) is given, and the style gradient 540(1) and style gradient 540(2) can be expressed as the following equations (7a) and (7b), respectively:
[0140]
[0141]
[0142] The partial derivative engine 520 can compute style gradients 540(1) and 540(2) in any technically feasible manner. For example, in some embodiments, the partial derivative engine 520 performs any number and / or type of backpropagation operations on a trained 3D CAD object neural network 120(1) and / or performs any number and / or type of analytical computations based on any number and / or type of relevant data. In some embodiments, the relevant data may include, but is not limited to, style comparison metric 170, absolute position set 510(1), style signal set 528, normalized feature map set 350(1), normalized feature map set 350(2), or any combination thereof.
[0143] As depicted by the dashed line, in some implementations, the style gradient is calculated using the partial derivative engine 520. For example After style gradient 540(1) or style gradient 540(2), the partial derivative engine 520 and / or style comparison application 180 may, in any technically feasible manner, display any part of the style gradient through the style evaluation GUI 182, store any part of the style gradient in any memory, transfer any part of the style gradient to any number and / or type of software application, or any combination thereof.
[0144] As shown in the figure, in some implementations, the gradient engine 460 computes scaling gradients 550(1) and 550(2) based on style gradient 540(1) and style gradient 540(2), respectively. Scaling gradients 550(1) and 550(2) are intended to aid in the visualization of style gradients 540(1) and 540(2), respectively. The gradient engine 460 may compute scaling gradients 550(1) and 550(2) in any technically feasible manner.
[0145] As shown in the figure, in some implementations, the style comparison metric 170 is a style distance metric, and the gradient engine 460 sets the scaling gradient 550(1) to be equal to -k·Δ. xyz (c) and set the scaling gradient 550(2) to be equal to -k·Δ xyz (s), where k is a constant scaling factor designed to increase the visualization effectiveness of scaling gradients 550(1) and 550(2). It is noteworthy that in some embodiments, the direction of the vectors included in scaling gradients 550(1) and 550(2) indicates the direction in which the corresponding UV sample points can be moved in the geometric domain to increase the geometric style similarity of B-rep 502(1) and B-rep 502(2). In the same or other embodiments, the magnitude of the vectors included in scaling gradients 550(1) and 550(2) indicates the relative magnitude of the geometric style dissimilarity between B-rep 502(1) and B-rep 502(2).
[0146] In some implementations, the scaling gradient is calculated in the partial derivative engine 520 ( For example After scaling gradient 550(1) or scaling gradient 550(2), gradient engine 460 and / or style comparison application 180 may generate any number and / or type of visualization based on any part of the scaling gradient, store any part of the scaling gradient in any memory, transfer any part of the scaling gradient to any number and / or type of software application, or any combination thereof.
[0147] As shown in the figure, in some implementations, the gradient engine 460 generates any number and / or type of graphical elements based on at least one of the directions or magnitudes of one or more vectors included in the scaling gradient 550 (1). For example (arrows, lines, etc.). In some implementation schemes, as a reference to... Figure 5 As part of the response to the command described, the graphical representation of gradient engine 460 relative to B-rep 502(1) positions each of the graphical elements within the style evaluation GUI 182 to generate a visualization of style gradient 540(1).
[0148] As shown in the figure, in some implementations, the graphical element is a black line, and the gradient engine 460 will include the vector -k·Δ in the scaling gradient 550(1). xyz (c) Positioned with the absolute position of the UV sample point associated with B-rep 502(1) as the center. Therefore, in Figure 5 In the style evaluation GUI 182 shown, the black line pointing outward from B-rep 502(1) indicates the direction to move the corresponding point to increase the geometric style similarity between B-rep 502(1) and B-rep502(2).
[0149] In the same or other implementations, gradient engine 460 generates any number and / or type of graphical elements based on at least one of the directions or magnitudes of one or more vectors included in scaling gradient 550 (2). For example (Arrows, lines, etc.). Then, the gradient engine 460, in relation to the graphical representation of B-rep 502(2), positions each of the graphical elements within the style evaluation GUI 182 to generate a visualization of the style gradient 540(2). In some implementations, as a representation of... Figure 5 As part of the response to the command described, the graphical representation of gradient engine 460 relative to B-rep 502(2) positions each of the graphical elements within the style evaluation GUI 182 to generate a visualization of style gradient 540(1).
[0150] As shown in the figure, in some implementations, the graphical element is a black line, and the gradient engine 460 will include the vector -k·Δ in the scaling gradient 550(2). xyz (s) is positioned centered on the absolute position of the UV sample point associated with B-rep 502(2). Therefore, in Figure 5 In the style evaluation GUI 182 shown, the black line pointing outward from B-rep 502(2) indicates the direction to move the corresponding point to increase the geometric style similarity between B-rep 502(2) and B-rep502(1).
[0151] Figure 6 This is a flowchart of the method steps for generating style comparison metrics for multiple pairs of different 3D CAD objects, based on various implementation schemes. (Although references...) Figures 1 to 5 The system describes the method steps, but those skilled in the art will understand that any system configured to implement the method steps in any order falls within the scope of this invention.
[0152] As shown in the figure, method 600 begins at step 602, where style learning engine 160 selects one or more 3D CAD objects as positive examples of the target style and zero or more 3D CAD objects as negative examples of the target style. At step 604, for each selected 3D CAD object, style signal extractor 210 determines input data, optionally generates feature maps representing at least a portion of the input data, and executes a trained 3D CAD object neural network 120(0) to map the input data to multiple feature maps.
[0153] At step 606, for each feature map, the style signal extractor 210 performs one or more face recentering operations or one or more instance normalization operations on the feature map to generate a normalized feature map. At step 608, the style signal extractor 210 extracts different style signals from each normalized feature map. At step 610, for each of one or more pairs of positive examples, the subjective style engine 230 calculates the corresponding layer-by-layer energy term based on the corresponding style signal. At step 612, for each of zero or more pairs of one positive example and one negative example, the subjective style engine 230 calculates the corresponding layer-by-layer energy term based on the corresponding style signal.
[0154] At step 614, the subjective style engine 230 determines a parameterized subjective loss 250 based on the layer-by-layer energy term. At step 616, the optimization engine 260 performs one or more optimization operations on the weights included in the parameterized subjective loss to determine subjective weights 270. Subjective weights 270 are also referred to herein as “weight values”. At step 618, the subjective style engine 230 generates a style comparison metric 170 based on the subjective weights 270 and the parameterized style comparison metric 240. Method 600 then terminates.
[0155] Figure 7 This is a flowchart illustrating the steps of a method for comparing the geometric styles of different 3D CAD objects, based on various implementation schemes. (Although references are available...) Figures 1 to 5 The system describes the method steps, but those skilled in the art will understand that any system configured to implement the method steps in any order falls within the scope of this invention.
[0156] As shown in the figure, method 700 begins at step 702, where the style comparison application 180 selects a reference 3D CAD object and one or more query 3D CAD objects. At step 704, for each selected 3D CAD object, the style signal extractor 210 determines the input data, optionally generates a feature map representing at least a portion of the input data, and executes a trained 3D CAD object neural network 120(1) to map the input data to multiple feature maps.
[0157] At step 706, for each feature map, the style signal extractor 210 performs one or more face recentering operations or one or more instance normalization operations on the feature map to generate a normalized feature map. At step 708, the style signal extractor 210 extracts different style signals from each normalized feature map. At step 710, for each queried 3D CAD object, the metric calculation engine 430 calculates a metric based on the corresponding style signal, the style signal corresponding to the reference 3D CAD object, and the style comparison metric 170 associated with the trained 3D CAD object neural network 120(1).
[0158] At step 712, the comparison engine 450 optionally performs any number and / or type of evaluation operations based on metrics to determine any number and / or type of evaluation results. At step 714, the comparison engine 450 and / or the style comparison application 180 optionally updates the GUI based on metrics and / or one or more evaluation results to visually quantify the style similarity and / or style difference between the reference 3D CAD object and one or more of the query 3D CAD objects. Method 700 then terminates.
[0159] Figure 8 This is a flowchart of one or more visual method steps for generating at least one geometric style gradient for a pair of different 3D CAD objects, according to various implementation schemes. (Although references are available...) Figures 1 to 5 The system describes the method steps, but those skilled in the art will understand that any system configured to implement the method steps in any order falls within the scope of this invention.
[0160] As shown in the figure, method 800 begins at step 802, where gradient engine 460 receives a command to compute one or more gradients of style comparison metric 170 of two 3D CAD objects with respect to at least a first 3D CAD object. At step 804, gradient engine 460 uses a trained 3D CAD object neural network 120(1) associated with style comparison metric 170 to generate a feature map set corresponding to samples of the first 3D CAD object. At step 806, gradient engine 460 uses the trained 3D CAD object neural network 120(1) associated with style comparison metric 170 to generate a feature map set corresponding to samples of the second 3D CAD object.
[0161] At step 808, for each feature map, the style signal extractor 210 performs one or more face recentering operations or one or more instance normalization operations on the feature map to generate a normalized feature map. At step 808, the style signal extractor 210 extracts different style signals from each normalized feature map. At step 810, for each queried 3D CAD object, the metric calculation engine 430 calculates a metric based on the corresponding style signal, the style signal corresponding to the reference 3D CAD object, and the style comparison metric 170 associated with the trained 3D CAD object neural network 120(1).
[0162] At step 812, for each normalized feature map, gradient engine 460 extracts the normalized flat upper triangle of the Gram matrix of the normalized feature map to generate the corresponding style signal. At step 814, gradient engine 460 calculates the partial derivative of style comparison metric 170 with respect to the absolute position of each maskless template of the first 3D CAD object to generate a first style gradient. At step 816, gradient engine 460 optionally calculates the partial derivative of style comparison metric 170 with respect to the absolute position of each maskless template of the second 3D CAD object to generate a second style gradient. At step 816, gradient engine 460 updates the GUI to display a visualization of the first style gradient with respect to the first 3D CAD object and optionally displays a visualization of the second style gradient with respect to the second 3D CAD object. Method 800 then terminates.
[0163] In summary, the disclosed techniques can be used to generate personalized style comparison metrics, compare the geometric styles of multiple pairs of 3D CAD objects, and generate visualizations of the gradients of the style comparison metrics with respect to the 3D CAD objects. In some implementations, the training application generates a style distance metric based on at least two user-selected B-reps as positive examples of geometric styles, zero or more user-selected B-reps as negative examples of geometric styles, and a B-rep encoder. In the same or other implementations, to mitigate the risk of overfitting the style distance metric, the training application randomly selects additional negative examples of geometric styles from the B-rep training database. The B-rep encoder is pre-trained using unsupervised learning techniques. To generate a style distance metric for the user, the training application optimizes the weights in the parameterized style distance metric associated with the B-rep encoder based on the positive and negative examples. The subjective weights reflect the relative importance of style signals associated with different layers of the B-rep encoder to the user. Each style signal is a normalized flat upper triangular Gram matrix simulating the feature correlation of the associated layers.
[0164] In some implementations, the style comparison application uses a style distance metric and a B-rep encoder to calculate the style distance between a reference B-rep and any number of query B-rep. For each B-rep, the style comparison application uses the B-rep encoder to calculate the style signal included in the style distance metric. For each query B-rep, the style comparison application uses the style distance metric to calculate the style distance between the reference B-rep and the query B-rep based on the style signals of both the reference B-rep and the query B-rep. The style comparison application performs any number and / or type of filtering, ranking, any other comparison operations, or any combination thereof on the query B-rep based on the corresponding style distances. The style comparison application can visually display the results via a style evaluation GUI.
[0165] In the same or other implementations, the style comparison application generates a visualization of the gradient of the style distance metric between two B-reps with respect to the B-reps. For each of the B-reps, the style comparison application computes the partial derivative of the style distance metric with respect to the 3D absolute position of each maskless sample in the B-rep to generate the gradient of the style distance metric with respect to the B-rep. The style comparison application multiplies the gradient by a negated constant scaling factor to generate a scaled gradient suitable for visualization. Through the style evaluation GUI, the style comparison application superimposes each vector of each scaled gradient onto the 3D absolute position of the associated B-rep to indicate the direction in which corresponding sample points can be moved to increase the style similarity between the two B-reps.
[0166] At least one technical advantage of the disclosed technique over existing techniques lies in its implementation of a few-shot learning method to generate effective personalized style comparison metrics for multiple pairs of different 3D CAD objects. In this regard, the disclosed technique can learn the relative importance of different items to geometric style in a parametric style comparison metric perceived by a single user using as few as two user-specified examples of 3D CAD objects with similar styles. Furthermore, the items in the parametric style comparison metric can be derived from data generated by a neural network trained to process B-reps using unsupervised techniques that do not require labeled training data. Therefore, unlike existing methods, the disclosed technique can be used to compare the geometric styles of multiple pairs of different 3D CAD objects represented by B-reps, thereby increasing the accuracy of geometric style comparisons compared to existing techniques. These technical advantages provide one or more technological advancements superior to existing methods.
[0167] 1. In some embodiments, a computer-implemented method for generating style comparison metrics for multiple pairs of different three-dimensional (3D) computer-aided design (CAD) objects, the method comprising: executing one or more trained neural networks to map multiple 3D CAD objects to multiple feature maps; calculating multiple style signals based on the multiple feature maps; determining multiple values of multiple weights based on the multiple style signals; and generating the style comparison metrics based on the multiple weights and a parameterized style comparison metric.
[0168] 2. The computer implementation method as described in Clause 1, wherein a first 3D CAD object among the plurality of 3D CAD objects includes a positive example of the target style.
[0169] 3. The computer implementation method as described in Clause 1 or 2, wherein a second 3D CAD object among the plurality of 3D CAD objects includes a negative example of the target style.
[0170] 4. The computer-implemented method as described in any one of clauses 1 to 3, further comprising: randomly selecting a first 3D CAD object from a dataset of 3D CAD objects and including the first 3D CAD object among the plurality of 3D CAD objects; and designating the first 3D CAD object as a negative instance of the target style.
[0171] 5. A computer-implemented method as described in any one of clauses 1 to 4, wherein determining the plurality of values of the plurality of weights comprises: generating a parameterized loss based on the plurality of style signals and the plurality of weights; and performing one or more optimization operations on the parameterized loss to determine the plurality of values of the plurality of weights.
[0172] 6. A computer implementation of the method as described in any one of clauses 1 to 5, wherein calculating the plurality of style signals comprises: performing one or more face recentering operations on a first feature map included in the plurality of feature maps to generate a first normalized feature map; and extracting at least a portion of the Gram matrix of the first normalized feature map to generate a first style signal included in the plurality of style signals.
[0173] 7. A computer-implemented method as described in any one of clauses 1 to 6, wherein generating the style comparison metric includes replacing a first weight specified in the parametric style comparison metric and included in the plurality of weights with a first value included in the plurality of values.
[0174] 8. The computer implementation method as described in any one of clauses 1 to 7, wherein the trained neural network includes a trained UV-net encoder, and further comprises: generating a first UV-net representation based on a first B-rep representing a first 3D CAD object included in the plurality of 3D CAD objects; and inputting the first UV-net representation into the trained UV-net encoder.
[0175] 9. A computer-implemented method as described in any one of Clauses 1 to 8, wherein the representation of a first 3D CAD object among the plurality of 3D CAD objects includes a boundary representation (B-rep), a 3D mesh, or a 3D point cloud.
[0176] 10. A computer implementation method as described in any one of clauses 1 to 9, wherein the trained neural network includes a trained encoder or a trained classifier.
[0177] 11. In some embodiments, one or more non-transitory computer-readable media include instructions that, when executed by one or more processors, cause the one or more processors to generate a style comparison metric for multiple pairs of different three-dimensional (3D) computer-aided design (CAD) objects by performing the following steps: executing one or more trained neural networks to map multiple 3D CAD objects to multiple feature maps; calculating multiple style signals based on the multiple feature maps; determining multiple values of multiple weights based on the multiple style signals; and generating the style comparison metric based on the multiple weights and a parameterized style comparison metric.
[0178] 12. One or more non-transitory computer-readable media as described in Clause 11, including a first 3D CAD object among the plurality of 3D CAD objects comprising a user-specified positive example of a target style.
[0179] 13. One or more non-transitory computer-readable media as described in Clause 11 or 12, including a second 3D CAD object among the plurality of 3D CAD objects comprising a negative example of the target style.
[0180] 14. One or more non-transitory computer-readable media as described in any one of clauses 11 to 13, further comprising: randomly selecting a first 3D CAD object from a dataset of 3D CAD objects and including the first 3D CAD object among the plurality of 3D CAD objects; and designating the first 3D CAD object as a negative instance of the target style.
[0181] 15. One or more non-transitory computer-readable media as described in any one of clauses 11 to 14, wherein determining the plurality of values of the plurality of weights comprises: generating a parameterized loss based on the plurality of style signals and the plurality of weights; and performing one or more optimization operations on the parameterized loss to determine the plurality of values of the plurality of weights.
[0182] 16. One or more non-transitory computer-readable media as described in any one of clauses 11 to 15, wherein computing the plurality of style signals comprises: performing one or more instance normalization operations on a first feature map included in the plurality of feature maps to generate a first normalized feature map; and extracting at least a portion of the Gram matrix of the first normalized feature map to generate a first style signal included in the plurality of style signals.
[0183] 17. One or more non-transitory computer-readable media as described in any of clauses 11 to 16, wherein generating the style comparison metric includes replacing a first weight specified in the parameterized style comparison metric and included in the plurality of weights with a first value included in the plurality of values.
[0184] 18. One or more non-transitory computer-readable media as described in any one of clauses 11 to 17, wherein the trained neural network includes a trained surface encoder and a trained graph encoder.
[0185] 19. One or more non-transitory computer-readable media as described in any of clauses 11 to 18, including a representation of a first 3D CAD object among the plurality of 3D CAD objects comprising a boundary representation (B-rep), a 3D mesh, or a 3D point cloud.
[0186] 20. In some embodiments, a system includes: one or more memories storing instructions; and one or more processors coupled to the one or more memories, the one or more processors performing the following steps when executing the instructions: executing one or more trained neural networks to map a plurality of 3DCAD objects to a plurality of feature maps; calculating a plurality of style signals based on the plurality of feature maps; determining a plurality of values for a plurality of weights based on the plurality of style signals; and generating a style comparison metric based on the plurality of weights and a parameterized style comparison metric.
[0187] Any and all combinations of any element of any claim and / or any element described in this application, in any manner, fall within the scope of the invention and protection.
[0188] Descriptions of various embodiments have been presented for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments.
[0189] Various aspects of the embodiments of this invention may be embodied as systems, methods, or computer program products. Therefore, aspects of this disclosure may take the form of a completely hardware implementation, a completely software implementation (including firmware, resident software, microcode, etc.), or an implementation combining software and hardware aspects, all of which are generally referred to herein as “modules” or “systems.” Furthermore, any hardware and / or software technology, process, function, component, engine, module, or system described in this disclosure may be implemented as a circuit or a set of circuits. Additionally, aspects of this disclosure may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program code embodied thereon.
[0190] Any combination of one or more computer-readable media may be used. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or apparatuses, or any suitable combination of the foregoing. More specific examples (not an exhaustive list) of computer-readable storage media will include: an electrical connection having one or more wires, a portable computer floppy disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable optical disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium can be any tangible medium that can contain or store programs for use by or in connection with an instruction execution system, device, or apparatus.
[0191] The foregoing description of various aspects of this disclosure includes flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It will be understood that each block in the flowchart illustrations and / or block diagrams, as well as combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine. When executed by the processor of the computer or other programmable data processing apparatus, the instructions enable the implementation of the functions / actions specified in one or more blocks of the flowchart illustrations and / or block diagrams. Such processors can be, but are not limited to, general-purpose processors, special-purpose processors, application-specific processors, or field-programmable gate arrays.
[0192] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code comprising one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in some alternative implementations, the functions indicated in the blocks may not occur in the order shown in the drawings. For example, two blocks shown consecutively may actually be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a system based on dedicated hardware or a combination of dedicated hardware and computer instructions that performs the specified functions or actions.
[0193] While the foregoing relates to embodiments of this disclosure, other and additional embodiments of this disclosure may be conceived without departing from the essential scope of this disclosure, the scope of which is defined by the following claims.
Claims
1. A computer-based method for generating style comparison metrics for multiple pairs of different 3D computer-aided design (CAD) objects, the method comprising: The trained neural network is executed once or multiple times to map the input of the trained neural network, which includes multiple 3D CAD objects, to the output of the trained neural network, which includes multiple feature maps, wherein the trained neural network is generated using an unsupervised learning technique that does not receive labeled training data as input; Multiple style signals are calculated based on the multiple feature maps; Multiple values of multiple weights are determined based on the multiple style signals, wherein the parameterized style comparison metric is combined based on multiple style distances of the multiple weights; and The style comparison metric is generated based on the multiple weights and the parameterized style comparison metric.
2. The computer implementation method of claim 1, wherein a first 3D CAD object among the plurality of 3D CAD objects includes a positive example of the target style.
3. The computer implementation method of claim 2, wherein a second 3D CAD object among the plurality of 3D CAD objects includes a negative example of the target style.
4. The computer implementation method as described in claim 1, further comprising: Randomly select a first 3D CAD object from the dataset of 3D CAD objects and include the first 3D CAD object in the plurality of 3D CAD objects; as well as Specify the first 3D CAD object as a negative instance of the target style.
5. The computer implementation method of claim 1, wherein determining the plurality of values of the plurality of weights comprises: A parameterized loss is generated based on the multiple style signals and the multiple weights; as well as Perform one or more optimization operations on the parameterized loss to determine the plurality of values for the plurality of weights.
6. The computer implementation method of claim 1, wherein calculating the plurality of style signals comprises: Perform one or more face recentering operations on the first feature map included in the plurality of feature map maps to generate a first normalized feature map map; as well as At least a portion of the Gram matrix of the first normalized feature map is extracted to generate a first style signal included in the plurality of style signals.
7. The computer implementation method of claim 1, wherein generating the style comparison metric includes replacing a first weight specified in the parameterized style comparison metric and included in the plurality of weights with a first value included in the plurality of values.
8. The computer implementation method of claim 1, wherein the trained neural network includes a trained encoder neural network configured to map boundary representations (B-rep) comprising the plurality of 3D CAD objects to the plurality of feature maps, and further includes: The first representation is generated based on the first B-rep of the first 3D CAD object, which represents the first of the plurality of 3D CAD objects; as well as The first representation is input into the trained encoder neural network.
9. The computer-implemented method of claim 1, wherein the representation of the first 3D CAD object among the plurality of 3D CAD objects includes a boundary representation B-rep, a 3D mesh, or a 3D point cloud.
10. The computer implementation method of claim 1, wherein the trained neural network includes a trained encoder or a trained classifier.
11. One or more non-transitory computer-readable media, comprising instructions that, when executed by one or more processors, cause the one or more processors to generate a style comparison metric for multiple pairs of different 3D computer-aided design (CAD) objects by performing the following steps: The trained neural network is executed once or multiple times to map the input of the trained neural network, which includes multiple 3D CAD objects, to the output of the trained neural network, which includes multiple feature maps, wherein, The trained neural network is generated using an unsupervised learning technique that does not receive labeled training data as input; Multiple style signals are calculated based on the multiple feature maps; Multiple values of multiple weights are determined based on the multiple style signals, wherein the parametric style comparison metric is combined based on multiple style distances of the multiple weights; as well as The style comparison metric is generated based on the multiple weights and the parameterized style comparison metric.
12. One or more non-transitory computer-readable media as claimed in claim 11, wherein a first 3D CAD object among the plurality of 3D CAD objects includes a user-specified positive example of a target style.
13. One or more non-transitory computer-readable media as claimed in claim 12, wherein a second 3D CAD object among the plurality of 3D CAD objects includes a negative example of the target style.
14. The one or more non-transitory computer-readable media as claimed in claim 11, further comprising: Randomly select a first 3D CAD object from the dataset of 3D CAD objects and include the first 3D CAD object in the plurality of 3D CAD objects; as well as Specify the first 3D CAD object as a negative instance of the target style.
15. One or more non-transitory computer-readable media as claimed in claim 11, wherein determining the plurality of values of the plurality of weights comprises: A parameterized loss is generated based on the multiple style signals and the multiple weights; as well as Perform one or more optimization operations on the parameterized loss to determine the plurality of values for the plurality of weights.
16. The one or more non-transitory computer-readable media of claim 11, wherein calculating the plurality of style signals comprises: Perform one or more instance normalization operations on the first feature map included in the plurality of feature map maps to generate a first normalized feature map map; as well as At least a portion of the Gram matrix of the first normalized feature map is extracted to generate a first style signal included in the plurality of style signals.
17. One or more non-transitory computer-readable media as claimed in claim 11, wherein generating the style comparison metric includes replacing a first weight specified in the parameterized style comparison metric and included in the plurality of weights with a first value included in the plurality of values.
18. One or more non-transitory computer-readable media as claimed in claim 11, wherein the trained neural network comprises a trained surface encoder and a trained graph encoder.
19. The one or more non-transitory computer-readable media of claim 11, wherein the representation of a first 3D CAD object among the plurality of 3D CAD objects includes a boundary representation B-rep, a 3D mesh, or a 3D point cloud.
20. A system comprising: One or more memories, wherein the one or more memories store instructions; as well as One or more processors coupled to the one or more memories, wherein the one or more processors perform the following steps when executing the instructions: The trained neural network is executed once or multiple times to map the input of the trained neural network, which includes multiple 3D CAD objects, to the output of the trained neural network, which includes multiple feature maps, wherein the trained neural network is generated using an unsupervised learning technique that does not receive labeled training data as input; Multiple style signals are calculated based on the multiple feature maps; Multiple values of multiple weights are determined based on the multiple style signals, wherein the parameterized style comparison metric is combined based on multiple style distances of the multiple weights; and A style comparison metric is generated based on the multiple weights and the parameterized style comparison metric.
Citation Information
Patent Citations
Training neural networks to detect similar three-dimensional objects using fuzzy identification
US20190164055A1
Method of extracting features from three-dimensional geometric data
US5982923A