# Three-Dimensional Surface Reconstruction from Point Clouds Using [PERSON]'s Elastica Regularization
## 2 Variational Image 3D Reconstruction Theory  
As previously mentioned, the implicit surface reconstruction method proposed by [PERSON] et al. in [13; 19] was one of the first effective methods in this field. Given an unorganized 3D point cloud \(\{x_{i}\}\), the reconstructed surface is achieved through minimizing the energy of the weighted geodesic active contour (GAC):  
\[E(\Gamma)=\int_{\Gamma}d(x)d\Gamma, \tag{1}\]  
The passage discusses the concept of the Snake model, a type of mathematical method known as the variational method. This method can be applied to either a curve in two-dimensional space or a surface in three-dimensional space. The method uses the arc length element or area parametrization as a way of measuring the curve or surface, represented by \(\Gamma\). The Snake model was first introduced in a paper by [PERSON] et al. and was later expanded upon by the work of [PERSON], [PERSON], and [PERSON] in the framework of level sets. The distance function, represented by \(d(x)\) in Equation (1), is an important component of the Snake model and is subject to the Eikonal equation:  
\[|\
abla d(x)|=w(x),\ \forall x\in\Omega\backslash\{x_{i}\},w(x)=1,d(x_{i})=0,\ \forall x\in\{x_{i}\}. \tag{2}\]  
The implementation of Equation (2) using a fast sweeping algorithm was described in detail in [36; 37] for both 2D and 3D scenarios. The results of applying the fast sweeping method to two sets of point clouds, (a) and (b), are presented in Figure 1. The output of this method is distance maps, which are displayed in (c) and (d) of the figure. To construct an initial image bounded by the point clouds, the distance \(d(x)\) is used as an edge indicator function. The authors of [14] utilized the distance function \(d(x)\) calculated from point clouds to determine the boundaries of the point cloud. Given an image \(f(x)\), they suggested using the following as the edge indicator function for \(f(x)\):  
\[g(x)=\frac{1}{\varepsilon+|\
abla f(x)|^{p}},\]  
where the variables \(p\) and \(\varepsilon\) are both positive values, and \(g\) is nearly equal to zero at the edge positions. In order to use the distance function \(d(x)\) as the edge indicator, the authors added a small positive value \(\varepsilon\) to regularize it, resulting in \(g(x)=d(x)+\varepsilon\). To calculate the initial image \(f(x)\), they then solved the Eikonal equation, which is a mathematical equation used to describe the speed of propagation of waves or fronts:  
\[|\
abla f(x)|=\frac{1}{\varepsilon+g(x)^{1/p}}.\]  
Figure 1: The distance function calculated from point cloud data is shown in (c,d). (a) represents 2D point cloud data, while (b) represents 3D point cloud data. The distance function for (a) is shown in (c), and the distance function for (b) is shown in (d). The authors of [15] utilized the concept of the inner product field to distinguish between the inner and outer regions of a point cloud data set. The basis for computing the image \(f(x)\) is represented by the following equation:  
\[f(x)=(x-cp(x))\cdot n(cp(x)).\]  
In the equation, \(x\) is a point in the defined area \(\Omega\). \(cp(x)\) stands for the closest point on the point cloud to \(x\), and \(n(cp(x))\) is the normal vector pointing away from \(cp(x)\). The output of \(f(x)\) is negative if \(x\) is within the point cloud and positive if \(x\) lies outside the point cloud. In summary, the proposed method starts with a binary image \(I(x)\), which is obtained by thresholding the distance function \(d(x)\). The fast sweeping algorithm is then applied on the binary image to locate it. The right-hand side of Equation (2) is modified by substituting \(W(x)=1\) with \(W(x)=I(x)\), making \(d(x)\) no longer a distance function. The grid points at the edge of the domain \(\Omega\) are assigned a value of zero, while the other internal grid points are given extremely high values. Finally, the rapid sweeping procedure with eight directional sweeping Gauss-Seidel iterations is used to solve \(d(x)\).