Point cloud plane segmentation method and device, electronic equipment and storage medium

By using a phase distribution-based mesh generation and parallel processing method, the uncertainty problem of point cloud plane segmentation in non-smooth surface scenes is solved, and efficient and accurate point cloud plane segmentation is achieved.

CN120147336BActive Publication Date: 2026-05-12REALSEE (BEIJING) TECHNOLOGY CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
REALSEE (BEIJING) TECHNOLOGY CO LTD
Filing Date
2025-02-25
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

Existing point cloud plane segmentation methods suffer from uncertainties in initial vertex selection and normal vector perturbation in non-smooth surface scenes, leading to segmentation errors and making them difficult to adapt to complex and ever-changing virtual reality acquisition environments.

Method used

A phase distribution-based meshing method is adopted to divide the point cloud data into meshes. Plane seeds are obtained through parallel processing, and neighborhood plane growth is performed. The addition of points is determined by conditions such as the angle between normal vectors and distance. The plane equation is estimated to eliminate outliers.

Benefits of technology

It improves the accuracy and efficiency of point cloud plane segmentation, adapts to complex surface scenes, reduces the impact of noise, and enhances the reliability of segmentation results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120147336B_ABST
    Figure CN120147336B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure disclose a point cloud plane segmentation method and device, electronic equipment and a storage medium, wherein the method comprises: adopting a grid division method based on phase distribution to divide a three-dimensional space corresponding to the point cloud data into a plurality of grids; performing plane fitting on points in each grid in the plurality of grids through a parallel processing manner to obtain a plurality of plane seeds; and performing neighborhood plane growth on the plurality of plane seeds through the parallel processing manner to obtain a plurality of planes corresponding to the point cloud data. The embodiments of the present disclosure can quickly and accurately determine the plurality of planes corresponding to the point cloud data, thereby improving the efficiency of point cloud plane segmentation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to digital signal processing technology, and in particular to a method, apparatus, electronic device, and storage medium for segmenting a point cloud plane. Background Technology

[0002] Point cloud plane segmentation methods can be applied to virtual reality (VR), enabling VR-acquired data to be processed in a more aesthetically pleasing way.

[0003] In related technologies, the neighborhood growing method is used to segment the point cloud plane. When segmenting the point cloud plane using this method, any vertex of the point cloud is used as the initial plane center, and the normal vector of that vertex is used as the initial plane normal vector. The plane is gradually expanded from this vertex until it cannot be expanded further; then another vertex is randomly selected, and this process is repeated until the point cloud plane is segmented. This point cloud plane segmentation method assumes that the point cloud is distributed on a smooth surface. However, actual VR acquisition scenes are complex and varied, and the assumption of a smooth surface does not conform to real-world environments, leading to varying degrees of data degradation.

[0004] For scenarios with non-smooth surfaces, the selection of initial vertices introduces uncertainty into the segmentation method, and the normal vectors of the initial vertices themselves contain perturbations and noise. For incremental and greedy algorithms, the initial state will affect the final plane segmentation result to some extent, thus producing incorrect results. Summary of the Invention

[0005] This disclosure provides a method, apparatus, electronic device, and storage medium for segmenting a point cloud plane to solve the above-mentioned problems.

[0006] A first aspect of this disclosure provides a method for segmenting a point cloud plane, comprising:

[0007] A phase distribution-based meshing method is used to divide the three-dimensional space corresponding to the point cloud data into multiple meshes.

[0008] For grids with the same phase among the multiple grids, a parallel processing method is used to perform plane fitting on the points in each grid among the multiple grids to obtain multiple plane seeds;

[0009] By using parallel processing, neighborhood plane growth is performed on the multiple plane seeds to obtain multiple planes corresponding to the point cloud data.

[0010] In some embodiments of this disclosure, the step of using a phase distribution-based meshing method to mesh the three-dimensional space corresponding to the point cloud data to obtain multiple meshes includes:

[0011] Anchor points are determined based on the positions of each point in the point cloud data;

[0012] Based on the anchor points, the three-dimensional space corresponding to the point cloud data is divided into multiple grids using the grid division method to obtain the multiple grids.

[0013] In some embodiments of this disclosure, after performing multi-scale meshing of the three-dimensional space corresponding to the point cloud data based on the anchor points and using the meshing method to obtain the multiple meshes, the method further includes:

[0014] Based on the spatial coordinates of the anchor point and the spatial coordinates of each point in the point cloud data, the grid index of each point in the point cloud data is determined.

[0015] Hash calculations are performed on each point in the point cloud data based on the grid index of each point to obtain the hash value of each point in the point cloud data;

[0016] Based on the grid index of each point in the point cloud data, determine the phase number of each point in the point cloud data;

[0017] A hash list is used to store the hash value of each point in the point cloud data and the phase number of each point in the point cloud data.

[0018] In some embodiments of this disclosure, the step of performing planar fitting on points within each of the plurality of grids to obtain a planar seed for each grid includes:

[0019] Perform the following steps for each of the plurality of grids:

[0020] Randomly select a point within the current grid, perform plane fitting between the selected point and points within the spherical neighborhood, obtain the plane fitting result, and increment the plane fitting count by one. The radius of the spherical neighborhood is equal to the preset grid side length, and the plane fitting result includes the plane seed generated when the plane fitting is successful.

[0021] The process of randomly selecting a point from the current grid, performing plane fitting between the selected point and points in the spherical neighborhood, obtaining the plane fitting result, and incrementing the plane fitting count by one is repeated until the plane fitting count of the current grid reaches a preset threshold, thus obtaining all plane seeds of the current grid.

[0022] In some embodiments of this disclosure, the step of performing neighborhood plane growing on the plurality of plane seeds to obtain a plurality of planes corresponding to the point cloud data includes:

[0023] For each of the multiple planar seeds, the following steps are performed iteratively until multiple planes corresponding to the point cloud data are obtained:

[0024] Select a first target point from the current plane seed, and obtain each point in the neighborhood of the first target point, wherein the first target point and each point in the neighborhood of the first target point belong to the points in the point cloud data;

[0025] Based on the angle and distance between the normal vectors of each point in the neighborhood of the first target point and the current plane seed, and the number of points in the neighborhood of the first target point, it is determined whether each point in the neighborhood of the first target point should be added to the current plane seed.

[0026] In response to the addition of at least one point within the current plane seed, the current plane seed is updated.

[0027] In some embodiments of this disclosure, determining whether each point in the neighborhood of the first target point should be added to the current plane seed based on the angle and distance between the normal vectors of each point in the neighborhood of the first target point and the current plane seed, and the number of points in the neighborhood of the first target point, includes:

[0028] Select a second target point from the neighborhood of the first target point;

[0029] In response to the fact that the angle between the normal vectors of the second target point and the current plane seed is less than a preset normal vector angle threshold, the distance between the second target point and the current plane seed is less than a preset distance threshold, and the number of points in the spherical neighborhood of the first target point is greater than a preset number threshold, the second target point is added to the current plane seed.

[0030] In some embodiments of this disclosure, the process of performing neighborhood plane growth on the plurality of planar seeds further includes:

[0031] Plane equations are estimated based on the positions of points within each plane seed during the neighborhood plane growth process, thus obtaining the plane equations of each plane seed.

[0032] Based on the plane equations of each plane seed, the outer points of each plane seed are eliminated to obtain at least one outer point.

[0033] A second aspect of this disclosure provides a point cloud plane segmentation device, comprising:

[0034] The mesh generation module is used to divide the three-dimensional space corresponding to the point cloud data into multiple meshes using a phase distribution-based mesh generation method.

[0035] The plane fitting module is used to perform plane fitting on points in each of the multiple grids in a parallel processing manner for grids with the same phase, so as to obtain multiple plane seeds.

[0036] The neighborhood plane growth module is used to perform neighborhood plane growth on the multiple plane seeds in a parallel processing manner to obtain multiple planes corresponding to the point cloud data.

[0037] In some embodiments of this disclosure, the mesh division module is used to determine anchor points based on the positions of each point in the point cloud data; the mesh division module is also used to perform multi-scale mesh division on the three-dimensional space corresponding to the point cloud data based on the anchor points and using the mesh division method to obtain the multiple meshes.

[0038] In some embodiments of this disclosure, it also includes:

[0039] The grid index determination module is used to determine the grid index of each point in the point cloud data based on the spatial coordinates of the anchor point and the spatial coordinates of each point in the point cloud data.

[0040] The hash calculation module is used to perform hash calculations based on the grid index of each point in the point cloud data to obtain the hash value of each point in the point cloud data.

[0041] The phase number determination module is used to determine the phase number of each point in the point cloud data based on the grid index of each point in the point cloud data;

[0042] The storage module is used to store the hash value of each point in the point cloud data and the phase number of each point in the point cloud data using a hash list.

[0043] In some embodiments of this disclosure, the plane fitting module is configured to perform the following steps for each of the plurality of grids:

[0044] Randomly select a point within the current grid, perform plane fitting between the selected point and points within the spherical neighborhood, obtain the plane fitting result, and increment the plane fitting count by one. The radius of the spherical neighborhood is equal to the preset grid side length, and the plane fitting result includes the plane seed generated when the plane fitting is successful.

[0045] The process of randomly selecting a point from the current grid, performing plane fitting between the selected point and points in the spherical neighborhood, obtaining the plane fitting result, and incrementing the plane fitting count by one is repeated until the plane fitting count of the current grid reaches a preset threshold, thus obtaining all plane seeds of the current grid.

[0046] In some embodiments of this disclosure, the neighborhood plane growth module is configured to iteratively execute the following steps for each of the plurality of plane seeds until multiple planes corresponding to the point cloud data are obtained:

[0047] Select a first target point from the current plane seed, and obtain each point in the neighborhood of the first target point, wherein the first target point and each point in the neighborhood of the first target point belong to the points in the point cloud data;

[0048] Based on the angle and distance between the normal vectors of each point in the neighborhood of the first target point and the current plane seed, and the number of points in the neighborhood of the first target point, it is determined whether each point in the neighborhood of the first target point should be added to the current plane seed.

[0049] In response to the addition of at least one point within the current plane seed, the current plane seed is updated.

[0050] In some embodiments of this disclosure, the neighborhood plane growth module is used to select a second target point from the neighborhood of the first target point; the neighborhood plane growth module is also used to add the second target point to the current plane seed in response to the following: the angle between the normal vectors of the second target point and the current plane seed is less than a preset normal vector angle threshold, the distance between the second target point and the current plane seed is less than a preset distance threshold, and the number of points in the spherical neighborhood of the first target point is greater than a preset number threshold.

[0051] In some embodiments of this disclosure, the neighborhood plane growth module is further configured to estimate the plane equation based on the position of each point within each plane seed during the neighborhood plane growth process, thereby obtaining the plane equation of each plane seed; the neighborhood plane growth module is further configured to remove outliers from each plane seed based on the plane equation of each plane seed, thereby obtaining at least one outlier.

[0052] A third aspect of this disclosure provides an electronic device, comprising:

[0053] Memory, used to store computer program products;

[0054] A processor is configured to execute a computer program product stored in the memory, and when the computer program product is executed, to implement the above-described point cloud plane segmentation method.

[0055] A fourth aspect of this disclosure provides a computer-readable storage medium having computer program instructions stored thereon, which, when executed by a processor, implement the above-described point cloud plane segmentation method.

[0056] A fifth aspect of this disclosure provides a computer program product including computer program instructions that, when executed by a processor, cause the processor to perform the point cloud plane segmentation method described above.

[0057] The point cloud plane segmentation method, apparatus, electronic device, and storage medium of this disclosure, since the phase distribution method can make different spaces have different phases, adopts a phase distribution-based meshing method to divide the three-dimensional space corresponding to the point cloud data into multiple sets of meshes with phase consistency. Multiple plane seeds can be obtained by parallel processing of the meshes with the same phase in the multiple sets of meshes with phase consistency. Then, the neighborhood plane is grown in parallel processing according to the spatial positional relationship between each plane seed and each point in the neighborhood. Multiple planes corresponding to the point cloud data can be obtained quickly and accurately, thereby improving the efficiency of point cloud plane segmentation.

[0058] The technical solutions of this disclosure will be further described in detail below with reference to the accompanying drawings and embodiments. Attached Figure Description

[0059] The accompanying drawings, which form part of this specification, illustrate embodiments of this disclosure and, together with the description, serve to explain the principles of this disclosure.

[0060] This disclosure will become clearer with reference to the accompanying drawings and the following detailed description, wherein:

[0061] Figure 1 This is a flowchart illustrating a point cloud plane segmentation method in one embodiment of the present disclosure;

[0062] Figure 2 This is a flowchart illustrating step S1 in one embodiment of the present disclosure;

[0063] Figure 3 This is a schematic diagram of a portion of the process after steps S1-2 in one embodiment of this disclosure;

[0064] Figure 4 This is a schematic diagram of the phase arrangement in a two-dimensional plane in one example of this disclosure;

[0065] Figure 5 This is a schematic diagram illustrating the data storage list correspondence in one example of this disclosure;

[0066] Figure 6 This is a schematic diagram illustrating the correspondence between a data storage list and point cloud data in one example of this disclosure;

[0067] Figure 7 This is a flowchart illustrating step S2 in one embodiment of the present disclosure;

[0068] Figure 8 This is a flowchart illustrating step S3 in one embodiment of the present disclosure;

[0069] Figure 9 This is a flowchart illustrating step S3-2 in one embodiment of the present disclosure;

[0070] Figure 10 This is a structural block diagram of a point cloud plane segmentation device in one embodiment of the present disclosure;

[0071] Figure 11 This is a structural block diagram of a point cloud plane segmentation device in another embodiment of this disclosure;

[0072] Figure 12 This is a structural block diagram of an electronic device in one embodiment of the present disclosure. Detailed Implementation

[0073] Various exemplary embodiments of the present disclosure will now be described in detail with reference to the accompanying drawings. It should be noted that, unless otherwise specifically stated, the relative arrangement, numerical expressions, and values ​​of the components and steps set forth in these embodiments do not limit the scope of the present disclosure.

[0074] Those skilled in the art will understand that the terms "first," "second," etc., in the embodiments of this disclosure are only used to distinguish different steps, devices, or modules, and do not represent any specific technical meaning, nor do they indicate a necessary logical order between them.

[0075] It should also be understood that in the embodiments disclosed herein, "multiple" can refer to two or more, and "at least one" can refer to one, two or more.

[0076] It should also be understood that any component, data or structure mentioned in the embodiments of this disclosure can generally be understood as one or more unless expressly defined or given to the contrary in the context.

[0077] Furthermore, the term "and / or" in this disclosure is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. Additionally, the character " / " in this disclosure generally indicates that the preceding and following related objects have an "or" relationship.

[0078] It should also be understood that the description of the various embodiments in this disclosure emphasizes the differences between the various embodiments, and the similarities or similarities can be referred to each other. For the sake of brevity, they will not be described in detail.

[0079] The following description of at least one exemplary embodiment is merely illustrative and is in no way intended to limit this disclosure or its application or use.

[0080] Techniques, methods, and equipment known to those skilled in the art may not be discussed in detail, but where appropriate, such techniques, methods, and equipment should be considered part of the specification.

[0081] It should be noted that similar labels and letters in the following figures indicate similar items; therefore, once an item is defined in one figure, it does not need to be discussed further in subsequent figures.

[0082] The embodiments disclosed herein can be applied to electronic devices such as terminal devices, computer systems, and servers, and can operate together with a wide range of other general-purpose or special-purpose computing system environments or configurations. Examples of well-known terminal devices, computing systems, environments, and / or configurations suitable for use with electronic devices such as terminal devices, computer systems, and servers include, but are not limited to: personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments including any of the above systems, etc.

[0083] Electronic devices such as terminal devices, computer systems, and servers can be described in the general context of computer system executable instructions (such as program modules) executed by a computer system. Typically, program modules can include routines, programs, object programs, components, logic, data structures, etc., which perform specific tasks or implement specific abstract data types. Computer systems / servers can be implemented in distributed cloud computing environments, where tasks are executed by remote processing devices linked through communication networks. In distributed cloud computing environments, program modules can reside on local or remote computing system storage media, including storage devices.

[0084] It should be noted that the point cloud plane segmentation method and apparatus in this disclosure can be applied to distributed systems. The following embodiments explicitly illustrate that parallel processing steps can significantly improve data processing efficiency; the remaining steps can also be processed in parallel to further improve data processing efficiency.

[0085] Figure 1 This is a flowchart illustrating a point cloud plane segmentation method in one embodiment of this disclosure. Figure 1 As shown, the point cloud plane segmentation method includes:

[0086] S1: Using a phase distribution-based meshing method, the three-dimensional space corresponding to the point cloud data is divided into multiple meshes.

[0087] For point cloud data to be segmented into a plane, a meshing method based on phase distribution is determined. Based on the position of each point in the point cloud data in three-dimensional space, the position occupied by the point cloud data in three-dimensional space is determined. Then, the position occupied by the point cloud data in three-dimensional space is meshed using the phase distribution-based meshing method, resulting in multiple meshes.

[0088] In some examples disclosed herein, the phase distribution-based meshing method divides the mesh into 27 phases in 3D space. The distribution of these 27 phases is similar to that of a 3x3 Rubik's Cube; given a mesh side length μ, each mesh is a cube with a side length μ, and the 3D space is divided into 3μ×3μ×3μ units, ensuring that the closest distance between two meshes of the same phase is 2μ. This phase distribution-based meshing method facilitates parallel processing of meshes with the same phase in subsequent steps, thereby improving the efficiency of segmenting the point cloud plane.

[0089] It should be noted that dividing the grid into 27 phases is merely an example; those skilled in the art can divide it into other numbers of phases and adjust the phase distribution accordingly. Furthermore, each grid is not limited to a cube structure; it can also be a cuboid structure or other structures.

[0090] S2: For grids with the same phase in multiple grids, a parallel processing method is used to perform plane fitting on the points in each grid in multiple grids to obtain multiple plane seeds.

[0091] Mesh partitioning based on phase distribution results in meshes with the same phase among the resulting meshes. Therefore, a distributed system can be used to process these meshes with the same phase in parallel, performing plane fitting on the points within all meshes to obtain a plane seed for each mesh, thus generating multiple plane seeds. The plane seed is an initial, unexpanded plane generated from the point cloud data within each mesh.

[0092] S3: By using parallel processing, neighborhood plane growth is performed on multiple plane seeds to obtain multiple planes corresponding to the point cloud data.

[0093] A distributed system can be used to perform parallel neighborhood growth for each plane seed, resulting in multiple planes corresponding to the point cloud data.

[0094] In this embodiment, since the phase distribution method can make different spaces have different phases, a phase distribution-based meshing method is used to divide the three-dimensional space corresponding to the point cloud data into multiple sets of meshes with phase consistency. Multiple plane seeds can be obtained by parallel processing of the meshes with the same phase in the multiple sets of meshes with phase consistency. Then, the neighborhood plane is grown in parallel processing according to the spatial positional relationship between each plane seed and each point in the neighborhood. Multiple planes corresponding to the point cloud data can be obtained quickly and accurately, thereby improving the efficiency of point cloud plane segmentation.

[0095] Figure 2 This is a flowchart illustrating step S1 in one embodiment of this disclosure. Figure 2 As shown, step S2 includes the following steps:

[0096] S1-1: Determine the anchor point based on the position of each point in the point cloud data.

[0097] Anchor points can be determined by setting the center point or other preset location points in the space containing the point cloud data. Specifically, the center point can be determined by summing the three-dimensional spatial coordinates of all points in the point cloud data and taking the average value; this summates the three-dimensional spatial coordinates of the anchor point.

[0098] S1-2: Based on anchor points, the three-dimensional space corresponding to the point cloud data is divided into multiple grids using the above grid division method.

[0099] Following the example of step S1, with different values ​​for the grid side length μ, the three-dimensional space is divided into grids in units of 3μ×3μ×3μ based on the anchor points, thereby achieving multi-scale grid division and obtaining grid division results corresponding to different scales, thus obtaining multiple grids for plane fitting through parallel processing.

[0100] The multi-scale meshing method in steps S1-2 includes at least the following: based on anchor points and the first mesh side length, the three-dimensional space corresponding to the point cloud data is meshed using the above meshing method to obtain a first mesh set; based on anchor points and the second mesh side length, the three-dimensional space corresponding to the point cloud data is meshed using the above meshing method to obtain a second mesh set. The first mesh side length and the second mesh side length are different, and the multiple meshes used for plane fitting through parallel processing include the first mesh set and the second mesh set.

[0101] In this embodiment, since different scale meshes produce different planar seeds, the three-dimensional space corresponding to the point cloud data is divided into multi-scale meshes according to the anchor points using a meshing method. This can yield multi-scale meshes, which in turn can yield multi-scale planar seeds, thereby helping to improve the adaptability of planar seeds to complex environments.

[0102] Figure 3 This is a schematic diagram of a portion of the process after steps S1-2 in one embodiment of this disclosure. For example... Figure 3 As shown, after step S1-2, the following steps are also included:

[0103] S1-3: Based on the spatial coordinates of the anchor point and the spatial coordinates of each point in the point cloud data, determine the grid index of each point in the point cloud data.

[0104] For any point p in the point cloud datai =(x i ,y i ,z i The grid index is calculated as follows:

[0105]

[0106] Among them, c i =(k i ,l i ,m i ) represents p i The grid index, (x o ,y o ,z o ) represents the spatial coordinates of the anchor point, and μ represents the grid side length.

[0107] S1-4: Perform hash calculation based on the grid index of each point in the point cloud data to obtain the hash value of each point in the point cloud data.

[0108] To represent a large space using a small amount of memory, embodiments of this disclosure use spatial hashing to represent the grid data structure. For the grid (cell) index c... i =(k i ,l i ,m i The hash value h is calculated as follows:

[0109] h=(k i ·p1)xor(l i ·p2)xor(m i ·p3)

[0110] Among them, p1, p2, and p3 are three preset prime numbers, such as 73856093, 19349663, and 83492791 respectively.

[0111] S1-5: Determine the phase number of each point in the point cloud data based on the grid index of each point in the point cloud data.

[0112] The data storage list stores the number of points under the same grid index and the position of the first point. Each grid index c i Each has a phase number. In three-dimensional space, 27 phase numbers are set such that the distance between the grid of each phase and its nearest grid is 2μ, which allows all grids within a single phase to be processed in parallel without affecting each other.

[0113] Figure 4 This is a schematic diagram of the phase arrangement in a two-dimensional plane, as shown in one example of this disclosure. Figure 4As shown, 0-8 represent 9 phases. The points on the solid lines in the graph (resembling a rabbit) represent points in the point cloud data on a two-dimensional plane. Figure 6 The arrangement of the nine phases shown can be used to obtain the phase number of the points on the solid line.

[0114] S1-6: Use a hash list to store the hash value of each point in the point cloud data and the phase number of each point in the point cloud data.

[0115] A two-level data structure is used to store a list of data storage instances. The data storage instance includes hash units, which store the index of the list, thereby improving cache hits and reducing memory allocation and deallocation.

[0116] Figure 5 This is a schematic diagram illustrating the data storage list mapping relationship in one example of this disclosure. For example... Figure 5 As shown, m represents the number of hash values ​​calculated based on the grid index, n represents the total number of occupied grids in the space, and k represents the number of points in a given grid.

[0117] In addition, data entities are pre-sorted in parallel so that points at the same grid index can be arranged closely together.

[0118] Figure 6 This is a schematic diagram illustrating the correspondence between the data storage list and point cloud data in one example of this disclosure. For example... Figure 6 As shown, the key represents the grid index; the quantity represents the number of points contained in the grid, pointing to a value in a sorted array. For example, the first row of the data storage list sorts grid 111 in the point cloud data, and the second row sorts grid 387 in the point cloud data.

[0119] Figure 7 This is a flowchart illustrating step S2 in one embodiment of this disclosure. Figure 7 As shown, step S2 includes the following steps:

[0120] For meshes with the same phase among multiple meshes obtained based on phase partitioning, a parallel processing approach is adopted, and the following steps are performed on each of the multiple meshes:

[0121] S2-1: Randomly select a point from the current grid, perform plane fitting on the selected point and the points in the spherical neighborhood, obtain the plane fitting result, and increment the plane fitting order by one.

[0122] In this case, the radius of the spherical neighborhood is equal to the preset grid side length, and the generated planar seed is unaffected by noise. The planar fitting results include: the planar seed generated when the planar fitting is successful, and points within the current grid that cannot be fitted into the planar seed.

[0123] S2-2: Repeat step S2-1 until the number of plane fittings of the current mesh reaches the preset threshold, and obtain all plane seeds of the current mesh.

[0124] In this embodiment, for objects with complex surface structures, since it is difficult to fit the point cloud of all grids of the object into the seed plane, a preset number threshold is set. When the number of plane fittings of the current grid reaches the preset number threshold, the plane fitting of the current grid is stopped again, thereby avoiding the plane fitting from consuming a lot of time.

[0125] Figure 8 This is a flowchart illustrating step S3 in one embodiment of this disclosure. Figure 8 As shown, the following steps are executed iteratively for each of the multiple plane seeds using a parallel processing approach until multiple planes corresponding to the point cloud data are obtained:

[0126] S3-1: Select the first target point from the current plane seed and obtain all points in the neighborhood of the first target point. The first target point and all points in its neighborhood are points in the point cloud data.

[0127] A point can be randomly selected from the current plane seed as the first target point. Using the grid side length μ as the radius of the spherical neighborhood of the first target point, all points within the neighborhood of the first target point are obtained.

[0128] S3-2: Based on the angle and distance between the normal vectors of each point in the neighborhood of the first target point and the current plane seed, and the number of points in the neighborhood of the first target point, determine whether each point in the neighborhood of the first target point should be added to the current plane seed.

[0129] The angle between the normal vectors of each point in the spherical neighborhood of the first target point and the normal vector of the current plane seed is calculated based on the normal vectors of each point in the spherical neighborhood of the first target point and the normal vector of the current plane seed. The distance between each point in the spherical neighborhood of the first target point and the current plane seed is calculated based on the spatial coordinates of each point in the spherical neighborhood of the first target point and the planar coordinates of the current plane seed. Based on the positions of each point in the point cloud data, it is determined which points are located within the spherical neighborhood of the first target point, thus obtaining the number of points within the spherical neighborhood of the first target point.

[0130] Based on the set conditions regarding the angle between the normal vectors, distance, and number of points when a point can be added to the plane seed, if the angle between the normal vectors of a point in the spherical neighborhood of the first target point and the current plane seed, the distance between that point and the current plane seed, and the number of points in the spherical neighborhood of the first target point satisfy the above set conditions, then that point is added to the current plane seed; otherwise, that point is not added to the current plane seed and is recorded.

[0131] S3-3: Update the current plane seed in response to the addition of at least one point within the current plane seed.

[0132] After adding at least one point to the current plane seed within the spherical neighborhood of the first target point, update the points included in the current plane seed.

[0133] In this embodiment, since the angle between the normal vectors of a point and a plane seed can characterize the degree of fit between the point and the plane seed in the vector direction, and plane degradation is prone to occur on relatively smooth curved surfaces, and the density of points in the neighborhood helps to distinguish unconnected planar regions in space, when performing neighborhood plane growth on a plane seed, the decision to add a point to the corresponding plane seed is made based on the angle between the normal vectors of the point and the plane seed, the distance between the point and the plane seed, and the number of points in the neighborhood. This can reduce the probability of plane degradation and help to distinguish unconnected planar regions in space.

[0134] Figure 9 This is a flowchart illustrating step S3-2 in one embodiment of this disclosure. Figure 9 As shown, step S3-2 includes the following steps:

[0135] S3-2-1: Select a second target point from the neighborhood of the first target point. The second target point can be a point randomly selected from the neighborhood of the first target point.

[0136] S3-2-2: In response to the fact that the angle between the normal vectors of the second target point and the current plane seed is less than a preset normal vector angle threshold, the distance between the second target point and the current plane seed is less than a preset distance threshold, and the number of points in the spherical neighborhood of the first target point is greater than a preset number threshold, the second target point is added to the current plane seed.

[0137] When a point can be added to a plane seed, preset thresholds for the angle of the normal vector, distance, and number of points are set in the settings conditions.

[0138] If the angle between the normal vectors of the second target point and the current plane seed is less than a preset normal vector angle threshold, and the distance between the second target point and the current plane seed is less than a preset distance threshold, and the number of points in the spherical neighborhood of the first target point is greater than a preset number threshold, then the second target point is added to the current plane seed; otherwise, the second target point is not added to the current plane seed and is recorded.

[0139] In this embodiment, when performing neighborhood plane growth on a plane seed, the point can be reasonably determined to be added to the corresponding plane seed based on whether the angle between the normal vectors between the point and the plane seed is less than a preset normal vector angle threshold, whether the distance between the point and the plane seed is less than a preset distance threshold, and whether the number of points in the neighborhood is greater than a preset number threshold. This can reduce the probability of plane degradation and help distinguish unconnected plane regions in space.

[0140] In some embodiments of this disclosure, the process of performing neighborhood plane growth on multiple plane seeds further includes the following steps: estimating the plane equation based on the position of each point within each plane seed during the neighborhood plane growth process to obtain the plane equation of each plane seed; and removing outliers from each plane seed based on the plane equation of each plane seed to obtain at least one outlier.

[0141] For each plane seed in the neighborhood plane growth process, principal component analysis (PCA) can be used to re-estimate the plane equation based on the positions of all points within the current plane seed. Based on the re-estimated plane equation, all outliers not belonging to the current plane are identified. These outliers are then extracted from the current plane seed and set to an unclassified state, i.e., not belonging to the current plane seed. The method of re-estimated plane equation using PCA can include: calculating the covariance matrix based on the positions of all points within the current plane seed, and determining the plane equation corresponding to the principal plane based on the covariance matrix.

[0142] Figure 10 This is a structural block diagram of a point cloud plane segmentation device according to one embodiment of this disclosure. Figure 10 As shown, the point cloud plane segmentation device includes:

[0143] The mesh generation module 100 is used to divide the three-dimensional space corresponding to the point cloud data into multiple meshes using a phase distribution-based mesh generation method.

[0144] The plane fitting module 200 is used to perform plane fitting on points in each of the multiple grids in a parallel processing manner for grids with the same phase in multiple grids, and obtain multiple plane seeds.

[0145] The neighborhood plane growth module 300 is used to grow multiple plane seeds in a parallel manner to obtain multiple planes corresponding to the point cloud data.

[0146] In some embodiments of this disclosure, the mesh division module 100 is used to determine anchor points based on the positions of each point in the point cloud data; the mesh division module 100 is also used to perform multi-scale mesh division on the three-dimensional space corresponding to the point cloud data based on the anchor points and using a mesh division method to obtain multiple meshes.

[0147] Figure 11 This is a structural block diagram of a point cloud plane segmentation device according to another embodiment of this disclosure. Figure 11 As shown, the point cloud plane segmentation device may further include:

[0148] The grid index determination module 400 is used to determine the grid index of each point in the point cloud data based on the spatial coordinates of the anchor point and the spatial coordinates of each point in the point cloud data.

[0149] The hash calculation module 500 is used to perform hash calculations based on the grid index of each point in the point cloud data to obtain the hash value of each point in the point cloud data;

[0150] The phase number determination module 600 is used to determine the phase number of each point in the point cloud data based on the grid index of each point in the point cloud data;

[0151] Storage module 700 is used to store the hash value of each point in the point cloud data and the phase number of each point in the point cloud data using a hash list.

[0152] In some embodiments of this disclosure, the plane fitting module 200 is configured to perform the following steps for each of a plurality of grids:

[0153] Randomly select a point within the current grid, perform plane fitting between the selected point and the points in the spherical neighborhood, obtain the plane fitting result, and increment the plane fitting number by one. The radius of the spherical neighborhood is equal to the preset grid side length. The plane fitting result includes the plane seed generated when the plane fitting is successful.

[0154] The process involves repeatedly selecting a point randomly within the current grid, performing plane fitting between the selected point and points in the spherical neighborhood, obtaining the plane fitting result, and incrementing the plane fitting count by one, until the number of plane fittings for the current grid reaches a preset threshold, thus obtaining all plane seeds for the current grid.

[0155] In some embodiments of this disclosure, the neighborhood plane growth module 300 is used to iteratively execute the following steps for each of the multiple plane seeds until multiple planes corresponding to the point cloud data are obtained:

[0156] Select the first target point from the current plane seed, and obtain each point in the neighborhood of the first target point. The first target point and each point in the neighborhood of the first target point are points in the point cloud data.

[0157] Based on the angle and distance between the normal vectors of each point in the neighborhood of the first target point and the current plane seed, as well as the number of points in the neighborhood of the first target point, it is determined whether each point in the neighborhood of the first target point should be added to the current plane seed.

[0158] In response to the addition of at least one point within the current plane seed, the current plane seed is updated.

[0159] In some embodiments of this disclosure, the neighborhood plane growth module 300 is used to select a second target point from the neighborhood of the first target point; the neighborhood plane growth module 300 is also used to add the second target point to the current plane seed in response to the following: the angle between the normal vectors of the second target point and the current plane seed is less than a preset normal vector angle threshold, the distance between the second target point and the current plane seed is less than a preset distance threshold, and the number of points in the spherical neighborhood of the first target point is greater than a preset number threshold.

[0160] In some embodiments of this disclosure, the neighborhood plane growth module 300 is further configured to estimate the plane equation based on the position of each point within each plane seed during the neighborhood plane growth process of multiple plane seeds, and obtain the plane equation of each plane seed; the neighborhood plane growth module 300 is further configured to remove outliers from each plane seed based on the plane equation of each plane seed, and obtain at least one outlier.

[0161] It should be noted that the specific implementation of the point cloud plane segmentation device in this disclosure is similar to the specific implementation of the point cloud plane segmentation method in this disclosure, and the technical effects of the point cloud plane segmentation device in this disclosure are similar to the technical effects of the point cloud plane segmentation method in this disclosure. For details, please refer to the description of the point cloud plane segmentation method section. In order to reduce redundancy, it will not be described again.

[0162] In addition, this disclosure also provides an electronic device, including:

[0163] Memory, used to store computer programs;

[0164] A processor is configured to execute a computer program stored in the memory, wherein when the computer program is executed, it implements the point cloud plane segmentation method described in any of the above embodiments of the present disclosure.

[0165] Below, for reference Figure 12 To describe an electronic device according to embodiments of this disclosure. For example... Figure 12 As shown, the electronic device includes one or more processors and memory.

[0166] A processor can be a central processing unit (CPU) or other form of processing unit with data processing and / or instruction execution capabilities, and can control other components in an electronic device to perform desired functions.

[0167] The memory can store one or more computer program products, and the memory can include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. The volatile memory may include, for example, random access memory (RAM) and / or cache memory. The non-volatile memory may include, for example, read-only memory (ROM), hard disk, flash memory, etc. One or more computer program products can be stored on the computer-readable storage medium, and the processor can run the computer program products to implement the point cloud plane segmentation methods of the various embodiments of this disclosure described above and / or other desired functions.

[0168] In one example, the electronic device may also include input devices and output devices, which are interconnected via a bus system and / or other forms of connection mechanism (not shown).

[0169] In addition, the input device may also include, for example, a keyboard, a mouse, etc.

[0170] This output device can output various information to the outside, including determined distance information, direction information, etc. The output device may include, for example, a display, a speaker, a printer, and a communication network and its connected remote output devices, etc.

[0171] Of course, for the sake of simplicity, Figure 12 Only some of the components of the electronic device relevant to this disclosure are shown, omitting components such as buses, input / output interfaces, etc. In addition, the electronic device may include any other suitable components depending on the specific application.

[0172] In addition to the methods and apparatus described above, embodiments of this disclosure may also be computer program products comprising computer program instructions that, when executed by a processor, cause the processor to perform the steps in the point cloud plane segmentation methods according to various embodiments of this disclosure as described in the foregoing portion of this specification.

[0173] The computer program product can be written in any combination of one or more programming languages ​​to perform the operations of the embodiments of this disclosure. The programming languages ​​include object-oriented programming languages ​​such as Java and C++, as well as conventional procedural programming languages ​​such as C or similar languages. The program code can be executed entirely on a user's computing device, partially on a user's computing device, as a standalone software package, partially on a user's computing device and partially on a remote computing device, or entirely on a remote computing device or server.

[0174] Furthermore, embodiments of this disclosure may also be computer-readable storage media storing computer program instructions that, when executed by a processor, cause the processor to perform the steps in the point cloud plane segmentation methods according to various embodiments of this disclosure as described in the foregoing portion of this specification.

[0175] The computer-readable storage medium may be any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may, for example, include, but is not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: electrical connections having one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0176] The basic principles of this disclosure have been described above with reference to specific embodiments. However, it should be noted that the advantages, benefits, and effects mentioned in this disclosure are merely examples and not limitations, and should not be considered as essential features of each embodiment of this disclosure. Furthermore, the specific details disclosed above are for illustrative and facilitative purposes only, and are not limitations. These details do not limit the scope of this disclosure to the necessity of employing the aforementioned specific details for implementation.

[0177] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. For system embodiments, since they largely correspond to method embodiments, the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments.

[0178] The block diagrams of devices, apparatuses, devices, and systems disclosed herein are merely illustrative examples and are not intended to require or imply that they must be connected, arranged, or configured in the manner shown in the block diagrams. As those skilled in the art will recognize, these devices, apparatuses, devices, and systems can be connected, arranged, and configured in any manner. Words such as “comprising,” “including,” “having,” etc., are open-ended terms meaning “including but not limited to,” and are used interchangeably with them. The terms “or” and “and” as used herein refer to the terms “and / or,” and are used interchangeably with them unless the context clearly indicates otherwise. The term “such as” as used herein refers to the phrase “such as but not limited to,” and is used interchangeably with it.

[0179] The methods and apparatus of this disclosure may be implemented in many ways. For example, they may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware. The above-described order of steps for the methods is for illustrative purposes only, and the steps of the methods of this disclosure are not limited to the order specifically described above unless otherwise specifically stated. Furthermore, in some embodiments, this disclosure may also be implemented as a program recorded on a recording medium, the program including machine-readable instructions for implementing the methods according to this disclosure. Thus, this disclosure also covers recording media storing programs for performing the methods according to this disclosure.

[0180] It should also be noted that in the apparatus, devices, and methods of this disclosure, the components or steps can be disassembled and / or recombined. These disassemblies and / or recombinations should be considered as equivalent solutions to this disclosure.

[0181] The above description of the disclosed aspects is provided to enable any person skilled in the art to make or use this disclosure. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects without departing from the scope of this disclosure. Therefore, this disclosure is not intended to be limited to the aspects shown herein, but rather to be carried out within the widest scope consistent with the principles and novel features disclosed herein.

[0182] The above description has been given for purposes of illustration and description. Furthermore, this description is not intended to limit the embodiments of this disclosure to the forms disclosed herein. Although numerous exemplary aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, alterations, additions, and sub-combinations therein.

Claims

1. A method for segmenting a point cloud plane, characterized in that, include: A phase distribution-based meshing method is used to divide the three-dimensional space corresponding to the point cloud data into multiple meshes. The phase distribution-based meshing method is to arrange a preset number of meshes with given side lengths according to a preset distribution to obtain a unit mesh, and then divide the three-dimensional space into meshes through the unit mesh. Different meshes within the unit mesh correspond to different phases, and the phase is used to characterize the mesh distribution position in the unit mesh. For grids with the same phase in the multiple grids, a parallel processing method is used to perform plane fitting on the points in each grid in the multiple grids to obtain multiple plane seeds. The plane seeds are initial planes generated for the point cloud data in each grid without expansion. By using parallel processing, neighborhood plane growth is performed on the multiple plane seeds to obtain multiple planes corresponding to the point cloud data.

2. The method according to claim 1, characterized in that, The point cloud data is divided into multiple grids in a phase distribution-based grid partitioning method, resulting in the following: Anchor points are determined based on the positions of each point in the point cloud data; Based on the anchor points, the three-dimensional space corresponding to the point cloud data is divided into multiple grids using the grid division method to obtain the multiple grids. Wherein, based on the anchor points, the three-dimensional space corresponding to the point cloud data is divided into multiple grids using the grid division method to obtain the multiple grids, including at least: Based on the anchor points and the first grid side length, the three-dimensional space corresponding to the point cloud data is divided into grids using the phase distribution-based grid partitioning method to obtain a first grid set; based on the anchor points and the second grid side length, the three-dimensional space corresponding to the point cloud data is divided into grids using the phase distribution-based grid partitioning method to obtain a second grid set, wherein the first grid side length and the second grid side length are different, and the multiple grids used for plane fitting through parallel processing include the first grid set and the second grid set.

3. The method according to claim 2, characterized in that, After dividing the three-dimensional space corresponding to the point cloud data into multiple grids based on the anchor points and using the grid division method, the method further includes: Based on the spatial coordinates of the anchor point and the spatial coordinates of each point in the point cloud data, the grid index of each point in the point cloud data is determined. Hash calculations are performed on each point in the point cloud data based on the grid index of each point to obtain the hash value of each point in the point cloud data; Based on the grid index of each point in the point cloud data, determine the phase number of each point in the point cloud data; A hash list is used to store the hash value of each point in the point cloud data and the phase number of each point in the point cloud data.

4. The method according to any one of claims 1-3, characterized in that, The step of performing plane fitting on points within each of the plurality of grids to obtain the plane seed for each grid includes: Perform the following steps for each of the plurality of grids: Randomly select a point within the current grid, perform plane fitting between the selected point and points within the spherical neighborhood, obtain the plane fitting result, and increment the plane fitting count by one. The radius of the spherical neighborhood is equal to the preset grid side length, and the plane fitting result includes the plane seed generated when the plane fitting is successful. The process of randomly selecting a point from the current grid, performing plane fitting between the selected point and points in the spherical neighborhood, obtaining the plane fitting result, and incrementing the plane fitting count by one is repeated until the plane fitting count of the current grid reaches a preset threshold, thus obtaining all plane seeds of the current grid.

5. The method according to any one of claims 1-3, characterized in that, The step of performing neighborhood plane growing on the multiple plane seeds to obtain multiple planes corresponding to the point cloud data includes: For each of the multiple planar seeds, the following steps are performed iteratively until multiple planes corresponding to the point cloud data are obtained: Select a first target point from the current plane seed, and obtain each point in the neighborhood of the first target point, wherein the first target point and each point in the neighborhood of the first target point belong to the points in the point cloud data; Based on the angle and distance between the normal vectors of each point in the neighborhood of the first target point and the current plane seed, and the number of points in the neighborhood of the first target point, it is determined whether each point in the neighborhood of the first target point should be added to the current plane seed. In response to the addition of at least one point within the current plane seed, the current plane seed is updated.

6. The method according to claim 5, characterized in that, The step of determining whether each point in the neighborhood of the first target point should be added to the current plane seed based on the angle and distance between the normal vectors of each point in the neighborhood of the first target point and the current plane seed, and the number of points in the neighborhood of the first target point, includes: Select a second target point from the neighborhood of the first target point; In response to the fact that the angle between the normal vectors of the second target point and the current plane seed is less than a preset normal vector angle threshold, the distance between the second target point and the current plane seed is less than a preset distance threshold, and the number of points in the spherical neighborhood of the first target point is greater than a preset number threshold, the second target point is added to the current plane seed.

7. The method according to any one of claims 1-3, characterized in that, The process of performing neighborhood plane growth on the plurality of planar seeds also includes: Plane equations are estimated based on the positions of points within each plane seed during the neighborhood plane growth process, thus obtaining the plane equations of each plane seed. Based on the plane equations of each plane seed, the outer points of each plane seed are eliminated to obtain at least one outer point.

8. A point cloud plane segmentation device, characterized in that, include: The meshing module is used to divide the three-dimensional space corresponding to the point cloud data into multiple meshes using a phase distribution-based meshing method. The phase distribution-based meshing method is to arrange a preset number of meshes with given side lengths according to a preset distribution to obtain a unit mesh, and to divide the three-dimensional space into meshes using the unit mesh. Different meshes within the unit mesh correspond to different phases, and the phase is used to characterize the mesh distribution position in the unit mesh. The plane fitting module is used to perform plane fitting on the points in each of the multiple grids in a parallel processing manner for grids with the same phase, and to obtain multiple plane seeds. The plane seeds are initial planes generated for the point cloud data in each grid without expansion. The neighborhood plane growth module is used to perform neighborhood plane growth on the multiple plane seeds in a parallel processing manner to obtain multiple planes corresponding to the point cloud data.

9. An electronic device, characterized in that, include: Memory, used to store computer program products; A processor for executing a computer program product stored in the memory, wherein when the computer program product is executed, it implements the method described in any one of claims 1-7.

10. A computer-readable storage medium having computer program instructions stored thereon, characterized in that, When the computer program instructions are executed by the processor, they implement the method described in any one of claims 1-7.