## Abstract

In this paper, we propose a new system for a real-time holographic augmented reality (AR) video service based on a photorealistic three-dimensional (3D) object point for multiple users to use simultaneously at various locations and viewpoints. To observe the object from all viewpoints, a camera system capable of acquiring the 3D volume of a real object is developed and is used to generate a real object in real-time. Using the normal of the object point, the observable points are mapped to the viewpoint at which the user is located, and a hologram based on the object point is generated. The angle at which the reflected light from each point is incident on the hologram plane is calculated, and the intensity of the interference light is adjusted according to the angle to generate a hologram with a higher 3D effect. The generated hologram is transmitted to each user to provide a holographic AR service. The entire system consists of a camera system comprising eight RGB-D (depth) cameras and two workstations for photorealistic 3D volume and hologram generation. Using this technique, a realistic hologram was generated. Through experiments displaying holograms simultaneously from several different viewpoints, it is confirmed that multiple users can concurrently receive hologram AR.

© 2020 Optical Society of America under the terms of the OSA Open Access Publishing Agreement

## 1. Introduction

A holographic augmented reality (AR) system is a technology that augments and services hologram content. As the hologram itself provides a three-dimensional (3D) effect, if the hologram is used in an AR system, a more interactive and immersive virtual reality service can be provided.

Several studies have been carried out to develop holographic AR services [1]. These have included real-time omnidirectional hologram generation based on 3D fast Fourier transform [2] and real-time holographic video display using a look-up table [3]. A lot of research has been carried out into interactive holograms. These studies have included the implementation of an interactive hologram using a cylindrical angular spectrum [4] and a holographic display device that reconstructs a virtual image in space using a light-field 3D display or hologram display [5]. In addition, research has been conducted on interaction with content by combining a display and gesture interface for a more interactive service [5]. Moreover, motion sensors [6] and interaction techniques to detect scattered light by touching images floating in space through image sensors have been studied [5].

A computer-generated hologram (CGH) is used for holographic AR. Although various classifications of methods exist, CGHs can be generally classified into point-cloud-based, polygon-based, and image-based methods [7]. The point-cloud-based method is expressed in the form of vertices that make up the surface of the object, and records all the waves reflected from each vertex [8]. In the polygon-based method, the object surface is represented by polygons, and the hologram information of each polygon is calculated [9]. The image-based method generates a hologram using a projected image of a 3D object in one view [10]. When used in a system that needs to provide a free viewpoint, such as AR, the image-based method has a data limitation because it must store depth images in all directions of the object. Image-based CGHs also have occlusion problems [7].

As the holographic AR system needs to be simultaneously provided to multiple users, it should be possible to simultaneously generate holograms corresponding to each user’s viewpoint or location. Therefore, high-speed hologram generation is required [11], and to date our research team has conducted various high-speed studies. We developed a field-programmable gate array (FPGA) [12] for high-speed CGH generation, as well as the first CGH dedicated one-chip application-specific integrated circuit (ASIC) [13]. We also studied high-speed CGHs through block based parallelization via graphics processing unit (GPU) resource optimization [14], and implemented a system that can provide full-color multiview digital holographic video of photorealistic objects in real time [15].

In this paper, we build a volumetric capture system for photorealistic-based hologram AR service, and generate an occlusion-free hologram model using object points in real time. We propose an upsampling technique to ensure that the hologram generated by the object points has uniform quality from all viewpoints, and consider the angle of incidence of light for generating a hologram with a rich 3D effect. We also propose a hologram generation based on the user’s viewpoints, using the relationship between the user’s location and the normal vector of an object point to overcome the limitation of the viewing angle of the spatial light modulator (SLM) [16,17].

This paper is organized as follows. Section 2 introduces the proposed holographic AR system, and Section 3 describes the algorithm for holographic AR rendering. Section 4 describes the results of the experiment and implementation, and Section 5 concludes this paper.

## 2. Process of holographic AR

This section describes the overall process of the rendering system for photorealistic holographic AR. This system is composed of several processing steps, and the new algorithm proposed is described for each step. Figure 1 shows the overall process of the holographic AR rendering process in a schematic method using an example picture.

First, multiple RGB-D cameras are arranged at arbitrary positions in the space. Pre-processing, including background and floor removal, noise removal, illumination compensation, and point cloud (a set of object points) generation for an object, is applied to the multiple RGB-D image outputs from the cameras. Next, the extrinsic parameters are obtained using the RGB-D image. We propose an optimization algorithm for the extrinsic parameters using 3D feature points instead of the general camera calibration (Parameter Optimization). Using all camera parameters obtained through optimization, their coordinate systems are aligned to a common world coordinate system. This has the same effect as aligning the object points generated from all cameras to the world coordinate system (Multiple PC Alignment). The 3D volumetric object model is generated by integrating the coordinate systems of the object point sets using the acquired parameters (Point Cloud Integration). To increase the quality of the hologram AR, a low-density point cloud is densified in 3D space, and the 3D object point is upsampled so it has a uniform density (Point Cloud Regularization). Next, when holograms are requested from various locations by users, a Multiview Point Cloud Projection that maps object points to the user’s viewpoint is performed. By using the normal of the object point, only valid points for each user location are mapped. Next, we propose a technique to control the intensity of light when generating a hologram by calculating the angle incident on the hologram plane after light is reflected on the object point. This makes it possible to generate a hologram with a convincing 3D effect.

## 3. Hologram rendering

Acquiring a 3D volumetric point cloud of an object to generate holograms has several advantages. 1) For a holographic AR service, object information is needed from various viewpoints simultaneously. 3D volumetric data containing all viewpoint information is a good alternative to satisfy this condition. 2) A high-quality hologram can be generated by densifying object points located in a 3D space using various spatial techniques. 3) As the normal of each object point can be calculated in the process of obtaining the object point, the angle of the reflected wave reaching the hologram plane can be calculated. If the angle of the reflected light is known, the intensity of interference on the hologram plane can be realistically calculated. Therefore, a more realistic hologram can be generated, and high-quality reconstruction results can be obtained. We divide the process into 3D volumetric model integration and hologram generation for AR.

#### 3.1 Object points for holograms

This section describes the proposed algorithm for generating 3D volumetric point clouds for hologram generation. First, we implemented a system for acquiring a 3D volumetric point cloud using 8 RGB-D cameras, which is shown in Fig. 2. Figures 2(a) and (b) show the camera system when viewed from the top and the right, respectively. The 8 sets of RGB and depth images acquired using the system in Fig. 2 are converted to a point cloud through the pre-processing. As a result, 8 sets of point clouds are generated.

A 3D Charuco board is used to find matching points between RGB images from multiple cameras. Figure 3(a) is one side of the Charuco board, and Fig. 3(b) is the result of identifying a matching point in the 3D Charuco board and then displaying it using the world coordinate system. Since the Charcoal board acquired from a camera must match those taken from adjacent cameras, all four different sides must be acquired. We used a cuboid Charcoal board box to get a point where all cameras match the left, right top or bottom camera. By installing cameras up and down at each corner of the box, all cameras could find matching points between adjacent cameras. The use of the Charuco boards is not essential [18]. The origin of the world coordinate system is set to one corner of the 3D Charuco board. To obtain 3D coordinates of the matching points, calibration between the depth and the RGB image is performed [19], and the coordinates are obtained from the depth map.

Next, we propose a method for obtaining the extrinsic parameters of each camera using matching coordinates in object point sets for registration. These parameters are calculated using an optimization algorithm such that the squared Euclidean distance (SED) of the matched coordinates is minimal [20]. The transformation matrix of the coordinate includes parameters for rotation angles and translation values for each of the $x$, $y$, and $z$ axes. After setting a camera as the reference coordinate system, the parameters for converting the systems of other cameras to the reference coordinate system are obtained. $X_{ref}$ represents the coordinates of the object points acquired from the reference camera, and $X_{i}$ represents the coordinates of the object point acquired from the $i^{th}$ camera. $R_{i \rightarrow ref}$ and $t_{i \rightarrow ref}$ represent rotation and translate matrices from each camera to the reference camera. The initial $R_{i \rightarrow ref}$ is the identity matrix and $t_{i \rightarrow ref}$ is all zeros. Equation (1) is applied with the initial parameters and the result is $X_{i}$, which converges to $X_{ref}$ through optimization.

The loss function for optimization is the average value of the SED of $X_{ref}$ and $X_{i}'$. Equation (2) represents the loss (error) function. In Eq. (2), $N$ is the number of coordinates of the object point used for registration.

The process of differentiating the loss function with respect to the coordinate transformation parameters and updating the parameter to minimize the function is expressed by Eq. (3) [21]. $\alpha$ is the learning rate which is a constant value. $P_{n+1}$ and $P_{n}$ are parameters in the $n+1$ and $n^{th}$ iterations, respectively.

When this process is performed more than 200,000 times, the average error of the eight cameras is reduced to 2.98$mm$. Once the parameters of each camera are obtained by Eq. (3), the transformation from the camera coordinate system to the world coordinate system can be performed using Eq. (4), and the object point can be aligned based on the unified coordinate system. $P_{W}$ represents the world coordinates (reference camera coordinates), and $P_{C}$ represents the camera coordinates [19].

After generating the integrated 3D volumetric object by applying the extrinsic parameters obtained above, the spatial regularization is performed to transform the low-density region into a high-density one. Figure 4 shows the proposed spatial regularization algorithm. As the object points were generated using the depth map, a low-density point-cloud area may exist in a direction parallel to the optical axis of the camera. After converting to a mesh using the object points as a vertex, the area of each mesh is calculated. If the area is larger than the threshold, it is determined that the density of the object points is low, and the vertex is added to it. This added vertex has 3D coordinates and is converted to a object point.

We schematically show a method to improve the spatial irregularity of the density of the point cloud caused by the limitation of the capturing system in Fig. 5. This figure shows how to obtain additional points for the low-density part of the captured point cloud. When a mesh exists with a non-uniform density, as shown in Fig. 5(a) in 3D space, the outer core of the mesh with a large area using Voronoi diagrams as in Figs. 5(b) and (c) are obtained [22]. The density is increased by adding a vertex to this circumcenter, and an RGB value of the added vertex is generated as an average value of the neighboring vertices. As the point cloud is spatially regularized, high-quality holograms can be generated from all viewpoints.

The circumcenter of the three vertices that make up the mesh is found by solving simultaneous equations. In the case of Fig. 5(b), the vertices $X$, $Y$, and $Z$ of the mesh to generate vertex $A$ ($B$ in Fig. 5(c)) are all located at the same distance from $A$ ($B$ in Fig. 5(c)). Therefore, Eqs. (5a)–(5c) can define three equations to find $A$ (or $B$).

#### 3.2 Hologram generation

In the previous section, object points capable of generating high-quality holograms from all viewpoints was developed, and this section proposes a method of generating holograms according to the user’s viewpoint.

First, a new coordinate system is set up to generate the hologram. By analyzing the distribution of the 3D volume, an axis-aligned bounding box (AABB) surrounding the volume is set [23]. The center of the AABB is decided as the origin of the new coordinate system, and the vertical, horizontal, and depth directions are set to the $y$, $x$, and $z$ axes, respectively. The hologram plane is set to the user’s viewpoint in the transformed coordinate system. As not all of the light reflected from the object is recorded on the hologram plane, the object point to be recorded is distinguished using a normal vector.

We compute the fine normal vector ($\vec {N_t}$) of the point cloud ($O_{target}$) by using information about the normal vector ($\vec {N_{m,i}}$) of the mesh formed by the adjacent point cloud as shwon in Fig. 6. It is based on a method of averaging the normal vectors of the 1-ring neighborhood mesh [24]. First, an object point for which the normal vector is to be obtained is determined, and the $N$ object points ($O_{nb,0} \sim O_{nb,9}$) closest to the object point are selected ($N$=10 is used in this paper). The selection criterion is the order of distance from the object point. Next, a mesh is created for the selected object points using the Delaunay triangulation technique [25]. When a mesh is generated, the normal vector ($\vec {N_{m,i}}$) of the mesh is determined on each mesh plane. It is calculated through the cross product of the two sides of the mesh. When normal vectors are generated for all meshes, the normal vector of the target point cloud is determined by calculating the average of the normal vectors of the 1-ring neighborhood mesh. After the normal vector of the object point is determined, even if the object point is added through spatial regularization, there is no change in the normal vector. Since the newly added object points are the center of a circle composed of three object points, they all exist in the same plane. Since the newly added mesh has the same normal vector because it is the same plane as the mesh before being divided, their average has the same value as the original normal vector.

The condition of the object points to be recorded is that the light reflected from the object faces the hologram plane. Therefore, object points satisfying the condition of ${ \vec {z}} \cdot { \vec {N_{i}}} <0$ are selected, where $\vec z$ is the normal vector of the hologram plane and $\vec {N_{i}}$ is the normal vector of the $i^{th}$ object point. This is defined by Eq. (6), where $(X_{w}, Y_{w}, Z_{w})$ is the coordinate of the object point, and $(X', Y', Z')$ is the coordinate of the mapped object point. The transformation matrix $[R'|t]$ defines the relationship between the coordinate system defined by the AABB and that defined by the user’s viewpoint. In the coordinate system of the user’s viewpoint, the user’s position is the origin and the coordinates are defined as $(horizontal, vertical, front) = (x, y, z)$.

When the hologram is generated using the object points selected by the user’s viewpoint, the intensity of the object wave is adjusted using the relationship between the directions of the object points and the hologram plane. Figure 7 explains how to adjust the intensity of light by considering the angle of incidence for a more realistic and three-dimensional holographic surface expression. As defined in Fig. 7, the angle $\theta _{i}$ of the reflected wave incident on the hologram plane is defined by the normal vector of each object point and that of the hologram plane [26]. The smaller the angle, the greater the intensity of the reflected wave, thus establishing a relationship of $A_{i}>A_{i+1}>A_{i+2}>A_{i+3}$. The calculation of the light intensity $A_{i}'$ according to the angle of incidence is defined in Eq. (7). $\vec \nu$ is the normal vector of the hologram plane.

The formula for generating holograms using Eq. (7) is defined in Eq. (8) [11]. As we are generating a hologram based on a object point, we use the ray-tracing method. For the high speed generation of holograms, we use the multi-GPU based high performance hologram generation previously implemented by our research team [14,15].

The formula for generating holograms using Eq. (7) is defined in Eq. (8) [11]. As we are generating a hologram based on object points, we use the ray-tracing method. $I(u,v)$ is the intensity at $(u,v)$ of the hologram plane and $A'_{i}$ is the enhanced intensity at $(x, y, z)$. $N$ is the number of object points, $\lambda$ is the wavelength of the reference wave used to generate the hologram, and $p$ is the pixel pitch of the hologram, which is corresponding to the sampling distance on the hologram plane. For the high-speed generation of holograms, we use the multi-GPU based high-performance hologram generation previously implemented by our research team [14,15].

It is important to generate holograms in real time in a holographic AR system. However, as real-time generation of holograms is not the focus of this paper, it is not discussed in detail. We implement the proposed system using two workstations. The first and second workstations generate object points and holograms, respectively. We use two GPUs of RTX 2080 to generate 2K FHD color holograms in real time, and we use the hologram generation technology we previously researched [15]. A better workstation and a larger number of GPUs will achieve higher performance. Because modern GPU workstation systems are very good at parallel computing, GPU-based computation can improve speed and performance to the level desired by users. From this perspective, GPU-based performance improvement is no longer an important issue.

## 4. Experiment and results

We used eight Microsoft Kinect Azure RGB-D sensors. The camera layout is the same as in the imaging system described in Fig. 1. Four of the eight sensors were installed at a height of 0.7 $m$ from the ground, with the other four installed 1.7 $m$ from the ground. By setting a threshold value, only object points existing within a depth of 0.1-2.0 $m$ were obtained. Table 1 summarizes the specifications used for hologram generation and reconstruction.

#### 4.1 Object capturing

First, we generated a point cloud from images acquired using RGB-D cameras located at eight camera positions, and registered one integrated photorealistic 3D volumetric model after calibration.

The eight RGB-D cameras output about 30 frames of RGB and depth images per second. Figure 8 shows the RGB and depth images from the eight cameras. Figures 8(a)-(d) are the results taken with the camera located at the top, and Figs. 8(e)-(h) are those with the cameras located at the bottom. The black part of the border in the depth images is a characteristic of Microsoft Azure.

The error of the parameter of the transformation matrix for optimization was measured through the Euclidean distance of the internal coordinates of the Charuco board. The optimization was repeated until there was a difference of $10^{-10}$ from the error of the previous iteration. Although it was different for each camera, on average, the value quickly decreased until approximately 70 iterations of the optimization process, and then gradually converged to zero. The number of iterations varied from 50,000 to 200,000 for each camera. Figure 9 shows a graph of the results of the average error distance in relation to the number of iterations up to 1000. We conducted the experiment using two methods. The first is a general method: after the initial parameters are obtained using the Charuco board, an optimization algorithm is applied. The second method is to use only the optimization with the feature points of the RGB image captured from each camera without obtaining the initial parameters. Although the error was initially smaller when the initial parameters were used, the two methods converged as the number of iterations increased. Table 2 compares error values for the method using initial parameters together with those for the method using only optimization. Compared with the results using the initial parameters, the average error value of the results with only optimization is increased by 0.08 $mm$, but this is very small, so it has little effect visually. However, as can be seen from the value of $|Value - Avr.|$, the distribution of the error is very uniform, so when registering the point cloud, it showed better results visually. Figure 10 shows the results of matching the point cloud obtained from the distributed RGB-D camera before and after applying the optimization.

The density of the point cloud is not constant depending on the position of the camera, as shown in Fig. 11(a). When a hologram is generated using object points with a non-uniform density, an occluded region occurs in the hologram as shown in Fig. 11(b). The Point Cloud Regularization algorithm was applied to the sparse point cloud to make it denser, as shown in Fig. 11(c). In this case, a good-quality hologram can be generated as shown in Fig. 11(d).

#### 4.2 Hologram rendering

Next, we generated a hologram using the registered object points. If a user’s viewpoint is given, valid object points are calculated and mapped to the user’s viewpoint. The intensity of the incident light is calculated using the relationship between the normal vector of the object point and the hologram plane. A hologram was generated using this information and the object points.

After defining the point cloud (or mesh) as an AABB coordinate system, the result of mapping it to an arbitrary viewpoint located at a specific distance is shown in Fig. 12. Only the object points projected for each viewpoint is recorded on the hologram plane.

Figure 13 shows an example of the result of generating and reconstructing a hologram for two cases, with and without consideration of the relationship between the direction of the object point and the hologram plane. In Fig. 13(a), the mesh of the object is shown, and in Fig. 13(b), the normal vector obtained from each object point is shown as a blue line. Figure 13(c) shows the reconstruction results for the hologram without Eq. (7), and Fig. 13(d) shows the applied results. It can be seen visually that Fig. 13(d) provides a better 3D effect compared with Fig. 13(c).

We generated holograms from three viewpoints using the proposed techniques. Figure 14(a) shows the distance information as a depth map, and Fig. 14(b) is the aligned object points seen from the three viewpoints. Figure 14(c) shows the generated holograms without considering the intensity of light according to the angle of incidence, and Fig. 14(d) shows them with the intensity of light considered. When comparing the two types of holograms, it can be seen that the latter exhibits better visual characteristics when reconstructed. Figure 14(e) shows the optical reconstruction results.

We experimented with holographic AR services using different point cloud models. As shown in Fig. 15, it was confirmed that it is possible to provide high-quality holograms at three different viewpoints for two items (a person and an object) concurrently.

## 5. Conclusion

In this paper, we proposed a system that can generate a photorealistic 3D volumetric sequence using distributed RGB-D cameras and simultaneously provide multiple users with a point cloud model-based interactive hologram service. Using a feature point and an optimization algorithm, a realistic 3D volumetric model with a matching error of approximately 2.9 $mm$ was generated. When recording the hologram, after selecting valid object points using the normal vector of them and the user’s location, it was possible to generate a photorealistic hologram considering the incident angle of light in the hologram plane. Through experiments displaying holograms simultaneously from several different viewpoints, it was confirmed that multiple users can concurrently receive hologram AR services.

## Funding

Ministry of Science and ICT, South Korea (IITP - 2020 - 0 - 01846); National Research Foundation of Korea (2018R1D1A1B07043220).

## Acknowledgments

This research was supported by the Basic Science Research Program through the National Research Foundation of Korea, funded by the Ministry of Education (NRF - 2018R1 D1A1B07043220). This research was supported by the Ministry of Science and ICT, Korea, under the Information Technology Research Center support program (IITP - 2020 - 0 - 01846) supervised by the Institute of Information & Communications Technology Planning & Evaluation.

## Disclosures

The authors declare no conflicts of interest.

## References

**1. **G. Li, D. Lee, Y. Jeong, J. Cho, and B. Lee, “Holographic display for see-through augmented reality using mirror-lens holographic optical element,” Opt. Lett. **41**(11), 2486–2489 (2016). [CrossRef]

**2. **Y. Sando, K. Satoh, D. Barada, and T. Yatagai, “Real-time interactive holographic 3d display with a 360^{°} horizontal viewing zone,” Appl. Opt. **58**(34), G1–G5 (2019). [CrossRef]

**3. **H. Yoshikawa, T. Yamaguchi, and R. Kitayama, “Real-time generation of full color image hologram with compact distance look-up table,” Digital Holography and Three-Dimensional Imaging p. DWC4 (2009).

**4. **S. Oh and I. Jeong, “Cylindrical angular spectrum using fourier coefficients of point light source and its application to fast hologram calculation,” Opt. Express **23**(23), 29555–29564 (2015). [CrossRef]

**5. **M. Yamaguchi, “Full-parallax holographic light-field 3-d displays and interactive 3-d touch,” Proc. IEEE **105**(5), 947–959 (2017). [CrossRef]

**6. **S. Yamada, T. Kakue, T. Shimobaba, and T. Ito, “Interactive holographic display based on finger gestures,” Sci. Rep. **8**(1), 2010 (2018). [CrossRef]

**7. **L. Zhao, X. Sang, Z. Chen, H. Li, and Y. Wang, “Real-time rendering of computer-generated hologram with the view volume transformation based layered method,” Opt. Commun. **433**, 68–73 (2019). [CrossRef]

**8. **M. Lucente, “Interactive computation of holograms using a look-up table,” J. Electron. Imaging **2**(1), 28–35 (1993). [CrossRef]

**9. **K. Matsushima and S. Nakahara, “Extremely high-definition full-parallax computer-generated hologram created by the polygon-based method,” Appl. Opt. **48**(34), H54–H63 (2009). [CrossRef]

**10. **H. Kang, T. Yamaguchi, and H. Yoshikawa, “Accurate phase-added stereogram to improve the coherent stereogram,” Appl. Opt. **47**(19), D44–D54 (2008). [CrossRef]

**11. **C. Slinger, C. Cameron, and M. Stanley, “Computer-generated holography as a generic display technology,” Computer **38**(8), 46–53 (2005). [CrossRef]

**12. **Y.-H. Seo, Y.-H. Lee, J.-S. Yoo, and D.-W. Kim, “Hardware architecture of high-performance digital hologram generator on the basis of a pixel-by-pixel calculation scheme,” Appl. Opt. **51**(18), 4003–4012 (2012). [CrossRef]

**13. **Y.-H. Seo, Y.-H. Lee, and D.-W. Kim., “Asic chipset design to generate block-based complex holographic video,” Appl. Opt. **56**(9), D52–D59 (2017). [CrossRef]

**14. **Y.-H. Seo, Y.-H. Lee, and D.-W. Kim., “High-speed computer-generated hologram based on resource optimization for block-based parallel processing,” Appl. Opt. **57**(13), 3511–3518 (2018). [CrossRef]

**15. **Y.-H. Seo, Y.-H. Lee, J.-M. Koo, W.-Y. Kim, J.-S. Yoo, and D.-W. Kim, “Digital holographic video service system for natural color scene,” Opt. Eng. **52**(11), 113106 (2013). [CrossRef]

**16. **F. Yaras, H. Kang, and L. Onural, “Circular holographic video display system,” Opt. Express **19**(10), 9147–9156 (2011). [CrossRef]

**17. **H. Gao, F. Xu, J. Liu, Z. Dai, W. Zhou, S. Li, Y. Yu, and H. Zheng, “Holographic three-dimensional virtual reality and augmented reality display based on 4k-spatial light modulators,” Appl. Sci. **9**(6), 1182 (2019). [CrossRef]

**18. **G. An, S. Lee, M. Seo, K. Yun, W. Cheong, and S. Kang, “Charuco board-based omnidirectional camera calibration method,” Electronics **7**(12), 421 (2018). [CrossRef]

**19. **Z. Zhang, “A flexible new technique for camera calibration,” IEEE Trans. Pattern Anal. Machine Intell. **22**(11), 1330–1334 (2000). [CrossRef]

**20. **T. Back and H. Schwefel, “Convergence rate of optimization algorithms for a non-strictly convex function,” Evolutionary computation **1**, 1–23 (1993).

**21. **S. Ruder, “An overview of gradient descent optimization algorithms,” arXiv preprint arXiv (2016).

**22. **F. Aurenhammer, R. Klein, and D. Lee, “Voronoi diagrams and delaunay triangulations,” Computing in Euclidean Geometry pp. 225–265 (2019).

**23. **G. Barequet and S. Har-Peled, “Efficiently approximating the minimum-volume bounding box of a point set in three dimensions,” J. Algorithm **38**(1), 91–109 (2001). [CrossRef]

**24. **T. D. Gatzke and C. M. Grimm, “Estimating curvature on triangular meshes,” Int. J. Shape Model. **12**(01), 1–28 (2006). [CrossRef]

**25. **D. T. Lee and B. J. Schachter, “Two algorithms for constructing a delaunay triangulation,” Int. J. Comput. & Inf. Sci. **9**(3), 219–242 (1980). [CrossRef]

**26. **M. Brand, “Specular holography,” Appl. Opt. **50**(25), 5042–5046 (2011). [CrossRef]