3D clustering navigation

The method addresses inefficiencies in classifying 3D objects by employing multi-level clustering to form hierarchical structures, improving classification efficiency and consistency in industries like automotive and aerospace.

JP7856400B2Active Publication Date: 2026-05-11DASSAULT SYSTEMES SA
View PDF 9 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
DASSAULT SYSTEMES SA
Filing Date
2021-10-15
Publication Date
2026-05-11

AI Technical Summary

Technical Problem

Existing methods for classifying 3D objects in industries like automotive and aerospace are inefficient due to non-standardized naming, specialized jargon, and difficulty in distinguishing between similar parts, especially when using 3D signatures, which result in flat information levels and complex navigation.

Method used

A computer implementation method for classifying 3D objects through multi-level clustering, forming a hierarchical tree structure based on similar signatures, allowing users to select and classify clusters efficiently.

Benefits of technology

Improves classification efficiency by grouping 3D objects based on their form, reducing the number of clicks required and enhancing the consistency of classification through hierarchical clustering.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007856400000024
    Figure 0007856400000024
  • Figure 0007856400000025
    Figure 0007856400000025
  • Figure 0007856400000026
    Figure 0007856400000026
Patent Text Reader

Abstract

To provide a computer packaging method, program, storage medium and computer for classifying three-dimensional (3D) objects.SOLUTION: A method includes: providing a set of three-dimensional objects having a signature indicative of an aspect of each of the three-dimensional objects; and calculating multi-level clustering of the set of 3D objects. The multi-level clustering means a hierarchical tree structure of the 3D object of the set, in which the tree structure has N pieces of hierarchical levels. The method further includes: selecting one of calculated clusters at a certain level of the multi-level clustering automatically or upon a user interaction; defining a current level on the basis of the selected cluster; displaying the 3D object of the selected cluster to the user in a first part of a display; and classifying the displayed 3D object upon the user interaction.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to the field of computer programs and systems, more specifically to methods, systems, and programs for classifying sets of three-dimensional (3D) objects. [Background technology]

[0002] The market offers numerous systems and programs for the design, engineering, and manufacturing of objects. CAD stands for Computer-Aided Design, and refers to software solutions for designing objects, for example. CAE stands for Computer-Aided Engineering, and refers to software solutions for simulating the physical behavior of future products, for example. CAM stands for Computer-Aided Manufacturing, and refers to software solutions for defining manufacturing processes and operations, for example. In such computer-aided design systems, graphical user interfaces play a crucial role in terms of technical efficiency. These technologies can be integrated into Product Lifecycle Management (PLM) systems. PLM is a business strategy that helps companies share product data, apply common processing, and leverage enterprise knowledge to help develop products from concept to lifecycle, across the concept of an extended enterprise. Dassault Systèmes' PLM solutions (under the trademarks CATIA, ENOVIA, and DELMIA) provide an Engineering Hub for organizing product engineering knowledge, a Manufacturing Hub for managing manufacturing engineering knowledge, and an Enterprise Hub that enables enterprise integration and connects the enterprise to the Engineering and Manufacturing Hubs. Together, these systems provide an open object model that links products, processes, and resources to enable dynamic, knowledge-based product creation and decision support, facilitating product definition, manufacturing readiness, production, and service optimization.

[0003] Products based on artificial intelligence are increasing rapidly. Therefore, it is necessary to set up standard classifications (systematically grouping observed values ​​into categories) and collect as much information as possible for learning. However, in many industries, parts are not classified, and have not even been classified using standard classification methods.

[0004] In particular, industries such as the automotive and aerospace sectors generally rely on computer-aided design software (CAD) to digitally design products before mass production. CAD users create numerous digital 3D parts or objects. Generally, these 3D parts or objects are not properly named; that is, user-given names are inconsistent or non-standardized. Thus, a large set of 3D objects is created but not properly classified. Against this backdrop, a method for classifying 3D objects on a large scale is needed.

[0005] Because the human brain is more efficient at processing small amounts of information simultaneously, these large sets of 3D objects need to be "structured" for classification verification. Currently, there are three methods for classifying and annotating parts.

[0006] The first method is done by humans. To classify and annotate images toward creating a massive library of clean, annotated images (ImageNet), Google and Standard University use the Canical Turk approach, available on Amazon. The principle is simple: ask three different people to annotate the same image, and then adjust the results to augment the image dataset. Thanks to this approach, they have succeeded in tagging more than 14 million images. However, the main drawback of this first method is that it does not work in the industrial sector, for two main reasons. First, it may involve sensitive data. Second, the jargon used in industry is specialized: everyone knows what a "cat" is, but nobody knows what a "blind rivet" is.

[0007] The second method is to use attributes. This is a classic method of classifying parts using an SQL database or indexing engine. This method supports huge tables (see Google's BigTables). It is very easy to define how to classify parts with related attributes by combining query operators (e.g., SQL) such as "AND" and "OR". However, the main drawback of this second method is that it is very difficult to handle similar parts on a large scale because there are relatively few attributes that interrelate with shape.

[0008] The third method is to use a 3D specification or 3D signature. Since these attributes may not be visible on the 3D shape, the goal is to find a way to describe the 3D shape with a single vector (which may be high-dimensional). This vector can be created from two approaches. The first approach is a 3D specification (2.a). This is an explicit definition of the part, which can be extracted by geometric algorithms, for example, the number and location / direction of holes, the number of regular forms and their equations, etc. Once this information is extracted computationally, there is a way to convert that information into a single vector. The second approach is a 3D signature (2.b). This is a way to implicitly describe the shape. This method mainly uses transformation algorithms such as the Fourier transform and distance graphs between sets of random points on a surface. The output can be converted into a one-dimensional vector. Applying a distance metric to this graph is very straightforward. Unfortunately, these vectors have a large dimension, and it is not meaningful to try to compare them component by component. Therefore, the only way to compare two parts is to define a distance metric in this signature. In this step (2.a or 2.b), using principal component analysis or T-SNE, all parts may be displayed in a single window, as shown in Figure 4. However, the main drawback of this third method is that navigating this type of tree is difficult because the level of information is essentially flat and it is not at all easy to distinguish between groups of parts.

[0009] Against this backdrop, there is still a need for improved computer implementations for classifying three-dimensional (3D) objects. [Overview of the Initiative]

[0010] Therefore, a computer implementation method for classifying three-dimensional (3D) objects is provided. This method includes providing a set of 3D objects, each of which has a signature representing the form of the 3D object.

[0011] This method includes calculating a multi-level clustering of a set of 3D objects. The multi-level clustering is a hierarchical tree structure of clusters of the 3D objects in the set, and there are N hierarchical levels. The calculation of the multi-level clustering includes calculating a first cluster of the 3D objects in the set. Each first cluster gathers 3D objects in the set that have similar signatures. Thus, each first cluster forms the first level of the multi-level clustering and is a node at the first level of the hierarchical tree structure. The calculation of the multi-level clustering includes calculating one or more second clusters among the first clusters. Each second cluster gathers one or more first clusters that have similar medoid signatures. Thus, the one or more second clusters form the second level of the multi-level clustering and are nodes at the second level of the hierarchical tree structure. The nodes at the second level are each a parent node of one or more nodes at the first level. The calculation of the multi-level clustering includes repeatedly calculating one or more k-th clusters among the (k - 1)-th clusters for each successive hierarchical level k of the multi-level clustering until reaching the last hierarchical level N after the second hierarchical level. Each of the one or more k-th clusters gathers one or more (k - 1)-th clusters that have similar medoid signatures. The one or more k-th clusters are nodes at the k-th level of the hierarchical tree structure, and the nodes at the k-th level are each a parent node of one or more nodes at the (k - 1)-th level.

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

[0013] This method may include one or more of the following: -This method may further include the following before classifying the displayed 3D objects: selecting a new hierarchical level of multilevel clustering different from the current level during user interaction, thereby defining the new current level; automatically or during user interaction, selecting a new cluster at the new current level that corresponds to the parent or child node of a previously selected cluster in the hierarchical tree structure; and displaying the 3D objects of the selected new cluster to the user in the first part of the display; -The method may further include, prior to the step of displaying 3D objects and classifying the displayed objects: displaying a first set of icons on a second part of the display, each icon representing a level of multilevel clustering, where the selection of a new hierarchy level during user interaction is performed by selecting one of the displayed icons in the first set, and the selected new hierarchy level is represented by the selected icon; -This method may include, prior to the step of displaying 3D objects and classifying the displayed objects: displaying a second set of icons on a third portion of the display, where each icon in the second set represents a cluster of the new current level, where the selection of a cluster of the new current level during user interaction is performed by selecting one of the displayed icons in the second set, and the selected cluster is represented by the selected icon; -This method may further consist of repeating: selecting one of the computed clusters at the current level of multilevel clustering, wherein the selected one of the computed clusters at the current level is different from one previously selected; displaying the 3D objects of the selected cluster in a first part of the display; and classifying the displayed 3D objects; - The method may further include: selecting a technical domain to which the set of 3D objects belongs; predicting an appropriate level of multi-level clustering based on the selected technical domain by a machine learning algorithm; and defining the predicted appropriate level as the current level; - The method may further include, for each cluster, determining a medoid 3D object from the 3D objects of the cluster, where the medoid 3D object is the signature S that is closest to the centroid signature of the cluster according to the following formula メドイド of a 3D object:

Number

Number

Number

number

number

[0014] Furthermore, a computer-readable storage medium on which the computer program is recorded is provided.

[0015] Furthermore, a system is provided that includes a memory containing the computer program and a processor coupled with a graphical user interface. [Brief explanation of the drawing]

[0016] [Figure 1] An example flowchart of this method is shown; [Figure 2] An example flowchart of this method is shown; [Figure 3] An example flowchart of this method is shown; [Figure 4] This shows an example of a 3D object displayed in a single window; [Figure 5] An example of a set of 3D objects is shown; [Figure 6] An example of multilevel clustering is shown; [Figure 7] This shows an example of classifying 3D objects with clusters; [Figure 8] Figure 7 shows an example of repeating the classification of 3D objects displayed for different clusters after the initial classification; [Figure 9] Figure 8 shows an example of selecting a new hierarchical level before classification. [Figure 10] An example of a display is shown. [Figure 11] Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 12] Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 13] Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 14] Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 15]Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 16] Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 17] Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 18] Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 19] Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 20] Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 21] Figure 5 shows an example of calculating multilevel clustering for a set of 3D objects and another set of 2D objects; [Figure 22] This shows an example of the system. [Modes for carrying out the invention]

[0017] Referring to the flowchart in Figure 1, a computer implementation method for classifying a set of three-dimensional (3D) objects is proposed. This method includes step S10, which provides a set of 3D objects, each 3D object in the set having a signature that represents the morphology of the 3D object. "Morphology of a 3D object" refers to the shape (the term "form" is also a synonym for "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 (such as an assembly of parts) may be a product structure, for example, a tree structure. Morphology defines the configuration of the external structure. Morphology is a set of features that define the external structure of a 3D object.

[0018] This method includes step S20, which calculates the multilevel clustering of a set of 3D objects. Multilevel clustering is a hierarchical tree structure of clusters of the 3D objects in the set, with N hierarchical levels.

[0019] The calculation step S20 is performed as shown in the flowchart in Figure 2. The calculation of multilevel clustering includes step S200, which calculates a first cluster of the 3D objects in the set. Each first cluster gathers the 3D objects in the set that have similar signatures. Thus, the first clusters form the first level of multilevel clustering and are nodes of the first level in the hierarchical tree structure. Step S20, which calculates multilevel clustering, further includes step S210, which calculates one or more second clusters from the first clusters. Each second cluster gathers one or more first clusters that have similar medoid signatures. Thus, one or more second clusters form the second level of multilevel clustering and are nodes of the second level in the hierarchical tree structure. Each node of the second level is the parent node of one or more nodes of the first level. The calculation of multilevel clustering also includes step S220, which iteratively calculates one or more kth clusters from the (k-1)th clusters for each consecutive k-th hierarchical level of multilevel clustering, after the second hierarchical level and until the final hierarchical level N is reached. Each of the one or more kth clusters collects one or more (k-1)th clusters that have a close medoid signature. The one or more kth clusters are kth-level nodes in the hierarchical tree structure, and each k-level node is the parent node of one or more (k-1)th level nodes.

[0020] Referring again to Figure 1, the method includes step S30 of automatically or in response to user interaction selecting one of the computed clusters at a certain level of multilevel clustering, thereby defining the current level. The method includes step S40 of displaying the 3D objects of the selected cluster to the user in a first part of the display. The method includes step S80 of classifying the displayed 3D objects in response to user interaction. Classification is the identification of which set of categories (or subpopulations) the displayed 3D objects belong to. Classification may consist of assigning a predetermined category (e.g., assigned to a word such as a tag) to the displayed 3D object, thereby registering that the displayed 3D object belongs to the category of that tag.

[0021] This computer implementation method improves how users classify large sets of 3D objects. Specifically, sets of 3D objects to be classified are clustered, and these clusters are displayed to the user, who can select one of them. Many clusters consist of multiple 3D objects, and the user can classify the 3D objects in the selected cluster simultaneously. Therefore, the efficiency of classification is improved because the computer implementation method assists the user in performing the classification. The user no longer has to examine each 3D object individually. Classification is performed considering clusters that group 3D objects together. The user can annotate all 3D objects in a cluster with a single click. Therefore, the number of clicks required to achieve the same result is reduced, and the classification of all 3D objects is performed more quickly.

[0022] Furthermore, since clusters are created from the computation of multilevel clustering of a set of 3D objects, a hierarchical tree structure of clusters with N hierarchical levels is formed. This hierarchical organization of 3D objects improves the classification of 3D objects. In particular, 3D objects are grouped based on signatures that represent their form. Thus, each cluster groups 3D objects with similar forms, and 3D objects belonging to a cluster tend to be classified together. Therefore, this method assists users in a particularly effective way.

[0023] Furthermore, multilevel clustering is calculated so that 3D objects grouped into a given level of clustering are grouped into the same clusters at higher hierarchical levels. In fact, except for the first level, clusters are calculated based on the medoid signatures of lower-level clusters (rather than the signatures of the 3D objects themselves). Therefore, when higher hierarchical levels are calculated, groups of clusters of 3D objects are considered. This allows for the formation of a hierarchical tree structure consisting of child and parent nodes, where each parent node gathers 3D objects from one or more child nodes at lower hierarchical levels. Thus, consistency in grouping within clusters is particularly important in the resulting tree structure. Because multilevel clustering calculations form consistent clusters of 3D objects, classification efficiency is improved.

[0024] This method is implemented on a computer. This means that the steps (or substantially all steps) of the method are performed by at least one computer or any system. Thus, the steps of this method are performed by a computer, possibly fully automatically or semi-automatically. In the example, at least some steps of this method may be initiated through user-computer interaction. The required level of user-computer interaction may depend on the expected level of automation and be balanced with the need to implement the user's wishes. In the example, this level may be user-defined and / or predefined.

[0025] A typical example of a computer performing a method is a system that executes the method. The system may include a processor coupled with memory and a display, where memory stores computer programs containing instructions for performing the method. The display may be a graphical user interface (GUI). Memory may store a database. Memory is hardware adapted for such storage and may consist of several physically distinct components (e.g., one for the program, one for the database).

[0026] A "database" refers to a collection of data (i.e., information) organized for searching and retrieving (for example, a relational database based on a given structured language such as SQL). When a database is stored in memory, it allows for rapid searching and retrieval by a computer. In practice, databases are configured in combination with various data processing operations to facilitate the storage, retrieval, modification, and deletion of data. A database may consist of a file or a set of files that can be divided into records, each record consisting of one or more fields. A field is the basic unit of data storage. Users may retrieve data primarily through queries. Users can use keywords and sorting commands to quickly search, rearrange, group, and select fields in a large number of records to obtain or create reports on specific aggregations of data according to the rules of the database management system being used.

[0027] This method allows for the classification of sets of three-dimensional (3D) objects. A 3D object (or 3D modeled object) is any object defined by data stored, for example, in a database. Therefore, the expression "3D object" refers to the data itself. Depending on the type of system, 3D objects may be defined by various types of data. The system may actually be any combination of CAD, CAE, CAM, PDM, and / or PLM systems. In these various systems, 3D objects are defined by corresponding data. Thus, CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data can be discussed. However, since 3D objects can be defined by data corresponding to any combination of these systems, these systems are not exclusive to each other. Therefore, the system can be both a CAD and a PLM system, as will become clear from the definition of such a system described below.

[0028] The term CAD system further refers to a system, such as CATIA, that is adapted for designing at least 3D objects based on their graphical representation. In this case, the data defining the 3D object includes data that enables the representation of the 3D object. A CAD system can provide a representation of a CAD 3D object, for example, using edges or lines, and in certain cases faces or surfaces. Lines, edges, or surfaces can be represented in various ways, with non-uniform rational B-splines (NURBS) being an example. Specifically, a CAD file contains specifications from which geometry may be generated, enabling the generation of what is represented. The specifications of a 3D object may 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 1 megabyte per part. Also, a 3D object may typically be an assembly of thousands of parts.

[0029] In the context of CAD, a 3D object can represent a product, such as a part, an assembly of parts, or, in some cases, a product assembly, or an assembly of products structured as a tree structure. A "3D object" means an object modeled with data that enables a 3D representation. 3D representation allows parts to be viewed from all angles. For example, a 3D object, when represented in 3D, may be processed and rotated based on any of its axes, or any axis on the displayed screen. This particularly excludes 2D icons that are not 3D modeled. 3D representation facilitates design (i.e., improves the speed at which designers statistically perform tasks). Since product design is part of the manufacturing process, this speeds up the manufacturing process in industry.

[0030] A 3D object may represent the geometry of a product after its virtual design has been completed, for example, by a CAD software solution or CAD system, and the product may be a (e.g., mechanical) part or an assembly of parts (an assembly of parts may be considered a part itself from the perspective of this method, or equivalent to an assembly of parts, since this method may be applied independently to each part of the assembly), or more generally, an assembly of any rigid body (e.g., a movable mechanism). CAD software solutions enable the design of products in a vast array of industries, including aerospace, architecture, construction, consumer goods, high-tech equipment, industrial equipment, transportation, marine, and / or offshore oil / gas production or transportation. The 3D objects designed using this method may be industrial products, which may be any mechanical parts, such as parts for land vehicles (e.g., automobile and light truck equipment, racing cars, motorcycles, truck and motor equipment, trucks and buses, trains, etc.), parts for aircraft vehicles (e.g., airframe equipment, aerospace equipment, propulsion equipment, defense products, aircraft equipment, space equipment, etc.), parts for marine vehicles (e.g., naval equipment, commercial ships, offshore equipment, yachts and workboats, marine equipment, etc.), general mechanical parts (e.g., industrial manufacturing machinery, heavy machinery or equipment, installation equipment, industrial equipment products, metalwork products, tire manufacturing products, etc.), electrical machinery or electronic components (e.g., home appliances, security and / or control and / or measurement products, computing and communication equipment, semiconductors, medical devices and equipment, etc.), consumer goods (e.g., furniture, home and garden products, leisure goods, fashion products, products of durable goods retailers, products of textile retailers, etc.), and packaging (e.g., food and beverages and tobacco, beauty and personal care, household goods packaging, etc.).

[0031] CAD systems may be history-based. In this case, 3D objects are further defined by data that includes a history of their geometric features. 3D objects may actually be designed by a physical person (i.e., a designer / user) using standard modeling functions (extrude, rotate, cut, round, etc.) and / or standard surface functions (sweep, blend, loft, fill, deform, and / or smooth, etc.). Many CAD systems that support such modeling functions are history-based systems. This means that the creation history of design features is stored by a non-cyclic data flow that typically links the aforementioned geometric features via input and output links. The history-based modeling paradigm has been well-known since the early 1980s. 3D objects are described by two persistent data representations: history and B-rep (boundary representation). B-rep is the result of calculations defined in the history. The shape of a part displayed on a computer screen when a 3D object is represented is the B-rep (e.g., tessellation of the B-rep). The part's history is the design intent. Essentially, the history collects information about the actions a 3D object has taken. To make complex parts easier to view, B-reps may be saved together with the history. The history may also be saved together with the B-rep to allow for design changes to the part according to the design intent.

[0032] A PLM system further refers to a system adapted for managing 3D objects that represent manufactured (or products to be manufactured) physical products. Therefore, in a PLM system, 3D objects are defined by data suitable for manufacturing physical objects. This data may typically consist of dimensional values ​​and / or tolerances. It is preferable to set such values ​​to ensure the correct manufacturing of the object.

[0033] A CAM solution further refers to a solution (hardware or software) suited to managing product manufacturing data. Manufacturing data typically includes data related to the product being manufactured, the manufacturing process, and the necessary resources. CAM solutions are used to plan and optimize the entire product manufacturing process. For example, a CAM solution can provide CAM users with information on feasibility, the duration of the manufacturing process, or the number of resources, such as specific robots, that may be used at a particular step of the manufacturing process, thus enabling decisions regarding management or necessary investments. CAM is a subsequent process following the CAD process and, potentially, the CAE process. Such CAM solutions are offered by Dassault Systèmes under the trademark DELMIA®.

[0034] CAE solutions further refer to solutions (hardware or software) suited to analyzing the physical behavior of 3D objects. A widely used and well-known 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 through equations. Such CAE solutions are offered by Dassault Systèmes under the trademark SIMULIA®. Another growing CAE technique involves modeling and analyzing complex systems composed of multiple components from different fields of physics without CAD geometry data. CAE solutions enable simulation, and therefore, the optimization, improvement, and verification of manufactured products. Such CAE solutions are offered by Dassault Systèmes under the trademark DYMOLA®.

[0035] PDM is an abbreviation for Product Data Management. A PDM solution refers to a solution (hardware or software) suited to managing all types of data related to a specific product. PDM solutions can be used by all parties involved in the product lifecycle, primarily engineers, but also project managers, finance personnel, sales representatives, and buyers. PDM solutions are typically based on a product-oriented database. This allows parties to share consistent data about the product, preventing them from using different data. Such PDM solutions are offered by Dassault Systèmes under its trademark ENOVIA®.

[0036] This method includes step S10, which provides a set of 3D objects. The set of 3D objects may be any set of 3D objects. The set of 3D objects may be, for example, a set of 3D objects stored in a database. Step S10, which provides the set, may be performed in any way. For example, the set of 3D objects may be stored in memory, and the user may select the memory location where the set of 3D objects is stored. Alternatively, step S10, which provides the set of 3D objects, may be performed by downloading the set of 3D objects from a predetermined location in memory during user interaction. The memory may be any type of memory, including a database. The database may be a relational database. Alternatively or additionally, the database may be stored in non-volatile memory.

[0037] Each 3D object in the database is associated with a signature. A signature is a unique identifier for a particular 3D object and contains information about the shape (or form) and structure of the 3D object. The signature may further reference one or more specific structural features of the 3D object. Signatures can be used as input to a database indexer. Signatures are calculated from values ​​that represent at least one of the morphologies of the 3D object. The values ​​representing the morphology may be values ​​that quantify the morphology. The values ​​may be numerical. The values ​​may be included in the signature. The term "quantification" means information that can be ordered on a scale in a deterministic way, such as numerical values ​​ordered on a numerical scale (for example, using an axis system). The values ​​that quantify the morphology may be ordered in each space, for example, so that an analytical evaluation of similarity is possible based on the difference between the values ​​in each feature space. Thus, combinations of values ​​that quantify different morphologies enable an analytical evaluation of similarity between 3D objects. Signatures are calculated from values ​​that represent the morphology, but may also be calculated from other features of the 3D object.

[0038] In the example, the appearance signature may be a vector containing concatenated values ​​representing the morphology of the 3D object. The values ​​representing the 3D object may include numbers, vectors, and / or numerical values ​​in matrix form. In the example, the signature of the 3D object is a fixed-size vector that defines the morphology of the 3D object.

[0039] Step S10, which provides a set of 3D objects, may also include providing the signatures of the 3D objects in the set at the same time as providing the set of 3D objects. Alternatively, the method may include calculating the signature of each 3D object in the provided set after step S10, which provides the set of 3D objects.

[0040] The signature calculation may involve any combination of transformations of the 3D object into a fixed-size vector.

[0041] In the example, the transformation may consist of embedding the 3D shape of the 3D object. The transformation may be any combination of 3D reduction techniques that can transform any 3D object into a fixed-size vector. In that case, the signature may be, for example, a 416-length floating-point vector. An example of a 3D reduction technique is a string histogram, in which a histogram of the string lengths of the 3D object is calculated. Another example of a 3D reduction technique is a D2 shape distribution, which consists of a normalized histogram of the distance occurrence probabilities between two randomly selected points on the 3D object. Yet another example of a 3D reduction technique is a Hough-3D descriptor, which consists of the main plane parameters of the triangles of the 3D object. Yet another example of a 3D reduction technique is a 3D shape spectral descriptor, which consists of local curves on the surface of the 3D object. Yet another example of a 3D reduction technique is an extended Gaussian image, which consists of the projection of the triangulation of the 3D object onto a sphere cut into small faces.

[0042] In the example, the transformation may consist of embedding the semantics of the 3D object. The transformation may be any TF-IDF (word frequency-inverse document frequency) algorithm. The TF-IDF algorithm can be fitted to a selected dataset to convert the semantic domain contained in the metadata of the 3D object into a fixed-size vector. In this case, the signature may be, for example, a 500-length floating-point vector.

[0043] In calculating the signature, any of these transformations may be used individually or concatenated.

[0044] This method includes step S20, which calculates the multilevel clustering of a set of 3D objects. Multilevel clustering is a hierarchical tree structure of clusters of 3D objects in the set, with N hierarchical levels. The tree structure graphically represents the hierarchical nature of multilevel clustering. The tree structure consists of tree elements called "nodes" and lines called "branches" that connect the elements. A parent node is the node one level higher in the hierarchy (i.e., a node close to the root node) and lies on the same branch. Conversely, a child node is the node one level lower in the hierarchy. In a tree structure, a node has only one parent node. However, a node can have one or more child nodes. Sibling nodes are nodes that share the same parent node. The tree structure may be finite. In that case, the tree structure has a member that has nothing above it. This member is called the root node. The root node is the starting node. Alternatively, the tree structure may be infinite. In that case, the tree structure has no root node.

[0045] The calculation of multilevel clustering includes step S200, which calculates a first cluster of 3D objects in the set. The first cluster forms the first level of the multilevel clustering. The first cluster is a node at the first level of the hierarchical tree structure. In the hierarchical tree structure, the first cluster is a node with no children. The first cluster is called a leaf node.

[0046] Each first cluster gathers a set of 3D objects with similar 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 may be less than a given parameter. Thus, each 3D object is assigned to a first cluster that can gather one or more other 3D objects that have signatures similar to the signature of the 3D object. Therefore, the signatures of 3D objects gathered in the same first cluster are similar, meaning that the distance between them is small. A first cluster may gather only one 3D object, for example, if the other 3D objects in the set do not have signatures similar to that of the 3D object in question.

[0047] The calculation of multilevel clustering includes step S210, which calculates one or more second clusters from the first clusters. Each second cluster collects one or more first clusters that have similar medoid signatures. A cluster's medoid 3D object (or "medoid") is a 3D object collected in that cluster that has the minimum average dissimilarity with all other 3D objects collected in the cluster. For example, dissimilarity with other 3D objects may be evaluated based on the distance between the signatures of the other 3D objects. A cluster's medoid 3D object may be determined based on the calculation of the cluster's centroid signature. The centroid signature may be the average of the signatures of the 3D objects collected in the cluster. The signature of a cluster's medoid 3D object is called the cluster's "medoid signature". Thus, each first cluster is assigned to a second cluster that can collect one or more other first clusters that have a medoid signature similar to that of the first cluster. Therefore, the medoid signatures of first clusters collected in the same second cluster are similar, meaning they are close to each other. This means that the signatures of 3D objects collected in the same second cluster are also similar. It also means that 3D objects collected in a first cluster can also be collected in the same second cluster. This improves the structural consistency of the multilevel clustering. Thus, one or more second clusters form a second level of the multilevel clustering. One or more second clusters are nodes in the second level of the hierarchical tree structure. Each node in the second level is the parent node of one or more nodes in the first level. In the hierarchical tree structure, a second cluster may collect multiple first clusters. In that case, the second cluster is the parent node of these multiple first clusters. These multiple first clusters are child nodes.A second cluster may consist of only one first cluster, for example, if no other first cluster has a medoid signature close to the first cluster under consideration. In that case, the second cluster is the parent node of this single first cluster, and this single first cluster is the unique child node of this second cluster.

[0048] The calculation of multilevel clustering includes step S220, which iteratively calculates one or more kth clusters from the (k-1)th clusters for each consecutive hierarchical level k of the multilevel clustering, after the second hierarchical level, until the final hierarchical level N is reached. For example, the calculation of multilevel clustering may include sequentially calculating one or more third clusters, one or more fourth clusters, and so on, until one or more Nth clusters are finally calculated. For each hierarchical level k, each of the one or more kth clusters collects one or more (k-1)th clusters that have a close medoid signature. One or more kth clusters are nodes at the kth level of the hierarchical tree structure. Each node at the kth level is the parent node of one or more (k-1)th level nodes.

[0049] Therefore, each (k-1)th cluster is assigned to a kth cluster that can collect one or more other (k-1)th clusters that have a medoid signature similar to that of the (k-1)th cluster. Thus, the medoid signatures of (k-1)th clusters collected in the same kth cluster are similar, i.e., the distance between them is small. This means that the signatures of 3D objects collected in the kth cluster are also similar. It also means that 3D objects collected in a (k-1)th cluster can also be collected in the same kth cluster. This improves the structural consistency of multilevel clustering. Thus, one or more kth clusters form the kth level of multilevel clustering. One or more second clusters are nodes in the kth level of the hierarchical tree structure. Each node in the kth level is the parent node of one or more nodes in the (k-1)th level. In the hierarchical tree structure, a kth cluster may collect multiple (k-1)th clusters. In that case, the k-th cluster is the parent node of these multiple first clusters, and these multiple (k-1) clusters are child nodes. The k-th cluster may also consist of only one (k-1) cluster, for example, if the other (k-1) clusters do not have a medoid signature close to that of the k-th cluster under consideration. In that case, the k-th cluster is the parent node of this single (k-1) cluster, and this single (k-1) cluster is a unique child node of this k-th cluster.

[0050] This method includes a step S30 in which one of the computed clusters at a certain level of multilevel clustering is selected automatically or in response to user interaction, thereby defining the current level. The selection step S30 may be performed automatically. In this case, the method may select a predetermined level as the current level. The predetermined level may be a recorded parameter or a default parameter. After selecting a level, the method may select one of the clusters at the selected level. The selection of one of the clusters may be performed automatically; for example, the clusters at that level may be hierarchically organized, and the method may select the first cluster at that level. The method may also randomly select one of the clusters at that level.

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

[0052] S30 understands that multiple subsequent selections may be made. In the example, a default cluster at one level of multilevel clustering may be automatically selected, and then the user may make one or more cluster selections until they are satisfied with that selection.

[0053] The method includes step S40 of displaying 3D objects of a selected cluster to the user in a first part of the display. A part of the display is a predetermined portion of the surface of the display. The surface of the display may be subdivided, for example, and the first part may be one of the subdivided parts of the display. The display may consist of several parts, and the first part may be the main part of the display. The main part may be the largest of the parts of the display. The displayed 3D objects may be distributed in the first part. The distribution of the displayed 3D objects may be uniform in a part of the first part. The distribution of the displayed 3D objects may be organized in a part of that part according to the user. For example, one or more of the displayed 3D objects may be in the center of a part of the first part. Other 3D objects may be around the periphery of that part. For example, other 3D objects may be displayed around one or more 3D objects displayed in the center of a part of the first part. The displayed 3D objects do not have to overlap each other in the first part. 3D objects may be displayed with similar viewpoints, similar scales, and / or similar designs (color, line thickness, graphic rules, etc.), meaning the camera is in the same relative position and direction to all displayed 3D objects.

[0054] This method includes step S80 for classifying displayed 3D objects during user interaction. The user may classify all displayed 3D objects simultaneously. For example, the user may perform a single user interaction to classify all displayed 3D objects. The user may classify some of all displayed 3D objects simultaneously. In this case, this method may include classifying a selected portion of the displayed 3D objects. Step S80 for classifying displayed 3D objects may include assigning tags to the displayed 3D objects or validating predictive tags. Tags are keywords or terms associated with or assigned to information that describe the characteristics of the 3D objects. Tags allow for easy grouping of information containing the same keywords. Keywords or terms may be taken from dictionaries or industry standards. Industry standards may include industry standards such as eCl@ss.

[0055] This computer implementation method improves the classification of 3D objects. In fact, using this method, users can classify multiple displayed 3D objects simultaneously. Users are effectively assisted in classifying the displayed 3D objects. Specifically, classification is performed by considering clusters that group together 3D objects. These clusters are created from multi-level clustering calculations of sets of 3D objects. This hierarchical organization of 3D objects improves the classification of 3D objects. In fact, 3D objects are grouped based on signatures that represent their form; therefore, each cluster gathers 3D objects with similar forms. Consequently, these 3D objects tend to be classified together, effectively assisting the user during classification. Furthermore, the resulting tree structure improves the consistency of grouping within clusters. Therefore, the multi-level clustering calculation creates consistent clusters of 3D objects that are displayed together to the user, improving classification efficiency. In particular, in the field of user experience (UX), it is generally accepted that only a small amount of information (e.g., 3-4 pieces) should be presented at once to support user analysis. This principle is recognized in the field of UX. During multilevel clustering calculations, clusters containing nearly identical 3D objects are formed. Therefore, since 3D objects should have the same tags in a given cluster, multilevel clustering facilitates tagging.

[0056] Referring to the flowchart in Figure 3, the method may further include step S50, during user interaction, to select a new hierarchical level of multilevel clustering that is different from the current level, before classifying the displayed 3D objects, thereby defining the new current level. Step S50, which selects a new hierarchical level, may include detecting user interaction with a graphic element displayed on the screen that represents the new hierarchical level. For example, the method may include displaying a hierarchical tree structure, where the hierarchical tree structure displays elements that represent each hierarchical level. The user may select one of the displayed elements to select the hierarchical level represented by the selected element.

[0057] The method may further include step S60, which, before classifying the displayed 3D objects, automatically or in response to user interaction, selects a new cluster at the new current level that corresponds to a parent or child node of a previously selected cluster in a hierarchical tree structure.

[0058] In S60, it is understood that multiple subsequent selections may be made. In the example, a new cluster may be automatically selected for a new level of multilevel clustering, and then the user may make one or more cluster selections until they are satisfied with that selection.

[0059] The new current level may 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 may traverse the hierarchical tree structure to identify the node of the new current level that is the parent node of the previously selected cluster. In fact, each node in the hierarchical tree structure contains only one parent node (except for the node at the last hierarchical level; if the current level is the last hierarchical level, the new current level cannot be a higher hierarchical level).

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

[0061] The method may further include step S70, which displays the 3D objects of the newly selected cluster to the user in a first part of the display before classifying the displayed 3D objects. Step S70, which displays the 3D objects of the newly determined cluster, may include deleting the previously selected cluster 3D objects displayed in the first part before step S70, which displays the 3D objects of the newly determined cluster. Step S70, which displays the 3D objects of the newly determined cluster, may be performed in accordance with step S40, which displays the previously selected cluster 3D objects.

[0062] Step S50, selecting a new hierarchy level, improves the classification of 3D objects. Indeed, it becomes possible to make the classification finer or coarser. The user may select a higher hierarchy level in the tree structure to classify more 3D objects simultaneously (because the parent cluster contains more 3D objects). The user may also select a lower hierarchy level in the tree structure to classify fewer 3D objects simultaneously (because the child cluster contains fewer 3D objects). For example, if the user thinks there are too many 3D objects displayed, the user may reduce the number of displayed 3D objects by selecting a lower hierarchy level. This allows for finer precision, as the child nodes will have the same number or fewer, strictly speaking, fewer 3D objects. Furthermore, since clusters are calculated based on signatures, the 3D objects of child nodes are more likely to be classified together. Thus, classification becomes easier for the user, and the hierarchy level used can be adapted.

[0063] In the example, the method may further include displaying a first set of icons in a second part of the display before the steps of displaying 3D objects and classifying the displayed objects. Each icon represents a different level of multilevel clustering. The icons are small emojis representing each level (e.g., bars, circles, cubes, etc.). The positions of the first set of icons may be organized in the second part of the display. The first set of icons may be aligned along a hierarchical tree structure. The order of the aligned consecutive icons may be the same as the order of the levels in the hierarchical tree structure. The icon in the first set representing the current level may be highlighted. The icon for the current level may be displayed in a different color.

[0064] During user interaction, the step of selecting a new hierarchy level may be performed by selecting one of the displayed icons from a first set. The selected new hierarchy level may be the level represented by the selected icon. For example, the user may interact with one of the displayed icons from the first set using a pointing device or, if the display is a touchscreen, via touch.

[0065] Selecting a new hierarchical level based on the first set of icons displayed represents an ergonomic improvement for the user. In fact, the user can directly select a new hierarchical level using one of the icons in the first set of icons. Displaying the first set of icons in a second portion of the display also provides the user with an overview of the hierarchical tree structure, sometimes referred to as a "bird's-eye view." The user can understand which hierarchical level they are currently working at and whether they want to move up or down levels in the hierarchical tree structure. This represents a further ergonomic improvement for the user during classification.

[0066] 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 cluster in the new current level. With respect to the first set of icons, the positions of the icons in the second set may be organized in the third portion of the display. The icons in the second set may be aligned. For example, the icons in the second set may be aligned according to the number of 3D objects that each cluster collects. The icons in the second set representing the currently selected cluster may be highlighted. The icons of the currently selected cluster may be displayed in a different color.

[0067] During user interaction, the step of selecting the current level cluster may be performed by selecting one of the displayed icons in a second set. The selected cluster may be the cluster represented by the selected icon. For example, the user may interact with one of the displayed icons in the second set using a pointing device or, if the display is a touchscreen, via touch.

[0068] Selecting a cluster based on a second set of displayed icons represents an ergonomic improvement for the user. In fact, the user can directly select a cluster level using one of the icons in the second set. Displaying the second set of icons in a third portion of the display also provides an overview of the clusters at the current level. The user can understand which cluster they are currently working in and whether they want to move to a different cluster at the current level. This represents a further ergonomic improvement for the user during classification.

[0069] In the example, the method may further repeat the process of selecting one of the computed clusters at the current level of multilevel clustering. Each time iteration, the selected computed cluster at the current level may be different from the previously selected one. The method may also consist of repeatedly displaying a 3D object of the newly selected cluster in the first part of the display for each newly selected cluster. Each time a 3D object of a newly selected cluster is displayed, the method may further repeat the classification of the displayed 3D object. The iteration may end when all clusters at the current level have been displayed and classified by the user. If one of the computed clusters is selected automatically, the selection may be performed according to the order of the clusters at the current level.

[0070] This iterative process allows users to sequentially classify 3D objects in clusters at the same hierarchical level (the current level). Therefore, the efficiency of user classification is improved.

[0071] In this example, the method may further include selecting a technology domain to which a set of 3D objects belong. A technology domain is a group of objects that share common characteristics. The selected technology domain may be one shared by most of the 3D objects in the set. The method may further include predicting an appropriate level of multilevel clustering based on the selected technology domain using a machine learning algorithm. The method may further include defining the predicted appropriate level as the current level. The machine learning algorithm may be any machine learning algorithm. The machine learning algorithm may be trained on collected user-selected data. The machine learning algorithm may take multilevel clustering and the selected technology domain as input. The machine learning algorithm may output an appropriate level.

[0072] Machine learning algorithms improve classification efficiency. In fact, machine learning algorithms predict the appropriate level based on the selected technical domain. Therefore, directly, the level the user is working at is appropriate.

[0073] This method may further include determining a medoid 3D object from among the 3D objects of the cluster for each cluster. The medoid 3D object may have a signature that is closest to the cluster's centroid signature. The medoid 3D object may have a signature S that can be determined according to the following formula. メドイド It may include:

number

[0074] TIFF0007856400000007.tif42170

[0075] TIFF0007856400000008.tif65170

[0076] Cluster centroid signature S 重心 This may be calculated using the average of the signatures of the cluster's 3D objects. Cluster centroid signature S 重心 This can also be calculated according to the following formula:

number

[0077] TIFF0007856400000010.tif88170

[0078] Displaying the 3D objects of the selected cluster in the first part of the display may include displaying the 3D objects in a 2D bubble representation. A 2D bubble representation is a 2D graph containing bubbles representing the 3D objects, where the distance between two bubbles (i.e., disks of each 3D object) is proportional to the similarity rate (e.g., the norm between the signatures of the two 3D objects represented by the two bubbles). This method may also use a D3.js graph component to display the 2D bubble representation. This component attempts to respect the distance between the 3D objects by minimizing energy.

[0079] During user interaction, selecting a new hierarchical level of multilevel clustering, different from the current level, may be based on a 2D bubble representation. For example, the user may place a pointing device on a bubble in a 2D bubble representation representing a given cluster and scroll the wheel up and down to select one of the child nodes or a parent node of that given cluster.

[0080] Using medoid signatures improves the computation of hierarchical tree structures. In fact, clusters are formed based on the signatures of medoids, which are 3D objects whose signatures are closest to the centroid signature. Therefore, using medoid signatures allows for the computation of a consistent hierarchical tree structure with respect to the morphology of 3D objects. Furthermore, medoid 3D objects are displayed in 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, preventing user confusion. Because medoid 3D objects are always centrally located, the user's attention is not disturbed by changes. Morphologically, these changes are regular and continuous. This ergonomic effect stems from the construction of hierarchical tree structures via medoid signatures and the specific display of this method (centering of medoid 3D objects).

[0081] Displaying the 3D objects of the selected cluster in the first part of the display may further include displaying all the displayed 3D objects of the selected cluster in the first part of the display and automatically selecting them. This method stores in memory which of the displayed 3D objects are selected and selects all of them by default. The selected 3D objects may be highlighted in the first part of the display, for example, using a different color or graphic elements such as surrounding the object with a circle. This method may further include deselecting at least one of the displayed 3D objects during user interaction, thereby obtaining one or more displayed 3D objects that remain selected. This method may remove the one or more deselected 3D objects from memory. The user may deselect one or more displayed 3D objects by pointing to the one or more displayed 3D objects to be deselected on the display. This method may further include categorizing the one or more displayed 3D objects that remain selected during user interaction. This method may examine memory to determine which of the displayed 3D objects remain selected.

[0082] This improves the ergonomics of classification by allowing users to deselect parts of 3D objects before classification.

[0083] In the example, the user does not need to deselect any of the displayed 3D objects. In this case, all the displayed 3D objects that were initially selected remain selected. Therefore, the user may classify all the displayed 3D objects without deselecting at least one of the displayed 3D objects before classification.

[0084] The classification of the displayed 3D objects may include displaying tag inputs for the displayed 3D objects in a fourth section of the display. The classification of the displayed 3D objects may also include editing and / or validating the tag inputs during user interaction in the fourth section. The tag input is a window in the fourth section that displays or does not display tags. Tags may be entered by the user in the tag input. The user may enter tags into the tag input using the keyboard. Alternatively, the tag input may have pre-filled tags. In this case, the user may, for example, use the keyboard to change the tags that have been pre-filled in the tag input. Tags are keywords or terms associated with or assigned to information that describe the characteristics of the 3D object. Keywords or terms may be taken from a dictionary or industry standards such as the industry standard eCl@ss. The fourth section of the display may include a button to search for keywords or terms from the industry standard eCl@ss and add these keywords or terms to the tag input. The fourth section of the display may also include a validation button to validate tags that have been pre-filled, edited, and / or modified in the tag input. This improves the ergonomics of classification by allowing users to efficiently validate and / or modify tags during the classification process.

[0085] This method may further include predicting the tags of displayed 3D objects using a machine learning algorithm and suggesting the predicted tags for the tag input. The machine learning algorithm may predict the tags based on the signatures of the displayed 3D objects. The machine learning algorithm may be trained on a database of previously classified 3D objects. The machine learning algorithm may take a signature as input and output tags. The signature may represent the morphology of the 3D object. The signature may be the same as the signature used by this method during the calculation of multilevel clustering. The signature may be a different signature.

[0086] Tag prediction improves the ergonomics of classification by allowing users to quickly validate tags on 3D objects during classification through tag relevance prediction.

[0087] Tags do not necessarily have to be suggested within the tag input. For example, if the confidence level of the prediction is insufficient, for instance, if it is below the boundary, tags may not be suggested in the tag input.

[0088] Each level k of N consecutive hierarchical levels is such that ε k-1 <ε k A predefined parameter ε such that k These may be associated with the following. These predefined parameters may represent similarity thresholds. Similarity may be derived from the Manhattan distance according to the following formula:

number

[0089] Similarity can be a formula that transforms distance between 0 and 1. Manhattan distance can be a normalized vector of norm 1 with values ​​between 0 and 2 (this is the case for signatures). Similarity can also be used to transform Manhattan distance d from [0,2] intervals to [0,1] intervals (if d=2, similarity=0, and if d=0, similarity=1), which is simpler for later use (called percentage similarity). The predefined parameters for each hierarchy level can also be understood in terms of similarity rather than distance.

[0090] The computation of a first cluster of the set of 3D objects may further involve computing a first cluster of the set of 3D objects such that each first cluster collects 3D objects from the set that have similar signatures as follows:

number

[0091] The computation of one or more second clusters may further involve computation of one or more second clusters from the first clusters such that each second cluster collects one or more first clusters having similar medoid signatures as follows:

number

[0092] After the second hierarchical level, and until the final hierarchical level N is reached, iteratively computing one or more k-th clusters from the (k-1)-th clusters for each consecutive hierarchical level k of multilevel clustering may further include computing one or more k-th clusters such that each cluster of one or more k-th clusters collects one or more (k-1)-th clusters having a similar medoid signature as follows:

number

[0093] The first three consecutive hierarchical levels may be associated with predefined parameters ε1=0.05, ε2=0.2, and ε3=0.33, respectively. This combination of predefined parameters is satisfactory from the standpoint of both industrial utility and visual comparison.

[0094] In the example, the method may further include training a machine learning algorithm based on a set of classified 3D objects. The method improves the training of the machine learning algorithm. In fact, tags are associated with each of the 3D objects in the set. Therefore, the machine learning algorithm may be trained on a set of classified 3D objects. For example, the machine learning algorithm may be trained to predict the tags of 3D objects. Therefore, since training such a machine learning algorithm requires a large, classified set of 3D objects, the method makes it possible to train such a machine learning algorithm.

[0095] In other examples, the method may further include searching for 3D objects based on a categorized set of 3D objects, either automatically or in response to user interaction. Searching for 3D objects is improved because tags describing the object's characteristics are associated with each 3D object in the set. The user may navigate through the categorized set of 3D objects via the associated tags. Thus, the method improves the search for 3D objects.

[0096] Figure 5 shows an example of a set of 3D objects. Set of 3D objects 500 contains multiple 3D objects 502. When set of 3D objects 500 is provided, prior to multilevel calculations, set of 3D objects 500 is unstructured, as shown in this figure.

[0097] Figure 6 shows an example of multilevel clustering. The multilevel clustering 110 is a hierarchical tree structure of clusters of 3D objects in the set. The multilevel clustering 110 has 116 hierarchical levels, N=3. The tree structure graphically represents the hierarchical nature of the multilevel clustering. The tree structure consists of nodes 112 and branches 114. A parent node is a node one level higher in the hierarchy (i.e., a node close to the root node 122) and is on the same branch. Conversely, a child node is a node one level lower in the hierarchy. For example, node 118 is the parent node of node 120. Therefore, node 120 is a child node of node 118. Node 122 is not counted as a level in the hierarchy. The root node of the tree is the medoid of the first level cluster of the multilevel clustering 110.

[0098] Figure 7 shows an example of classifying a cluster of displayed 3D objects. This method includes automatically or in response to user interaction selecting one of the computed clusters 134 at a certain level of multilevel clustering, thereby defining the current level 132. This method includes displaying the 3D object 136 of the selected cluster 134 to the user in a first portion 138 of the display 130. In this example, the 3D object 136 is four brackets. This method includes classifying the displayed 3D object 136 in response to user interaction. Tags may be suggested and / or entered for these four brackets 136. To verify the assignment of tags to the four brackets 136 (i.e., to verify the classification of the four brackets 136), the user may press a verification button in the GUI.

[0099] Figure 8 shows an example of repeating the classification of 3D objects displayed for different clusters after the classification in Figure 7. This method involves selecting one cluster 140 from the computed clusters of the current level 132 of multilevel clustering. The selected cluster 140 from the computed clusters of the current level 132 is different from the previously selected cluster 134. This method involves displaying the 3D objects 142 of the selected cluster 140 on the first section 138 of the display 130. This method involves classifying the displayed 3D objects 142. For the classification in Figure 7, tags are proposed and / or entered for the displayed 3D objects 142 (six displayed 3D objects 142). To verify the assignment of these tags to the displayed 3D objects 142 (i.e., to verify the classification of the displayed 3D objects 142), the user can simply press the verification button in the GUI. Thus, by clicking the verification button only twice, the user can verify the tagging of 10 3D objects (4 in the classification in Figure 7 and 6 in this Figure 8).

[0100] Figure 9 shows an example of selecting a new hierarchy level before classification in Figure 8. The method further includes the step of selecting a new hierarchy level 154 of the multilevel clustering 100, different from the current level 132, during user interaction, before classifying the displayed 3D objects in Figure 8, thereby defining the new current level 154. Next, the method includes automatically or during user interaction selecting a new cluster 150 in the new current level 154 that corresponds to the child nodes 150 of the previously selected cluster 140 in the hierarchy tree structure 100. The method then includes displaying the 3D objects of the selected new cluster 150 to the user in the first part 138 of the display 130.

[0101] Figure 10 shows an example of a display. The display 160 may be a typical graphical user interface (GUI) having a standard menu bar 162. Such menus and toolbars include a set of icons that the user can select, each icon being associated with one or more actions or functions known in the art. Some of these icons are associated with software tools suitable for editing or working with the displayed 3D object 164.

[0102] In this example in Figure 10, the method includes displaying the 3D objects of the selected cluster to the user in a first section 166 of the display 160. In the first section 166, the 3D objects may be displayed as 2D bubble representations 164. The displayed 3D objects may be automatically selected in the first section 166. The selected 3D objects may be highlighted with a circle surrounding them.

[0103] In this example in Figure 10, the method includes displaying a second set of icons 172 on a third section 168 of the display 160. Each icon in the second set 172 represents a cluster of the new current level. The positions of the icons in the second set 172 are organized on the third section 168 of the display 160. The icons in the second set 172 are arranged according to the number of 3D objects that each cluster collects. Icon 174 of the second set 172, which represents the currently selected cluster, is highlighted. Icon 174 of the currently selected cluster is displayed in a different color.

[0104] In this example of Figure 10, the classification of the displayed 3D object 164 includes displaying a tag input 178 for the displayed 3D object 164 in a fourth section 170 of the display. The classification of the displayed 3D object includes editing and / or validating the tag input 178 during user interaction in the fourth section 170. The tag input may or may not have tags pre-filled. If the tag input is not pre-filled, the user may enter tags into the tag input. The user may enter tags into the tag input using the keyboard. Alternatively, the tag input may have tags pre-filled. In this case, the user may change the pre-filled tags in the tag input, for example, using the keyboard. In this example, the tags may be obtained from the industry standard eCl@ss. For this purpose, the fourth section 170 of the display 160 includes a button 180 for searching for and adding tags from the industry standard eCl@ss. The fourth section 170 of the display 160 may also include a validation button 176 for validating the tags entered in the tag input 178.

[0105] Figures 11-21 show an example of calculating multilevel clustering for a set of 3D objects. The set of 3D objects considered in this example is set 100, shown in Figure 5. For clarity, an example of calculating multilevel clustering for another set of 2D objects is also described. Set 300 of 2D objects is shown in Figure 11. The procedure for calculating multilevel clustering for the two sets is described in detail in the following paragraphs.

[0106] In this example, the computed multilevel clustering is a hierarchical tree structure with three hierarchical levels. For each of the three hierarchical levels, the method associates the respective 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.

[0107] This method begins by computing all first clusters, i.e., first-level clusters. Each first cluster collects 3D objects from that set that have similar signatures, as follows:

number

[0108] Next, we will discuss the calculation of clusters. This method calculates the signature of each 3D object in a set. Thus, the calculated signatures form a set of vectors (each signature is a vector). From a given set of vectors, clusters may be calculated using several clustering algorithms. Many of these clustering algorithms require a predefined number of clusters (e.g., the k-means algorithm). Several other algorithms do not require this hyperparameter but are notoriously slow because they require a huge number of pairwise comparisons (e.g., agglomerative clustering, DBSCAN). To address this problem, this method calculates clusters based on an algorithm devised based on fast approximate nearest neighbor search, which, given distances, finds a stable clustering distribution that satisfies the above problem.

[0109] Here, for each of the first clusters, the method calculates the cluster's centroid signature. The centroid signature is calculated using the average of the signatures of the cluster's 3D objects. Once the centroid signature is calculated, the method determines the medoid 3D object for each cluster. A medoid is the 3D object for each cluster that has the signature closest to the centroid signature. In Figure 14, the medoid 2D object 330 determined for a cluster of 2D objects is highlighted. Similarly, in Figure 15, the medoid 3D object 340 determined for a cluster of 3D objects is highlighted.

[0110] Next, this method computes a second cluster. Each second cluster is a cluster that brings together one or more first clusters with similar medoid signatures, as follows:

number

[0111] For the first cluster, this method calculates the medoid signature for each of the second clusters. The medoid 2D object 358 determined for the second cluster of 2D objects is highlighted in Figure 17, and the medoid 3D object 360 determined for the cluster of 3D objects is highlighted in Figure 18.

[0112] Next, this method computes a third cluster. Each third cluster is a cluster that brings together one or more second clusters with similar medoid signatures, as follows:

number

[0113] After the second hierarchical level, and until the final hierarchical level N is reached, iteratively computing one or more k-th clusters from the (k-1)-th clusters for each consecutive hierarchical level k of multilevel clustering may further include computing one or more k-th clusters such that each cluster of one or more k-th clusters collects one or more (k-1)-th clusters having a similar medoid signature as follows:

number

[0114] Figures 20 and 21 show the calculated multilevel clustering for a set of 2D objects and a set of 3D objects, respectively. The multilevel clustering for the set of 2D objects has tree hierarchy levels of 374 (first level), 372 (second level), and 370 (third level). Similarly, the multilevel clustering for the set of 3D objects has tree hierarchy levels of 384 (first level), 382 (second level), and 380 (third level). The third cluster at the third level 380 is the parent node of the second cluster at the second level 382, ​​the second cluster at the second level 382 is the parent node of the first cluster at the first level 384, and the first level 384 collects the set of 3D objects 386. The multilevel clustering is represented graphically in Figures 20 and 21. The method may also include displaying a graphical representation of the multilevel clustering to the user on a display. The graphical representation may include elements representing the nodes and branches of the calculated hierarchical tree structure. At each level of the hierarchical tree structure, each cluster (or node) may be represented by its respective Medoid 3D object.

[0115] Figure 22 shows an example of a system, which is a client computer system, such as a user's workstation.

[0116] The client computer in this example 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 further includes a video random access memory 1100 and associated graphics processing unit (GPU) 1110 connected to the bus. The video RAM 1100 is also known in the art as a frame buffer. A mass storage device controller 1020 manages access to mass storage devices such as a hard drive 1030. Mass memory devices suitable for clearly embodying computer program instructions and data include all forms of non-volatile memory, such as semiconductor memory devices like EPROMs, EEPROMs, and flash memory devices; magnetic disks like internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the above may be complemented or incorporated by specially designed application-specific integrated circuits (ASICs). A network adapter 1050 manages access to the network 1060. The client computer may also include haptic devices 1090, such as a cursor control device and a keyboard. A cursor control device is used in a client computer to allow the user to selectively position the cursor at any desired location on the display 1080. Furthermore, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes several signal generating devices for inputting control signals to the system. Typically, the cursor control device may be a mouse, and the mouse buttons are used to generate signals. Alternatively or additionally, the client computer system may include a pressure-sensitive pad and / or a pressure-sensitive screen.

[0117] The computer program may include instructions that can be executed by the computer, and the instructions include means for causing the system to execute the Method. The program may be recordable on any data storage medium, including the system's memory. The program may be implemented, for example, in digital electronic circuits, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented, for example, as a device such as a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. The steps of the Method may be executed by a programmable processor that executes a program of instructions and performs the functions of the Method by generating operations and outputs from input data. Thus, the processor may be programmable and coupled to receive data and instructions from a data storage system, at least one input device, and at least one output device, and to transmit data and instructions to them. The application program may be implemented in a high-level procedural programming language or an object-oriented programming language, and may be implemented in assembly language or machine language as needed. In any case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. When the program is applied to the system, instructions for executing the Method are issued in any case.

Claims

1. A computer implementation method for classifying three-dimensional (3D) objects, which is: - Step (S10) of providing a set of 3D objects, wherein each 3D object in the set has a signature representing the form of the 3D object; - A step (S20) of calculating the multilevel clustering of the set of 3D objects, wherein the multilevel clustering is a hierarchical tree structure having N hierarchical levels of clusters of the set of 3D objects. It has, The calculation step (S20) is: --Step (S200) of calculating a first cluster from the set of 3D objects such that each of the 3D objects in the set has a similar signature, wherein the first cluster forms a first level of multilevel clustering and becomes a node of the first level of a hierarchical tree structure; --Step (S210) of calculating one or more second clusters from the first clusters such that each second cluster collects one or more first clusters having similar medoid signatures, wherein the one or more second clusters form a second level of multilevel clustering and become nodes of the second level of a hierarchical tree structure, and each node of the second level becomes the parent node of one or more nodes of the first level; --A calculation step (S20) comprising the calculation step (S220) which calculates one or more k-th clusters from the (k-1) clusters such that for each consecutive hierarchical level k of multilevel clustering after the second hierarchical level until the last hierarchical level N is reached, each cluster of the k-th clusters collects one or more (k-1) clusters having a nearby medoid signature, wherein the one or more k-th clusters become nodes of the k-th level in the hierarchical tree structure, and each node of the k-th level becomes the parent node of one or more nodes of the (k-1) level; The computer implementation method has, - A selection step (S30) which, either automatically or in response to user interaction, selects one of the computed clusters at a certain level of multilevel clustering, thereby defining the current level; - A step (S40) of displaying 3D objects of selected clusters to the user in a first portion of the display, wherein the medoid 3D objects of the selected clusters are displayed in a substantially central area of ​​the first portion, and the position of the displayed 3D objects is determined as a function of the distance between their signatures; - Step (S80) of classifying the displayed 3D object during user interaction. Computer implementation methods including

2. Before the step of classifying the displayed 3D objects: - During user interaction, select a new hierarchical level for multilevel clustering that is different from the current level, thereby defining the new current level; - The steps of automatically or in response to user interaction, selecting a new cluster at the new current level that corresponds to a parent or child node of a previously selected cluster in a hierarchical tree structure; and - A step of displaying the 3D object of the selected new cluster to the user in a first part of the display, The computer implementation method according to claim 1, further comprising:

3. Before the steps of displaying 3D objects and classifying the displayed objects: - Further including the step of displaying a first set of icons representing each level of multilevel clustering in a second portion of the display; The step of selecting a new hierarchical level for multilevel clustering during user interaction is performed by selecting one of the displayed icons from the first set, and the selected new hierarchical level is represented by the selected icon. The computer implementation method according to claim 2.

4. Before the steps of displaying 3D objects and classifying the displayed objects: - The process includes the step of displaying a second set of icons on a third portion of the display, each representing one of the clusters in the new current level; The step of selecting the current level cluster during user interaction is performed by selecting one of the displayed icons from a second set, and the selected cluster is represented by the selected icon. The computer implementation method according to claim 2 or 3.

5. The following steps are taken: - A step of selecting one of the computed clusters at the current level of multilevel clustering, wherein the selected cluster is different from a previously selected cluster; - The steps of displaying the 3D objects of the selected cluster in a first part of the display; - Further including the step of classifying the displayed 3D objects, and repeating that step, The computer implementation method according to any one of claims 1 to 4.

6. The following steps are taken: - The step of selecting the technical domain to which the set of 3D objects belongs; - A machine learning algorithm predicts the appropriate level of multilevel clustering based on the selected technology domain; - A step of defining the predicted appropriate level as the current level, It further includes, The machine learning algorithm is configured to take the multilevel clustering and the selected technology domain as input and output an appropriate level. A computer implementation method according to any one of claims 1 to 5.

7. For each cluster, the following steps are taken: - A step of determining a medoid 3D object from among the 3D objects of the cluster, wherein the medoid 3D object is a 3D object having a signature S medoid that is closest to the centroid signature of the cluster, according to the following formula: [Math 1] In the formula, Si is the signature of each object i in the cluster, S-Medoid is the signature of the cluster's Medoid 3D object. The S centroid is the centroid signature of the cluster. Here, the cluster's centroid signature S is calculated using the average of the cluster's 3D object signatures according to the following formula: [Math 2] In the formula, M is the number of 3D objects gathered in the cluster. Si is the signature of each 3D object i included in the cluster. Further including the step of determining the aforementioned steps; and, The steps to display the 3D objects of the selected cluster in the first part of the display are: - A step of calculating the distance between the pair of 3D objects on a display for each pair of 3D objects in a set of 3D objects gathered in a cluster, wherein the distance is proportional to the distance between the signatures of the pair of 3D objects; - A step of positioning a 3D object on a first portion of a display using a calculated distance between a pair of 3D objects on the display, wherein the determined medium 3D object of the selected cluster is displayed in the center of the first portion. A computer implementation method according to any one of claims 1 to 6, further comprising:

8. The steps to display the 3D objects of the selected cluster in the first part of the display are as follows: - Includes the step of displaying and automatically selecting all 3D objects of the selected cluster in a first part of the display, The aforementioned computer implementation method further, - The steps include: deselecting at least one of the displayed 3D objects during user interaction, thereby obtaining one or more displayed 3D objects that remain selected; - A step of classifying one or more displayed 3D objects that remain selected during user interaction, Further including, A computer implementation method according to any one of claims 1 to 7.

9. The steps to classify the displayed 3D objects are: - A step of displaying tag inputs relating to the displayed 3D object on a fourth part of the display; - During user interaction in the fourth part, the steps include editing and / or verifying the tag input, A computer implementation method according to any one of claims 1 to 8, including the following:

10. - Further includes the step of predicting the tags of a displayed 3D object using a machine learning algorithm and proposing the predicted tags to a tag input, wherein the machine learning algorithm further includes the step of predicting tags based on the signature of the displayed 3D object. The computer implementation method according to claim 9.

11. Each level k of N consecutive hierarchical levels is associated with a predefined parameter εk such that each k from 2 to N is εk-1 < εk; - The step of calculating a first cluster of the set of 3D objects includes the step of calculating a first cluster of the set of 3D objects such that the first cluster consists of 3D objects from the set that have similar signatures as follows: [Math 3] In the formula, Si and Sj are the signatures of any pair i, j of 3D objects gathered in the first cluster. Therefore, the first cluster forms the first level of multilevel clustering and becomes a node of the first level of the hierarchical tree structure; - The step of computing one or more second clusters further includes the step of computing one or more second clusters from the first clusters such that the second clusters comprise one or more first clusters each having similar medoid signatures as follows: [Math 4] In the formula, S-medoid(i) and S-medoid(j) are medoid signatures of any pair i,j of the first clusters gathered into a second cluster, one or more second clusters thus form a second level of multilevel clustering and become nodes of the second level of the hierarchical tree structure, and each node of the second level is the parent node of one or more nodes of the first level; - After the second hierarchical level, and until the final hierarchical level N is reached, the step of iteratively computing one or more k-th clusters from the (k-1)-th clusters for each consecutive hierarchical level k of multilevel clustering further includes the step of computing one or more k-th clusters such that each cluster of one or more k-th clusters collects one or more (k-1)-th clusters having similar medoid signatures as follows: [Math 5] In the formula, S-medoid(i) and S-medoid(j) are medoid signatures of any pair i and j of the (k-1) clusters gathered into the k-th cluster. 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. A computer implementation method according to any one of claims 1 to 10.

12. The distance between the signatures is the Manhattan distance between them. A computer implementation method according to any one of claims 1 to 11.

13. A computer program comprising instructions for causing a computer to perform the method according to any one of claims 1 to 12.

14. A computer-readable storage medium recording the computer program described in claim 13.

15. A computer comprising a processor coupled to a memory storing the computer program described in claim 13.