Article fragment point cloud region division method and device

By filtering and optimizing the boundary point set in point cloud data and forming regional boundaries, the problem of low accuracy of point cloud data division and registration in the existing technology is solved, and the restoration effect of cultural relics restoration is improved.

CN119131465APending Publication Date: 2024-12-13GUIZHOU NORMAL UNIVERSITY
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202411127332.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-16
Publication Date
2024-12-13

AI Technical Summary

Technical Problem

The prior art is difficult to effectively divide and register point cloud data of item fragments, resulting in low repair accuracy and the inability to accurately identify fracture surface features, affecting the effect of cultural relics restoration.

Method used

Determine the adjacent points in the point cloud by preset distance, filter the initial boundary points, optimize the set of boundary points, form regional boundaries, and divide multiple areas, each area corresponding to one face of the item fragments.

Benefits of technology

The area division accuracy of point cloud data is improved, and the accuracy of feature extraction and registration of fracture surfaces is enhanced, helping to achieve better cultural relics restoration effects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119131465A_ABST
    Figure CN119131465A_ABST
Patent Text Reader

Abstract

The invention discloses a point cloud region division method and device for an article fragment, and the method comprises the steps: taking a preset first distance as a radius, and determining adjacent points of all coordinate points in a fragment point cloud of the article fragment; according to the distribution characteristics of the adjacent points corresponding to the coordinate points, initial boundary points are determined in the coordinate points, and an initial boundary point set is formed; optimizing the initial boundary point set to obtain a boundary point set; the boundary points in the boundary point set form a plurality of region boundaries in the fragment point cloud, the region boundaries divide the fragment point cloud into a plurality of regions, and each region corresponds to one surface of the article fragment. According to the method and the device, region division of the fragment point cloud of the obtained object fragments is realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of point cloud data processing, and specifically relates to a method and device for dividing point cloud regions of object fragments. Background Art

[0002] With the development of science and technology, when repairing broken cultural relics, we can obtain point clouds of each fragment by collecting point clouds of the cultural relic fragments, and then we can extract features from the areas corresponding to the fracture surfaces of the fragments in the point clouds of each fragment. We can then align the fragment point clouds according to the fracture surface features to achieve splicing of the three-dimensional model of the cultural relic fragments, so as to help restore cultural relics in the real world.

[0003] However, in reality, the edges of the various faces of the fragments, including the fractured faces, are not very clear, and even the edges of the faces of some fragments that have been broken for a long time have been damaged. Therefore, the boundaries of the regions corresponding to the faces of the fragments in the collected fragment point cloud are not very clear, and even multiple faces are recognized as one face. This greatly affects the feature extraction of the region corresponding to the fractured face in the fragment point cloud, and also makes the accuracy of the fragment point cloud registration too low, which cannot be very helpful for the restoration of cultural relics in the real world.

[0004] Therefore, how to divide the point cloud of object fragments into regions is a problem that needs to be solved urgently. Summary of the invention

[0005] The purpose of this application is to divide the fragment point cloud obtained by obtaining object fragments into regions.

[0006] Other features and advantages of the present application will become apparent from the following detailed description, or may be learned in part by the practice of the present application.

[0007] According to one embodiment of the present application, the present application provides a method for dividing point cloud regions of object fragments, the method comprising:

[0008] Taking a preset first distance as a radius, determining adjacent points of each coordinate point in the fragment point cloud of the object fragment;

[0009] According to the distribution characteristics of the neighboring points corresponding to each of the coordinate points, initial boundary points are determined in each of the coordinate points to form an initial boundary point set;

[0010] Optimizing the initial boundary point set to obtain a boundary point set;

[0011] The boundary points in the boundary point set form a plurality of region boundaries in the fragment point cloud, and the region boundaries divide the fragment point cloud into a plurality of regions, each region corresponding to a face of the object fragment.

[0012] According to an embodiment of the present application, determining an initial boundary point in each of the coordinate points according to distribution characteristics of neighboring points corresponding to each of the coordinate points includes:

[0013] For each of the coordinate points, two adjacent points with the shortest distance from the coordinate point and not in the same straight line as the coordinate point are selected, and a surface is fitted with the coordinate point to obtain a reference plane;

[0014] A neighboring point whose distance to the reference plane is less than a first distance threshold is taken as a target point. If the percentage of the number of the target points in the neighboring points is less than a screening threshold, the coordinate point is taken as an initial boundary point.

[0015] According to an embodiment of the present application, the initial boundary point set is optimized to obtain a boundary point set, including:

[0016] Randomly select one of the initial boundary points as a seed point, and use a preset second distance as a radius to determine neighboring points of the seed point in the initial boundary point set;

[0017] Repeatedly taking the newly obtained neighboring points as new seed points, and determining neighboring points of the new seed points from the non-seed points in the initial boundary point set, until the seed point has no neighboring points and the seed points form a cluster set;

[0018] Continue to randomly select an initial boundary point from the non-seed points in the initial boundary point set as a seed point to form a new cluster set until there are no non-seed points in the initial boundary point set and the initial boundary point set is divided into a plurality of cluster sets;

[0019] Cluster sets containing initial boundary points whose number is greater than a first number threshold are aggregated to form a boundary point set, wherein the initial boundary points in the boundary point set are all used as boundary points.

[0020] According to an embodiment of the present application, after the initial boundary set is divided into a plurality of cluster sets, the method further includes:

[0021] A cluster set containing initial boundary points whose number is greater than a second number threshold and less than or equal to a first number threshold is used as a candidate cluster set, wherein the first number threshold is greater than the second number threshold;

[0022] For each of the candidate cluster sets, if the minimum distance between the centroid of the candidate cluster set and the boundary point is less than a second distance threshold, at least one coordinate point between the two coordinate points closest to the candidate cluster set and the boundary point set is taken as a boundary point, and the candidate cluster set is added to the boundary point set.

[0023] According to an embodiment of the present application, taking at least one coordinate point between two coordinate points closest to the candidate cluster set and the boundary point set as a boundary point includes:

[0024] The two coordinate points closest to the candidate cluster set and the boundary point set are respectively used as the starting point and the end point;

[0025] Taking the starting point as a vertex and the vector between the starting point and the end point as an angle bisector to construct an included angle of a preset angle, and taking the vertex as a center and the second distance as a radius to determine neighboring points of the vertex among non-boundary points;

[0026] The neighboring point within the angle and with the smallest projection distance on the vector is taken as a boundary point, and the boundary point is taken as a new vertex to continue searching for the next coordinate point as a vertex until the neighboring points of the new vertex include the end point.

[0027] According to an embodiment of the present application, a method for further optimizing a boundary point set after obtaining the boundary point set includes:

[0028] In the boundary point set, a boundary point is randomly selected as a first-level selected point, and a predetermined third distance is used as a radius, and a neighboring point of the first-level selected point is determined in the boundary point set as a second-level selected point, and the first-level selected point is connected to the second-level selected point;

[0029] Randomly select a first-level or second-level selected point, determine the neighboring point of the second-level selected point among the non-selected points in the boundary point set as the next-level selected point, and the second-level selected point is connected to the next-level selected point;

[0030] For the i-level selected points, the i+1-level selected points are determined from the non-selected points in the boundary point set, and the i-level selected points are connected to the i+1-level selected points, where i is a natural number greater than 2; wherein,

[0031] When the multiple selected points have the same neighboring points, the neighboring points belong to the selected points with the closest distance; the selected points of each level can only be connected once by the selected points of the previous level, and the secondary selected points can be connected by the selected points of the lower level. If i is greater than the level threshold, the i-level selected point can be connected to the secondary selected point;

[0032] Taking the first-level selected points as the starting point and the end point, at least one initial closed-loop circuit is formed between the selected points of each level, and the initial closed-loop circuit whose path length is greater than the length threshold is retained as the closed-loop circuit, and only the boundary points constituting the closed-loop circuit are retained in the boundary point set.

[0033] According to an embodiment of the present application, the boundary points in the boundary point set form a plurality of area boundaries in the fragment point cloud, including:

[0034] With each boundary point as the center and a preset fourth distance as the radius, adjacent points determined in the non-boundary point cloud are added to the boundary point set, and each boundary point forms a plurality of area boundaries in the fragment point cloud.

[0035] According to an embodiment of the present application, the fragment point cloud is divided into a plurality of regions according to the region boundaries, including:

[0036] Randomly select a coordinate point from the non-boundary points as the center point, use a preset fifth distance as the radius, and determine neighboring points of the center point from the non-boundary points;

[0037] Repeatedly taking the newly obtained neighboring points as the center point, determining the neighboring points of the center point among the coordinate points that are not boundary points and the center point, until the neighboring points of the center point are only boundary points, and the position of the center point forms an area;

[0038] Continue to arbitrarily select a coordinate point from the coordinate points that are not boundary points and non-center points as the center point to form a new area, until the fragment point cloud only has the center point and boundary points, and the fragment point cloud is divided into multiple areas.

[0039] According to an embodiment of the present application, after the fragment point cloud is divided into a plurality of regions, the region boundaries are divided, including:

[0040] Taking a preset sixth distance as a radius, determining neighboring points of each of the boundary points among non-boundary points;

[0041] According to the positions of the neighboring points of the boundary point, determining the area containing the most neighboring points of the boundary point as the target area;

[0042] The boundary points are added to the target area.

[0043] According to one embodiment of the present application, the present application provides a device for dividing a point cloud region of an object fragment, the device comprising:

[0044] A determination module is configured to determine neighboring points of each coordinate point in the fragment point cloud of the object fragment with a preset first distance as a radius;

[0045] A first screening module is configured to determine initial boundary points from each of the coordinate points according to distribution characteristics of neighboring points corresponding to each of the coordinate points to form an initial boundary point set;

[0046] A second screening module is configured to optimize the initial boundary point set to obtain a boundary point set;

[0047] The division module is configured so that the boundary points in the boundary point set form a plurality of area boundaries in the fragment point cloud, and the area boundaries divide the fragment point cloud into a plurality of areas, each area corresponding to a face of the object fragment.

[0048] In the present application, firstly, the neighboring points of each coordinate point in the fragment point cloud of the object fragment are determined with the preset first distance as the radius, and then the initial boundary points are determined in each coordinate point according to the distribution characteristics of the corresponding neighboring points of each coordinate point to form an initial boundary point set. Since the boundaries corresponding to each region are on each edge of the fragment point cloud, the spatial distribution of their neighboring points has different characteristics relative to the coordinate points located on the surface. Then, based on the spatial distribution characteristics of the neighboring points corresponding to each coordinate point, it can be preliminarily determined whether the coordinate point is an initial boundary point. Then, the initial boundary point set is optimized to obtain a boundary point set. Finally, the boundary points in the boundary point set form multiple regional boundaries in the fragment point cloud. The regional boundaries divide the fragment point cloud into multiple regions, and each region corresponds to a surface of the object fragment. Then, the regional division of the fragment point cloud of the obtained object fragment is realized.

[0049] Other features and advantages of the present application will become apparent from the following detailed description, or may be learned in part by the practice of the present application.

[0050] It should be understood that the foregoing general description and the following detailed description are exemplary only and are not restrictive of the present application. BRIEF DESCRIPTION OF THE DRAWINGS

[0051] The drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present application, and together with the specification are used to explain the principles of the present application. Obviously, the drawings described below are only some embodiments of the present application, and for ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0052] Figure 1 A flow chart of a method for dividing point cloud regions of object fragments according to an embodiment of the present application is shown.

[0053] Figure 2 A flow chart of determining initial boundary points at each coordinate point according to distribution characteristics of corresponding neighboring points of each coordinate point according to one embodiment of the present application is shown.

[0054] Figure 3 A flow chart of optimizing an initial boundary point set to obtain a boundary point set according to an embodiment of the present application is shown.

[0055] Figure 4 A schematic diagram showing a region boundary formed by boundaries in a fragment point cloud according to an embodiment of the present application.

[0056] Figure 5 A flowchart is shown of determining to integrate the selected candidate cluster sets into the boundary point set after the initial boundary set is divided into multiple cluster sets according to an embodiment of the present application.

[0057] Figure 6 A schematic diagram of connecting a candidate cluster set and a boundary point set according to an embodiment of the present application is shown.

[0058] Figure 7 A flowchart of using at least one coordinate point between two coordinate points that are closest to a candidate cluster set and a boundary point set as a boundary point according to an embodiment of the present application is shown.

[0059] Figure 8 A flow chart of a method for further optimizing a boundary point set after obtaining the boundary point set according to an embodiment of the present application is shown.

[0060] FIG. 9( a ) shows a schematic diagram of a boundary set before simplification according to an embodiment of the present application.

[0061] FIG9( b ) shows a simplified schematic diagram of a boundary set according to an embodiment of the present application.

[0062] Fig.10 A flowchart of dividing a fragmented point cloud into multiple regions according to region boundaries according to an embodiment of the present application is shown.

[0063] Fig.11 A flowchart of dividing area boundaries according to an embodiment of the present application is shown. DETAILED DESCRIPTION

[0064] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this application will be more comprehensive and complete and fully convey the concept of the example embodiments to those skilled in the art.

[0065] In addition, described feature, structure or characteristic can be combined in one or more embodiments in any suitable manner. In the following description, many specific details are provided to provide a full understanding of the embodiments of the present application. However, those skilled in the art will appreciate that the technical scheme of the present application can be put into practice without one or more of the specific details, or other methods, components, devices, steps, etc. can be adopted. In other cases, known methods, devices, realizations or operations are not shown or described in detail to avoid blurring the various aspects of the application.

[0066] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities may be implemented in software form, or in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices.

[0067] The flowcharts shown in the accompanying drawings are only exemplary and do not necessarily include all the contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps can be decomposed, and some operations / steps can be combined or partially combined, so the actual execution order may change according to actual conditions.

[0068] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program with a predetermined function, and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.

[0069] See also Figure 1 , Figure 1 A flowchart of a method for dividing a point cloud region of an object fragment according to an embodiment of the present application is shown. The present application embodiment provides a method for dividing a point cloud region of an object fragment, comprising:

[0070] Step S110, determining the neighboring points of each coordinate point in the fragment point cloud of the object fragment with a preset first distance as the radius;

[0071] Step S120, determining initial boundary points at each coordinate point according to the distribution characteristics of the neighboring points corresponding to each coordinate point, to form an initial boundary point set;

[0072] Step S130, optimizing the initial boundary point set to obtain a boundary point set;

[0073] Step S140: the boundary points in the boundary point set form a plurality of region boundaries in the fragment point cloud. The region boundaries divide the fragment point cloud into a plurality of regions, each region corresponding to a face of the object fragment.

[0074] The above four steps are described in detail below.

[0075] In step S110, point cloud collection is first performed on the object fragments. Point cloud collection refers to selecting points on the surface of the object fragments, taking an arbitrary point as the origin, and collecting the coordinate information of each selected point distributed on the surface of the object fragments. Then, based on the coordinate information of the above selected points, these selected points are materialized in three-dimensional space. The materialized selected points are called coordinate points. All coordinate points constitute a fragment point cloud. The shape of the fragment point cloud is consistent with the shape of the object fragment, or is proportionally reduced or enlarged, which is not limited here.

[0076] After the fragment point cloud is obtained, the neighboring points of each coordinate point in the fragment point cloud are determined with the preset first distance as the radius.

[0077] In step S120, since the boundaries between the faces of the fragments of the objects are on the edges of the fragments of the objects, similarly, the corresponding boundary points in the fragment point cloud are also on the edges of the fragment point cloud. This means that the spatial distribution of the neighboring points of the boundary points has different characteristics relative to the coordinate points on the surface. The neighboring points of the boundary points are mostly not in the same plane as the boundary points, while the neighboring points of the coordinate points on the plane are mostly in the same plane as the coordinate points, or in the vicinity of a plane. Therefore, based on the distribution characteristics of the boundary points and the non-boundary neighboring points, the coordinate points that meet the distribution characteristics of the neighboring points of the boundary points are selected from each coordinate point as the initial boundary points. Because the coordinate points selected in this way may not be accurate enough, these points are first used as initial boundary points and then used as boundary points after optimization.

[0078] See also Figure 2 , Figure 2 A flowchart of determining an initial boundary point at each coordinate point according to the distribution characteristics of the neighboring points corresponding to each coordinate point according to an embodiment of the present application is shown. The embodiment of the present application provides a step S120 of determining an initial boundary point at each coordinate point according to the distribution characteristics of the neighboring points corresponding to each coordinate point, including:

[0079] Step S201, for each coordinate point, select two adjacent points that are the shortest distance from the coordinate point and are not in the same straight line with the coordinate point, and perform surface fitting with the coordinate point to obtain a reference plane;

[0080] Step S202: take the neighboring points whose distance to the reference plane is less than the first distance threshold as target points. If the percentage of the number of target points in the neighboring points is less than the screening threshold, take the coordinate point as the initial boundary point.

[0081] The above two steps are described in detail below.

[0082] In step S201, for each coordinate point in the fragment point cloud, two neighboring points with the smallest distance to the coordinate point and which are no longer on the same straight line with the coordinate point are selected. Only when the coordinate point and these two neighboring points are not on the same straight line, the three points have a uniquely determined plane. The surface is fitted according to the coordinate point and its two neighboring points to obtain the reference plane.

[0083] In step S202, the neighboring points whose distance to the reference plane is less than the first distance threshold are taken as target points. If the percentage of the number of target points in the neighboring points is less than the screening threshold, it means that the reference plane is far away from many coordinate points. This is the distribution feature of the neighboring points of the boundary point, so the coordinate point is taken as the initial boundary point.

[0084] In another embodiment, let P = {p1, ..., p i ,…,p m} is a point set formed by coordinate points. In order to detect the boundary points, firstly, each coordinate point is taken as the center and the first distance is used as the radius to determine the neighboring points of each coordinate point, so that the coordinate point and its neighboring points are connected, and then the fragment point cloud is constructed into an unweighted directed graph. In view of the uneven density of the fragment point cloud, the size of the first distance needs to be considered when adding edges to the unweighted directed graph. The calculation method of DIS1(P), that is, the first distance, is:

[0085]

[0086] Among them, |P| represents the total number of points in the point set P, N k (p) represents the set of k neighboring points of the coordinate point p. Based on the above method, we represent P as an unweighted directed graph G = (V, E). Where V represents the vertex set, corresponding to the coordinate point p∈P in the point set P; E represents the edge set, Indicates the adjacency relationship between coordinate points.

[0087] Based on the constructed unweighted directed graph, the centroid Z of the coordinate point p and its neighboring points is first calculated according to the following formula.

[0088]

[0089] Then, the eigenvalues ​​of the spatial distribution of the neighboring points of the coordinate point p are calculated based on the matrix Gi.

[0090]

[0091] Using Giv j =λ j v j Perform feature matrix decomposition to obtain eigenvalue λ j (λ0, λ1, λ2) and the eigenvector v j .

[0092] Use the matrix Gi to calculate each coordinate point p i and the eigenvalues ​​λ0, λ1, λ2 of its neighboring points, and are arranged in ascending order. These eigenvalues ​​reflect, to a certain extent, the degree of skewness of the ellipsoid surrounding these coordinate points. In short, if λ1≈λ2 and λ0≈0, then the coordinate point p i is considered to be located in a flat region; if λ0≈λ1 and λ0+λ1≈λ2, then the coordinate point p i is considered to be located on the fold between two planes; if 2λ1≈λ2, then the coordinate point p i is considered to be located at the edge of the plane; and when λ0≈λ1≈λ2, the coordinate point p i The largest feature is shown, which can be regarded as the initial boundary point of the fragment point cloud. Therefore, by calculating the corner penalty value (ω co (p)) to find the initial boundary points:

[0093]

[0094] When co (p i ) approaches 1, the coordinate point may be located in the flat area, so by setting the threshold ω max , we can get the initial boundary point set PF = {p′1, ..., p′ i , ..., p′ n}, for any coordinate point p′ in PF i , all satisfy ω co (p′ i )≤ω max .

[0095] In step S130, since noise points are inevitably present in the initial boundary points, which will affect the accuracy of determining the boundary points, it is necessary to optimize and denoise the initial boundary points to maximize the accuracy of determining the boundary points.

[0096] See also Figure 3 , Figure 3 A flowchart of optimizing the initial boundary point set to obtain the boundary point set according to an embodiment of the present application is shown. An embodiment of the present application provides a step S130 of optimizing the initial boundary point set to obtain the boundary point set, including:

[0097] Step S301, randomly selecting an initial boundary point as a seed point, using a preset second distance as a radius, and determining neighboring points of the seed point in the initial boundary point set;

[0098] Step S302, repeatedly using the newly obtained neighboring points as new seed points, and determining neighboring points of the new seed points from the non-seed points in the initial boundary point set, until the seed point has no neighboring points and the seed points form a cluster set;

[0099] Step S303, continue to select any initial boundary point from the non-seed points in the initial boundary point set as a seed point to form a new cluster set, until there are no non-seed points in the initial boundary point set, and the initial boundary point set is divided into multiple cluster sets;

[0100] Step S304: clustering the clusters containing initial boundary points greater than a first quantity threshold to form a boundary point set, wherein the initial boundary points in the boundary point set are all used as boundary points.

[0101] The above four steps are described in detail below.

[0102] In step S301, an initial boundary point is arbitrarily selected as a seed point, and a preset second distance is used as a radius to determine the neighboring points of the seed point in the initial boundary point set. The first distance and the second distance may be the same or different. In one embodiment of the present application, the second distance is the same as the first distance, which is the average value of the distance between each coordinate point and its nearest neighboring point, that is, the neighboring distance between each coordinate point and its nearest neighboring point is first calculated, and the average value of all the neighboring distances is taken as the second distance.

[0103] In step S302, the newly obtained neighboring points are repeatedly used as new seed points, and the neighboring points of the new seed points are determined among the non-seed points in the initial boundary point set until the seed point has no neighboring points, and all the seed points form a cluster set. It should be clarified that in the embodiment of the present application, the neighboring points of the seed points are determined with the second distance as the radius.

[0104] In an embodiment of the present application, the neighboring points of the seed point to be obtained continue to be used as new seed points, and then the neighboring points of the new seed point continue to be obtained with the second distance as the radius, and then the newly obtained neighboring points continue to be used as seed points, and the neighboring points of the new seed point are determined until the seed point has no neighboring points. Various sub-points form a new cluster set to achieve the growth of the seed point, or to cluster some coordinates that are close to each other.

[0105] In step S303, after each clustering is completed, an initial boundary point is randomly selected from the non-seed points in the initial boundary point set as a seed point to form a cluster set through the method of step S202, until there are no non-seed points in the initial boundary point set, and the initial boundary point set is divided into multiple cluster sets.

[0106] In step S304, clusters containing initial boundary points whose number is greater than a first number threshold are aggregated to form a boundary point set, and the initial boundary points in the boundary point set become boundary points.

[0107] In the above manner, the initial boundary points that are closer and more clustered in the initial boundary are updated to boundary points. This is because the boundary points are on the edges of the fragmented point cloud, that is, the boundary points should be relatively continuous and relatively clustered. If they are incoherent or discontinuous, it means that the initial boundary points are noise points. Therefore, only cluster sets with a number greater than the first number threshold are retained as boundary points, so that the boundary points are more accurate.

[0108] In another embodiment of the present application, considering that the boundaries of each surface of the object fragment are missing, that is, the boundaries are discontinuous, this causes some initial boundary points that are originally boundary points to be abandoned when determining the boundary points of the fragment points, making the region boundary incomplete, as shown in FIG. Figure 4 A schematic diagram of a region boundary formed by the boundary in the fragment point cloud according to an embodiment of the present application is shown. The region boundary refers to the coordinate points at the intersection of each surface of the corresponding object fragment in the fragment point cloud, which is used to form the boundary corresponding to the division of the fragment point cloud region. Each region of the fragment point cloud corresponds to a surface of the broken object. It is also called the "edge" in the fragment point cloud. The embodiment of the present application repairs the broken region boundary by the following technical means.

[0109] See also Figure 5 , Figure 5 A flowchart of screening candidate cluster sets to be integrated into a boundary point set after an initial boundary set is divided into multiple cluster sets according to an embodiment of the present application is shown. The embodiment of the present application provides a step of screening candidate cluster sets to be integrated into a boundary point set after an initial boundary set is divided into multiple cluster sets, including:

[0110] Step S401, taking a cluster set containing initial boundary points whose number is greater than a second number threshold and less than or equal to a first number threshold as a candidate cluster set, where the first number threshold is greater than the second number threshold;

[0111] Step S402: for each candidate cluster set, if the minimum distance between the centroid of the candidate cluster set and the boundary point is less than a second distance threshold, at least one coordinate point between the two coordinate points closest to the candidate cluster set and the boundary point set is used as a boundary point, and the candidate cluster set is added to the boundary point set.

[0112] The above two steps are described in detail below.

[0113] In step S401, a cluster set containing initial boundary points whose number is greater than a second number threshold and less than or equal to a first number threshold is selected as a candidate cluster set, where the first number threshold is greater than the second number threshold; this part of the cluster sets includes boundary points of the broken part of the regional boundary.

[0114] In step S402, even if the broken part of the regional boundary is separated from the main part of the regional boundary represented by the boundary point set, the distance between the broken part of the regional boundary and the main part of the regional boundary represented by the boundary point set should be small. Therefore, if the minimum distance between the centroid of the candidate cluster set and the boundary point is less than the second distance threshold, that is, the distance between the candidate cluster set and the main part of the regional boundary represented by the boundary point set is small, the candidate cluster set should be the boundary point of the broken part of the regional boundary. Then, at least one coordinate point between the two coordinate points closest to the candidate cluster set and the boundary point set is used as a boundary point, and the candidate cluster set is added to the boundary point set. In order to connect the broken part of the regional boundary with the main part of the regional boundary represented by the boundary point set to form a whole, the boundary point set is more complete, and the broken part of the regional boundary in the fragment point cloud is repaired, so that the regional boundary is more complete. It is more helpful to clarify the regional characteristics of each region and realize accurate registration between different fragment point clouds.

[0115] In one embodiment of the present application, an initial boundary point p′ is randomly selected. i As the starting point, use the second distance DIS2(P) as the radius to determine its neighboring point p' in the initial boundary point j , and its neighboring point p′ j Add to p′ i In the clustering of j 's neighboring points and add them to p' i Until no more can be added, a cluster set is formed. Repeat the above technical means to cluster the initial boundary points that have not been clustered, and obtain the cluster set ClusterList = {cluster1,…,cluster i ,…,cluster n}Complete clustering. Then according to the cluster set cluster i The number of initial boundary points in the cluster i It is divided into three categories: Skeleton Cluster, which is the boundary point set, Edge Cluster and Noise Cluster:

[0116]

[0117] Cluster edge ={clusteri ∈ClusterList||cluster i |≥t}

[0118] Cluster noise ={cluster i ∈ClusterList||cluster i |<t}

[0119] where |cluster i | represents the cluster set cluster i The number of initial boundary points in , t is the threshold value used to distinguish candidate cluster sets from noise cluster sets. The boundary cluster set is the cluster set with the largest number of points in the cluster set, and its shape is closest to the regional boundary of the point cloud model; the distribution of candidate cluster sets on the fragmented point cloud can be roughly divided into two cases: one is the concave and convex area on the fracture surface, which can be used as the basis for splicing the fracture surface; the other is due to some reasons, the boundary points of the boundary cluster set are broken, and this part needs to apply the cluster growth algorithm to grow to the boundary cluster set. The noise cluster set is the scattered points that appear when extracting the initial boundary due to the noise in the point cloud model, which can be directly deleted.

[0120] First, for Cluster edge All clusters in the cluster are calculated to their centroids in Cluster skeleton The distance between the nearest points in the cluster is used to determine the cluster edge Which cluster sets need to be clustered and merged to the boundary cluster sets. The formula for obtaining the centroid coordinates of the boundary cluster sets is:

[0121]

[0122] Since there are also two adjacent cluster sets disconnected between the candidate cluster sets, the same method needs to be used to determine whether cluster growth and fusion can be performed between edge cluster sets. After obtaining all cluster pairs that can be clustered and fused, ClusterPairList = {ClusterPair1, ..., ClusterPair2, ..., ClusterPair3, ..., ClusterPair4, ..., ClusterPair5, ..., ClusterPair6, ..., ClusterPair7, ..., ClusterPair8, ..., ClusterPair9, ..., ClusterPair10, ..., ClusterPair11, ..., ClusterPair12, ..., ClusterPair13, ..., ClusterPair14, ..., ClusterPair15, ..., ClusterPair16, ..., ClusterPair17, ..., ClusterPair18, ..., ClusterPair19, ..., ClusterPair20, ..., ClusterPair21 i , ..., ClusterPair m}, cluster growth fusion is performed. i =(cluster i , cluster j ), representing cluster i and cluster j Cluster growth fusion can be performed. The algorithm of cluster growth fusion is as follows:

[0123] Step 1: Traverse ClusterPairList and find the cluster pair ClusterPair i There are two cluster sets in i and cluster j The two points closest to each other are taken as the starting points p start and the end point p end .

[0124] Step 2: Calculate p start to p end Vector Let the direction of the vector be d base Calculate p start Neighbor node p neibor to p end Vector And the direction of the vector is denoted as ds

[0125] Step 3: Calculate d base and d s The angle of the composition <d base , d s >, if <d base , d s )<θ, proceed to step 4, otherwise return to step 2 to calculate the next neighbor node

[0126] Step 4: neibor to p end The distance is projected into the direction d base Calculate its projection distance DIS projection The projection distance calculation formula is:

[0127] DIS projection =|(p neibor -p end )·d base |

[0128] Step 5: Select the neighboring point with the smallest projection distance as the new starting point and add it to the boundary cluster set, which is also the boundary point set P′F.

[0129] Repeat the above steps until the new starting point is the original starting point, and ClusterPair is completed. i The cluster growth fusion is performed and the grown potential feature set P′F is returned.

[0130] Steps 1 and 5 of the algorithm are to ensure that the number of points introduced by cluster growth fusion is as small as possible, while step 3 is a restriction condition set to avoid deviation from the main direction of the regional boundary during the growth process. Figure 6 As shown, Figure 6FIG. 1 shows a schematic diagram of connecting a candidate cluster set and a boundary point set according to an embodiment of the present application. start The point with the smallest projection distance within the angle limit among the neighboring points of P will be used as the new starting point to continue to move towards P end Through these steps, the number of points introduced in the cluster growth process is ensured to be minimal, while maintaining the rationality and accuracy of the growth direction, thereby ensuring that the final feature point set best conforms to the shape of the regional boundary of the fragment point cloud.

[0131] See also Figure 7 , Figure 7 A flowchart of taking at least one coordinate point between two coordinate points closest to the candidate cluster set and the boundary point set as a boundary point according to an embodiment of the present application is shown. The embodiment of the present application provides a step of taking at least one coordinate point between two coordinate points closest to the candidate cluster set and the boundary point set as a boundary point, including:

[0132] Step S501, taking the two coordinate points closest to the candidate cluster set and the boundary point set as the starting point and the end point respectively;

[0133] Step S502, taking the starting point as the vertex and the vector between the starting point and the end point as the angle bisector to construct an angle of a preset angle, and taking the vertex as the center and the second distance as the radius to determine the neighboring points of the vertex among the non-boundary points;

[0134] Step S503, taking the neighboring point within the angle and with the smallest projection distance on the vector as the boundary point, and taking the boundary point as the new vertex to continue searching for the next coordinate point as the vertex, until the neighboring points of the new vertex include the end point.

[0135] The above three steps are described in detail below.

[0136] In step S501, the two coordinate points closest to the candidate cluster set and the boundary point set are respectively used as the starting point and the end point.

[0137] In step S502, the starting point is used as the vertex and the vector between the starting point and the end point is used as the angle bisector to construct an angle of a preset angle, and the vertex is used as the center and the second distance is used as the radius to determine the neighboring points of the vertex among non-boundary points.

[0138] In step S503, the neighboring point within the angle and with the smallest projection distance on the vector is taken as a boundary point, and the next coordinate point is continuously searched as a new vertex until the neighboring points of the new vertex include the end point. That is, by continuously searching for new vertices and taking the new vertices as boundary points, the missing part between the candidate cluster set and the boundary point set is continuously repaired, thereby repairing the missing part of the region boundary.

[0139] See also Figure 8 , Figure 8 A flowchart of a method for further optimizing a boundary point set after obtaining the boundary point set according to an embodiment of the present application is shown. The embodiment of the present application provides steps for further optimizing the boundary point set after obtaining the boundary point set, including:

[0140] Step S601, randomly selecting a boundary point in the boundary point set as a first-level selected point, using a preset third distance as a radius, determining a neighboring point of the first-level selected point in the boundary point set as a second-level selected point, and the first-level selected point connects the second-level selected point;

[0141] Step S602, randomly selecting a first-level or second-level selected point, determining the neighboring point of the second-level selected point among the non-selected points in the boundary point set as the next-level selected point, and the second-level selected point is connected to the next-level selected point;

[0142] Step S603: for the i-level selected points, determine the i+1-level selected points from the non-selected points in the boundary point set, the i-level selected points are connected to the i+1-level selected points, i is a natural number greater than 2; wherein,

[0143] When multiple selected points have the same neighboring points, the neighboring points belong to the closest selected points; selected points at each level can only be connected once by the selected points at the previous level, and secondary selected points can be connected by secondary selected points. If i is greater than the level threshold, the i-level selected point can be connected to the secondary selected point;

[0144] Step S604, taking the first-level selected points as the starting point and the end point, at least one initial closed loop is formed between the selected points of each level, and the initial closed loop with a path length greater than the length threshold is retained as a closed loop, and only the boundary points that constitute the closed loop are retained in the boundary point set.

[0145] The above four steps are described in detail below.

[0146] In order to make the regional boundaries formed by the boundary points more obvious and accurate, the boundary point set is screened and simplified, and the regional boundaries are represented by fewer boundary points, and those boundary points that cannot clearly represent the regional boundary features are removed. On the one hand, this allows more coordinate points to return to the region. On the other hand, it avoids the existence of noise points in the boundary point set. The regional boundaries formed based on the fragmented point cloud must be adjacent and interconnected, so multiple closed loops can be formed by gradually connecting each boundary point, and the area enclosed by each closed loop represents an area of ​​the fragmented point cloud. Based on this feature of the boundary area, the embodiment of the present application simplifies and optimizes the boundary point set through the following technical means.

[0147] In step S601, a boundary point is first randomly selected as a first-level selected point, and a preset third distance is used as a radius. The adjacent point of the first-level selected point is determined as a second-level selected point in the boundary point set, and the first-level selected point is connected to the second-level selected point. It should be clear that the second distance and / or the first distance are the same as the third distance. In another embodiment of the present application, the third distance and the second distance are the same as the first distance.

[0148] In step S602, the first and second level selected points are randomly selected, and the adjacent points of the second level selected points are determined in the boundary point set as the next level selected points. The second level selected points are connected to the next level selected points, that is, the second level selected points are based on the third distance as the radius to select the third level selected points, that is, the next level selected points. There are two points that need to be explained here. One is that each level of selected points uses the third distance as the radius to determine the adjacent points in the non-selected points of the boundary point set as its next level selected points. The second is that among the selected points at each level, except for only one second level selected point in the second level selected points, the next level selected points are determined. All other selected points at all levels need to determine the next level selected points. Exemplarily, when constructing a connection relationship, all the third level selected points are used as the starting point, and the fourth level selected points of each third level selected point are determined respectively. However, when determining the third level selected point of the second level selected point, only one second level selected point is selected from all the second level selected points, and the selected point is grown to determine its third level selected point. Other second level selected points are temporarily ignored.

[0149] In step S603, for each i-level selected point, an i+1-level selected point is determined from the non-selected points in the boundary point set, and the i-level selected point is connected to the i+1-level selected point, where i is a natural number greater than 2. This realizes the continuous generation of selected points to find closed loops in many boundaries. When multiple selected points have the same neighboring point, the neighboring point is determined to be closest to the selected point, and it is attributed to the closest selected point, that is, it is used as the next-level selected point of the closest selected point.

[0150] In addition, in order to better construct a closed loop and prevent the generation of a smaller closed loop, if four or three adjacent coordinate points are randomly connected without rules, a closed loop will be formed, but it obviously does not belong to the regional boundary. Therefore, for the above situation, each level of selected points can have and connect multiple subordinate selected points. However, each level of selected points can only have one superior selected point, that is, each level of selected points will only be connected once by the superior selected point. Since when determining the next level of selected points, it is selected from the non-selected points in the boundary point set, the connection between the selected points of the same level is also avoided. Finally, in order to construct a closed loop, the secondary selected points without subordinate selected points can be connected by the subordinate selected points, where the subordinate selected points are selected points with a level less than the level threshold. The secondary selected points with subordinate selected points cannot be connected by the subordinate selected points, because this cannot form a loop with the primary selected points.

[0151] The level threshold is set to ensure that the lower level selected point has a sufficient level difference with the secondary selected point. This is because if the level difference is too small, it is easy to form a small closed loop, affecting the calculation accuracy of the closed loop. For example, if a third-level selected point is connected to a secondary selected point other than the secondary selected point to which it belongs, the closed loop formed is obviously a small closed loop.

[0152] In step S604, the first-level selected points are used as the starting point and the end point, and at least one initial closed loop is formed between the selected points of each level. In order to further remove the smaller closed loops, the initial closed loops with a path length greater than the length threshold are retained as closed loops, and only the boundary points constituting the closed loops are retained in the boundary point set. It should be clarified that the length of the closed loop refers to the number of boundary points in the closed loop, that is, the length threshold refers to the maximum number of boundary points in a shorter closed loop. If it is greater than this number, it is not a shorter closed loop. The calculation formula of the length threshold (length) is:

[0153]

[0154] Where n represents the number of coordinate points in the fragment point cloud.

[0155] Finally, it should be noted that if the initial closed loop is less than the length threshold, a second-level selected point different from the original second-level selected point is randomly selected from the second-level selected points to recalculate the initial closed loop. If the initial closed loop obtained twice is less than the length threshold, it means that there may be a problem with the selection of the first-level selected point, and a boundary point different from the original first-level selected point is randomly selected as the new first-level selected point.

[0156] In another embodiment of the present application, a graph-based point cloud pruning algorithm is applied to the obtained boundary point set P′F, which mainly includes two steps: graph construction and pruning. By constructing a graph structure connected by boundary points, we can effectively identify and delete redundant short branches, and finally obtain the region boundary that best represents the point cloud structure.

[0157] First, search for k neighboring points of each boundary point in the boundary point set P′F, and calculate the average value of the neighboring point distance of each point to determine the connection relationship between the points. In order to manage the connectivity of the points, a union-find set is used to construct the connection relationship between the boundary points to avoid forming too short loops. In addition, in order to highlight the main structure of the regional boundary, it is necessary to further simplify the structure of the graph, delete noise nodes and unimportant points, that is, delete isolated subgraphs or subgraphs smaller than a certain size. The constructed graph is shown in Figure 9(a), which shows a schematic diagram of the boundary set before simplification according to an embodiment of the present application. The lines represent the connections between points.

[0158] After the graph is constructed, pruning is required. Since the ultimate goal of pruning is to obtain the regional boundary that best represents the point cloud structure, and the regional boundary is generally a long closed loop. Therefore, the pruning process needs to remove short branches whose length is less than the length threshold (length). Specifically, on the basis of the completion of the graph construction, each node and its neighboring points are traversed, and the branch length of each neighboring point is determined by depth-first search. If there are long branches between two or more neighboring points of a node, the node is retained and its short branch neighbors are removed. In this way, the simplified regional boundary, that is, the simplified boundary point set, can be obtained, and the final boundary point set is shown in Figure 9(b). Figure 9(b) shows a schematic diagram of the simplified boundary set according to an embodiment of the present application.

[0159] In step S140, each boundary point in the boundary point set forms a plurality of region boundaries in the fragment point cloud, and the region boundaries divide the fragment point cloud into a plurality of regions, each region corresponding to a face of the object fragment.

[0160] In one embodiment of the present application, a closed loop is used as a region boundary, and the regions respectively surrounded by a plurality of closed figures formed by the closed loop on the fragment point cloud are the regions of the fragment point cloud.

[0161] See also Fig.10 , Fig.10 A flowchart of dividing a point cloud fragment into multiple regions according to region boundaries according to an embodiment of the present application is shown. The present application embodiment provides a step S140 of dividing a point cloud fragment into multiple regions according to region boundaries, including:

[0162] Step S701, randomly selecting a coordinate point from the non-boundary points as the center point, using a preset fifth distance as the radius, and determining neighboring points of the center point from the non-boundary points;

[0163] Step S702, repeatedly taking the newly obtained neighboring points as the center point, and determining the neighboring points of the center point among the coordinate points that are not boundary points and the center point, until the neighboring points of the center point are only boundary points, and the position of the center point forms an area;

[0164] Step S703, continue to select any coordinate point from the coordinate points that are not boundary points and non-center points as the center point to form a new area, until there are only center points and boundary points in the fragment point cloud, and the fragment point cloud is divided into multiple areas.

[0165] The above three steps are described in detail below.

[0166] In step S701, a coordinate point is randomly selected from the non-boundary points as the center point, and the preset fifth distance is used as the radius to determine the neighboring points of the center point among the non-boundary points. It should be noted that any two, three, four or all of the values ​​of the first distance, the second distance, the third distance, the fourth distance and the fifth distance are the same.

[0167] In step S702, the newly obtained neighboring points are repeatedly used as the center point, and the neighboring points of the center point are determined among the coordinate points that are not boundary points and the center point, until the only neighboring points of the center point are boundary points, and an area is formed at the location of the center point. That is, with the center point determined at the beginning as the center, its neighboring points are continuously searched and used as new center points to realize the growth of the center point, until the center point fills an area surrounded by boundary points, so as to determine that all current center points belong to the same area.

[0168] In step S703, a coordinate point is selected as the center point from the coordinate points that are not boundary points and center points to form a new region until only the center point and boundary points are left in the fragment point cloud, and the fragment point cloud is divided into multiple regions. That is, step S703 is repeated continuously to divide the coordinate points of each non-boundary point in the fragment point cloud into each region, thereby realizing the regional division of the fragment point cloud.

[0169] In one embodiment of the present application, using only the optimized region boundary as the region boundary may cause the region boundary to be fuzzy, thereby mistakenly merging two regions into one region. In order to solve this problem, it is necessary to expand the region boundary into a strip region boundary with a certain "width" to ensure that the region boundary can be better divided. With each boundary point in the optimized boundary point set as the center and the preset fourth distance as the radius, the adjacent points determined in the non-boundary point cloud are added to the boundary point set, and the boundary points form multiple region boundaries in the fragment point cloud. It should be clarified that any two, three or all of the values ​​of the fourth distance, the first distance, the second distance, and the third distance are the same.

[0170] See also Fig.11 , Fig.11 A flowchart of dividing a region boundary according to an embodiment of the present application is shown. The embodiment of the present application provides steps of dividing a region boundary, including:

[0171] Step S801, using a preset sixth distance as a radius, determining neighboring points of each boundary point among non-boundary points;

[0172] Step S802, according to the positions of the neighboring points of the boundary point, determining the area containing the most neighboring points of the boundary point as the target area;

[0173] Step S803: adding boundary points to the target area.

[0174] The above three steps are described in detail below.

[0175] In step S801, the neighboring points of each boundary point are determined among the non-boundary points with the preset sixth distance as the radius. It should be noted that any two, three, four, five or all of the values ​​of the first distance, the second distance, the third distance, the fourth distance, the fifth distance and the sixth distance are the same.

[0176] In step S802, based on the positions of the neighboring points of the boundary point, a region containing the most neighboring points of the boundary point is determined as the target region.

[0177] In step S803, the boundary point is added to the target area to achieve the area division of all coordinate points in the fragment point cloud.

[0178] A device for dividing point cloud regions of object fragments, the device comprising:

[0179] A determination module is configured to determine neighboring points of each coordinate point in the fragment point cloud of the object fragment with a preset first distance as a radius;

[0180] A first screening module is configured to determine initial boundary points from each of the coordinate points according to distribution characteristics of neighboring points corresponding to each of the coordinate points to form an initial boundary point set;

[0181] A second screening module is configured to optimize the initial boundary point set to obtain a boundary point set;

[0182] The division module is configured so that the boundary points in the boundary point set form a plurality of area boundaries in the fragment point cloud, and the area boundaries divide the fragment point cloud into a plurality of areas, each area corresponding to a face of the object fragment.

[0183] In one implementation of the present application, a storage medium for carrying the methods described in the various embodiments described above is also provided. The storage medium shown in the embodiment of the present application may be a readable signal medium or a readable storage medium or any combination of the above two. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present application, a readable storage medium may be any tangible medium containing or storing a program, which may be used by an instruction execution system, device or device or used in combination with it. In the present application, a readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, wherein a readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The readable signal medium may also be any storage medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device. The program code contained on the storage medium may be transmitted using any suitable medium, including but not limited to: wireless, wired, etc., or any suitable combination of the above.

[0184] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the above-mentioned module, program segment or a part of a code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flow chart, and the combination of the boxes in the block diagram or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0185] It should be noted that, although several modules or units of the equipment for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present application, the features and functions of two or more modules or units described above can be embodied in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into being embodied by multiple modules or units.

[0186] Through the description of the above implementation methods, it is easy for those skilled in the art to understand that the example implementation methods described here can be implemented by software or by combining software with necessary hardware. Therefore, the technical solution according to the implementation methods of the present application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which can be a personal computer, a server, a touch terminal, or a network device, etc.) to execute the method according to the implementation methods of the present application.

[0187] Those skilled in the art will readily appreciate other embodiments of the present application after considering the specification and practicing the invention disclosed herein. The present application is intended to cover any modification, use or adaptation of the present application, which follows the general principles of the present application and includes common knowledge or customary technical means in the art that are not disclosed in the present application.

[0188] It should be understood that the present application is not limited to the precise structures that have been described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present application is limited only by the appended claims.

Claims

1. A method for dividing point cloud regions of object fragments, characterized in that: The method comprises: Taking a preset first distance as a radius, determining adjacent points of each coordinate point in the fragment point cloud of the object fragment; According to the distribution characteristics of the neighboring points corresponding to each of the coordinate points, initial boundary points are determined in each of the coordinate points to form an initial boundary point set; Optimizing the initial boundary point set to obtain a boundary point set; The boundary points in the boundary point set form a plurality of region boundaries in the fragment point cloud, and the region boundaries divide the fragment point cloud into a plurality of regions, each region corresponding to a face of the object fragment.

2. The method according to claim 1, characterized in that Determining an initial boundary point at each of the coordinate points according to distribution characteristics of neighboring points corresponding to each of the coordinate points includes: For each of the coordinate points, two adjacent points with the shortest distance from the coordinate point and not in the same straight line as the coordinate point are selected, and a surface is fitted with the coordinate point to obtain a reference plane; A neighboring point whose distance to the reference plane is less than a first distance threshold is taken as a target point. If the percentage of the number of the target points in the neighboring points is less than a screening threshold, the coordinate point is taken as an initial boundary point.

3. The method according to claim 1, characterized in that The initial boundary point set is optimized to obtain a boundary point set, including: Randomly select one of the initial boundary points as a seed point, and use a preset second distance as a radius to determine neighboring points of the seed point in the initial boundary point set; Repeatedly taking the newly obtained neighboring points as new seed points, and determining neighboring points of the new seed points from the non-seed points in the initial boundary point set, until the seed point has no neighboring points and the seed points form a cluster set; Continue to randomly select an initial boundary point from the non-seed points in the initial boundary point set as a seed point to form a new cluster set until there are no non-seed points in the initial boundary point set and the initial boundary point set is divided into a plurality of cluster sets; Cluster sets containing initial boundary points whose number is greater than a first number threshold are aggregated to form a boundary point set, wherein the initial boundary points in the boundary point set are all used as boundary points.

4. The method according to claim 3, characterized in that After the initial boundary set is divided into a plurality of cluster sets, the method further comprises: A cluster set whose number of initial boundary points is greater than a second number threshold and less than or equal to a first number threshold is used as a candidate cluster set, where the first number threshold is greater than the second number threshold; For each of the candidate cluster sets, if the minimum distance between the centroid of the candidate cluster set and the boundary point is less than a second distance threshold, at least one coordinate point between the two coordinate points closest to the candidate cluster set and the boundary point set is taken as a boundary point, and the candidate cluster set is added to the boundary point set.

5. The method according to claim 4, characterized in that Taking at least one coordinate point between two coordinate points that are closest to the candidate cluster set and the boundary point set as a boundary point, comprising: The two coordinate points closest to the candidate cluster set and the boundary point set are respectively used as the starting point and the end point; Taking the starting point as a vertex and the vector between the starting point and the end point as an angle bisector to construct an included angle of a preset angle, and taking the vertex as a center and the second distance as a radius to determine neighboring points of the vertex among non-boundary points; The neighboring point within the angle and with the smallest projection distance on the vector is taken as a boundary point, and the boundary point is taken as a new vertex to continue searching for the next coordinate point as a vertex until the neighboring points of the new vertex include the end point.

6. The method according to claim 1, characterized in that After obtaining the boundary point set, the method for further optimizing the boundary point set includes: In the boundary point set, a boundary point is randomly selected as a first-level selected point, and a predetermined third distance is used as a radius, and a neighboring point of the first-level selected point is determined in the boundary point set as a second-level selected point, and the first-level selected point is connected to the second-level selected point; Randomly select a first-level or second-level selected point, determine the neighboring point of the second-level selected point among the non-selected points in the boundary point set as the next-level selected point, and the second-level selected point is connected to the next-level selected point; For the i-level selected points, the i+1-level selected points are determined from the non-selected points in the boundary point set, and the i-level selected points are connected to the i+1-level selected points, where i is a natural number greater than 2; wherein, When the multiple selected points have the same neighboring points, the neighboring points belong to the selected points with the closest distance; the selected points of each level can only be connected once by the selected points of the previous level, and the secondary selected points can be connected by the selected points of the lower level. If i is greater than the level threshold, the i-level selected point can be connected to the secondary selected point; Taking the first-level selected points as the starting point and the end point, at least one initial closed-loop circuit is formed between the selected points of each level, and the initial closed-loop circuit whose path length is greater than the length threshold is retained as the closed-loop circuit, and only the boundary points constituting the closed-loop circuit are retained in the boundary point set.

7. The method according to claim 1, characterized in that The boundary points in the boundary point set form a plurality of area boundaries in the fragment point cloud, including: With each boundary point as the center and a preset fourth distance as the radius, adjacent points determined in the non-boundary point cloud are added to the boundary point set, and each boundary point forms a plurality of area boundaries in the fragment point cloud.

8. The method according to claim 1, characterized in that Dividing the fragment point cloud into multiple regions according to the region boundaries, including: Randomly select a coordinate point from the non-boundary points as the center point, use a preset fifth distance as the radius, and determine neighboring points of the center point from the non-boundary points; Repeatedly taking the newly obtained neighboring points as the center point, determining the neighboring points of the center point among the coordinate points that are not boundary points and the center point, until the neighboring points of the center point are only boundary points, and the position of the center point forms an area; Continue to arbitrarily select a coordinate point from the coordinate points that are not boundary points and non-center points as the center point to form a new area, until the fragment point cloud only has the center point and boundary points, and the fragment point cloud is divided into multiple areas.

9. The method according to claim 8, characterized in that The fragmented point cloud is divided into a plurality of regions and then the region boundaries are divided, including: Taking a preset sixth distance as a radius, determining neighboring points of each of the boundary points among non-boundary points; According to the positions of the neighboring points of the boundary point, determining the area containing the most neighboring points of the boundary point as the target area; The boundary points are added to the target area.

10. A point cloud region division device for object fragments, characterized in that: The device comprises: A determination module is configured to determine neighboring points of each coordinate point in the fragment point cloud of the object fragment with a preset first distance as a radius; A first screening module is configured to determine initial boundary points from each of the coordinate points according to distribution characteristics of neighboring points corresponding to each of the coordinate points to form an initial boundary point set; A second screening module is configured to optimize the initial boundary point set to obtain a boundary point set; The division module is configured so that the boundary points in the boundary point set form a plurality of area boundaries in the fragment point cloud, and the area boundaries divide the fragment point cloud into a plurality of areas, each area corresponding to a face of the object fragment.

Citation Information

Patent Citations

  • Three-dimensional point cloud road boundary automatic extraction method

    CN106780524A

  • Method, device and equipment for realizing simulation splicing for object fragments

    CN115546025A

  • Target object contour point cloud extraction method and device, equipment and storage medium

    CN116168056A

  • Method, system and device for extracting point cloud boundary data and medium

    CN117911449A

  • Three-dimensional recombination method and device for crushed articles, computer equipment and medium

    CN118014827A