An incremental mesh reconstruction method based on adaptive parameters
Through the incremental mesh reconstruction method with adaptive parameters, the problems of low computational efficiency, high memory consumption and unstable reconstruction quality of large-scale point cloud data are solved, and efficient and continuous three-dimensional surface reconstruction is achieved, which is suitable for reverse engineering, cultural relics protection and medical imaging.
Patent Information
- Application Number
- CN202411430071.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-14
- Publication Date
- 2025-09-30
- Estimated Expiration
- 2044-10-14
AI Technical Summary
Existing greedy triangulation methods have low computational efficiency, unstable reconstruction quality, high memory consumption and lack of adaptability when processing large-scale and complex point cloud data, making it difficult to meet the needs of real-time processing and high-quality reconstruction.
An incremental mesh reconstruction method based on adaptive parameters is adopted. Through point cloud segmentation, density estimation, downsampling and normal estimation, combined with incremental triangular mesh construction, reconstruction parameters are dynamically adjusted to achieve efficient and continuous mesh reconstruction.
It improves the processing efficiency and quality of large-scale point cloud data, reduces memory consumption, ensures the consistency and continuity of reconstruction results, and simplifies post-processing operations.
Smart Images

Figure CN119478288B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of three-dimensional point cloud processing, and in particular relates to an incremental grid reconstruction method based on adaptive parameters. Background Art
[0002] As an intuitive and precise representation of three-dimensional spatial information, 3D point cloud data has been widely used in numerous fields, including reverse engineering, cultural heritage preservation, medical imaging, and autonomous driving. With advances in 3D scanning technology, acquiring high-precision, large-scale point cloud data has become increasingly easier. However, raw point cloud data typically contains a large number of discrete points, making it difficult to directly use for subsequent geometric analysis and visual presentation. Therefore, reconstructing high-quality 3D surface models from point cloud data has become a key issue.
[0003] Among the many surface reconstruction methods, greedy triangulation-based algorithms have attracted widespread attention due to their simplicity, efficiency, and ease of implementation. These algorithms gradually add triangles that meet specific conditions, ultimately forming a complete triangular mesh model. However, existing greedy triangulation methods still face many challenges when processing large-scale, complex point cloud data:
[0004] Low computational efficiency: As the size of the point cloud increases, the time complexity of the algorithm increases exponentially, making it difficult to meet the needs of real-time processing.
[0005] Unstable reconstruction quality: For point cloud data with complex geometric features or noise, existing algorithms often find it difficult to ensure the geometric accuracy and topological correctness of the reconstruction results.
[0006] High memory consumption: When processing large-scale point cloud data, a large amount of geometric information and topological relationships need to be maintained in memory, which can easily lead to memory overflow.
[0007] Lack of adaptability: It is difficult to automatically adjust the reconstruction parameters according to the local characteristics of the point cloud, resulting in difficulty in obtaining consistent reconstruction quality in different areas of complex models.
[0008] Complicated post-processing: The reconstructed initial mesh model usually requires complex post-processing operations, such as mesh simplification and smoothing, which increases the complexity of the processing.
[0009] Currently, the industry has proposed a number of optimization methods to improve greedy triangulation algorithms, such as optimization based on local geometric features, multi-resolution strategies, and parallel computing. However, these methods can only partially solve the problem and are unable to fully improve the algorithm's performance and reconstruction quality. Summary of the Invention
[0010] In response to the shortcomings of the existing technology, the present invention proposes an incremental mesh reconstruction method based on adaptive parameters, which can significantly improve the efficiency of mesh reconstruction and reduce memory consumption while ensuring the reconstruction quality. It also has good adaptability and can meet the needs of large-scale and complex point cloud data processing.
[0011] The purpose of the present invention is achieved through the following technical solutions:
[0012] An incremental mesh reconstruction method based on adaptive parameters includes the following steps:
[0013] Step 1: Obtain point cloud data;
[0014] Step 2: The point cloud P obtained in step 1 is linearly segmented based on the point index into m subsets, and adjacent subsets have overlapping areas;
[0015] Step 3: Density estimation of the segmented point cloud subset;
[0016] Step 4: Downsample and estimate normals for each point cloud subset;
[0017] Step 5: Construct a triangular mesh for each point cloud subset using an incremental method.
[0018] Furthermore, in step 1, by projecting structured light onto the surface of the object, and placing cameras on both sides of the structured light projector, the distance between the two cameras is set to b, and the camera shooting angles are set to α and β, the depth information depth is calculated by the following formula:
[0019]
[0020] The obtained point cloud data is then exported to PCD format and read using the PCL library.
[0021] Furthermore, in step 2, the i-th point cloud subset p after segmentation i The calculation formula for the starting index start_index and the ending index end_index is as follows:
[0022] start_index=max(1,i*part_size-overlap_size)
[0023] end_index=min(n,(i+1)*part_size+overlap_size)
[0024] Among them, part_size represents the size of each subset after segmentation, overlap_size represents the size of the overlapping part, and n is the number of points in the point cloud P;
[0025] Each subset p i satisfy:
[0026]
[0027] Where k is the overlap ratio of adjacent subsets.
[0028] Furthermore, the step three includes the following sub-steps:
[0029] S3.1: Calculate the point cloud subset p by the following formula i Point cloud density ρ i :
[0030]
[0031] Among them, N i is the number of points in the subset, V i is the bounding box volume of the subset;
[0032] S3.2: According to the point cloud density ρ i Dynamically adjust voxel size L i :
[0033]
[0034] Among them L max 、L min are the preset maximum and minimum voxels, ρ max , ρ min are the preset maximum and minimum density thresholds respectively.
[0035] Furthermore, the step 4 includes the following sub-steps:
[0036] S4.1: For each non-empty voxel, find all points that fall within this voxel, calculate the center of mass of each non-empty voxel, and construct these centers of mass into a new point cloud after downsampling; where the center of mass P of each non-empty voxel is centroid =(X centroid ,Y centroid ,Z centroid ) is calculated as follows:
[0037]
[0038] Where num represents the number of all points in the non-empty voxel;
[0039] S4.2: Calculate the point cloud density ρ of the new point cloud by the following formula i :
[0040]
[0041] Among them, N j is the number of points in the new point cloud, V j is the bounding box volume of the new point cloud;
[0042] S4.3: Perform k-nearest neighbor search on the points in the new point cloud and calculate the number of neighbors K for each point j :
[0043]
[0044] Among them, K max , K min are the preset maximum and minimum number of K nearest neighbors respectively;
[0045] S4.4: According to the number of neighbors K of each point j , find the neighborhood points of each point, group these neighborhood points into a neighborhood point set, and calculate the centroid vector centroid and covariance matrix C of the neighborhood point set p ;
[0046]
[0047] Among them, p j Refers to the three-dimensional vector of the coordinates of the neighborhood points in the neighborhood point set;
[0048] Covariance matrix C p The calculation formula is as follows:
[0049]
[0050] Furthermore, the step five includes the following sub-steps:
[0051] S5.1: Perform eigenvalue decomposition on the covariance matrix to obtain the eigenvector with the smallest eigenvalue, which is used as the normal vector for this point. Find points with the same normal direction to form coplanar points and construct initial triangles. All these initial triangles form the initial mesh.
[0052] S5.2: For each point r that is not constructed into a triangle, find the triangle T closest to the point based on its KD tree index;
[0053] S5.3: Project point r onto the local plane of triangle T and calculate the perpendicular distance from point r to the plane of triangle T.
[0054] S5.4: Move point r along the normal by a distance d to obtain the projected point r′, and determine whether the projected point r′ is inside, outside, or on the edge of triangle T;
[0055] S5.5: Calculate the distance from the projected point r' to the three vertices A, B, and C of triangle T. If the distance is less than the set threshold, the projected point is considered to be near the vertex and no insertion is performed. Otherwise, the projected point is considered to be far from the vertex and the judgment is continued:
[0056] If the projection point falls on the edge of triangle T, the triangle is split into two adjacent sub-triangles whose vertices include the projection point r'; if the projection point r' falls inside the triangle, the triangle is split into three sub-triangles r'BC, Ar'C, and ABr'; if the projection point falls outside the triangle, the point on the edge of the triangle closest to the projection point is used as the split point, and it is split into two adjacent sub-triangles whose vertices include the split point; thus completing the update of the local topology;
[0057] S5.6: Use the Laplacian smoothing algorithm on the point cloud to adjust vertex positions to improve triangle shape and merge or split edges to optimize mesh resolution.
[0058] S5.7: Perform vertex merging on all vertices in the m sub-meshes obtained from the m point cloud subsets, and perform patch merging on all patches.
[0059] Furthermore, the S5.3 includes the following sub-steps:
[0060] (1) Calculate the normal vector n = (B–A) × (CA) of the plane where triangle T lies, where A, B, and C are the vertex vectors of the triangle;
[0061] (2) Normalize the normal vector n to obtain the normalized normal vector n normalize =(a,b,c):
[0062]
[0063] (3) The coordinate x of point r r 、y r 、z r Substitute d = -(ax r +by r +cz r ), we can get the perpendicular distance d from point r to the plane of triangle T.
[0064] Furthermore, the specific steps of determining whether the projection point r′ is located inside, outside, or on the edge of the triangle T in S5.4 are as follows:
[0065] Calculate the area S of the triangle ABC and the area S of the three sub-triangles with the projection point r′ as one of the vertices r′BC ,S Ar′C ,S ABr′, determine the relationship between the projection point r′ and triangle T using the following rules:
[0066] If the area of one of the sub-triangles is 0, the projection point is on the T side of the triangle;
[0067] If S r′BC +S Ar′C +S ABr′ =S ABC , then the projection point is inside triangle T;
[0068] Otherwise, the projection point r′ falls outside the triangle T. In this case, find the point on the edge of the triangle T that is closest to the projection point r′.
[0069] Furthermore, the specific steps of performing vertex merging in S5.7 are as follows:
[0070] Initialize an empty set to store the final vertex set and define a mapping function Map the vertices of all sub-meshes to a set of natural numbers; traverse each vertex of each sub-mesh and check whether there is a vertex in the final vertex set whose distance to the current vertex is less than the merge threshold ε. If so, map the current vertex to the index of the close vertex; if not, add the current vertex to the final vertex set and map it to the new index.
[0071] Furthermore, the specific steps of performing face merging in S5.7 are as follows:
[0072] Compare whether the natural numbers after mapping the three vertices of the triangle of the patch are different. If so, retain the patch, and calculate the normal vector of the plane where the triangle of the retained patch is located and the normal vectors of the three vertices of the triangle, and judge whether the two normal vectors are consistent. If not, the triangle needs to be flipped; when flipping, keep one of the vertices unchanged and swap the positions of the other two vertices to minimize the interference with the original topology and ensure that the normal vectors of all patches are consistent with the average normal vector of the surrounding area, thereby creating a topologically coherent surface.
[0073] The beneficial effects of the present invention are as follows:
[0074] The incremental mesh reconstruction method of the present invention not only solves the problem of computational resource limitations through point cloud segmentation and the introduction of overlapping regions, but also ensures the consistency and continuity of the processing results through the design of overlapping regions;
[0075] The incremental mesh reconstruction method of the present invention improves the processing efficiency and quality of large-scale point cloud data through adaptive preprocessing. Adaptive parameters obtained through density estimation enable dynamic adjustment of downsampling and normal estimation, ensuring the preservation of important geometric features while improving overall processing efficiency.
[0076] The incremental mesh reconstruction method of the present invention realizes efficient mesh reconstruction by combining efficient mesh indexing and splicing strategies; and realizes dynamic vertex merging and facet reconstruction by defining vertex mapping functions and distance thresholds. BRIEF DESCRIPTION OF THE DRAWINGS
[0077] Figure 1 This is a flowchart of the incremental mesh reconstruction method of this embodiment.
[0078] Figure 2 Schematic diagram of point cloud segmentation in this embodiment.
[0079] Figure 3 This is a diagram showing the implementation of point cloud segmentation in this embodiment.
[0080] Figure 4 This is an implementation diagram of the adaptive downsampling of this embodiment.
[0081] Figure 5 This is an implementation diagram of the adaptive normal estimation of this embodiment.
[0082] Figure 6 This is a flowchart of the incremental mesh reconstruction in step S5 of this embodiment.
[0083] Figure 7 This is an implementation diagram of the incremental reconstruction of this embodiment.
[0084] Figure 8 This is a schematic diagram of the target object after reconstruction in this embodiment. DETAILED DESCRIPTION
[0085] The present invention will be described in detail below with reference to the accompanying drawings and preferred embodiments, and the purpose and effects of the present invention will become more apparent. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention.
[0086] like Figure 1 As shown, the incremental grid reconstruction method based on adaptive parameters of this embodiment includes the following steps:
[0087] Step 1: Obtain point cloud data;
[0088] The point cloud data used in this embodiment is obtained by structured light. That is, a pre-prepared structured spectrum is projected onto the surface of the object. Cameras are placed on both sides of the structured light projector. The distance between the two cameras is set to b, and the camera shooting angles are set to α and β. The depth information depth is calculated using the following formula:
[0089]
[0090] The obtained point cloud data is then exported to PCD format and read using the PCL library.
[0091] Step 2: The point cloud P obtained in step 1 is linearly segmented based on the point index and divided into m subsets.
[0092] Among them, linear segmentation is to treat the point cloud as a linear sequence without considering the spatial position of the points. The number of points in the point cloud P is n, the overlap rate of adjacent subsets is k, the size of the overlapping part is overlap_size, and the size of each subset after segmentation is part_size. Then, for each point cloud subset p i , its starting index start_index=max(1,i*part_size-overlap_size), and its ending index end_index=min(n,(i+1)*part_size+overlap_size), where overlap_size represents the size of the overlapping part, and finally the subset point cloud p={p1,p2,p3,…,p m},like Figure 2 and Figure 3 As shown. Each subset p i satisfy:
[0093]
[0094] Step 3: Density estimation of the segmented point cloud subset; Step 3 specifically includes the following sub-steps:
[0095] S3.1: Calculate the point cloud subset p by the following formula i Point cloud density ρ i :
[0096]
[0097] Among them, N i is the number of points in the subset, V i is the bounding box volume of the subset;
[0098] S3.2: According to the point cloud density ρ i Dynamically adjust voxel size L i :
[0099]
[0100] Among them L max 、L min are the preset maximum and minimum voxels, ρ max , ρ min are the preset maximum and minimum density thresholds respectively.
[0101] Step 4: Downsample and estimate normals for each point cloud subset;
[0102] S4.1: For each non-empty voxel, find all the points that fall within this voxel, calculate the center of mass of each non-empty voxel, and construct these centers of mass into a new point cloud after downsampling (this is equivalent to replacing all the points in each non-empty voxel with the center of mass of each voxel); the result after downsampling is as follows Figure 4 shown.
[0103] Among them, the center of mass P of each non-empty voxel centroid =(X centroid ,Y centroid ,Z centroid ) is calculated as follows:
[0104]
[0105] Where num represents the number of all points in a non-empty voxel.
[0106] S4.2: Calculate the point cloud density ρ of the new point cloud by the following formula i :
[0107]
[0108] Among them, N j is the number of points in the new point cloud, V j is the bounding box volume of the new point cloud;
[0109] S4.3: Perform k-nearest neighbor search on the points in the new point cloud and calculate the number of neighbors K for each point j :
[0110]
[0111] Among them, K max , K min are the preset maximum and minimum number of K nearest neighbors respectively.
[0112] S4.4: According to the number of neighbors K of each point j , find the neighborhood points of each point, group these neighborhood points into a neighborhood point set, and calculate the centroid vector and covariance matrix of the neighborhood point set;
[0113]
[0114] Among them, p j Refers to the three-dimensional vector of the coordinates of the neighborhood points in the neighborhood point set;
[0115] Covariance matrix C p The calculation formula is as follows:
[0116]
[0117] C p Is a 3×3 symmetric matrix. The result after adaptive normal estimation is as follows Figure 5 shown.
[0118] Step 5: Use incremental method to construct triangular mesh for each point cloud subset. Figure 6 As shown in the figure, the incremental method is used to construct the triangular mesh as shown in the figure. Figure 5 、 7 The schematic diagram and implementation diagram of forming a triangular mesh of the point cloud shown. This method gradually adds points to the existing mesh and dynamically updates the mesh structure. Figure 6 The flowchart details the main steps: initialization, point insertion, local reconstruction and mesh optimization.
[0119] Step 5 specifically includes the following sub-steps:
[0120] S5.1: Perform eigenvalue decomposition on the covariance matrix to obtain the eigenvector with the smallest eigenvalue, which is used as the normal vector for this point. Find points with the same normal direction to form coplanar points and construct initial triangles. All these initial triangles form the initial mesh.
[0121] S5.2: For each point r that is not constructed into a triangle, find the triangle T closest to the point based on its KD tree index;
[0122] S5.3: Project point r onto the local plane where triangle T is located, and calculate the perpendicular distance between point r and the plane of triangle T. S5.3 specifically includes the following substeps:
[0123] (1) Calculate the normal vector n = (B–A) × (CA) of the plane where triangle T lies, where A, B, and C are the vertex vectors of the triangle;
[0124] (2) Normalize the normal vector n to obtain the normalized normal vector n normalize =(a,b,c):
[0125]
[0126] (3) The coordinate x of point r r 、yr 、z r Substitute d = -(ax r +by r +cz r ), we can get the perpendicular distance d from point r to the plane of triangle T.
[0127] S5.4: Move point r along the normal by a distance d to obtain the projected point r′; then calculate the area S of the triangle. ABC and the area S of the three sub-triangles with the projection point r′ as one of the vertices r′BC ,S Ar′C ,S ABr′ , determine the relationship between the projection point r′ and triangle T using the following rules:
[0128] If the area of one of the sub-triangles is 0, the projection point is on the T side of the triangle;
[0129] If S r′BC +S Ar′C +S ABr′ =S ABC , then the projection point is inside triangle T;
[0130] Otherwise, the projection point r′ falls outside the triangle T. In this case, find the point on the edge of the triangle T that is closest to the projection point r′.
[0131] S5.5: Calculate the distance from the projected point r' to the three vertices A, B, and C of triangle T. If the distance is less than the set threshold, the projected point is considered to be near the vertex and no insertion is performed. Otherwise, the projected point is considered to be far from the vertex and the judgment is continued:
[0132] If the projection point falls on the edge of triangle T, the triangle is split into two adjacent sub-triangles whose vertices include the projection point r'; if the projection point r' falls inside the triangle, the triangle is split into three sub-triangles r'BC, Ar'C, and ABr'; if the projection point falls outside the triangle, the point on the edge of the triangle closest to the projection point is used as the split point, and it is split into two adjacent sub-triangles whose vertices include the split point; thus completing the update of the local topology;
[0133] S5.6: Use the Laplacian smoothing algorithm on the point cloud to adjust vertex positions to improve triangle shape and merge or split edges to optimize mesh resolution:
[0134] S5.7: For m point cloud subsets, the m subgrids {M1, M2, M3, ..., M m} are used to merge all vertices and all faces; i =(V i , Fi )V i represents the vertex set of the i-th sub-mesh, F i Represents the face set of the i-th sub-mesh.
[0135] The specific steps of vertex merging are as follows:
[0136] Initialize an empty set to store the final vertex set and define a mapping function Map the vertices of all submeshes to a set of natural numbers; traverse each vertex of each submesh and check whether there is a vertex in the final vertex set whose distance to the current vertex is less than the merge threshold ε. If so, map the current vertex to the index of the close vertex; if not, add the current vertex to the final vertex set and map it to the new index; the merge threshold ε usually takes a value between 0.0001 and 0.01 in the standardized [0,1] range model.
[0137] The specific steps of patch merging are as follows:
[0138] Compare the natural numbers of the three vertices of the triangle of the patch after mapping to see if they are different. If so, retain the patch, and calculate the normal vector of the plane where the triangle of the retained patch is located and the normal vectors of the three vertices of the triangle, and determine whether the two normal vectors are consistent. If not, flip the triangle; when flipping, keep one of the vertices unchanged and swap the positions of the other two vertices to minimize the interference with the original topology. This ensures that the normal vectors of all patches are consistent with the average normal vector of the surrounding area, thus creating a topologically coherent surface. Figure 7 This is an implementation diagram of the incremental reconstruction of this embodiment. Figure 8 is the image after reconstructing the target object.
[0139] Those skilled in the art will understand that the foregoing descriptions are merely preferred embodiments of the invention and are not intended to limit the invention. Although the invention has been described in detail with reference to the foregoing examples, those skilled in the art will still be able to modify the technical solutions described in the foregoing examples or substitute equivalents for some of the technical features therein. Any modifications, equivalent substitutions, etc. made within the spirit and principles of the invention shall be included within the scope of protection of the invention.
Claims
1. An incremental grid reconstruction method based on adaptive parameters, characterized in that: The steps include: Step 1: Obtain point cloud data; Step 2: The point cloud P obtained in step 1 is linearly segmented based on the point index into m subsets, and adjacent subsets have overlapping areas; Step 3: Density estimation of the segmented point cloud subset; Step 4: Downsample and estimate the normals of each point cloud subset, specifically including: for each non-empty voxel, find all the points that fall within this voxel, calculate the center of mass of each non-empty voxel, and construct these centroids into a new downsampled point cloud; calculate the point cloud density of the new point cloud, and then perform a k-nearest neighbor search on the points in the new point cloud to calculate the number of neighbors of each point; finally, find the neighboring points of each point based on the number of neighbors of each point, group these neighboring points into a neighborhood point set, and calculate the center of mass vector and covariance matrix of the neighborhood point set; Step 5: Construct a triangular mesh for each point cloud subset using an incremental method; Step 5 includes the following sub-steps: S5.1: Perform eigenvalue decomposition on the covariance matrix to obtain the eigenvector with the smallest eigenvalue, which is used as the normal vector for this point. Find points with the same normal direction to form coplanar points and construct initial triangles. All these initial triangles form the initial mesh. S5.2: For each point r that is not constructed into a triangle, find the triangle T closest to the point based on its KD tree index; S5.3: Project point r onto the local plane of triangle T and calculate the perpendicular distance from point r to the plane of triangle T. S5.4: Move point r along the normal line by a distance d to obtain the projected point , and determine the projection point Is it inside, outside, or on the edge of triangle T? S5.5: Compute Projection Points The distance to the three vertices A, B, and C of triangle T. If the distance is less than the set threshold, the projection point is considered to be near the vertex and no insertion is performed; otherwise, the projection point is considered to be far away from the vertex and the judgment continues: If the projected point falls on the edge of triangle T, split the triangle into vertices containing the projected point Two adjacent sub-triangles within; if the projection point If it falls inside the triangle, the triangle is split into BC, 、 Three sub-triangles; if the projection point falls outside the triangle, the point on the edge of the triangle closest to the projection point is used as the split point, and it is split into two adjacent sub-triangles containing the split point as one of the vertices; thus completing the update of the local topology; S5.6: Use the Laplacian smoothing algorithm on the point cloud to adjust vertex positions to improve triangle shape and merge or split edges to optimize mesh resolution. S5.7: Perform vertex merging on all vertices in the m sub-meshes obtained from the m point cloud subsets, and perform patch merging on all patches.
2. The incremental grid reconstruction method based on adaptive parameters according to claim 1, characterized in that: In step 1, structured light is projected onto the surface of the object, and cameras are placed on both sides of the structured light projector. The distance between the two cameras is set to b, and the camera shooting angles are set to α and β. The depth information depth is calculated by the following formula: ; The obtained point cloud data is then exported to PCD format and read using the PCL library.
3. The incremental grid reconstruction method based on adaptive parameters according to claim 2, characterized in that: In the step 2, the i-th point cloud subset after segmentation The calculation formula for the starting index start_index and the ending index end_index is as follows: start_index = max(1,i*part_size - overlap_size) end_index = min(n,(i+1)* part_size + overlap_size) Among them, part_size represents the size of each subset after segmentation, overlap_size represents the size of the overlapping part, and n is the number of points in the point cloud P; Each subset satisfy: = { } Where k is the overlap ratio of adjacent subsets.
4. The incremental mesh reconstruction method based on adaptive parameters according to claim 3, characterized in that: The step three includes the following sub-steps: S3.1: Calculate the point cloud subset by Point cloud density : ; in, is the number of points in the subset, is the bounding box volume of the subset; S3.2: Based on point cloud density Dynamic voxel resizing : ; in 、 are the preset maximum and minimum voxels, 、 are the preset maximum and minimum density thresholds respectively.
5. The incremental mesh reconstruction method based on adaptive parameters according to claim 4, characterized in that: The step 4 includes the following sub-steps: S4.1: For each non-empty voxel, find all points that fall within this voxel, calculate the centroid of each non-empty voxel, and construct these centroids into a new downsampled point cloud; where the centroid of each non-empty voxel is The calculation formula is as follows: ; Where num represents the number of all points in the non-empty voxel; S4.2: Calculate the point cloud density of the new point cloud by the following formula : ; in, is the number of points in the new point cloud, is the bounding box volume of the new point cloud; S4.3: Perform k-nearest neighbor search on the points in the new point cloud and calculate the number of neighbors for each point : ; in, 、 are the preset maximum and minimum number of K nearest neighbors respectively; S4.4: According to the number of neighbors of each point , find the neighborhood points of each point, group these neighborhood points into a neighborhood point set, and calculate the centroid vector and covariance matrix of the neighborhood point set ; centroid = ( ) * ,j = 1~ ; in, Refers to the three-dimensional vector of the coordinates of the neighborhood points in the neighborhood point set; Covariance matrix The calculation formula is as follows: 。 6. The incremental mesh reconstruction method based on adaptive parameters according to claim 5, characterized in that: The S5.3 includes the following sub-steps: (1) Calculate the normal vector of the plane where triangle T is located , where A, B, and C are the vertex vectors of the triangle; (2) The normal vector Normalize to get the normalized normal vector : = ; (3) The coordinates of point r 、 Substitute d = -(a + b + c ), we can get the perpendicular distance d from point r to the plane of triangle T.
7. The incremental grid reconstruction method based on adaptive parameters according to claim 6, characterized in that: Determining the projection point in S5.4 The specific steps to determine whether a triangle is inside, outside, or on the edge of triangle T are as follows: Calculating the area of a triangle and the projected point The area of the three sub-triangles at one of the vertices , , , determine the projection point by the following rules Relationship with triangle T: If the area of one of the sub-triangles is 0, the projection point is on the T side of the triangle; if + + = , then the projection point is inside triangle T; Otherwise, the projected point Falling outside triangle T, find the distance projection point The point on the nearest edge of triangle T.
8. The incremental mesh reconstruction method based on adaptive parameters according to claim 7, characterized in that: The specific steps of performing vertex merging in S5.7 are as follows: Initialize an empty set to store the final vertex set and define a mapping function , map the vertices of all sub-grids to a set of natural numbers; traverse each vertex of each sub-grid and check whether there is a vertex in the final vertex set that is less than the merge threshold. If the vertex exists, the current vertex is mapped to the index of the close vertex; if it does not exist, the current vertex is added to the final vertex set stored and mapped to the new index.
9. The incremental mesh reconstruction method based on adaptive parameters according to claim 8, characterized in that: The specific steps of performing face merging in S5.7 are as follows: Compare whether the natural numbers after mapping the three vertices of the triangle of the patch are different. If so, retain the patch, and calculate the normal vector of the plane where the triangle of the retained patch is located and the normal vectors of the three vertices of the triangle, and judge whether the two normal vectors are consistent. If not, the triangle needs to be flipped; when flipping, keep one of the vertices unchanged and swap the positions of the other two vertices to minimize the interference with the original topology and ensure that the normal vectors of all patches are consistent with the average normal vector of the surrounding area, thereby creating a topologically coherent surface.
Citation Information
Patent Citations
Surface incremental topology reconstruction method based on mass point cloud
CN107610228A
Incremental three-dimensional reconstruction method based on fused voxel octree and grid rendering
CN118229885A