A multi-pipeline 3D point cloud minimum distance automatic solving method

By using 3D point cloud scanning, curvature-based region growing algorithm, and KD-tree denoising, the minimum spacing of aero-engine pipes is automatically calculated, overcoming the shortcomings of manual measurement and achieving efficient and accurate pipe spacing calculation.

CN117934437BActive Publication Date: 2026-05-19NORTHWESTERN POLYTECHNICAL UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
NORTHWESTERN POLYTECHNICAL UNIV
Filing Date
2024-01-31
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

In the current technology, the assembly of aero-engine pipes mainly relies on manual measurement, which results in uneven distribution of pipe spacing, making it difficult to meet the requirements of accuracy and efficiency. Furthermore, three-dimensional point cloud scanning technology cannot automatically solve the point cloud distance, and there is a lack of a fast and automatic method for solving the minimum pipe spacing.

Method used

A 3D point cloud scanning device is used to generate point clouds of pipeline templates. A curvature-based region growing algorithm is used for classification and segmentation. The nearest neighbor search algorithm of KD-tree is combined for noise reduction. A cylinder is fitted and the pipeline spacing is calculated to automatically solve for the minimum spacing.

Benefits of technology

This improves the efficiency and accuracy of solving the minimum pipe spacing, avoids the shortcomings of manual measurement, and ensures the uniformity and accuracy of pipe spacing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117934437B_ABST
    Figure CN117934437B_ABST
Patent Text Reader

Abstract

The application discloses a kind of minimum spacing automatic solving method for multi-pipeline 3D point cloud, comprising the following contents: S1, the pipeline sample real object is scanned, and pipeline sample three-dimensional point cloud is generated;S2, according to similarity condition, pipeline sample three-dimensional point cloud is classified randomly and numbered;S3, pipeline point cloud is segmented from pipeline sample three-dimensional point cloud;S4, straight pipe point cloud and elbow pipe point cloud are segmented;S5, the straight pipe point cloud and elbow pipe point cloud segmented are carried out noise reduction processing;S6, the straight pipe and elbow pipe part of each pipeline are cylindrically fitted to obtain corresponding cylinder;S7, according to the starting point coordinate, direction vector and radius information of cylinder axis, the spacing between each pipeline in pipeline point cloud is calculated, and minimum spacing is determined.It solves the deficiency of existing manual measurement technology and the problem that pipeline minimum spacing automatic solving method lacks.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of three-dimensional point cloud size measurement, specifically involving an automatic solution method for minimum spacing of multi-pipeline 3D point clouds. Background Technology

[0002] An aero-engine piping system refers to the system that connects engine components and accessories through pipelines and transports various fluids required for engine operation, control, and manipulation. A typical aero-engine usually contains more than 200 pipelines. These pipelines must also meet various engineering requirements, including mechanical and vibration specifications, resulting in a complex, overlapping network. HB201234-2012 stipulates that the laying of aero-engine piping must ensure that the minimum spacing between pipelines and between pipelines and adjacent accessories meets design requirements. The minimum spacing of engine pipelines is one of the important factors in ensuring the normal operation of an aero-engine. Failure to meet the minimum spacing requirements can easily lead to friction and vibration damage between pipelines and other accessories.

[0003] Currently, the assembly of pipelines in aero-engines is mainly done manually. This inevitably increases the risk of uneven pipeline spacing, excessively small or large local spacing, and other problems caused by worker subjectivity, seriously affecting the assembly quality of aero-engines. Due to the numerous surface attachments and significant mutual obstruction between them, traditional manual measurement methods are inefficient, inaccurate, and time-consuming, making it difficult to meet the production requirements of aero-engines. Furthermore, current 3D point cloud scanning technology, while a common method for 3D measurement, can only acquire point cloud data and cannot automatically calculate point cloud distances. This also results in a lack of a fast and automatic method for calculating the minimum spacing of aero-engine pipelines based on 3D point clouds. Summary of the Invention

[0004] The purpose of this invention is to provide an automatic solution method for minimum spacing in 3D point clouds with multiple pipelines, so as to solve the shortcomings of existing manual measurement techniques and the lack of automatic solutions for minimum pipeline spacing.

[0005] This invention adopts the following technical solution: an automatic solution method for minimum spacing in multi-pipeline 3D point clouds, comprising the following:

[0006] S1. Use a 3D point cloud scanning device to scan the actual pipeline template and generate a 3D point cloud of the pipeline template.

[0007] S2. Randomly classify and number the 3D point cloud of the pipeline template according to the similarity condition, which is the curvature value;

[0008] S3. Set the segmentation threshold to segment the pipeline point cloud from the 3D point cloud of the pipeline template;

[0009] S4. Perform fine segmentation on the point cloud of each pipeline in sequence to segment out the point cloud of straight pipes and the point cloud of curved pipes.

[0010] S5. Perform noise reduction processing on the segmented straight pipe point cloud and curved pipe point cloud to obtain the denoised straight pipe point cloud and the denoised curved pipe point cloud.

[0011] S6. Based on the denoised straight pipe point cloud and the denoised curved pipe point cloud, perform cylindrical fitting on the straight pipe and curved pipe parts of each pipeline to obtain the corresponding cylinders, and then solve for the starting coordinates, direction vector and radius information of the axis of each cylinder.

[0012] S7. Based on the starting coordinates, direction vector and radius information of the axis of each cylinder obtained in step S6, calculate the spacing between each pipeline in the pipeline point cloud and determine the minimum spacing.

[0013] Furthermore, in step S4, all pipeline point cloud files in S3 are called in a loop, and the input pipeline point cloud files are segmented using the segmentation module in the point cloud library. The segmentation model is set as a straight line. The segmentation uses a random sampling consensus algorithm to fit the straight line model, and then the point cloud of the fitted model is extracted.

[0014] Furthermore, the specific method for step S7 is as follows:

[0015] Randomly select any two cylinders obtained from the fitting in step S6, traverse all points on the axes of the two cylinders, calculate the distance between the random points on the two axes, and finally obtain the shortest distance between the axes of the two cylinders.

[0016] Traverse all cylinders fitted in step S6, and use the above method to obtain the shortest distance between the axes of any two cylinders in multiple sets, and finally determine the minimum spacing of the multi-pipeline 3D point cloud.

[0017] Furthermore, the specific method of step S1 is as follows: use an LMI 3D point cloud scanner to scan the surface of the pipeline template to generate 3D point cloud data of the pipeline template.

[0018] Furthermore, the specific method for step S2 is as follows:

[0019] The region growing algorithm is used to cluster the sample point cloud. The region growing algorithm randomly selects a seed point from the 3D point cloud data of the pipeline sample, and then searches for neighboring points based on similarity conditions. The similarity condition is the curvature value. The neighboring points that meet the similarity conditions are added to the current cluster and marked as visited.

[0020] Repeat the above steps until no similar points can be added to the current class. Then, select the next seed point and start clustering again until all pipeline template 3D point clouds have been classified. Finally, number all pipeline template 3D point cloud clusters in sequence.

[0021] Furthermore, in step S3, the segmentation thresholds include the maximum number of clusters, the minimum number of clusters, the curvature threshold, and the smoothness threshold.

[0022] The beneficial effects of this invention are as follows: This invention proposes an automatic method for solving the minimum spacing of 3D point clouds for multi-pipe systems. It generates point cloud data by meticulously scanning pipe templates using an LMI 3D point cloud scanner, avoiding the loss of some small pipe features. The curvature-based region growing algorithm is highly sensitive to changes in the local shape of the point cloud, resulting in better clustering effects and higher accuracy, making it suitable for distinguishing point cloud data with similar shapes, such as pipes and pipe joints. The KD-tree-based nearest neighbor search algorithm accelerates the denoising process of the pipe point cloud data, which is beneficial for improving the efficiency and accuracy of subsequent cylindrical fitting of the pipe point cloud. Overall, this invention proposes an automatic method for solving the minimum spacing of pipe systems, significantly improving the efficiency of minimum spacing calculation. Attached Figure Description

[0023] Figure 1 This is a pipeline template design drawing in an embodiment of the present invention;

[0024] Figure 2 This is a three-dimensional point cloud diagram of the pipeline template in an embodiment of the present invention;

[0025] Figure 3 This is a point cloud clustering diagram of the pipeline template in an embodiment of the present invention;

[0026] Figure 4 This is a point cloud diagram of the segmented pipeline in an embodiment of the present invention;

[0027] Figure 5-a This is a schematic diagram of the effect of the segmented straight tube point cloud obtained in an embodiment of the present invention;

[0028] Figure 5-b This is a schematic diagram of the effect of the segmented curved pipe point cloud obtained in an embodiment of the present invention;

[0029] Figure 6 This is a flowchart illustrating an automatic solution method for minimum spacing in multi-pipeline 3D point clouds according to an embodiment of the present invention.

[0030] Among them, 1. straight pipe, 2. bent pipe, 3. pipe fitting, and 4. fixing clamp. Detailed Implementation

[0031] The technical solutions of the present invention will be fully described below with reference to the accompanying drawings. Obviously, the described examples are only some embodiments of the present invention, and not all embodiments.

[0032] This invention provides an automatic method for solving the minimum spacing of 3D point clouds with multiple pipelines, referencing... Figure 6 The specific implementation steps are as follows:

[0033] S1. Use a 3D point cloud scanning device to scan the actual pipeline template and generate a 3D point cloud of the pipeline template.

[0034] S2. Randomly classify and number the three-dimensional point cloud of the pipeline template according to the similarity condition, wherein the similarity condition is the curvature value;

[0035] S3. Set a segmentation threshold to segment the pipeline point cloud from the three-dimensional point cloud of the pipeline template;

[0036] S4. Perform fine segmentation on each of the pipeline point clouds in sequence to segment out straight pipe point clouds and curved pipe point clouds.

[0037] S5. Perform noise reduction processing on the segmented straight pipe point cloud and curved pipe point cloud to obtain the denoised straight pipe point cloud and the denoised curved pipe point cloud.

[0038] S6. Based on the denoised straight pipe point cloud and the denoised curved pipe point cloud, perform cylindrical fitting on the straight pipe and curved pipe parts of each pipeline to obtain the corresponding cylinder, and then solve the starting coordinates, direction vector and radius information of the axis of each cylinder.

[0039] S7. Based on the starting coordinates, direction vector and radius information of the axis of each cylinder obtained in step S6, calculate the spacing between each pipeline in the pipeline point cloud and determine the minimum spacing.

[0040] In some embodiments, the specific method of S1 is as follows: the surface of the pipeline template is scanned using an LMI 3D point cloud scanner to generate 3D point cloud data of the pipeline template.

[0041] In some embodiments, the specific method of S2 is as follows: a region growing algorithm is used to cluster the template point cloud. The region growing algorithm randomly selects a seed point from the three-dimensional point cloud data of the pipeline template, and then searches for neighboring points based on similarity conditions. The similarity condition is the curvature value, and the neighboring points that meet the similarity conditions are added to the current cluster and marked as visited.

[0042] Repeat the above steps until no similar points can be added to the current class. Then, select the next seed point and start clustering again until all pipeline template 3D point clouds have been classified. Finally, number all pipeline template 3D point cloud clusters in sequence.

[0043] In some embodiments, the specific method of S3 is as follows: other types of point clouds are removed by setting the maximum and minimum number of clusters, curvature threshold and smoothness threshold range, and only pipeline point clouds are retained. Then, each type of pipeline point cloud is randomly assigned a different color for visualization and saved separately to a folder.

[0044] In some embodiments, the specific method of S4 is as follows: all pipeline point cloud files in S3 are called in a loop, and the input pipeline point cloud files are segmented using the segmentation module in the point cloud library. The segmentation model is set as a straight line. The segmentation uses a random sampling consensus algorithm to fit the straight line model, and then the point cloud of the fitted model is extracted.

[0045] In some embodiments, the specific method of S5 is as follows: noise reduction is performed using the KD-tree method. First, Euclidean clustering is performed on the point cloud. Parameters such as clustering tolerance (setClusterTolerance), minimum cluster size (setMinClusterSize), and maximum cluster size (setMaxClusterSize) are set to divide the point cloud into multiple clusters. Then, the variance of each cluster is calculated. Then, clusters with high variance are removed. Finally, the remaining clusters are saved as output.

[0046] In some embodiments, the specific method of S6 is as follows: Create a loop, traverse the point cloud file that has been denoised in the previous step, set the segmentation model category to Cylinder, set the surface normal weight coefficient, the maximum number of iterations, and the distance threshold for judging interior points; set the radius of the cylinder model to a range of 4.5-4.9mm, use a filter to segment out the cylinder point cloud that meets the given parameters, and obtain the starting coordinates, direction vector, and radius information of the axis of each fitted cylinder, and output the starting coordinates, direction vector, and radius information of the axis of each cylinder to a TXT file in the program directory for easy subsequent use.

[0047] In some embodiments, the specific method of S7 is as follows: randomly select any two cylinders obtained by fitting in step S6, traverse all points on the axes of the two cylinders, calculate the distance between random points on the two axes, and finally obtain the shortest distance between the axes of the two cylinders; traverse all cylinders obtained by fitting in step S6, and use the above method to obtain multiple sets of shortest distances between the axes of any two cylinders, and finally determine the minimum spacing of the multi-pipeline 3D point cloud.

[0048] Example

[0049] The following is based on Figure 1 This paper uses a pipeline template design drawing to describe in detail the process of an automatic solution method for minimum spacing in 3D point clouds with multiple pipelines.

[0050] S1. Based on the prototype of the pipeline of aerospace engine, a pipeline template is made. The pipeline template is scanned using a 3D point cloud scanning device to generate a 3D point cloud of the pipeline template. Here, the LMI 3D point cloud scanner is used.

[0051] The specific method is as follows: A physical model of the pipeline is fabricated and used as the subject of the experimental photography, such as... Figure 1 The image shows a specific model of an aerospace engine piping system, including multiple straight pipes (1), bends (2), pipe fittings (3), and clamps (4). An operator uses a handheld LMI 3D point cloud scanner to scan the surface of the piping template, generating point cloud data for the template. Figure 2 As shown, during the scanning process, the scanning distance should be avoided to be too close or too far, and the scanning speed should not be too fast, so as not to affect the quality of the scanned point cloud. Due to the obstruction of the base plate, the lower half of the pipeline could not be scanned, so the radial cross section of the point cloud of the entire pipeline should be semi-cylindrical. Moreover, the scanned pipeline point cloud and the pipe joint point cloud have similar features, especially at the connection, which poses a great challenge to the subsequent clustering algorithm.

[0052] S2. Pipeline template point cloud clustering: Randomly classify all pipeline template point clouds according to similarity conditions, and number the point clouds of different classes. The purpose is to segment the pipeline point clouds in the next step.

[0053] The specific method is as follows: Considering that the point clouds of pipelines and their connected pipe joints are quite similar and difficult to separate, and that curvature is very sensitive in describing the local shape features of point cloud data, by calculating the curvature of each point in the point cloud, subtle shape changes on the point cloud surface can be captured, thus separating the pipeline point cloud from the similarly shaped pipe joint point cloud. This is difficult to achieve with other clustering algorithms. Therefore, a curvature-based region growing algorithm is used to cluster the sample point cloud, such as... Figure 3 As shown, the region growing algorithm randomly selects a seed point from the point cloud data, then searches for neighboring points based on similarity conditions (here, similarity conditions refer to curvature values), and adds neighboring points that meet the similarity conditions to the current cluster, while marking them as visited. This process is repeated until no similar points can be added to the current class. Then, the next seed point is selected and the clustering process starts again until all sample point clouds have been classified. Finally, all point cloud clusters are numbered in sequence.

[0054] S3. Pipeline point cloud segmentation: Based on the results of the previous sample point cloud clustering, set an appropriate segmentation threshold to segment the point cloud belonging to the pipeline from the entire sample point cloud and save it.

[0055] The specific method is as follows: Other point cloud types are removed by setting maximum and minimum cluster numbers, curvature thresholds, and smoothness threshold ranges, such as... Figure 4 As shown, only the pipeline point cloud is retained, and then each type of pipeline point cloud is randomly assigned a different color for visualization and saved separately to a folder.

[0056] S4. Perform fine segmentation on the point cloud of each individual pipeline in sequence. The purpose of this step is to segment out the straight and curved parts of the pipeline.

[0057] The specific method is as follows: Multiple pipeline point cloud files generated from clustering are iteratively called. The segmentation module in the point cloud library is used, setting the segmentation model to a straight line. The input point cloud file is segmented, and the segmentation results that meet certain size criteria are saved. The segmentation uses a random sampling consensus algorithm to fit the straight line model, and then the point cloud of the fitted model is extracted. The segmentation approach is as follows: The algorithm finds all straight line point clouds in the point cloud. Since the straight pipe portion conforms to the straight line model, setting an appropriate threshold can segment pipes with multiple bending angles into pipes with only one bending angle, thus achieving the separation of straight and curved pipes. The results are saved separately. Due to the large number of pipeline point cloud images, only a portion of the results are shown. Figure 5-a and Figure 5-b As shown, the same applies below.

[0058] S5. Since the segmentation result in the previous step will contain noisy point clouds, it is necessary to perform noise removal processing on the segmentation result in the previous step. The KD-tree method is used for the point cloud processing of outliers in this step.

[0059] The specific method is as follows: KD-tree method is used for noise reduction. First, Euclidean clustering is performed on the point cloud. Parameters such as clustering tolerance (setClusterTolerance), minimum cluster size (setMinClusterSize), and maximum cluster size (setMaxClusterSize) are set to divide the point cloud into multiple clusters. Then, the variance of each cluster is calculated. Then, clusters with high variance are removed. Finally, the remaining clusters are saved as output.

[0060] S6. Since the radial cross-section of the pipeline point cloud after scanning is semi-circular, based on the better point cloud data obtained after the previous denoising step, it is necessary to perform cylindrical fitting on the straight and curved parts, solve for the cylinder information, and thus solve for the minimum pipeline spacing.

[0061] The specific method is as follows: Create a loop to traverse the point cloud file that has been denoised in the previous step, set the segmentation model category to Cylinder, set the surface normal weight coefficient, the maximum number of iterations, and the distance threshold for judging interior points; set the radius of the cylinder model to a range of 4.5-4.9mm, use a filter to segment out the cylindrical point cloud that meets the given parameters, and obtain the starting coordinates, direction vector, and radius information of the axis of each fitted cylinder. Output the starting coordinates, direction vector, and radius information of the axis of each cylinder to a TXT file in the program directory for easy subsequent use.

[0062] S7. Based on the starting coordinates, direction vector, and radius information of the fitted cylindrical axis, the minimum spacing of the point cloud pipeline can be calculated.

[0063] The specific method is as follows: Create a function `euclideanDistance` to calculate the distance between two points in space. Select a point on the first cylindrical axis and a point on the second cylindrical axis, respectively, and use the function to calculate the distance between the two points. Then change the selected points and recalculate the distance. Finally, traverse all points on the entire axis to obtain the shortest distance between the two axes. Randomly group all cylinders in pairs and number them. Calculate the minimum distance between the axes of two cylinders in the same group using the above method. Then, by comparing between groups, obtain the group number and minimum distance value of the minimum distance. The final minimum distance of the pipeline is the minimum distance between the axes minus the radius of the two cylinders.

[0064] This invention proposes an automatic method for solving the minimum spacing of 3D point clouds for multi-pipe systems. It utilizes an LMI 3D point cloud scanner to generate point cloud data from a detailed scan of a pipe template, avoiding the loss of some fine pipe features. A curvature-based region growing algorithm is employed, which is highly sensitive to changes in the local shape of the point cloud, resulting in better clustering and higher accuracy, making it suitable for distinguishing point cloud data with similar shapes, such as pipes and pipe fittings. The KD-tree-based nearest neighbor search algorithm accelerates the denoising process of the pipe point cloud data, improving the efficiency and accuracy of subsequent cylindrical fitting of the pipe point cloud. Overall, this invention proposes an automatic method for solving the minimum spacing of pipe systems, significantly improving the efficiency of this solution.

[0065] The similarity condition of this invention is curvature, because curvature is highly sensitive in describing the local shape features of point cloud data. By calculating the curvature of each point in the point cloud, subtle shape changes on the point cloud surface can be captured, allowing the separation of pipe point clouds from pipe joint point clouds with similar shapes—something difficult to achieve with other clustering algorithms. Compared to some algorithms that require pre-setting the number of clusters, the curvature-based region growing algorithm of this invention can automatically determine the number of clusters. It divides the sample point cloud data into different regions based on curvature differences, with each region corresponding to one cluster, thus eliminating the need to pre-set the number of clusters and avoiding the limitation of pre-setting the number of clusters. The curvature-based region growing algorithm of this invention is relatively robust to noise and outliers in point cloud data. Since curvature helps capture subtle shape changes on the point cloud surface, it can reduce the impact of noise and outliers on the clustering results to a certain extent.

[0066] In this invention, the KD-tree-based nearest neighbor search algorithm is used to denoise pipeline point clouds, enabling rapid segmentation and organization of the point cloud data, thereby accelerating the nearest neighbor search process. This allows the denoising algorithm to quickly find the nearest neighbor of each point when processing large-scale pipeline point cloud data, improving the overall efficiency of the algorithm. Furthermore, the KD-tree-based nearest neighbor search algorithm can adapt to point cloud data of different shapes and distributions, thus better preserving the characteristics of the pipeline point clouds during the denoising process.

Claims

1. A method for automatically solving the minimum spacing of 3D point clouds with multiple pipelines, characterized in that, Includes the following: S1. Use a 3D point cloud scanning device to scan the actual pipeline template and generate a 3D point cloud of the pipeline template. S2. Randomly classify and number the three-dimensional point cloud of the pipeline template according to the similarity condition, wherein the similarity condition is the curvature value; The specific method for step S2 is as follows: A region growing algorithm is used to cluster the sample point cloud. The region growing algorithm randomly selects a seed point from the 3D point cloud data of the pipeline sample, and then searches for neighboring points based on similarity conditions. The similarity condition is the curvature value. The neighboring points that meet the similarity conditions are added to the current cluster and marked as visited. Repeat the above steps until there are no similar points to add to the current class. Then select the next seed point and start clustering again until all pipeline template 3D point clouds have been classified. Finally, number all pipeline template 3D point cloud clusters in sequence. S3. Set a segmentation threshold to segment the pipeline point cloud from the three-dimensional point cloud of the pipeline template; S4. Perform fine segmentation on each of the pipeline point clouds in sequence to segment out straight pipe point clouds and curved pipe point clouds. S5. Perform noise reduction processing on the segmented straight pipe point cloud and curved pipe point cloud to obtain the denoised straight pipe point cloud and the denoised curved pipe point cloud. S6. Based on the denoised straight pipe point cloud and the denoised curved pipe point cloud, perform cylindrical fitting on the straight pipe and curved pipe parts of each pipeline to obtain the corresponding cylinder, and then solve the starting coordinates, direction vector and radius information of the axis of each cylinder. S7. Based on the starting coordinates, direction vector and radius information of the axis of each cylinder obtained in step S6, calculate the spacing between each pipeline in the pipeline point cloud and determine the minimum spacing.

2. The method for automatically solving the minimum spacing of 3D point clouds with multiple pipelines as described in claim 1, characterized in that, In step S4, all pipeline point cloud files in S3 are called in a loop, and the input pipeline point cloud files are segmented using the segmentation module in the point cloud library. The segmentation model is set as a straight line. The segmentation uses a random sampling consensus algorithm to fit the straight line model, and then the point cloud of the fitted model is extracted.

3. The automatic minimum spacing solution method for multi-pipeline 3D point clouds as described in claim 1 or 2, characterized in that, The specific method for step S7 is as follows: Randomly select any two cylinders obtained from the fitting in step S6, traverse all points on the axes of the two cylinders, calculate the distance between the random points on the two axes, and finally obtain the shortest distance between the axes of the two cylinders. Traverse all cylinders fitted in step S6, and use the above method to obtain the shortest distance between the axes of any two cylinders in multiple sets, and finally determine the minimum spacing of the multi-pipeline 3D point cloud.

4. The method for automatically solving the minimum spacing of 3D point clouds with multiple pipelines as described in claim 1 or 2, characterized in that, The specific method of step S1 is as follows: use an LMI 3D point cloud scanner to scan the surface of the pipeline template to generate 3D point cloud data of the pipeline template.

5. The automatic minimum spacing solution method for multi-pipeline 3D point clouds as described in claim 1 or 2, characterized in that, In step S3, the segmentation threshold includes the maximum number of clusters, the minimum number of clusters, the curvature threshold, and the smoothness threshold.