# A Lightweight Surface Reconstruction Method for Online 3D Scanning Point Cloud Data Oriented toward 3D Printing

Authors: Buyun Sheng; Feiyu Zhao; Xiyan Yin; Chenglei Zhang; Hui Wang; Peide Huang
Journal: Mathematical Problems in Engineering
 (2018)

---

## Abstract

The existing surface reconstruction algorithms currently reconstruct large amounts of mesh data. Consequently, many of these algorithms cannot meet the efficiency requirements of real-time data transmission in a web environment. This paper proposes a lightweight surface reconstruction method for online 3D scanned point cloud data oriented toward 3D printing. The proposed online lightweight surface reconstruction algorithm is composed of a point cloud update algorithm (PCU), a rapid iterative closest point algorithm (RICP), and an improved Poisson surface reconstruction algorithm (IPSR). The generated lightweight point cloud data are pretreated using an updating and rapid registration method. The Poisson surface reconstruction is also accomplished by a pretreatment to recompute the point cloud normal vectors; this approach is based on a least squares method, and the postprocessing of the PDE patch generation was based on biharmonic-like fourth-order PDEs, which effectively reduces the amount of reconstructed mesh data and improves the efficiency of the algorithm. This method was verified using an online personalized customization system that was developed with WebGL and oriented toward 3D printing. The experimental results indicate that this method can generate a lightweight 3D scanning mesh rapidly and efficiently in a web environment.


---

## Body

## 1. Introduction

3D printing is a technology that manufacture solid parts through accumulating material layer by layer [1], and it can efficiently support the recent accomplishments in 3D digital-to-solid modeling [2]. 3D printing can produce customized objects [3, 4] that can be realized by any merchant to personalize products for a consumer, meet quality expectations, and add personal refinements [5]. With the development of the Internet, 3D printing cloud services platform can provide integrated 3D printing services [6] to serve customers at all levels: from cloud-based 3D scanning of a physical model to personalized and/or customized products [7]. However, cloud-based point cloud data surface reconstruction from 3D scanned point clouds requires not only a low-complexity reconstruction algorithm to meet the high concurrency requirements of cloud service platforms but also the reconstruction of a lightweight mesh to meet the requirements of efficient and real-time data transmission in web environments [8]. Most of the existing surface reconstruction algorithms use an accurate mesh as a reconstruction target without considering a reduction in the complexity of reconstruction algorithms or the lightweight nature of the 3D model data. In addition, a PC connected to a 3D scanner cannot receive the generated point cloud data directly from the cloud server due to Internet security requirements. Thus, real-time point cloud data transmission from the 3D scanner to the cloud service platform cannot be realized along with the process of 3D scanning [9].To reduce the complexity of the algorithm and generate a lightweight 3D model, in this paper, an online lightweight surface reconstruction algorithm is proposed, which is composed of a point cloud update algorithm (PCU), a rapid iterative closest point algorithm (RICP), and an improved Poisson surface reconstruction algorithm (IPSR). The PCU is used to obtain the latest point cloud data generated by the 3D scanner in real time. It can remove part of the noise from the point cloud data and makes it lightweight using a filtration approach based on the center of gravity. The 3D scanner used in this research is called Ciclop, which independently generates two point cloud data sets through its two infrared laser modules. Rapid and accurate registration between the two sets of point cloud data is achieved using the RICP. The resulting modified point cloud set restores the outline of the scanned object more accurately. During the process of surface reconstruction by the IPSR, the normal vectors of the point cloud data are pretreated via a recomputation method based on the least squares method. To repair the mesh holes that can easily be generated by the Poisson surface reconstruction algorithm, an iterative postprocessing algorithm for PDE patch generation based on biharmonic-like fourth-order PDEs is executed successively in IPSR, which also reduces the amount of reconstructed mesh data.To realize real-time point cloud data transmission, a dynamic visualization framework for point cloud data, based on WebSocket, is also proposed in this paper. The point cloud data generated by Ciclop in real-time can be encapsulated as a JSON file in the local server and dynamically displayed in the browser using WebSocket and WebGL. In addition, the fluency and high rendering effect of dynamic visualization of point cloud data is ensured by the Web Worker mechanism in high concurrency environments.In sum, the novel contributions in this paper are as follows: (1) an online lightweight surface reconstruction algorithm, in which the lightweight operations are conducted at every step, from point cloud data acquisition to preprocessing and to surface reconstruction. This reconstruction ensures that a reduced data volume of the 3D model meets the requirement for web-based data transmission; (2) a dynamic visualization framework for point cloud data based on WebSocket, which achieves online dynamic visualization of point cloud data in high concurrency environments; (3) an online personalized customization system oriented toward 3D printing, which dynamically visualizes the point cloud data through the 3D scanning process and the efficient and rapid reconstruction of the lightweight mesh in the web environment.The remainder of this paper is organized as follows. Section2 reviews prior relevant research concerning surface reconstruction. Section 3 elaborates the online lightweight surface reconstruction algorithm, which includes the PCU, the RICP, and the IPSR. Section 4 presents the experiments, which demonstrate the system framework and experimental platform, point cloud update and the results of dynamic visualization tests, point cloud registration tests, and online surface reconstruction tests, and Section 5 concludes the paper.


## 2. Related Works

### 2.1. Surface Reconstruction

In the field of surface reconstruction, Zhang et al. [10] proposed a new approach to simultaneously denoise and parameterize unorganized point cloud data, in which the key ingredient was an “as-rigid-as-possible” meshless parameterization that maps a point cloud with disk topology to a 3D plane. Denoising and reconstruction of the point cloud are executed in the same process. Huang et al. [11] proposed a 3D reconstruction system that performs fast 3D modeling using a Kinect sensor and can automatically detect the face region and track head pose using an ICP algorithm. A volumetric integration method was used to fuse the resulting data. Finally, a marching cubes algorithm was used to reconstruct the face model used for display, which effectively improved the face model accuracy. Centin et al. [12] proposed a new Poisson reconstruction algorithm based on an interpolation method and exploited it to efficiently guide a restricted Delaunay framework protecting the input mesh and the boundary curves. The boundary of a repaired hole can be seamlessly integrated with the patch boundary. Garrett et al. [13] proposed an accurate object-tracking method based on an ICP algorithm. Reduced-density friendly point clouds can be reconstructed to create an accurate mesh through a Poisson surface reconstruction algorithm via object tracking. Peyrot et al. [14] proposed a framework to design semiregular meshes directly from stereoscopic images in which feature-preserving samples of the stereoscopic images were extracted to obtain a base mesh. Then, using iterative procedures, a semiregular mesh of the original surface was generated from the base mesh. Liu et al. [15] proposed a method for representing 3D outdoor scenes via 3D laser point clouds that used a fast optimal bearing angle (FOBA) approach to project the 3D laser point clouds to 2D images, which greatly reduced the computational cost of scene segmentation with little loss of accuracy, thus improving the efficiency of the reconstruction. Li et al. [16] proposed a Prominent Cross-Section algorithm embedded with a curvature constraint that can automatically identify the boundary of a damaged area, thereby eliminating any defective point clouds during the reconstruction process. They also proposed an improved iterative ICP algorithm to automatically identify and eliminate any unreliable corresponding pairs. Roth et al. [17] proposed a method for reconstructing the 3D surface model of an individual’s face along with albedo information. A 3D Morphable Model was fitted to form a personalized template, and a novel photometric stereo formulation was also developed. This formulation of an accurate 3D face model can be generated from low-quality photo collections and with fewer images based on the albedo information. Boltcheva and Lévy [18] proposed a method for reconstructing a 3D surface triangulation from an input point set based on a restricted Voronoi diagram. The properties of the restricted Voronoi cells were utilized to make an embarrassingly parallel implementation that could process 100 million vertices within a few minutes to achieve rapid mesh reconstruction.


### 2.2. Network Communications

In the field of network communication, Marion and Jomier [19] proposed a web-based system that focused on collaborative interaction. The system is composed of two innovative technologies: WebGL and WebSocket. The architecture of the proposed system was presented, and the operating process of the system was further elaborated in the field of telemedicine. Zimmer and Kerren [20] suggested a client/server-based visualization system for collaboratively exploring graphs in which the web application was rendered by WebGL, and the real-time visualization transmission was achieved by WebSocket. Mwalongo et al. [21] proposed an approach to visualize dynamic molecular data using WebGL. The approach exploits HTML5 technologies such as WebSocket and Web Workers and used efficient data encoding techniques to minimize the data transferred to the client. This approach allows scientists to perform analyses from dynamic visualizations of the molecular structure data via a browser. Renambot et al. [22] presented SAGE2, a software framework based on WebSocket that enables local and remote collaboration. 3D-rendering and cross-platform visualization and interaction were supported in this framework, which can be utilized in education, academic conferences, and so on.


### 2.3. Existing Problems in Current Research

Although any of the current surface reconstruction algorithms [11–14] can reconstruct accurate meshes, the data volume of 3D meshes is larger; thus, the resulting average reconstruction time is also longer. As an example of this increased data volume, for Stanford Bunny point cloud data (1.89 MB), the reconstruction mesh was at least 20 MB and the average reconstruction time was at least 15 s. Although the quality of the point cloud and mesh improved while the reconstruction time decreased due to denoising and registration pretreatments, the surface reconstruction algorithms [10, 16] were not optimized, resulting in a insufficiently lightweight mesh. Consequently, the reconstruction was unable to meet the requirements for network transmission. While the methods of real-time data communication technologies, based on WebSocket [19–22], were achieved only if the effects of the relevant data were stored in a database, the data could be visualized dynamically in the browser. Thus, the real-time data communication between device and cloud server was not achieved. Overall, dynamic visualization of point cloud data in a browser, processed by 3D scanning technology, is difficult to achieve.


## 2.1. Surface Reconstruction

In the field of surface reconstruction, Zhang et al. [10] proposed a new approach to simultaneously denoise and parameterize unorganized point cloud data, in which the key ingredient was an “as-rigid-as-possible” meshless parameterization that maps a point cloud with disk topology to a 3D plane. Denoising and reconstruction of the point cloud are executed in the same process. Huang et al. [11] proposed a 3D reconstruction system that performs fast 3D modeling using a Kinect sensor and can automatically detect the face region and track head pose using an ICP algorithm. A volumetric integration method was used to fuse the resulting data. Finally, a marching cubes algorithm was used to reconstruct the face model used for display, which effectively improved the face model accuracy. Centin et al. [12] proposed a new Poisson reconstruction algorithm based on an interpolation method and exploited it to efficiently guide a restricted Delaunay framework protecting the input mesh and the boundary curves. The boundary of a repaired hole can be seamlessly integrated with the patch boundary. Garrett et al. [13] proposed an accurate object-tracking method based on an ICP algorithm. Reduced-density friendly point clouds can be reconstructed to create an accurate mesh through a Poisson surface reconstruction algorithm via object tracking. Peyrot et al. [14] proposed a framework to design semiregular meshes directly from stereoscopic images in which feature-preserving samples of the stereoscopic images were extracted to obtain a base mesh. Then, using iterative procedures, a semiregular mesh of the original surface was generated from the base mesh. Liu et al. [15] proposed a method for representing 3D outdoor scenes via 3D laser point clouds that used a fast optimal bearing angle (FOBA) approach to project the 3D laser point clouds to 2D images, which greatly reduced the computational cost of scene segmentation with little loss of accuracy, thus improving the efficiency of the reconstruction. Li et al. [16] proposed a Prominent Cross-Section algorithm embedded with a curvature constraint that can automatically identify the boundary of a damaged area, thereby eliminating any defective point clouds during the reconstruction process. They also proposed an improved iterative ICP algorithm to automatically identify and eliminate any unreliable corresponding pairs. Roth et al. [17] proposed a method for reconstructing the 3D surface model of an individual’s face along with albedo information. A 3D Morphable Model was fitted to form a personalized template, and a novel photometric stereo formulation was also developed. This formulation of an accurate 3D face model can be generated from low-quality photo collections and with fewer images based on the albedo information. Boltcheva and Lévy [18] proposed a method for reconstructing a 3D surface triangulation from an input point set based on a restricted Voronoi diagram. The properties of the restricted Voronoi cells were utilized to make an embarrassingly parallel implementation that could process 100 million vertices within a few minutes to achieve rapid mesh reconstruction.


## 2.2. Network Communications

In the field of network communication, Marion and Jomier [19] proposed a web-based system that focused on collaborative interaction. The system is composed of two innovative technologies: WebGL and WebSocket. The architecture of the proposed system was presented, and the operating process of the system was further elaborated in the field of telemedicine. Zimmer and Kerren [20] suggested a client/server-based visualization system for collaboratively exploring graphs in which the web application was rendered by WebGL, and the real-time visualization transmission was achieved by WebSocket. Mwalongo et al. [21] proposed an approach to visualize dynamic molecular data using WebGL. The approach exploits HTML5 technologies such as WebSocket and Web Workers and used efficient data encoding techniques to minimize the data transferred to the client. This approach allows scientists to perform analyses from dynamic visualizations of the molecular structure data via a browser. Renambot et al. [22] presented SAGE2, a software framework based on WebSocket that enables local and remote collaboration. 3D-rendering and cross-platform visualization and interaction were supported in this framework, which can be utilized in education, academic conferences, and so on.


## 2.3. Existing Problems in Current Research

Although any of the current surface reconstruction algorithms [11–14] can reconstruct accurate meshes, the data volume of 3D meshes is larger; thus, the resulting average reconstruction time is also longer. As an example of this increased data volume, for Stanford Bunny point cloud data (1.89 MB), the reconstruction mesh was at least 20 MB and the average reconstruction time was at least 15 s. Although the quality of the point cloud and mesh improved while the reconstruction time decreased due to denoising and registration pretreatments, the surface reconstruction algorithms [10, 16] were not optimized, resulting in a insufficiently lightweight mesh. Consequently, the reconstruction was unable to meet the requirements for network transmission. While the methods of real-time data communication technologies, based on WebSocket [19–22], were achieved only if the effects of the relevant data were stored in a database, the data could be visualized dynamically in the browser. Thus, the real-time data communication between device and cloud server was not achieved. Overall, dynamic visualization of point cloud data in a browser, processed by 3D scanning technology, is difficult to achieve.


## 3. Online Lightweight Surface Reconstruction Algorithm

The method proposed in this paper is achieved by using an open-source 3D scanner called Ciclop. The structure of Ciclop is shown in Figure1. The two point cloud sets, denoted by PA=pA0,pA1,…,pAn and PB=pB1,pB2,…,pBn, are generated from infrared laser modules A and B, respectively.Figure 1
Open source Ciclop 3D scanner.To ensure the efficiency and speed of surface reconstruction and the reconstruction of a lightweight mesh, an online lightweight surface reconstruction algorithm is proposed in this paper. The algorithm includes the PCU, the RICP, and the IPSR. These three subalgorithms are executed in turn. A flow-chart of the online lightweight surface reconstruction algorithm is shown in Figure2.Figure 2
Online lightweight surface reconstruction algorithm.The process in the PCU can be described as two point cloud sets,PAi and PBi, which are generated by the infrared laser module A and B, respectively, from a set of depth images I=I1,I2,…,Ii,…,In which are acquired continuously from Ciclop’s Logitech C270 camera. The point cloud data is updated during the process of 3D scanning. The determination of whether to terminate the process is executed after each iteration. The holonomic point cloud sets PA and PB should be generated over several iterations.The RICP performs the registration betweenPA and PB. First, PA is selected as the benchmark, and a preregistration of PA and PB is executed based on the spatial relationship between the infrared laser modules A and B. Thus, PB is rotated to the position of PB. Then, the ICP algorithm transforms point cloud set PB, rotating it to a new position, PB¯. Finally, the solution of modified point cloud set P∗ is conducted using the spatial relationship between PA and PB¯.The IPSR first executes a pretreatment step that reconstructs the normal vectors of the modified point cloud setP∗ based on the least squares method. Subsequently, the Poisson surface reconstruction and a postprocessing step that generates PDE patches based on a biharmonic-like fourth-order PDEs are conducted successively. The lightweight mesh M is generated through the above procedures.


### 3.1. Point Cloud Update Algorithm

A point cloud update algorithm (PCU) is proposed in this paper. The updating process involves the following process: whenever the Ciclop turntable is rotated by 1.8 degrees, a new depth imageIi is generated by the Logitech C270, adding the new feature points pi and pj to the point cloud sets PAi and PBi, respectively. PA and PB will be refined after several iterations.To meet the requirements of efficient and real-time data transmission based on B/S, the new feature points generated fromIi should be filtered before they are added into the existing point cloud sets. As shown in Figure 3, first, new feature points are selected. Then, new triangular structures are formed based on these new feature points and the base of a triangular structure. These new triangular structures are considered the base triangular structures that need further refinement.Figure 3
Filtration of new feature points.The filtration approach is conducted based on a center of gravity approach that can be described as follows.Step 1.
Three feature pointspA, pB, pC that are about to be reconstructed as mesh triangle are obtained from the depth image Ii, and their 2D coordinates pAxA,yA, pBxB,yB, and pCxC,yC are extracted. Their center of gravity is computed by pG=xG,yG=xA+xB+xC/3,yA+yB+yC/3.Step 2.
The 2D points obtained from the depth imageIi+1 are imported into the existing point cloud set. Any points located inside the triangle (ignoring the points on the boundary) are selected and collected as the point set p1,p2,…,pn.Step 3.
The variabledmin is defined as the minimum distance. A bubble sort algorithm [23] is utilized to compute the point (pi) nearest to pG, which is determined using the distance formula dmin=xG-xi2+yG-yi2.Step 4.
The new feature pointpi is selected, and three subtriangles are generated from this new feature point with the other three existing feature points, after which the filtration process is complete.Compared with the point cloud update approach that adds all the points into the point cloud set, our approach effectively achieves a denoised and lightweight point cloud to some extent.


### 3.2. Rapid Iterative Closest Point Algorithm

Fundamentally, the RICP can be regarded as a solution of a least squares problem. The method was proposed by Besl and McKay [24], who determined that this approach can accomplish registration between two point cloud sets PA and PB [25]. Let PA=pA0,pA1,…,pAn be the reference point cloud set and PB=pB1,pB2,…,pBn be the sample point cloud set. A translation vector t and a rotation matrix R which transform PB to PA can be computed by ICP.To achieve rapid registration between different point cloud sets and reduce the number of iterations, a preregistration process is conducted betweenPA and PB, i.e., the rotation matrix R′ and translation vector t′ forming a rigid transformation from the position OBxB,yB,zB to the position OAxA,yA,zA of the respective infrared laser modules, B and A, are computed in a world-coordinate system. Then, PB is preassociated with R′ and t′, which greatly reduces the time to find the nearest points between two point cloud sets and number of ICP iterations.(1) Preregistration.Translation vector t′ is computed from OAxA,yA,zA, OBxB,yB,zB and formulated as follows:(1)t′=OA-OB,where OA and OB should be expressed as pure quaternions (i.e., OA′xA,yA,zA,0 and OB′xB,yB,zB,0). Let the origin of the world-coordinate system be O; then, the rotation unit quaternion from OOB′ to OOA′ can be computed as qqx,qy,qz,qw. According to [26],(2)OOA′=q·OOB′·q-1,where q-1 is the conjugate quaternion of q and expressed as q-1-qx,-qy,-qz,qw. Thus, q can be solved from (2), and q can be transformed to the rotation matrix R′, which is formulated as follows:(3)R′=qw2+qx2-qy2-qz22qxqy-qwqz2qxqz+qwqy2qxqy+qwqzqw2-qx2+qy2-qz22qyqz-qwqx2qxqz-qwqy2qyqz+qwqxqw2-qx2-qy2+qz2.Thus, the rigid transformation ofPB based on R′ and t′ is implemented to transform PB to the point cloud set PB, which is formulated as follows:(4)PB=R′PB+t′.(2) The Transformation of the Point Cloud Set.The ICP relies on identifying the nearest neighbors between both point sets. To find the matches between PA and PB, a k-nearest neighbors search [27] is used that adopts Euclidean distance as the distance measure:(5)dist⁡PB,PA=pB1-pA12+pB2-pA22+⋯+pBn-pAn2.Only one neighbor is returned whenPA and PB are in exact spatial correspondence. When too many points are close (relative to an algorithmic threshold), the match is rejected in the current frame and not considered further. Therefore, akd-tree data structure is used for all points, and anapproximate nearest neighbor search [28] is implemented to accelerate the search.All the associated points should be weighted. The weight value is based on the comparability of normal vectors and formulated as follows:(6)wij=ni·nj.The normal vectors of two matching points must be aligned in a similar direction after the two point clouds are approximately aligned. The output of this step is a point cloud set consisting of theN corresponding points in PA and PB, along with the weight values wij for each match 0≤wij≤1.To transform the point sets, the translation vectort and rotation matrix R are computed from PB to PA. The translation vector t can be computed as the difference between the corresponding centroids of PA and PB, which can be formulated as follows:(7)gPA=1NPA∑i=1NPApAigPB=1NPB∑j=1NPBpBj.The translation in stepk is given as a rotation from the previous step, Δt=gPB-R·gPA. Assume that total number of iterations is K; then, the final translation vector is(8)t=tK-1+Δt.To calculate the rotation matrixR, all the points must be first moved to their centroids and formulated as(9)pAi′=pAi+gPApBi′=pBi+gPB.According to [29], the incremental rotation matrix ΔR is computed by(10)ΔR=VUT,where V and U are orthogonal matrices that result from a singular value decomposition where(11)W=U∑VT=∑i=1NPApBi′pAi′T.Here,ΔR is the orientation increment between the matching points in pBj and pAi, which stem from PB and PA, respectively. The final rotation matrix R is formulated as follows:(12)R=RK-1+ΔR.ICP aligns the two point clouds by solving a least squares problem [30] with an error function σR,t formulated as(13)σR,t=1NPA∑i=1NPAwipBi-R·pAi-t2,where NPA represents the number of points in PA. Points that do not meet the error metric (such as a set Euclidean distance between pAi and pBj for outlier removal) have a weight of 0 so that they do not contribute to the error function. The termination criterion σ is checked after all the iteration steps have been processed. The iteration continues until the termination criterion Δσ=σk-σk-1<σ is reached in step k, meaning that the error delta between two subsequent frames is below the termination criterion σ. The resulting translation vector t and the rotation matrix R are generated in step k.(3) Solution of the Modified Point Cloud Set.After transforming the point cloud set from PB to the position registered with PA, a new point cloud set PB¯ is generated. The modified point cloud set P∗, for arbitrary pi∗∈P∗, pi∗ is computed as shown in the following:(14)pi∗=pAi+pBj¯2.


### 3.3. Improved Poisson Surface Reconstruction Algorithm

Surface reconstruction can be accomplished by a Poisson surface reconstruction algorithm. Typical PDE Poisson equations are constructed and solved iteratively to extract the isosurface and realize surface reconstruction. However, there are several disadvantages to this algorithm: it is strongly dependent on normal vectors and tends to form mesh holes. Therefore, the IPSR is proposed in this paper. The point cloud pretreatment, including recomputing the normal vectors based on the least squares method and postprocessing a generated PDE patch based on biharmonic-like fourth-order PDEs, is conducted successively to generate an accurate, connected, and lightweight mesh.


#### 3.3.1. Recomputation of Point Clouds Normal Vectors

The recomputation of the normal vectors of a point cloud proposed in this paper is based on the least squares method. Then, the computational complexity of the surface reconstruction algorithm is reduced based on the accuracy of the normal vectors [31].An arbitrary coordinate pointpi∗, in a point cloud set P∗, and all the K neighbor points of pi∗ can be regarded as being on approximately the same plane, L, which is formulated as follows:(15)Ax+By+Cz+D=0.The residual sum of squares between all theK-neighbor points and L is(16)d=∑i=1nAxi∗+Byi∗+C-z2.The best fit can be regarded as the minimumd; therefore, we take the partial derivative of d with A, B, and C. Then, the equations are(17)∂d∂A=2A∑i=1nxi2+B∑i=1nxiyi+C∑i=1nxi-∑i=1nxizi∂d∂B=2A∑i=1nxiyi+B∑i=1nyi2+C∑i=1nyi-∑i=1nyizi∂d∂C=2A∑i=1nxi+B∑i=1nyi+nC-∑i=1nzi.Let∂d/∂A=0, ∂d/∂B=0, and ∂d/∂C=0. Finally, the result can be formulated as follows:(18)
A
B
C
=
∑
i
=
1
n
x
i
∗
2
∑
i
=
1
n
x
i
∗
y
i
∗
∑
i
=
1
n
x
i
∗
∑
i
=
1
n
x
i
∗
y
i
∗
∑
i
=
1
n
y
i
∗
2
∑
i
=
1
n
y
i
∗
∑
i
=
1
n
x
i
∗
∑
i
=
1
n
y
i
∗
n
-
1
∑
i
=
1
n
x
i
∗
z
i
∗
∑
i
=
1
n
y
i
∗
z
i
∗
∑
i
=
1
n
z
i
∗
.The coefficientsA, B, and C can be solved via (18) to generate the normal vector ni of pi∗. Moreover, the vector orientations are processed for consistency; that is, an arbitrary normal vector nj of point pj∗, which is near point pi∗, is selected. Transvection of ni and nj is conducted. If ni·nj>0, the orientation of ni is kept; otherwise, ni is adjusted to the opposite orientation: -ni.


#### 3.3.2. Poisson Surface Reconstruction

In a Poisson surface reconstruction, the solution of the surface to be reconstructed is regarded as the solution of a 3D indicator functionχ. The reconstructed surface is then obtained by extracting the appropriate isosurface [32]. This process is depicted in Figure 4.Figure 4
The process of Poisson surface reconstruction.To solve the Poisson equation, the 3D space should be discretized. Therefore, an adaptiveoctree is built. The closer the border is, the larger the density of theoctree is [32]. Based on theoctree, the base function F is defined as(19)Fx,y,z≡BxByBzn∗withBt=1t<0.50otherwise,where ∗n represents the nth convolution. Every point sample becomes a leaf node o in a depthD octree; therefore, the unit-integral “node function” centered around node o is formulated as (20)Foq=Fq-o·co·w1o·w3,where o·c represents the center of o and o·w represents the width of o.The vector fieldV→q is determined from the normal vector ni→ of pi∗ in a point cloud set P∗. The gradient field of the indicator function χ can be expressed as ∇χ. The purpose of the Poisson surface reconstruction is to solve a function χ whose gradient best approximates a vector field V→q defined by P∗. This can be formulated as follows:(21)minχ∇χ-V→.The problem shown in (21) can be solved by the Poisson equation Δχ=∇∙V→. A vector field V→ can be approximately formulated as(22)V→q=∑p∗∈P∗∑o∈NgbrDp∗αo,sFoqn→,where NgbrDs are the eight depth-D nodes closest to p∗and αo,s represents the trilinear interpolation weights. To solve the problem that ∇∙V→ and Δχ are not in the function space, the equation can be simplified by solving for the χ function by minimizing(23)∑oΔχ-∇·V→,Fo2=∑oΔχ,Fo-∇·V→,Fo2.Given a vectorv, whose oth coordinate is vo→=∇·V→,Fo, the goal is to solve for the function χ. The vector can be obtained by projecting the Laplacian of χ onto each Fo, ensuring that it is as close to v as possible. To express (23) in matrix form, let χ=∑oxoFo; then, the problem is transformed into one of solving for the vector xo.(24)∑oΔχ,Fo-∇·V→,Fo2=∑o′∑oxoΔFo,Fo′-∇·V→,Fo′2.Let the matrixL be contributed as the dot product of the Laplacian with each of the Fo values; for all o, o′; the o,o′th entry of L is set to(25)Lo,o′≡∂2Fo∂x2,Fo′+∂2Fo∂y2,Fo′+∂2Fo∂z2,Fo′.Thus, the solution of the indicator functionχ can be regarded as finding(26)minxLx-v2.The isosurface from the indicator functionχ can be extracted tooctree representations through the method used in previous adaptations of the marching cubes [33].


#### 3.3.3. Generation of PDE Patches

The lightweight methods are implemented in the abovementioned algorithms (i.e., PCU in Section3.1, RICP in Section 3.2, and the recomputation of point clouds normal vectors in Section 3.3.1). Because of the highly lightweight point cloud data, it is easy to generate mesh holes near areas with complex curvature variations, which could influence the visualization of the reconstructed 3D model. Thus, in this paper, an alternative approach to PDE patch generation based on biharmonic-like fourth-order PDEs is proposed. The algorithm is utilized to repair mesh holes on the reconstructed surface according to Section 3.3.2. Each hole is represented by patches with their own uv coordinate system. The preservation of irregular and sharp details on the surface will be found by matching the respective patches to the surface at various sizes and orientations. According to [34], a biharmonic-like fourth-order PDE is formulated as follows:(27)∂2∂u2+a2∂2∂v22Su,v=0,where Su,v is regarded as the hole Hu,v to be repaired, and 0≤u≤1, 0≤v≤2π. Additionally, the PDE patch Pu,v can be formulated by (27). The analytic solution of (27) can be computed by of separating the variables and formulating the problem as(28)Hu,v=A0u+∑n=1NAnucos⁡nv+Bnusin⁡nv,where A0u, Anu, Bnu are, respectively, formulated as follows:(29)A0u=α00+α01u+α02u2+α03u3Anu=αn1eanu+αn2ueanu+αn3e-anu+αn4ue-anuBnu=βn1eanu+βn2ueanu+βn3e-anu+βn4ue-anu.The PDE coefficientsα00,α01,…,αn3,αn4 and β11,β12,…,βn3,βn4 are vectors valued by the boundary conditions. A0u is regarded as the “spine” of the surface, and Anucos⁡nv+Bnusin⁡nv is an n-order “radius” vector. The amplitude of the “radius” term decays as the frequency increases (if N→∞), so that the solution of the PDE patch is mostly determined by a first-order “radius” vector A1ucos⁡v+B1usin⁡v and a second-order “radius” vector A2ucos⁡2v+B2usin⁡2v. Therefore, (28) can be approximately reformulated as follows:(30)Hu,v=A0u+A1ucos⁡v+B1usin⁡v+A2ucos⁡2v+B2usin⁡2v.The number of vector-valued PDE coefficients isMc=4×2N+1. The higher Mc is, the higher the complexity of the reconstruction is. To generate a lightweight mesh, we let N=3. Then, the boundary conditions that fit (27) are formulated as follows:(31)H0,v=C0vHu1,v=C1vHu2,v=C2vH1,v=C3v,where the conditions C0v, C1v, C2v, and C3v are isoparm boundary curves on the surface patch at u=0,u1,u2,1, respectively, where 0<u1,u2<1. To precisely approach the mesh representation of complex geometric shapes, this method needs to use sufficient PDE boundary curves, which must be extracted from the vertices of the original polygon mesh representation. Figure 5 illustrates the layout of the various PDE boundary curves for an individual PDE patch, where C0v degenerates into a single point.Figure 5
Layout of PDE boundary curves.


## 3.1. Point Cloud Update Algorithm

A point cloud update algorithm (PCU) is proposed in this paper. The updating process involves the following process: whenever the Ciclop turntable is rotated by 1.8 degrees, a new depth imageIi is generated by the Logitech C270, adding the new feature points pi and pj to the point cloud sets PAi and PBi, respectively. PA and PB will be refined after several iterations.To meet the requirements of efficient and real-time data transmission based on B/S, the new feature points generated fromIi should be filtered before they are added into the existing point cloud sets. As shown in Figure 3, first, new feature points are selected. Then, new triangular structures are formed based on these new feature points and the base of a triangular structure. These new triangular structures are considered the base triangular structures that need further refinement.Figure 3
Filtration of new feature points.The filtration approach is conducted based on a center of gravity approach that can be described as follows.Step 1.
Three feature pointspA, pB, pC that are about to be reconstructed as mesh triangle are obtained from the depth image Ii, and their 2D coordinates pAxA,yA, pBxB,yB, and pCxC,yC are extracted. Their center of gravity is computed by pG=xG,yG=xA+xB+xC/3,yA+yB+yC/3.Step 2.
The 2D points obtained from the depth imageIi+1 are imported into the existing point cloud set. Any points located inside the triangle (ignoring the points on the boundary) are selected and collected as the point set p1,p2,…,pn.Step 3.
The variabledmin is defined as the minimum distance. A bubble sort algorithm [23] is utilized to compute the point (pi) nearest to pG, which is determined using the distance formula dmin=xG-xi2+yG-yi2.Step 4.
The new feature pointpi is selected, and three subtriangles are generated from this new feature point with the other three existing feature points, after which the filtration process is complete.Compared with the point cloud update approach that adds all the points into the point cloud set, our approach effectively achieves a denoised and lightweight point cloud to some extent.


## 3.2. Rapid Iterative Closest Point Algorithm

Fundamentally, the RICP can be regarded as a solution of a least squares problem. The method was proposed by Besl and McKay [24], who determined that this approach can accomplish registration between two point cloud sets PA and PB [25]. Let PA=pA0,pA1,…,pAn be the reference point cloud set and PB=pB1,pB2,…,pBn be the sample point cloud set. A translation vector t and a rotation matrix R which transform PB to PA can be computed by ICP.To achieve rapid registration between different point cloud sets and reduce the number of iterations, a preregistration process is conducted betweenPA and PB, i.e., the rotation matrix R′ and translation vector t′ forming a rigid transformation from the position OBxB,yB,zB to the position OAxA,yA,zA of the respective infrared laser modules, B and A, are computed in a world-coordinate system. Then, PB is preassociated with R′ and t′, which greatly reduces the time to find the nearest points between two point cloud sets and number of ICP iterations.(1) Preregistration.Translation vector t′ is computed from OAxA,yA,zA, OBxB,yB,zB and formulated as follows:(1)t′=OA-OB,where OA and OB should be expressed as pure quaternions (i.e., OA′xA,yA,zA,0 and OB′xB,yB,zB,0). Let the origin of the world-coordinate system be O; then, the rotation unit quaternion from OOB′ to OOA′ can be computed as qqx,qy,qz,qw. According to [26],(2)OOA′=q·OOB′·q-1,where q-1 is the conjugate quaternion of q and expressed as q-1-qx,-qy,-qz,qw. Thus, q can be solved from (2), and q can be transformed to the rotation matrix R′, which is formulated as follows:(3)R′=qw2+qx2-qy2-qz22qxqy-qwqz2qxqz+qwqy2qxqy+qwqzqw2-qx2+qy2-qz22qyqz-qwqx2qxqz-qwqy2qyqz+qwqxqw2-qx2-qy2+qz2.Thus, the rigid transformation ofPB based on R′ and t′ is implemented to transform PB to the point cloud set PB, which is formulated as follows:(4)PB=R′PB+t′.(2) The Transformation of the Point Cloud Set.The ICP relies on identifying the nearest neighbors between both point sets. To find the matches between PA and PB, a k-nearest neighbors search [27] is used that adopts Euclidean distance as the distance measure:(5)dist⁡PB,PA=pB1-pA12+pB2-pA22+⋯+pBn-pAn2.Only one neighbor is returned whenPA and PB are in exact spatial correspondence. When too many points are close (relative to an algorithmic threshold), the match is rejected in the current frame and not considered further. Therefore, akd-tree data structure is used for all points, and anapproximate nearest neighbor search [28] is implemented to accelerate the search.All the associated points should be weighted. The weight value is based on the comparability of normal vectors and formulated as follows:(6)wij=ni·nj.The normal vectors of two matching points must be aligned in a similar direction after the two point clouds are approximately aligned. The output of this step is a point cloud set consisting of theN corresponding points in PA and PB, along with the weight values wij for each match 0≤wij≤1.To transform the point sets, the translation vectort and rotation matrix R are computed from PB to PA. The translation vector t can be computed as the difference between the corresponding centroids of PA and PB, which can be formulated as follows:(7)gPA=1NPA∑i=1NPApAigPB=1NPB∑j=1NPBpBj.The translation in stepk is given as a rotation from the previous step, Δt=gPB-R·gPA. Assume that total number of iterations is K; then, the final translation vector is(8)t=tK-1+Δt.To calculate the rotation matrixR, all the points must be first moved to their centroids and formulated as(9)pAi′=pAi+gPApBi′=pBi+gPB.According to [29], the incremental rotation matrix ΔR is computed by(10)ΔR=VUT,where V and U are orthogonal matrices that result from a singular value decomposition where(11)W=U∑VT=∑i=1NPApBi′pAi′T.Here,ΔR is the orientation increment between the matching points in pBj and pAi, which stem from PB and PA, respectively. The final rotation matrix R is formulated as follows:(12)R=RK-1+ΔR.ICP aligns the two point clouds by solving a least squares problem [30] with an error function σR,t formulated as(13)σR,t=1NPA∑i=1NPAwipBi-R·pAi-t2,where NPA represents the number of points in PA. Points that do not meet the error metric (such as a set Euclidean distance between pAi and pBj for outlier removal) have a weight of 0 so that they do not contribute to the error function. The termination criterion σ is checked after all the iteration steps have been processed. The iteration continues until the termination criterion Δσ=σk-σk-1<σ is reached in step k, meaning that the error delta between two subsequent frames is below the termination criterion σ. The resulting translation vector t and the rotation matrix R are generated in step k.(3) Solution of the Modified Point Cloud Set.After transforming the point cloud set from PB to the position registered with PA, a new point cloud set PB¯ is generated. The modified point cloud set P∗, for arbitrary pi∗∈P∗, pi∗ is computed as shown in the following:(14)pi∗=pAi+pBj¯2.


## 3.3. Improved Poisson Surface Reconstruction Algorithm

Surface reconstruction can be accomplished by a Poisson surface reconstruction algorithm. Typical PDE Poisson equations are constructed and solved iteratively to extract the isosurface and realize surface reconstruction. However, there are several disadvantages to this algorithm: it is strongly dependent on normal vectors and tends to form mesh holes. Therefore, the IPSR is proposed in this paper. The point cloud pretreatment, including recomputing the normal vectors based on the least squares method and postprocessing a generated PDE patch based on biharmonic-like fourth-order PDEs, is conducted successively to generate an accurate, connected, and lightweight mesh.


### 3.3.1. Recomputation of Point Clouds Normal Vectors

The recomputation of the normal vectors of a point cloud proposed in this paper is based on the least squares method. Then, the computational complexity of the surface reconstruction algorithm is reduced based on the accuracy of the normal vectors [31].An arbitrary coordinate pointpi∗, in a point cloud set P∗, and all the K neighbor points of pi∗ can be regarded as being on approximately the same plane, L, which is formulated as follows:(15)Ax+By+Cz+D=0.The residual sum of squares between all theK-neighbor points and L is(16)d=∑i=1nAxi∗+Byi∗+C-z2.The best fit can be regarded as the minimumd; therefore, we take the partial derivative of d with A, B, and C. Then, the equations are(17)∂d∂A=2A∑i=1nxi2+B∑i=1nxiyi+C∑i=1nxi-∑i=1nxizi∂d∂B=2A∑i=1nxiyi+B∑i=1nyi2+C∑i=1nyi-∑i=1nyizi∂d∂C=2A∑i=1nxi+B∑i=1nyi+nC-∑i=1nzi.Let∂d/∂A=0, ∂d/∂B=0, and ∂d/∂C=0. Finally, the result can be formulated as follows:(18)
A
B
C
=
∑
i
=
1
n
x
i
∗
2
∑
i
=
1
n
x
i
∗
y
i
∗
∑
i
=
1
n
x
i
∗
∑
i
=
1
n
x
i
∗
y
i
∗
∑
i
=
1
n
y
i
∗
2
∑
i
=
1
n
y
i
∗
∑
i
=
1
n
x
i
∗
∑
i
=
1
n
y
i
∗
n
-
1
∑
i
=
1
n
x
i
∗
z
i
∗
∑
i
=
1
n
y
i
∗
z
i
∗
∑
i
=
1
n
z
i
∗
.The coefficientsA, B, and C can be solved via (18) to generate the normal vector ni of pi∗. Moreover, the vector orientations are processed for consistency; that is, an arbitrary normal vector nj of point pj∗, which is near point pi∗, is selected. Transvection of ni and nj is conducted. If ni·nj>0, the orientation of ni is kept; otherwise, ni is adjusted to the opposite orientation: -ni.


### 3.3.2. Poisson Surface Reconstruction

In a Poisson surface reconstruction, the solution of the surface to be reconstructed is regarded as the solution of a 3D indicator functionχ. The reconstructed surface is then obtained by extracting the appropriate isosurface [32]. This process is depicted in Figure 4.Figure 4
The process of Poisson surface reconstruction.To solve the Poisson equation, the 3D space should be discretized. Therefore, an adaptiveoctree is built. The closer the border is, the larger the density of theoctree is [32]. Based on theoctree, the base function F is defined as(19)Fx,y,z≡BxByBzn∗withBt=1t<0.50otherwise,where ∗n represents the nth convolution. Every point sample becomes a leaf node o in a depthD octree; therefore, the unit-integral “node function” centered around node o is formulated as (20)Foq=Fq-o·co·w1o·w3,where o·c represents the center of o and o·w represents the width of o.The vector fieldV→q is determined from the normal vector ni→ of pi∗ in a point cloud set P∗. The gradient field of the indicator function χ can be expressed as ∇χ. The purpose of the Poisson surface reconstruction is to solve a function χ whose gradient best approximates a vector field V→q defined by P∗. This can be formulated as follows:(21)minχ∇χ-V→.The problem shown in (21) can be solved by the Poisson equation Δχ=∇∙V→. A vector field V→ can be approximately formulated as(22)V→q=∑p∗∈P∗∑o∈NgbrDp∗αo,sFoqn→,where NgbrDs are the eight depth-D nodes closest to p∗and αo,s represents the trilinear interpolation weights. To solve the problem that ∇∙V→ and Δχ are not in the function space, the equation can be simplified by solving for the χ function by minimizing(23)∑oΔχ-∇·V→,Fo2=∑oΔχ,Fo-∇·V→,Fo2.Given a vectorv, whose oth coordinate is vo→=∇·V→,Fo, the goal is to solve for the function χ. The vector can be obtained by projecting the Laplacian of χ onto each Fo, ensuring that it is as close to v as possible. To express (23) in matrix form, let χ=∑oxoFo; then, the problem is transformed into one of solving for the vector xo.(24)∑oΔχ,Fo-∇·V→,Fo2=∑o′∑oxoΔFo,Fo′-∇·V→,Fo′2.Let the matrixL be contributed as the dot product of the Laplacian with each of the Fo values; for all o, o′; the o,o′th entry of L is set to(25)Lo,o′≡∂2Fo∂x2,Fo′+∂2Fo∂y2,Fo′+∂2Fo∂z2,Fo′.Thus, the solution of the indicator functionχ can be regarded as finding(26)minxLx-v2.The isosurface from the indicator functionχ can be extracted tooctree representations through the method used in previous adaptations of the marching cubes [33].


### 3.3.3. Generation of PDE Patches

The lightweight methods are implemented in the abovementioned algorithms (i.e., PCU in Section3.1, RICP in Section 3.2, and the recomputation of point clouds normal vectors in Section 3.3.1). Because of the highly lightweight point cloud data, it is easy to generate mesh holes near areas with complex curvature variations, which could influence the visualization of the reconstructed 3D model. Thus, in this paper, an alternative approach to PDE patch generation based on biharmonic-like fourth-order PDEs is proposed. The algorithm is utilized to repair mesh holes on the reconstructed surface according to Section 3.3.2. Each hole is represented by patches with their own uv coordinate system. The preservation of irregular and sharp details on the surface will be found by matching the respective patches to the surface at various sizes and orientations. According to [34], a biharmonic-like fourth-order PDE is formulated as follows:(27)∂2∂u2+a2∂2∂v22Su,v=0,where Su,v is regarded as the hole Hu,v to be repaired, and 0≤u≤1, 0≤v≤2π. Additionally, the PDE patch Pu,v can be formulated by (27). The analytic solution of (27) can be computed by of separating the variables and formulating the problem as(28)Hu,v=A0u+∑n=1NAnucos⁡nv+Bnusin⁡nv,where A0u, Anu, Bnu are, respectively, formulated as follows:(29)A0u=α00+α01u+α02u2+α03u3Anu=αn1eanu+αn2ueanu+αn3e-anu+αn4ue-anuBnu=βn1eanu+βn2ueanu+βn3e-anu+βn4ue-anu.The PDE coefficientsα00,α01,…,αn3,αn4 and β11,β12,…,βn3,βn4 are vectors valued by the boundary conditions. A0u is regarded as the “spine” of the surface, and Anucos⁡nv+Bnusin⁡nv is an n-order “radius” vector. The amplitude of the “radius” term decays as the frequency increases (if N→∞), so that the solution of the PDE patch is mostly determined by a first-order “radius” vector A1ucos⁡v+B1usin⁡v and a second-order “radius” vector A2ucos⁡2v+B2usin⁡2v. Therefore, (28) can be approximately reformulated as follows:(30)Hu,v=A0u+A1ucos⁡v+B1usin⁡v+A2ucos⁡2v+B2usin⁡2v.The number of vector-valued PDE coefficients isMc=4×2N+1. The higher Mc is, the higher the complexity of the reconstruction is. To generate a lightweight mesh, we let N=3. Then, the boundary conditions that fit (27) are formulated as follows:(31)H0,v=C0vHu1,v=C1vHu2,v=C2vH1,v=C3v,where the conditions C0v, C1v, C2v, and C3v are isoparm boundary curves on the surface patch at u=0,u1,u2,1, respectively, where 0<u1,u2<1. To precisely approach the mesh representation of complex geometric shapes, this method needs to use sufficient PDE boundary curves, which must be extracted from the vertices of the original polygon mesh representation. Figure 5 illustrates the layout of the various PDE boundary curves for an individual PDE patch, where C0v degenerates into a single point.Figure 5
Layout of PDE boundary curves.


## 3.3.1. Recomputation of Point Clouds Normal Vectors

The recomputation of the normal vectors of a point cloud proposed in this paper is based on the least squares method. Then, the computational complexity of the surface reconstruction algorithm is reduced based on the accuracy of the normal vectors [31].An arbitrary coordinate pointpi∗, in a point cloud set P∗, and all the K neighbor points of pi∗ can be regarded as being on approximately the same plane, L, which is formulated as follows:(15)Ax+By+Cz+D=0.The residual sum of squares between all theK-neighbor points and L is(16)d=∑i=1nAxi∗+Byi∗+C-z2.The best fit can be regarded as the minimumd; therefore, we take the partial derivative of d with A, B, and C. Then, the equations are(17)∂d∂A=2A∑i=1nxi2+B∑i=1nxiyi+C∑i=1nxi-∑i=1nxizi∂d∂B=2A∑i=1nxiyi+B∑i=1nyi2+C∑i=1nyi-∑i=1nyizi∂d∂C=2A∑i=1nxi+B∑i=1nyi+nC-∑i=1nzi.Let∂d/∂A=0, ∂d/∂B=0, and ∂d/∂C=0. Finally, the result can be formulated as follows:(18)
A
B
C
=
∑
i
=
1
n
x
i
∗
2
∑
i
=
1
n
x
i
∗
y
i
∗
∑
i
=
1
n
x
i
∗
∑
i
=
1
n
x
i
∗
y
i
∗
∑
i
=
1
n
y
i
∗
2
∑
i
=
1
n
y
i
∗
∑
i
=
1
n
x
i
∗
∑
i
=
1
n
y
i
∗
n
-
1
∑
i
=
1
n
x
i
∗
z
i
∗
∑
i
=
1
n
y
i
∗
z
i
∗
∑
i
=
1
n
z
i
∗
.The coefficientsA, B, and C can be solved via (18) to generate the normal vector ni of pi∗. Moreover, the vector orientations are processed for consistency; that is, an arbitrary normal vector nj of point pj∗, which is near point pi∗, is selected. Transvection of ni and nj is conducted. If ni·nj>0, the orientation of ni is kept; otherwise, ni is adjusted to the opposite orientation: -ni.


## 3.3.2. Poisson Surface Reconstruction

In a Poisson surface reconstruction, the solution of the surface to be reconstructed is regarded as the solution of a 3D indicator functionχ. The reconstructed surface is then obtained by extracting the appropriate isosurface [32]. This process is depicted in Figure 4.Figure 4
The process of Poisson surface reconstruction.To solve the Poisson equation, the 3D space should be discretized. Therefore, an adaptiveoctree is built. The closer the border is, the larger the density of theoctree is [32]. Based on theoctree, the base function F is defined as(19)Fx,y,z≡BxByBzn∗withBt=1t<0.50otherwise,where ∗n represents the nth convolution. Every point sample becomes a leaf node o in a depthD octree; therefore, the unit-integral “node function” centered around node o is formulated as (20)Foq=Fq-o·co·w1o·w3,where o·c represents the center of o and o·w represents the width of o.The vector fieldV→q is determined from the normal vector ni→ of pi∗ in a point cloud set P∗. The gradient field of the indicator function χ can be expressed as ∇χ. The purpose of the Poisson surface reconstruction is to solve a function χ whose gradient best approximates a vector field V→q defined by P∗. This can be formulated as follows:(21)minχ∇χ-V→.The problem shown in (21) can be solved by the Poisson equation Δχ=∇∙V→. A vector field V→ can be approximately formulated as(22)V→q=∑p∗∈P∗∑o∈NgbrDp∗αo,sFoqn→,where NgbrDs are the eight depth-D nodes closest to p∗and αo,s represents the trilinear interpolation weights. To solve the problem that ∇∙V→ and Δχ are not in the function space, the equation can be simplified by solving for the χ function by minimizing(23)∑oΔχ-∇·V→,Fo2=∑oΔχ,Fo-∇·V→,Fo2.Given a vectorv, whose oth coordinate is vo→=∇·V→,Fo, the goal is to solve for the function χ. The vector can be obtained by projecting the Laplacian of χ onto each Fo, ensuring that it is as close to v as possible. To express (23) in matrix form, let χ=∑oxoFo; then, the problem is transformed into one of solving for the vector xo.(24)∑oΔχ,Fo-∇·V→,Fo2=∑o′∑oxoΔFo,Fo′-∇·V→,Fo′2.Let the matrixL be contributed as the dot product of the Laplacian with each of the Fo values; for all o, o′; the o,o′th entry of L is set to(25)Lo,o′≡∂2Fo∂x2,Fo′+∂2Fo∂y2,Fo′+∂2Fo∂z2,Fo′.Thus, the solution of the indicator functionχ can be regarded as finding(26)minxLx-v2.The isosurface from the indicator functionχ can be extracted tooctree representations through the method used in previous adaptations of the marching cubes [33].


## 3.3.3. Generation of PDE Patches

The lightweight methods are implemented in the abovementioned algorithms (i.e., PCU in Section3.1, RICP in Section 3.2, and the recomputation of point clouds normal vectors in Section 3.3.1). Because of the highly lightweight point cloud data, it is easy to generate mesh holes near areas with complex curvature variations, which could influence the visualization of the reconstructed 3D model. Thus, in this paper, an alternative approach to PDE patch generation based on biharmonic-like fourth-order PDEs is proposed. The algorithm is utilized to repair mesh holes on the reconstructed surface according to Section 3.3.2. Each hole is represented by patches with their own uv coordinate system. The preservation of irregular and sharp details on the surface will be found by matching the respective patches to the surface at various sizes and orientations. According to [34], a biharmonic-like fourth-order PDE is formulated as follows:(27)∂2∂u2+a2∂2∂v22Su,v=0,where Su,v is regarded as the hole Hu,v to be repaired, and 0≤u≤1, 0≤v≤2π. Additionally, the PDE patch Pu,v can be formulated by (27). The analytic solution of (27) can be computed by of separating the variables and formulating the problem as(28)Hu,v=A0u+∑n=1NAnucos⁡nv+Bnusin⁡nv,where A0u, Anu, Bnu are, respectively, formulated as follows:(29)A0u=α00+α01u+α02u2+α03u3Anu=αn1eanu+αn2ueanu+αn3e-anu+αn4ue-anuBnu=βn1eanu+βn2ueanu+βn3e-anu+βn4ue-anu.The PDE coefficientsα00,α01,…,αn3,αn4 and β11,β12,…,βn3,βn4 are vectors valued by the boundary conditions. A0u is regarded as the “spine” of the surface, and Anucos⁡nv+Bnusin⁡nv is an n-order “radius” vector. The amplitude of the “radius” term decays as the frequency increases (if N→∞), so that the solution of the PDE patch is mostly determined by a first-order “radius” vector A1ucos⁡v+B1usin⁡v and a second-order “radius” vector A2ucos⁡2v+B2usin⁡2v. Therefore, (28) can be approximately reformulated as follows:(30)Hu,v=A0u+A1ucos⁡v+B1usin⁡v+A2ucos⁡2v+B2usin⁡2v.The number of vector-valued PDE coefficients isMc=4×2N+1. The higher Mc is, the higher the complexity of the reconstruction is. To generate a lightweight mesh, we let N=3. Then, the boundary conditions that fit (27) are formulated as follows:(31)H0,v=C0vHu1,v=C1vHu2,v=C2vH1,v=C3v,where the conditions C0v, C1v, C2v, and C3v are isoparm boundary curves on the surface patch at u=0,u1,u2,1, respectively, where 0<u1,u2<1. To precisely approach the mesh representation of complex geometric shapes, this method needs to use sufficient PDE boundary curves, which must be extracted from the vertices of the original polygon mesh representation. Figure 5 illustrates the layout of the various PDE boundary curves for an individual PDE patch, where C0v degenerates into a single point.Figure 5
Layout of PDE boundary curves.


## 4. Experiment and Analysis

### 4.1. System Framework and Establishment of Experimental Platform

To verify the feasibility of the proposed lightweight surface reconstruction method proposed in this paper, an online personalized customization system oriented toward 3D printing was developed and used as the experimental environment. The system framework is shown in Figure6 and can be divided into 4 units: Central Control Unit; Online Personalized Customization Unit; 3D Scanning Unit; and 3D Printing Unit. The Central Control Unit runs on a PC and a cloud server, and the collaborative operation of the other 3 units is controlled by the Central Control Unit, which is the core of the whole system. The Online Personalized Customization Unit runs in Google Chrome directly. The dynamic visualization of the point cloud generated by the 3D Scanning Unit can be rendered; that is, the point cloud generated in real-time can be displayed to users. Moreover, the point clouds are reconstructed as meshes. Modifications of color, texture, dimension, slicing of the STL model, and generation of G codes are also supported in the Online Personalized Customization Unit. G codes can be imported by the 3D Printing Unit for the 3D printing tasks.Figure 6
Framework of the online personalized customization system oriented toward 3D printing.(1) Hardware Framework of 3D Scanning Unit.The 3D Scanning Unit is composed of the open source 3D scanner Ciclop, whose hardware framework is shown in Figure 7. The Ciclop is composed of an Arduino UNO Motherboard (control core), a Logitech C270 (camera), two infrared laser modules, and other mechanical structures. Its turn table is driven by a NEMA 17 stepper motor which rotates the object undergoing scanning at 1.8°/s around its central axis. Simultaneously, two sets of 5 mW infrared laser modules, set at an angle of 135°, are coordinated with the Logitech C270 to generate depth data at different angles. Thus, the point cloud data of the scanned object can be generated as well [35].Figure 7
Hardware framework of 3D Scanning Unit.(2) Dynamic Visualization of Point Cloud Data.To achieve the dynamic visualization, the point cloud data from the 3D Scanning Unit to the Online Personalized Customization Unit needs to be transmitted in real time. A proposed dynamic visualization framework for point clouds based on WebSocket is shown in Figure 8. The thin arrows represent the control flow within the server or browser, while the wide arrows represent the data flow between memory spaces. WebSocket is a real-time communication protocol for HTML5 that can achieve real-time data transmission between a browser and a cloud server [36]. Thus, the point cloud data that are generated by Ciclop in real time can be dynamically displayed in the browser by WebSocket and WebGL. The framework is divided into three parts: cloud server, local server, and browser.Figure 8
Dynamic point cloud visualization framework.The interaction is initiated by the browser, which sends a request URI to the cloud server. The cloud server parses the request and sends the appropriate JavaScript code back to the browser, which dynamically visualizes and renders the point cloud. Meanwhile, a request is also sent to Ciclop. The point clouds generated by Ciclop are extracted by its underlying computer software, Horus, and encapsulated as JSON files by the local server. A socket connection can be established between a local server and cloud server to upload JSON files. Subsequently, a WebSocket connection will also be established through JavaScript code running in the Browser to fetch and parse the JSON files. After the request URI is sent from the browser to the cloud server, a monitor is established to determine whether the latest JSON file to be parsed in the browser through WebSocket connection exists. The point cloud data will be dynamically updated by WebGL when the JSON file exists.JavaScript is generally single-threaded; consequently, the performance requirements of the computer hardware are higher. To allow the user-interface to remain responsive, the browser fetches and renders the JSON files. The fetching operation runs in a separate Web Worker tread, while the rendering runs in the main JavaScript thread. All long-running code paths need to run outside the main thread [37]. Moreover, to avoid browser congestion by too many messages, the next time step of a JSON file is always requested explicitly by the browser. That is, only when the browser acquires a new rendering request for the current point cloud data to GPU does it send the cloud server a new request for new JSON files. Thus, this framework ensures that each frame will be rendered at least once.(3) Establishment of the Experimental Platform.The hardware configuration of the Central Control Unit is shown in Table 1.Table 1
Hardware configuration of Central Control Unit.
Hardware PC Cloud server CPU Intel Core i7 7700K 4.2 GHz Intel Skylake Xeon Platinum 8163 2.5 GHz GPU ASUS RX550 4 GB ASUS NVIDIA GeForce GTX1080 8 GB RAM 8 GB 10 GB Hard Disk SSD 128 GB SSD 40 GB Bandwidth 10 Mbps 50 MbpsThe environmental calibration parameters of the 3D scanning operation to meet the requirements of the experimental environment are configured in Horus, the computer software underlying Ciclop, as shown in Table2.Table 2
Environmental calibration parameters of experiments.
Indexes Brightness Contrast Saturation Exposure Step degrees Photograph interval Value 150 34 32 10 0.45° 0.5 s


### 4.2. Point Cloud Update and Dynamic Visualization Experiments

Using the dynamic point cloud visualization framework and the PCU as proposed in Section3.1, experiments assessing the online 3D scanning were performed on the “Huba” and “Totoro” models to verify the effect of point cloud dynamic visualization and the lightweight effect of the PCU. The experimental environment is shown in Figure 9, and the dynamic visualization processes in Google Chrome are shown in Figure 10. To optimize the visualization effects, the background color of Google Chrome was set to black.Figure 9
Experimental environments of 3D scanning.
(a) (b)Figure 10
Dynamic visualization processes of point cloud.The generation time and amount of data of the two sets of point clouds (representing the two models “Huba” and “Totoro”) were recorded. For comparison purposes, the two circumstances were implemented both with and without the PCU. The results are shown in Table3.Table 3
Generation time and amount of data on two sets of point clouds.
Model type Dynamic visualization with PCU Dynamic visualization without PCU Load time/s Size/MB Load time/s Size/MB Huba 109 1.60 94 5.19 Totoro 126 1.89 112 6.54As listed in Table3, with the PCU, the size of the point cloud data of the “Huba” model decreases by 69.2% (from 5.19 MB to 1.60 MB), while the size of the point cloud data of the “Totoro” model decreases by 71.1% (from 6.54 MB to 1.89 MB) during the point cloud dynamic visualization process. Although the load time of each model increases by approximately 15% with the PCU, the growth is not substantial compared to the lightweight point cloud data. Experimental analysis shows that lightweight dynamic visualization of point cloud data in a web environment can be accomplished by the PCU in conjunction with the dynamic visualization framework for point clouds based on WebSocket as proposed in this paper.


### 4.3. Point Cloud Registration Experiments

Experiments on the registration of two sets of point clouds,PA and PB, which belong to the “Huba” and “Totoro” models, were conducted by RICP and ICP, respectively, to generate a modified point cloud set P∗. The termination criteria of the MSE threshold was set to σ=0.005 mm, and the number of iterations and the registration time of the two point cloud sets by RICP and ICP were recorded and are listed in Table 4, and the convergence curves of the registration error with the two sets of point clouds are shown in Figure 11.Table 4
Number of iterations and elapsed time of registration by RICP and ICP.
Registration algorithm Huba Totoro σ/mm Iteration Time/sec σ/mm Iteration Time/sec RICP 0.005 7 32 0.005 8 41 ICP 12 59 15 77Figure 11
Convergence curves of the registration error.
(a) (b)The registration effects of the two sets of point clouds calculated by the different algorithms are shown in Figure12.Figure 12
Visualization effect of registration by RICP and ICP.With the RICP, the number of iterations decreased from 12 to 7, and the time decreased by 45.8% from 59 s to 32 s for the “Huba” model, while the number of iterations decreased from 15 to 8, and the time decreased by 46.8% from 77 s to 41 s for the “Totoro” model. These results are listed in Table4. Figure 11 shows that the MSEs of the two models decrease by 0.039 mm and 0.036 mm after one iteration. The experimental analysis shows the increase in algorithmic efficiency from preregistering the point cloud data in the RICP. The visualization effects of the registrations by the RICP and ICP are shown in Figure 12.


### 4.4. Online Surface Reconstruction Experiments

Using the IPSR proposed in Section3.3, modified point cloud data sets of the “Huba” and “Totoro” were reconstructed by both IPSR and Poisson surface reconstruction (PSR) algorithm in the web environment. The online surface reconstructions by both algorithms are shown in Figure 13.Figure 13
Online surface reconstruction effect by IPSR and PSR.Relevant indicator values were recorded during the process of surface reconstruction to assess IPSR and PSR, including triangular facets, size, reconstruction time, average frames per second (FPS), and occupied CPU percentage [38]. The specific values of these metrics are listed in Table 5, while four histograms of the triangular facets, size, reconstruction time, and average FPS are shown in Figure 14.Table 5
Relevant indicators of surface reconstruction by IPSR and PSR.
Model Points Algorithm type Triangular facets Size/MB (STL) Reconstruction time/s Average FPS Occupied CPU Huba 85432 PSR 73735 14.4 3.4 62 8% IPSR 61476 10.5 2.9 61 7% Totoro 129463 PSR 101950 20.1 7.9 76 10% IPSR 89759 17.2 6.5 74 8%Figure 14
Histograms of relevant indicators.
(a) (b) (c) (d)As Figure13 shows, several single-point spikes and holes exist on the polygon mesh reconstructed by PSR. In contrast, the polygon meshes reconstructed by IPSR are accurate, connected, and lightweight. In fact, the surface is relatively smooth, without any obvious single-point spikes on the hole boundaries.In addition to the differences in Table5 and Figure 14, compared with PSR, the triangular facets of the “Huba” mesh created by IPSR decreased by 16.6%, while the size and reconstruction time decreased by 27.1% and 14.7%, respectively. The triangular facets of the “Totoro” mesh decreased by 12.1%, while the size and reconstruction time decreased by 14.4% and 17.7%, respectively. The lightweight extent of each mesh produced by IPSR is relatively obvious. Although the decrease in average FPS is barely noticeable (1.6% and 2.6% for the “Huba” mesh and “Totoro” mesh, resp.) both are still relatively acceptable with tiny fluctuations around a median value of approximately 70. Users reported that the system ran smoothly without any obvious decrease in rendering speed.The experimental analysis shows that the reconstruction efficiency, the accuracy, and the absence of obvious spikes in the mesh reconstructed by IPSR are more desirable given the lightweight data requirements of a web environment. Additionally, meshes on a 3D printing cloud server platform can be personalized and customized using this method.


## 4.1. System Framework and Establishment of Experimental Platform

To verify the feasibility of the proposed lightweight surface reconstruction method proposed in this paper, an online personalized customization system oriented toward 3D printing was developed and used as the experimental environment. The system framework is shown in Figure6 and can be divided into 4 units: Central Control Unit; Online Personalized Customization Unit; 3D Scanning Unit; and 3D Printing Unit. The Central Control Unit runs on a PC and a cloud server, and the collaborative operation of the other 3 units is controlled by the Central Control Unit, which is the core of the whole system. The Online Personalized Customization Unit runs in Google Chrome directly. The dynamic visualization of the point cloud generated by the 3D Scanning Unit can be rendered; that is, the point cloud generated in real-time can be displayed to users. Moreover, the point clouds are reconstructed as meshes. Modifications of color, texture, dimension, slicing of the STL model, and generation of G codes are also supported in the Online Personalized Customization Unit. G codes can be imported by the 3D Printing Unit for the 3D printing tasks.Figure 6
Framework of the online personalized customization system oriented toward 3D printing.(1) Hardware Framework of 3D Scanning Unit.The 3D Scanning Unit is composed of the open source 3D scanner Ciclop, whose hardware framework is shown in Figure 7. The Ciclop is composed of an Arduino UNO Motherboard (control core), a Logitech C270 (camera), two infrared laser modules, and other mechanical structures. Its turn table is driven by a NEMA 17 stepper motor which rotates the object undergoing scanning at 1.8°/s around its central axis. Simultaneously, two sets of 5 mW infrared laser modules, set at an angle of 135°, are coordinated with the Logitech C270 to generate depth data at different angles. Thus, the point cloud data of the scanned object can be generated as well [35].Figure 7
Hardware framework of 3D Scanning Unit.(2) Dynamic Visualization of Point Cloud Data.To achieve the dynamic visualization, the point cloud data from the 3D Scanning Unit to the Online Personalized Customization Unit needs to be transmitted in real time. A proposed dynamic visualization framework for point clouds based on WebSocket is shown in Figure 8. The thin arrows represent the control flow within the server or browser, while the wide arrows represent the data flow between memory spaces. WebSocket is a real-time communication protocol for HTML5 that can achieve real-time data transmission between a browser and a cloud server [36]. Thus, the point cloud data that are generated by Ciclop in real time can be dynamically displayed in the browser by WebSocket and WebGL. The framework is divided into three parts: cloud server, local server, and browser.Figure 8
Dynamic point cloud visualization framework.The interaction is initiated by the browser, which sends a request URI to the cloud server. The cloud server parses the request and sends the appropriate JavaScript code back to the browser, which dynamically visualizes and renders the point cloud. Meanwhile, a request is also sent to Ciclop. The point clouds generated by Ciclop are extracted by its underlying computer software, Horus, and encapsulated as JSON files by the local server. A socket connection can be established between a local server and cloud server to upload JSON files. Subsequently, a WebSocket connection will also be established through JavaScript code running in the Browser to fetch and parse the JSON files. After the request URI is sent from the browser to the cloud server, a monitor is established to determine whether the latest JSON file to be parsed in the browser through WebSocket connection exists. The point cloud data will be dynamically updated by WebGL when the JSON file exists.JavaScript is generally single-threaded; consequently, the performance requirements of the computer hardware are higher. To allow the user-interface to remain responsive, the browser fetches and renders the JSON files. The fetching operation runs in a separate Web Worker tread, while the rendering runs in the main JavaScript thread. All long-running code paths need to run outside the main thread [37]. Moreover, to avoid browser congestion by too many messages, the next time step of a JSON file is always requested explicitly by the browser. That is, only when the browser acquires a new rendering request for the current point cloud data to GPU does it send the cloud server a new request for new JSON files. Thus, this framework ensures that each frame will be rendered at least once.(3) Establishment of the Experimental Platform.The hardware configuration of the Central Control Unit is shown in Table 1.Table 1
Hardware configuration of Central Control Unit.
Hardware PC Cloud server CPU Intel Core i7 7700K 4.2 GHz Intel Skylake Xeon Platinum 8163 2.5 GHz GPU ASUS RX550 4 GB ASUS NVIDIA GeForce GTX1080 8 GB RAM 8 GB 10 GB Hard Disk SSD 128 GB SSD 40 GB Bandwidth 10 Mbps 50 MbpsThe environmental calibration parameters of the 3D scanning operation to meet the requirements of the experimental environment are configured in Horus, the computer software underlying Ciclop, as shown in Table2.Table 2
Environmental calibration parameters of experiments.
Indexes Brightness Contrast Saturation Exposure Step degrees Photograph interval Value 150 34 32 10 0.45° 0.5 s


## 4.2. Point Cloud Update and Dynamic Visualization Experiments

Using the dynamic point cloud visualization framework and the PCU as proposed in Section3.1, experiments assessing the online 3D scanning were performed on the “Huba” and “Totoro” models to verify the effect of point cloud dynamic visualization and the lightweight effect of the PCU. The experimental environment is shown in Figure 9, and the dynamic visualization processes in Google Chrome are shown in Figure 10. To optimize the visualization effects, the background color of Google Chrome was set to black.Figure 9
Experimental environments of 3D scanning.
(a) (b)Figure 10
Dynamic visualization processes of point cloud.The generation time and amount of data of the two sets of point clouds (representing the two models “Huba” and “Totoro”) were recorded. For comparison purposes, the two circumstances were implemented both with and without the PCU. The results are shown in Table3.Table 3
Generation time and amount of data on two sets of point clouds.
Model type Dynamic visualization with PCU Dynamic visualization without PCU Load time/s Size/MB Load time/s Size/MB Huba 109 1.60 94 5.19 Totoro 126 1.89 112 6.54As listed in Table3, with the PCU, the size of the point cloud data of the “Huba” model decreases by 69.2% (from 5.19 MB to 1.60 MB), while the size of the point cloud data of the “Totoro” model decreases by 71.1% (from 6.54 MB to 1.89 MB) during the point cloud dynamic visualization process. Although the load time of each model increases by approximately 15% with the PCU, the growth is not substantial compared to the lightweight point cloud data. Experimental analysis shows that lightweight dynamic visualization of point cloud data in a web environment can be accomplished by the PCU in conjunction with the dynamic visualization framework for point clouds based on WebSocket as proposed in this paper.


## 4.3. Point Cloud Registration Experiments

Experiments on the registration of two sets of point clouds,PA and PB, which belong to the “Huba” and “Totoro” models, were conducted by RICP and ICP, respectively, to generate a modified point cloud set P∗. The termination criteria of the MSE threshold was set to σ=0.005 mm, and the number of iterations and the registration time of the two point cloud sets by RICP and ICP were recorded and are listed in Table 4, and the convergence curves of the registration error with the two sets of point clouds are shown in Figure 11.Table 4
Number of iterations and elapsed time of registration by RICP and ICP.
Registration algorithm Huba Totoro σ/mm Iteration Time/sec σ/mm Iteration Time/sec RICP 0.005 7 32 0.005 8 41 ICP 12 59 15 77Figure 11
Convergence curves of the registration error.
(a) (b)The registration effects of the two sets of point clouds calculated by the different algorithms are shown in Figure12.Figure 12
Visualization effect of registration by RICP and ICP.With the RICP, the number of iterations decreased from 12 to 7, and the time decreased by 45.8% from 59 s to 32 s for the “Huba” model, while the number of iterations decreased from 15 to 8, and the time decreased by 46.8% from 77 s to 41 s for the “Totoro” model. These results are listed in Table4. Figure 11 shows that the MSEs of the two models decrease by 0.039 mm and 0.036 mm after one iteration. The experimental analysis shows the increase in algorithmic efficiency from preregistering the point cloud data in the RICP. The visualization effects of the registrations by the RICP and ICP are shown in Figure 12.


## 4.4. Online Surface Reconstruction Experiments

Using the IPSR proposed in Section3.3, modified point cloud data sets of the “Huba” and “Totoro” were reconstructed by both IPSR and Poisson surface reconstruction (PSR) algorithm in the web environment. The online surface reconstructions by both algorithms are shown in Figure 13.Figure 13
Online surface reconstruction effect by IPSR and PSR.Relevant indicator values were recorded during the process of surface reconstruction to assess IPSR and PSR, including triangular facets, size, reconstruction time, average frames per second (FPS), and occupied CPU percentage [38]. The specific values of these metrics are listed in Table 5, while four histograms of the triangular facets, size, reconstruction time, and average FPS are shown in Figure 14.Table 5
Relevant indicators of surface reconstruction by IPSR and PSR.
Model Points Algorithm type Triangular facets Size/MB (STL) Reconstruction time/s Average FPS Occupied CPU Huba 85432 PSR 73735 14.4 3.4 62 8% IPSR 61476 10.5 2.9 61 7% Totoro 129463 PSR 101950 20.1 7.9 76 10% IPSR 89759 17.2 6.5 74 8%Figure 14
Histograms of relevant indicators.
(a) (b) (c) (d)As Figure13 shows, several single-point spikes and holes exist on the polygon mesh reconstructed by PSR. In contrast, the polygon meshes reconstructed by IPSR are accurate, connected, and lightweight. In fact, the surface is relatively smooth, without any obvious single-point spikes on the hole boundaries.In addition to the differences in Table5 and Figure 14, compared with PSR, the triangular facets of the “Huba” mesh created by IPSR decreased by 16.6%, while the size and reconstruction time decreased by 27.1% and 14.7%, respectively. The triangular facets of the “Totoro” mesh decreased by 12.1%, while the size and reconstruction time decreased by 14.4% and 17.7%, respectively. The lightweight extent of each mesh produced by IPSR is relatively obvious. Although the decrease in average FPS is barely noticeable (1.6% and 2.6% for the “Huba” mesh and “Totoro” mesh, resp.) both are still relatively acceptable with tiny fluctuations around a median value of approximately 70. Users reported that the system ran smoothly without any obvious decrease in rendering speed.The experimental analysis shows that the reconstruction efficiency, the accuracy, and the absence of obvious spikes in the mesh reconstructed by IPSR are more desirable given the lightweight data requirements of a web environment. Additionally, meshes on a 3D printing cloud server platform can be personalized and customized using this method.


## 5. Conclusions

In this paper, a lightweight surface reconstruction method for online 3D scanning point cloud data oriented toward 3D printing is proposed. To achieve low algorithmic complexity and generate a lightweight 3D model, an online lightweight surface reconstruction algorithm is proposed, which is composed of a point cloud update algorithm (PCU), a rapid iterative closest point algorithm (RICP), and the improved Poisson surface reconstruction algorithm (IPSR). The PCU is used to denoise the point cloud data to create a lightweight version in real time. The RICP is used to perform rapid and accurate registration between two sets of point cloud data. The IPSR is used to generate the lightweight mesh, and the postprocessing of the PDE patch generation based on biharmonic-like fourth-order PDEs is executed to repair the mesh holes on the reconstructed lightweight mesh, which improves the 3D model visualization. In addition, to achieve real-time point cloud data transmission in conjunction with the 3D scanning process in a web environment, a dynamic visualization framework for point cloud data based on WebSocket is also proposed. This approach achieves comprehensive dynamic visualization of the point cloud data in the browser. The fluency and high rendering effect are ensured through the Web Worker mechanism in the high concurrency environment. Finally, an online personalized customization system oriented toward 3D printing is developed based on the proposed method.



---

*Source: 4673849-2018-05-16.xml*