Calc Normals and Estimate Edges of Point Cloud
Function
This Step is used to calculate normals of the point cloud and output the edge point cloud based on the estimated edge of the object point cloud.
The Step will convert the input point cloud to the depth map first, and then determine which points are edge points according to the normals of the point cloud and the depth information.
Usage Scenario
This Step is usually used to detect the edge features in measurement scenarios for further edge matching.
Parameter Description
The calculation in this Step can be divided into two processes, which are “calculate normals” and “extract edges of point clouds” as described below.
Calculate Normals
Normal Calc Methods
Parameter description: This parameter is used to select the method to calculate normals.
Value list: CloudPreprocessingGPU, CloudXYZToCloudNormal, and NormalEstimation.
-
CloudPreprocessingGPU: This method can be used to calculate normals and convert the input point cloud to point cloud with normals. When there is a GPU and you need to calculate the normals, it is recommended to adopt this method.
-
CloudXYZToCloudNormal: This method can be used to switch the type of point clouds without calculating the normals. You do not need to set any parameters after taking this method.
-
NormalEstimation: This method is a normal one, which can be used when you need to calculate the normals but there is no GPU . You do not need to set any parameters after taking this method.
Tuning recommendation: You can select the method according to your actual requirement.
Computation Settings
- Calc in Batches
-
Parameter description: This parameter is used to determine whether to process the point clouds in batches.
Default Value: Unselected.
Suggestion: When there are too many points in a point cloud and the video RAM is not enough to process them, it is recommended to select this option.
- Search Radius
-
Parameter description: This parameter is used to set the search radius for calculating normals. The unit is millimeters.
Default value: 15.000 mm
Tuning recommendation: Please set the parameter according to the actual situation.
Concave & Convex Removal Settings ((displayed when the option Show all parameters is selected)
- Remove Concave and Convex Points
-
Parameter description: This parameter is used to determine whether to remove concave and convex points. When the checkbox is selected, concave and convex points will be removed according to the value set in Outlier Removal Search Radius, Concave Threshold, and Convex Threshold.
Default Value: Unselected.
Suggestion: Set the parameter according to your actual requirement.
- Outlier Removal Search Radius
-
Parameter description: This parameter is used to set the search radius for removing concave and convex points. Concave and convex points within the radius (in millimeters) will be removed.
Default value: 20.000 mm
Suggestion: Set the parameter according to your actual requirement.
- Concave Threshold
-
Parameter description: This parameter is used to set the maximum concavity value of points within the search radius for removing the concave points. In the search radius, points whose concavity value is higher than this threshold will be removed.
Default value: 1.0000
Tuning recommendation: Please set the parameter according to the actual requirement.
- Convex Threshold
-
Parameter description: This parameter is used to set the maximum convexity value of points within the search radius for removing the convex points. In the search radius, points whose convexity value is higher than this threshold will be removed.
Default value: 1.0000
Tuning recommendation: Please set the parameter according to the actual requirement.
Outlier Removal Settings
- Remove Outliers
-
Parameter description: This parameter is used to determine whether to remove the outliers. When the checkbox is selected, outliers will be removed according to the value set in Sparse Point Removal Search Radius and Outlier Threshold.
Default Value: Unselected.
Tuning recommendation: Please set the parameter according to the actual requirement.
- Sparse Point Removal Search Radius
-
Parameter description: This parameter is used to set the search radius for removing outliers. The unit is millimeters.
Default value: 10.000 mm
Tuning recommendation: Please set the parameter according to the actual requirement.
- Outlier Threshold
-
Parameter description: This parameter is used to set the search radius for removing outliers. If the number of points within the search radius is lower than the threshold, these points are identified as outliers.
Default value: 0
Tuning recommendation: Please set the parameter according to the actual requirement.
Extract Edges of Point Clouds
This phase provides three ways to estimate the edge points:
-
Estimate edge points based on normal variation threshold.
-
Estimate edge points based on depth difference threshold.
-
Estimate edge points based on the maximum angle between normal and Z axis.
In the process of determining the edge point, the Step will determine non-edge points according to the Max Angle between Normal and Z Axis parameter first and use the Normal Variation Threshold and Depth Difference Threshold parameters to determine the edge points in the rest points. An edge point should meet both the criteria of the Normal Variation Threshold and Depth Difference Threshold parameters.
The Depth Difference Threshold, Tolerance Gap Width, Min Edge Point Count, and Max Angle between Normal and Z Axis will only be displayed once you select Show all parameters in the context menu. |
- Process Unorganized Point Cloud
-
Parameter description: This parameter is used to determine whether to process the unorganized point cloud.
Default value: Unselected (Applicable to most cases).
Tuning recommendation: If the input point cloud is a structural point cloud, you do not need to select this option; if the input point cloud is a non-structural point cloud, please select this option. Once this option is selected, you will need to set both the Normal Variation Threshold and Depth Map Resolution parameters.
- Normal Variation Threshold
-
Parameter description: This parameter is used to specify the normal variation threshold used to determine the edge point, and the unit is degrees (°). A point is an edge point if the normal variation of its neighbors is above this threshold. The normal variation is a comprehensive value considering the normal variation of the adjacent points.
Default value: 10°
- Depth Map Resolution
-
Parameter description: This parameter is used to specify the depth map resolution when the non-structural point cloud is converted to the depth map. The resolution refers to the number of pixels per unit length (1 m). You should set this parameter when the input point cloud is a non-structural point cloud.
Default value: 1000 (applicable to most cases).
Tuning recommendation: If the point density of the input point cloud is high, you can adjust the parameter to a larger value; if the point density of the input point cloud is low, you can adjust the parameter to a smaller value.
- Depth Difference Threshold
-
Parameter description: This parameter is used to specify the upper limit of the depth difference (unit: mm) when determining the edge point . A point is an edge point if the maximum depth difference between the point and its eight adjacent points is greater than this threshold.
Default value: 5 mm
- Tolerance Gap Width
-
Parameter description: If there is a gap in the point cloud, this parameter is used to determine whether the ends of the gap are edges. The unit is pixels (px). If the gap width is smaller than this value and the height difference between the two ends of the gap is smaller than the Depth Difference Threshold, the two ends of the gap will not be considered edges.
Default value: 2 px
- Min Edge Point Count
-
Parameter description: This parameter is used to specify the minimum number of points in the output edge point cloud. Edge point cloud part with fewer points than the set value will be ignored.
Default value: 10
- Max Angle between Normal and Z Axis
-
Parameter description: This parameter is used to specify the maximum angle (°) between the point’s Z-axis and the normal . When the angle between the point’s Z-axis and the normal is greater than this value, the point will not be considered an edge point.
Default value: 70° (applicable to most cases).