Fast and Globally Consistent Normal Orientation based on the Winding Number Normal Consistency

Siyou Lin,Zuoqiang Shi,Yebin Liu
DOI: https://doi.org/10.1145/3687895
2024-09-16
Abstract:Estimating consistently oriented normals for point clouds enables a number of important applications in computer graphics. While local normal estimation is possible with simple techniques like PCA, orienting them to be globally consistent has been a notoriously difficult problem. Some recent methods exploit various properties of the winding number formula to achieve global consistency. Despite their exciting progress, these algorithms either have high space/time complexity, or do not produce accurate and consistently oriented normals for imperfect data. In this paper, we propose a novel property from the winding number formula, termed Winding Number Normal Consistency (WNNC), to tackle this problem. The derived property is based on the simple observation that the normals (negative gradients) sampled from the winding number field should be codirectional to the normals used to compute the winding number field. Since the WNNC property itself does not resolve the inside/outside orientation ambiguity, we further incorporate an objective function from Parametric Gauss Reconstruction (PGR). We propose to iteratively update normals by alternating between WNNC-based normal updates and PGR-based gradient descents, which leads to an embarrassingly simple yet effective iterative algorithm that allows fast and high-quality convergence to globally consistent normals. Furthermore, our proposed algorithm only involves repeatedly evaluating the winding number formula and its derivatives, which can be accelerated and parallelized using a treecode-based approximation algorithm. Our GPU (and even CPU) implementation can be significantly faster than the recent state-of-the-art methods for normal orientation from raw points. Our code is integrated with the popular PyTorch framework to facilitate further research into winding numbers, and is publicly available at <a class="link-external link-https" href="https://jsnln.github.io/wnnc/index.html" rel="external noopener nofollow">this https URL</a>.
Graphics
What problem does this paper attempt to address?
This paper attempts to solve the problem of globally consistent orientation of normal vectors in point clouds. Specifically, although local normal vector estimation can be achieved by simple techniques such as Principal Component Analysis (PCA), making these normal vectors globally consistently oriented has always been a very difficult problem. Existing methods are either computationally complex or unable to produce accurate and consistent normal vectors when dealing with imperfect data. To solve this problem, the authors propose a new property based on the winding number formula, called **Winding Number Normal Consistency (WNNC)**. The basic observation of the WNNC property is: if the given normal vector \( \mu_j \) is consistently outward - pointing, then the winding number field \( F(y; \mu) \) calculated using these normal vectors should be the indicator field of the corresponding shape. Therefore, at each point \( x_i \), the negative gradient of the winding number field should be collinear with \( \mu_i \). Mathematically, the WNNC property can be expressed as: \[ \mu_i=\lambda_i(-\nabla F(x_i; \mu)) \quad \text{for some} \quad \lambda_i > 0 \] Furthermore, in order to overcome the problem that using only WNNC updates cannot solve the inside - outside orientation ambiguity, the authors introduce an objective function from Parametric Gauss Reconstruction (PGR) to encourage the normal vectors to be consistently outward - pointing. By alternately using WNNC updates and the PGR - based gradient - descent method, the authors design an iterative algorithm that can converge quickly and with high quality to a globally consistent normal vector field. The core steps of this algorithm include: 1. **Gradient step**: Perform a gradient update according to the objective function \( E(\mu; A, b) \). 2. **WNNC update**: Update the normal vectors according to the negative gradient of the winding number field. 3. **Rescaling**: Ensure that the lengths of the normal vectors remain consistent after each WNNC update. Through these steps, the algorithm proposed by the authors can not only produce the overall correct orientation in the first iteration, but also gradually converge to the details after dozens of iterations. In addition, this algorithm also utilizes tree - code acceleration and GPU parallelization, thereby significantly improving the computational efficiency. In summary, the main contributions of this paper are: - Proposing the Winding Number Normal Consistency (WNNC) property, providing a new mathematical formula to estimate the consistently oriented normal vectors from the original point cloud. - Designing an iterative algorithm based on the WNNC property, achieving fast and high - quality convergence to a globally consistent normal vector field. - Implementing a tree - code acceleration algorithm based on CUDA and PyTorch, significantly improving the computational cost of previous methods, and releasing the code to promote further research.