Segmentation of 3D model objects representing machine parts

The hierarchical segmentation method effectively addresses the challenge of accurately segmenting 3D modeled objects by distinguishing between simple geometric and free-form surfaces, enhancing the precision and efficiency of 3D model processing for manufacturing applications.

JP7882650B2Active Publication Date: 2026-06-30DASSAULT SYSTEMES SA

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
DASSAULT SYSTEMES SA
Filing Date
2021-12-23
Publication Date
2026-06-30

Smart Images

  • Figure 0007882650000171
    Figure 0007882650000171
  • Figure 0007882650000172
    Figure 0007882650000172
  • Figure 0007882650000173
    Figure 0007882650000173
Patent Text Reader

Abstract

To provide a computer-implemented method for segmenting a 3D modeled object representing mechanical components.SOLUTION: The method provides a D-modeled object and performs hierarchical segmentation of a 3D-modeled object. The hierarchical segmentation includes a first segmentation and a second segmentation. The first segmentation identifies a first segment corresponding to a simple geometric surface of the 3D modeled object, from multiple surfaces of the 3D-modeled object. The simple geometric surface is a primitive that exhibits at least one slidable motion. The second segmentation identifies second segments each corresponding to a free curved surface of the 3D modeled object, from a plurality of unidentified surfaces of the 3D modeled object.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer programs and systems, and more specifically, to a method, system, and program for segmenting 3D modeled objects representing machine parts.

Background Art

[0002] Numerous systems and programs are available on the market 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 the efficiency of the technology. These technologies can be integrated into Product Lifecycle Management (PLM) systems. PLM refers to a business strategy that helps companies share product data, apply common processes, and leverage enterprise knowledge for product development from conception to the end of the product lifecycle across the entire concept of the extended enterprise. Dassault Systèmes' PLM solutions (product names CATIA, ENOVIA, and DELMIA) provide an engineering hub for organizing product engineering knowledge, a manufacturing hub for managing product engineering knowledge, and an enterprise hub that enables enterprise integration and connectivity to both the engineering and manufacturing hubs. Together, the system provides an open object model that connects products, processes, and resources, enabling dynamic knowledge-based product creation and decision support that drives optimized product definition, manufacturing readiness, production, and service.

[0003] In this context and others, the segmentation of 3D modeled objects, sometimes simply called "3D segmentation" or "segmentation," is becoming increasingly important.

[0004] Given a 3D modeled object (e.g., a mesh), 3D segmentation generally involves dividing / dividing the geometric elements of the 3D modeled object (e.g., faces, and possibly other elements such as vertices or edges) into several connected clusters called segments, each segment designed to maximize its internal consistency while minimizing similarity to other segments. The result of the segmentation process is to divide a face into several sets (segments) such that each segment represents a semantically consistent set with respect to other segments.

[0005] Segmentation can be used in the shape abstraction process, where the 3D geometry and / or features are retrieved from captured 3D data, for example, as discussed in reference "Kaiser A. et.al., A survey of Simple Geometric Primitives Detection Methods for Captured 3D data, Computer Graphics Forum, 2018." Segmentation can also be used to construct CSG (Constructive Solid Geometry) models (e.g., CSG trees) from 3D raw data, for example, as discussed in references "Wu. Q. et.al., Constructing 3D CSG Models from 3D Raw Point Clouds, Computer Graphics Forum, 2018" and "Shapiro V. et.al., Separation for Boundary to CSG Conversion, ACM Transactions on Graphics, Vol.12, No.1, January 1993, pp. 35-55." These two references, in particular, use a RANSAC-based approach to detect the initial pool of features from which the feature tree is constructed. [Overview of the project] [Problems that the invention aims to solve]

[0006] In this regard, there is still a need for improved methods for segmenting 3D modeled objects that represent machine parts. [Means for solving the problem]

[0007] Accordingly, a computer-implemented method is provided for segmenting a 3D modeled object, the 3D modeled object representing a mechanical part. The method includes providing the 3D modeled object. The method further includes performing hierarchical segmentation of the 3D modeled object. The hierarchical segmentation includes a first segmentation, which includes identifying a first segment from a plurality of surfaces of the 3D object, each corresponding to a simple geometric surface of the 3D modeled object. A simple geometric surface is a primitive exhibiting at least one gliding motion. The hierarchical segmentation then includes a second segmentation, which includes identifying a second segment from a plurality of unidentified surfaces of the 3D modeled object, each corresponding to a free-form surface of the 3D modeled object.

[0008] This method may include one or more of the following:

[0009] In the first segmentation, the identification involves searching for and merging adjacent surfaces of the 3D modeled object in ascending order of distance, based on one or more first distances that quantify the shape similarity between simple geometric surface portions. In the second segmentation, the identification involves searching for and merging adjacent unidentified surfaces of the 3D modeled object in ascending order of distance, based on one or more second distances that quantify the shape similarity between the freeform surface portions.

[0010] The first segmentation is performed by, for each surface obtained from the merger, in descending order of surface size, To adapt standard primitives to the surface, Calculating the fitting error, If the matching error is lower than a predetermined matching threshold, adjacent surfaces whose matching errors are similarly lower than the predetermined matching threshold are aggregated onto that surface. This includes discarding the surface if the conformance error is greater than the predetermined conformance threshold.

[0011] The first segmentation further includes filtering the adapted standard primitives by discarding each primitive that fits a local standard region of a freeform surface, The filtering further includes discarding fitted primitives that have a size smaller than a predefined size threshold. The one or more first distances include one or more of the following: centroid curvature distance which penalizes mismatch in mean curvature between surfaces, boundary curvature smoothness distance which rewards curvature smoothness around the boundary between surfaces, and / or centroid normal distance which penalizes mismatch in mean normal direction between surfaces. The search and merge in the first segmentation are performed for each distance included in the one or more first distances, The one or more first distances include the centroid curvature distance, the boundary curvature smoothing distance, and the centroid normal distance. The centroid curvature distance is,

number

number

number

Number

Number

Number

Number

Number

Number

number

number

number

number

number

number

number

number

[0012] The one or more second distances consist of one second distance that penalizes the mean curvature mismatch between surfaces and / or the irregularity of the merged surfaces, The second distance is,

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

[0013] In the first segmentation and / or the second segmentation, the search and merge are constrained by the fact that surfaces connected by boundaries corresponding to known geometric divisions between parts of the 3D modeled object cannot be merged. In the first segmentation, the identification includes performing the search and merge once or multiple times for each of the first distances, each of which is based on the criterion that the two surfaces are merged if each of the first distances between the two surfaces is smaller than a predetermined tolerance threshold associated with each of the first distances, and / or In the second segmentation, the identification involves each performing the search and merge once or multiple times for each of the second distances, each execution based on a criterion relating to the number of second segments, or on a criterion that the two surfaces are merged if each of the second distances between the two surfaces is smaller than a predefined tolerance threshold associated with each of the second distances.

[0014] A computer program containing instructions for performing this method is further provided.

[0015] A computer-readable data storage medium on which the computer program is recorded is further provided.

[0016] A computer is further provided that includes a processor coupled to memory in which the computer program is stored.

[0017] Non-limiting embodiments will be described with reference to the attached drawings. [Brief explanation of the drawing]

[0018] [Figure 1] A flowchart illustrating one example of this method is shown. [Figure 2] A flowchart of an example of the first segmentation is shown. [Figure 3] This method is shown. [Figure 4] This method is shown. [Figure 5] This method is shown. [Figure 6] This method is shown. [Figure 7] This method is shown. [Figure 8] This method is shown. [Figure 9] This method is shown. [Figure 10] This method is shown. [Figure 11] This method is shown. [Figure 12] This method is shown. [Figure 13] This method is shown. [Figure 14] This method is shown. [Figure 15] This method is shown. [Figure 16] This method is shown. [Figure 17] This method is shown. [Figure 18] This method is shown. [Figure 19] This method is shown. [Figure 20] This method is shown. [Figure 21] An example of this system is shown. [Modes for carrying out the invention]

[0019] Referring to the flowchart in Figure 1, a method is proposed to be performed by a computer to segment a 3D modeled object. The 3D modeled object represents a mechanical part. The method includes providing the 3D modeled object (S10). The method further includes performing hierarchical segmentation of the 3D modeled object. The hierarchical segmentation includes a first segmentation (S20). The first segmentation (S20) includes identifying a first segment from a plurality of surfaces of the 3D object, each corresponding to a simple geometric surface of the 3D modeled object. A simple geometric surface is a primitive exhibiting at least one gliding motion. The hierarchical segmentation then includes a second segmentation (S30). The second segmentation (S30) includes identifying a second segment from a plurality of unidentified surfaces of the 3D modeled object, each corresponding to a free-form surface of the 3D modeled object.

[0020] This constitutes an improved method for segmenting 3D modeled objects representing mechanical parts.

[0021] In particular, this method segments a 3D modeled object by identifying both segments corresponding to simple geometric surfaces (i.e., the first segment) and segments corresponding to freeform surfaces (i.e., the second segment), that is, it provides a set of segments, each corresponding to a part of the 3D modeled object. Thus, this method provides robust and accurate segmentation of the 3D modeled object. In fact, this method not only identifies segments corresponding to simple geometric surfaces, but also segments corresponding to freeform surfaces, which can be complex and difficult to identify (i.e., fitting geometric primitives or features to these segments is complex due to the geometric shape of those freeform surfaces). Therefore, the overall segmentation (i.e., the resulting set of first and second segments) is particularly accurate.

[0022] Furthermore, this method provides a two-stage hierarchical segmentation that improves the efficiency and robustness of the segmentation. In fact, this method first performs a first segmentation that identifies segments corresponding to simple geometric primitives. Thus, this method efficiently relies on the consideration that simple geometric primitives, rather than freeform surfaces, can be efficiently identified within the 3D modeled object, and therefore, this method identifies geometric primitives through the first segmentation (S20). Thus, at the end of the first segmentation (S20), this method has already achieved partial segmentation for the 3D modeled object, for which segments corresponding to simple geometric surfaces have already been identified. This leaves the identification of segments corresponding to freeform surfaces, which this method does through the second segmentation (S30). In other words, with respect to segments corresponding to freeform surfaces, these are the most complex segments to identify due to their geometric shape, and since the rest of the 3D modeled object consists of the already identified first segments, this method identifies segments corresponding to freeform surfaces in only a portion of the 3D modeled object. Therefore, the two-segmentation approach provides efficiency and robustness.

[0023] This method is for segmenting 3D modeled objects representing machine parts. Therefore, this method is a method of 3D segmentation. As explained earlier, given a 3D modeled object (e.g., a mesh), 3D segmentation generally involves dividing / dividing the faces of the 3D modeled object into several connected clusters called segments, each segment maximizing its internal consistency while minimizing similarity to other segments. Here, the clusters / segments are the result of segmentation and can be called "segmentation".

[0024] This method implements this general segmentation framework. Specifically, this method takes the 3D model object provided in S10 as input and outputs a set of segments. The set of segments may be called the "segmentation output / generated by this method" or simply the "segmentation" (i.e., the 3D model object). In this method, the set of segments consists of a first segment identified by the first segmentation (S20) and a second segment identified by the second segmentation (S30). The set of segments may optionally be post-processed before being output by this method as the output segmentation. While a general segmentation framework is implemented, this method is hierarchical segmentation and is characterized in that the overall segmentation performed by this method includes the first segmentation (S20) and the second segmentation (S30). In other words, the set of segments output by this method is identified by the two-step hierarchical segmentation described above, that is, by two segmentations performed in a specific order (i.e., the first segmentation (S20) and the second segmentation (S30)) (i.e., the first segmentation (S20) and the second segmentation (S30)).

[0025] Each segment identified by this method, whether a first or second segment, is a part of the 3D modeled object that constitutes a surface forming a geometrically coherent portion of the shape of the 3D modeled object. Each segment identified by this method tends to maximize its internal consistency while minimizing similarity to other segments and has clear boundaries with respect to other segments. For example, each segment can form the basic surface of the 3D modeled object, which can be represented (e.g., adapted and / or parameterized) by features in a single CAD system (e.g., features in CATIA).

[0026] Each segment can form a geometrically coherent surface from the perspective of manufacturing a machine part. In other words, a machine part may be divided into parts in the real world, each part having a geometric shape that requires or is adapted to a particular manufacturing process (e.g., molding, additional manufacturing, or machining), and each part is represented by one or more segments in the segmentation output by this method. To put it another way, the set of segments output by this method can consist of each subset of one or more segments, and for each subset, one or more segments of the subset as a whole represent a surface shape (i.e., material layout) of a part of a machine part that is consistent from a manufacturing perspective, i.e., requires or is adapted to a particular manufacturing process (which may be selected from several suitable manufacturing processes). For example, each of one or more such subsets could represent a part of a machine part manufactured by machining, and has a shape (i.e., geometric shape) adapted to be the path of a machining tool. Additionally or alternatively, one or more other subsets may each represent a part of a machine component manufactured by molding, having a shape (i.e., the geometric shape) corresponding to the shape (i.e., the geometric shape) of the coherent part of the mold. The mold itself may be manufactured by machining, and each such part may have a shape (i.e., the geometric shape) adapted to be the path of a machining tool. Additionally or alternatively, one or more other subsets may each represent a part of a machine component manufactured by additional manufacturing, and having a shape (i.e., the geometric shape) corresponding to the shape (i.e., the geometric shape) of the final outer layer formed by that additional manufacturing process. Thus, this method makes it possible to identify parts of a machine component that are coherent with respect to manufacturing.

[0027] As is widely known in the field of manufacturing CAD, segmentation output by this method can be used in various applications or processes that require segmentation in several steps. Segmentation of 3D modeled objects by this method provides an improved representation of the external surface of the 3D modeled object and can be used in many applications. Furthermore, the segments may be parameterized and therefore editable using CAD tools in addition to segmentation, making it possible to manipulate (e.g., edit) these segments, which can also be useful in many applications. "Parameterized" means that each segment can be fitted to exactly one 3D geometric object represented by a parametric equation or parametric function, and therefore includes one or more parameters, each of which can take values ​​within its respective continuous range. 3D parameterized geometric objects, in contrast to non-parameterized 3D geometric objects such as discrete representations (e.g., point clouds, meshes, dexel representations), allow for easy manipulation and / or editability and / or efficient storage in memory. For example, the first segment may be fitted with a standard primitive (e.g., a plane, sphere, or cylinder), and the second segment may be parameterized with other fitted geometric tools, such as a free-form parameterized surface like NURBUS or an extruded surface. Note that during hierarchical segmentation, the primitive can already be fitted to at least some surfaces of the 3D modeled object (e.g., simple geometric surfaces), in which case at least some segments can be fitted to the primitive and therefore editable (directly as the output of the method).In any application of this method, including those described below, the 3D modeled object may be a measured 3D modeled object, and therefore the method processes the measured 3D modeled object by segmenting it, and enables the (once segmented) measured 3D modeled object to be edited. Thus, the method can generally be used to segment a measured 3D modeled object and then process the measured 3D modeled object into an editable data structure.

[0028] In the first application example of this method, the segmentation obtained by this method can be used to construct a B-rep. The construction of a B-rep using segments is discussed in the references “P. Benko et al., Algorithm for revulerse engineering boundary representation models, Computer-Aided Design 33 (2001), 839-851”, “A. Tumanin, Polygonal Mesh to B-Rep Solid Conversion: Algorithm Details and C++ Code Samples, posted on September 4, 2019 on the Habr.com website”, and “Beniere et al., Recovering Primitives in 3D CAD meshes, Proceedings of SPIE, 2011”, all of which are incorporated herein by reference. A first application of this method involves using the segmentation of a 3D modeled object output by this method to convert the 3D modeled object into a boundary representation (i.e., a B-rep, which is, as is widely known, a collection of connected boundary surface elements under, for example, the STEP file format). This conversion may involve fitting multiple surfaces onto each of the segments and using data relating to the segmentation (e.g., edges of the segmentation graph in the implementation discussed below) to boundary the multiple surfaces (i.e., determining the topological data of the B-rep, i.e., the surfaces are bounded by the relationships between the multiple surfaces). Thus, this method can be included in a computer-implemented process for converting a 3D modeled object representing a machine part into a B-rep, the process being: The method provides segmentation of the 3D modeled object by performing this method on the 3D modeled object, and outputs the segmentation of the 3D modeled object in accordance with this method. This includes converting the 3D modeled object to a B-rep by fitting multiple surfaces onto each of the segments of the segmentation according to any known method suitable for such conversion, and by bounding the multiple surfaces based on the segmentation.

[0029] In a second application of this method, the segmentation obtained by this method is used to construct a feature tree. The construction of feature trees based on segments (for example, by fitting primitives to segments) is discussed in the references “T. Du et.al., InverseCSG: Automatic Conversion of 3D Models to CSG Trees, ACM SIGGRAPH ASIA 2018,” “Wu.Q. et.al., Constructing 3D CSG Models from 3D Raw Point Clouds, Computer Graphics Forum, 2018,” and “Shapiro V. et.al., Separation for Boundary to CSG Conversion, ACM Transactions on Graphics, Vol.12, No.1, January 1993, pp. 35-55,” all of which are incorporated herein by reference. The second application of this method involves using the segmentation of a 3D modeled object output by this method to construct a feature tree representation of the said 3D modeled object. This construction first involves using the segmentation output by this method to fit primitives to each segment and build a pool of CAD features, also called a "feature list," from which a feature tree is constructed. Compared to known configurations using RANSAC-based methods, using the segmentation output by this method to fit primitives to each segment and build a feature pool / list is more robust, scales better, and ensures that all primitives are found. Therefore, this method can be included in a computer-driven process for building a feature tree from 3D modeled objects representing mechanical parts, and this process is The present invention provides segmentation of a 3D model object by performing this method on the 3D model object, and outputs and provides the segmentation of the 3D model object according to this method. Constructing a pool of CAD features (i.e., a feature list) by fitting multiple surfaces to each of the segments of the segmentation according to any known method, This includes constructing the feature tree from the adapted surfaces according to any known method.

[0030] In a third application example of this method, the segmentation obtained by this method is used for remeshing (if the provided 3D modeled object is a 3D mesh) or resampling (if the provided 3D modeled object is a 3D point cloud). The segmentation output by this method includes a first segment corresponding to simple geometric primitives and therefore parameterizable by standard primitives, and a second segment corresponding to freeform surfaces and therefore parameterizable by NURBS, and by using the surface definition of each segment, it is possible to remesh (if the provided 3D modeled object is a 3D mesh) or resampling (if the provided 3D modeled object is a 3D point cloud) the 3D modeled object. This remeshing / resampling may be used to remove noise from the 3D modeled object (e.g., removing outliers in particular for 3D point clouds, or smoothing the outer surface of the 3D modeled object in particular for 3D meshes). Additionally or alternatively, remeshing / resampling can be used to efficiently tessellate a 3D mesh, i.e., by adapting the size of the mesh faces to the curvature of the corresponding surfaces in order to minimize the number of faces, thereby optimizing the mesh weights (i.e., with respect to memory) while ensuring the maximum discretization distance to the exact surface. Thus, this method can be included in a computer-driven process for remeshing (or resampling) a 3D modeled object, which is a 3D mesh (or 3D point cloud) representing a mechanical part, and such process is The present invention provides segmentation of a 3D model object by performing this method on the 3D model object, and outputs and provides the segmentation of the 3D model object according to this method. The first segment within the segmentation is parameterized using standard primitives, the second segment within the segmentation is parameterized using NURBS, and thereby a surface definition is generated for all segments within the segmentation. This includes using the surface definition of each segment to remesh (or resample) the 3D mesh (or 3D point cloud) according to any known and appropriate method, Optionally, Using the remeshing (or resampling) process, remove noise from the 3D mesh (or 3D point cloud), and / or This includes one or more methods of more efficiently tessellating a 3D mesh by adapting the size of the mesh faces to the curvature of the corresponding surface, in order to optimize the mesh weights (in terms of memory) while ensuring the maximum discretization distance to the precise surface.

[0031] In a fourth application of this method, the segmentation obtained by this method is used to detect anomalies (e.g., manufacturing anomalies) in a 3D modeled object. This application may include comparing available knowledge of the characteristics that a machine part should have with the segments of the segmentation output by this method, thereby providing information about defects or anomalies in the machine part. For example, available knowledge may include information such as "the cubic portion of a machine part should have six large planes" or "a normal machine part should not have small face portions." If the 3D modeled object portion representing a cube is segmented into seven faces, or if some segments represent form faces, this application may include inferring that the 3D modeled object characterizes an anomaly in such a way that the machine part characterizes an anomaly (i.e., a manufacturing anomaly).

[0032] The segmentation output by this method may be used in other applications of 3D shape segmentation, such as 3D deformation, 3D rendering (geometric / material attribute calculation, occlusion culling, shadow determination), 3D animation, and / or shape compression. These applications are discussed in the previously cited reference, "Kaiser A. et. al., A survey of Simple Geometric Primitives Detection Methods for Captured 3D data, Computer Graphics Forum, 2018," which is incorporated herein by reference.

[0033] Furthermore, referring to the flowchart in Figure 1, we will explain how to provide a 3D model object (S10). Before explaining how to provide a 3D model object (S10), we will explain the data structure it contains.

[0034] This method is for segmenting 3D modeled objects, and therefore, generally, modeled objects are manipulated in this method. A modeled object is any object defined by data stored in a database, for example. In a broad sense, the expression "modeled object" refers to the data itself. Depending on the type of system, modeled objects may be defined by different types of data. The system may actually be any combination of CAD systems, CAE systems, CAM systems, PDM systems, and / or PLM systems. In these different systems, modeled objects are defined by corresponding data. Thus, they can be called CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data. However, since modeled objects may be defined by data corresponding to any combination of these systems, these systems are not mutually exclusive. 3D modeled objects represent mechanical parts. A "3D modeled object" means any object that is modeled by data that enables its 3D representation. 3D representation allows parts to be viewed from all viewpoints (e.g., from various angles and / or distances). For example, a 3D modeled object, once represented in 3D, can be manipulated and rotated around any of its axes, or any axis within the screen on which the 3D representation is displayed. This, in particular, excludes 2D icons that are not 3D modeled. Displaying 3D representations facilitates design (i.e., increases the speed at which designers statistically accomplish tasks). This accelerates manufacturing processes in industry, as product design is part of the manufacturing process.

[0035] 3D modeled objects represent the geometry of a product (i.e., a mechanical part) to be manufactured in the real world after virtual design is completed, for example, using a CAD software solution or CAD system. A mechanical part may be an assembly of parts, which can be viewed as a part itself from the perspective of this method, or the method can be applied independently to each part of the assembly, or more generally to any rigid assembly (e.g., a movable mechanism). CAD software solutions enable the design of products in a wide range of unrestricted industrial fields, including aerospace, architecture, construction, consumer goods, high-tech devices, industrial equipment, transportation, shipbuilding, and / or offshore oil / gas production or transportation. Therefore, 3D objects designed by this method may represent industrial products that could be any machine parts, such as parts of ground vehicles (e.g., including automobiles and light truck equipment, racing cars, motorcycles, trucks and motor equipment, trucks and buses, and trains), parts of aircraft (e.g., including airframe equipment, aerospace equipment, propulsion equipment, defense products, aerospace equipment, and space equipment), parts of naval vehicles (e.g., including naval equipment, civilian ships, offshore equipment, yachts and workboats, and marine equipment), parts of general machine parts (e.g., including industrial manufacturing machinery, large mobile machinery or equipment, installation equipment, industrial machine products, processed metal products, and tire manufacturing products), electromechanical or electronic components (e.g., including consumer electronics, security and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), consumer goods (e.g., including furniture, home and garden products, leisure products, fashion products, products of hard goods retailers, and products of soft goods retailers), and packaging (e.g., including food and beverages and tobacco, beauty and personal care, and household product packaging).

[0036] The provided 3D modeled object can form a discrete geometric representation of a machine part. A discrete geometric representation, as used herein, is a data structure containing a collection of discrete data fragments. Each data fragment represents one of the geometric entities located in 3D space. Each geometric entity represents the respective location of the machine part (in other words, each part of the material constituting the solid represented by the 3D modeled object). An aggregation of geometric entities (i.e., a combination or juxtaposition of geometric entities) represents the machine part as a whole. A discrete geometric representation as used herein may, in one example, contain more than 100, 1000, or 10000 such data fragments.

[0037] A discrete geometric representation may be, for example, a 3D point cloud, where each geometric entity is a point. Alternatively, a discrete geometric representation may be a 3D mesh, where each geometric entity is a mesh tile or mesh face. A 3D mesh may be regular or irregular (i.e., it may or may not consist of faces of the same type). A 3D mesh may be a polygonal mesh, such as a triangular mesh. A 3D mesh may be obtained from a 3D point cloud, for example, by triangulating the 3D point cloud (e.g., using Delaunay triangulation). The 3D point cloud as used herein can be determined from physical measurements of a mechanical part, for example, in a 3D reconstruction process. A 3D reconstruction process may include providing a mechanical part, providing one or more physical sensors configured to acquire each of the physical signals, and acquiring each of the one or more physical signals by operating one or more physical sensors on the mechanical part (i.e., scanning the mechanical part with each sensor). The 3D reconstruction can then automatically determine a 3D point cloud and / or a 3D mesh based on the measurements according to any known technique. The one or more sensors may include multiple (e.g., RGB and / or image or video) cameras, and the determination may include structural analysis from motion. The one or more sensors may optionally or additionally include one or more depth sensors (e.g., on an RGB depth camera), and the determination may include 3D reconstruction from depth data. The one or more depth sensors may include, for example, a laser (e.g., a lidar) or an ultrasonic emitter-receiver.

[0038] Providing a 3D modeled object (S10) may include, for example, reading the 3D modeled object from a (e.g., remote) database or memory where the 3D modeled object is further stored until its creation, acquisition, or retrieval (e.g., through the reconstruction process described above). For example, such reading may include accessing the database or memory and downloading the 3D modeled object. Alternatively, providing the 3D modeled object may include performing physical measurements on a mechanical part and determining the 3D modeled object from those physical measurements, for example, through the 3D reconstruction process described above. Alternatively, providing the 3D modeled object may include creating the 3D modeled object, for example, by a user, for example, by sketching.

[0039] Referring further to the flowchart in Figure 1, in addition to providing the 3D model object (S10), the method also includes performing hierarchical segmentation of the 3D model object. This hierarchical segmentation includes a first segmentation (S20) and a second segmentation (S30). In other words, the hierarchical segmentation includes two segments, namely the first segmentation (S20) and the second segmentation (S30). The first segmentation takes the provided 3D model object as input and outputs its partial segmentation, i.e., the first segment. The second segmentation (S30) takes as input a portion of the 3D model object that has not yet been segmented as a result of the first segmentation (S20), i.e., the 3D model object minus the set of the first segments, and outputs its segmentation, i.e., the second segment. The union of the set of the first segments and the set of the second segments forms a set of segments that is the result of hierarchical segmentation. This set of segments forms the segmentation of the 3D modeled object. Furthermore, the first segmentation (S20) will be explained with reference to the flowchart in Figure 1.

[0040] The first segmentation (S20) involves identifying a first segment from a plurality of surfaces of the 3D object, each corresponding to a simple geometric surface of the 3D modeled object. In other words, the first segmentation (S20) finds surfaces from a plurality of surfaces of the 3D modeled object that form a simple geometric surface and identifies them as the first segment. A simple geometric surface is a primitive that exhibits at least one slippage motion. Slippage motion is a linear combination of translation and rotation. In other words, a simple geometric surface is a primitive that is invariant by at least one linear combination of translation or rotation. The concept of slippage motion is known from the reference “Gelfand N. and Guibas LJ, Shape Segmentation Using Local Slippage Analysis, Eurographics Symposium on Geometry Processing, 2004,” which is incorporated herein by reference. In particular, Section 2 of this reference, which provides a definition of slippage motion and a method for calculating slippage motion, is incorporated herein by reference. The first segmentation (S20) can be identified using any method for identifying a surface, which is a simple geometric surface, on a 3D modeled object.

[0041] Next, referring to the flowchart in Figure 2, which shows an example of a first segmentation (S20), identifying the first segment may include exploring and merging adjacent surfaces of the 3D modeled object (S200). This exploration and merging means that the first segmentation (S20) repeatedly visits adjacent surfaces of the 3D modeled object and merges them insofar as merging them can form or contribute to the formation of the first segment. Each surface is an outer portion of the 3D modeled object. Any surface may be the result of a previous merging of two surfaces. Here, the 3D modeled object may be a 3D mesh. In such a case, a surface is a mesh face (for example, a triangle if the mesh is a triangular mesh), or a combination of mesh faces resulting from a previous merging or iteratively from the aforementioned merging. In such a case, the exploration and merging (S200) can use the mesh structure to repeatedly visit adjacent mesh faces or their combinations and merge them where appropriate. Alternatively, the 3D modeled object may be a 3D point cloud, in which case the surface is a surface defined by the points of the point cloud. In such a case, the search and merge (S200) can use the point cloud structure by searching and clustering adjacent point cloud points, which directly leads to searching and merging adjacent surfaces defined by the point cloud points. In such a case, at the start of the search and merge, points may be considered surfaces for the purpose of performing the search and merge (S200).

[0042] The search and merge (S200) follows an ascending order of distances based on one or more first distances. In other words, the search and merge (S200) is based on data that, for each first distance, includes the values ​​of the first distances between adjacent surface parts, where a surface part is a portion of a surface. This data may be updated along with the search and merge (S200) as surfaces are iteratively merged so that new adjacent surfaces with new first distance values ​​are formed. The search and merge (S200) follows an ascending order of distances based on the one or more first distances. That is, the search and merge (S200) tends to search for the closest first adjacent surfaces according to the one or more first distances. Here, each first distance quantifies the shape similarity between simple geometric surface parts, i.e., between adjacent simple geometric surface parts, because the method uses the first distance between adjacent parts (since adjacent surfaces are merged). Therefore, each first distance quantifies, in the search and merge (S200), whether adjacent surfaces include adjacent portions that form a whole (i.e., when merged) a portion of one simple geometric surface, and if they do, they tend to merge. Any such first distance can be used.

[0043] Identifying the first segment may involve performing one or more search and merge (S200) operations for each of the first distances. In other words, the search and merge (S200) operations may be repeated for each of the one or more first distances, with the first operation being performed on the 3D modeled object and each subsequent operation being performed on the result of the previous operation. In such a case, for each of the first distances, the search and merge (S200) operations for the first distance are performed in ascending order of distance based on the first distance, and the search and merge (S200) operations are performed on data including the respective values ​​of the first distance between a pair of adjacent surfaces, and the search and merge (S200) operations are performed in increasing order of the values ​​of the first distance between them. The values ​​of the first distances may be updated each time two surfaces are merged; that is, the values, or at least some of them, are recalculated. Each run of the search and merge (S200) may be based on the criterion that if each of the first distances between two surfaces is smaller than a predefined tolerance threshold associated with each of the first distances, the two surfaces are merged. In other words, since performing the search and merge (S200) searches adjacent surfaces in increasing order of the values ​​of each of the first distances, the criterion is to stop the search and merge (S200) when all the remaining values ​​are greater than a predefined tolerance threshold associated with each of the first distances. The predefined tolerance threshold may be different for all of the first distances. In one example, identifying the first segment is: For each of the first distances, For each pair of adjacent surfaces of the 3D modeled object, or the result of the previous execution in the search and merge (S200), calculate the value of the first distance between the adjacent surfaces, Selectively, searching for and merging adjacent surfaces (S200) such that all values ​​between adjacent surface pairs are lower than a predefined tolerance threshold associated with the first distance,

[0044] Finding the minimum value of the first distance, Merging adjacent surfaces to a corresponding pair, replacing the pair with a new surface, The process includes searching for and merging adjacent surfaces (S200), which involves updating the value of the first distance as a result of the merger, and repeating the process.

[0045] In implementing this method, the process of searching and merging (S200) (i.e., each execution thereof) is performed on the graph.

number

number

number

number

number

[0046] Hierarchical clustering collects two "most similar" connected nodes at each step by collapsing the edges connecting these two nodes. The shape similarity between two nodes is evaluated by a first distance between the nodes. In the graph, both the nodes and edges of the graph are modeled, as well as the nodes and their adjacencies. Each edge can store information about the boundary between the two nodes connected by that edge. Furthermore, each edge of the graph at the moment is stored in a binary search tree sorted by the calculated first distance value, making it very efficient to find the "minimum" edge, i.e., the edge connecting the two most similar nodes. Furthermore, when two nodes are merged, the clustering updates their attributes to the new merged node and all the edges connecting one of the nodes, reorienting them to the new merged node. The clustering also updates the first distance value associated with these edges.

[0047] Figure 3 illustrates the concept of hierarchical clustering on a mesh in 2D for simplification. Figure 3 shows a mesh 30 and its dual graph 32. Figure 3 further shows the dual graph 34 after the hierarchical clustering (i.e., recursive folding of graph nodes) and the corresponding mesh segmentation 36.

[0048] Each of the one or more first distances may be any preferred first distance that quantifies the shape similarity between adjacent simple geometric surface portions. “Shape similarity” means that each first distance quantifies the extent to which, when adjacent portions are merged, they form a geometrically coherent simple geometric surface or a portion thereof having, for example, relatively little change in curvature and / or normal. Each first distance may be based on the change in curvature and / or normal between the portions. The centroid curvature distance penalizes the mean curvature mismatch between surfaces (i.e., supports / promotes the merging of surfaces with small curvature changes at the boundary), The boundary curvature smoothness distance, which rewards the curvature smoothness around the boundary between surfaces (this is called the "boundary") (i.e., supports / promotes the merging of surfaces that are locally curvature smooth around the common boundary), and / or It may have one or more centroid normal distances that penalize mismatches in mean normal directions between surfaces (i.e., support / facilitate the merging of surfaces having similar normal directions), The search and merge (S200) in the first segmentation is performed for each of the distances included in one or more first distances, as previously described (i.e., for each first distance, there is an execution of the search and merge (S200), the first execution is performed on the 3D modeled object, and each subsequent execution is performed on the result of the previous execution). Alternative first distances can be used as alternatives, for example, attribute distribution comparison distances (using KL divergence) or variance comparison distances such as Ward distances. The more distances included in the one or more first distances (i.e., the three distances listed above), the more robust and efficient the method becomes. For example, the one or more first distances include the centroid curvature distance, the boundary curvature smoothness distance, and the normal distance. This makes the method particularly robust.

[0049] In one example

[0050] The centroid curvature distance is,

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

[0051] Therefore, the first segmentation can rely on comparing the geometric attributes of either the points of the 3D point cloud or the faces of the 3D mesh. Thus, the input 3D modeled object (i.e., the provided 3D modeled object) may already have element-wise ground truth normals and / or curvature values ​​provided in S10. Alternatively, the method may estimate these attributes using known algorithms, for example, in providing (S10) or after providing (S10) but before the first segmentation (S20). If the provided 3D modeled object is a 3D mesh, the method may calculate the face normal of each mesh as a normal vector to the plane defined by the faces. The method can calculate the curvature of the mesh at any point using the method devised in the reference “D. Cohen-Steiner, J. Morvan, Restricted Delaunay Triangulations and Normal Cycle, in SCG, 2003,” which is incorporated herein by reference. Next, the method can associate curvature values ​​with each face of the mesh by using it on the centroid of each face. If the provided 3D modeled object is a 3D point cloud, the method can calculate the normals of the point cloud by fitting a plane to the neighborhood of each point, and then estimate the normals of the points by the normal axis of the corresponding fitted plane. The method may also calculate the curvature at each point in the point cloud by fitting a quadratic surface to the neighborhood of each point and calculating the curvature of the points on this locally fitted surface.

[0052] In the aforementioned implementation using hierarchical graph clustering, the three distances listed above can be used. In other words, in this implementation, three consecutive hierarchical clusterings of a graph can be performed using the three distances and three different stopping (i.e., tolerance) thresholds associated with these distances to segment a simple geometric primitive region / surface of the 3D modeled object. In this implementation, hierarchical clustering of the graph is first performed using centroid curvature distance until the minimum centroid curvature distance between two nodes is greater than the stopping threshold associated with this distance; then, hierarchical clustering of the graph obtained from the previous clustering is performed using boundary curvature smoothing distance until the minimum boundary curvature smoothing distance between two nodes is greater than the stopping threshold associated with this distance; and then, hierarchical clustering of the graph obtained from the previous clustering is performed using centroid normal distance until the minimum centroid normal distance between two nodes is greater than the stopping threshold associated with this distance.

[0053] Since hierarchical graph clustering operates on a graph, these three distances are defined on the graph nodes in this implementation. The centroid curvature distance is defined on two nodes in this implementation by the following equation.

number

number

number

[0054] Here,

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

[0055] Figures 4, 5, and 6 show the results of using these three distances sequentially in an implementation of a method for performing hierarchical graph clustering. Figure 4 shows a 3D modeled object representing a mechanical part with a surface resulting from a merger by hierarchical clustering performed on the centroid curvature distance. Figure 5 then shows the surface resulting from a subsequent merger by a subsequent hierarchical clustering performed on the boundary curvature smoothness distance (i.e., applied to the modeled object shown in Figure 4). Figure 6 then shows the surface obtained from a merger by a subsequent hierarchical clustering performed on the centroid normal distance (i.e., applied to the modeled object shown in Figure 5).

[0056] Referring back to the flowchart in Figure 2, the first segmentation (S20) involves, in addition to searching and merging (S200), sorting each surface resulting from the merging (i.e., the surface of the mesh output by the merging) in descending order of surface size (e.g., surface area). Adapting a standard primitive, which is a primitive exhibiting at least one slidable motion, to the surface (S210), wherein the concept of such slidable motion has been previously defined and discussed, Calculating the fitting error, If the matching error is lower than a predetermined matching threshold, adjacent surfaces whose matching errors are similarly lower than the predetermined matching threshold are aggregated onto the surface (S220). This includes discarding the surface if the conformance error is greater than the predetermined conformance threshold.

[0057] This makes it possible to accurately identify or discard multiple surfaces that are not properly merged / clustered through the search and merger process (S200), thereby further improving the robustness of this method.

[0058] "Descending order of size" in this method means searching for multiple surfaces resulting from merging in descending order of size (e.g., area), and then fitting these surfaces in descending order of size (S210), and possibly aggregating them (S220). This search may be limited to surfaces with a sufficiently large size (e.g., area), for example, those greater than a predefined threshold. This makes it possible to efficiently aggregate small merged / clustered surfaces / regions corresponding to larger geometric primitives before attempting to fit them.

[0059] Fitting (S210), given a surface obtained from merging corresponding to the clustered nodes in the previously discussed implementation, may include attempting to fit one or more standard primitives selected from, for example, a set of ordinary standard geometric primitives to the surface using known primitive fitting techniques such as quadratic fit or BFGS optimization, or any primitive fitting technique discussed in references incorporated herein by reference, such as “A. Kaiser, A survey of Simple Geometric Primitives Detection Methods for Captured 3D data, Computer Graphics Forum 38(4), 2018” or “T. Birdal et.al., Generic Primitive Detection in Point Clouds Using Novel Minimal Quadric Fits, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019.” Next, the method calculates a fitting error for each primitive in the attempt, and the primitive with the lowest fitting error is selected to fit the surface. A typical set of standard geometric primitives can include planes, cylinders, cones, and spheres.

[0060] If the fitting error for this primitive is lower than a predetermined fitting threshold, for example, if a given proportion of the surface elements (e.g., mesh elements if the 3D modeled object is a 3D mesh, or point cloud points if the 3D modeled object is a 3D point cloud) has a distance (e.g., Euclidean distance) to a primitive that is closer than the threshold, then the surface, or in the aforementioned implementation, the corresponding clustered node, is considered to correspond to a fitted primitive. If so, the method aggregates the surface adjacent to the surface whose fitting error is lower than the predetermined fitting threshold (S220). In other words, such aggregation may include iteratively searching for adjacent surfaces to the surface and aggregating / merging them to the surface, provided that the distance to the primitive is also lower than a given threshold. In the aforementioned implementation, aggregation (S220) can be performed using any known continuous neighborhood aggregation method, which iteratively searches for elements of the graph of the provided 3D modeled object (faces in the case of a 3D mesh, or vertices in the case of a 3D point cloud) that are neighborhoods of elements belonging to the fitted geometric primitive, and adds them to the set of primitive elements, for example using a region growth-based method, if the distance to the primitive is also smaller than a given threshold. This makes it possible to accurately classify all elements belonging to each geometric primitive, even if they were not correctly clustered by, for example, a boundary curvature calculation problem.

[0061] Furthermore, referring to the flowchart in Figure 2, each surface for which primitives are continuously fitted in S210 and then continuously aggregated in S220 is an identified surface, i.e., a first segment up to, for example, selective filtering (S230) (i.e., if the method includes filtering (S230) and a surface is discarded during filtering (S230), that surface is not an identified surface). Surfaces obtained from merging (S200) with a fitting error greater than a predetermined fitting threshold are discarded. That is, they are not identified surfaces.

[0062] Referring further to the flowchart in Figure 2, the first segmentation (S20) may further include filtering the fitted surface primitives (S230) by discarding each primitive that fits a local surface region of the freeform surface. This improves the robustness of the method. In practice, searching and merging (S200) (for example, also called "clustering" in the implementation described above), and fitting and aggregating (S210-S220) may, in some cases, result in too many primitives for the method to continue to output satisfactory segmentation. There may be some freeform surfaces that contain many local regions that can be fitted by standard primitives, but these are not simple geometric surfaces / primitives and should not be geometric surfaces / primitives. By filtering (S230), if such geometric surfaces / primitives are fitted, those local regions are discarded. Discarded surfaces are not identified surfaces, and surfaces that are not discarded are identified surfaces.

[0063] In the aforementioned implementation, to discard these undesirably fitted simple geometric surfaces / primitives to areas belonging to larger free-form regions, the method may utilize initial geometric primitive clustering (i.e., clustering resulting from hierarchical graph clustering). To identify fitted standard primitives to be discarded, the implementation may compare the size of the node to which they are fitted with the size of the node to which the aggregated elements belong. Since the second clustering distance facilitates the merging of smoothly joined regions, standard regions belonging to larger free-form regions should be merged at least partially. Therefore, if the remaining smaller node is fitted with a standard primitive that aggregates elements from a larger node, without fitting all the elements of that larger node (in this case, since the nodes are fitted in descending order of size, the standard primitive should already be fitted to the larger node), the implementation detects that the standard primitive corresponds to a local standard area in the larger free-form region (i.e., includes detecting the standard primitive) and discards the standard primitive (i.e., includes discarding the standard primitive).

[0064] Filtering (S230) further includes discarding fitted primitives that have a size (e.g., region) smaller than a predefined size threshold.

[0065] Figures 7 to 9 show steps S200 to S230 in the aforementioned implementation. Figure 7 shows a 3D modeled object representing a machine part, and the 3D mesh shown in Figure 7 is the result of searching and merging (S200). Figure 8 shows the result of applying fitting (S210) and aggregation (S220) to the 3D modeled object shown in Figure 7. Next, Figure 9 shows the result of applying filtering (S230) to the 3D modeled object shown in Figure 8.

[0066] The first segmentation (S20) yields multiple identified surfaces of the 3D modeled object, each identified surface being a first segment corresponding to a simple geometric surface. In other words, the first segment has a geometric shape that is the geometric shape of the simple geometric surface, i.e., the simple geometric surface fits into the first segment. If the first segmentation (S20) includes merging (S200), subsequent fitting (S210), and aggregation (S220), the identified surfaces are either surfaces resulting from merging (S200), surfaces resulting from subsequent fitting (S210), and aggregation (S220) (i.e., surfaces resulting from merging (S200), where the primitive is fitted in S210 and adjacent surfaces are successfully aggregated in S220), or surfaces resulting from filtering (S230) if the first segmentation (S20) includes filtering (S230) (i.e., surfaces not discarded in step S230). In addition to these first surfaces, the 3D modeled object still includes a number of unidentified surfaces that do not result from merging (S200) or surfaces that were discarded in steps S210-S220 or S230.

[0067] Referring back to the first flowchart, performing the hierarchical segmentation in addition to the first segmentation (S20) includes a second segmentation (S30). The second segmentation includes identifying a second segmentation corresponding to each freeform surface of the 3D modeled object on multiple unidentified surfaces of the 3D modeled object. A freeform surface is any surface that is not a simple geometric surface. Therefore, a freeform surface cannot be fitted or parameterized by simple primitives, but can still be parameterized using an appropriate tool (e.g., NURBS). The second segmentation (S30) is based on the consideration that all simple geometric shapes of the mesh surface (i.e., the first segments) have been identified by the first segmentation (S20), and therefore the remaining geometric shapes of the mesh surface are freeform geometric shapes identified as second segments by the second segmentation (S30). Therefore, performing a second segmentation (S30) only on multiple unidentified surfaces of the 3D modeled object after the first segmentation (S20) contributes to ensuring that freeform surfaces are identified by the second segmentation (S30). Each second segment corresponds to a freeform surface, that is, the second segment has a geometric shape which is the geometric shape of the freeform surface, and can be parameterized, for example, using NURBS.

[0068] Identifying the second segment may include exploring and merging adjacent unidentified surfaces of the 3D modeled object. This is sometimes referred to as the "second exploration and merging" to distinguish it from the exploration and merging in the first segmentation (S20). Exploring and merging means that the second segmentation (S30) repeatedly visits adjacent unidentified surfaces of the 3D modeled object and merges them insofar as merging them can form or contribute to the formation of the second segment. As previously described, each surface is an outer part of the 3D modeled object and may be the result of a previous merging of two surfaces. Also, as previously described, the modeled object may be a 3D mesh, in which case the surfaces are mesh faces (e.g., triangles if the mesh is a triangular mesh) or a combination of mesh faces obtained from or iteratively from a previous merging. In such cases, the second search and merge can use a mesh structure to repeatedly visit adjacent mesh faces or their connections and merge them where appropriate. Alternatively, as previously described, the 3D modeled object may be a 3D point cloud, in which case the surfaces are surfaces defined by the points of the point cloud. In such cases, the second search and merge can use a point cloud structure by searching and clustering adjacent point cloud points, which directly leads to searching and merging adjacent surfaces defined by the point cloud points. In such cases, points may be considered surfaces at the start of the second search and merge. Prior to the second search and merge, the method may include marking the first segment as something to be identified by the second search and merge and not to be searched.

[0069] The second search and merge follows an ascending order of distances based on one or more second distances. In other words, the second search and merge is based on data containing, for each second distance, the values ​​of the second distances between adjacent surface parts, where a surface part is a portion of a surface. This data may be updated along with the second search and merge as surfaces are iteratively merged so that a new set of adjacent surfaces with new second distance values ​​is formed. The second search and merge follows an ascending order of distances based on the one or more second distances. That is, the search and merge tends to search for the closest first adjacent surfaces according to the one or more second distances. Here, each second distance quantifies the shape similarity between freeform surface parts, i.e., between adjacent freeform surface parts, because the method uses the distance between adjacent parts (since adjacent surfaces are merged). Therefore, each second distance quantifies, in the second search and merge, whether adjacent surfaces include adjacent portions that form a geometrically coherent portion of a freeform surface, and if so, the adjacent surfaces tend to merge. In other words, “shape similarity,” in the case of the second distance, means that the second distance quantifies the extent to which adjacent portions, when merged, form a geometrically coherent freeform geometric surface or a portion thereof. Any such second distance can be used.

[0070] Identifying in the second segment may involve performing one or more second searches and merges for each of the second distances, similar to the first search and merge (S200). In such a case, for each second distance, the second search and merge for this second distance follows an ascending order of distances based on the second distance, and the second search and merge is based on data containing the values ​​of the second distance between each pair of adjacent surfaces, which covers all unidentified surfaces of the 3D modeled object, and the second search and merge searches for pairs of adjacent surfaces in increasing order of the second distance values ​​between them. The values ​​of the second distance may be updated each time two surfaces are merged; that is, the value, or at least some of the values, are recalculated. Each run in the second search and merge may be based on the criterion that if each of the second distances between two surfaces is smaller than a predefined tolerance threshold associated with each of the second distances, the two surfaces are merged. In other words, performing a second search and merge involves searching adjacent surfaces in ascending order of the values ​​of the second distance, so the criterion is to stop the second search and merge when all values ​​are greater than a predefined tolerance threshold associated with each of the second distances. Alternatively, performing a second search and merge could be based on a criterion for the number of second segments, i.e., the target number, for example, the maximum or minimum number of second segments (i.e., stopping the second search and merge when the target number is reached). In one example, identifying the second segment is: For each second distance, For each pair of adjacent unrecognized surfaces of the 3D modeled object, or the result of the previous run in the second search and merge, calculate the value of the second distance between those adjacent surfaces. The method involves optionally searching for and merging adjacent surfaces, provided that all values ​​between a pair of adjacent surfaces are lower than a predefined tolerance threshold associated with the second distance, or that the target number of the second segment has not been reached. Finding the minimum value of the second distance, Merging adjacent surfaces to a corresponding pair, replacing the pair with a new surface, The process includes searching for and merging adjacent surfaces, which involves iterating over updating the second distance value as a result of the merger.

[0071] In the aforementioned implementation of this method, the second search and merge is performed in the same manner as the first search and merge (S200), using the graph described above for the first search and merge (S200).

number

[0072] In one example, the one or more second distances are a second distance that penalizes mismatch in mean curvature between surfaces and / or penalizes irregularity of merged surfaces, in other words, the one second distance may include a first term that penalizes mismatch in mean curvature between surfaces and / or a second term that penalizes irregularity of merged surfaces. Alternatively, the second term may promote smoothness at the boundary between adjacent surfaces. The distance may be, for example, a multiplication of these two terms. The one second distance is

number

number

number

number

number

number

number

number

number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

Number

number

number

number

number

number

[0073] Figure 10 shows the results of the second hierarchical clustering performed on the 3D modeled object shown in Figure 9, as described above.

[0074] In one example, the exploration and merging of the first and / or second segmentation (S200) and / or second segmentation) is based on the constraint that surfaces connected by boundaries corresponding to known geometric divisions between parts of the 3D modeled object cannot be merged. These constraints on surfaces are sometimes called "boundary priors," and prior knowledge of the mechanical parts captures the fact that, for some surfaces, their boundaries should not be merged because they correspond to known divisions between parts of the mechanical part corresponding to those surfaces. In the implementation described above, graph edges can be associated with prior boundaries. For example, the distance associated with a graph edge (e.g., the first distance in the case of the first hierarchical clustering, and the second distance in the case of the second hierarchical clustering) may be set to infinity. Prior boundaries may be set, i.e., not calculated. Alternatively, the method may include calculating the distribution of prior boundaries (e.g., for each edge involved in the implementation described above). The values ​​of the preboundary can be updated along with mergers (first merger and / or second merger). For example, in the implementation described above, the edges of the preboundary associated with an edge can be updated for each new edge by determining the proportion of the preboundary edges that include it.

[0075] If the 3D modeled object is a 3D mesh, the pre-boundary distribution can be calculated using knowledge of the dihedral angle between two adjacent faces (i.e., the angle between the normal vectors of each face) to calculate the pre-boundary distribution for edges common to those two adjacent faces. In fact, if two faces have a sufficiently large dihedral angle, they cannot belong to the same smooth surface. Therefore, in the graph in the above implementation, the two faces should be separated by an edge representing a non-intersecting surface boundary. If the 3D modeled object is a 3D point cloud, the pre-boundary distribution can be calculated for each initial graph edge as the angle between the normals of the two points corresponding to that edge.

[0076] When the 3D modeled object is a tessellated 3D mesh, the pre-boundary calculation uses the tessellated mesh as the maximum fixed distance between its discretized mesh and the exact surface it approximates.

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

[0077] Figures 12 and 13 show two 3D modeled objects representing two machine parts, with the calculated pre-boundaries for each of them shown as solid black lines.

[0078] The method may include a final post-processing step to classify the separated elements and complete the entire segmentation performed by the method once the first and second segments have been identified. Such post-processing is optional and may not be performed in all cases. Separated elements may arise, for example, when the boundaries between surfaces are noisy, resulting in either inaccurate sharpness and / or curvature values, making it difficult to cluster elements around those boundaries. In this case, the method may include stopping the merging (e.g., clustering in the above implementation) earlier and classifying the remaining elements using an alternative strategy, for example, by assigning those remaining elements to the nearest segment. Another additional or alternative possible post-processing step may involve processing the boundaries of the regions to make them smoother.

[0079] Here, the above implementation will be further explained with reference to Figures 14-20, along with an example of the segmentation obtained in this implementation, using the three first distances and one second distance described above.

[0080] Figure 14 shows the overall path of the segmentation method for this implementation. This implementation provides computationally efficient hierarchical clustering in two main steps. As shown in Figure 14, in the first step of hierarchical segmentation (S20), only simple geometric primitives are segmented. Then, similar to the domain growth process, primitives are detected and fitted to corresponding domains in order to filter out false primitives and extend the remaining primitives to adjacent faces. In the second step (S30), hierarchical segmentation freezes these primitives and their corresponding domains, and the remaining freeform surfaces are segmented. This separation of segmentation in two distinct steps makes it possible to leverage the strong regularity of simple geometric primitives in the concept of their particular clustering distance, as well as the knowledge of the precise definitions of these simple primitives that enables robust classification of the inner layer. Overall, by processing these simple primitives in the first pass before the freeform primitives, a much more robust overall path is possible, as the added robustness provided by the regularity and explicit definitions of simple geometric primitives is fully utilized. Finally, in this implementation, very small regions or isolated surfaces can be removed by post-processing the segmentation. As previously described, hierarchical clustering is based on graph topology, i.e., a dual graph formulation for mesh input, or a nearest neighbor graph for point cloud input. The distance between two connected regions is based on the curvature of their surfaces (or points), as well as a shape factor that prefers smooth boundaries. An additional distance describing the smoothness of the boundary between two connected regions is also used to prevent the merging of two similar regions separated by sharp boundaries. In this implementation, a fast and sound (i.e., robust) framework is provided for CAD segmentation of both point clouds and meshes. Furthermore, not only simple geometric primitives but also complex geometric primitives (e.g., based on extrusion) and fully freeform surfaces (such as fillets or NURBS) can be segmented.

[0081] Figure 15 shows the outer shell of a computer mouse, illustrating a 3D modeled object segmented by the aforementioned implementation. The mouse shell may be molded, for example, it may be made from injection-molded plastic. Different segments correspond to a mold, i.e., each segment forms a shape corresponding to a corresponding shape of a part of the mold. The mold itself may be manufactured by machining, and each part may have a shape (i.e., geometric shape) adapted to serve as a path for a machining tool.

[0082] Figure 16 shows a machine part, illustrating a 3D modeled object segmented by the aforementioned implementation. The segmentation includes fillets, i.e., segments each forming a fillet feature. These segments correspond to the fillet portions of machine parts that can be manufactured using a corner rounding end mill. The segmentation includes cylinder bores, i.e., segments each forming a cylinder bore feature. These segments correspond to the cylinder bore portions of machine parts that can be manufactured using a milling machine. The segmentation includes planes, i.e., segments each forming a planar feature. These segments correspond to the planar portions of machine parts that can be manufactured using a laser or hydraulic cutting machine.

[0083] Figure 17 shows a machine part, illustrating a 3D modeled object segmented by the aforementioned implementation. The segmentation includes an outer cylinder, i.e., segments, each forming an outer cylinder feature. These segments correspond to the outer cylindrical portion of a machine part that can be manufactured using a metal lathe.

[0084] Figure 18 shows a machine part, illustrating a 3D modeled object segmented by the aforementioned implementation. The segmentation includes fillets, i.e., segments each forming a fillet feature. These segments correspond to the fillet portions of a machine part that can be manufactured using a corner rounding end mill. The segmentation includes cylinder bores, i.e., segments each forming a cylinder bore feature. These segments correspond to the cylinder bore portions of a machine part that can be manufactured using a milling machine. The segmentation includes planes, i.e., segments each forming a planar feature. These segments correspond to the planar portions of a machine part.

[0085] Figure 19 shows a soap dispenser, illustrating a 3D modeled object segmented by the aforementioned implementation. The segmentation includes an outer cylinder, i.e., segments that each form an outer cylinder feature. These segments correspond to the outer cylindrical portion of a soap dispenser that can be manufactured using a metal turning machine. The segmentation also includes smooth corners, i.e., segments that each form a smooth corner feature, i.e., a combination of a chamfer feature and a fillet feature. These segments correspond to the smooth corner portion of a soap dispenser that can be manufactured using a chamfer end mill and a corner rounding end mill.

[0086] Figure 20 shows a connecting rod and a 3D modeled object segmented by the implementation described above. The segmentation includes fillets, i.e., segments each forming a fillet feature. These segments correspond to the fillet portions of the connecting rod that can be manufactured using a corner rounding end mill. The segmentation includes cylinder bores, i.e., segments each forming a cylinder bore feature. These segments correspond to the cylinder bore portions of the connecting rod that can be manufactured using a milling machine. The segmentation includes planes, i.e., segments each forming a planar feature. These segments correspond to the planar portions of the connecting rod that can be manufactured using a laser or hydraulic cutting machine.

[0087] This method is performed by a computer. This means that the steps (or substantially all steps) of this method are performed similarly 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. Exemplarily, the triggers for at least some steps of this method may be performed through user-computer interaction. The required level of user-computer interaction depends on the expected level of automation and can be balanced with the need to fulfill the user's wishes. Exemplarily, this level may be user-defined and / or predefined.

[0088] A typical example of how this method is implemented by a computer is to implement it using a system adapted for this purpose. Such a system may include a memory-coupled processor and a graphical user interface (GUI), the memory storing a computer program containing instructions for performing this method. The memory may also store a database. The memory is any hardware adapted for such storage, possibly comprising several physically separate components (e.g., one for the program, and possibly one for the database).

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

[0090] The client computer in this example comprises 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 is further connected to a graphics processing unit (GPU) 1110 associated with video random access memory 1100, which is also connected to the bus. The video RAM 1100 is also known in the art as a frame buffer. A mass storage controller 1020 manages access to mass storage devices such as a hard drive 1030. Mass memory devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including, for example, semiconductor memory devices such as EPROMs, EEPROMs, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the above may be stored in or incorporated into a specially designed ASIC (Application-Specific Integrated Circuit). A network adapter 1050 manages access to a network 1060. The client computer may also include a cursor control device, a tactile device 1090 such as a keyboard. A cursor control device is used in the client computer to allow the user to selectively position the cursor at any desired position 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 a number of signal generators 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 sensing pad and / or a sensing screen. The computer program may include instructions executable by a computer, and such instructions include means for causing the system to perform the Method. The program may be recordable on any data storage medium, including the system's memory. The program may be executed, for example, in a digital electronic circuit, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented as a device, for example, as a product tangibly embodied in a machine-readable storage device for implementation by a programmable processor. The method steps may be executed by a programmable processor that executes a program of instructions for performing the functions of the Method by operating on input data and producing outputs. 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 such instructions. The application program may be executed in a high-level procedural programming language or an object-oriented programming language, or, if necessary, in assembly language or machine language. In any case, the language may be a compiled language or an interpreted language. The program may be a full installation program or an update program. In any case, applying the program on the system will result in instructions for executing this method.

Claims

1. A computer-based method for segmenting a 3D model object representing a machine part, To provide the aforementioned 3D model object, Having a first segmentation and a second segmentation, the hierarchical segmentation of the 3D model object is performed, The first segmentation involves identifying a plurality of first segments from a plurality of surfaces of the 3D modeled object, each of which is a primitive exhibiting at least one gliding motion, corresponding to a simple geometric surface of the 3D modeled object. The second segmentation described above involves identifying a plurality of second segments from a plurality of unidentified surfaces of the 3D modeled object, each of which corresponds to a free surface of the 3D modeled object. In the first segmentation, the identification includes searching for and merging adjacent surfaces of the 3D modeled object in ascending order of distance based on one or more first distances that quantify the shape similarity between simple geometric surface portions. In the second segmentation, the identification includes searching for and merging adjacent unidentified surfaces of the 3D modeled object in ascending order of distance, based on one or more second distances that quantify the shape similarity between free-form surface portions. The one or more first distances are, The centroid curvature distance, which penalizes the discrepancy in mean curvature between surfaces. A boundary curvature smoothness distance that rewards the curvature smoothness around the boundary between surfaces, and / or It has one or more centroid normal distances that penalize mismatches in the mean normal direction between surfaces, The search and merge in the first segmentation are performed for each distance included in the one or more first distances, The one or more first distances include the centroid curvature distance, the boundary curvature smoothness distance, and the centroid normal distance. A method characterized by the following:

2. The first segmentation is performed on each surface obtained from the merger, in descending order of surface size, To adapt a standard primitive to the aforementioned surface, Calculating the fitting error, If the matching error is lower than a predetermined matching threshold, adjacent surfaces whose matching errors are similarly lower than the predetermined matching threshold are aggregated onto the surface. If the aforementioned fitting error is greater than the predetermined fitting threshold, the surface shall be discarded. The method according to claim 1, further comprising:

3. The first segmentation further includes filtering the adapted standard primitives by discarding each primitive that fits the local standard region of the freeform surface. The method according to feature 2.

4. The filtering further includes discarding fitted primitives that have a size smaller than a predefined size threshold. The method according to feature 3.

5. The centroid curvature distance is, [Number 133] It is of the type, [Number 134] and [Number 135] represents adjacent surfaces, [Number 136] teeth [Number 137] This represents the mean minimum curvature or mean maximum curvature of [the object]. The boundary curvature smoothing distance is, [Number 138] It is of the type, [Number 139] and [Number 140] represents adjacent surfaces, [Number 141] teeth [Number 142] and [Number 143] This represents pairs of adjacent surface parts belonging to each category. [Number 144] teeth [Number 145] The minimum or maximum curvature of [Number 146] is segment [Number 147] This represents clamping of values ​​to, [Number 148] and [Number 149] This is a regulatory value, The centroid normal distance is, [Number 150] It is of the type, [Number 151] and [Number 152] represents adjacent surfaces, [Number 153] teeth, [Number 154] Represents the average normal vector The method according to feature 1.

6. The one or more second distances consist of a second distance that penalizes the mean curvature mismatch between surfaces and / or the irregularity of the merged surfaces. The method according to any one of claims 1 to 5, characterized by...

7. The aforementioned second distance is, [Number 155] It is of the type, [Number 156] and [Number 157] represents adjacent surfaces, [Number 158] teeth [Number 159] This represents the average maximum curvature of, [Number 160] And, [Number 161] teeth [Number 162] This represents the circumference, [Number 163] teeth [Number 164] It represents the area, [Number 165] teeth [Number 166] This represents clamping to, [Number 167] teeth, [Number 168] No, set [Number 169] Represents a node which is an element of [Number 170] This represents a hyperparameter that defines the reduced effect of small surfaces. The method according to feature 6.

8. In the first segmentation and / or the second segmentation, the search and merge are constrained by the fact that multiple surfaces connected by boundaries corresponding to known geometric divisions between parts of the 3D modeled object cannot be merged. The method according to any one of claims 1 to 7, characterized by...

9. In the first segmentation, the identification comprises each performing the search and merge once or more times for each of the first distances, each execution based on the criterion that the two surfaces are merged if each of the first distances between the two surfaces is smaller than a predetermined tolerance threshold associated with each of the first distances, and / or In the second segmentation, the identification comprises each performing the search and merge once or more times for each of the second distances, each execution based on a criterion relating to the number of second segments, or on a criterion that the two surfaces are merged if each of the second distances between the two surfaces is smaller than a predefined tolerance threshold associated with each of the second distances. The method according to any one of claims 1 to 8, characterized by...

10. A computer program comprising instructions for performing the method described in any one of claims 1 to 9.

11. A computer-readable data storage medium on which the computer program described in claim 10 is recorded.

12. A computer comprising a processor coupled to a memory storing the computer program described in claim 10.