A point cloud denoising method based on denoising autoencoder
By constructing a three-layer network model based on a denoising autoencoder, the problem of point cloud denoising in existing technologies that is difficult to balance effect and feature retention is solved, achieving efficient denoising and reducing dependence on labeled data.
Patent Information
- Application Number
- CN202310184960.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-01
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2043-03-01
AI Technical Summary
Existing technologies have difficulty in effectively balancing denoising effect and feature retention during point cloud denoising, and require a large amount of labeled data for training, which is costly and difficult to implement.
Using a denoising autoencoder approach, a three-layer network model is constructed, consisting of a Transformer layer, an Encoder layer, and a Decoder layer. By corrupting the point cloud data, performing local neighborhood sampling, and PCA alignment, latent features are extracted and decoded, and the predicted displacement of noise points is output to complete the denoising process.
On the basis of maintaining the geometric characteristics of point cloud data, noise is efficiently removed, the dependence on label data is reduced, and the robustness and generalization ability of the denoising network are improved.
Smart Images

Figure CN117196963B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of three-dimensional point cloud denoising, and relates to a point cloud denoising method based on a denoising autoencoder. Background Art
[0002] Point clouds are becoming an increasingly important data representation in the field of computer vision. They can be directly obtained through methods such as laser scanners and drone-mounted oblique photography. However, point cloud quality is easily affected by factors such as the environment, experience, and lighting. Directly acquired point clouds often contain significant noise and outliers, especially at edges and corners. Effectively utilizing point cloud data typically requires denoising.
[0003] The purpose of point cloud denoising is to remove or repair noise as efficiently as possible while maintaining the geometric characteristics of point cloud data, thereby improving the effectiveness of subsequent reconstruction, segmentation, classification, and other tasks.
[0004] Currently, there are two main methods for point cloud denoising: one is mainly based on improvements to traditional denoising methods. This method mainly removes outliers by fitting local surfaces or curves. The denoising effect depends on the selection of specific parameters, which has limitations in practical applications and poor robustness. It is difficult to strike a balance between denoising effect and feature preservation. The other method is based on deep learning to build a supervised learning network that can directly process point cloud data. This method requires a large number of high-quality, well-labeled datasets as training sets, and uses the trained network to perform denoising. However, in practical applications, point cloud data is often large, dense, and unevenly distributed. The cost of manual labeling is too high and there is a lack of sufficient prior knowledge, making the production of datasets difficult. Summary of the Invention
[0005] In order to overcome the shortcomings of the existing technology, the present invention provides a point cloud denoising method based on a denoising autoencoder. First, the point cloud data is processed, and the point cloud denoising problem is regarded as a local problem. The neighborhood of each point is taken and randomly sampled; secondly, the Transform layer creates obstacles for subsequent feature extraction by appropriately destroying the input data; then, the point cloud is aligned by the rotation matrix calculated by the Principal Component Analysis (PCA) method, and the point cloud is rotated to the same angle; then, the Encoder layer extracts potential features from the damaged data through a multilayer perceptron (MLP), and uses maximum pooling to enhance translation invariance, rotation invariance and scale invariance; finally, the Decoder layer of the network decodes the potential features through full convolution, outputs the predicted displacement of the noise point, and completes denoising; the present invention removes noise as efficiently as possible while maintaining the geometric characteristics of the point cloud data.
[0006] The technical solution adopted by the present invention to solve its technical problem is:
[0007] A point cloud denoising method based on a denoising autoencoder comprises the following steps:
[0008] Step 1: Based on the denoising autoencoder framework, a three-layer network model is constructed, which includes a Transform layer for destroying point cloud data, an Encoder layer for encoding, and a Decoder layer for decoding.
[0009] Step 2: Preprocess the input data to convert the point cloud data into a format that is easier to be directly processed by the network, which can reduce the amount of calculation and make the adjustment of network parameters more effective;
[0010] The local neighborhood is obtained by calculating the distance between points, and the sampling of each local neighborhood is controlled to ensure that the number of point clouds in the neighborhood is consistent;
[0011] Among them, the local neighborhood of a point cloud refers to the set of points in the point cloud data that are less than a specific distance from the selected point;
[0012] Step 3: Input the processed point cloud data into the Transform layer constructed in the first step for destruction processing;
[0013] Step 4: Align point cloud data based on PCA to enhance the invariance of the network;
[0014] Among them, the invariance of the network is translation invariance, rotation invariance and scale invariance;
[0015] Among them, translation invariance means that the coordinates of each point are changed by translating the point cloud, but the network can still recognize it as the same set of point clouds;
[0016] Among them, rotation invariance means that the coordinates of each point change by rotating the point cloud, but the network can still recognize it as the same set of point clouds;
[0017] Among them, scale invariance means that the coordinates of each point are changed by scaling the point cloud, but the network can still recognize it as the same set of point clouds;
[0018] Step 5: Input the processed point cloud into the Encoder layer constructed in the first step to obtain the potential features of the data;
[0019] Step 6: Input the potential features extracted from the Encoder layer into the Decoder layer constructed in the first step, output the displacement acting on the noise point, and complete the denoising process.
[0020] Furthermore, in the first step, the denoising autoencoder is a type of autoencoder that accepts corrupted data as input and is trained to predict the original uncorrupted data;
[0021] Among them, the Transform layer performs destructive transformation on the input point cloud to obtain damaged point cloud data;
[0022] The encoder layer is trained on damaged point cloud data to learn potential features. This process is called encoding, and the obtained potential features have strong noise resistance.
[0023] Among them, the Decoder layer reconstructs the potential features. This process is called decoding. Through iterative training, the network parameters are continuously adjusted to minimize the loss function and obtain the optimal model.
[0024] Going further, the process of the second step is as follows:
[0025] In order to avoid reducing the quality of the point cloud while denoising, step (2.1) establishes a point cloud noise model:
[0026]
[0027] Among them, P′ represents the original noise point cloud set, p′ i is the i-th point in P′, P represents the noise-free point cloud set, p i is the i-th point in P. n i represents the interference vector acting on each noise-free point, and p i Same dimension;
[0028] In step (2.2), considering that the denoising result of any noise point comes from the local neighborhood of the point, the local neighborhood of each point is defined as:
[0029]
[0030] Where r is the neighborhood radius, P′ i Indicated by p′ i is the point set within the neighborhood of the circle with r as radius;
[0031] Among them, d ij is point p′ j (x i ,y i ,z i ) and p′ j (x j ,y j ,z j ):
[0032]
[0033] In step (2.3), random sampling is used to control the sampling so that the number of point clouds after processing is consistent;
[0034] Preferably, the process of step (2.3) is as follows:
[0035] Step (2.3.1) calculates the number of point clouds in the current input neighborhood, and controls the number of points in the neighborhood to be constant at N through sampling;
[0036] Step (2.3.2) When the number of points in the neighborhood is greater than N, perform a downsampling operation d(P′ i ), randomly select N points in the neighborhood as network input; when the number of point clouds in the neighborhood is less than N, an upsampling operation u(P′) is performed i ), fill the origin p′ i Make the number of point clouds N;
[0037]
[0038] Among them, point cloud downsampling is to resample the point cloud according to certain sampling rules, the purpose is to reduce the density of the point cloud while ensuring that the overall geometric characteristics of the point cloud remain unchanged, while upsampling is to increase the density of the point cloud;
[0039] in, After processing, p i ′’s point cloud neighborhood set, is the neighborhood P i ′ is the number of point clouds, N is the number of constant currents in the neighborhood of the point cloud, and its value is 500.
[0040] More preferably, the process of step (2.3.2) is as follows:
[0041] Step (2.3.2.1) generates a random number seed using a random function of a programming language;
[0042] Step (2.3.2.2) generates a random number through a random number generation function and calculates the number of points in the current neighborhood. Perform the remainder operation and remove the corresponding points until the number of points in the neighborhood is N.
[0043] Furthermore, the process of the third step is as follows:
[0044] Step (3.1) for the input point cloud Add Gaussian white noise disturbance to get
[0045] Adding obstacles to the subsequent learning process of the network makes the learned features more expressive;
[0046]
[0047] in, is a perturbation vector that obeys the normal distribution, and ~ means it obeys N(0,σ 2 I) represents a normal distribution with mean 0 and standard deviation σ. σ is experimentally chosen to be 0.5% of the diagonal length of the bounding box. I is a 3×3 identity matrix to match the dimension of the point cloud data.
[0048] Among them, Gaussian white noise is noise data whose amplitude follows a normal distribution and whose power spectrum density follows a uniform distribution;
[0049] Step (3.2) clears certain nodes to zero according to a certain probability, further improving the generalization ability of the network and reducing its dependence on input data;
[0050] Preferably, the process of step (3.2) is as follows:
[0051] Step (3.2.1) generates a random vector β using a Bernoulli distribution with probability η;
[0052] β~Benoulli(μ)
[0053] Among them, Benoulli() represents Bernoulli distribution, which is a discrete random distribution and a special case of binomial distribution. The value of μ is 0.3;
[0054] Step (3.2.2) combines β with the input Multiplying them together, some nodes are shielded to obtain
[0055]
[0056] The process of the fourth step is as follows;
[0057] Step (4.1) calculates the covariance matrix, The coordinates of each point (x j ,y j ,z j ) to find the mean Get the symmetric covariance matrix C:
[0058]
[0059] Where ∑ is the summation symbol;
[0060] Step (4.2) performs singular value decomposition (SVD) on C to calculate the eigenvectors v1, v2, and v3. These three eigenvectors are orthogonal to each other.
[0061] Among them, using SVD to decompose the matrix can obtain the matrix elements that represent the most essential changes of the matrix;
[0062] Among them, the eigenvectors are the three directions with the largest variance of the point cloud projection, which can be used as the main feature components of the point cloud;
[0063] In step (4.3), the three eigenvectors are orthogonal to each other and are used as the three main axes for point cloud alignment. The eigenvectors are composed into a rotation matrix T according to their corresponding eigenvalues from large to small:
[0064] T=[v1,v2,v3]
[0065] Step (4.4) uses the rotation matrix to align the point clouds with different rotation angles to one direction, and obtain
[0066]
[0067] The process of the fifth step is as follows:
[0068] Step (5.1) obtains global features through MLP;
[0069] The MLP consists of 5 convolutional layers and 5 Batch Normalization (BN) layers. ReLU is used as the activation function. The dimension of the input point cloud data is 500*3, and after convolution, the output dimension is 500*1024 global features.
[0070] Among them, each convolution layer in the convolutional neural network is composed of several convolution units, and each convolution unit has parameter All of them are obtained through the optimization of the back-propagation algorithm. The purpose of the convolution operation is to extract different features of the input. The first convolution layer may only extract some low-level features such as edges, lines, and corners. More layers of the network can iteratively extract more complex features from low-level features.
[0071] Among them, the convolution kernel is when processing an image. Given an input image, the pixels in a small area of the input image are weighted averaged to become each corresponding pixel in the output image, where the weight is defined by a function, which is called the convolution kernel;
[0072] Among them, the BN layer normalizes the input data to prevent the data distribution in the middle layer from changing. By calculating the sample mean and sample variance and introducing weight coefficients and bias coefficients to complete the normalization operation, it can speed up the training of the network, improve the generalization ability of the network, and disrupt the training order of the samples.
[0073] Among them, the activation function is a function that runs on the neurons of the artificial neural network. It is responsible for mapping the input of the neuron to the output end and is used for the output of the hidden layer neurons. It plays a very important role in the neural network model to learn and understand complex functions. ReLU can output nonlinear results for neurons after linear transformation;
[0074] In step (5.2), the features are compressed by MAX pooling to obtain potential features with a dimension of 1*1024;
[0075] Among them, MAX pooling takes the point with the largest median value in the local receptive field, extracts the strongest corresponding part of the feature and enters the next layer. MAX pooling can compress the features while also enhancing translation invariance, rotation invariance and scale invariance.
[0076] Preferably, the process of step (5.1) is:
[0077] Step (5.1.1) undergoes 64 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*64, which is then normalized through a batch normalization layer.
[0078] Step (5.1.2) undergoes 128 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*128, which is then normalized through a batch normalization layer.
[0079] Step (5.1.3) undergoes 256 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*256, which is then normalized through a batch normalization layer.
[0080] Step (5.1.4) undergoes 512 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*512, which is then normalized through a batch normalization layer.
[0081] In step (5.1.5), after 1024 1*1 convolutions and ReLU activation functions, the output dimension is 500*1024 features, which are then normalized through the BN layer.
[0082] In the sixth step, the decoder layer includes 4 fully connected layers, 3 batch normalization layers, and 3 dropout layers. The ReLU activation function is used to input the potential features into the decoder layer. The network output is constrained by the set loss function, and the network is trained by backpropagation. The displacement of the noise point is output and the inverse displacement is applied to the noise point to make it close to the noise-free point cloud.
[0083] The loss function is a function that maps the value of a random event or its related random variables to a non-negative real number to represent the loss of the random event. It is associated with the optimization problem as a learning criterion, and the model is solved and evaluated by minimizing the loss function.
[0084] Among them, backpropagation is to continuously update the parameters of neurons in the network through multiple iterative training. When the loss function reaches the set threshold or the maximum number of iterations, convergence is completed and training is terminated;
[0085] In the fully connected layer, each node is connected to all nodes in the previous layer, which is used to integrate the features extracted previously. Due to its fully connected nature, the fully connected layer generally has the most parameters.
[0086] Among them, the dropout layer reduces overfitting by ignoring half of the feature detectors in each training batch, which can reduce the interaction between hidden layer nodes;
[0087] The process of the sixth step is as follows:
[0088] Step (6.1) reconstructs the feature vector into a vector corresponding to the noise point p through the fully connected layer. i 'Predicted displacement at the same latitude Apply it to the noise point to get the predicted point
[0089]
[0090] Step (6.2) calculates the predicted point through the loss function With the noise-free point p iThe loss between them guides the convergence of the network, and the process is as follows:
[0091] The final prediction of the network in step (6.2.1) is to act on the noise point p i 'Displacement Therefore, it is necessary to choose a suitable loss function so that With p i This goal is consistent with the characteristics of L2 distance. Based on L2 distance, the first loss function L is designed. s :
[0092]
[0093] in, L2 distance is also called Euclidean distance, which is used to represent the distance between two points or multiple points. Min represents the minimum value.
[0094] In step (6.2.2), in order to make the predicted point cloud as evenly distributed as possible and to avoid excessive clustering of points, a correction term L is added. r :
[0095]
[0096] Among them, max represents the maximum value;
[0097] Step (6.2.3) combines the above to obtain the overall loss function L a :
[0098] L a =αL s +(1-α)L r
[0099] Where α is a weight parameter used to control the degree of correction during training.
[0100] The beneficial effects of the present invention are mainly manifested in the following aspects: Based on the concept of denoising autoencoders, a novel point cloud denoising network with a three-layer structure is proposed. First, the present invention achieves denoising by predicting the displacement of noisy point clouds, correcting the displacement of the noisy point clouds to avoid reducing the quality of the point cloud dataset. Second, the present invention creates obstacles for point cloud feature extraction by appropriately destroying the point cloud, and learns the ability to process noisy data from the damaged point cloud, thereby preserving the sharp features of the point cloud and having good robustness and generalization capabilities. Finally, the present invention does not require the preparation of a high-quality labeled dataset for network training. During training, the network can complete the processing of the dataset itself and add negative samples, which is convenient and fast. BRIEF DESCRIPTION OF THE DRAWINGS
[0101] Figure 1 This is a diagram of the denoising network structure based on the denoising autoencoder;
[0102] Figure 2 This is a comparison of point cloud denoising results between the method of the present invention and other methods. DETAILED DESCRIPTION
[0103] The present invention will be further described below with reference to the accompanying drawings.
[0104] Reference Figure 1 and Figure 2 , a point cloud denoising method based on denoising autoencoder, comprising the following steps:
[0105] Step 1: If Figure 1 A three-layer network model is constructed based on the denoising autoencoder framework, which includes a Transform layer for destroying point cloud data, an Encoder layer for encoding, and a Decoder layer for decoding.
[0106] Among them, denoising autoencoders are a type of autoencoder that accepts corrupted data as input and is trained to predict the original uncorrupted data;
[0107] Among them, the Transform layer performs destructive transformation on the input point cloud to obtain damaged point cloud data;
[0108] The encoder layer is trained on damaged point cloud data to learn potential features. This process is called encoding, and the obtained potential features have strong noise resistance.
[0109] Among them, the Decoder layer reconstructs the potential features. This process is called decoding. Through iterative training, the network parameters are continuously adjusted to minimize the loss function and obtain the optimal model.
[0110] Step 2: Preprocess the input data to convert the point cloud data into a format that is easier to be directly processed by the network, which can reduce the amount of calculation and make the adjustment of network parameters more effective;
[0111] The local neighborhood is obtained by calculating the distance between points, and the sampling of each local neighborhood is controlled to ensure that the number of point clouds in the neighborhood is consistent;
[0112] Among them, the local neighborhood of a point cloud refers to the set of points in the point cloud data that are less than a specific distance from the selected point;
[0113] In order to avoid reducing the quality of the point cloud while denoising, step (2.1) establishes a point cloud noise model:
[0114]
[0115] Among them, P′ represents the original noise point cloud set, p′ iis the i-th point in P′, P represents the noise-free point cloud set, p i is the i-th point in P, n i represents the interference vector acting on each noise-free point, and p i Same dimension;
[0116] In step (2.2), considering that the denoising result of any noise point comes from the local neighborhood of the point, the local neighborhood of each point is defined as:
[0117]
[0118] Where r is the neighborhood radius, P′ i Indicated by p′ i is the point set within the neighborhood of the circle with r as radius;
[0119] Among them, r is obtained by experiment based on the current point cloud set and is set to 5% of the point cloud bounding box length. In practical applications, r is selected based on the characteristics of the actual data set or the training effect;
[0120] The point cloud bounding box is a cuboid formed by the maximum and minimum values of the point cloud in the x-axis, y-axis, and z-axis directions.
[0121] Among them, d ij is point p′ j (x i ,y i ,z i ) and p′ j (x j ,y j ,z j ):
[0122]
[0123] In step (2.3), random sampling is used to control the sampling so that the number of point clouds after processing is consistent;
[0124] Step (2.3.1) calculates the number of point clouds in the current input neighborhood, and controls the number of points in the neighborhood to be constant at N through sampling;
[0125] Step (2.3.2) When the number of points in the neighborhood is greater than N, perform a downsampling operation d(P′ i ), randomly select N points in the neighborhood as network input; when the number of point clouds in the neighborhood is less than N, an upsampling operation u(P′) is performed i ), fill the origin p′ i Make the number of point clouds N;
[0126]
[0127] Among them, point cloud downsampling is to resample the point cloud according to certain sampling rules, the purpose is to reduce the density of the point cloud while ensuring that the overall geometric characteristics of the point cloud remain unchanged, while upsampling is to increase the density of the point cloud;
[0128] in, is the processed p′ i The point cloud neighborhood set, is the neighborhood P′ i The number of point clouds, N is the number of constant currents in the point cloud neighborhood, and the value is 500;
[0129] In step (2.3.2.1), a random number seed that changes with time is generated using the srand(time(NULL)) function in the C++ programming language. The random number seed is used to generate the initial value of the pseudo-random number.
[0130] Among them, time(NULL) uses the current time as the seed to generate random numbers. Using time(NULL) as the parameter of srand() can ensure that the generated random number seed keeps changing.
[0131] Step (2.3.2.2) generates a random number based on the previous random number seed using the rand() function in the C++ programming language and calculates the number of points in the current neighborhood. Perform the remainder operation and remove the corresponding points until the number of points in the neighborhood is N.
[0132] Step 3: Input the processed point cloud data into the Transform layer constructed in the first step for destruction processing. The process is as follows:
[0133] Step (3.1) for the input point cloud Add Gaussian white noise disturbance to get
[0134] Adding obstacles to the subsequent learning process of the network makes the learned features more expressive;
[0135]
[0136] in, is a perturbation vector that obeys the normal distribution, and ~ means it obeys N(0,σ 2 I) represents a normal distribution with mean 0 and standard deviation σ, where σ is chosen to be 0.5% of the diagonal length of the bounding box, and I is a 3×3 identity matrix to match the dimension of the point cloud data;
[0137] Among them, Gaussian white noise is noise data whose amplitude follows a normal distribution and whose power spectrum density follows a uniform distribution;
[0138] Step (3.2) clears certain nodes to zero according to a certain probability, further improving the generalization ability of the network and reducing its dependence on input data;
[0139] Step (3.2.1) generates a random vector β using a Bernoulli distribution with probability η;
[0140] β~Benoulli(η)
[0141] Among them, Benoulli() represents Bernoulli distribution, which is a discrete random distribution and a special case of binomial distribution. The value of η is 0.3;
[0142] Step (3.2.2) combines β with the input Multiplying them together, some nodes are shielded to obtain
[0143]
[0144] Step 4: Align point cloud data based on PCA to enhance the invariance of the network;
[0145] Among them, the invariance of the network is translation invariance, rotation invariance and scale invariance;
[0146] Among them, translation invariance means that the coordinates of each point are changed by translating the point cloud, but the network can still recognize it as the same set of point clouds;
[0147] Among them, rotation invariance means that the coordinates of each point change by rotating the point cloud, but the network can still recognize it as the same set of point clouds;
[0148] Among them, scale invariance means that the coordinates of each point are changed by scaling the point cloud, but the network can still recognize it as the same set of point clouds;
[0149] Step (4.1) calculates the covariance matrix, The coordinates of each point (x j ,y j ,z j ) to find the mean Get the symmetric covariance matrix C:
[0150]
[0151] Where ∑ is the summation symbol;
[0152] Step (4.2) performs singular value decomposition (SVD) on C to calculate the eigenvectors v1, v2, and v3. These three eigenvectors are orthogonal to each other.
[0153] Among them, using SVD to decompose the matrix can obtain the matrix elements that represent the most essential changes of the matrix;
[0154] Among them, the eigenvectors are the three directions with the largest variance of the point cloud projection, which can be used as the main feature components of the point cloud;
[0155] Step (4.3) takes the three eigenvectors as the three main axes of point cloud alignment according to their orthogonal characteristics, and the eigenvectors are arranged from large to small according to their corresponding eigenvalues. Figure 1 The rotation matrix T in:
[0156] T=[v1,v2,v3]
[0157] Step (4.4) uses the rotation matrix to align the point clouds with different rotation angles to one direction, and obtain
[0158]
[0159] Step 5: Process the point cloud Input to the Encoder layer constructed in the first step to obtain the potential features F of the data; the process is as follows:
[0160] Step (5.1) obtains global features through MLP;
[0161] The MLP consists of 5 convolutional layers and 5 Batch Normalization (BN) layers. ReLU is used as the activation function. The dimension of the input point cloud data is 500*3, and after convolution, the output dimension is 500*1024 global features.
[0162] Among them, each convolution layer in the convolutional neural network is composed of several convolution units, and each convolution unit has parameter All of them are obtained through the optimization of the back-propagation algorithm. The purpose of the convolution operation is to extract different features of the input. The first convolution layer may only extract some low-level features such as edges, lines, and corners. More layers of the network can iteratively extract more complex features from low-level features.
[0163] Among them, the convolution kernel is when processing an image. Given an input image, the pixels in a small area of the input image are weighted averaged to become each corresponding pixel in the output image, where the weight is defined by a function, which is called the convolution kernel;
[0164] Among them, the BN layer normalizes the input data to prevent the data distribution in the middle layer from changing. By calculating the sample mean and sample variance and introducing weight coefficients and bias coefficients to complete the normalization operation, it can speed up the training of the network, improve the generalization ability of the network, and disrupt the training order of the samples.
[0165] Among them, the activation function is a function that runs on the neurons of the artificial neural network. It is responsible for mapping the input of the neuron to the output end and is used for the output of the hidden layer neurons. It plays a very important role in the neural network model to learn and understand complex functions. ReLU can output nonlinear results for neurons after linear transformation;
[0166] Step (5.1.1) undergoes 64 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*64, which is then normalized through a batch normalization layer.
[0167] Step (5.1.2) undergoes 128 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*128, which is then normalized through a batch normalization layer.
[0168] Step (5.1.3) undergoes 256 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*256, which is then normalized through a batch normalization layer.
[0169] Step (5.1.4) undergoes 512 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*512, which is then normalized through a batch normalization layer.
[0170] In step (5.1.5), after 1024 1*1 convolutions and ReLU activation functions, the output dimension is 500*1024 features, which are then normalized through the BN layer.
[0171] In step (5.2), the features are compressed by MAX pooling to obtain potential features with a dimension of 1*1024;
[0172] Among them, MAX pooling takes the point with the largest median value in the local receptive field, extracts the strongest corresponding part of the feature and enters the next layer. MAX pooling can compress the features while also enhancing translation invariance, rotation invariance and scale invariance.
[0173] Step 6: Input the potential features extracted from the Encoder layer into the Decoder layer constructed in the first step, output the displacement acting on the noise point, and complete the denoising process;
[0174] The decoder layer consists of 4 fully connected layers, 3 batch normalization layers, and 3 dropout layers. It uses the ReLU activation function to input the potential features into the decoder layer, and then uses the set loss function to constrain the network output. The network is trained through backpropagation, outputting the displacement of the noise points, and applying the inverse displacement to the noise points to make them close to the noise-free point cloud.
[0175] The loss function is a function that maps the value of a random event or its related random variables to a non-negative real number to represent the loss of the random event. It is associated with the optimization problem as a learning criterion, and the model is solved and evaluated by minimizing the loss function.
[0176] Among them, backpropagation is to continuously update the parameters of neurons in the network through multiple iterative training. When the loss function reaches the set threshold or the maximum number of iterations, convergence is completed and training is terminated;
[0177] In the fully connected layer, each node is connected to all nodes in the previous layer, which is used to integrate the features extracted previously. Due to its fully connected nature, the fully connected layer generally has the most parameters.
[0178] Among them, the dropout layer reduces overfitting by ignoring half of the feature detectors in each training batch, which can reduce the interaction between hidden layer nodes;
[0179] Step (6.1) reconstructs the feature vector into a vector corresponding to the noise point p through the fully connected layer. i 'Predicted displacement at the same latitude Apply it to the noise point to get the predicted point
[0180]
[0181] Step (6.2) calculates the predicted point through the loss function With the noise-free point p i The loss between them guides the convergence process of the network;
[0182] The final prediction of the network in step (6.2.1) is to act on the noise point p i 'Displacement Therefore, it is necessary to choose a suitable loss function so that With p i This goal is consistent with the characteristics of L2 distance. Based on L2 distance, the first loss function L is designed. s :
[0183]
[0184] in, L2 distance is also called Euclidean distance, which is used to represent the distance between two points or multiple points. Min represents the minimum value.
[0185] In step (6.2.2), in order to make the predicted point cloud as evenly distributed as possible and to avoid excessive clustering of points, a correction term L is added. r :
[0186]
[0187] Among them, max represents the maximum value;
[0188] Step (6.2.3) combines the above to obtain the overall loss function L a :
[0189] L a =αL s +(1-α)L r
[0190] Where α is a weight parameter used to control the degree of correction during training and is empirically set to 0.97 during the training phase.
[0191] Reference Figure 2 , a comparative analysis of other point cloud denoising methods with the method of the present invention includes the following steps:
[0192] Step 1: Define 4 point cloud denoising methods
[0193] TotalDenosing (TD): TD is a point cloud denoising network based on unsupervised learning. It predicts the value of noise-free points based on the neighborhood point cloud and changes the sampling pattern of points by introducing prior terms.
[0194] PointCleanNet: PointClean decomposes the denoising task into two subtasks: removing outliers and learning offsets;
[0195] Pointfilter: Pointfilter is a network composed of an encoder and a decoder that projects each noise point onto the underlying surface according to the point cloud neighboring structure;
[0196] Ours: Point cloud denoising method based on denoising autoencoder proposed in this paper;
[0197] Step 2: Point cloud denoising dataset
[0198] The practicality of this method was verified using the Stanford open point cloud dataset. Each point cloud model was generated by randomly sampling 100,000 points from a clean surface, serving as a noise-free point cloud dataset. The corresponding noise model was synthesized by adding Gaussian noise with a mean of 0. The degree of noise was determined by the diagonal length of the noise-free point cloud bounding box. For example, 0.5% noise refers to the addition of Gaussian noise with a standard deviation of 0.5% of the diagonal length of the point cloud bounding box. Comparative experiments were conducted using the cube, casting, and fandisk point cloud models from the dataset as validation sets, while the other point cloud models served as training sets.
[0199] Step 3: Define evaluation metrics
[0200] The present invention uses the chamfer distance (CD) to evaluate the error between the denoised point cloud and its corresponding noise-free point cloud. The calculation formula of the CD error is:
[0201]
[0202] Among them, N1 and N2 represent the number of noise-free point clouds P and the number of predicted point clouds, respectively. The number of To predict point cloud The i-th prediction point in p j The jth noise-free point in the noise-free point cloud P;
[0203] Among them, the smaller the CD error is, the closer the predicted point cloud is to the noise-free point cloud, and the better the denoising performance is.
[0204] Step 4: Evaluate and compare results
[0205] Figure 2 Experimental results for a quantitative evaluation on the Stanford public dataset are presented, where Gaussian Noise represents the noise level of the model, and Noisy represents the CD error of the unprocessed point cloud model. It can be seen that when CD error is used as the evaluation metric, the proposed method achieves the lowest average error when denoising different point cloud models with varying noise levels, compared to methods such as PointCleanNet, TD, and PointFilter. This indicates that the predicted point cloud after denoising by our method is closest to the noise-free point cloud.
[0206] The embodiments of this specification are merely examples of implementations of the invention and are provided for illustrative purposes only. The scope of protection of the present invention should not be considered limited to the specific embodiments described in these embodiments. The scope of protection of the present invention also extends to equivalent technical means that can be conceived by a person of ordinary skill in the art based on the invention.
Claims
1. A point cloud denoising method based on a denoising autoencoder, characterized in that: The method comprises the following steps: Step 1: Based on the denoising autoencoder framework, a three-layer network model is constructed, which includes a Transform layer for destroying point cloud data, an Encoder layer for encoding, and a Decoder layer for decoding. Step 2: Preprocess the input data to convert the point cloud data into a format that is easier to be directly processed by the network; The local neighborhood is obtained by calculating the distance between points, and the sampling of each local neighborhood is controlled to ensure that the number of point clouds in the neighborhood is consistent; Among them, the local neighborhood of a point cloud refers to the set of points in the point cloud data that are less than a specific distance from the selected point; Step 3: Input the processed point cloud data into the Transform layer constructed in the first step for destruction processing; The process of the third step is as follows: Step (3.1) for the input point cloud Add Gaussian white noise disturbance to get Adding obstacles to the subsequent learning process of the network makes the learned features more expressive; in, is a perturbation vector that obeys the normal distribution, and ~ means it obeys N(0,σ 2 I) represents a normal distribution with mean 0 and standard deviation σ. σ is experimentally chosen to be 0.5% of the diagonal length of the bounding box. I is a 3×3 identity matrix to match the dimension of the point cloud data. Among them, Gaussian white noise is noise data whose amplitude follows a normal distribution and whose power spectrum density follows a uniform distribution; Step (3.2) clears certain nodes to zero according to a certain probability, further improving the generalization ability of the network and reducing its dependence on input data; Step 4: Align point cloud data based on PCA to enhance the invariance of the network; Among them, the invariance of the network is translation invariance, rotation invariance and scale invariance; Step 5: Input the processed point cloud into the Encoder layer constructed in the first step to obtain the potential features of the data; Step 6: Input the potential features extracted from the Encoder layer into the Decoder layer constructed in the first step, output the displacement acting on the noise point, and complete the denoising process.
2. The point cloud denoising method based on a denoising autoencoder according to claim 1, characterized in that: In the first step, the denoising autoencoder is a type of autoencoder that accepts corrupted data as input and is trained to predict the original uncorrupted data; Among them, the Transform layer performs destructive transformation on the input point cloud to obtain damaged point cloud data; The encoder layer is trained on damaged point cloud data to learn potential features. This process is called encoding, and the obtained potential features have strong noise resistance. Among them, the Decoder layer reconstructs the potential features. This process is called decoding. Through iterative training, the network parameters are continuously adjusted to minimize the loss function and obtain the optimal model.
3. A point cloud denoising method based on a denoising autoencoder according to claim 1 or 2, characterized in that: The process of the second step is as follows: In order to avoid reducing the quality of the point cloud while denoising, step (2.1) establishes a point cloud noise model: Among them, P′ represents the original noise point cloud set, p′ i is the i-th point in P′, P represents the noise-free point cloud set, p i is the i-th point in P, n i represents the interference vector acting on each noise-free point, and p i Same dimension; In step (2.2), considering that the denoising result of any noise point comes from the local neighborhood of the point, the local neighborhood of each point is defined as: Among them, r is the neighborhood radius, P i ' indicates p' i is the point set within the neighborhood of the circle with r as radius; Among them, d ij It is point p' j (x i ,y i ,z i ) and p' j (x j ,y j ,z j ): Step (2.3) uses random sampling method to control sampling so that the number of point clouds after processing is consistent.
4. The point cloud denoising method based on a denoising autoencoder according to claim 3, characterized in that: The process of step (2.3) is as follows: Step (2.3.1) calculates the number of point clouds in the current input neighborhood, and controls the number of points in the neighborhood to be constant at N through sampling; Step (2.3.2) When the number of points in the neighborhood is greater than N, perform a downsampling operation d(P′ i ), randomly select N points in the neighborhood as network input; when the number of point clouds in the neighborhood is less than N, an upsampling operation u(P′) is performed i ), fill the origin p′ i Make the number of point clouds N; Among them, point cloud downsampling is to resample the point cloud according to certain sampling rules, the purpose is to reduce the density of the point cloud while ensuring that the overall geometric characteristics of the point cloud remain unchanged, while upsampling is to increase the density of the point cloud; in, is the processed p′ i The point cloud neighborhood set, is the neighborhood P′ i The number of point clouds, N is the number of constant points in the point cloud neighborhood, and its value is 500.
5. The point cloud denoising method based on a denoising autoencoder according to claim 4, characterized in that: The process of step (2.3.2) is as follows: Step (2.3.2.1) generates a random number seed using a random function of a programming language; Step (2.3.2.2) generates a random number through a random number generation function and calculates the number of points in the current neighborhood. Perform the remainder operation and remove the corresponding points until the number of points in the neighborhood is N.
6. A point cloud denoising method based on a denoising autoencoder according to claim 1 or 2, characterized in that: The process of step (3.2) is as follows: Step (3.2.1) generates a random vector β using a Bernoulli distribution with probability η; β~Benoulli(μ) Among them, Benoulli() represents Bernoulli distribution, which is a discrete random distribution and a special case of binomial distribution. The value of μ is 0.3; Step (3.2.2) combines β with the input Multiplying them together, some nodes are shielded to obtain 7. A point cloud denoising method based on a denoising autoencoder according to claim 1 or 2, characterized in that: The process of the fourth step is as follows; Step (4.1) calculates the covariance matrix, The coordinates of each point (x j ,y j ,z j ) to find the mean Get the symmetric covariance matrix C: Where Σ is the summation symbol, N is the number of constant points in the point cloud neighborhood; Step (4.2) performs singular value decomposition (SVD) on C to calculate the eigenvectors v1, v2, and v3. These three eigenvectors are orthogonal to each other. Among them, using SVD to decompose the matrix can obtain the matrix elements that represent the most essential changes of the matrix; Among them, the eigenvectors are the three directions with the largest variance of the point cloud projection, which can be used as the main feature components of the point cloud; In step (4.3), the three eigenvectors are orthogonal to each other and are used as the three main axes for point cloud alignment. The eigenvectors are composed into a rotation matrix T according to their corresponding eigenvalues from large to small: T=[v1,v2,v3] Step (4.4) uses the rotation matrix to align the point clouds with different rotation angles to one direction, and obtain 8. A point cloud denoising method based on a denoising autoencoder according to claim 1 or 2, characterized in that: The process of the fifth step is as follows: Step (5.1) obtains global features through MLP; Among them, MLP includes 5 convolutional layers and 5 BN layers, uses ReLU as the activation function, the dimension of the input point cloud data is 500*3, and after convolution, the output dimension is 500*1024 global features; In step (5.2), the features are compressed by MAX pooling to obtain potential features with a dimension of 1*1024; The process of step (5.1) is: Step (5.1.1) undergoes 64 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*64, which is then normalized through a batch normalization layer. Step (5.1.2) undergoes 128 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*128, which is then normalized through a batch normalization layer. Step (5.1.3) undergoes 256 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*256, which is then normalized through a batch normalization layer. Step (5.1.4) undergoes 512 1*1 convolutions and ReLU activation functions, outputting features with a dimension of 500*512, which is then normalized through a batch normalization layer. In step (5.1.5), 1024 1*1 convolutions and ReLU activation functions are performed to output features with a dimension of 500*1024, which are then normalized through a BN layer.
9. A point cloud denoising method based on a denoising autoencoder according to claim 1 or 2, characterized in that: In the sixth step, the decoder layer includes 4 fully connected layers, 3 batch normalization layers, and 3 dropout layers. The ReLU activation function is used to input the potential features into the decoder layer. The network output is constrained by the set loss function, and the network is trained by backpropagation. The displacement of the noise point is output and the inverse displacement is applied to the noise point to make it close to the noise-free point cloud. The process of the sixth step is as follows: Step (6.1) reconstructs the feature vector into a vector corresponding to the noise point p through the fully connected layer. i 'Predicted displacement at the same latitude Apply it to the noise point to get the predicted point Step (6.2) calculates the predicted point through the loss function With the noise-free point p i The loss between them guides the convergence of the network, and the process is as follows: The final prediction of the network in step (6.2.1) is to act on the noise point p′ i Displacement Therefore, it is necessary to choose a suitable loss function so that With p i Closer, this purpose is in line with the characteristics of L2 distance, based on the L2 distance design of the first loss function L s : in, L2 distance is also called Euclidean distance, which is used to represent the distance between two points or multiple points. Min represents the minimum value. In step (6.2.2), in order to make the predicted point cloud as evenly distributed as possible and to avoid excessive clustering of points, a correction term L is added. r : Among them, max represents the maximum value; Step (6.2.3) combines the above to obtain the overall loss function L a : L a =αL s +(1-α)L r Where α is a weight parameter used to control the degree of correction during training.
Citation Information
Patent Citations
Building local feature point identification method based on six fields of point cloud preprocessing
CN115131571A
Improved Transform-based noise reduction method for terracotta figure fragments
CN115456900A