Weighted Point Cloud Normal Estimation

In one sentenceLearning how much each neighbour should count—more for points whose normals agree with the central point’s—plus contrastive pre-training on patch–normal pairs gives more accurate point cloud normals on noisy shapes with sharp features.
The problem
Raw point clouds from scanners carry no normals and are often corrupted by noise, yet accurate normals help downstream tasks such as noise filtering and surface reconstruction. The classic approach, PCA, computes each point’s normal from the covariance of its neighbours; it is simple but tends to blur details and is fragile on noisy data. Learning-based regressors such as PCPNet and Nesti-Net are more robust to noise, but they ignore that neighbouring points contribute differently to the central point’s normal, which can make them inaccurate on complex surfaces. Surface-fitting methods such as DeepFit and AdaFit adapt well to complicated geometry but become less robust under severe noise.

How it works
The method regresses the normal of each point from a local patch around it, and it learns to weight the points of that patch by how relevant they are to the central point. Training has two stages: a contrastive pre-training stage that teaches the point encoder and weight regressor to relate patches to normals, and a normal estimation stage that fine-tunes them together with a normal regressor.

- A local patch. For each point, the patch contains its N nearest neighbours (N = 700 in the experiments). The patch is normalised to a unit sphere and aligned with a rotation R computed by PCA on the patch.
- Uniform weights fall short. Regressing the normal with every point weighted equally lets less relevant neighbours pull the estimate away from the true normal.
- Learned point weights. A point encoder built from DGCNN’s EdgeConv layers produces per-point features, and an MLP weight regressor predicts a weight for each point. The training target is the squared cosine between the central point’s ground-truth normal and each neighbour’s ground-truth normal, so points with similar normals count as more relevant. The weights multiply the features element-wise, F′ = W ⊙ F.
- Contrastive pre-training. A second branch encodes the central point’s ground-truth normal with MLPs. Both features pass through projection heads, and a temperature-scaled cross-entropy loss pulls each patch–normal pair together while pushing apart the other pairs in the batch. The weight loss is added to this loss.
- Weighted normal regression. The pre-trained encoder and weight regressor are fine-tuned with a normal regressor of fully connected layers, trained with a cosine loss plus the weight loss. The predicted normal is normalised and rotated back with R⁻¹.

Results
The synthetic test set contains 19 PCPNet shapes, each with four Gaussian noise levels (0.36 %, 0.6 %, 0.84 % and 1.2 % of the bounding-box diagonal); the method is compared with PCA, the surface-fitting methods DI (Deep Iterative), DeepFit and AdaFit, and the regression methods PCPNet and Nesti-Net. At the lowest noise level DeepFit is slightly ahead (13.18° vs 13.25°); the method’s advantage appears as the noise grows. The ablation shows that both ideas matter: without the weight regression the error is 14.70°, and without the contrastive pre-training it is 18.21°.
On raw scans from the Kinect Fusion dataset, compared against the clean normals the dataset provides, the method has lower error than AdaFit and Nesti-Net on the three shapes shown. On the Paris-rue-Madame street scans, where no ground truth exists, its normals are tidier on complex areas such as a window lattice while keeping features such as a building eave and a car light. Used as input to point cloud filtering, its normals give the best filtering result by Chamfer distance, and in Poisson reconstruction of a sharp Star shape they give a more accurate tip.



Cite
@inproceedings{w2023weighted,
title={Weighted Point Cloud Normal Estimation},
author={W Wang, X Lu, D SHAO, X Liu, R Dazeley, A Robles-Kelly, W Pan},
booktitle={IEEE International Conference on Multimedia and Expo (ICME 2023)},
year={2023},
doi={10.1109/icme55011.2023.00345}
}