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.

Input and Output

../../../../_images/input_and_output6.png

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, 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 use 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 using 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 using this method.

Suggestion: You can select the method according to your actual requirement.

Calculation 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. Normals of point clouds that are within the radius (in millimeters) will be calculated.
Default value: 15.000 mm
Suggestion: Set the parameter according to your actual requirement.

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 Threhold.
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 lower than this threshold will be removed.
Default value: 0
Suggestion: Set the parameter according to your 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 lower than this threshold will be removed.
Default value: 0
Suggestion: Set the parameter according to your 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
Suggestion: Set the parameter according to your actual requirement.
Sparse Point Removal Search Radius:
Parameter description: This parameter is used to set the search radius for removing outliers. The outliers among the points that are within the search radius (in millimeters) will be removed.
Default value: 10.000 mm
Suggestion: Set the parameter according to your 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 of a given point is lower than the threshold, this point is identified as an outlier.
Default value: 0
Suggestion: Set the parameter according to your actual requirement.

Extract Edges of Point Clouds

This Step provides 3 methods to determine the edge point:

  • Determine the edge point according to the threshold of the normal’s change.

  • Determine the edge point according to the threshold of the depth difference.

  • Determine the non-edge point according to the maximum angle between the point’s Z-axis and the normal.

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.

Hint

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.
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).
Default value: 1000 (Applicable to almost all cases)
Tuning recommendation: You should set this parameter when the input point cloud is a non-structural point cloud. 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.
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 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 8 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 almost all cases)