3D cluster navigation

By employing multi-level clustering and signature similarity analysis, this method solves the problem of low efficiency in 3D object classification in existing technologies, achieving efficient and accurate automatic or semi-automatic classification of 3D objects, which is suitable for 3D object management in industrial fields.

CN114429169BActive Publication Date: 2026-07-10DASSAULT SYSTEMES SA

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
DASSAULT SYSTEMES SA
Filing Date
2021-10-15
Publication Date
2026-07-10

Smart Images

  • Figure CN114429169B_ABST
    Figure CN114429169B_ABST
Patent Text Reader

Abstract

The invention particularly relates to a computer-implemented method for classifying three-dimensional (3D) objects. The method comprises providing a set of 3D objects. Each 3D object in the set has a signature representing a morphology of the 3D object. The method comprises computing a multi-level clustering of the set of 3D objects. The multi-level clustering is a hierarchical tree structure of clusters of the 3D objects of the set and has N hierarchical levels. The method comprises automatically or upon user interaction selecting one of the computed clusters of one level of the multi-level clustering, thereby defining a current level. The method comprises displaying to a user in a first portion of a display the 3D objects of the selected cluster. The method comprises classifying upon user interaction the displayed 3D objects. The computer-implemented method improves the classification of 3D objects.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer programs and systems, and more particularly to methods, systems, and programs for classifying collections of three-dimensional (3D) objects. Background Technology

[0002] Numerous systems and programs are available on the market for the design, engineering, and manufacturing of objects. CAD, an acronym for Computer-Aided Design, refers to software solutions used for designing objects. CAE, an acronym for Computer-Aided Engineering, refers to software solutions used for simulating the physical behavior of future products. CAM, an acronym for Computer-Aided Manufacturing, refers to software solutions used for defining manufacturing processes and operations. In such computer-aided design systems, graphical user interfaces play a crucial role in technical efficiency. These technologies can be embedded in Product Lifecycle Management (PLM) systems. PLM refers to a business strategy that helps companies share product data, apply common processes, and leverage company knowledge across the extended enterprise to develop products from concept to the end of their lifespan. Dassault Systèmes (trademarks CATIA, ENOVIA, and DELMIA) offers PLM solutions that provide an engineering center for organizing product engineering knowledge, a manufacturing center for managing manufacturing engineering knowledge, and an enterprise center that enables the enterprise to integrate and connect to the engineering and manufacturing centers. Together, the system provides an open object model that links products, processes, and resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production, and service.

[0003] More and more products are based on artificial intelligence. Therefore, in order to learn, it is necessary to establish standard classifications (systematically grouping observations into categories) to collect as much information as possible. However, most industries do not classify their components, especially in standard taxonomy.

[0004] In particular, industries (e.g., the automotive and aerospace industries) often rely on computer-aided design software to digitally design their products before mass production. CAD users create numerous digital 3D parts or objects. These 3D parts or objects are often not well-named; that is, the names given by users lack consistency and / or standardization. Consequently, a large collection of 3D objects is created but not properly categorized. Therefore, a method for large-scale classification of 3D objects is needed.

[0005] Because the human brain is more efficient at simultaneously identifying very small amounts of information, it is necessary to "construct" these large collections of 3D objects for classification identification. Currently, there are three methods for classifying and annotating parts.

[0006] The first approach was done by humans. To classify and annotate images to create a massive, clean, annotated image database (ImageNet), Google and Standard University used Amazon's mechanical Turk method. The principle is simple: they asked three different people to annotate the same image, and then they coordinated the results to enrich the image dataset. Thanks to this method, they were able to annotate over 14 million images. However, the main drawback of this first approach is that it cannot work in the industrial sector, primarily for two reasons. First, because the data may be confidential. Second, because the terminology in industry is done by professionals: everyone knows what a "cat" is, but not what a "hollow rivet" is.

[0007] The second approach is to use attributes. Categorizing parts using an SQL database or indexing engine is the classic method. It supports huge tables (see Google Big Table). Defining a method for categorizing parts with related attributes is fairly straightforward by combining them in query operators such as "AND" or "OR" (e.g., in SQL). However, the main drawback of this second approach is that very few attributes are correlated with the shape, making it extremely difficult to handle a large number of similar parts.

[0008] The third approach is to use 3D specifications or 3D signatures. Since these attributes may be missing from a 3D shape, the goal is to find a way to describe the 3D shape in a single vector (which can be high-dimensional). This vector can be created using two methods. The first method is 3D specifications (2.a). This is an explicit definition of the parts, for example, the number of holes and their positions / orientations, the number of specifications and their equations, etc., which can be extracted using geometric algorithms. Once this information is extracted through computation, there is a way to transform that information into a single vector. The second method is 3D signatures (2.b). This is an implicit way of describing the shape. It primarily uses transformation algorithms such as Fourier transforms, distance maps between pairs of random points on a surface, etc. The output can be transformed into a 1D vector. Applying metrics to this map is fairly straightforward. Unfortunately, these vectors have enormous dimensions, making it meaningless to try to compare them component by component. Therefore, the only way to compare two parts is to define a metric about the signature. In this step (2.a or 2.b), all parts can be displayed in a single window using principal component analysis or T-SNE, as shown below. Figure 4 As shown. However, the main drawback of this third method is that navigation in this tree is difficult because the information is actually at the planar level, and distinguishing component groups is not easy at all.

[0009] In this case, there is still a need for an improved computer-implemented method for classifying three-dimensional (3D) objects. Summary of the Invention

[0010] Therefore, a computer-implemented method for classifying three-dimensional (3D) objects is provided. The method includes providing a collection of 3D objects. Each 3D object in the collection has a signature representing the shape of the 3D object.

[0011] This method involves computing multi-level clusters of a set of 3D objects. A multi-level cluster is a hierarchical tree structure of clusters of 3D objects in a set, and has N hierarchical levels. Computing a multi-level cluster involves computing the first clusters of the 3D objects in the set. Each first cluster collects 3D objects from the set that have closely related signatures. The first clusters thus form the first level of the multi-level cluster and are first-level nodes in the hierarchical tree structure. Computing a multi-level cluster involves computing one or more second clusters of the first clusters. Each second cluster collects one or more first clusters that have closely related medoid signatures. The one or more second clusters thus form the second level of the multi-level cluster and are second-level nodes in the hierarchical tree structure. Each second-level node is the parent node of one or more first-level nodes. Computing a multi-level cluster involves iteratively computing one or more k-th clusters of the (k-1)-th cluster for each consecutive hierarchical level k of the multi-level cluster, after the second hierarchical level and up to the final hierarchical level N. Each of the one or more k-th clusters collects one or more (k-1)-th clusters that have closely related medoid signatures. One or more k-th clusters are k-th level nodes in a hierarchical tree structure, and each k-th level node is the parent node of one or more (k-1)-th level nodes.

[0012] The method includes automatically or during user interaction selecting one of the computed clusters at a level of multi-level clustering, thereby defining the current level. The method includes displaying 3D objects of the selected cluster to the user in a first portion of the display. The method includes classifying the displayed 3D objects during user interaction.

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

[0014] - The method may further include, before classifying the displayed 3D objects: upon user interaction, selecting a new hierarchical level of multilevel clustering that is different from the current level, thereby defining a new current level; automatically or upon user interaction, selecting a new cluster of the new current level, the new cluster of the new current level corresponding to the parent or child node of the previously selected cluster in the hierarchical tree structure; and displaying the 3D objects of the selected new cluster to the user in a first part of the display;

[0015] - The method may further include, prior to the steps of displaying 3D objects and classifying the displayed objects: displaying a first set of icons in a second part of the display, each icon representing a corresponding level of multi-level clustering, wherein selecting a new hierarchical level during user interaction is performed by selecting one of the displayed icons in the first set, the selected new hierarchical level being the hierarchical level represented by the selected icon;

[0016] - The method may include, prior to the steps of displaying 3D objects and classifying the displayed objects: displaying a second set of icons in a third part of the display, each icon in the second set representing a corresponding cluster at the new current level, wherein selecting the cluster at the current level during user interaction is performed by selecting one of the displayed icons in the second set, the selected cluster being the cluster represented by the selected icon;

[0017] - The method may also include repeating: selecting one of the computed clusters at the current level of multi-level clustering, wherein the selected cluster at the current level is different from a previously selected cluster; displaying 3D objects of the selected cluster in a first part of the display; and classifying the displayed 3D objects;

[0018] - The method may also include: selecting the technical field to which the set of 3D objects belongs; predicting an appropriate level of multi-level clustering based on the selected technical field using a machine learning algorithm; and defining the predicted appropriate level as the current level;

[0019] The method may further include, for each cluster: determining medoid 3D objects within the 3D objects of the cluster, the medoid 3D objects having a signature S that is closest to the centroid signature of the cluster according to the following formula. medoid :

[0020] S medoid with medoid=argmin i ‖S i -S centroid ‖,

[0021] Among them, S i S is the signature of each object i in the cluster. medoid It is the signature of the clustered medoid 3D object, and S centroid It is the centroid signature of the cluster.

[0022] Among them, the centroid signature S of the clustering centroid It is calculated using the average of the signatures of the clustered 3D objects according to the following formula:

[0023]

[0024] Where M is the number of 3D objects collected in the cluster, and S i It is the signature of each 3D object i included in the cluster; and

[0025] The process of displaying the 3D objects of the selected cluster in the first part of the display further includes: for each pair of 3D objects in the set collected in the cluster, calculating the distance between the 3D objects of the pair on the display, the distance being proportional to the distance between the signatures of the 3D objects of the pair; and placing the 3D objects in the first part of the display by using the calculated distance between the 3D objects of the pair on the display, and displaying the determined medoid 3D objects of the selected cluster at the center of the first part;

[0026] Displaying the selected cluster of 3D objects in the first part of the display may further include: displaying and automatically selecting all displayed 3D objects of the selected cluster in the first part of the display. The method may also include: deselecting at least one of the displayed 3D objects during user interaction to obtain one or more displayed 3D objects that remain selected; and classifying the one or more displayed 3D objects that remain selected during user interaction.

[0027] - Categorizing the displayed 3D objects includes displaying label inputs for the displayed 3D objects in the fourth part of the display; and editing and / or confirming the label inputs in the fourth part during user interaction;

[0028] - The method may also include using a machine learning algorithm to predict the label of the displayed 3D object and suggesting the predicted label in the label input, the machine learning algorithm predicting the label based on the signature of the displayed 3D object;

[0029] - Each level k in N consecutive hierarchical levels is associated with a corresponding predetermined parameter ε k The correlation is such that for every k from 2 to N, ε k-1 <ε k The computation of the first cluster of 3D objects of the set may further include computation of the first cluster of 3D objects of the set, each first cluster collecting sets of 3D objects with close signatures, such that...

[0030] ‖S j -S i ||<ε1

[0031] Where S i and S jIt is any signature of i, j of the 3D objects collected in the first cluster, which thus forms the first level of the multi-level cluster and is the first level node of the hierarchical tree structure;

[0032] Computing one or more second clusters may also include computing one or more second clusters of the first clusters, each second cluster collecting one or more first clusters with close medoid signatures, such that...

[0033] ‖S medoid(i) -S medoid(j) ||<ε2

[0034] Among them, S medoid(i) and S medoid(j) It is any medoid signature of i, j collected in the first cluster in the second cluster, one or more second clusters thus forming the second level of a multi-level cluster and being the second-level node in a hierarchical tree structure, each second-level node being the parent node of one or more first-level nodes; and

[0035] After the second hierarchical level and until the final hierarchical level N is reached, iteratively computing one or more k-th clusters of the (k-1)-th cluster for each consecutive hierarchical level k of the multi-level clustering may also include computing one or more k-th clusters, each of the one or more k-th clusters collecting one or more (k-1)-th clusters with close medoid signatures, such that...

[0036] ‖S medoid(i) -S medoid(j) ||<ε k

[0037] Among them, S medoid(i) and S medoid(j) It is any medoid signature of i, j collected in the (k-1)th cluster of the kth cluster, where one or more kth clusters are k-th level nodes in a hierarchical tree structure, and each k-th level node is the parent node of one or more (k-1)th level nodes; and / or

[0038] A computer program including instructions for performing the method is also provided.

[0039] A computer-readable storage medium on which a computer program is recorded is also provided.

[0040] A system is also provided, including a processor coupled to a memory and a graphical user interface, the memory having a computer program recorded thereon. Attached Figure Description

[0041] Embodiments of the invention will now be described by way of non-limiting examples and with reference to the accompanying drawings, wherein:

[0042] Figure 1 , 2 Figures 3 and 4 show flowcharts of an example of this method;

[0043] Figure 4 An example of a 3D object displayed in a single window is shown;

[0044] Figure 5 An example of a collection of 3D objects is shown;

[0045] Figure 6 An example of multi-level clustering is shown;

[0046] Figure 7 An example of classifying 3D objects in the displayed clusters is shown;

[0047] Figure 8 It shows in Figure 7 The example of classifying the displayed 3D objects is repeated for different clusters after the initial classification;

[0048] Figure 9 It shows in Figure 8 Select an example for the new hierarchical level before categorizing;

[0049] Figure 10 An example of a display is shown;

[0050] Figures 11 to 21 The calculation is shown Figure 5 Examples of multi-level clustering of a collection of 3D objects and another collection of 2D objects; and

[0051] Figure 22 An example of the system is shown. Detailed Implementation

[0052] refer to Figure 1 The flowchart presents a computer-implemented method for classifying three-dimensional (3D) objects. The method includes providing a set of 3D objects S10, where each 3D object in the set has a signature representing the morphology of the 3D object. "Morphology of a 3D object" refers to the shape (the terminology is also synonymous with shape) and structure of the 3D object, and may further refer to one or more specific structural features of the 3D object. The structure of a 3D object (e.g., components of a part) can be a product structure, such as a tree structure. Morphology defines the configuration of the external structure. Morphology is the set of features that define the external structure of a 3D object.

[0053] The method includes computing a multi-level cluster S20 of a set of 3D objects. The multi-level cluster is a hierarchical tree structure of clusters of the 3D objects in the set, and has N hierarchical levels.

[0054] like Figure 2The flowchart shows the execution of computation S20. Computing multi-level clustering includes calculating the first cluster S200 of the set of 3D objects. Each first cluster collects sets of 3D objects with close signatures. The first clusters thus form the first level of the multi-level clustering and are first-level nodes in the hierarchical tree structure. Computing multi-level clustering S20 also includes calculating one or more second clusters S210 of the first clusters. Each second cluster collects one or more first clusters with close medoid signatures. The one or more second clusters thus form the second level of the multi-level clustering and are second-level nodes in the hierarchical tree structure. Each second-level node is the parent node of one or more first-level nodes. Computing multi-level clustering also includes: iteratively calculating one or more k-th clusters of the (k-1)-th cluster S220 for each consecutive hierarchical level k of the multi-level clustering after the second hierarchical level and until the final hierarchical level N is reached. Each cluster in the one or more k-th clusters collects one or more (k-1)-th clusters with close medoid signatures. One or more k-th clusters are k-th level nodes in a hierarchical tree structure, and each k-th level node is the parent node of one or more (k-1)-th level nodes.

[0055] Refer again Figure 1 The flowchart illustrates a method that includes automatically or during user interaction selecting one of the computed clusters at a level of multi-level clustering, thereby defining the current level S30. The method includes displaying 3D objects of the selected cluster to the user in a first portion of the display S40. The method also includes classifying the displayed 3D objects during user interaction S80. Classification identifies which category (or subgroup) the displayed 3D object belongs to. Classification may include assigning a given category to the displayed 3D object (e.g., assigning it to a word such as a label), thereby registering that the displayed 3D object belongs to the category of that label.

[0056] This computer-implemented method improves how users can classify large collections of 3D objects. Notably, it clusters the collection of 3D objects to be classified and displays these clusters to the user, who can then select one. Most clusters comprise several 3D objects, and the user can classify the 3D objects in the selected cluster simultaneously. This improves classification efficiency because the computer-implemented method assists the user in performing the classification. The user no longer examines each 3D object individually. Classification is performed by considering clusters that collect groups of 3D objects. The user can annotate all 3D objects in a cluster with a single click. Therefore, fewer clicks are required for equivalent results, and the classification of all 3D objects is performed much faster.

[0057] Furthermore, clusters are created through multi-level clustering computation of the 3D object set, forming a hierarchical tree structure with N hierarchical levels. This hierarchical organization of 3D objects improves their classification. Specifically, 3D objects are collected based on signatures representing their morphology. Therefore, each cluster collects 3D objects with similar morphologies, and 3D objects belonging to the same cluster are more likely to be grouped together. This helps users in a particularly effective way.

[0058] Furthermore, multi-level clustering is computed so that 3D objects collected in a cluster at a given level are also collected in the same cluster used for any higher hierarchical level. In fact, except for the first level, clustering is computed based on the medoid signatures of lower-level clusters (rather than the signatures of the 3D objects). Therefore, when computing higher hierarchical levels, the groups of clusters of 3D objects are considered. This allows for the formation of a hierarchical tree structure including child nodes and parent nodes, each parent node collecting 3D objects from one or more child nodes in lower hierarchical levels. Therefore, consistency of grouping within clusters is particularly important in this tree structure. Thus, multi-level clustering computation improves classification efficiency because it forms consistent clusters of 3D objects.

[0059] This method is implemented by a computer. This means that the steps (or essentially all steps) of the method are performed by at least one computer or any similar system. Therefore, the execution of the steps by a computer may be fully automatic or semi-automatic. In the example, at least some steps of the method may be triggered through user-computer interaction. The required level of user-computer interaction can depend on the anticipated level of automation and be balanced with the need to fulfill the user's wishes. In the example, this level may be user-defined and / or predefined.

[0060] A typical example of a computer implementation of the method is to execute the method using a system. This system may include a processor coupled to memory and a display, the memory having a computer program recorded thereon containing instructions for executing the method. The display may be a graphical user interface (GUI). The memory may also store a database. Memory is any hardware suitable for such storage and may comprise several physically distinct parts (e.g., one for the program and possibly another for the database).

[0061] A "database" refers to any collection of data (i.e., information) organized for searching and retrieval (e.g., relational databases, or databases based on a predefined structured language such as SQL). When stored in memory, a database allows for rapid searching and retrieval by a computer. Databases are essentially constructed to combine various data processing operations to facilitate the storage, retrieval, modification, and deletion of data. A database can consist of a file or collection of files that can be broken down into records, each consisting of one or more fields. A field is the basic unit of data storage. Users can retrieve data primarily through queries. Using keywords and sorting commands, users can quickly search, rearrange, group, and select fields from many records according to the rules of the database management system they are using, in order to retrieve or create reports on a specific collection of data.

[0062] This method allows for the classification of collections of three-dimensional (3D) objects. A 3D object (or 3D modeling object) is any object defined by data, for example, stored in a database. In a broader sense, the expression "3D object" refers to the data itself. Depending on the type of system, 3D objects can be defined by different kinds of data. This system can actually be any combination of CAD, CAE, CAM, PDM, and / or PLM systems. In those different systems, 3D objects are defined by the corresponding data. Therefore, it can be said that there are CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data. However, these systems are not exclusive to each other, as 3D objects can be defined by data corresponding to any combination of these systems. Therefore, a system can be both CAD and PLM systems, as will be apparent from the definition of such a system provided below.

[0063] A CAD system also means any system suitable for designing 3D objects based on their graphical representation, such as CATIA. In this case, the data defining the 3D object includes the data that allows the 3D object to be represented. A CAD system can provide a representation of a CAD 3D object, for example, using edges or lines, and in some cases, faces or surfaces. Lines, edges, or surfaces can be represented in various ways, such as non-uniform rational B-splines (NURBS). Specifically, a CAD file contains specifications from which geometry can be generated, which in turn allows for the generation of representations. The specifications of a 3D object can be stored in a single CAD file or multiple CAD files. The typical size of a file representing a 3D object in a CAD system is in the range of one megabyte per part. And a 3D object can often be an assembly of thousands of parts.

[0064] In the context of CAD, a 3D object can represent a product, such as a part or component of a part, or possibly a component of a product, or a component of a product constructed as a tree structure. A "3D object" refers to any object modeled from data that allows for its 3D representation. 3D representation allows a part to be viewed from all angles. For example, when 3D represented, a 3D object can be manipulated and rotated about any of its axes or about any axis on the screen displaying the representation. This specifically excludes 2D icons that are not 3D modeled. The display of a 3D representation facilitates design (i.e., increases the statistical speed at which designers complete their tasks). This accelerates the manufacturing process in industry, as product design is part of the manufacturing process.

[0065] 3D objects can represent the geometry of a product to be manufactured in the real world after its virtual design has been completed using, for example, CAD software solutions or CAD systems. Examples include (e.g., mechanical) parts or components of parts (or equivalently, components of parts, since from a methodological point of view, components of parts can be considered as the parts themselves, or the method can be applied independently to each part of the component), or more generally, any rigid body component (e.g., a moving mechanism). CAD software solutions allow for the design of products in a wide and limitless range of industrial sectors, including: aerospace, architecture, construction, consumer goods, high-tech equipment, industrial equipment, transportation, and marine and / or offshore oil / gas production or transportation. Therefore, 3D objects designed using this method can represent industrial products, which can be any mechanical component, such as parts of land vehicles (including, for example, automobiles and light truck equipment, racing cars, motorcycles, truck and motor equipment, trucks and buses, trains), parts of aircraft (including, for example, fuselage equipment, aerospace equipment, propulsion equipment, defense products, airline equipment, space equipment), parts of ships (including, for example, naval equipment, commercial ships, marine equipment, yachts and workboats, marine equipment), general mechanical components (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installation equipment, industrial equipment products, manufactured metal products, tire manufacturing products), electromechanical or electronic components (including, for example, consumer electronics products, safety and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), consumer goods (including, for example, furniture, home and garden products, leisure products, fashion products, durable goods retail products, textile retail products), and packaging (including, for example, food and beverage and tobacco, beauty and personal care, household product packaging).

[0066] CAD systems can be history-based. In this case, 3D objects are further defined by data including the history of geometric features. 3D objects can actually be designed by a natural person (i.e., a designer / user) using standard modeling features (e.g., extrusion, revolve, cut, and / or rounding) and / or standard surface features (e.g., sweep, blend, loft, fill, deform, and / or smooth). Many CAD systems that support this modeling capability are history-based. This means that the creation history of design features is typically maintained through a non-cyclic data stream that links the geometric features together via input and output links. The history-based modeling paradigm has been well-known since the 1980s. 3D objects are described by two persistent data representations: history and B-rep (i.e., boundary representation). The B-rep is the computational result defined in the history. When a 3D object is represented, the shape of the portion displayed on the computer screen is the B-rep (e.g., its tessellation). The part's history is the design intent. Essentially, the history gathers information about the operations the 3D object has undergone. The B-rep can be maintained along with the history to make it easier to display complex parts. History records can be saved along with B-rep so that the design of components can be changed according to design intent.

[0067] In the context of PLM systems, it also means any system suitable for managing 3D objects representing physically manufactured products (or products to be manufactured). In a PLM system, 3D objects are therefore defined by data suitable for manufacturing the physical object. These are typically dimensional values ​​and / or tolerance values. Having such values ​​is indeed better for correctly manufacturing the object.

[0068] In the context of CAM solutions, it also refers to any solution, software or hardware, suitable for managing manufacturing data of a product. Manufacturing data typically includes information related to the product to be manufactured, the manufacturing process, and the resources required. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, it can provide CAM users with information about the feasibility, duration, or amount of resources required for a manufacturing process, such as specific robots that can be used at specific steps in the manufacturing process; thus allowing for decisions regarding management or required investment. CAM is a follow-up process to CAD processes and potential CAE processes. This type of CAM solution is trademarked by Dassault Systèmes. supply.

[0069] In the context of CAE solutions, this also means any solution, software or hardware, suitable for analyzing the physical behavior of 3D objects. One well-known and widely used CAE technique is the Finite Element Method (FEM), which typically involves dividing a 3D object into elements whose physical behavior can be calculated and simulated using equations. This CAE solution is trademarked by Dassault Systèmes. Provided. Another developing CAE technology involves modeling and analyzing complex systems composed of multiple components from different physical domains, without CAD geometric data. CAE solutions allow for the simulation of products to be manufactured, and thus optimization, improvement, and validation. This type of CAE solution is trademarked by Dassault Systèmes. supply.

[0070] PDM stands for Product Data Management. In the context of a PDM solution, it means any solution, software or hardware, suitable for managing all types of data related to a specific product. A PDM solution can be used by all stakeholders involved in the product lifecycle: primarily engineers, but also project managers, finance personnel, sales staff, and buyers. PDM solutions are typically based on a product-oriented database. It allows stakeholders to share consistent data about their products and thus prevents stakeholders from using conflicting data. This type of PDM solution is trademarked by Dassault Systèmes. supply.

[0071] The method includes providing a set of 3D objects S10. The set of 3D objects can be any collection of 3D objects. The set of 3D objects can be, for example, a set of 3D objects stored in a database. Providing S10 can be performed in any way. For example, the set of 3D objects can be stored in memory, and the user can choose the memory location where the set of 3D objects is stored. Alternatively, providing the set of 3D objects S10 can also be performed by downloading the set of 3D objects to a predetermined location in memory during user interaction. Memory can be any type of memory, and therefore includes databases. The database can be a relational database. Alternatively or additionally, the database can be a non-volatile storage device.

[0072] Each 3D object in the database is associated with a signature. A signature is a unique identifier for a given 3D object and includes information about the object's shape (or form) and structure. A signature can also refer to one or more specific structural features of the 3D object. This signature can be used as input to a database indexer. The signature is calculated from values ​​representing at least one form of the 3D object. The values ​​representing the form can be values ​​that quantify the form. These values ​​can be numerical. These values ​​can be included in the signature. The term "quantization" means information that can be ordered on a scale in a deterministic manner, such as numerical values ​​ordered on a numerical scale (e.g., by means of an axis system). The values ​​used to quantify the form can be ordered in a corresponding space, which allows for the analysis and evaluation of similarity, for example, based on the differences between values ​​in each corresponding feature space. Combined values ​​quantify different forms, thus allowing for the analysis and evaluation of similarity between 3D objects. The signature is calculated from values ​​representing the form, but it can also be calculated from other features associated with the 3D object.

[0073] In the example, the appearance signature can be a concatenated vector containing values ​​representing the shape of a 3D object. The values ​​representing the 3D object can be numerical values ​​in the form of numbers, vectors, and / or matrices. In the example, the signature of the 3D object is a fixed-size vector defining the shape of the 3D object.

[0074] Providing a set of 3D objects S10 may include providing signatures of the 3D objects in the set simultaneously with providing the set of 3D objects. Alternatively, the method may include calculating a signature for each 3D object in the provided set after providing the set of 3D objects S10.

[0075] The signature can be calculated by any combination of transforming a 3D object into a vector of fixed size.

[0076] In the examples, the transformation can lie in the 3D shape of the embedded 3D object. This transformation can be any combination of 3D reduction techniques that allow any 3D object to be transformed into a vector of fixed size. In this case, the signature could be, for example, a floating-point vector of length 416. An example of a 3D reduction technique is a string histogram, where a histogram of the lengths of strings within a 3D object is calculated. Another example of a 3D reduction technique is a D2 shape distribution, which consists of a normalized histogram of the probability of the distance between two randomly selected points on a 3D object. Another example of a 3D reduction technique is a Hough 3D descriptor, which consists of the principal planning parameters of triangles within a 3D object. Another example of a 3D reduction technique is a 3D shape spectrum descriptor, which consists of local curves on the surface of a 3D object. Another example of a 3D reduction technique is an extended Gaussian image, which consists of the projection of a 3D object onto a sphere cut into facets.

[0077] In other examples, the transformation can also lie in the semantics of the embedded 3D object. This transformation can be any TF-IDF (Term Frequency-Inverse Document Frequency) algorithm. The TF-IDF algorithm can be adapted to a chosen dataset to transform any semantic fields contained in the metadata of the 3D object into a fixed-size vector. In this case, the signature could be, for example, a 500-character floating-point vector.

[0078] The signature can be calculated using any one of these transformations individually, or two transformations can be concatenated.

[0079] This method involves computing a multilevel cluster S20 of a set of 3D objects. A multilevel cluster is a hierarchical tree structure of clusters of 3D objects in a set, and has N hierarchical levels. The tree structure graphically represents the hierarchical nature of the multilevel cluster. The tree structure consists of tree elements called "nodes" and lines connecting the elements called "branches." A parent node is a node at a higher level in the hierarchical structure (i.e., closer to the root node) and located on the same branch. Conversely, a child node is a node at a lower level in the hierarchical structure. In a tree structure, a node has only one parent node. However, a node has one or more child nodes. Sibling nodes are nodes that share the same parent node. The tree structure can be finite. In this case, the tree structure has no parent member. This member is called the root node. The root node is the starting node. Alternatively, the tree structure can be infinite. In this case, the tree structure has no root node.

[0080] Calculating multilevel clustering involves calculating the first cluster S200 of the set of 3D objects. The first cluster forms the first level of the multilevel clustering. The first cluster is the first-level node in the hierarchical tree structure. In the hierarchical tree structure, the first cluster is a node with no child nodes. The first cluster is called a leaf node.

[0081] Each first cluster collects sets of 3D objects with closely spaced signatures. This means that the distance between each pair of 3D objects in the first cluster is small. The distance between each pair of 3D objects in the first cluster can be below a predetermined parameter. Therefore, each 3D object is assigned to a first cluster, which can collect one or more other 3D objects with signatures close to the 3D object's signature. The signatures of 3D objects collected in the same first cluster are therefore similar, i.e., they have small distances between them. A first cluster can also collect only one 3D object, for example, if no other 3D object in the set has a signature close to that of the 3D object.

[0082] Calculating multi-level clustering includes calculating one or more second clusters S210 of a first cluster. Each second cluster collects one or more first clusters with close medoid signatures. A medoid 3D object (or "medoid") of a cluster is a 3D object collected in the cluster that has the smallest average dissimilarity to all other 3D objects collected in the cluster. For example, dissimilarity to other 3D objects can be understood based on the distance between the signatures of other 3D objects. The medoid 3D objects of a cluster can be determined based on the calculation of the centroid signature of the cluster. The centroid signature can be the average of the signatures of the 3D objects collected in the cluster. The signature of the medoid 3D objects of the cluster is called the "medoid signature" of the cluster. Therefore, each first cluster is assigned to a second cluster, and the second cluster can collect one or more other first clusters with medoid signatures close to the medoid signatures of the first clusters. Thus, the medoid signatures of first clusters collected in the same second cluster are similar, i.e., they have small distances between them. This means that the signatures of 3D objects collected in the same second cluster are also similar. This also means that 3D objects collected in the first cluster are also collected in the same second cluster. This improves the consistency of the structure in the multi-level clustering. One or more second clusters thus form the second level of the multi-level clustering. One or more second clusters are second-level nodes in the hierarchical tree structure. Each second-level node is the parent node of one or more first-level nodes. In the hierarchical tree structure, a second cluster can collect several first clusters. In this case, the second cluster is the parent node of these several first clusters. These several first clusters are child nodes. A second cluster can also collect only one first cluster, for example, if no other first cluster has a medoid signature close to the medoid signature of the first cluster under consideration. In this case, the second cluster is the parent node of that single first cluster, which is the only child node of that second cluster.

[0083] Calculating multilevel clusters involves iteratively computing one or more k-th clusters S220 for each consecutive hierarchical level k of the multilevel clusters, following the second hierarchical level and continuing until the final hierarchical level N is reached. For example, computing multilevel clusters may include successively computing one or more third clusters, one or more fourth clusters, ..., until one or more N-th clusters are finally computed. For each hierarchical level k, each cluster in the one or more k-th clusters collects one or more (k-1)-th clusters with closely spaced medoid signatures. The one or more k-th clusters are k-th level nodes in a hierarchical tree structure. Each k-th level node is the parent node of one or more (k-1)-th level nodes.

[0084] Therefore, each (k-1)th cluster is assigned to the kth cluster, which can collect one or more other (k-1)th clusters with medoid signatures close to those of the (k-1)th cluster. Thus, the medoid signatures of the (k-1)th clusters collected within the same kth cluster are similar, i.e., they have small distances between them. This means that the signatures of 3D objects collected in the kth cluster are also similar. It also means that 3D objects collected in the (k-1)th cluster are also collected in the same kth cluster. This improves the consistency of the structure in the multi-level clustering. One or more kth clusters thus form the kth level of the multi-level clustering. One or more second clusters are kth-level nodes in the hierarchical tree structure. Each kth-level node is the parent node of one or more (k-1)th-level nodes. In the hierarchical tree structure, the kth cluster can collect several (k-1)th clusters. In this case, the kth cluster is the parent node of these several first clusters. These several (k-1)th clusters are child nodes. The k-th cluster can also collect only one (k-1)-th cluster, for example, if no other (k-1)-th cluster has a medoid signature close to the medoid signature of the k-th cluster under consideration. In this case, the k-th cluster is the parent node of the single (k-1)-th cluster, which is the only child node of the k-th cluster.

[0085] This method involves automatically or during user interaction selecting one of the computed clusters at a level of the S30 multi-level clustering, thereby defining the current level. The selection of S30 can be performed automatically. In this case, the method can select a predetermined level as the current level. The predetermined level can be a recorded parameter or a default parameter. After selecting the level, the method can select one of the clusters at the selected level. The selection of one of the clusters can be performed automatically; for example, the clusters at that level can be organized hierarchically, and the method can select the first cluster at that level. The method can also randomly select one of the clusters at that level.

[0086] Alternatively, selection S30 can be performed during user interaction. For example, when the display is a touchscreen, the user can select one of the clusters at a level using a pointing device or via touch. The user can interact with a graphical representation of a hierarchical tree structure. The graphical representation can include elements representing nodes and branches of the hierarchical tree structure. The user can select one of the nodes or one of the branches, thereby selecting a cluster or level. The user can also select a cluster at a predetermined level. For example, the predetermined level can be a recorded parameter or a default parameter. In this case, the graphical representation can include only elements representing the clusters at the predetermined level.

[0087] It should be understood that several subsequent choices can be made in S30. In one example, the default clustering of one of the levels of multi-level clustering can be automatically selected, and the user can then perform one or more choices of clustering until the user is satisfied with their choices.

[0088] The method includes displaying a selected cluster of 3D objects S40 to a user in a first portion of a display. A portion of the display is a predetermined section of the display surface. The display surface may be subdivided, for example, and the first portion may be one of the subdivisions of the display. The display may include several sections, and the first portion may be the main section of the display. The main section may be the largest of the sections of the display. The displayed 3D objects may be distributed on the first portion. The distribution of the displayed 3D objects on a portion of the first portion is uniform. The distribution of the displayed 3D objects on this section can be organized according to the user's preference. For example, one or more of the displayed 3D objects may be at the center of this section of the first portion. Other 3D objects may be displayed around the periphery of this section. For example, other 3D objects may be displayed around one or more 3D objects displayed at the center of this section of the first portion. The displayed 3D objects on the first portion may not overlap each other. The 3D objects may be displayed with similar viewpoints, similar scales, and / or similar designs (colors, line thicknesses, graphic conventions, etc.), i.e., for all displayed 3D objects, the camera is in the same relative position with the same relative orientation.

[0089] The method includes classifying displayed 3D objects S80 during user interaction. The user can classify all displayed 3D objects simultaneously. For example, the user can perform a single user interaction to classify all displayed 3D objects. The user can also classify a portion of the displayed 3D objects simultaneously. In this case, the method may include classifying a selected portion of the displayed 3D objects. Classifying the displayed 3D objects S80 may include assigning labels to the displayed 3D objects or confirming predicted labels. Labels are keywords or terms associated with or assigned to information describing the characteristics of the 3D object. Labels allow for easy grouping of information containing the same keywords. Keywords or terms can be obtained from dictionaries or industry standards. Industry standards may include industry standard eCl@ss.

[0090] This computer-implemented method improves the classification of 3D objects. In fact, it allows users to classify several displayed 3D objects simultaneously, significantly assisting them in categorizing the displayed 3D objects. Specifically, classification is performed by considering clusters that collect groups of 3D objects. These clusters are created through the computation of multi-level clustering of the 3D object set. This hierarchical organization of 3D objects improves their classification. In effect, 3D objects are collected based on signatures representing their morphology, and each cluster thus collects 3D objects with similar morphologies. Therefore, these 3D objects are more likely to be classified together, which effectively assists the user during classification. Furthermore, the resulting tree structure improves the consistency of grouping within clusters. Thus, the computation of multi-level clustering improves classification efficiency because consistent clusters of 3D objects are formed and displayed together to the user. It is worth noting that in the field of user experience (UX), it is generally acknowledged that only a small amount of information, such as three or four pieces, must be presented at a time to aid user analysis. This principle is recognized in the UX field. During the computation of multi-level clustering, clusters containing nearly identical 3D objects are formed. Therefore, multi-level clustering makes labeling easier because 3D objects should have the same label in a given cluster.

[0091] refer to Figure 3 The flowchart illustrates a method that may further include, prior to classifying the displayed 3D objects, selecting a new hierarchical level for multi-level clustering that differs from the current level during user interaction, thereby defining a new current level S50. Selecting the new hierarchical level S50 may include detecting user interaction with graphical elements displayed on the display representing the new hierarchical level. For example, the method may include displaying a hierarchical tree structure, such as displaying elements representing each hierarchical level. The user can select one of the displayed elements, thereby selecting the hierarchical level represented by the selected element.

[0092] The method may also include automatically or during user interaction selecting a new cluster at the current level before classifying the displayed 3D objects, the new cluster at the current level corresponding to the parent or child node S60 of the previously selected cluster in the hierarchical tree structure.

[0093] It should be understood that several subsequent choices can be made at S60. In one example, a new cluster at a new level of multi-level clustering can be automatically selected, and the user can then perform one or more clustering choices until the user is satisfied with their selections.

[0094] The new current level can be a higher hierarchical level. In this case, the method can automatically select the parent node of the previously selected cluster in the hierarchical tree structure. For example, the method can follow the hierarchical tree structure to identify the node of the new current level, which is the parent node of the previously selected cluster. In practice, each node in the hierarchical tree structure includes only a single parent node (except for the node of the last hierarchical level, but if the current level is the last hierarchical level, the new current level cannot be a higher hierarchical level).

[0095] The new current level can also be a lower hierarchical level. In this case, the method can automatically select one of the child nodes of the previously selected cluster in the hierarchical tree structure. For example, the method can randomly select one of the child nodes. The method can also select the child node with the highest number of 3D objects. Alternatively, the selection of one of the child nodes can be performed during user interaction. For example, the method can suggest child nodes to the user, and the user can select one of the suggested child nodes.

[0096] The method may further include displaying the selected new cluster of 3D objects to the user in a first portion of the display, S70, before classifying the displayed 3D objects. Displaying the determined new cluster of 3D objects S70 may include removing the previously selected cluster of 3D objects displayed in the first portion before displaying the determined new cluster of 3D objects S70. The display of the determined new cluster of 3D objects can be performed in accordance with the display of the previously selected cluster of 3D objects S40.

[0097] Choosing a new hierarchical level S50 improves the classification of 3D objects. In effect, it allows for finer or coarser granularity during classification. Users can choose a higher hierarchical level in the tree structure to classify a larger number of 3D objects simultaneously (because the parent cluster contains more 3D objects). Users can also choose a lower hierarchical level in the tree structure to classify a smaller number of 3D objects simultaneously (the child cluster contains fewer 3D objects). For example, if a user feels that too many 3D objects are displayed, they can reduce the number of 3D objects displayed by choosing a lower hierarchical level. This allows for finer granularity because child nodes have an equal, lower, or strictly lower number of 3D objects. Furthermore, because clustering is calculated based on signatures, 3D objects in child nodes are more likely to be classified together. Therefore, it is convenient for users to adjust the hierarchical level they use for classification.

[0098] In the example, the method may further include displaying a first set of icons in a second portion of the display before the steps of displaying 3D objects and classifying the displayed objects. Each icon represents a corresponding level of a multi-level cluster. Icons are small pictographs (e.g., bars, circles, cubes, etc.) representing the corresponding level. The icons of the first set can be organized on the second portion of the display. The icons of the first set can be arranged according to a hierarchical tree structure. The order of the consecutive icons can be the same as the order of the levels in the hierarchical tree structure. The icon representing the current level of the first set can be highlighted. The icon of the current level can be displayed in a different color.

[0099] During user interaction, a new hierarchical level can be selected by choosing one of the icons displayed in the first set. The selected new hierarchical level can be the hierarchical level represented by the selected icon. For example, when the display is a touchscreen, the user can interact with one of the icons displayed in the first set by using a pointing device or by touch.

[0100] The selection of a new hierarchical level based on the first set of icons displayed improves user ergonomics. In fact, users can directly select a new hierarchical level from one of the first set of icons displayed. Displaying the first set of icons in the second part of the display also provides the user with an overview of the hierarchical tree structure; this overview is also known as a "bird's-eye view." Users can understand which hierarchical level they are currently working at and whether they want to move up or down a level in the hierarchical tree structure. This further improves user ergonomics during categorization.

[0101] In the example, the method may include displaying a second set of icons in a third portion of the display before the steps of displaying 3D objects and classifying the displayed objects. Each icon in the second set represents a corresponding cluster at the new current level. The icons of the second set can be positioned relative to the first set of icons on the third portion of the display. The icons of the second set can be aligned. For example, the icons of the second set can be aligned based on the number of 3D objects collected in each cluster. The icon of the second set representing the currently selected cluster can be highlighted. The icon of the currently selected cluster can be displayed in a different color.

[0102] During user interaction, selection of a cluster at the current level can be performed by choosing one of the displayed icons in the second set. The selected cluster can be the cluster represented by the selected icon. For example, when the display is a touchscreen, the user can interact with one of the displayed icons in the second set by using a pointing device or via touch.

[0103] Selecting clusters based on the displayed second set of icons improves user ergonomics. In fact, users can directly select a cluster level from one of the displayed second set of icons. Displaying the second set of icons in the third part of the display also provides an overview of the current cluster level. Users can understand which cluster they are currently working on and whether they want to move to another cluster at the current level. This further improves user ergonomics during classification.

[0104] In the example, the method may further include repeatedly selecting one of the computed clusters at the current level of multi-level clustering. For each repetition, the selected cluster at the current level may differ from the previously selected one. For each new selected cluster, the method may include repeatedly displaying a 3D object of the new selected cluster in a first portion of the display. After each new display of the 3D object of the new selected cluster, the method may further include repeating the classification of the displayed 3D objects. The repetition may end when the user has displayed and classified all clusters at the current level. When the selection of one of the computed clusters is performed automatically, the selection may be performed according to the order of the clusters at the current level.

[0105] This repetition allows users to continuously classify clustered 3D objects at the same hierarchical level (the current level). Therefore, it improves the user's classification efficiency.

[0106] In the example, the method may further include selecting the technical field to which the set of 3D objects belongs. A technical field is a grouping of objects that share common characteristics. The selected technical field can be the one shared by the majority of 3D objects in the set. The method may further include predicting an appropriate level for multi-level clustering based on the selected technical field using a machine learning algorithm. The method may further include defining the predicted appropriate level as the current level. The machine learning algorithm can be any machine learning algorithm. The machine learning algorithm can be trained on collected user preference data. The machine learning algorithm can take the multi-level clustering and the selected technical field as input. The machine learning algorithm can output the appropriate level.

[0107] Machine learning algorithms improve the efficiency of classification. In fact, machine learning algorithms predict the appropriate level based on the chosen technical area. Therefore, the level the user is working at is perfectly appropriate.

[0108] The method may further include, for each cluster, determining a medoid 3D object among the 3D objects of the cluster. The medoid 3D object may have a signature that is closest to the centroid signature of the cluster. The medoid 3D object may have a signature S determined according to the following formula. medoid :

[0109] Smedoid with medoid=argmin i ‖S i -S centroid ‖,

[0110] Among them, S i S is the signature of each object i in the cluster. medoid It is the signature of the clustered medoid 3D object, and S centroid It is a centroid signature.

[0111] In this formula, and all others, the norm ‖…‖ can be any norm that measures the length of a vector. This norm can be, for example, the Manhattan norm. The Manhattan norm is the sum of the absolute values ​​of the columns of a vector. The distance between signatures can be the Manhattan distance between signatures. Two signatures S i and S j The distance between them can be based on the Manhattan norm ||S| of the difference between the two signatures. j -S i Use ‖ to calculate.

[0112] Vector S i -S centroid The norm of S represents the signature S of each object i in the cluster. i Centroid signature S of clustering centroid The distance between them. A medoid 3D object is a 3D object with a minimum norm with a centroid. Therefore, the calculation of a 3D object with a minimum norm (argmin) with a centroid allows for the determination of medoid 3D objects. This method may include calculating each norm ||S| for each 3D object i in the cluster. i -S centroid ‖, and determine argmin, that is, the 3D object with the minimum value of the calculated norm, the medoid 3D object is the 3D object with the minimum norm.

[0113] The centroid signature S of a cluster can be calculated using the average of the signatures of the 3D objects in the cluster. centroid The centroid signature S of the cluster. centroid It can be calculated using the following formula:

[0114]

[0115] Where M is the number of 3D objects collected in the cluster, and S i It is the signature of each 3D object i collected in the cluster.

[0116] Displaying the selected cluster of 3D objects in the first part of the display may further include, for each pair of 3D objects in the set collected in the cluster, calculating a distance on the display between the pairs of 3D objects, the distance being proportional to the distance between the signatures of the pair of 3D objects. This distance can be calculated using the Manhattan norm. For example, the method may include, for each pair i, j of 3D objects in the set collected in the cluster, calculating the norm ||S| of the difference in the signatures of the pair. j -S i Furthermore, the calculated norm can be stored. Displaying the 3D objects of the selected cluster in the first part of the display can also include placing the 3D objects in the first part of the display by using the calculated distance between the 3D objects of the selected cluster on the display. The determined medoid 3D objects of the selected cluster can be displayed at the center of the first part.

[0117] Displaying the selected cluster of 3D objects in the first part of the display can include displaying the 3D objects as a 2D bubble representation. A 2D bubble representation is a 2D graph comprising bubbles representing 3D objects, where the distance between two bubbles (i.e., disks for each 3D object) is proportional to a similarity rate (e.g., the norm between the signatures of two 3D objects represented by the two bubbles). This method can use the D3.js graphics widget to display the 2D bubble representation. This widget attempts to account for the distance between 3D objects by minimizing energy.

[0118] During user interaction, a new hierarchical level of multi-level clustering, different from the current level, can be selected based on the 2D bubble representation. For example, a user can position the indicating device on a bubble representing the 2D bubble representation of a given cluster and scroll up or down to select one of the parent or child nodes of the given cluster.

[0119] The use of medoid signatures improves the computation of hierarchical tree structures. In effect, clusters are formed based on medoid signatures, with the 3D objects having signatures closest to the centroid signature. Therefore, medoid signatures allow for the computation of hierarchical tree structures that are consistent in terms of the morphology of 3D objects. Furthermore, medoid 3D objects are displayed at the center. Thus, when a user selects a new hierarchical level, the display of 3D objects belonging to the newly selected cluster follows a consistent logic. The user will never get lost. His or her attention is not distracted by these changes because the medoid 3D object is always located at the center. From a morphological point of view, these changes are regular and continuous. This ergonomic effect stems from constructing the hierarchical tree structure through medoid signatures and the specific display method (medoid 3D objects at the center).

[0120] Displaying 3D objects of a selected cluster in the first part of the display can also include displaying and automatically selecting all displayed 3D objects of the selected cluster in the first part of the display. The method can store in memory which of the displayed 3D objects are selected and select all of them by default. Selected 3D objects can be highlighted in the first part of the display, for example, using different colors or graphic elements, such as circles surrounding them. The method can also include deselecting at least one of the displayed 3D objects during user interaction, thereby obtaining one or more displayed 3D objects that remain selected. The method can remove one or more unselected 3D objects from memory. Users can deselect one or more displayed 3D objects by pointing at them on the display. The method can also include categorizing the one or more displayed 3D objects that remain selected during user interaction. The method can query memory to find which of the displayed 3D objects remain selected.

[0121] This improves the ergonomics of categorization because users have the option to deselect some 3D objects before categorizing them.

[0122] In the example, the user can also leave any of the displayed 3D objects unselected. In this case, all the initially selected displayed 3D objects remain selected. The user can therefore categorize all the displayed 3D objects without deselecting at least one of them before categorizing them.

[0123] The categorization of displayed 3D objects may include displaying label inputs for the displayed 3D objects in a fourth section of the display. The categorization of displayed 3D objects may also include editing and / or confirming the label inputs on the fourth section during user interaction. The label input is a window in the fourth section that may or may not display labels. Labels may be entered by the user within the label input. The user can enter labels in the label input using a keyboard. Alternatively, the label input may be pre-populated with labels. In this case, the user can modify the pre-populated labels in the label input, for example, by using the keyboard. Labels are keywords or terms associated with or assigned to information describing the characteristics of the displayed 3D objects. Keywords or terms may be taken from industry standards, such as the industry standard eCl@ss. The fourth section of the display may also include a button for searching for keywords or terms from the industry standard eCl@ss and adding those keywords or terms to the label input. The fourth section of the display may also include a confirmation button for confirming labels pre-populated, edited, and / or modified in the label input. This improves the ergonomics of categorization because the user has the possibility of effectively confirming and / or modifying labels during categorization.

[0124] The method may also include using a machine learning algorithm to predict labels for the displayed 3D objects and suggesting the predicted labels in the label input. The machine learning algorithm can predict labels based on the signatures of the displayed 3D objects. The machine learning algorithm can be trained on a database of previously classified 3D objects. The machine learning algorithm can take the signatures as input and can output labels. The signature can also represent the shape of the 3D object. The signature can be the same as the signature used by this method during multi-level clustering. The signature can also be different.

[0125] Label prediction improves the ergonomics of classification because relevant label predictions allow users to quickly identify the labels of 3D objects during classification.

[0126] Labels can also be omitted from the label input. For example, when the confidence level of the prediction is insufficient, such as below the boundary, labels may not be suggested in the label input.

[0127] Each level k in N consecutive hierarchical levels is associated with a corresponding predetermined parameter ε. k The correlation is such that for every k from 2 to N, ε k-1 <ε k These predefined parameters can represent similarity thresholds. Similarity can be derived from Manhattan distance using the following formula:

[0128]

[0129] Where d is the distance between the two signatures.

[0130] Similarity can be a formula for reducing the distance between 0 and 1. The Manhattan distance can take values ​​from 0 to 2 on a normalized vector with a norm of 1 (this is the case for the signature). Similarity can be used from the Manhattan distance d in the interval [0, 2] to the interval [0, 1] (if d = 2, sim = 0, and if d = 0, sim = 1), which is easier to use later (this is called percentage similarity). The parameters predefined for each hierarchical level can also be understood in terms of similarity rather than distance.

[0131] The first cluster of 3D objects in the computation set may further include a first cluster of 3D objects in the computation set, each first cluster collecting 3D objects of sets with closely spaced signatures, such that...

[0132] ‖S j -S i ||<ε1

[0133] Where S i and S jIt is the signature of any pair of 3D objects i, j collected in the first cluster. The first cluster can therefore form the first level of a multi-level cluster and is the first-level node of a hierarchical tree structure. The method may include computing P for each 3D object. i 3D / semantic signature S i Signature S i It is a vector with fixed dimensions. A 3D signature can be 416 floating-point numbers. A semantic signature can be 500 floating-point numbers. The more similar the 3D objects, the closer their signatures are in norm. That is, the signature space can be associated with a metric. Therefore, when S... i =S j At that time, two 3D objects P i and P j same.

[0134] Computing one or more second clusters may also include computing one or more second clusters of the first clusters, each second cluster collecting one or more first clusters with close medoid signatures, such that...

[0135] ‖S medoid(i) -S medoid(j) ||<ε2

[0136] Among them, S medoid(i) and S medoid(j) It is any medoid signature of i, j collected in the first cluster within the second cluster. One or more second clusters can thus form the second level of a multi-level cluster and can be second-level nodes in a hierarchical tree structure. Each second-level node can be the parent node of one or more first-level nodes.

[0137] After the second hierarchical level and until the final hierarchical level N is reached, iteratively computing one or more k-th clusters of the (k-1)-th cluster for each consecutive hierarchical level k of the multi-level clustering may also include computing one or more k-th clusters, each of the one or more k-th clusters collecting one or more (k-1)-th clusters with close medoid signatures, such that...

[0138] ‖S medoid(i) -S medoid(j) ||<ε k

[0139] Among them, S medoid(i) and S medoid(j) It is the medoid signature of any pair i, j collected in the (k-1)th cluster in the kth cluster. One or more kth clusters can be k-th level nodes in a hierarchical tree structure, and each k-th level node can be the parent node of one or more (k-1)th level nodes.

[0140] The first three consecutive hierarchical levels can be associated with predefined parameters ε1 = 0.05, ε2 = 0.2, and ε3 = 0.33, respectively. This combination of predefined parameters is satisfactory in terms of both industrial practicality and visual comparison.

[0141] In the example, the method may also include learning a machine learning algorithm based on a classified set of 3D objects. This invention improves the learning of machine learning algorithms. In fact, labels are already associated with each of the 3D objects in the set. Therefore, a machine learning algorithm can be trained on a classified set of 3D objects. For example, a machine learning algorithm can be trained to predict the labels of 3D objects. Thus, this method allows for the training of such machine learning algorithms because learning such algorithms requires a large set of classified 3D objects.

[0142] In other examples, the method may also include automatically or during user interaction searching for 3D objects based on a categorized collection of 3D objects. Since labels describing object characteristics are already associated with each 3D object in the collection, the search for 3D objects is improved. Users can navigate through the categorized collection of 3D objects via associated labels. Therefore, this method improves the search for 3D objects.

[0143] Figure 5 An example of a collection of 3D objects is shown. The collection of 3D objects 500 includes several 3D objects 502. When the collection of 3D objects 500 is provided, it is not constructed before multi-level computations are performed, as shown in this figure.

[0144] Figure 6 An example of multilevel clustering is shown. Multilevel clustering 110 is a hierarchical tree structure for clustering 3D objects of a set. Multilevel clustering process 110 has N = 3 hierarchical levels 116. The tree structure graphically represents the hierarchical nature of multilevel clustering. The tree structure includes nodes 112 and branches 114. A parent node is a node at a higher level in the hierarchical structure (i.e., closer to the root node 122) and located on the same branch. Conversely, a child node is a node at a lower level in the hierarchical structure. For example, node 118 is the parent node of node 120. Node 120 is therefore a child node of node 118. Node 122 is not counted as a level of hierarchical level. The root node of the tree is the medoid of the first-level cluster of multilevel clustering 110.

[0145] Figure 7An example of classifying 3D objects of displayed clusters is shown. The method includes automatically or during user interaction selecting one of the computed clusters 134 of a multi-level clustering, thereby defining the current level 132. The method includes displaying 3D objects 136 of the selected cluster 134 to the user in a first portion 138 of the display 130. In this example, the 3D objects 136 are four brackets. The method includes classifying the displayed 3D objects 136 during user interaction. Labels can be suggested and / or entered for these four brackets 136. To confirm the assignment of labels to the four brackets 136 (i.e., confirm the classification of the four brackets 136), the user can press a confirmation button in the GUI.

[0146] Figure 8 It shows in Figure 7 The method involves repeating the classification of the displayed 3D objects for different clusters after initial classification. The method includes selecting one of the computed clusters 140 at the current level 132 of a multi-level clustering system. The selected cluster 140 at the current level 132 differs from a previously selected cluster 134. The method includes displaying 3D objects 142 of the selected cluster 140 in a first portion 138 of a display 130. The method includes classifying the displayed 3D objects 142. For Figure 7 The classification involves proposing and / or entering labels for the displayed 3D objects 142 (for the six displayed 3D objects 142). To confirm the assignment of the label to the displayed 3D objects 142 (i.e., confirm the classification of the displayed 3D objects 142), the user can simply press the confirmation button in the GUI. Therefore, by using two clicks on the confirmation button, the user can confirm ten 3D objects ( Figure 7 The four categories plus Figure 8 (The six tags in the text)

[0147] Figure 9 It shows in Figure 8 Before classifying, select examples for the new hierarchical level. This method includes, in Figure 8 Before classifying the displayed 3D objects, a new hierarchical level 154, different from the current level 132, is selected during user interaction to define a new current level 154. The method then includes automatically or during user interaction selecting a new cluster 150 of the new current level 154, which corresponds to a child node 150 of the previously selected cluster 140 in the hierarchical tree structure 100. The method then includes displaying the 3D objects of the selected new cluster 150 to the user in a first portion 138 of the display 130.

[0148] Figure 10An example of a display is shown. The display 160 may be a typical graphical user interface (GUI) with a standard menu bar 162. Such menus and toolbars contain a set of user-selectable icons, each associated with one or more operations or functions, as is known in the art. Some of these icons are associated with software tools suitable for editing and / or working on the displayed 3D object 164.

[0149] exist Figure 10 In this example, the method includes displaying selected clusters of 3D objects to a user in a first portion 166 of a display 160. In the first portion 166, the 3D objects may be displayed in a 2D bubble representation 164. All displayed 3D objects may be automatically selected in the first portion 166. The selected 3D objects may be highlighted by circles surrounding them.

[0150] exist Figure 10 In this example, the method includes displaying a second set of icons 172 in the third portion 168 of display 160. Each icon in the second set 172 represents a corresponding cluster at the new current level. The icons of the second set 172 are organized on the third portion 168 of display 160. The icons of the second set 172 are aligned according to the number of 3D objects collected in each cluster. The icon 174 of the second set 172 representing the currently selected cluster is highlighted. The icon 174 of the currently selected cluster is displayed in a different color.

[0151] exist Figure 10 In this example, categorizing the displayed 3D object 164 includes displaying a label input 178 for the displayed 3D object 164 in the fourth section 170 of the display. Categorizing the displayed 3D object includes editing and / or confirming the label input 178 on the fourth section 170 during user interaction. The label input may be pre-filled or unfilled. When the label input is not pre-filled, labels may be entered by the user. The user can enter labels in the label input using a keyboard. Alternatively, the label input may also be pre-filled with labels. In this case, the user can modify the labels pre-filled in the label input, for example, by using a keyboard. In this example, the labels may be taken from the industry standard eCl@ss. For this purpose, the fourth section 170 of the display 160 includes a button 180 for searching and adding labels from the industry standard eCl@ss. The fourth section 170 of the display 160 also includes a confirmation button 176 for confirming the labels entered in the label input 178.

[0152] Figures 11 to 21 An example of computing multi-level clustering of a set of 3D objects is shown. The set of 3D objects considered in this example is... Figure 5The example shown is a collection of 100 3D objects. For clarity, an example of computing multi-level clustering of another collection of 2D objects is also described in detail. Figure 11 The image shows a set of 300 2D objects. The steps for calculating the multi-level clustering of the two sets are described in detail in the following paragraphs.

[0153] In this example, the computed multi-level cluster is a hierarchical tree structure with three hierarchical levels. For each of the three hierarchical levels, the method associates corresponding predefined parameters ε1, ε2, and ε3, such that ε1 < ε2 < ε3. In this example, the three hierarchical levels are associated with predefined parameters ε1 = 0.05, ε2 = 0.2, and ε3 = 0.33, respectively.

[0154] This method begins by computing all first clusters, i.e., first-level clusters. Each first cluster collects sets of 3D objects with closely spaced signatures, such that...

[0155] ‖S j -S i ||<ε1,

[0156] Where S i and S j It is any signature of i, j of the 3D objects collected in the first cluster. The first cluster forms the first level of the multi-level clustering. The first cluster is the first-level node of the hierarchical tree structure. Figure 12 The first clustering computed for a set of 2D objects is shown, and Figure 13 The first clustering calculated for a set of 3D objects is shown.

[0157] Now we discuss the computation of clustering. This method computes a signature for each 3D object in the set. Therefore, the computed signatures form a set of vectors (each signature is a vector). From a given set of vectors, several clustering algorithms can be used to compute clusters. Many of these clustering algorithms require a predefined number of clusters (e.g., k-means algorithm). Some other algorithms do not require this hyperparameter, but are known to be slow because they require a large number of pairwise comparisons (e.g., aggregate clustering, DBSCAN). To address this issue, this method is based on an algorithm that computes clusters based on a fast approximate nearest neighbor search, and, given a distance, finds a stable cluster distribution that satisfies the above problem.

[0158] Now, for each first cluster, the method calculates the centroid signature for that cluster. The centroid signature is calculated by averaging the signatures of the 3D objects in that cluster. When calculating the centroid signature, the method determines the medoid d3D object for each cluster. For each cluster, the medoid is the 3D object with the signature closest to the centroid signature. Figure 14In the image, the medoid 2D objects 330 identified by clustering of a collection of 2D objects are highlighted. Similarly, in... Figure 15 The image highlights the medoid 3D object 340 identified by clustering of the 3D object set.

[0159] Then, the method computes a second cluster. The second cluster is a cluster that collects one or more of the first clusters that have similar medoid signatures, such that...

[0160] ‖S medoid(i) -S medoid(j) ||<ε2,

[0161] Among them, S medoid(i) and S medoid(j) It is the medoid signature of any pair i, j collected in the first cluster within the second cluster. The second cluster forms the second level of the multi-level clustering. The second cluster is the second-level node in a hierarchical tree structure. Each second-level node is the parent node of one or more first-level nodes. Figure 16 An example of computing a second cluster of a set of 2D objects is shown. In this example, the second cluster 352 collects two first clusters 350. Similarly, Figure 18 An example of calculating the second cluster of a set of 3D objects is shown. In this example, the second cluster 356 collects two first clusters 354.

[0162] For the first cluster, the method computes the medoid signature for each of the second clusters. Figure 17 The image highlights medoid 2D objects 358 identified by the second clustering of the 2D object set. Figure 18 The image highlights the medoid 3D objects 360 identified by clustering the collection of 3D objects.

[0163] Then, the method calculates the third cluster. The third cluster is a cluster that collects one or more second clusters with similar medoid signatures, such that...

[0164] ‖S medoid(i) -S medoid(j) ||<ε3,

[0165] Among them, S medoid(i) and S medoid(j) It is the medoid signature of any pair i, j collected in the second cluster within the third cluster. The third cluster forms the third level of the multi-level clustering. The third cluster is a third-level node in a hierarchical tree structure. Each third-level node is the parent node of one or more second-level nodes. Figure 19 An example of calculating the third cluster of a set of 2D objects is shown. In this example, the third cluster 354 collects two second clusters 362.

[0166] After the second hierarchical level and until the final hierarchical level N is reached, iteratively computing one or more k-th clusters of the (k-1)-th cluster for each consecutive hierarchical level k of the multi-level clustering may also include computing one or more k-th clusters, each of the one or more k-th clusters collecting one or more (k-1)-th clusters with close medoid signatures, such that...

[0167] ‖S medoid(i) -S medoid(j) ||<ε k

[0168] Among them, S medoid(i) and S medoid(j) It is the medoid signature of any pair i, j in the (k-1)th cluster collected in the kth cluster. One or more kth clusters are k-th level nodes in a hierarchical tree structure, and each k-th level node can be the parent node of one or more (k-1)th level nodes.

[0169] Figure 20 and 21 The multi-level clustering calculated for each of the 2D and 3D object sets is shown. The multi-level clustering of the 2D object set has a tree hierarchy: Level 1 374, Level 2 372, and Level 3 370. Similarly, the multi-level clustering of the 3D object set has a tree hierarchy: Level 1 384, Level 2 382, ​​and Level 3 380. The third cluster of Level 380 is the parent node of the second cluster of Level 282, which in turn is the parent node of the first cluster of Level 184, which collects the 3D objects of set 386. Figure 20 and 21 The method graphically represents multi-level clustering. It can include displaying a graphical representation of the multi-level clustering to a user on a monitor. The graphical representation can include elements representing nodes and branches of the computed hierarchical tree structure. For each level of the hierarchical tree structure, each cluster (or node) can be represented by its corresponding medoid3D object.

[0170] Figure 22 An example of the system is shown, where the system is a client computer system, such as a user's workstation.

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

[0172] A computer program may include computer-executable instructions, which include units for causing the system to perform the method. The program may be recorded on any data storage medium, including the system's memory. For example, the program may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented as an apparatus, such as a product tangibly contained in a machine-readable storage device for execution by a programmable processor. The method steps may be executed by a programmable processor that executes the instruction program to perform the function of the method by manipulating input data and generating output. Thus, the processor may be programmable and coupled to receive data and instructions from the data storage system and at least one input device, and to send data and instructions to the data storage system and at least one output device. The application program may be implemented in a high-level procedural or object-oriented programming language, or, if desired, in assembly language or machine language. In any case, the language may be a compiled or interpreted language. The program may be a complete installation program or update program. In any case, the application program on the system generates instructions for performing the method.

Claims

1. A computer-implemented method for classifying three-dimensional (3D) objects, the method comprising: Provide (S10) a set of 3D objects, each of the 3D objects in the set having a signature representing the form of the 3D object; Calculate (S20) a multi-level cluster of the set of 3D objects, wherein the multi-level cluster is a hierarchical tree structure of clusters of the 3D objects in the set and has N hierarchical levels, the calculation including: Calculate (S200) the first cluster of the 3D objects of the set, each first cluster collecting the 3D objects of the set with close signatures, the first cluster thus forming the first level of the multi-level cluster and being the first level node of the hierarchical tree structure; Calculate (S210) one or more second clusters of the first cluster, each second cluster collecting one or more first clusters with close medoid signatures, the one or more second clusters thus forming the second level of the multi-level clusters and being second-level nodes in the hierarchical tree structure, each second-level node being the parent node of one or more first-level nodes; Following the second hierarchical level and until the final hierarchical level N is reached, one or more k-th clusters of the (k-1)-th cluster are iteratively computed for each consecutive hierarchical level k of the multi-level clustering (S220), each of the one or more k-th clusters collecting one or more (k-1)-th clusters with close medoid signatures, the one or more k-th clusters being k-level nodes in the hierarchical tree structure, and each k-level node being the parent node of one or more (k-1)-th level nodes; and Automatically or during user interaction, select (S30) one of the calculated clusters of a level of the multi-level clustering to define the current level; The selected cluster of 3D objects is displayed to the user in the first part of the display (S40); and The displayed 3D objects are categorized during user interaction (S80).

2. The computer-implemented method according to claim 1 further includes, before classifying the displayed 3D objects: During user interaction, a new hierarchical level that is different from the current level of the multi-level cluster is selected, thereby defining a new current level; The new cluster at the current level is selected automatically or during user interaction, the new cluster at the current level corresponding to the parent or child node of the previously selected cluster in the hierarchical tree structure; and The selected new cluster of 3D objects is displayed to the user in the first part of the display.

3. The computer-implemented method according to claim 2 further includes, prior to the steps of displaying the 3D object and classifying the displayed object: A first set of icons is displayed in the second part of the display, each icon representing a corresponding level of the multi-level clustering; in, Selecting a new hierarchy level during user interaction is performed by selecting one of the icons displayed in the first set, and the selected new hierarchy level is the hierarchy level represented by the selected icon.

4. The computer-implemented method according to claim 2 or 3, further comprising, prior to the steps of displaying the 3D object and classifying the displayed object: A second set of icons is displayed in the third part of the display, where each icon represents the corresponding cluster of the new current level. in, During user interaction, the selection of a cluster at the current level is performed by selecting one of the icons displayed in the second set, the selected cluster being the cluster represented by the selected icon.

5. The computer-implemented method according to any one of claims 1 to 3, further comprising repeating the following steps: Select one of the calculated clusters at the current level of the multi-level clustering, wherein the selected cluster at the current level is different from a previously selected cluster; The selected cluster of 3D objects is displayed in the first portion of the display. as well as Categorize the displayed 3D objects.

6. The computer-implemented method according to any one of claims 1 to 3, further comprising: Select the technical field to which the collection of 3D objects belongs; The appropriate level of the multi-level cluster is predicted based on the selected technical field using machine learning algorithms; as well as The predicted appropriate level is defined as the current level.

7. The computer-implemented method according to any one of claims 1 to 3, further comprising, for each cluster: Among the 3D objects in the cluster, a medoid 3D object is determined, which has a signature that is closest to the centroid signature of the cluster according to the following formula. : , in, It is the signature of each object i in the cluster. It is the signature of the medoid 3D object of the cluster, and It is the centroid signature of the cluster. Wherein, the centroid signature of the clustering It is calculated using the average of the signatures of the 3D objects in the cluster according to the following formula: , Where M is the number of 3D objects collected in the cluster, and It is the signature included in each 3D object i in the cluster; and The display of the selected cluster of 3D objects in the first part of the display further includes: For each pair of 3D objects in the set collected in the cluster, calculate the distance between the 3D objects of the pair on the display, the distance being proportional to the distance between the signatures of the 3D objects of the pair; and By using the calculated distance between the 3D objects of the pair on the display, the 3D objects are placed in the first part of the display, and the determined medoid 3D objects of the selected cluster are displayed at the center of the first part.

8. The computer-implemented method according to any one of claims 1 to 3, wherein, Displaying the selected cluster of 3D objects in the first portion of the display further includes: Displaying and automatically selecting all displayed 3D objects of the selected cluster in the first part of the display; and also including: During user interaction, deselect at least one of the displayed 3D objects to obtain a state where one or more of the displayed 3D objects remain selected; and During user interaction, categorize one or more of the displayed 3D objects that remain selected.

9. The computer-implemented method according to any one of claims 1 to 3, wherein, Categorizing the displayed 3D objects includes: The fourth section of the display shows the label input for the displayed 3D object; and During user interaction, the user can edit and / or confirm the label input in the fourth part.

10. The computer-implemented method according to claim 9, further comprising: The machine learning algorithm predicts the label of the displayed 3D object by using a machine learning algorithm and suggests the predicted label in the label input. The machine learning algorithm predicts the label based on the signature of the displayed 3D object.

11. The computer-implemented method according to any one of claims 1 to 3, wherein, Each of N consecutive hierarchical levels With the corresponding pre-defined parameters Associativity, such that for each from 2 to N , ; And among them: Calculating the first cluster of the 3D objects in the set further includes: Calculate the first cluster of the 3D objects in the set, each first cluster collecting 3D objects in the set with similar signatures, such that... in, and It is the signature of any pair of 3D objects i, j collected in the first cluster. The first cluster thus forms the first level of the multi-level cluster and is the first-level node of the hierarchical tree structure; Calculating the one or more second clusters further includes calculating one or more second clusters of the first cluster, each second cluster collecting one or more first clusters with close medoid signatures, such that... in, and It is any medoid signature of i, j collected in the first cluster in the second cluster, wherein the one or more second clusters thus form the second level of the multi-level clustering and are second-level nodes in the hierarchical tree structure, each second-level node being the parent node of one or more first-level nodes; and Following the second hierarchical level and up to the final hierarchical level N, iteratively calculating the one or more k-th clusters for each consecutive hierarchical level k of the multi-level clustering also includes calculating one or more k-th clusters, each of which collects one or more (k-1)-th clusters with close medoid signatures, such that... in, and It is any medoid signature of i, j in the (k-1)th cluster collected in the kth cluster, wherein the one or more kth clusters are kth level nodes in the hierarchical tree structure, and each kth level node is the parent node of one or more (k-1)th level nodes.

12. The computer-implemented method according to any one of claims 1 to 3, wherein, The distance between signatures is the Manhattan distance between the signatures.

13. A computer program product comprising instructions that, when executed by a processor, cause the processor to perform the method according to any one of claims 1 to 12.

14. A computer-readable storage medium having instructions recorded thereon, which, when executed by a processor, cause the processor to perform the method according to any one of claims 1 to 12.

15. A computer comprising a processor coupled to a memory, the memory storing instructions which, when executed by the processor, cause the processor to perform the method according to any one of claims 1 to 12.