A point cloud local curvature feature calculation method and system for structural surface identification
By employing a closed-loop processing mechanism involving multi-scale analysis and result verification, and utilizing multi-radius neighborhood collaborative computation and optimal feature selection, the noise interference problem in the calculation of local curvature features of point clouds is solved, thereby improving the accuracy and reliability of automatic structural surface recognition.
Patent Information
- Application Number
- CN202610699293.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-05-20
- Publication Date
- 2026-08-25
AI Technical Summary
Existing technologies, when calculating the local curvature features of point clouds, suffer from distortion of curvature values due to noise points and surface roughness in the point cloud data, which affects the classification accuracy and reliability of automatic identification of structural surfaces.
Through a closed-loop processing mechanism involving multi-scale analysis and result verification, multi-radius neighborhood collaborative computation is employed to select the optimal eigenvalues and eigenvectors, calculate the curvature tensor, and verify it based on the geometric flatness threshold, ultimately outputting reliable local curvature eigenvalues.
It significantly improves the reliability and robustness of point cloud local curvature feature calculation, ensures that curvature features are highly consistent with engineering objectives, reduces the interference of erroneous features on model training, and improves the classification accuracy of automatic structural surface recognition and the reliability of attitude parameter extraction.
Smart Images

Figure CN122636699A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of three-dimensional point cloud data processing and feature extraction technology, and more specifically, to a method and system for calculating the local curvature features of point clouds for structural surface recognition. Background Technology
[0002] In rock mass engineering geological exploration and slope stability analysis, the identification of structural surfaces is a crucial step. Technologies such as 3D laser scanning can quickly acquire high-density point cloud data of the rock mass surface. In existing technologies, machine learning-based structural surface identification methods typically use the geometric features of the point cloud, such as coordinates, normal vectors, and curvature, as input vectors for the classification model. Among these, curvature reflects the concavity and convexity of the point cloud surface and plays a vital role in distinguishing between structural and non-structural surface regions. It is often obtained by calculating the local neighborhood point set of the query point using methods such as principal component analysis.
[0003] However, the aforementioned existing technologies directly calculate the local curvature features of point clouds based on the original point cloud data. Since point cloud data inevitably contains noise points and surface roughness, directly fitting local geometric features using the original point set will lead to distortion of the calculated curvature values. This distorted curvature feature, as input to the machine learning model, will contaminate the feature vector, thereby reducing the classification accuracy and reliability of subsequent automatic identification of structural surfaces and affecting the accuracy of extracting parameters such as the attitude of structural surfaces. Summary of the Invention
[0004] To overcome the aforementioned deficiencies of the prior art, the present invention provides a method and system for calculating the local curvature features of point clouds for structural surface recognition, thereby solving the problems mentioned in the background art.
[0005] To achieve the above objectives, the present invention provides the following technical solution:
[0006] A method for calculating local curvature features of point clouds for structural surface recognition includes the following steps:
[0007] S1. For the query point in the point cloud data, determine the neighborhood radius of the query point, and use the query point as the center to search for the neighborhood point set of the query point based on the neighborhood radius;
[0008] S2. Based on the neighborhood point set, calculate the covariance matrix of the neighborhood point set;
[0009] S3. Under at least two different neighborhood radii, obtain multiple sets of covariance matrices corresponding to the query point; perform eigenvalue decomposition on each set of covariance matrices to obtain multiple sets of eigenvalues and eigenvectors.
[0010] S4. Based on multiple sets of eigenvalues and eigenvectors, select a set of optimal eigenvalues and eigenvectors, and calculate the curvature tensor at the query point based on the optimal eigenvalues and eigenvectors.
[0011] S5. Based on the curvature tensor, calculate the candidate local curvature feature values of the query point;
[0012] S6. Verify the candidate local curvature feature values and output the final local curvature feature values based on the verification results.
[0013] Furthermore, S1 includes:
[0014] Obtain the point cloud density of the local area where the query point is located;
[0015] Calculate the initial neighborhood radius based on point cloud density;
[0016] Perform a neighborhood search on the query point using the initial neighborhood radius to obtain the initial neighborhood point set;
[0017] Evaluate the uniformity of the spatial distribution of the initial neighborhood point set;
[0018] When the uniformity does not meet the preset conditions, adjust the initial neighborhood radius;
[0019] Re-execute the neighborhood search with the adjusted neighborhood radius to obtain the neighborhood point set of the query point.
[0020] Furthermore, S2 includes:
[0021] The initial covariance matrix is calculated based on the neighborhood point set;
[0022] Based on the initial covariance matrix, check whether there are outliers in the neighborhood point set;
[0023] If outliers exist, they are removed from the neighborhood point set to form an updated neighborhood point set.
[0024] Based on the updated neighborhood point set, the covariance matrix is recalculated and used as the covariance matrix of the neighborhood point set.
[0025] If there are no outliers, the initial covariance matrix is used as the covariance matrix of the neighborhood point set.
[0026] Furthermore, S3 includes:
[0027] Based on an initial neighborhood radius, at least one additional neighborhood radius is determined through a preset proportional relationship, forming a neighborhood radius sequence;
[0028] Following the order in the neighborhood radius sequence, perform neighborhood search sequentially using each neighborhood radius to obtain the corresponding set of neighborhood points;
[0029] Based on the set of neighborhood points corresponding to each neighborhood radius, a covariance matrix is calculated respectively.
[0030] Each covariance matrix is subjected to eigenvalue decomposition to obtain eigenvalues and eigenvectors corresponding to each neighborhood radius, thus forming multiple sets of eigenvalues and eigenvectors.
[0031] Furthermore, at least two different neighborhood radii are a sequence of neighborhood radii obtained by gradually enlarging an initial neighborhood radius according to a preset fixed ratio.
[0032] Furthermore, S4 includes:
[0033] For each of the multiple sets of eigenvalues and eigenvectors, calculate the stability index of its eigenvalue ranking;
[0034] For each of the multiple sets of eigenvalues and eigenvectors, calculate the consistency index of the eigenvector direction.
[0035] Based on stability and consistency indices, select an optimal set of eigenvalues and eigenvectors from multiple sets of eigenvalues and eigenvectors.
[0036] The covariance matrix corresponding to the selected optimal eigenvalue and eigenvector is used to calculate the curvature tensor at the query point.
[0037] Furthermore, the stability index is obtained by statistically ranking multiple sets of eigenvalues and eigenvectors for each set of eigenvalues and calculating the proportion of eigenvalues that maintain consistent ranking; the consistency index is obtained by calculating the average of the cosine values of the angles between multiple sets of eigenvalues and corresponding eigenvectors in the eigenvectors.
[0038] Furthermore, S5 includes:
[0039] Gaussian curvature and mean curvature are derived from the curvature tensor.
[0040] Calculate the absolute value of the Gaussian curvature as the first candidate value;
[0041] Calculate the absolute value of the mean curvature as the second candidate value;
[0042] Evaluate the geometric significance of the first and second candidate values in characterizing the concavity and convexity of the local surface;
[0043] Based on geometric interpretation, one of the first and second candidate values is selected as the candidate local curvature feature value for the query point.
[0044] Furthermore, S6 includes:
[0045] Obtain the preset structural surface geometric flatness curvature threshold;
[0046] Compare the candidate local curvature eigenvalues with the curvature threshold of the geometric flatness of the structural surface;
[0047] When the candidate local curvature feature value is not greater than the curvature threshold of the geometric flatness of the structural surface, the verification is passed, and the candidate local curvature feature value is output as the final local curvature feature value.
[0048] If the candidate local curvature feature value is greater than the curvature threshold of the geometric flatness of the structure surface, the verification is deemed unsuccessful, and the zero value is output as the final local curvature feature value.
[0049] On the other hand, the present invention provides a point cloud local curvature feature calculation system for structural surface recognition, comprising the following modules:
[0050] The neighborhood search module is used to determine the neighborhood radius of a query point in point cloud data, and search for the set of neighboring points of the query point based on the neighborhood radius, with the query point as the center.
[0051] The covariance matrix calculation module is used to calculate the covariance matrix of a neighborhood point set based on the neighborhood point set.
[0052] The feature decomposition module is used to obtain multiple sets of covariance matrices corresponding to the query point under at least two different neighborhood radii; and to perform feature decomposition on each set of covariance matrices to obtain multiple sets of eigenvalues and eigenvectors.
[0053] The tensor calculation module is used to select an optimal set of eigenvalues and eigenvectors based on multiple sets of eigenvalues and eigenvectors, and calculate the curvature tensor at the query point based on the optimal eigenvalues and eigenvectors.
[0054] The candidate feature module is used to calculate candidate local curvature feature values for the query point based on the curvature tensor.
[0055] The feature verification module is used to verify candidate local curvature feature values and output the final local curvature feature values based on the verification results.
[0056] Compared with the prior art, the present invention has the following beneficial effects:
[0057] 1. By introducing a closed-loop processing mechanism of multi-scale analysis and result verification, the reliability and robustness of point cloud local curvature feature calculation are significantly improved. A multi-radius neighborhood collaborative calculation and optimal selection strategy is adopted. For the query point, the covariance matrix is calculated and eigenvalue decomposition is performed at multiple different scales to obtain multiple sets of eigenvalues and eigenvectors representing local geometry. Then, the optimal set is selected for calculating the curvature tensor based on their statistical stability and directional consistency. Cross-validation is used to overcome the geometric estimation bias caused by noise interference, uneven point distribution, or surface micro-undulations at a single neighborhood scale. This ensures the accuracy of curvature tensor calculation from the source and effectively suppresses feature distortion caused by local data quality fluctuations.
[0058] 2. A feature post-processing and verification output process with clear physical meaning was constructed to ensure a high degree of fit between the extracted curvature features and the engineering objectives. By parsing Gaussian curvature and mean curvature with clear geometric interpretations from the curvature tensor as candidates, and setting a threshold for verification based on the prior knowledge of the geometric flatness of structural surfaces, this process can intelligently identify and filter out abnormally high curvature calculation results that significantly deviate from the typical features of structural surfaces. The final output local curvature feature values are clean data that have undergone reliability assessment and physical rationality verification, providing higher quality and more consistent input features for subsequent machine learning-based structural surface recognition classifiers. This significantly reduces the interference of erroneous features on model training, thereby enhancing the classification accuracy of automatic structural surface recognition and the reliability of attitude parameter extraction as a whole. Attached Figure Description
[0059] Figure 1 This is a flowchart of a point cloud local curvature feature calculation method for structural surface recognition according to the present invention;
[0060] Figure 2 This is a schematic diagram of the structure of a point cloud local curvature feature calculation system for structural surface recognition according to the present invention. Detailed Implementation
[0061] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of the present invention.
[0062] Example 1: Figure 1 This invention presents a method for calculating the local curvature features of point clouds for structural surface recognition, comprising the following steps:
[0063] S1. For the query point in the point cloud data, determine the neighborhood radius of the query point, and use the query point as the center to search for the neighborhood point set of the query point based on the neighborhood radius;
[0064] S2. Based on the neighborhood point set, calculate the covariance matrix of the neighborhood point set;
[0065] S3. Under at least two different neighborhood radii, obtain multiple sets of covariance matrices corresponding to the query point; perform eigenvalue decomposition on each set of covariance matrices to obtain multiple sets of eigenvalues and eigenvectors.
[0066] S4. Based on multiple sets of eigenvalues and eigenvectors, select a set of optimal eigenvalues and eigenvectors, and calculate the curvature tensor at the query point based on the optimal eigenvalues and eigenvectors.
[0067] S5. Based on the curvature tensor, calculate the candidate local curvature feature values of the query point;
[0068] S6. Verify the candidate local curvature feature values and output the final local curvature feature values based on the verification results.
[0069] The specific implementation process for determining the neighborhood radius of a query point in point cloud data and searching for the set of neighboring points of the query point based on the neighborhood radius with the query point as the center is as follows:
[0070] Obtain the point cloud density of the local region where the query point is located. Point cloud density is obtained by defining a preset initial detection radius centered on the query point to form a spherical region. The number of points within this spherical region is counted, and the spatial volume density of the point cloud is calculated by dividing the count by the volume of the spherical region, for example, in points per cubic meter. The initial detection radius can be empirically set based on the overall average point spacing of the point cloud data. For example, the initial detection radius can be set to 0.005 times the diagonal length of the overall bounding box of the point cloud data. This scaling factor is an adjustable parameter, set to ensure that the initial detection region contains a sufficient number of points for stable density statistics, while the region size is much smaller than the scale of the structure surface to be analyzed.
[0071] The initial neighborhood radius is calculated based on the calculated point cloud density. The principle behind this calculation is that a smaller neighborhood radius can be used in areas of high point cloud density to capture detailed features, while a larger neighborhood radius is needed in areas of low point cloud density to include a sufficient number of points for reliable analysis. Specifically, the initial neighborhood radius can be determined using a function inversely proportional to the point cloud density. For example, the initial neighborhood radius can be set as the inverse of a baseline radius value multiplied by the normalized point cloud density value. The baseline radius value can be pre-set based on the expected scale of the structure to be identified or the overall resolution of the point cloud, for example, by analyzing the size of typical structural traces visible in the point cloud. The normalized point cloud density value is obtained by dividing the current local point cloud density by the average density of the entire point cloud data. This method of calculating the initial neighborhood radius based on point cloud density allows the initial neighborhood radius to adapt to the local density distribution of the point cloud.
[0072] A neighborhood search is performed on the query point using the calculated initial neighborhood radius to obtain an initial set of neighboring points. The neighborhood search is implemented using a spatial index data structure, such as a 3D kd-tree or octree index for the point cloud data. The search process centers on the query point and uses the initial neighborhood radius as the search radius, quickly retrieving and returning all point clouds falling within the spherical search space from the spatial index. These point clouds constitute the initial set of neighboring points.
[0073] The uniformity of the initial neighborhood point set in spatial distribution is assessed. Uniformity assessment determines whether the initial neighborhood point set is distributed evenly in all directions without large gaps. This assessment is crucial for the stability of subsequent geometric feature calculations based on the initial neighborhood point set. One specific method for assessing uniformity is to divide the spherical neighborhood space centered on the query point into multiple sub-regions of equal volume along the latitude and longitude directions. For example, by setting fixed azimuth and zenith angle intervals, the spherical space can be divided into multiple solid angle blocks. The number of points from the initial neighborhood point set falling into each sub-region is counted. Then, the coefficient of variation (COP) is calculated, which is the standard deviation of the number of points in all sub-regions divided by their average. The COP is used as a uniformity indicator. A small COP indicates a relatively uniform distribution of points across different sub-regions; a large COP indicates that the point distribution may be concentrated in certain directions or areas, resulting in poor uniformity. A preset condition is to set a uniformity COP threshold, for example, setting it to 0.5. The threshold for uniformity coefficient of variation can be obtained by performing statistical analysis on known uniformly distributed point cloud samples, calculating the typical distribution range of the coefficient of variation, and selecting a value at the edge of the range as the threshold for uniformity coefficient of variation. When the calculated coefficient of variation is less than the threshold for uniformity coefficient of variation, the uniformity is determined to meet the preset condition; when the coefficient of variation is greater than or equal to the threshold for uniformity coefficient of variation, the uniformity is determined to not meet the preset condition.
[0074] When the homogeneity does not meet the preset conditions, the initial neighborhood radius is adjusted. The purpose of adjustment is to obtain a more spatially uniform point set by changing the neighborhood range. Adjustment can be based on feedback control of the homogeneity evaluation results. A direct adjustment strategy is to increase the initial neighborhood radius by a fixed scaling factor, for example, multiplying the initial neighborhood radius by a coefficient of 1.2 to obtain a new, larger radius. The scaling factor is chosen to significantly expand the search range in one adjustment step without being too coarse. Another more refined strategy is to dynamically calculate the adjustment amount based on the point cloud density and the current homogeneity index. For example, a simple linear relationship can be established where the adjustment amount equals a base adjustment amount plus an additional amount proportional to the portion of the current coefficient of variation exceeding the homogeneity coefficient of variation threshold. The base adjustment amount and the scaling factor can be preset to different values according to the point cloud density range. The adjusted neighborhood radius should not increase indefinitely. A maximum neighborhood radius limit can be set, for example, the maximum neighborhood radius limit should not exceed five percent of the overall scale of the point cloud scene. The overall scale can be represented by the maximum side length of the point cloud bounding box. The upper limit of the ratio is set to prevent the neighborhood range from exceeding the range of local features, so as to avoid the neighborhood becoming too large and losing the meaning of local features.
[0075] The neighborhood search is re-executed with the adjusted neighborhood radius to obtain the neighborhood point set of the query point. The steps for re-executing the neighborhood search with the adjusted neighborhood radius are exactly the same as the process of searching with the initial neighborhood radius, the only difference being that the search radius used is the adjusted neighborhood radius. Using the same spatial index data structure, with the query point as the center and the adjusted neighborhood radius as the radius, all point clouds falling within the updated spherical space are retrieved and returned. These point clouds are used for subsequent calculations. If the uniformity of the point set obtained after one adjustment still does not meet the requirements, the radius adjustment and uniformity evaluation can be iteratively performed until the conditions are met, the preset maximum number of iterations is reached, or the maximum neighborhood radius limit is reached. At this point, the point set obtained from the last search is output as the final neighborhood point set. By taking a series of steps—obtaining the point cloud density of the local area where the query point is located, calculating the initial neighborhood radius based on the point cloud density, performing a neighborhood search on the query point with the initial neighborhood radius to obtain the initial neighborhood point set, evaluating the uniformity of the initial neighborhood point set in spatial distribution, adjusting the initial neighborhood radius when the uniformity does not meet the preset conditions, and re-performing the neighborhood search with the adjusted neighborhood radius to obtain the neighborhood point set of the query point—the sufficiency and reasonable distribution of the neighborhood point set obtained for each query point in spatial coverage are ensured, laying the foundation for subsequent robust geometric feature calculations.
[0076] The specific implementation process for calculating the covariance matrix of a neighborhood point set is as follows:
[0077] The initial covariance matrix is calculated based on the neighborhood point set. The input for calculating the initial covariance matrix is the neighborhood point set, which contains multiple points with 3D coordinates. The first step in calculating the initial covariance matrix is to calculate the average of the 3D coordinates of all points in the neighborhood point set; this average is called the center point coordinate of the neighborhood point set. The second step is to subtract the center point coordinates from the 3D coordinates of each point in the neighborhood point set to obtain the centered coordinates of that point. The third step is to calculate the elements of the covariance matrix based on the centered coordinates of all points. The covariance matrix is a 3x3 matrix. The element in the first row and first column of the matrix is equal to the sum of the squares of the centered coordinates in the X direction of all points divided by the number of points minus 1. The element in the first row and second column of the matrix is equal to the sum of the products of the centered coordinates in the X and Y directions of all points divided by the number of points minus 1. The element in the first row and third column of the matrix is equal to the sum of the products of the centered coordinates in the X and Z directions of all points divided by the number of points minus 1. The element in the 2nd row and 1st column of the matrix is numerically equal to the element in the 1st row and 2nd column. The element in the 2nd row and 2nd column is equal to the sum of the squares of the Y-direction centered coordinates of all points divided by the number of points minus 1. The element in the 2nd row and 3rd column is equal to the sum of the products of the Y-direction and Z-direction centered coordinates of all points divided by the number of points minus 1. The element in the 3rd row and 1st column of the matrix is numerically equal to the element in the 1st row and 3rd column. The element in the 3rd row and 2nd column of the matrix is numerically equal to the element in the 2nd row and 3rd column. The element in the 3rd row and 3rd column is equal to the sum of the squares of the Z-direction centered coordinates of all points divided by the number of points minus 1. This calculation process yields the initial covariance matrix.
[0078] The Mahalanobis distance is used to check for outliers in a neighborhood set based on the initial covariance matrix. The method for checking outliers is to calculate the statistical distance of each point in the neighborhood set relative to the overall distribution of the set, and then compare this statistical distance with a preset threshold. This statistical distance is called the Mahalanobis distance. Calculating the Mahalanobis distance of a point first requires calculating the inverse of the initial covariance matrix. Using a standard matrix inversion algorithm, such as Gaussian elimination, the 3x3 initial covariance matrix is inverted to obtain the inverse matrix. For the centered coordinates of a point, the Mahalanobis distance is calculated as follows: first, the centered coordinates are treated as a 3x1 column vector; the transpose of this column vector is multiplied by the inverse matrix, and then multiplied by the original column vector to obtain a scalar value; the square root of this scalar value gives the Mahalanobis distance of that point. This process is repeated for each point in the neighborhood set to obtain the Mahalanobis distance for each point. The preset threshold is called the Mahalanobis distance threshold. The Mahalanobis distance threshold is obtained based on mathematical statistical theory. Assuming that point cloud data follows a multivariate normal distribution, the squared Mahalanobis distance follows a chi-square distribution with 3 degrees of freedom. Therefore, the Mahalanobis distance threshold can be set by consulting a chi-square distribution table. For example, selecting the quantile value corresponding to the cumulative probability of 97.5% in the chi-square distribution, which is approximately 9.35, and taking the square root of 9.35, yields approximately 3.06. This 3.06 can be set as the Mahalanobis distance threshold. The Mahalanobis distance of each point is compared with the threshold. If a point's Mahalanobis distance is greater than the threshold, the point is marked as an outlier; if the point's Mahalanobis distance is less than or equal to the threshold, the point is not an outlier. This check is performed by traversing all points.
[0079] If outliers exist, they are removed from the neighborhood set to form an updated neighborhood set. After outlier checking, if at least one point is identified as an outlier, an exclusion operation is performed. This exclusion operation creates a new set, initially empty. Then, each point in the original neighborhood set is traversed. If the currently traversed point is not an outlier, its 3D coordinates are added to the new set; if the currently traversed point is an outlier, it is skipped and not added to the new set. After the traversal is complete, all points in the new set constitute the updated neighborhood set. The updated neighborhood set has the same data structure as the original neighborhood set, but contains fewer points and does not include any points identified as outliers.
[0080] The covariance matrix is recalculated based on the updated neighborhood point set. After obtaining the updated neighborhood point set, the covariance matrix calculation process needs to be performed again. The calculation process is exactly the same as that for the initial covariance matrix, but the point set used for the calculation is the updated neighborhood point set. First, the coordinates of the center point of the updated neighborhood point set are calculated. Then, the centered coordinates of each point in the updated neighborhood point set relative to the new center point coordinates are calculated. Finally, following the same element calculation rules as for the initial covariance matrix, a new 3x3 matrix is calculated using the centered coordinates of all points in the updated neighborhood point set. This new matrix is the final output covariance matrix of the neighborhood point set.
[0081] If no outliers are found, the initial covariance matrix is used as the covariance matrix of the neighborhood point set. In the step of checking for outliers in the neighborhood point set based on the initial covariance matrix, if the Mahalanobis distance of all points in the neighborhood point set is found to be less than or equal to the Mahalanobis distance threshold (i.e., no points are identified as outliers), then it is determined that no outliers exist. In this case, the steps of excluding outliers and recalculating the covariance matrix are not performed. Instead, the initial covariance matrix calculated in step 1 is directly used as the final output covariance matrix of the neighborhood point set for subsequent processing steps. The entire process, through calculation, diagnosis, and selective correction, ensures that the obtained covariance matrix can robustly represent the main spatial distribution characteristics of the neighborhood point cloud, reducing the adverse effects of outliers on geometric feature calculations.
[0082] The specific implementation process of obtaining multiple sets of covariance matrices corresponding to the query point under at least two different neighborhood radii and performing eigenvalue decomposition on each set of covariance matrices to obtain multiple sets of eigenvalues and eigenvectors is as follows:
[0083] A neighborhood radius sequence is formed by determining at least one additional neighborhood radius based on an initial neighborhood radius and a preset scaling factor. The initial neighborhood radius can be calculated based on the point cloud density of the local region where the query point is located, for example, by using the same method as in the previous steps to determine the final neighborhood radius used for the search. The preset scaling factor is used to generate a multiplier factor greater than 1, for example, setting a fixed scaling factor of 1.5. The additional neighborhood radii are determined by multiplying the initial neighborhood radius by the first and second powers of the scaling factor until a preset sequence length is reached. For example, if a sequence containing three neighborhood radii is needed, the first radius is the initial neighborhood radius, the second radius is the initial neighborhood radius multiplied by 1.5, and the third radius is the initial neighborhood radius multiplied by the square of 1.5, i.e., multiplied by 2.25. The scaling factor is set to ensure that the scale variation between adjacent radii is sufficient to capture different levels of local geometric information, while the variation is not so large that it leads to completely different neighborhood content. The scaling factor is usually chosen to be a value between 1.2 and 2.0, for example, 1.5. The specific selection of the scaling factor can be adjusted based on the resolution of the point cloud data and the expected roughness of the structure to be identified. For smooth structures, a smaller scaling factor can be selected for fine analysis, while for rough surfaces, a larger scaling factor may be needed to cover more significant scale changes. The neighborhood radius sequence generated by the preset scaling relationship ensures the systematicness and controllability of the multi-scale analysis at the geometric scale.
[0084] The neighborhood search is performed sequentially using each neighborhood radius in the neighborhood radius sequence to obtain the corresponding set of neighborhood points. Performing the neighborhood search requires a spatial index data structure, such as an established 3D kd-tree index for the point cloud. For the first radius in the neighborhood radius sequence, i.e., the initial neighborhood radius, a range search is performed in the kd-tree with the query point as the center and this initial neighborhood radius as the search radius, collecting all points falling within this spherical space. These points constitute the set of neighborhood points corresponding to the first radius. For the second radius in the sequence, i.e., the first additional neighborhood radius, a range search is performed again in the same kd-tree with the query point as the center and this additional neighborhood radius as the search radius, collecting all points falling within a larger spherical space. These points constitute the set of neighborhood points corresponding to the second radius. This process is repeated sequentially for each radius in the sequence. Each search uses the current radius as the search radius and is based on the same query point and the same spatial index, but the search radius increases progressively. The set of points obtained from each search is independent, and the set of points obtained from each subsequent search spatially contains the set of points obtained from the previous search because the search radius increases. The neighborhood point set corresponding to each radius is temporarily stored for use in the next calculation.
[0085] A covariance matrix is calculated for each neighborhood point set corresponding to each neighborhood radius. For the first neighborhood point set obtained from the search of the first radius in the neighborhood radius sequence, its covariance matrix is calculated using the method described above. The calculation steps include calculating the coordinates of the center point of the first neighborhood point set, calculating the centered coordinates of each point in the first neighborhood point set, and then calculating a 3x3 matrix according to the definition of the covariance matrix. This matrix is the first covariance matrix corresponding to the first radius. For the second neighborhood point set obtained from the search of the second radius in the neighborhood radius sequence, the exact same calculation process is performed independently: calculating the coordinates of the center point of the second neighborhood point set, calculating the centered coordinates of each point in the second neighborhood point set, and then calculating the second covariance matrix corresponding to the second radius. If the neighborhood radius sequence contains more radii, a complete covariance matrix calculation process is performed independently for each neighborhood point set corresponding to each radius. Each calculation is independent; the input is the neighborhood point set corresponding to the current radius, and the output is the covariance matrix corresponding to the current radius. All the calculated covariance matrices together constitute multiple sets of covariance matrices corresponding to the query point. Here, the concept of "set" means that each radius corresponds to one matrix, and multiple sets refer to multiple matrices.
[0086] For each covariance matrix obtained, eigenvalue decomposition is performed to obtain multiple sets of eigenvalues and eigenvectors corresponding to each neighborhood radius. Eigenvalue decomposition is a standard operation in linear algebra, performed on a 3x3 real symmetric covariance matrix. The goal of eigenvalue decomposition on a covariance matrix is to find three eigenvalues and the unit eigenvector corresponding to each eigenvalue. Eigenvalue decomposition can be implemented using standard numerical algorithms, such as the Jacobi iteration method. Specifically, for a covariance matrix, a series of planar rotation matrices are used to perform similarity transformations, gradually approaching zero to its off-diagonal elements, ultimately resulting in a diagonal matrix. The three elements on the diagonal of this diagonal matrix are the three eigenvalues, and the column vectors of the transpose of the product of all rotation matrices are the corresponding eigenvectors. Eigenvalue decomposition is performed on the first covariance matrix among multiple covariance matrices, yielding three eigenvalues and three eigenvectors. These eigenvalues are arranged in descending order and denoted as the first, second, and third eigenvalues, respectively. The corresponding eigenvectors are denoted as the first, second, and third eigenvectors. This ordered set of eigenvalues and eigenvectors constitutes the first set of eigenvalues and eigenvectors corresponding to the first neighborhood radius. The same eigenvalue decomposition process is performed on the second covariance matrix, yielding another set of three eigenvalues and three eigenvectors, also arranged in descending order, forming the second set of eigenvalues and eigenvectors corresponding to the second neighborhood radius. If more covariance matrices exist, the same eigenvalue decomposition operation is performed on each one. Ultimately, each set of eigenvalues and eigenvectors is explicitly associated with the specific neighborhood radius upon which it was generated, and the set of all sets constitutes multiple sets of eigenvalues and eigenvectors. The eigenvalue decomposition process is a deterministic numerical computation, containing no random factors, ensuring that the same input covariance matrix always produces the same eigenvalues and eigenvectors. Through the above steps, a quantitative representation of the local geometry of the query point at multiple scales was completed, providing a multi-perspective data foundation for the subsequent selection of the optimal estimate.
[0087] The specific implementation process of selecting an optimal set of eigenvalues and eigenvectors based on multiple sets of eigenvalues and eigenvectors, and calculating the curvature tensor at the query point based on the optimal eigenvalues and eigenvectors is as follows:
[0088] This paper calculates a stability index for the eigenvalue ranking of each set of multiple eigenvalues and eigenvectors. The multiple sets of eigenvalues and eigenvectors are derived from the eigenvalue decomposition of covariance matrices obtained under multiple different neighborhood radii. Each set of eigenvalues and eigenvectors contains three eigenvalues and three corresponding unit eigenvectors, with the three eigenvalues arranged in descending order. Calculating the stability index for eigenvalue ranking first requires clarifying the definition of eigenvalue ranking: eigenvalue ranking refers to the order of the largest, middle, and smallest eigenvalues in a set of eigenvalues. For multiple sets of eigenvalues and eigenvectors, it is necessary to check whether the ranking of the three eigenvalues in each set is consistent. Specifically, the ranking of the three eigenvalues in the first set of eigenvalues and eigenvectors is used as a reference, recording the ranking as follows: largest eigenvalue number first, middle eigenvalue number second, and smallest eigenvalue number third. Then, the three eigenvalues in the second set of eigenvalues and eigenvectors are ranked according to the same rule to obtain the ranking order of the second set. Next, compare the sorting order of the second group with the reference sorting order of the first group. Specifically, compare whether the first-numbered feature value in each group corresponds to the same original index, the second-numbered feature value, and the third-numbered feature value. If the two groups correspond perfectly in all three positions, it is considered a consistent sorting; if any position is inconsistent, it is considered an inconsistent sorting. This same comparison is then performed on the third, fourth, and all other groups, comparing the sorting order of each group with the reference sorting order of the first group. Finally, count the number of groups whose feature values and feature vectors match the reference sorting order. Divide this number by the total number of groups to obtain the proportion, which is the stability index of the feature value sorting. The stability index ranges from 0 to 1; the closer the value is to 1, the more stable the relative size relationship of the feature values is at different scales. Using the sorting order of the first group as a reference is one feasible approach; another equivalent approach is to calculate the proportion of consistent sorting between all possible pairwise groups and take the average.
[0089] For each set of eigenvalues and eigenvectors, a consistency index for the eigenvector direction is calculated. The consistency index measures the similarity in direction between corresponding eigenvectors at different scales. Calculating the consistency index first requires pairing the eigenvectors in the eigenvalue and eigenvector sets. The pairing rule is based on the order of the eigenvalues: the first eigenvector of each set corresponds to the first eigenvector, the second eigenvector, and so on. For each eigenvector set, such as the first eigenvector, the directional similarity between each pair of the first eigenvectors in all sets is calculated. Directional similarity is measured by the cosine of the angle between two unit eigenvectors. Specifically, for any two unit eigenvectors, their dot product is calculated; the result is the cosine of the angle between these two vectors. For the first eigenvectors in all sets of eigenvalues and eigenvectors, the cosine of the angle between each pair is calculated, and then the arithmetic mean of the cosines of all pairwise combinations is taken. This average is the consistency index for the first eigenvector direction. Similarly, the above process is repeated for the second and third eigenvectors to calculate the consistency index of the second and third eigenvector directions, respectively. Finally, the consistency index of the eigenvector directions can be defined as the average of these three consistency indices, or the minimum value among them, depending on the stringency required for directional consistency. For example, taking the average reflects the overall consistency level, while taking the minimum value focuses on the least consistent direction. The numerical range of the consistency index of the eigenvector directions is between -1 and +1, but usually, due to the continuous variation of the eigenvector direction on the local surface, its value is between 0 and 1. The closer the value is to 1, the more consistent the direction of the corresponding eigenvector.
[0090] The optimal set of eigenvalues and eigenvectors is selected from multiple sets of eigenvalues and eigenvectors based on stability and consistency indices. This selection process requires a comprehensive evaluation of both indices. One specific method is to calculate a comprehensive score for each set of eigenvalues and eigenvectors. Calculating this comprehensive score requires assigning weights to the stability and consistency indices. These weights can be set based on the quality of the point cloud data and prior knowledge of the application scenario. For example, in scenarios with high point cloud noise levels, a higher weight (e.g., 0.6) can be assigned to the stability index; conversely, in scenarios with low point cloud noise but significant surface curvature variations, a higher weight (e.g., 0.7) can be assigned to the consistency index. The specific values of these weights are empirical, but the sum of the stability and consistency index weights must equal 1. For each set of eigenvalues and eigenvectors, their corresponding stability and consistency index contributions need to be calculated. The stability index contribution of a set of eigenvalues and eigenvectors is equal to the overall stability index of the multiple sets of eigenvalues and eigenvectors to which that set belongs. Because the stability index is a global quantity calculated based on the ranking and comparison of all sets, each set shares the same stability index value. The consistency index contribution of a set of eigenvalues and eigenvectors needs to be calculated separately for that set. The method for calculating the consistency index contribution of a set of eigenvalues and eigenvectors is to calculate the average directional similarity between each eigenvector of that set and the corresponding eigenvectors of all sets of eigenvalues and eigenvectors. For example, for the first eigenvector of the set to be evaluated, calculate the cosine of the angle between it and the first eigenvector of each set of eigenvalues and eigenvectors, and then calculate the average of these cosine values as the consistency contribution of the first eigenvector of that set. Similarly, calculate the consistency contributions of the second and third eigenvectors, and then average the consistency contributions of the three eigenvectors to obtain the consistency index contribution of the set. Next, the overall score of the set is equal to the weight of the stability index multiplied by the stability index plus the weight of the consistency index multiplied by the consistency index contribution of the set. After calculating the overall score for each set, the set of eigenvalues and eigenvectors with the highest overall score is selected as the optimal eigenvalues and eigenvectors. If there is a tie for the highest overall score, the set with the smaller corresponding neighborhood radius can be selected first to retain more local detail information. This selection method, based on quantitative scoring and weighting, enables the objective selection of the most reliable set of feature values and feature vectors from multiple candidate results.
[0091] The covariance matrix corresponding to the selected optimal eigenvalues and eigenvectors is used to calculate the curvature tensor at the query point. The optimal eigenvalues and eigenvectors are selected from multiple sets of eigenvalues and eigenvectors, each corresponding to a specific neighborhood radius and a covariance matrix calculated from that radius. Therefore, it is necessary to determine the original covariance matrix corresponding to the optimal eigenvalues and eigenvectors. Specifically, during the previous multi-scale calculations and storage of multiple sets of eigenvalues and eigenvectors, the correspondence between each set of eigenvalues and eigenvectors and the covariance matrix that generated it needs to be recorded. After selecting the optimal eigenvalues and eigenvectors, the covariance matrix corresponding to the optimal eigenvalues and eigenvectors can be obtained by looking up this correspondence. After obtaining the covariance matrix, the curvature tensor at the query point is calculated. The curvature tensor is a second-order symmetric tensor, which can be represented by a 3x3 matrix in three-dimensional space. The principle of calculating the curvature tensor based on the covariance matrix is that, on the local tangent plane of the query point, the curvature tensor describes the rate of change of the normal vector along the tangent plane direction. One specific calculation method involves first obtaining the normal vector estimate of the local surface from the eigenvalue decomposition of the covariance matrix. The normal vector estimate corresponds to the eigenvector corresponding to the smallest eigenvalue of the covariance matrix, i.e., the third eigenvector among the optimal eigenvalue and eigenvectors. Then, the curvature tensor calculation can be derived based on the inverse of the covariance matrix and the normal vector. Specifically, the inverse of the covariance matrix is calculated, and then the elements of the curvature tensor matrix are calculated using a formula. This formula can be expressed as: the curvature tensor matrix equals a coefficient multiplied by the result of a matrix transformation involving the normal vector. The coefficient is related to the eigenvalues of the covariance matrix; for example, the coefficient could be the reciprocal of the smallest eigenvalue. The resulting 3x3 matrix is the curvature tensor at the query point. This tensor matrix is symmetric, and its eigenvalues and eigenvectors describe the principal curvature directions and magnitudes of the local surface. Through these steps, the entire process of selecting the optimal estimate from multi-scale analysis and finally calculating the robust local curvature tensor is completed.
[0092] The specific implementation process for calculating candidate local curvature feature values of the query point based on curvature tensor is as follows:
[0093] The Gaussian curvature and mean curvature are derived from the curvature tensor. The curvature tensor is a 3x3 real symmetric matrix. The derivation of Gaussian and mean curvature first requires eigenvalue decomposition of the curvature tensor. Eigenvalue decomposition is achieved using standard numerical methods, such as applying the Jacobian iteration algorithm to the curvature tensor matrix to transform it into a diagonal matrix. The three elements on the diagonal of this matrix are the three eigenvalues of the curvature tensor. According to the principles of differential geometry, among these three eigenvalues, the smallest eigenvalue is usually close to zero, and its corresponding eigenvector direction represents the normal direction of the local surface. The two larger eigenvalues correspond to the two principal curvatures. Specifically, the three eigenvalues are sorted from largest to smallest, and these sorted eigenvalues are called the first, second, and third eigenvalues. The third eigenvalue is the smallest and corresponds to the normal. The first and second eigenvalues are the two principal curvatures; the first eigenvalue is the maximum principal curvature, and the second eigenvalue is the minimum principal curvature. After obtaining the maximum and minimum principal curvatures, the Gaussian curvature is calculated by multiplying the maximum and minimum principal curvatures. The mean curvature is calculated by summing the maximum and minimum principal curvatures and dividing by 2. Through the above calculation process, both the Gaussian curvature and the mean curvature are obtained from the curvature tensor.
[0094] The absolute value of the Gaussian curvature is used as the first candidate value. The calculation of the first candidate value involves taking the absolute value of the Gaussian curvature. This is done by determining the sign of the Gaussian curvature: if the Gaussian curvature is greater than or equal to 0, the first candidate value is equal to the Gaussian curvature itself; if the Gaussian curvature is less than 0, the first candidate value is equal to the Gaussian curvature multiplied by -1. The first candidate value is a non-negative scalar value.
[0095] The absolute value of the mean curvature is calculated as the second candidate value. The calculation of the second candidate value involves taking the absolute value of the mean curvature. This is done by determining the sign of the mean curvature: if the mean curvature is greater than or equal to 0, the second candidate value is equal to the mean curvature itself; if the mean curvature is less than 0, the second candidate value is equal to the mean curvature multiplied by -1. The second candidate value is also a non-negative scalar value.
[0096] The geometric significance of the first and second candidate values in characterizing the concavity and convexity of a local surface is evaluated. The purpose of the evaluation is to understand the different emphases of these two candidate values in describing the geometric features of the structural surface, so as to make an appropriate choice. The evaluation process is based on knowledge of differential geometry. The sign and magnitude of the Gaussian curvature determine the intrinsic curvature type of the local surface. When the Gaussian curvature is greater than 0, the local surface is an elliptic point, and all normal sections bend in the same direction. When the Gaussian curvature is equal to 0, the local surface is a parabolic point, and at least one normal section has a curvature of zero. When the Gaussian curvature is less than 0, the local surface is a hyperbolic point, and the normal sections bend in different directions. The first candidate value is the absolute value of the Gaussian curvature, which loses the sign information but retains the information of the curvature intensity. The mean curvature is related to the external curvature of the surface, i.e., the average degree of curvature. A point where the mean curvature is equal to 0 is called a minimum surface point. The second candidate value is the absolute value of the mean curvature, which characterizes the average degree to which the surface deviates from the minimum surface state. For rock mass structural surfaces, an ideal planar structural surface should have a Gaussian curvature and mean curvature that are both zero or close to zero. However, due to surface roughness and measurement noise, the calculated Gaussian curvature and mean curvature are often not zero. Therefore, the assessment needs to consider the prior geometric characteristics of the structural surface. For example, for a relatively flat structural surface that may have minor undulations, the mean curvature may better reflect the deviation from its overall flatness; while for a structural surface that may have local pits or protrusions, the Gaussian curvature may be more sensitive to such local anomalies. The assessment can be based on logical judgments made according to the numerical relationship between the calculated Gaussian curvature and mean curvature, as well as their signs.
[0097] Based on geometric interpretation, a candidate local curvature feature value is selected from the first and second candidate values as the query point. This selection process requires clearly defined decision rules. One such rule is based on comparing the absolute values of Gaussian curvature and mean curvature, as well as the sign of the Gaussian curvature. First, a near-zero curvature threshold is set to determine the degree to which the surface approximates a plane. This threshold can be empirically set based on the noise level and resolution of the point cloud data. For example, it can be set to one-tenth of the reciprocal of the average point spacing in the point cloud, with units of meters. Then, a judgment is made: if the absolute value of the Gaussian curvature is less than the near-zero curvature threshold and the absolute value of the mean curvature is also less than the near-zero curvature threshold, the local surface is considered very close to a plane, and the smaller of the first or second candidate value can be selected as the candidate local curvature feature value. If the absolute value of the Gaussian curvature is greater than or equal to the near-zero curvature threshold while the absolute value of the mean curvature is less than the near-zero curvature threshold, it indicates that the surface may have sharp local curvature but the overall average curvature is not significant; in this case, the first candidate value is selected as the candidate local curvature feature value. If the absolute value of the mean curvature is greater than or equal to the near-zero curvature threshold while the absolute value of the Gaussian curvature is less than the near-zero curvature threshold, it indicates that the surface may exhibit uniform curvature overall. In this case, the second candidate value is selected as the candidate local curvature feature value. If both the absolute values of the Gaussian curvature and the mean curvature are greater than or equal to the near-zero curvature threshold, the sign of the Gaussian curvature needs further consideration. If the Gaussian curvature is greater than 0, it indicates elliptic point curvature, and the arithmetic mean of the first and second candidate values can be selected as the candidate local curvature feature value. If the Gaussian curvature is less than 0, it indicates hyperbolic point curvature, and the first candidate value can be selected as the candidate local curvature feature value. Another simpler decision rule is to directly compare the magnitudes of the first and second candidate values, always selecting the larger value as the candidate local curvature feature value. The specific selection of the decision rule should be clearly described in the embodiments of the specification. Through the above evaluation and decision-making process, a single scalar value is finally output, namely the candidate local curvature feature value of the query point.
[0098] The specific implementation process for verifying candidate local curvature feature values and outputting the final local curvature feature values based on the verification results is as follows:
[0099] Obtain a preset threshold for the curvature of the structural surface geometric flatness. This threshold is a numerical limit used to determine whether a local curvature characteristic matches the typical flat geometric properties of a structural surface. Obtaining this threshold requires comprehensive consideration of the point cloud data resolution, measurement noise level, and the general understanding of the flatness of structural surfaces in engineering geology. One method for obtaining the threshold is theoretical estimation based on the spatial resolution of the point cloud data. The spatial resolution of the point cloud data can be characterized by calculating the average nearest neighbor distance between adjacent points in the point cloud, which reflects the point cloud's ability to depict the details of the object's surface. The threshold can be set as a fraction of the reciprocal of the average nearest neighbor distance, for example, one-hundredth of the average nearest neighbor distance, with dimensions per meter. This setting is based on the premise that when the radius of curvature of a local surface is much larger than the point cloud sampling interval, that local area can be considered approximately flat at the point cloud scale. Another method for obtaining the threshold is based on statistical analysis of point cloud data from known flat areas. The specific operation involves manually selecting or automatically extracting multiple regions known to be flat structural surfaces from the point cloud data using a region growing algorithm. For each query point in these regions, candidate local curvature feature values are calculated using the aforementioned method. Then, the distribution of candidate local curvature feature values for all query points is statistically analyzed, for example, by calculating their mean and standard deviation. The geometric flatness curvature threshold for the structural surface can be set as this mean plus two or three times the standard deviation. This threshold setting can cover the curvature fluctuation range of most flat regions. A third method for obtaining the geometric flatness curvature threshold for structural surfaces is based on engineering experience. Through experiments with a large amount of point cloud data of different types of rock mass structural surfaces, an empirical range of curvature thresholds suitable for specific rock masses or specific engineering projects is summarized. For example, this threshold range may be between 0.01 and 0.1 per meter. In practical applications, a specific value can be selected from this empirical range as the geometric flatness curvature threshold for the structural surface. Regardless of the method used, the geometric flatness curvature threshold for the structural surface should be determined as an explicit input parameter before the algorithm is executed, and this threshold should remain constant throughout the point cloud data processing to ensure the consistency of the verification criteria.
[0100] The candidate local curvature eigenvalue is compared with the structural surface geometric flatness curvature threshold. The comparison is a simple numerical comparison. The candidate local curvature eigenvalue is a non-negative scalar value calculated in the preceding steps. The structural surface geometric flatness curvature threshold is also a known non-negative scalar value. The purpose of the comparison is to determine whether the curvature of the local surface represented by the candidate local curvature eigenvalue exceeds the maximum curvature limit allowed by the structural surface. The comparison operation directly uses the greater-than relation from numerical calculations. That is, the difference between the candidate local curvature eigenvalue and the structural surface geometric flatness curvature threshold is calculated. If the difference is greater than 0, it means the candidate local curvature eigenvalue is greater than the structural surface geometric flatness curvature threshold. If the difference is less than or equal to 0, it means the candidate local curvature eigenvalue is not greater than the structural surface geometric flatness curvature threshold. The "not greater than" relation includes both less than and equal to cases. This comparison step is the basis for subsequent judgment and output operations.
[0101] When the candidate local curvature feature value is not greater than the curvature threshold of the structural surface geometric flatness, the verification is deemed successful, and the candidate local curvature feature value is output as the final local curvature feature value. The verification success decision is based on a logical decision made according to the comparison results. When the comparison results show that the candidate local curvature feature value is less than or equal to the curvature threshold of the structural surface geometric flatness, a verification success decision is made. Verification success means that the local surface curvature feature at the current query point meets or does not exceed the expected standard of structural surface geometric flatness; therefore, the calculated candidate local curvature feature value is reliable and suitable for characterizing the structural surface to which the point belongs. In this case, the output operation directly outputs the candidate local curvature feature value as the final local curvature feature value. The final local curvature feature value is the formal result used by subsequent structural surface identification processes. This output path retains the originally calculated curvature feature information and passes it to downstream processing modules.
[0102] When a candidate local curvature feature value exceeds the curvature threshold of the structural surface geometric flatness, the verification fails, and a zero value is output as the final local curvature feature value. The decision to fail verification is also based on logical judgment of the comparison results. When the comparison results show that the candidate local curvature feature value is strictly greater than the curvature threshold of the structural surface geometric flatness, a verification failure is made. Verification failure means that the local surface curvature feature at the current query point exceeds the reasonable range of the structural surface geometric flatness. This can be caused by various reasons, such as the point being located in a non-structural surface area such as vegetation, isolated rocks, or complex terrain; or the point being located at the edge of a structural surface or subject to strong noise pollution that distorts the curvature calculation; or the point itself belonging to a high-curvature, slightly undulating region. To avoid introducing unreliable and misleading high-curvature features into subsequent structural surface identification processes, a safe, neutral value needs to be output in this case. Outputting a zero value as the final local curvature feature value is based on this consideration. A zero value represents no curvature or complete flatness; it is a conservative estimate that avoids interference from false high-curvature signals to the classifier. Outputting a zero value does not necessarily mean that the point is flat; rather, it indicates that the curvature feature at that point is considered unreliable or unrepresentative of the structural surface. Therefore, setting it to zero in the feature vector reduces its weight and influence in subsequent machine learning models. Through this verification and replacement mechanism, the entire method can effectively filter out abnormally high curvature values that may be caused by noise or unstructured surface geometry, thereby outputting a cleaner and more consistent set of final local curvature feature values, laying a reliable data foundation for high-precision structural surface identification. This entire step constitutes the final quality control checkpoint in the feature calculation process, ensuring the engineering applicability and robustness of the output features.
[0103] Example 2: Figure 2 A schematic diagram of a point cloud local curvature feature calculation system for structural surface recognition according to the present invention is provided. The point cloud local curvature feature calculation system for structural surface recognition includes the following modules:
[0104] The neighborhood search module is used to determine the neighborhood radius of a query point in point cloud data, and search for the set of neighboring points of the query point based on the neighborhood radius, with the query point as the center.
[0105] The covariance matrix calculation module is used to calculate the covariance matrix of a neighborhood point set based on the neighborhood point set.
[0106] The feature decomposition module is used to obtain multiple sets of covariance matrices corresponding to the query point under at least two different neighborhood radii; and to perform feature decomposition on each set of covariance matrices to obtain multiple sets of eigenvalues and eigenvectors.
[0107] The tensor calculation module is used to select an optimal set of eigenvalues and eigenvectors based on multiple sets of eigenvalues and eigenvectors, and calculate the curvature tensor at the query point based on the optimal eigenvalues and eigenvectors.
[0108] The candidate feature module is used to calculate candidate local curvature feature values for the query point based on the curvature tensor.
[0109] The feature verification module is used to verify candidate local curvature feature values and output the final local curvature feature values based on the verification results.
[0110] The calculations involved in the embodiments are all dimensionless numerical calculations, and the preset parameters and thresholds in the calculations are set by those skilled in the art according to the actual situation.
[0111] The above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, in the form of a computer program product.
[0112] Those skilled in the art will recognize that the modules and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and inventive constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0113] In addition, the functional modules in the various embodiments of this application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module.
[0114] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or modules may be electrical, mechanical, or other forms.
[0115] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
[0116] In conclusion, the above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A method for calculating local curvature features of point clouds for structural surface recognition, characterized in that, Includes the following steps: S1. For the query point in the point cloud data, determine the neighborhood radius of the query point, and use the query point as the center to search for the neighborhood point set of the query point based on the neighborhood radius; S2. Based on the neighborhood point set, calculate the covariance matrix of the neighborhood point set; S3. Under at least two different neighborhood radii, obtain multiple sets of covariance matrices corresponding to the query point; perform eigenvalue decomposition on each set of covariance matrices to obtain multiple sets of eigenvalues and eigenvectors. S4. Based on multiple sets of eigenvalues and eigenvectors, select a set of optimal eigenvalues and eigenvectors, and calculate the curvature tensor at the query point based on the optimal eigenvalues and eigenvectors. S5. Based on the curvature tensor, calculate the candidate local curvature feature values of the query point; S6. Verify the candidate local curvature feature values and output the final local curvature feature values based on the verification results.
2. The method for calculating local curvature features of point clouds for structural surface recognition according to claim 1, characterized in that, S1 includes: Obtain the point cloud density of the local area where the query point is located; Calculate the initial neighborhood radius based on point cloud density; Perform a neighborhood search on the query point using the initial neighborhood radius to obtain the initial neighborhood point set; Evaluate the uniformity of the spatial distribution of the initial neighborhood point set; When the uniformity does not meet the preset conditions, adjust the initial neighborhood radius; Re-execute the neighborhood search with the adjusted neighborhood radius to obtain the neighborhood point set of the query point.
3. The method for calculating local curvature features of point clouds for structural surface recognition according to claim 1, characterized in that, S2 include: The initial covariance matrix is calculated based on the neighborhood point set; Based on the initial covariance matrix, check whether there are outliers in the neighborhood point set; If outliers exist, they are removed from the neighborhood point set to form an updated neighborhood point set. Based on the updated neighborhood point set, the covariance matrix is recalculated and used as the covariance matrix of the neighborhood point set. If there are no outliers, the initial covariance matrix is used as the covariance matrix of the neighborhood point set.
4. The method for calculating local curvature features of point clouds for structural surface recognition according to claim 1, characterized in that, S3 include: Based on an initial neighborhood radius, at least one additional neighborhood radius is determined through a preset proportional relationship, forming a neighborhood radius sequence; Following the order in the neighborhood radius sequence, perform neighborhood search sequentially using each neighborhood radius to obtain the corresponding set of neighborhood points; Based on the set of neighborhood points corresponding to each neighborhood radius, a covariance matrix is calculated respectively. Each covariance matrix is subjected to eigenvalue decomposition to obtain eigenvalues and eigenvectors corresponding to each neighborhood radius, thus forming multiple sets of eigenvalues and eigenvectors.
5. The method for calculating local curvature features of point clouds for structural surface recognition according to claim 4, characterized in that, At least two different neighborhood radii are a sequence of neighborhood radii obtained by gradually enlarging an initial neighborhood radius according to a preset fixed ratio.
6. The method for calculating local curvature features of point clouds for structural surface recognition according to claim 1, characterized in that, S4 include: For each of the multiple sets of eigenvalues and eigenvectors, calculate the stability index of its eigenvalue ranking; For each of the multiple sets of eigenvalues and eigenvectors, calculate the consistency index of the eigenvector direction. Based on stability and consistency indices, select an optimal set of eigenvalues and eigenvectors from multiple sets of eigenvalues and eigenvectors. The covariance matrix corresponding to the selected optimal eigenvalue and eigenvector is used to calculate the curvature tensor at the query point.
7. The method for calculating local curvature features of point clouds for structural surface recognition according to claim 6, characterized in that, The stability index is obtained by statistically ranking multiple sets of eigenvalues and eigenvectors, and calculating the proportion of eigenvalues that maintain consistent ranking. The consistency index is obtained by calculating the average of the cosine values of the angles between multiple sets of eigenvalues and corresponding eigenvectors.
8. The method for calculating local curvature features of point clouds for structural surface recognition according to claim 1, characterized in that, S5 include: Gaussian curvature and mean curvature are derived from the curvature tensor. Calculate the absolute value of the Gaussian curvature as the first candidate value; Calculate the absolute value of the mean curvature as the second candidate value; Evaluate the geometric significance of the first and second candidate values in characterizing the concavity and convexity of the local surface; Based on geometric interpretation, one of the first and second candidate values is selected as the candidate local curvature feature value for the query point.
9. The method for calculating local curvature features of point clouds for structural surface recognition according to claim 1, characterized in that, S6 include: Obtain the preset structural surface geometric flatness curvature threshold; Compare the candidate local curvature eigenvalues with the curvature threshold of the geometric flatness of the structural surface; When the candidate local curvature feature value is not greater than the curvature threshold of the geometric flatness of the structural surface, the verification is passed, and the candidate local curvature feature value is output as the final local curvature feature value. If the candidate local curvature feature value is greater than the curvature threshold of the geometric flatness of the structure surface, the verification is deemed unsuccessful, and the zero value is output as the final local curvature feature value.
10. A point cloud local curvature feature calculation system for structural surface recognition, used to implement the point cloud local curvature feature calculation method for structural surface recognition as described in any one of claims 1-9, characterized in that, Includes the following modules: The neighborhood search module is used to determine the neighborhood radius of a query point in point cloud data, and search for the set of neighboring points of the query point based on the neighborhood radius, with the query point as the center. The covariance matrix calculation module is used to calculate the covariance matrix of a neighborhood point set based on the neighborhood point set. The feature decomposition module is used to obtain multiple sets of covariance matrices corresponding to the query point under at least two different neighborhood radii; and to perform feature decomposition on each set of covariance matrices to obtain multiple sets of eigenvalues and eigenvectors. The tensor calculation module is used to select an optimal set of eigenvalues and eigenvectors based on multiple sets of eigenvalues and eigenvectors, and calculate the curvature tensor at the query point based on the optimal eigenvalues and eigenvectors. The candidate feature module is used to calculate candidate local curvature feature values for the query point based on the curvature tensor. The feature verification module is used to verify candidate local curvature feature values and output the final local curvature feature values based on the verification results.