A large-scale point cloud denoising method based on GPU parallelism

By building a space enclosure box on the GPU platform to process point cloud data in parallel, using hash function and array optimization, the problem of low denoising efficiency of large-scale point clouds is solved, and more efficient point cloud denoising and reconstruction effects are achieved.

CN115601499BActive Publication Date: 2025-08-19SOUTH CHINA UNIV OF TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211187050.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-09-28
Publication Date
2025-08-19
Estimated Expiration
2042-09-28

AI Technical Summary

Technical Problem

When processing large-scale point cloud data, the denoising process is inefficient, which affects the point cloud reconstruction accuracy, especially at the edge of the workpiece or the reconstruction algorithm noise produces sparse cluster points, affecting the reconstruction surface quality.

Method used

A large-scale point cloud denoising method based on GPU parallelism is adopted. By building a space enclosure box and meshing, it uses hash functions and hash arrays for parallel optimization, deletes outliers, and improves computing resource utilization and denoising efficiency.

Benefits of technology

The efficiency of the point cloud denoising process is improved, the scope of application of point cloud reconstruction is expanded, the search time is reduced, and the accuracy and quality of point cloud reconstruction is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115601499B_ABST
    Figure CN115601499B_ABST
Patent Text Reader

Abstract

The present invention discloses a large-scale point cloud denoising method based on GPU parallelism. The method of the present invention comprises the following steps: in a graphics computing platform of a GPU, for three-dimensional point cloud image data that has not been denoised, constructing a spatial bounding box of a point cloud in the shape of a rectangular parallelepiped, and including all data points in the point cloud in the spatial bounding box in the shape of a rectangular parallelepiped; dividing the spatial bounding box into a grid; calculating the grid coordinates of each data point according to the divided grids; constructing a hash function to calculate the hash value of the grid coordinates of each data point, and then constructing a hash array to store the hash value calculated for each grid coordinate; constructing an auxiliary array to perform parallel optimization on the hash array; performing parallel calculation of hash array sorting and merging for all data points according to the hash value of the grid in which they are located, calculating the number of point clouds according to the hash value of the grid, and deleting outliers therein. Compared with the existing technology, the present invention improves the processing efficiency of the point cloud denoising process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of image processing, and in particular relates to a large-scale point cloud denoising method based on GPU parallelism. Background Art

[0002] With the development of intelligent manufacturing, non-contact structured light vision sensors are becoming increasingly widely used in industrial applications. They have already gained a significant position in reverse engineering, workpiece quality inspection, and workpiece dimension measurement. Vision sensors using coded structured light for point cloud reconstruction employ a triangulation measurement model, a non-contact, fast, and highly accurate measurement method. Coded structured light uses a projector to project a special coded pattern onto the object to be measured. The 3D point cloud is reconstructed by capturing the deformed coded pattern. This deformation includes depth information about the surface of the object being measured. By decoding and analyzing the captured coded scene image, the decoded value for each pixel is obtained. Based on the triangulated geometric model formed by the camera and projector, the spatial position of the pixel in the image can be calculated, thereby obtaining 3D information about the surface of the object being measured.

[0003] Currently, when using structured light sensors to reconstruct point clouds, reflections from workpiece edges or noise from the reconstruction algorithm can create sparse outliers in the reconstructed point cloud. This can affect the quality of the reconstructed surface and make some workpieces unsuitable for point cloud reconstruction. To improve the accuracy of point cloud reconstruction, denoising is required for the reconstructed 3D image.

[0004] Existing techniques for point cloud denoising are implemented through algorithms, which are based on statistical filtering. Statistical filtering directly denoises the entire point cloud image by determining the location of each point, calculating the number of points in the neighborhood around each point, and determining whether it is an outlier. However, performing the algorithmic step of searching the neighborhood of each point is time-consuming for computers when dealing with large-scale point cloud data, reducing the algorithm's data processing efficiency during denoising. Summary of the Invention

[0005] In order to overcome one or more defects and shortcomings of the prior art, the present invention provides a large-scale point cloud denoising method based on GPU parallelism, which is used to improve the processing efficiency of large-scale point cloud denoising.

[0006] In order to achieve the above object, the present invention adopts the following technical solutions.

[0007] A large-scale point cloud denoising method based on GPU parallelism includes the following steps:

[0008] In the GPU graphics computing platform, for the 3D point cloud image data that has not been denoised, a spatial bounding box of the point cloud in the shape of a cuboid is constructed, and all data points in the point cloud are contained in the spatial bounding box in the shape of a cuboid;

[0009] Divide the spatial bounding box into a grid;

[0010] According to the divided grid, the grid coordinate origin is set to (0,0,0), the length of a single grid in the grid coordinate is set to 1, and then the grid coordinate of each data point is calculated;

[0011] Construct a hash function to calculate the hash value of each data point grid coordinate, and then construct a hash array to store the calculated hash value of each grid coordinate;

[0012] Construct an auxiliary array to perform parallel optimization on the hash array;

[0013] All data points are sorted and merged in parallel according to the hash value of the grid where they are located. The number of point clouds is calculated according to the hash value of the grid, and outliers are deleted.

[0014] Preferably, the grid division of the spatial bounding box includes dividing the spatial bounding box into multiple rectangular blocks with the same volume and the same length, width and height, setting the number of grids on each side of the length, width and height according to the number of rectangular blocks, and calculating the side length of each rectangular block.

[0015] Furthermore, the specific steps of dividing the spatial bounding box into multiple cuboids to obtain a grid include:

[0016] All data points of the point cloud are sorted to obtain the maximum and minimum values of the coordinates of all data points of the point cloud on the X-axis, Y-axis, and Z-axis in the spatial coordinate system. Then, the difference between the maximum and minimum values is calculated to obtain the spatial bounding box and the side length of each cuboid.

[0017] Furthermore, the spatial bounding box and the side length of each cuboid are calculated as follows:

[0018]

[0019]

[0020] Among them, x max 、x min Represents the maximum and minimum values on the X-axis, y max 、y min Represents the maximum and minimum values on the Y axis, z max 、z minThey represent the maximum and minimum values on the Z axis respectively. X, Y, and Z represent the lengths of the space bounding box on the X, Y, and Z axes respectively. x 、l y 、l z Represents the length, width, and height of each cuboid, and sets the number of grids on each side of the length, width, and height of the spatial bounding box represented by N to be the same.

[0021] Furthermore, the constructed hash function is defined as follows:

[0022] H(x g ,y g ,z g )=x g +y g N+z g N 2

[0023] Among them, (x g ,y g ,z g ) is the coordinate of each grid, H(x g ,y g ,z g ) represents a hash function.

[0024] Furthermore, the step of constructing an auxiliary array to perform parallel optimization on the hash array includes:

[0025] Construct four auxiliary arrays: sort index array, merge hash array, start index array, and end index array;

[0026] Sort the hash array and the corresponding index array together by hash value size to obtain a sorted hash array and a sorted index array;

[0027] Merge the same hash values in the sorted hash array to obtain a merged hash array without duplicate hash values;

[0028] Construct a starting hash index array and an ending hash index array, merge the hash value positions from the merged hash array and reset the indexes, so as to respectively record the indexes where hash conflicts occur.

[0029] Furthermore, the steps of performing parallel computing and deleting outliers include:

[0030] All data points are sorted and merged according to the hash value of the grid where they are located, and then the hash value of the grid where each data point is located and the surrounding grids are calculated in parallel. The number of point clouds is calculated according to the hash value of the grid, and the outliers are deleted.

[0031] Compared with the prior art, the technical solution of the present invention has the following beneficial effects:

[0032] By using grids to divide the reconstructed disordered point cloud and combining it with the parallel design of hash arrays, the method of searching for outliers in the entire spatial bounding box can be transformed into a method of parallel searching for outliers in multiple rectangular spaces, thereby enhancing the utilization of GPU computing resources and improving the parallel performance of the denoising process. Compared with existing technologies, this method reduces the time spent on field search, improves the efficiency of the point cloud denoising process, and expands the scope of application of point cloud reconstruction. BRIEF DESCRIPTION OF THE DRAWINGS

[0033] Figure 1 This is a general flow chart of one of the GPU-based parallel large-scale point cloud denoising methods of the present invention;

[0034] Figure 2 This is a 3D point cloud with a large number of outliers before denoising;

[0035] Figure 3 For Figure 2 use Figure 1 3D point cloud image after denoising by the method;

[0036] Figure 4 This is a schematic diagram of the data points in the point cloud after constructing the spatial bounding box;

[0037] Figure 5 for Figure 4 Schematic diagram of the mid-space bounding box after meshing;

[0038] Figure 6 Schematic diagram of a hash array designed for parallel optimization. DETAILED DESCRIPTION

[0039] In order to make the purpose, technical solutions and advantages of the present invention more clearly understood, the present invention will be further described in detail below in conjunction with the accompanying drawings and embodiments thereof. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention.

[0040] Example

[0041] like Figure 1 As shown in FIG, a large-scale point cloud denoising method based on GPU parallelism in this embodiment has the following specific steps:

[0042] S1. The graphics computing platform in the GPU constructs a spatial bounding box of the point cloud in the shape of a rectangular parallelepiped for the 3D point cloud image data that has not been denoised, and includes all data points in the point cloud in the spatial bounding box in the shape of the rectangular parallelepiped; the structure of the spatial bounding box is as follows: Figure 3 As shown;

[0043] S2. Divide the spatial bounding box into multiple cuboids of equal size and length, width, and height based on the GPU memory size. Set the number of grids on each side of the length, width, and height based on the number of cuboids. In this embodiment, the number of grids on each side of the length, width, and height is preferably equal, so that each point in the point cloud is located within a certain cuboid. The specific process includes:

[0044] Sort all the data points of the point cloud to obtain the maximum and minimum values of the coordinates of all the data points of the point cloud on the X-axis, Y-axis, and Z-axis in the spatial coordinate system. Then, calculate the difference between the maximum and minimum values according to the following formula to obtain the side length of the spatial bounding box and the cuboid:

[0045]

[0046]

[0047] Among them, x max 、x min Represents the maximum and minimum values on the X-axis, y max 、y min Represents the maximum and minimum values on the Y axis, z max 、z min They represent the maximum and minimum values on the Z axis respectively. X, Y, and Z represent the lengths of the space bounding box on the X, Y, and Z axes respectively. x 、l y 、l z Represents the length, width, and height of each cuboid, and N represents the number of grids on each side of the length, width, and height of the spatial bounding box; the structure of the spatial bounding box after grid division is as follows Figure 4 As shown;

[0048] S3. According to the divided grid, the grid coordinate origin is set to (0,0,0), the length of a single grid in the grid coordinate is set to 1, and then the grid coordinate of each data point is calculated;

[0049] S4. Construct a hash function to calculate the hash value of each data point grid coordinate, and then construct a hash array to store the calculated hash value of each grid coordinate; the hash function is defined as follows:

[0050] H(x g ,y g ,z g )=x g +y g N 2 +z g N 3

[0051] Among them, (x g ,y g ,zg ) is the coordinate of each grid, H(x g ,y g ,z g ) represents a hash function;

[0052] Hash array is a type of array used to store hash values on the GPU;

[0053] S5. Construct an auxiliary array to perform parallel design on the hash array. The process is as follows: Figure 6 The specific steps include:

[0054] S51. Construct four auxiliary arrays in the GPU: a sort index array, a merge hash array, a start index array, and an end index array; the index array corresponding to the hash array is an integer array starting from 0, representing the index of the stored hash value;

[0055] S52. Sort the hash array and the corresponding index array by hash value to obtain a sorted hash array and a sorted index array;

[0056] S53, merging identical hash values in the sorted hash array to obtain a merged hash array without duplicate hash values; then constructing a starting hash index array and an ending hash index array, resetting the indexes from the merged hash value positions, and sequentially recording the indexes where hash conflicts occur; based on the sorted index array, the merged hash array, the starting index array, and the ending index array, parallel computing can be implemented when processing the hash array in a GPU;

[0057] S6. Based on the parallel design of step S5, all data points are sorted and merged according to the hash value of the grid where they are located, and then the hash value of the grid where each data point is located and the surrounding grids are calculated in parallel, the number of point clouds is calculated according to the hash value of the grid, and outliers are deleted; Figure 2 and Figure 3 As shown in the comparison between before and after denoising, the present embodiment has a significant effect in removing outlier noise.

[0058] In combination with steps S5 and S6, parallel optimization of the hash array can solve the hash conflict problem during parallel computing, improve the efficiency of hash search, and improve the efficiency of removing outliers in the point cloud.

[0059] Compared with the prior art, the large-scale point cloud denoising method based on GPU parallelism in this embodiment has the following advantages:

[0060] By using grids to divide the reconstructed disordered point cloud and combining it with the parallel design of hash arrays, the method of searching for outliers in the entire spatial bounding box can be transformed into a method of parallel searching for outliers in multiple rectangular spaces, thereby enhancing the utilization of GPU computing resources and improving the parallel performance of the denoising process. Compared with existing technologies, this method reduces the time spent on field search, improves the efficiency of the point cloud denoising process, and expands the scope of application of point cloud reconstruction.

[0061] The above embodiments are preferred implementation modes of the present invention, but the implementation modes of the present invention are not limited to the above embodiments. Any other changes, modifications, substitutions, combinations, and simplifications that do not deviate from the spirit and principles of the present invention should be considered as equivalent replacement methods and are included in the scope of protection of the present invention.

Claims

1. A large-scale point cloud denoising method based on GPU parallelism, characterized in that: The steps are as follows: In the GPU graphics computing platform, for the 3D point cloud image data that has not been denoised, a spatial bounding box of the point cloud in the shape of a cuboid is constructed, and all data points in the point cloud are contained in the spatial bounding box in the shape of a cuboid; Divide the spatial bounding box into a grid; According to the divided grid, the grid coordinate origin is set to (0,0,0), the length of a single grid in the grid coordinate is set to 1, and then the grid coordinates of each data point are calculated; Construct a hash function to calculate the hash value of each data point grid coordinate, and then construct a hash array to store the calculated hash value of each grid coordinate; Construct an auxiliary array to perform parallel optimization on the hash array; Perform parallel computation of hash array sorting and merging for all data points based on the hash value of the grid they are in, calculate the number of point clouds based on the hash value of the grid, and delete outliers. The constructed hash function is defined as follows: H(x g ,y g ,z g )=x g +y g N+z g N 2 Among them, (x g ,y g ,z g ) is the coordinate of each grid, H(x g ,y g ,z g ) represents a hash function; the number of grids on each side of the length, width, and height of the spatial bounding box represented by N is equal; The step of constructing an auxiliary array to perform parallel optimization on the hash array includes: Construct four auxiliary arrays: sort index array, merge hash array, start index array, and end index array; Sort the hash array and the corresponding index array together by hash value size to obtain a sorted hash array and a sorted index array; Merge the same hash values in the sorted hash array to obtain a merged hash array without duplicate hash values; Construct a starting hash index array and an ending hash index array, merge the hash value positions from the merged hash array and reset the indexes, so as to respectively record the indexes where hash conflicts occur; The steps for parallel computing and removing outliers include: All data points are sorted and merged according to the hash value of the grid where they are located, and then the hash value of the grid where each data point is located and the surrounding grids are calculated in parallel. The number of point clouds is calculated according to the hash value of the grid, and the outliers are deleted.

2. The large-scale point cloud denoising method based on GPU parallelism according to claim 1, characterized in that: The grid division of the spatial bounding box includes dividing the spatial bounding box into a plurality of cuboids of the same volume and length, width and height, setting the number of grids on each side of length, width and height according to the number of cuboids, and calculating the side length of each cuboid.

3. The large-scale point cloud denoising method based on GPU parallelism according to claim 2, characterized in that: The specific steps of dividing the spatial bounding box into multiple cuboids to obtain a grid include: All data points of the point cloud are sorted to obtain the maximum and minimum values of the coordinates of all data points of the point cloud on the X-axis, Y-axis, and Z-axis in the spatial coordinate system. Then, the difference between the maximum and minimum values is calculated to obtain the spatial bounding box and the side length of each cuboid.

4. The large-scale point cloud denoising method based on GPU parallelism according to claim 3, characterized in that: The calculated spatial bounding box and the side length of each cuboid are shown as follows: Among them, x max 、x min Represents the maximum and minimum values on the X-axis, y max 、y min Represents the maximum and minimum values on the Y axis, z max 、z min They represent the maximum and minimum values on the Z axis respectively. X, Y, and Z represent the lengths of the space bounding box on the X, Y, and Z axes respectively. x 、l y 、l z Represents the length, width, and height of each cuboid, and sets the number of grids on each side of the length, width, and height of the spatial bounding box represented by N to be the same.

Citation Information

Patent Citations

  • Nearest neighbor point set quick search method based on Hash-Cube spatial hierarchy partition structure

    CN106156281A

  • Workpiece allowance rapid solving method based on three-dimensional measurement point cloud data

    CN111563861A