Laser scanner integrated data processing system and method

By designing a laser scanner integrated data processing system, using undirected graph and maximum flow minimum cutting algorithm to denoise cloud data, divide grid cells for clustering and model fitting, the problems of low data processing efficiency and low quality of the three-dimensional model are solved, and efficient and accurate three-dimensional model construction is achieved.

CN120063154APending Publication Date: 2025-05-30SHANDONG MONCEE SENSOR CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202411923565.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-25
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

There are a large number of noise points in the original point cloud data collected by the laser scanner, which has low processing efficiency, and the existing modeling methods cannot fully utilize the geometric characteristics of the point cloud data, resulting in low quality of the three-dimensional model and cannot meet the needs of high-precision three-dimensional digital twins.

Method used

A laser scanner integrated data processing system is designed, including modules such as data acquisition, preliminary processing, division, clustering, model fitting and optimization. Through the undirected graph and the maximum flow minimum cutting algorithm, the grid cells are divided for clustering, the optimal fit plane is calculated and merged, and finally the three-dimensional model is optimized.

Benefits of technology

The efficiency and accuracy of point cloud data processing are significantly improved. The generated three-dimensional model has smooth surfaces and clear geometric features, which can effectively remove noise interference and meet the needs of high-precision three-dimensional digital twins.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120063154A_ABST
    Figure CN120063154A_ABST
Patent Text Reader

Abstract

The invention belongs to the technical field of laser scanners, and discloses a laser scanner integrated data processing system and method. The method comprises the following steps: acquiring point cloud data acquired by a laser scanner; preprocessing the collected point cloud data to obtain de-noised point cloud data; dividing the de-noised point cloud data into a plurality of grid units; clustering the de-noised point cloud data in each grid unit to obtain n point cloud clusters; n is an integer greater than 1; calculating the optimal fitting plane of each point cloud cluster, and combining the optimal fitting planes corresponding to all the point cloud clusters to obtain a three-dimensional model of the whole scanning scene; optimizing the three-dimensional model of the whole scanning scene to obtain a scene terminal model, and sending the scene terminal model to a data processing terminal; the three-dimensional model is closer to a real scene, and the quality and usability of the model are greatly improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of laser scanners. More specifically, the present invention relates to an integrated data processing system and method for laser scanners. Background Art

[0002] As an efficient three-dimensional data acquisition device, laser scanners are widely used in many fields such as industrial manufacturing, urban planning, cultural relics protection, etc. Through laser scanning, high-precision three-dimensional point cloud data of complex physical scenes can be quickly obtained, providing an important data basis for subsequent analysis and applications. However, in actual applications, the original point cloud data collected by laser scanners often has some problems.

[0003] First of all, the original point cloud data collected by laser scanners often contains a large number of noise points, which will seriously interfere with subsequent data analysis and applications. In some complex industrial environments or outdoor scenes, the proportion of noise points is often relatively high. If they cannot be effectively removed, it will lead to large errors in the final three-dimensional model and cannot accurately reflect the real physical scene. Secondly, the processing efficiency of large-scale point cloud data is also a major challenge. Existing data processing methods usually need to directly traverse all the point cloud data, resulting in huge computational amounts when processing large scenes and unable to meet the requirements of real-time applications. This will cause serious performance bottlenecks for some scenarios that require quick response, such as autonomous driving and robot navigation. In addition, there are also certain difficulties in constructing high-quality three-dimensional models from point cloud data. Existing modeling methods often cannot make full use of the geometric feature information contained in the point cloud data, and the generated three-dimensional models often have some defects. These problems will limit the use value of the three-dimensional models in subsequent analysis and applications and cannot meet the needs of users for high-precision three-dimensional digital twins.

[0004] In view of this, the present invention proposes an integrated data processing system and method for laser scanners to solve the above problems. Summary of the Invention

[0005] In order to overcome the above-mentioned defects of the prior art and to achieve the above object, the present invention provides the following technical solution: An integrated data processing system for laser scanners, comprising: a data acquisition module for acquiring the point cloud data obtained by the laser scanner; A preliminary processing module for preprocessing the acquired point cloud data to obtain denoised point cloud data; A partitioning module for partitioning the denoised point cloud data into a plurality of grid cells; clustering the denoised point cloud data within each grid cell to obtain n point cloud clusters; A model fitting module for calculating the optimal fitting plane for each point cloud cluster and merging the optimal fitting planes corresponding to all the point cloud clusters to obtain a three-dimensional model of the entire scanning scene; The model optimization module is used to optimize the 3D model of the entire scanning scene to obtain the scene terminal model and send it to the data processing terminal; each module is connected by wired and / or wireless means.

[0006] Further, the method for preprocessing the collected point cloud data includes: Initialize an undirected graph, traverse the point cloud data, and use each point cloud point in the point cloud data as a node in the undirected graph; for each point cloud point , find other point cloud points in its neighborhood; in the undirected graph, connect the point cloud point with other point cloud points in its neighborhood; obtain the preliminary undirected graph G; Add two special nodes to the preliminary undirected graph G. The special nodes include the source point s and the sink point t. For each point cloud point corresponding node , connect it to the source point s, and set the weight of the edge to , where is a relatively large constant, is the probability that the point cloud point is marked as a noise point; For each point cloud point , connect it to the sink point t, and set the weight of the edge to , where is the probability that the point cloud point is marked as a non-noise point; for the edges in the preliminary undirected graph G that are not directly connected to the source point s and the sink point t, take any one of the corresponding two nodes as the main node, calculate the value of the total energy function , and use this value as the weight of the corresponding edge, and then construct the comprehensive weight graph G1; define the weight of the edge corresponding to the capacity of the edge; In the constructed G1, use the maximum flow minimum cut algorithm to solve the maximum flow from the source point s to the sink point t; based on the maximum flow, the constructed G1 is divided into two non-overlapping subsets, namely the source point subset S and the sink point subset T, where S contains the source point s and T contains the sink point t; For each point cloud point , if the corresponding node belongs to the source point subset S, then mark the point cloud point as a non-noise point. If the corresponding node belongs to the sink point subset T, then mark the point cloud point as a noise point. Retain all the point cloud points marked as non-noise points, eliminate all the point cloud points marked as noise points, and record the remaining point cloud points as denoised point cloud points. All the denoised point cloud points form the denoised point cloud data.

[0007] Further, define the total energy function ; where, is the label of the point cloud point , is the probability that the point cloud point is marked as ; is the feature weight, is the label of the point cloud point , and respectively represent the indices of the point cloud points in the point cloud data; is the feature vector of the point cloud point , is the feature vector of the point cloud point , is a parameter that controls the decay rate of similarity; the feature vector is a vector composed of the local features of the point cloud point, and the local features include three-dimensional coordinates, reflection intensity values, curvature values, normal vectors, and distance statistics with other point cloud points in its neighborhood; the distance statistics include mean and variance.

[0008] Furthermore, the method for finding other point cloud points in the neighborhood includes: Define an octree, determine the bounding box of the point cloud data, use the bounding box as the root node of the octree, recursively divide the bounding box evenly into 8 child nodes until each child node contains only 1 point cloud point. These child nodes are the leaf nodes of the octree. During the recursive process, insert each point cloud point into the corresponding leaf node; for the point cloud point , starting from the root node of the octree, select any one of the 8 child nodes of the current node according to the coordinates of the point cloud point , and repeat traversing downward from the root node until reaching the leaf node containing the point cloud point ; preset a distance threshold, starting from the leaf node where the point cloud point is located, traverse all adjacent leaf nodes of this leaf node. For each adjacent leaf node, check the distance between the point cloud points in it and the point cloud point . If the distance is less than the distance threshold, add the point cloud points in the corresponding adjacent leaf node to the candidate neighborhood point set of the point cloud point , and continue to traverse the next adjacent leaf node until all point cloud points have been traversed; the point cloud points in the candidate neighborhood point set are denoted as candidate neighborhood points; For the candidate neighborhood point set N(i) of the point cloud point , fit a local tangent plane in N(i), and use the normal vector of the local tangent plane as the estimated normal vector of the point cloud point ; for each candidate neighborhood point Q in the candidate neighborhood point set N(i), calculate the estimated normal vector of the candidate neighborhood point Q ; Calculate the comprehensive residual distance from each candidate neighborhood point Q in N(i) to the local tangent plane ; ; ; where is the coordinate of the candidate neighborhood point Q, is the coordinate of the point cloud point ; and are weight coefficients and satisfy ; is the hyperbolic tangent function; Based on the comprehensive residual distance , calculate the comprehensive weight of the candidate neighborhood point Q; ; where , and are adjustable parameters; calculate the estimated normal vector of the point cloud point and the comprehensive angle between the estimated normal vector of the candidate neighborhood point Q; Preset a normal vector angle threshold θ_max. For each candidate neighborhood point Q, if is greater than θ_max, then remove the candidate neighborhood point Q from the candidate neighborhood point set N(i). If is less than or equal to θ_max, then retain the candidate neighborhood point Q in the candidate neighborhood point set N(i); traverse all candidate neighborhood points in the candidate neighborhood point set N(i). Finally, the remaining candidate neighborhood points in the candidate neighborhood point set N(i) are the other point cloud points in the neighborhood of the point cloud point .

[0009] Furthermore, the division method of the grid cells includes: Traverse all the denoised point cloud points, find the minimum coordinate value and the maximum coordinate value of the denoised point cloud points among them, and use the minimum coordinate value and the maximum coordinate value to construct a minimum rectangular boundary box containing all the denoised point cloud points; define an initial grid size sn, and evenly divide the minimum rectangular boundary box into several cubic grid cells according to the size of sn; traverse all the denoised point cloud points. For each denoised point cloud point, determine the cubic grid cell it belongs to, count the number of denoised point cloud points contained in each cubic grid cell, and calculate the point cloud density of each cubic grid cell u; where is the number of denoised point cloud points contained in the cubic grid cell , is the volume of the cubic grid cell u; Given a preset reference grid size sa and a density threshold th, traverse the cubic grid cells. For the cubic grid cells with a point cloud density greater than th, divide them into 8 sub-grid cells with a size of sa; for the cubic grid cells with a point cloud density less than or equal to th, retain the cubic grid cells without division; finally, both the sub-grid cells and the retained cubic grid cells are denoted as grid cells. Initialize an empty hash table. The hash table divides the three-dimensional space where the denoised point cloud points are located into several buckets, and each bucket corresponds to a hash key value; map the coordinates of the denoised point cloud points to a hash key value; traverse all the denoised point cloud points. For each denoised point cloud point , calculate its hash key value , search for the bucket with the hash key value in the hash table. If the bucket does not exist, create a new bucket and insert the denoised point cloud point , if the bucket already exists, insert the denoised point cloud point into this bucket; Traverse all non-empty buckets in the hash table. For each non-empty bucket, take out all the denoised point cloud points in the bucket, determine the index of the grid cell it corresponds to according to the hash key value corresponding to the bucket, and insert the denoised point cloud points into the corresponding grid cell.

[0010] Furthermore, the method of clustering the denoised point cloud data in each grid cell includes: Traverse all the denoised point cloud points in the grid cell, calculate the local density of each denoised point cloud point, and take the denoised point cloud points with local density greater than the preset splitting threshold as several initial seed points in the grid cell; at this time, one seed point corresponds to one cluster; in the corresponding grid cell, set an initial neighborhood radius r centered on the initial seed points to obtain the neighborhood of the seed points, search for all denoised point cloud points in this neighborhood, and mark them as member points of the current cluster, gradually increase the neighborhood radius r, and repeat the search process; when r grows to the preset radius threshold, stop the search to obtain the corresponding preliminary cluster; Define a three-dimensional coordinate system in the space where the preliminary cluster is located, initialize an active point set. For all member points in the preliminary cluster, find the member point pm with the smallest ordinate, add it to the active point set, and sort all member points in ascending order of the ordinate; Initialize an empty stack S1, add pm to stack S1. Starting from the second member point in the active point set, traverse all member points in ascending order of ordinate. For each member point q, starting from the top of the stack, check the relative position between the midpoint of the stack and member point q. If member point q is on the right side of the top vertex of the stack, pop the top vertex of the stack, and repeat until the top vertex of the stack is on the left side of member point q or the stack is empty. Then add member point q to stack S1. Repeat until all member points have been traversed. The remaining member points in stack S1 are the sequence of upper boundary points of the convex hull arranged in counterclockwise order. Reverse the sequence of upper boundary points of the convex hull to obtain the sequence of lower boundary points of the convex hull; merge the sequence of upper boundary points of the convex hull and the sequence of lower boundary points of the convex hull, that is, obtain the complete sequence of convex hull points, and the sequence of convex hull points constitutes the convex hull corresponding to the preliminary cluster. Traverse all member points within the preliminary cluster. For each member point, check whether it is located inside the convex hull. If the member point is inside the convex hull, mark it as an internal point; for each member point marked as an internal point, calculate its local density; set a preliminary density threshold rh, traverse all member points marked as internal points, if its local density is less than rh, then remove it from the preliminary cluster to obtain the preliminary point cloud cluster; select new seed points from the unclustered member points within the grid cell, and repeat to obtain new preliminary point cloud clusters until all denoised point cloud points have been clustered; calculate the distance between each pair of adjacent preliminary point cloud clusters, denoted as the cluster distance. If the cluster distance is less than the preset merging threshold, then merge them into one point cloud cluster; the finally obtained point cloud clusters or the unmerged preliminary point cloud clusters are all point cloud clusters, and n point cloud clusters are obtained.

[0011] Furthermore, the calculation method of the optimal fitting plane includes: Divide the point cloud cluster into several cluster subsets. For each cluster subset, calculate the centroid of all denoised point cloud points within the cluster subset, calculate the coordinate offset values of all denoised point cloud points within the cluster subset relative to the centroid, and construct a covariance matrix based on this; perform eigenvalue decomposition on the covariance matrix to obtain several matrix eigenvalues and their corresponding matrix eigenvectors, and take the matrix eigenvector corresponding to the smallest eigenvalue as the plane normal vector. Determine the plane equation according to the plane normal vector and the centroid, which is the fitting plane corresponding to the cluster subset. Merge all the fitting planes corresponding to the cluster subsets to obtain the preliminary fitting plane model of the entire point cloud cluster; Calculate the residual of each denoised point cloud point within the cluster subset to the corresponding fitting plane. According to the residual, adjust the parameters of the plane equation to minimize the sum of the squares of the residuals, and repeat until the residuals converge; the finally obtained preliminary fitting plane model is the optimal fitting plane of the point cloud cluster.

[0012] Furthermore, the method of merging the optimal fitting planes corresponding to all point cloud clusters includes: Determine a unified scene coordinate system, traverse all point cloud clusters, transform the optimal fitting plane corresponding to each point cloud cluster into the scene coordinate system, calculate the intersection line of any two optimal fitting planes, and judge the positional relationship between the intersection line and the two optimal fitting planes. The positional relationships include intersection, coincidence, or non-contact; for the optimally fitting planes that intersect or coincide, calculate the intersecting or coinciding area, re-fit a plane based on all the denoised point cloud points within this area, and replace the original two optimally fitting planes with the re-fitted plane. Repeat this process until there are no optimally fitting planes that intersect or coincide; at this time, all the existing planes are independent planes; for each independent plane, generate a triangular mesh based on the denoised point cloud points on its boundary, and merge the triangular meshes corresponding to all independent planes to obtain the three-dimensional model of the entire scanned scene.

[0013] Furthermore, the method for optimizing the three-dimensional model of the entire scanned scene includes: Define a two-dimensional plane in the space where the three-dimensional model of the entire scanned scene is located, project the three-dimensional model onto the two-dimensional plane to obtain the two-dimensional contour of the three-dimensional model, add a virtual boundary around the two-dimensional contour, and set the height of the virtual boundary to a constant value; for each grid point of the triangular meshes within the two-dimensional contour, calculate its distance to the surface of the three-dimensional model as the height, thereby constructing a discrete height field H. Traverse the grid points in the height field H , check whether all the grid points in its 8-neighborhood have greater heights. If so, mark it as a pond; starting from the grid point , perform breadth-first search or depth-first search to find all the grid points that cannot reach any pond, and mark them as obstacles. For the grid points that have been marked as ponds, set their levels to 1. Starting from the ponds at this level, simulate the process of filling water. The water level of the ponds gradually rises. When encountering an obstacle, mark the grid point corresponding to the obstacle as the level of the current water level until all grid points are marked with a certain level. Define a smoothing window for each level, and the radius of the smoothing window is unified; starting from the lowest level, for each grid point on each level, adjust its height according to the heights of the grid points in its 8-neighborhood and the corresponding smoothing window; the height adjustment formula is: ; where is the height of the grid point after adjustment, is the comprehensive weight of the grid point ; is the height of the grid point before adjustment; ; where is the grid point The Euclidean distance from any grid point within the 8-neighborhood of to the grid point is the current level corresponding to the radius of the smoothing window, and is the control parameter; is the average height of all grid points within the 8-neighborhood of the grid point ; Until the height of each level grid point is adjusted, a new height field is obtained. Calculate the difference between the new height field and the original height field until the difference is less than the preset smoothing threshold, then stop the adjustment. The finally obtained new height field is denoted as the optimized height field; Assign the height value in the optimized height field to the vertical coordinate of the corresponding grid point to obtain new coordinates. Substitute the new coordinates into the 3D model to update the vertex positions within the 3D model, thus obtaining the scene terminal model.

[0014] A method for integrated data processing of a laser scanner, which is implemented based on the described integrated data processing system of a laser scanner, includes: Step 1, collect the point cloud data obtained by the laser scanner; Step 2, preprocess the collected point cloud data to obtain denoised point cloud data; Step 3, divide the denoised point cloud data into several grid cells; cluster the denoised point cloud data within each grid cell to obtain n point cloud clusters; Step 4, for each point cloud cluster, calculate its optimal fitting plane, and merge the optimal fitting planes corresponding to all point cloud clusters to obtain a 3D model of the entire scanning scene; Step 5, optimize the 3D model of the entire scanning scene to obtain a scene terminal model and send it to the data processing terminal.

[0015] The technical effects and advantages of the integrated data processing system and method of a laser scanner of the present invention: The present invention can greatly improve the efficiency, accuracy, and model quality of point cloud data processing, providing strong support for the construction of high-quality 3D models; through an automated and integrated processing flow, it simplifies the operation steps, making data processing more convenient and efficient; at the same time, it can effectively remove noise interference in the point cloud data, ensuring the high quality of the data and laying a solid foundation for subsequent analysis and applications; in addition, it can generate a 3D model with a smooth surface and clear geometric features, truly reproducing the details and characteristics of the scanned scene, not only retaining the rich details of the original point cloud data but also having strong geometric coherence. Optimizing the model can effectively smooth the model surface, eliminate noise and discontinuities, making the 3D model closer to the real scene, greatly improving the quality and usability of the model, and providing a more efficient, accurate, and reliable solution for laser scanner integrated data processing. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1 It is a schematic diagram of a laser scanner integrated data processing system according to the present invention; Figure 2 It is a schematic diagram of a laser scanner integrated data processing method according to the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0017] Next, the technical solutions in the embodiments of the present invention will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only a part of the embodiments of the present invention, rather than all the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention.

[0018] Embodiment 1

[0019] Please refer to Figure 1 As shown, a laser scanner integrated data processing system in this embodiment includes: a data acquisition module for acquiring point cloud data obtained by a laser scanner; A preliminary processing module for preprocessing the acquired point cloud data to obtain denoised point cloud data; A partitioning module for partitioning the denoised point cloud data into several grid units; clustering the denoised point cloud data within each grid unit to obtain n point cloud clusters; n is an integer greater than 1; A model fitting module for calculating the optimal fitting plane for each point cloud cluster and merging the optimal fitting planes corresponding to all point cloud clusters to obtain a 3D model of the entire scanned scene; The model optimization module is used to optimize the 3D model of the entire scanning scene to obtain the scene terminal model and send it to the data processing terminal; each module is connected by wired and / or wireless means to achieve data transmission between modules.

[0020] The ways to preprocess the collected point cloud data include: Initialize an undirected graph, traverse the point cloud data, and take each point cloud point in the point cloud data as a node in the undirected graph; for each point cloud point , find other point cloud points within its neighborhood (8-neighborhood or 16-neighborhood); in the undirected graph, connect the point cloud point with other point cloud points within its neighborhood; obtain the preliminary undirected graph G.

[0021] The ways to find other point cloud points within the neighborhood include: Define an octree, determine the bounding box of the point cloud data, take the bounding box as the root node of the octree, and recursively divide the bounding box evenly into 8 child nodes (sub-boxes) until each child node contains only 1 point cloud point. These child nodes are the leaf nodes of the octree. During the recursive process, insert each point cloud point into the corresponding leaf node.

[0022] For the point cloud point , starting from the root node of the octree, select any one of the 8 child nodes of the current node according to the coordinates of the point cloud point , and repeatedly traverse downward from the root node until reaching the leaf node containing the point cloud point ; preset a distance threshold, starting from the leaf node where the point cloud point is located, traverse all adjacent leaf nodes of this leaf node. For each adjacent leaf node, check the distance between the point cloud points in it and the point cloud point (i.e., calculate according to the coordinates of the point cloud point). If the distance is less than the distance threshold, add the point cloud points in the corresponding adjacent leaf node to the candidate neighborhood point set of the point cloud point , and continue to traverse the next adjacent leaf node until all point cloud points are traversed; the point cloud points in the candidate neighborhood point set are denoted as candidate neighborhood points; For the candidate neighborhood point set N(i) of the point cloud point , fit a local tangent plane (using least squares fitting or principal component analysis) in N(i), and take the normal vector of the local tangent plane as the estimated normal vector of the point cloud point ; for each candidate neighborhood point Q in the candidate neighborhood point set N(i), calculate the estimated normal vector of the candidate neighborhood point Q (repeat the above estimation process). (Repeat the above estimation process).

[0023] Calculate the comprehensive residual distance from each candidate neighborhood point Q in N(i) to the local tangent plane ; ; Among them, is the coordinate of the candidate neighborhood point Q, is the coordinate of the point cloud point (coordinate in the world coordinate system), and are weight coefficients and satisfy ; is the hyperbolic tangent function.

[0024] Based on the comprehensive residual distance , calculate the comprehensive weight of the candidate neighborhood point Q; ; Among them, , and are adjustable parameters, controls the influence degree of the fitting residual penalty term, controls the descent rate of the fitting residual penalty term, controls the width of the Gaussian kernel function term; Parameter tuning is performed according to the specific scenario to better describe the mapping relationship between the residual distance and the weight, and improve the accuracy and robustness of the normal vector consistency check; Calculate the comprehensive angle between the estimated normal vector of the point cloud point and the estimated normal vector of the candidate neighborhood point Q.

[0025] Preset the normal vector angle threshold θ_max. For each candidate neighborhood point Q, if is greater than θ_max, it is considered that the point cloud point and the candidate neighborhood point Q are on different surfaces, and the candidate neighborhood point Q is removed from the candidate neighborhood point set N(i). If is less than or equal to θ_max, the candidate neighborhood point Q is retained in the candidate neighborhood point set N(i); Traverse all candidate neighborhood points in the candidate neighborhood point set N(i). Finally, the remaining candidate neighborhood points in the candidate neighborhood point set N(i) are the other point cloud points in the neighborhood of the point cloud point .

[0026] Define the total energy function ; Among them, is the label of the point cloud point (0 means non-noise point, 1 means noise point), is the point cloud point is marked as The probability (learned using a logistic regression model based on the curvature of the point cloud points); is the feature weight, is the point cloud point 's label, and respectively represent the indices of the point cloud points in the point cloud data; is the point cloud point 's feature vector, is the point cloud point 's feature vector, is a parameter that controls the decay rate of similarity.

[0027] The feature vector is a vector composed of the local features of the point cloud points. The local features include three-dimensional coordinates, reflection intensity values, curvature values, normal vectors, and distance statistics with other point cloud points in its neighborhood; the distance statistics include the mean and variance; if the feature vectors of two adjacent points are very similar and their labels are different, it will result in a large energy penalty.

[0028] Add two special nodes to the preliminary undirected graph G. The special nodes include the source node s and the sink node t. For each point cloud point 's corresponding node , connect it to the source node s, and set the weight of the edge to , where is a large constant, is the probability that the point cloud point is labeled as a noise point ( , that is, the label is a noise point).

[0029] For each point cloud point , connect it to the sink node t, and set the weight of the edge to , where is the probability that the point cloud point is labeled as a non-noise point; for the edges in the preliminary undirected graph G that are not directly connected to the source node s and the sink node t, take any one of the corresponding two nodes as the main node, calculate the value of the total energy function (that is, is calculated following the main node), take this value as the weight of the corresponding edge, and then construct the comprehensive weight graph G1; define that the weight of the edge corresponds to the capacity of the edge.

[0030] In the constructed G1, the maximum flow minimum cut algorithm (such as Ford-Fulkerson algorithm or Edmonds-Karp algorithm) is used to solve the maximum flow from the source point s to the sink point t; based on the maximum flow, the constructed G1 is divided into two non-overlapping subsets, namely the source point subset S and the sink point subset T, where S contains the source point s and T contains the sink point t; for each point cloud point , if the corresponding node belongs to the source point subset S, then the point cloud point Marked as a non-noise point, if the corresponding node belongs to the sink point subset T, then the point cloud point Mark as noise points, retain all point cloud points marked as non-noise points, remove all point cloud points marked as noise points, and the remaining point cloud points are recorded as denoised point cloud points. All denoised point cloud points constitute denoised point cloud data.

[0031] The grid cell division methods include: Traverse all denoised cloud points, find the minimum and maximum coordinate values ​​of the denoised cloud points, and use the minimum and maximum coordinate values ​​to construct a minimum rectangular bounding box containing all denoised cloud points; define an initial grid size sn, and evenly divide the minimum rectangular bounding box into several cubic grid units according to the size of sn; traverse all denoised cloud points, for each denoised cloud point, determine the cubic grid unit it belongs to, count the number of denoised cloud points contained in each cubic grid unit, and calculate the point cloud density of each cubic grid unit u ;in, is a cubic grid cell The number of denoised point cloud points contained in is the volume of cubic grid unit u.

[0032] The reference grid size sa and density threshold th are preset, sa is used as the minimum grid size, and the cubic grid cells are traversed. For the cubic grid cells with point cloud density greater than th, they are divided into 8 sub-grid cells with a size of sa; for the cubic grid cells with point cloud density less than or equal to th, the cubic grid cells are retained without being divided; the sub-grid cells or retained cubic grid cells are finally recorded as grid cells.

[0033] Initialize an empty hash table, which divides the three-dimensional space where the denoised point cloud is located into several buckets, each bucket corresponds to a hash key value; map the coordinates of the denoised point cloud point to a hash key value; traverse all the denoised point cloud points, and for each denoised point cloud point , calculate its hash key value , find the hash key value in the hash table For a bucket, if the bucket does not exist, create a new bucket and insert the denoised point cloud points. , if the bucket already exists, then insert the denoised point cloud points into this bucket.

[0034] Traverse all non-empty buckets in the hash table. For each non-empty bucket, take out all the denoised point cloud points in the bucket, determine the index of the grid cell it corresponds to according to the hash key value corresponding to the bucket, and insert the denoised point cloud points into the corresponding grid cell (insert according to the index); avoid directly traversing all the point cloud points, and only process the point cloud points in the non-empty grid cells, thus greatly improving the insertion efficiency.

[0035] The ways to cluster the denoised point cloud data in each grid cell include: Traverse all the denoised point cloud points in the grid cell, calculate the local density of each denoised point cloud point, and take the denoised point cloud points with local density greater than the preset splitting threshold as several initial seed points in the grid cell; at this time, one seed point corresponds to one cluster; with the initial seed points as the center in the corresponding grid cell, set an initial neighborhood radius r to obtain the neighborhood of the seed points, search for all the denoised point cloud points in this neighborhood, and mark them as the member points of the current cluster, gradually increase the neighborhood radius r, and repeat the search process; when r grows to the preset radius threshold, stop the search to obtain the corresponding preliminary cluster.

[0036] Define a three-dimensional coordinate system in the space where the preliminary cluster is located, initialize a set of active points. For all the member points in the preliminary cluster, find the member point pm with the smallest ordinate, add it to the set of active points, and sort all the member points in ascending order of the ordinate.

[0037] Initialize an empty stack S1 for storing the set of active points, add pm to the stack S1, start from the second member point in the set of active points, traverse all the member points in ascending order of the ordinate. For each member point q, start from the top of the stack, check the relative position of the point at the top of the stack and the member point q. If the member point q is on the right side of the vertex of the stack, pop the vertex of the stack, repeat until the vertex of the stack is on the left side of the member point q or the stack is empty, add the member point q to the stack S1, repeat until all the member points are traversed. The remaining member points in the stack S1 are the sequence of the upper boundary points of the convex hull arranged in counterclockwise order. Reverse the sequence of the upper boundary points of the convex hull to obtain the sequence of the lower boundary points of the convex hull; merge the sequence of the upper boundary points of the convex hull and the sequence of the lower boundary points of the convex hull to obtain the complete sequence of the convex hull points. The sequence of the convex hull points constitutes the convex hull corresponding to the preliminary cluster; the convex hull points are part of the point cloud points in the preliminary cluster.

[0038] Traverse all member points within the preliminary cluster. For each member point, check whether it is located inside the convex hull. Algorithms such as ray casting can be used to determine whether a point is inside. If the member point is inside the convex hull, mark it as an internal point; for each member point marked as an internal point, calculate its local density (such as density estimation based on radius, density estimation based on k-nearest neighbors, etc.); set a preliminary density threshold rh, traverse all member points marked as internal points, if its local density is less than rh, then remove it from the preliminary cluster to obtain the preliminary point cloud cluster.

[0039] Select new seed points from the unclustered member points within the grid cell, and repeat to obtain new preliminary point cloud clusters until all denoised point cloud points are clustered; calculate the distance between each pair of adjacent preliminary point cloud clusters, denoted as the cluster distance. If the cluster distance is less than the preset merging threshold, then merge them into one point cloud cluster; the finally obtained point cloud clusters or the unmerged preliminary point cloud clusters are all point cloud clusters, and n point cloud clusters are obtained.

[0040] The calculation method of the optimal fitting plane includes: Divide the point cloud cluster into several cluster subsets, each cluster subset contains a certain number of denoised point cloud points; the division method is based on the spatial position of the denoised point cloud points, and adjacent denoised point cloud points are divided into the same cluster subset. For each cluster subset, calculate the centroid (mean coordinate) of all denoised point cloud points within the cluster subset, calculate the coordinate offset value of all denoised point cloud points within the cluster subset relative to the centroid, and construct a covariance matrix based on this; the covariance matrix contains the coordinate offset information of all denoised point cloud points within the cluster subset relative to the centroid.

[0041] Perform eigenvalue decomposition on the covariance matrix to obtain several matrix eigenvalues and their corresponding matrix eigenvectors. Take the matrix eigenvector corresponding to the smallest eigenvalue as the plane normal vector, and determine the plane equation according to the plane normal vector and the centroid, which is the fitting plane corresponding to the cluster subset. Merge the fitting planes corresponding to all cluster subsets to obtain the preliminary fitting plane model of the entire point cloud cluster; the merging method can be to take the average value or weighted average value of the fitting planes corresponding to all cluster subsets.

[0042] Calculate the residual (the mean of the perpendicular distance to the plane) of each denoised point cloud point within the cluster subset to the corresponding fitting plane. According to the residual, adjust the parameters (normal vector and plane constant term) of the plane equation to minimize the sum of the squares of the residuals, and repeat until the residuals converge; the finally obtained preliminary fitting plane model is the optimal fitting plane (equation) of the point cloud cluster.

[0043] The methods for merging the optimal fitting planes corresponding to all point cloud clusters include: Determine a unified scene coordinate system, traverse all point cloud clusters, transform the optimal fitting plane corresponding to each point cloud cluster into the scene coordinate system, calculate the intersection line of any two optimal fitting planes, and judge the positional relationship between the intersection line and the two optimal fitting planes. The positional relationships include intersection, coincidence, or non-contact; for the optimally fitting planes that intersect or coincide, calculate the intersecting or coinciding region, re-fit a plane based on all the denoised point cloud points within this region, and replace the original two optimally fitting planes with the re-fitted plane. Repeat this process until there are no more optimally fitting planes that intersect or coincide; at this time, all the existing planes are independent planes; for each independent plane, generate a triangular mesh based on the denoised point cloud points on its boundary. Specifically, traverse all the denoised point cloud points, find the set of points belonging to the current independent plane, and from these points, identify the set of points located on the plane boundary, denoted as the boundary point set; initialize an empty triangular mesh, traverse the boundary point set, connect adjacent boundary points in a clockwise or counterclockwise order, and for every three adjacent boundary points, create a triangular mesh cell and add it to the triangular mesh. The triangular mesh consists of a series of triangular mesh cells, and each cell is defined by 3 vertex coordinates. Output these vertex coordinates as the triangular mesh of the current independent plane; merge the triangular meshes corresponding to all the independent planes to obtain the 3D model of the entire scanned scene.

[0044] The methods for optimizing the 3D model of the entire scanned scene include: Define a 2D plane in the space where the 3D model of the entire scanned scene is located, project the 3D model onto the 2D plane to obtain the 2D contour of the 3D model, and add a virtual boundary around the 2D contour. The height of the virtual boundary is set to a constant value (relatively large); for each grid point of the triangular meshes within the 2D contour, calculate its distance to the surface of the 3D model as the height, and thus construct a discrete height field H.

[0045] Traverse the grid points in the height field H , check whether all the grid points in its 8-neighborhood have greater heights. If so, mark it as a pond; starting from the grid point , perform a breadth-first search (BFS) or depth-first search (DFS) to find all the grid points that cannot reach any pond, and mark them as obstacles; for the grid points that have been marked as ponds, set their levels to 1. Starting from the ponds at this level, simulate the process of filling water. The water level of the ponds gradually rises. When an obstacle is encountered, mark the grid point corresponding to the obstacle as the current water level. Repeat this process until all grid points are marked with a certain level.

[0046] Define a smoothing window for each level, and the radius of the smoothing window is unified; starting from the lowest level, for each grid point at each level, adjust its height according to the heights of the grid points in its 8-neighborhood and the corresponding smoothing window; the height adjustment formula is: ; where, is the height of the grid point after adjustment, is the comprehensive weight of the grid point ; is the height of the grid point before adjustment; ; where, is the Euclidean distance from any grid point in the 8-neighborhood of the grid point to the grid point , is the current level corresponding to the radius of the smoothing window, and are control parameters used to adjust the attenuation rate of the weight; is the average height of all grid points in the 8-neighborhood of the grid point .

[0047] Until the heights of the grid points at each level are adjusted, a new height field is obtained. Calculate the difference between the new height field and the original height field until the difference is less than the preset smoothing threshold, then stop the adjustment. The finally obtained new height field is denoted as the optimized height field.

[0048] Assign the height value in the optimized height field to the vertical coordinate (spatial z coordinate) of the corresponding grid point to obtain new coordinates. Substitute the new coordinates into the 3D model to update the vertex positions in the 3D model, that is, obtain the scene terminal model, which can better reflect the geometric characteristics of the real scene and provide high-quality model data for subsequent analysis and applications.

[0049] This embodiment can greatly improve the efficiency, accuracy, and model quality of point cloud data processing, providing strong support for the construction of high-quality 3D models; through an automated and integrated processing flow, it simplifies the operation steps, making data processing more convenient and efficient; at the same time, it can effectively remove noise interference in the point cloud data, ensuring the high quality of the data and laying a solid foundation for subsequent analysis and applications; in addition, it can generate a 3D model with a smooth surface and clear geometric features, truly reproducing the details and characteristics of the scanned scene, not only retaining the rich details of the original point cloud data but also having strong geometric coherence. Optimizing the model can effectively smooth the model surface, eliminate noise and discontinuities, making the 3D model closer to the real scene, greatly improving the quality and usability of the model, and providing a more efficient, accurate, and reliable solution for laser scanner integrated data processing.

[0050] Embodiment 2 Please refer to Figure 2 As shown, for the parts not described in detail in this embodiment, refer to the description content of Embodiment 1. A method for laser scanner integrated data processing is provided, including: Step 1: Collect the point cloud data obtained by the laser scanner; Step 2: Preprocess the collected point cloud data to obtain denoised point cloud data; Step 3: Divide the denoised point cloud data into several grid units; cluster the denoised point cloud data within each grid unit to obtain n point cloud clusters; Step 4: For each point cloud cluster, calculate its optimal fitting plane, and merge the optimal fitting planes corresponding to all point cloud clusters to obtain a 3D model of the entire scanned scene; Step 5: Optimize the 3D model of the entire scanned scene to obtain a scene terminal model and send it to the data processing terminal.

[0051] Embodiment 3 This embodiment publicly provides an electronic device, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, it implements the running mode of the above-provided method for laser scanner integrated data processing.

[0052] Since the electronic device introduced in this embodiment is the electronic device adopted for implementing a laser scanner integrated data processing method in the embodiments of the present application, based on the laser scanner integrated data processing method introduced in the embodiments of the present application, those skilled in the art can understand the specific implementation manners and various variations of the electronic device in this embodiment. Therefore, the specific implementation of how this electronic device implements the method in the embodiments of the present application will not be described in detail here. As long as those skilled in the art implement the electronic device adopted for a laser scanner integrated data processing method in the embodiments of the present application, it falls within the scope of protection of the present application.

[0053] The above formulas are all dimensionless and take their numerical values for calculation. The formulas are obtained by collecting a large amount of data and performing software simulation to obtain a formula that is closest to the actual situation. The preset parameters and threshold selection in the formulas are set by those skilled in the art according to the actual situation.

[0054] The above are only the preferred implementation manners of the present invention. The protection scope of the present invention is not limited to the above embodiments. All technical solutions falling within the concept of the present invention belong to the protection scope of the present invention. It should be noted that for ordinary technical users in the technical field, several improvements and refinements made without departing from the principle of the present invention should also be regarded as within the protection scope of the present invention.

Claims

1. A laser scanner integrated data processing system, characterized in that: include: A data acquisition module, used to collect point cloud data acquired by a laser scanner; A preliminary processing module is used to pre-process the collected point cloud data to obtain denoised point cloud data; A partitioning module is used to divide the denoised point cloud data into a number of grid units; cluster the denoised point cloud data in each grid unit to obtain n point cloud clusters; The model fitting module is used to calculate the optimal fitting plane for each point cloud cluster, merge the optimal fitting planes corresponding to all point cloud clusters, and obtain the 3D model of the entire scanning scene; The model optimization module is used to optimize the three-dimensional model of the entire scanning scene, obtain the scene terminal model, and send it to the data processing terminal; each module is connected by wired and / or wireless means.

2. A laser scanner integrated data processing system according to claim 1, characterized in that: The method of preprocessing the collected point cloud data includes: Initialize an undirected graph, traverse the point cloud data, and take each point cloud point in the point cloud data as a node in the undirected graph; for each point cloud point , find other point cloud points in its neighborhood; in an undirected graph, connect point cloud points with edges With other point cloud points in its neighborhood; obtain a preliminary undirected graph G; Add two special nodes in the preliminary undirected graph G. The special nodes include the source point s and the sink point t. For each point cloud point in the preliminary undirected graph G, The corresponding node v_i is connected to the source point s, and the weight of the edge is set to ,in, is a large constant, It is a point cloud point The probability of being marked as a noise point; For each point cloud point , connect it to the sink t, and set the edge weight to ,in Point cloud point The probability of being marked as a non-noise point; for the edges in the preliminary undirected graph G that are not directly connected to the source point s and the sink point t, any one of the two corresponding nodes is used as the main node, and the total energy function is calculated The value of is used as the weight of the corresponding edge, and then the comprehensive weight graph G1 is constructed; the weight of the edge is defined to correspond to the capacity of the edge; In the constructed G1, the maximum flow minimum cut algorithm is used to solve the maximum flow from the source point s to the sink point t; based on the maximum flow, the constructed G1 is divided into two non-overlapping subsets, namely the source point subset S and the sink point subset T, where S contains the source point s and T contains the sink point t; For each point cloud point , if the corresponding node v_i belongs to the source point subset S, then the point cloud point Marked as a non-noise point, if the corresponding node v_i belongs to the sink subset T, then the point cloud point Mark as noise points, retain all point cloud points marked as non-noise points, remove all point cloud points marked as noise points, and the remaining point cloud points are recorded as denoised point cloud points. All denoised point cloud points constitute denoised point cloud data.

3. A laser scanner integrated data processing system according to claim 2, characterized in that: Define the total energy function ;in, Point cloud point Tags, Point cloud point Marked as The probability of is the feature weight, Point cloud point Tags, and Respectively represent the index of the point cloud points in the point cloud data; Point cloud point The characteristic vector of Point cloud point The characteristic vector of It is a parameter that controls the similarity decay speed; the feature vector is a vector composed of the local features of the point cloud point, and the local features include three-dimensional coordinates, reflection intensity value, curvature value, normal vector, and distance statistics with other point cloud points in its neighborhood; the distance statistics include mean and variance.

4. A laser scanner integrated data processing system according to claim 3, characterized in that: Methods for finding other point cloud points in the neighborhood include: Define an octree, determine the bounding box of the point cloud data, use the bounding box as the root node of the octree, and recursively divide the bounding box into 8 child nodes evenly until the child node contains only one point cloud point. These child nodes are the leaf nodes of the octree. In the recursive process, insert each point cloud point into the corresponding leaf node; for the point cloud point , starting from the root node of the octree, according to the point cloud point Select any one of the eight child nodes of the current node, and traverse downward from the root node repeatedly until you reach the point cloud point leaf node; preset distance threshold, from point cloud point Starting from the leaf node where the point cloud point is located, traverse all the adjacent leaf nodes of the leaf node, and for each adjacent leaf node, check the point cloud point and point cloud point If the distance is less than the distance threshold, the point cloud points in the corresponding adjacent leaf nodes are added to the point cloud points. The candidate neighborhood point set is traversed, and the next adjacent leaf node is traversed until all the point cloud points are traversed; the point cloud points in the candidate neighborhood point set are recorded as candidate neighborhood points; For point cloud points The candidate neighborhood point set N(i) is fitted in N(i) and the normal vector of the local tangent plane is used as the point cloud point The estimated normal vector F_i of the candidate neighborhood point Q is calculated; for each candidate neighborhood point Q in the candidate neighborhood point set N(i), the estimated normal vector F_Q of the candidate neighborhood point Q is calculated; Calculate the comprehensive residual distance from each candidate neighborhood point Q in N(i) to the local tangent plane P_i ; ;in, Candidate neighborhood points The coordinates of Point cloud point The coordinates of and Weight coefficient, and satisfy ; is the hyperbolic tangent function; Based on comprehensive residual distance , calculate the comprehensive weight of the candidate neighborhood point Q ; ;in, , and is an adjustable parameter; calculate point cloud points The comprehensive angle between the estimated normal vector F_i of the candidate neighboring point Q and the estimated normal vector F_Q of the candidate neighboring point Q ; Preset normal vector angle threshold θ_max, for each candidate neighborhood point Q, if If it is greater than θ_max, the candidate neighborhood point Q is removed from the candidate neighborhood point set N(i). If it is less than or equal to θ_max, then the candidate neighborhood point Q is retained in the candidate neighborhood point set N(i); all candidate neighborhood points in the candidate neighborhood point set N(i) are traversed, and the remaining candidate neighborhood points in the candidate neighborhood point set N(i) are the point cloud points. Other point cloud points in the neighborhood.

5. A laser scanner integrated data processing system according to claim 4, characterized in that: The grid unit division method includes: Traverse all denoised cloud points, find the minimum and maximum coordinate values ​​of the denoised cloud points, and use the minimum and maximum coordinate values ​​to construct a minimum rectangular bounding box containing all denoised cloud points; define an initial grid size sn, and evenly divide the minimum rectangular bounding box into several cubic grid units according to the size of sn; traverse all denoised cloud points, for each denoised cloud point, determine the cubic grid unit it belongs to, count the number of denoised cloud points contained in each cubic grid unit, and calculate the point cloud density of each cubic grid unit u ;in, is a cubic grid cell The number of denoised point cloud points contained in is the volume of cubic grid unit u; Preset the reference grid size sa and density threshold th, traverse the cubic grid units, and for the cubic grid units with point cloud density greater than th, divide them into 8 sub-grid units, and the size of the sub-grid unit is sa; for the cubic grid units with point cloud density less than or equal to th, retain the cubic grid units without division; the sub-grid units or retained cubic grid units are finally recorded as grid units; Initialize an empty hash table, which divides the three-dimensional space where the denoised point cloud is located into several buckets, each bucket corresponds to a hash key value; map the coordinates of the denoised point cloud point to a hash key value; traverse all the denoised point cloud points, and for each denoised point cloud point , calculate its hash key value , find the hash key value in the hash table If the bucket does not exist, create a new bucket and insert the denoised point cloud point , if the bucket already exists, the noise cloud point will be removed Insert into the barrel; Traverse all non-empty buckets in the hash table. For each non-empty bucket, take out all the denoised point cloud points in the bucket, determine the index of the corresponding grid unit according to the hash key value corresponding to the bucket, and insert the denoised point cloud points into the corresponding grid unit.

6. A laser scanner integrated data processing system according to claim 5, characterized in that: The method of clustering the denoised point cloud data in each grid unit includes: Traverse all the denoised cloud points in the grid unit, calculate the local density of each denoised cloud point, and use the denoised cloud points with local density greater than the preset splitting threshold as the initial seed points in the grid unit; at this time, one seed point corresponds to one cluster; in the corresponding grid unit, take the initial seed point as the center, set an initial neighborhood radius r, get the neighborhood of the seed point, search all the denoised cloud points in the neighborhood, mark them as member points of the current cluster, gradually increase the neighborhood radius r, and repeat the search process; when r grows to the preset radius threshold, stop searching and get the corresponding preliminary cluster; Define a three-dimensional coordinate system in the space where the preliminary cluster is located, initialize an active point set, find the member point pm with the smallest ordinate for all member points in the preliminary cluster, add it to the active point set, and sort all member points in ascending order of ordinate; Initialize an empty stack S1, add pm to stack S1, start from the second member point in the active point set, traverse all member points in ascending order of the ordinate, for each member point q, start from the top of the stack, check the relative position of the midpoint of the stack and the member point q, if the member point q is on the right side of the vertex of the stack, then pop the vertex of the stack, repeat until the vertex of the stack is on the left side of the member point q or the stack is empty, add the member point q to stack S1, repeat until all member points are traversed, the remaining member points in stack S1 are the convex hull upper boundary point sequence arranged in counterclockwise order, reverse the convex hull upper boundary point sequence to obtain the convex hull lower boundary point sequence; merge the convex hull upper boundary point sequence and the convex hull lower boundary point sequence to obtain a complete convex hull point sequence, the convex hull point sequence constitutes the convex hull corresponding to the preliminary cluster; Traverse all member points in the preliminary cluster, for each member point, check whether it is inside the convex hull, if the member point is inside the convex hull, mark it as an internal point; for each member point marked as an internal point, calculate its local density; set a preliminary density threshold rh, traverse all member points marked as internal points, if their local density is less than rh, remove them from the preliminary cluster, and obtain a preliminary point cloud cluster; select new seed points from the unclustered member points in the grid unit, and repeat to obtain new preliminary point cloud clusters until all denoised point cloud points are clustered; calculate the distance between each pair of adjacent preliminary point cloud clusters, recorded as cluster distance, if the cluster distance is less than the preset merging threshold, merge them into one point cloud cluster; the final point cloud cluster or the unmerged preliminary point cloud cluster is a point cloud cluster, and n point cloud clusters are obtained.

7. A laser scanner integrated data processing system according to claim 6, characterized in that: The calculation method of the optimal fitting plane includes: The point cloud cluster is divided into several cluster subsets. For each cluster subset, the centroid of all denoised point cloud points in the cluster subset is calculated, and the coordinate offset values ​​of all denoised point cloud points in the cluster subset relative to the centroid are calculated, and a covariance matrix is ​​constructed based on this. The covariance matrix is ​​decomposed by eigenvalue to obtain several matrix eigenvalues ​​and their corresponding matrix eigenvectors. The matrix eigenvector corresponding to the smallest eigenvalue is taken as the plane normal vector. The plane equation is determined according to the plane normal vector and the centroid, which is the fitting plane corresponding to the cluster subset. The fitting planes corresponding to all cluster subsets are merged to obtain a preliminary fitting plane model of the entire point cloud cluster. Calculate the residual from each denoised point cloud point in the cluster subset to the corresponding fitting plane. According to the residual, adjust the parameters of the plane equation to minimize the sum of squares of the residuals. Repeat until the residuals converge. The final preliminary fitting plane model is the optimal fitting plane of the point cloud cluster.

8. The laser scanner integrated data processing system according to claim 7, characterized in that: The method of merging the best fitting planes corresponding to all point cloud clusters includes: Determine a unified scene coordinate system, traverse all point cloud clusters, convert the best fitting plane corresponding to each point cloud cluster to the scene coordinate system, calculate the intersection line of any two best fitting planes, and determine the positional relationship between the intersection line and the two best fitting planes, which includes intersection, overlap or non-contact; for intersecting or overlapping best fitting planes, calculate the intersecting or overlapping area, refit a plane based on all denoised point cloud points in the area, replace the original two best fitting planes with the refitted plane, and repeat until there are no intersecting or overlapping best fitting planes; at this time, all existing planes are independent planes; for each independent plane, generate a triangular mesh based on the denoised point cloud points on its boundary, merge the triangular meshes corresponding to all independent planes, and obtain a 3D model of the entire scanned scene.

9. The laser scanner integrated data processing system according to claim 8, characterized in that: The method of optimizing the three-dimensional model of the entire scanning scene includes: A two-dimensional plane is defined in the space where the three-dimensional model of the entire scanned scene is located, and the three-dimensional model is projected onto the two-dimensional plane to obtain the two-dimensional outline of the three-dimensional model. A virtual boundary is added to the periphery of the two-dimensional outline, and the height of the virtual boundary is set to a constant value; for each grid point of the triangular mesh within the two-dimensional outline, the distance to the surface of the three-dimensional model is calculated as the height, thereby constructing a discrete height field H; Iterate through the grid points in the height field H , check whether all grid points in its 8-neighborhood have a greater height. If so, mark it as a pond; As the starting point, conduct a breadth-first search or a depth-first search to find all grid points that cannot reach any pond and mark them as obstacles; For the grid points marked as ponds, their levels are set to 1. Starting from the ponds at this level, the water filling process is simulated. The water level of the pond gradually rises. When an obstacle is encountered, the grid point corresponding to the obstacle is marked as the level of the current water level until all grid points are marked as a certain level. A smoothing window is defined for each level, and the radius of the smoothing window is unified; starting from the lowest level, the height of the grid points on each level is adjusted according to the height of the grid points in its 8-neighborhood and the corresponding smoothing window; the height adjustment formula is: ;in, is the grid point After adjustment, is the grid point The comprehensive weight of is the grid point Height before adjustment; ;in, is the grid point Any grid point to grid point in the 8-neighborhood The Euclidean distance of For the current level The corresponding smoothing window radius, and To control the parameters; is the grid point The average height of all grid points within the 8-neighborhood of ; Until the height of each level grid point is adjusted to obtain a new height field, the difference between the new height field and the original height field is calculated until the difference is less than the preset smoothing threshold, the adjustment is stopped, and the new height field finally obtained is recorded as the optimized height field; Assign the height value in the optimized height field to the vertical coordinate of the corresponding grid point to obtain a new coordinate, substitute the new coordinate into the three-dimensional model, update the vertex position in the three-dimensional model, and obtain the scene terminal model.

10. A laser scanner integrated data processing method, which is implemented based on a laser scanner integrated data processing system according to any one of claims 1 to 9, characterized in that: include: Step 1: Collect point cloud data obtained by a laser scanner; Step 2: pre-process the collected point cloud data to obtain denoised point cloud data; Step 3: Divide the denoised point cloud data into a number of grid units; cluster the denoised point cloud data in each grid unit to obtain n point cloud clusters; Step 4: For each point cloud cluster, calculate its optimal fitting plane, merge the optimal fitting planes corresponding to all point cloud clusters, and obtain a three-dimensional model of the entire scan scene; Step 5: Optimize the three-dimensional model of the entire scanning scene, obtain the scene terminal model, and send it to the data processing terminal.

Citation Information

Cited By

  • Roadbed inclination measuring method and system

    CN121033128A

  • Handwriting depth measuring method based on laser scanning

    CN121564062A