# An Investigation of the High Efficiency Estimation Approach of the Large-Scale Scattered Point Cloud Normal Vector

^{1}

^{2}

^{3}

^{*}

## Abstract

**:**

## 1. Introduction

^{3}) floating-point operations (flops) [21]. This will have a disastrous impact on the normal vector calculation, especially when the number of the point cloud is huge.

## 2. Materials and Methods

#### 2.1. The Interpolation Nodes and Nearest Neighbor

**S**= {

**X**

_{t}= (x

_{t}, y

_{t}, z

_{t})|t = 1, …, N}, in which N is the number of the point set. The efficiency and the accuracy were strongly associated with the cube’s size L. Small L means high accuracy, while larger L means high efficiency. According to the literature [23], a reasonable computation of L can be easily extended from 2D to 3D:

_{max}, x

_{min}, y

_{max}, y

_{min}, z

_{max}, z

_{min}are the maximum and minimum values of point cloud along the X, Y, and Z axes, respectively.

_{i}, index

_{j}, and index

_{k}were calculated separately according to X, Y, and Z axes.

**X**

_{t}= (x

_{t}, y

_{t}, z

_{t}) can be indexed with:

**X**

_{t}can be mapped to hash table by the following hash function:

**p**to the tangent plane of the unknown isosurface to get the projection points

**p**

_{1}in Figure 1. We call the projection points

**p**

_{1}an interpolation node.

**p**.

**n**. Figure 1 shows that the vertex point

**p**is usually not on the unknown isosurface; it can be projected to the surface along the direction of the normal vector

**n**that is defined by the neighbor of point

**p**. The interpolation node

**p**

_{1}is on the tangent plane π. The Euclidean distance from

**p**to

**p**

_{1}is the smallest, and the neighbor of the

**p**can be regarded as the neighbor of

**p**

_{1}; then, the

**p**

_{1}shares the normal vector

**n**with

**p**.

#### 2.2. Normal Vector Estimation and the Coordinates of Interpolation Node

**Q**= {

**X**

_{t}= (x

_{t}, y

_{t}, z

_{t})|t = 1, …, M} represent the neighbor of

**p**

_{1}, in which M is the number of the neighbor point. The normal vector of the unknown isosurface at

**p**

_{1}is associated with a tangent plane that is through the center of the point set

**Q**. Let

**n**represent the unit normal vector and

**X**

_{c}represent the center of

**Q**. Then,

**X**

_{c}can be computed from

**Q**:

**n**can be computed by preceding a general PCA algorithm [4,25]. The symmetric 3 × 3 positive semi-definite covariance matrix

**CV**is formed using point set

**Q**.

**CV**, we get eigenvalues λ

_{1}≥ λ

_{2}≥ λ

_{3}, which are associated with eigenvectors

**v**

_{1},

**v**

_{2},

**v**

_{3}. According to the PCA algorithm, the eigenvector

**v**

_{3}or −

**v**

_{3}can be used as the normal vector of the plane. The unit normal vector

**n**= (n

_{x}, n

_{y}, n

_{z}) is computed by normalization of the eigenvector

**v**

_{3}or −

**v**

_{3}.

**p**= (x

_{p}, y

_{p}, z

_{p}) can be calculated by Equation (7) according to the given index of the cube (i, j, k) and the cube’s size L.

**p**

_{1}in Section 2 is determined by the geometric relationship of tangent plane and

**p**. By letting

**p**

_{1}= (x, y, z), according to the geometric relation that

**p**

_{1}is on the tangent plane, we can get the following expression:

**n**is proportional to the vector from

**p**to

**p**

_{1}.

**p**

_{1}can be expressed by r:

**n**is a unit normal vector, then

**p**

_{1}can be obtained by Equation (10)

#### 2.3. Normal Vector Interpolation

**Q**are nearly on the same tangent plane that is associated with projection points and the change of the normal vector is nearly linear in a small space. Using the projection points and their normal vectors, the normal vector for the point

**X**

_{t}= (x

_{t}, y

_{t}, z

_{t}) can be calculated using a bi-linear interpolation.

**n**

_{1}= (n

_{x}

_{1}, n

_{y}

_{1}, n

_{z}

_{1}) is the normal vector of

**p**

_{1}, and |n

_{z}

_{1}|≥|n

_{y}

_{1}|≥|n

_{x}

_{1}|, then the projection direction is the Z axis. Search the cube 1 and 5, 2 and 6, 3 and 7, 4 and 8 in Figure 2 to get the point

**p**

_{1},

**p**

_{2},

**p**

_{3},

**p**

_{4}with the normal vectors

**n**

_{1},

**n**

_{2},

**n**

_{3},

**n**

_{4}, separately. Projecting all points in a cube (i, j, k) and

**p**

_{1},

**p**

_{2},

**p**

_{3},

**p**

_{4}along the Z axis, we get projection points in Figure 3. When the one of |n

_{x}

_{1}| and |n

_{y}

_{1}| is maximum, the process is the same with search order 1 and 2, 3 and 4, 5 and 6, 7 and 8, or 1 and 3, 2 and 4, 5 and 7, 6 and 8 to get

**p**

_{1},

**p**

_{2},

**p**

_{3},

**p**

_{4}, and the projection direction should be X axis or Y axis.

**p**′

_{1}= (x

_{1}, y

_{1}),

**p**′

_{2}= (x

_{2}, y

_{2}),

**p**′

_{3}= (x

_{3}, y

_{3}),

**p**′

_{4}= (x

_{4}, y

_{4}). The normal vector of point

**p**

_{a}= (x

_{t}, y

_{a}) and

**p**

_{b}= (x

_{t}, y

_{b}) in Figure 3 can be calculated by linear interpolation between the projection points of

**p**′

_{1},

**p**′

_{2}and

**p**′

_{3},

**p**′

_{4}separately. The y components of

**p**

_{a}and

**p**

_{b}can be obtained by linear interpolation:

**n**

_{1},

**n**

_{2},

**n**

_{3},

**n**

_{4}must be the same. If the dot product

**n**

_{1}·

**n**

_{2}< 0, then replace

**n**

_{2}with −

**n**

_{2}. After the normal vectors

**n**

_{2},

**n**

_{3},

**n**

_{4}are consistent with

**n**

_{1}, the normal vector

**n**

_{a}can be calculated by interpolation between

**n**

_{1}and

**n**

_{2}, and the normal vector

**n**

_{b}can be got by interpolation between

**n**

_{3}and

**n**

_{4}:

**n**

_{t}can be calculated by linear interpolation between

**n**

_{a}and

**n**

_{b}:

**p**′

_{w}= (0, 0), in which w = 1, 2, 3, 4.

## 3. Results

^{−6}. Since the length of the cube has an important impact on the algorithm, unless otherwise specified, the length of the cube is 1.0L. In order to test the robustness of the proposed algorithm, we chose a set of typical point sets including free-form surfaces, planes, and other irregular point cloud models. Since the normal vector is very sensitive to light, we use the shading model to observe the small changes in the normal vector. All the experiments were run on a computer with Intel Core i5, 2.67 GHz CPU and 4 GB memory, running windows 7 (64 bit).

## 4. Conclusions

## Acknowledgments

## Author Contributions

## Conflicts of Interest

## References

- Huangfu, Z.; Yan, L.; Zhang, S. A new method for estimation of normal vector and curvature based on scattered point cloud. J. Comput. Inf. Syst.
**2012**, 8, 7937–7945. [Google Scholar] - Mitra, N.J.; Nguyen, A.N.; Guibas, L. Estimating surface normals in noisy point cloud data. Int. J. Comput. Geom. Appl.
**2008**, 14, 261–276. [Google Scholar] [CrossRef] - Cao, J.; Chen, H.; Zhang, J.; Li, Y.; Liu, X.; Zou, C. Normal estimation via shifted neighborhood for point cloud. J. Comput. Appl. Math.
**2017**, 329, 57–67. [Google Scholar] [CrossRef] - Hotta, T.; Iwakiri, M. 3d point cloud cluster analysis based on principal component analysis of normal vectors. ITE Tech. Rep.
**2015**, 38, 1–4. [Google Scholar] - Ouyang, D.; Feng, H.Y. On the normal vector estimation for point cloud data from smooth surfaces. Comput. Aided Des.
**2005**, 37, 1071–1079. [Google Scholar] [CrossRef] - Park, J.C.; Shin, H.; Choi, B.K. Elliptic Gabriel graph for finding neighbors in a point set and its application to normal vector estimation. Comput. Aided Des.
**2006**, 38, 619–626. [Google Scholar] [CrossRef] - Zhang, J.; Cao, J.; Liu, X.; Wang, J.; Liu, J.; Shi, X. Point cloud normal estimation via low-rank subspace clustering. Comput. Graph.
**2013**, 37, 697–706. [Google Scholar] [CrossRef] - Kraus, P.; Dzwinel, W. Nearest neighbor search by using partial KD-tree method. Theor. Appl. Genet.
**2008**, 20, 149–165. [Google Scholar] - Mitchell, H.B.; Schaefer, P.A. A “soft” K-nearest neighbor voting scheme. Int. J. Intell. Syst.
**2001**, 16, 459–468. [Google Scholar] [CrossRef] - Zhang, S.; Li, X.; Zong, M.; Zhu, X.; Cheng, D. Learning k, for kNN classification. ACM Trans. Intell. Syst. Technol.
**2017**, 8, 43. [Google Scholar] [CrossRef] - Buaba, R.; Homaifar, A.; Kihn, E. Optimal load factor for approximate nearest neighbor search under exact euclidean locality sensitive hashing. Int. J. Comput. Appl.
**2014**, 69, 22–31. [Google Scholar] [CrossRef] - Ghosh, A.K. On nearest neighbor classification using adaptive choice of k. J. Comput. Graph. Stat.
**2007**, 16, 482–502. [Google Scholar] [CrossRef] - Lee, C.; Kim, D.; Shin, H.; Kim, D.S. Trash removal algorithm for fast construction of the elliptic Gabriel Graph using Delaunay triangulation. Comput. Aided Des.
**2008**, 40, 852–862. [Google Scholar] [CrossRef] - Ma, J.; Feng, H.Y.; Wang, L. Normal vector estimation for point cloud via local Delaunay triangle mesh matching. Comput. Aided Des. Appl.
**2013**, 10, 399–411. [Google Scholar] [CrossRef] - Chen, S.G.; Wu, J.Y. Estimating normal vectors and curvatures by centroid weights. Comput. Aided Geom. Des.
**2004**, 21, 447–458. [Google Scholar] [CrossRef] - Bernstein, H.J.; Andrews, L.C. Accelerating k -nearest-neighbor searches. J. Appl. Crystallogr.
**2016**, 49, 1471–1477. [Google Scholar] [CrossRef] - Connor, M.; Kumar, P. Fast construction of k-nearest neighbor graphs for point cloud. IEEE Trans. Vis. Comput. Graph.
**2010**, 16, 599–608. [Google Scholar] [CrossRef] [PubMed] - Slaney, M.; Casey, M. Locality-sensitive hashing for finding nearest neighbors. IEEE Signal Process. Mag.
**2008**, 25, 128–131. [Google Scholar] [CrossRef] - Wilkes, M.V. The art of computer programming, volume 3, sorting and searching. Comput. J.
**1974**, 17, 324. [Google Scholar] [CrossRef] - Demaine, E.; Schulz, A. 6.851 advanced data structures. Angew. Chem. Int. Edit. Engl.
**2010**, 6, 53–67. [Google Scholar] - Benner, P. Solving large-scale control problems. IEEE Control Syst.
**2004**, 24, 44–59. [Google Scholar] [CrossRef] - He, C. Marching cubes: A high resolution 3d surface construction algorithm. ACM SIGGRAPH Comput. Graph.
**1987**, 21, 163–169. [Google Scholar] - Piegl, L.A.; Tiller, W. Algorithm for finding all nearest neighbors. Comput. Aided Des.
**2002**, 34, 167–172. [Google Scholar] [CrossRef] - Hoppe, H.; Derose, T.; Duchamp, T.; Mcdonald, J.; Stuetzle, W. Surface reconstruction from unorganized points. SIGGRAPH Comput. Graph.
**1996**, 26, 71–78. [Google Scholar] [CrossRef] - Vidal, R.; Ma, Y.; Sastry, S.S. Generalized Principal Component Analysis. IEEE Trans. Pattern Anal. Mach. Intell.
**2016**, 27, 1945–1959. [Google Scholar] [CrossRef] [PubMed]

**Figure 1.**Projecting the point

**p**onto the tangent plane π to construct the interpolation node

**p**

_{1}.

**Figure 4.**(

**a**) Shading model of free-form surface obtained by our method; (

**b**) the normal vector estimation results; (

**c**) an enlarged image of local part with sharp changes; (

**d**) shading model of the free-form surface according to the Euclidean nearest neighbor (ENN)-based method.

**Figure 5.**Normal vector estimation of several point cloud with the cube’s size 1.0L. (

**a**) Famer Statue; (

**b**) Blade; (

**c**) Mother Statue; (

**d**) Engine Cover; (

**e**) Engine.

**Figure 6.**The shading model of simulation spheres according to our method with different numbers of points N. (

**a**) N = 0.1875, (

**b**) N = 0.375, (

**c**) N = 0.75, (

**d**) N = 1.5, and (

**e**) N = 3.0 million.

**Figure 7.**(

**a**) Comparison of the quantity-time curve on actual point cloud and (

**b**) comparison of the quantity-time curve on simulation spherical.

Object Model | Points (million) | Projection (million) | Cubes | Time (ms) | Time (3.0L) (ms) | Time of EGG (ms) |
---|---|---|---|---|---|---|

Famer Statue | 0.121 | 0.038 | 156 × 102 × 121 | 234 | 101 | 924 |

Blade | 0.178 | 0.078 | 101 × 143 × 383 | 266 | 139 | 1253 |

Mother Statue | 0.516 | 0.114 | 297 × 200 × 134 | 828 | 353 | 2742 |

Engine Cover | 1.272 | 0.248 | 444 × 267 × 162 | 2259 | 846 | 6759 |

Engine | 2.875 | 0.450 | 621 × 314 × 191 | 5023 | 1802 | 16,130 |

© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Meng, X.; He, W.; Liu, J.
An Investigation of the High Efficiency Estimation Approach of the Large-Scale Scattered Point Cloud Normal Vector. *Appl. Sci.* **2018**, *8*, 454.
https://doi.org/10.3390/app8030454

**AMA Style**

Meng X, He W, Liu J.
An Investigation of the High Efficiency Estimation Approach of the Large-Scale Scattered Point Cloud Normal Vector. *Applied Sciences*. 2018; 8(3):454.
https://doi.org/10.3390/app8030454

**Chicago/Turabian Style**

Meng, Xianglin, Wantao He, and Junyan Liu.
2018. "An Investigation of the High Efficiency Estimation Approach of the Large-Scale Scattered Point Cloud Normal Vector" *Applied Sciences* 8, no. 3: 454.
https://doi.org/10.3390/app8030454