Three dimensional topology reconstruction with curvature-based and region growing segmentation of 3D scanning images
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- SIEMENS INDUSTRY SOFTWARE INC
- Filing Date
- 2023-09-29
- Publication Date
- 2026-07-01
AI Technical Summary
Existing technologies face challenges in reconstructing the topology of 3D scanned objects from point cloud data, which is essential for applications like CAD/CAM and subtractive machining, as they often require manual intervention and cannot handle large datasets efficiently.
A fully automated system and method that uses a combination of curvature-based segmentation and region growing segmentation to generate distinct clusters within point cloud data, enabling the reconstruction of object topology without the need for manual intervention.
The proposed solution enables efficient and automated 3D topology reconstruction, improving the accuracy and efficiency of tool path generation in subtractive manufacturing and enhancing the compatibility of point cloud data with CAD/CAM software applications.
Smart Images

Figure US2023034080_03042025_PF_FP_ABST
Abstract
Description
THREE DIMENSIONAL TOPOLOGY RECONSTRUCTION WITH CURVATURE-BASED AND REGION GROWING SEGMENTATION OF 3D SCANNING IMAGESTECHNICAL FIELD
[0001] This application relates to three dimensional topology reconstruction of an object. More particularly, this application relates to three dimensional topology reconstruction of an object based on a curvature-based segmentation and region growing segmentation of a given point cloud representation of the object.BACKGROUND
[0002] Three dimensional (3D) digitization of real-world objects, like machine components, tools, buildings, material structures, humans, landscapes, etc. is achieved by using optical and non-optical 3D scanning / measuring devices and x-ray tomography or other tomographic methods. These devices provide point cloud images as output data. Depending on the 3D scanning / measuring method used, the point cloud can either be describing only the surface or the entire volume of the object that has been digitized. The point cloud data is a collection of the measured points in 3D space with no further information about the connectivity of the individual points forming the surface or volume. To make use of such point cloud data in computer aided design, engineering, and manufacturing (CAD, CAE, and CAM) software applications, the point cloud data needs to be converted into a surface representation (B-Rep, or faceted / meshed model). Only then, the functionality offered in such software solutions can be applied to the point cloud data. The underlying reason being the geometric kernel (e.g., Parasolid) of those applications which requires parametric surface representation of any object. In thiscontext, any meaningful parametric surface reconstruction will need the reconstruction of topology of the 3D scanned object.
[0003] Applications for topology reconstruction of an object include 3D modeling of the topology by CAD / CAM software tools which can then be fed to a tool path generator for automated replication of the object through subtractive machining. Subtractive machining is a technique used for manufacturing an object from a block of material by milling unwanted material. The milling can be automated by developing a program for the milling tool that guides the milling along a toolpath. The fully automated generation or planning (and optimization) of tool paths for three and five axis machining operations (e.g., milling) still poses a huge challenge to computer aided manufacturing (CAM) software solutions. A great deal of human knowledge and expertise is required to derive tool paths that allow for machining of components according to the specified tolerances and without breaking the machine tool or generating collisions. Most CAM software solutions of today are based on a surface representation (e.g., a 3D boundary surface representation (B-rep)) of the 3D part geometry. However, being able to reconstruct the topology of engineered objects offers the possibility to avoid a full parametric reconstruction if followed by machining feature recognition.SUMMARY
[0004] This disclosure describes a fully automated system and method to reconstruct the object topology within the 3D scanned data of engineered objects as well as buildings, facilities, infrastructure, and other manufactured objects. According to an aspect, a computer-implemented system includes a 3D topology reconstruction engine that receives point cloud data comprising one or more point cloud representations of an object,and generates a curvature-based segmentation and region growing segmentation of the point cloud data to generate distinct clusters inside the one or more point clouds.BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Non-limiting and non-exhaustive embodiments of the present disclosure are described with reference to the following FIGURES, wherein like reference numerals refer to like elements throughout the drawings unless otherwise specified.
[0006] FIG. 1 shows an example of a framework for generating a 3D topology reconstruction from point cloud data in accordance with embodiments of this disclosure.
[0007] FIG. 2A illustrates a flowchart example for a 3D topology reconstruction of a point cloud representation of an object in accordance with embodiments of this disclosure.
[0008] FIG. 2B illustrates a flowchart example for a process to correct oversegmentation during the topology reconstruction process shown in FIG. 2A.
[0009] FIGs. 3 and 4 show an examples of a curvature histograms with a corresponding curvature-based point cloud segmentation in accordance with embodiments of this disclosure.
[0010] FIG. 5 shows an example of fitting a Gaussian mixture of point clusters in accordance with embodiments of this disclosure.
[0011] FIG. 6 shows an example of a computing environment in which embodiments of the present disclosure may operate.DETAILED DESCRIPTION
[0012] Methods and systems are disclosed to solve the technical problem of generating a 3D topology reconstruction of an object or system of objects from point cloud data of a 3D scan. The derived 3D topology is basis for a parametric surface representation (geometry), which has many applications. Without topology information, however, any surface and / or primitive reconstruction for a given point cloud data set is basically meaningless since it does not provide any benefit to reverse engineering, (re)manufacturing, simulation, quality control, and layout modelling workflows well supported by commercial software solutions such as Siemens NX. Such workflows can be summarized as classical design engineering workflows, layout generation workflows and their combinations.
[0013] The solution proposed by this disclosure describes a point cloud segmentation approach and workflow based on a combination of curvature-based segmentation and region growing segmentation that can be applied to classical reverse engineering applications as well as points clouds representing large factories or infrastructure objects. An example of reverse engineering includes generation of an optimized tool path for three and five axis machining operations (e.g., subtractive machining, milling) in subtractive manufacturing of an object. With the improved 3D topology representation provided by this disclosure, an automated tool path generation workflow can be structured and organized such that the efficiency and machining quality is improved.
[0014] FIG. 1 shows an example of a framework for generating a 3D topology reconstruction from point cloud data in accordance with embodiments of this disclosure. A parametric CAD / CAM model for an object or objects (e.g., an object to bemanufactured, or to model walls, floors and other structures of an industrial facility for construction) is a 3D computer model which features the topology of the object on every level of detail (e.g., large scale details such as machines on the shop floor, small scale details such as machine components (cover, motors, etc.)) However, in this example, no such parametric 3D model exists, so the object or industrial facility must first be scanned to produce a digital representation. For example, point cloud data 111 , which may be obtained from a 3D scanning process, is provided as input to framework 100. 3D topology reconstruction engine 112 is configured to generate a curvature-based point cloud segmentation 115 and region growing segmentation 117. Feature removal module 116 is configured to identify and remove features for correcting over segmentation. The resulting topology reconstruction 121 can be generated from an iterative segmentation process. The final topology 121 provides the input for a parametric geometry reconstruction which can then be used by CAD / CAM and 3D layout software applications for various technical solutions including but not limited to tool path generation in subtractive manufacturing.
[0015] Point cloud data 111 may be generated by a 3D scanning operation that involves digitizing an object, such as a machine component, tool, or structure, using an optical or non-optical 3D scanning device and a tomographic process (e.g., X-ray tomography). The output of the scan is one or more point clouds that may describe the surface or entire volume of the object as an assembly of points in 3D space with no further information about the connectivity of the individual points forming the surface or volume. For cylindrical objects, more than one scan from different poses may be required to capture a scan of the entire surface, resulting in multiple point clouds that need to beinterpreted and joined for the 3D topology reconstruction process of framework 100. A point cloud is understood to be a data collection of points in three-dimensional space represented typically as three coordinates for each such point. The points of the point cloud can theoretically have any spatial arrangement, but when resulting from a surface scan of the object, they represent the surface of the object and thus are arranged along a flat or curved two-dimensional form. The point clouds may have at least 10,000 points, or in some configurations at least 100,000 points and in some embodiments more than one million points. To make use of such point cloud data 111 in computer aided design, engineering, and manufacturing (CAD, CAE, and CAM) software applications, the point cloud data needs to be converted into a surface representation (B-Rep, or faceted / meshed model). Only then, the functionality offered in such software solutions can be applied to the point cloud data, as the geometric kernel (e.g., Parasolid) of those applications requires parametric surface representation of any object. Reconstruction of topology from the point cloud data can be implemented as follows.
[0016] In an embodiment, 3D topology reconstruction engine 112 is configured to generate a topology representation that can be interpreted as a surface with distinct geometric features, characterized as a watertight surface (i.e., a closed surface with no anomalous holes), and tailored to the consumption by CAD / CAE / CAM software applications. The topology reconstruction enables engineering of various parametric modeling, including walls and floors of building layouts and objects for manufacturing.
[0017] As a baseline for comparison, state of the art topology reconstruction approaches are described here as follows. As a first approach, a triangular polygon mesh (triangulation / faceted topology) can be generated out of the individual points, such that aclosed or open surface can be generated. The resulting mesh is not considered an analytical / parametric geometry since the surface is still based on the individual points, only their connection is now defined (i.e. , discrete reconstruction). No primitive features, such as planes and other geometric primitives, are reconstructed this way.
[0018] Another available approach is to generate one complex analytical implicit topology as a function describing the entire surface of an object. This method can be applied to point clouds and various surface representations. The implicit topology uses the points in the point cloud as seed points to combine special analytical functions located at or around these seed points to generate a combined implicit function as combination of the individual functions used. In many cases, locally supported radial basis functions or signed distance fields are applied. However, in order to use such topologies in the computer aided design engineering software applications (CAD, CAE, and CAM), the topology of such representations needs to be approximated again by classical B-rep representation or a faceted / meshed models to be compatible with the geometric kernel.
[0019] Neither of these two methods considers per se the topology of the real-world objects behind the point cloud data 111. As a remedy for this, 3D topology reconstruction engine 112 is configured in an embodiment to generate a curvature-based segmentation 115 of the point cloud data 111 by implementing curvature-based segmentation approaches, such as Hough transformation, RAN SAC fitting, and machine learning based methods for the topology or surface feature reconstruction of point clouds segmentation, which can restore the design intent and / or bring back (layout) structure to the data. While manual segmentation and fitting procedures (i.e., manual reverse engineering) are widelyused, they are not considered here as they do not allow for automated workflows, cannot be scaled to large data sets, and rely on user judgement.
[0020] In an embodiment, 3D topology reconstruction engine 112 is configured to execute point cloud segmentation based on a combination of curvature-based segmentation and region growing segmentation 117 in an iterative process.
[0021] FIG. 2A illustrates a flowchart example for a 3D topology reconstruction of a point cloud representation of an object in accordance with embodiments of this disclosure. In an embodiment, 3D topology reconstruction engine 112 executes a topology reconstruction process which includes the following steps. At step 201 , 3D topology reconstruction engine 112 estimates a surface normal for each surface represented by the point cloud (on a point cloud level). Subsequently at 202, 3D topology reconstruction engine 112 determines the local principal curvature for each point of the cloud and the point cloud is read into an octree data structure for further segmentation processing. The principal curvature is the rate at which the surface normal angle changes while moving along the surface. Next, 3D topology reconstruction engine 112 performs an iterative sequence of segmentation steps according to granularity and accuracy needed, starting with a curvature-based segmentation 203 followed by region growing segmentation 204 to generate distinct clusters inside the point cloud. Those clusters can be object surface features like primitives and freeform areas but also entire objects like machines, equipment, plant infrastructure and the like. One challenge arising from such segmentation is to correct for over-segmentation.
[0022] FIG. 2B illustrates a flowchart example for a process to correct oversegmentation during the topology reconstruction process shown in FIG. 2A, inaccordance with embodiments of this disclosure. In FIG. 2B, curvature segmentation of step 203 is broken down into sub-steps 203a, 203b, 203c and 203d. At step 203a, a curvature histogram is generated from the local principal curvature. The histogram shows the curvature distribution of the point cloud. Within this distribution, certain object features (like planes, cylinder, pipes, walls, etc.) present themselves as characteristic peaks within a certain sequence in the curvature histogram. Examples of histograms and segmentation are illustrated in FIGs. 3 and 4. FIG. 3 shows an example of a curvature histogram 302 with a corresponding segmentation 301 as rendered on a graphical user interface. In this example, an industrial system (e.g., a manufacturing pipeline on a factory floor) has been scanned to generate a point cloud representation, and 3D topology reconstruction engine 112 has generated the curvature-based segmentation 301 according to a selected octree resolution. As shown in histogram 302, objects with a normalized curvature value of 4.5 are most frequently presented in the segmentation. FIG. 4 illustrates an example of segmentation for an object to be manufactured having surface features (e.g., a hole to be drilled) to be identified for creating a tool path for an automated cutting / milling machine. Histogram 402 reflects the curvatures related to surface edges of the scanned object, with segmentation 401 rendered on a graphical user interface. The segmentation sequence for the segmentation renderings 301 , 401 is defined by the degree of curvature and goes from flat (planar), which likely represent the floor of the scanned industrial facility, to the most edgy areas of point cloud, which are likely candidates for the edges of machines or parts. The sharpness of the distribution is determined by the scanning equipment resolution as well as the selected processing resolution of the octree. The dependency of the histogram “sharpness” or “expressiveness” (i.e. , showing the typicalpeaks) is used to automatically calculate the optimal octree resolution, which is usually lower than the native point cloud resolution. Since it is known that the edges are constituting the highest curvature and the planar areas the lowest curvature, the distribution can always be normalized by that range, independent of the octree resolution.
[0023] FIG. 5 illustrates an example of a Gaussian mixture model in accordance with embodiments of this disclosure. In an embodiment, 3D topology reconstruction engine 112 is configured to fit a Gaussian mixture model 511 for a decomposition of the curvature distribution 512 into its individual components (at step 203b), which represent distinct objects or object features. In this example, there are four features with respective individual curvature components 501 , 502, 503, 504. Parameter u represents the center of the individual component, parameter o represents the width, and parameter w represents the height. Using those individual curvature components, curvature threshold values (e.g., parameter w) for the curvature-based segmentation can be established, such that the curvature-based segmentation of the entire point cloud will generate distinct clusters in the point cloud according to the different curvature regions defined by the set threshold values. Of course, the thresholds can also be changed and set by the user, but this is regarded optional and not required. The cluster belonging to the highest curvature values in the distribution is then isolated at step 203c from the other clusters (identified via threshold values). The clusters correspond to the edges of the real-world object(s). Hence, this isolation leads to a spatial separation of the remaining curvature segmented clusters.
[0024] To correct for over-segmentation, at 203d, feature removal module 116 identifies one or more clusters, and removes the segmentation corresponding to one ormore identified clusters so that remaining segmentation can be further processed as a refinement. For the industrial facility example, feature removal module 116 may identify an isolated planar cluster as the floor of the facility, and removes segmentation for this cluster (i.e., background removal) so that remaining segmentation can be processed by another iteration of region growing segmentation and curvature segmentation without the interference of the floor segmentation. Likewise, other isolated clusters (e.g., machinery, piping) may subsequently isolated and identified for removal, until only the walls remain for topology reconstruction. This process is useful for a 3D scan of an existing industrial facility in which machinery and piping cannot be removed for a clean 3D scan of only walls, ceilings and floors intended to be modeled and constructed.
[0025] Following the curvature-based segmentation steps 203a, 203b, 203c, 203d, 3D topology reconstruction engine 112 executes region growing algorithm at step 204 to separate the curvature clusters into distinct regions according to their spatial separation. This region growing segmentation also allows for discarding clusters with a relatively small number of points, which is helpful to remove artifacts usually present in the scan data of point cloud 111. The segmentation results following the region growing step 204 are then representing distinct features of the objects or scenes mixed with various other clusters without such direct meaning. For example, all planar and cylindrical areas can be grouped individually into clusters. These clusters can already be regarded as final segmentation results since they directly represent features of the underlying object and are classified as such based on RANSAC classification and / or user interaction. Additional iterations of steps 204 and 203 may be repeated until the final topology 121 is obtained.In some embodiments, step 203d may be repeated to remove clusters isolated and identified by the region growing segmentation step 204.
[0026] Using the proposed approach as described above, additional information (e.g., the size and orientation) of the segmented clusters is leveraged to automatically identify each individual cluster (e.g., a complex structure) and isolate it from the remaining clusters. As an example of size and orientation information used in implementations of the 3D topology reconstruction pertaining to larger subjects, such as a floorplan of an industrial system, the cluster belonging to the wall structure is more likely to exhibit a larger height in the z-direction as compared to the remaining clusters. Also, the principal axis orientation of the clusters is likely to be oriented in the z-direction. Hence, the additional information of the clusters relating to the original design intent can be applied for results redefinition, if an under-segmentation is observed. Such additional classification can also be obtained from neighborhood relations if any CAD models are available.
[0027] To overcome any over-segmentation, the results classified as final clusters are isolated before a next region growing segmentation is executed. For example, isolated clusters that correspond to a first element allow for a recombination of the former isolated high curvature clusters with the remaining clusters of the object(s).
[0028] The isolation of clusters fostering the spatial separation of the set of clusters going into the recombination is decisive for the quality of the achieved results with regard to under-segmentation. The region growing algorithm reconnects all clusters which do not exhibit a spatial separation. The actual separation will be defined by the chosen octreeresolution for processing the segmentation results, which makes this parameter ideally suited for supporting an automated approach.
[0029] In a case for which a further segmentation cannot be achieved, RGB information, if available, can be leveraged to achieve a further segmentation. Alternatively, a manual separation can be applied.
[0030] In summary, the following principles are applied to the curvature-based segmentation and region growing segmentation process executed by framework 100. The curvature histogram is defined with distinctive regions that correspond to geometrical entities (e.g., planes, holes, cylinders, polygons, etc.) of the object(s). It is assumed that at least some over-segmentation exists, and correction of the over-segmentation is included as a natural part of the workflow (e.g., merging via region growth). The segmentation topology is searched for "super clusters” and any super clusters are broken up. For example, if a bounding box volume for a super cluster is greater than 30% of entire dataset volume, then the segmentation for that region is to be reprocessed. A bounding box approach can be used to determine the “cluster overlap”, identify super clusters, and to automatically group asset clusters that are non-super clusters. Cluster classification can be done automatically or by the user.
[0031] The following description illustrates an exemplary workflow for topology reconstruction an industrial system floorplan from a 3D scanned point cloud. For curvature-based segmentation, floor and floor and planar walls (if any) are separated from the scene based on the curvature histogram. Planar entities are grouped into separated clusters (floor, walls, etc.) using region growth segmentation. This includes isolation of“floor” and “wall” clusters and all clusters that do not belong to individual assets orinfrastructure. Original points behind the clusters are saved to a file. In order to isolate clusters, the curvature-based segmentation and region growth segmentation is performed iteratively. A second operation of curvature-based segmentation and region growth segmentation is executed as follows. Roof and building construction (high curvature / edge curvature) is separated from infrastructure (e.g., pipes) and shopfloor assets (e.g., machines). Assets and infrastructure of lower curvature regions are segmented with region growth segmentation. This includes isolating all clusters that do not belong to individual assets or infrastructure, if any. Original points behind clusters are saved to a file. Roof and building construction of higher curvature regions are segmented using region growth segmentation. This includes isolating all clusters that do not belong to individual assets or infrastructure, like the roof (only if already correct design intent is achieved). Original points behind clusters are saved to a file.
[0032] Individual low resolution octree representation for clusters corresponding to background structures (e.g., “floor and wall” clusters) is generated. With higher octree resolution models, the noise in point cloud data can become dominant and destroy the design intent (e.g., floor is no longer clustered). As an option, higher octree resolution or original points can be generated for visualization purpose only. A high octree resolution or original points representation (higher than segmentation resolution) of merged “infrastructure and asset” clusters for all curvature-based segmentation results is generated. Remaining “floor and wall clusters” are separated.
[0033] Using region growing segmentation, all planar and edge clusters are merged using lower octree resolution (principle curvature estimation run with input from the workspace). For this, original points are an option (i.e., for most cases, the initialsegmentation resolution is a good starting point). As a result, all edges and planes of individual assets that are separated in space are recombined.
[0034] Next, a detection of “super clusters” (e.g., roof combined with columns) and asset clusters (e.g., machines) is performed. A bounding box comparison yields two separate groups, the asset clusters and the super clusters. An additional run with super clusters is performed using growing bounding box as growing stop criteria.
[0035] FIG. 6 shows an example of a computing environment in which embodiments of the present disclosure may operate. A computing device 610 includes a processor 615 and memory 611 (e.g., a non-transitory computer readable media) on which is stored various computer applications, modules or executable programs. In an embodiment, memory 611 includes one or more of the following modules: 3D topology reconstruction engine module 112, and feature removal module 116 as described with reference to FIG. 1.
[0036] A network 660, such as a local area network (LAN), wide area network (WAN), or an internet based network, connects a remote computing device 641 to modules 112, 116 of computing device 610 to enable remote access computing.
[0037] User interface module 614 provides an interface between modules 112, 116 and user interface 630 devices, such as display device 631 and user input device 632. Graphical user interface (GUI) engine 613 drives the display of an interactive user interface on display device 631 , allowing a user to receive visualizations of analysis results and assisting user entry of selectable parameters for modules 112, 116.
[0038] Point cloud representations 1 11 may be stored at local storage 622 or remote storage 642 that is accessible via network 660.
[0039] Computer readable medium instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field- programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
[0040] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), andcomputer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, may be implemented by computer readable medium instructions.
[0041] The program modules, applications, computer-executable instructions, code, or the like depicted in FIG. 6 as being stored in the system memory 611 are merely illustrative and not exhaustive and that processing described as being supported by any particular module may alternatively be distributed across multiple modules or performed by a different module. In addition, various program module(s), script(s), plug-in(s), Application Programming Interface(s) (API(s)), or any other suitable computer-executable code hosted locally on the computer system 610, remote network device 641 , remote storage 642 and / or hosted on other computing device(s) accessible via one or more of the network(s) 660, may be provided to support functionality provided by the program modules, applications, or computer-executable code and / or additional or alternate functionality. Further, functionality may be modularized differently such that processing described as being supported collectively by the collection of program modules depicted in FIG. 6 may be performed by a fewer or greater number of modules, or functionality described as being supported by any particular module may be supported, at least in part, by another module. In addition, program modules that support the functionality described herein may form part of one or more applications executable across any number of systems or devices in accordance with any suitable computing model such as, for example, a client-server model, a peer-to-peer model, and so forth. In addition, any of the functionality described as being supported by any of the program modules depicted inFIG. 6 may be implemented, at least partially, in hardware and / or firmware across any number of devices.
[0042] It should further be appreciated that the computer system 610 may include alternate and / or additional hardware, software, or firmware components beyond those described or depicted without departing from the scope of the disclosure. More particularly, it should be appreciated that software, firmware, or hardware components depicted as forming part of the computer system 610 are merely illustrative and that some components may not be present or additional components may be provided in various embodiments. While various illustrative program modules have been depicted and described as software modules stored in system memory 611 , it should be appreciated that functionality described as being supported by the program modules may be enabled by any combination of hardware, software, and / or firmware. It should further be appreciated that each of the above-mentioned modules may, in various embodiments, represent a logical partitioning of supported functionality. This logical partitioning is depicted for ease of explanation of the functionality and may not be representative of the structure of software, hardware, and / or firmware for implementing the functionality. Accordingly, it should be appreciated that functionality described as being provided by a particular module may, in various embodiments, be provided at least in part by one or more other modules. Further, one or more depicted modules may not be present in certain embodiments, while in other embodiments, additional modules not depicted may be present and may support at least a portion of the described functionality and / or additional functionality. Moreover, while certain modules may be depicted and described as sub-modules of another module, in certain embodiments, such modules may be provided as independent modules or as sub-modules of other modules.
[0043] Although specific embodiments of the disclosure have been described, one of ordinary skill in the art will recognize that numerous other modifications and alternative embodiments are within the scope of the disclosure. For example, any of the functionality and / or processing capabilities described with respect to a particular device or component may be performed by any other device or component. Further, while various illustrative implementations and architectures have been described in accordance with embodiments of the disclosure, one of ordinary skill in the art will appreciate that numerous other modifications to the illustrative implementations and architectures described herein are also within the scope of this disclosure. In addition, it should be appreciated that any operation, element, component, data, or the like described herein as being based on another operation, element, component, data, or the like can be additionally based on one or more other operations, elements, components, data, or the like. Accordingly, the phrase “based on,” or variants thereof, should be interpreted as “based at least in part on.”
[0044] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the Figures. Forexample, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustration, and combinations of blocks in the block diagrams and / or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
Claims
CLAIMSWhat is claimed is:1 . A computer-implemented system for generating a topology reconstruction of a 3D scanned object, the system comprising: a processor; and memory having modules stored thereon with instructions to be executed by the processor, the modules comprising: a 3D topology reconstruction engine configured to: receive point cloud data comprising one or more point cloud representations of an object; generate a curvature-based segmentation of the point cloud data; and generate region growing segmentation of the point cloud data to generate distinct clusters inside the one or more point clouds; read the point cloud data into an octree data structure; and generate a histogram of a curvature distribution for the one or more point cloud representations, wherein the histogram is defined with distinctive regions that correspond to geometrical entities of the object, wherein peaks of the histogram are used to automatically calculate the optimal octree resolution; wherein the curvature-based segmentation and region growing segmentation are performed iteratively to generate the topology reconstruction.
2. The system of claim 1 , wherein the 3D modeling topology reconstruction engine is further configured to: decompose the curvature distribution into components by applying a Gaussian mixture fit.
3. The system of claim 1 , wherein the curvature-based segmentation is implemented as a Hough transformation or a RANSAC fitting.
4. The system of claim 1 , wherein the 3D topology reconstruction engine is further configured to: isolate clusters belonging to highest curvature values in the curvature distribution to identify spatial separation between clusters.
5. The system of claim 4, further comprising: a feature removal module configured to identify and remove isolated clusters to correct over-segmentation.
6. The system of claim 1 , wherein the curvature-based segmentation comprises: setting a low resolution octree resolution for clusters corresponding to background structure, wherein the octree resolution is lower than the native point cloud resolution.
7. The system of claim 1 , wherein the region growing segmentation allows for discarding clusters with relatively small number of points.
8. The system of claim 1 , wherein the region growing segmentation reconnects all clusters which do not exhibit a spatial separation.
9. A computer-implemented method for generating a topology reconstruction of a 3D scanned object, the method comprising: receiving point cloud data comprising one or more point cloud representations of an object; generating a curvature-based segmentation of the point cloud data; and generating region growing segmentation of the point cloud data to generate distinct clusters inside the one or more point clouds; reading the point cloud data into an octree data structure; and generating a histogram of a curvature distribution for the one or more point cloud representations, wherein the histogram is defined with distinctive regions that correspond to geometrical entities of the object, wherein peaks of the histogram are used to automatically calculate the optimal octree resolution; wherein the curvature-based segmentation and region growing segmentation are performed iteratively to generate the topology reconstruction.
10. The method of claim 9, further comprising: decomposing the curvature distribution into components by applying a Gaussian mixture fit.11 . The method of claim 9, further comprising: isolating clusters belonging to highest curvature values in the curvature distribution to identify spatial separation between clusters.
12. The method of claim 11 , further comprising: identifying and removing isolated clusters to correct over-segmentation.
13. The method of claim 11 , wherein the curvature-based segmentation comprises: setting a low resolution octree resolution for clusters corresponding to background structure, wherein the octree resolution is lower than the native point cloud resolution.
14. The method of claim 9, wherein the region growing segmentation allows for discarding clusters with relatively small number of points.
15. The method of claim 9, wherein the region growing segmentation reconnects all clusters which do not exhibit a spatial separation.