Expand this Topic clickable element to expand a topic
Skip to content
Optica Publishing Group

Accurate three dimensional body scanning system based on structured light

Open Access Open Access

Abstract

Three dimensional (3D) body scanning has been of great interest to many fields, yet it is still a challenge to generate accurate human body models in a convenient manner. In this paper, we present an accurate 3D body scanning system based on structured light technology. A four-step phase shifting combined with Gray-code method is applied to match pixels in camera and projector planes. The calculation of 3D point coordinates are also derived. The main contribution of this paper is twofold. First, an improved registration algorithm is proposed to align point clouds reconstructed from different views. Second, we propose a graph optimization algorithm to further minimize registration errors. Experimental results demonstrate that our system can produce accurate 3D body models conveniently.

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

1. Introduction

In recent years, three dimensional (3D) body scanning has gained a lot of interest [1–4]. This technology reconstructs different parts of a human body from multi-views and then integrates these parts into one 3D model. It can be used in a variety of fields, such as virtual reality, animation production, anthropometry, and medical plastic.

There are many approaches to reconstruct 3D objects or scenes. For example, Davison et al. [5] reconstructed dense scenes using a single uncontrolled camera, which is known as structure from motion method. Pons et al. [6] proposed a reconstruction algorithm using stereo cameras. These camera based algorithms extract and match feature points from images. Therefore they require the objects or scenes to have a certain amount of textures. There are also researchers utilize laser range finders to reconstruct the world [7, 8]. Laser sensors are quite accurate, but they are expensive and their resolutions are low.

Recently, structured light based reconstruction algorithms have been developed rapidly. They project one or several pattern images onto the objects and capture the deformed patterns using one or two cameras. Then 3D points can be calculated using the triangulation method. The key of these algorithms is phase estimation on every single pixel. Many researchers have designed different kinds of gray-scale or color patterns and only one-shot was needed to reconstruct 3D objects [9–12]. These algorithms can achieve high frame rates, however their spatial resolutions are not high enough. In order to get a better resolution, phase shifting methods are usually used [13–15]. Gray-code and other period cues can be combined to unwrap high frequency phase data into a single period [16–18]. Structured light based algorithms do not require objects to have complex textures. Therefore they are quite suitable for human body scanning.

To obtain the complete model of the scanned object, three strategies are commonly used to gather data from different views. The first strategy is fixing the object and moving the sensor [19]. The second strategy is fixing the sensor and rotating the scanned object. For example, Cai et al. [20] put the object to be scanned on a turning disc. The last one is using multiple sensors and all the sensors and the object are fixed [21]. The first two strategies are quite suitable for small objects. For whole human body scanning, the last configuration is more desirable.

No matter which scanning strategy is adopted, registration of points reconstructed from different views is inevitable. Barone et al. [22] used fiducial markers to align different range maps. Instead of artificial markers, point features can be used for data registration, such as SIFT (scale-invariant feature transform) [23], SURF (speeded-up robust features) [24], FAST (features from accelerated segment test) [25], and Shi-Tomasi [26] features. There are also algorithms that use plane features [27] and line features [28]. The most commonly used points registration algorithms are based on ICP (iterative closest point) [29, 30]. These algorithms can produce accurate 3D models by minimizing an error function between different frames. However there are still registration errors, especially between the first and the last data frames.

In this paper, we propose an accurate 3D body scanning system based on structured light technology. The system consists of eight projectors and eight cameras to scan human body from different views. Each projector and camera pair is calibrated using a red-and-blue checkerboard. A four-step phase shifting combined with Gray-code method is used to match pixels in projector and camera planes. The relations between pixels and 3D point coordinates are derived. After reconstruction from each view, an improved global ICP based algorithm is proposed to align different point clouds. We also propose a graph optimization method to further minimize registration errors. A series of experiments have been done and the results demonstrate that our algorithm can produce accurate 3D body models conveniently.

2. Principle

In this section, our proposed 3D body scanning system is discussed in detail. The configuration and topology of the system are introduced first. Then we present the absolute phase calculation and system calibration methods. Next, relations between pixels and 3D point coordinates are derived. Finally, our proposed global registration and optimization algorithms are presented.

2.1. System overview

The configuration of the proposed 3D body scanning system is illustrated in Fig. 1. There are four poles in the system, which are placed clockwise in the bird eye view. The poles are located at the corners of a square, whose side length is approximately 1.4 meters. Each pole has two modules mounting vertically, as surrounded by dashed boxes in Fig. 1. Each of the modules is consisted of a projector, a camera, and a computer. The computer controls the projector to cast a series of fringe patterns onto the object to be scanned and capture the reflection images according to the camera. The cameras of the lower and the upper modules are approximately 0.3 and 1.0 meters high, respectively. The distance between the projector lens and the camera lens is approximately 0.4 meters. These modules point at the center of the square and therefore can scan different parts of a human body. In our implementation, the computer has a 2 Core 1.6GHz CPU (i5-4200U), 2G RAM, and 32G solid state drive. The projector has the resolution of 1920×1080 and its focal length can be adjusted between 10.2 and 10.22 millimeters. The camera has the resolution of 1292×964 with the frame rate of 30fps (frames per second). Its vertical and horizontal angle of views are 59.4 and 79.0 degrees, respectively.

 figure: Fig. 1

Fig. 1 Configuration of the proposed 3D body scanning system.

Download Full Size | PDF

The topology of the system is shown in Fig. 2. A user computer is utilized to run user programs including module calibration and body scanning. It communicates with module computers via a router. The module computers are regarded as servers, while the user computer is a client. Control commands are sent from the client to these servers and reflection images are transmitted in the opposite direction. In order to speed up the scanning process, modules at the diagonal positions scan simultaneously. For example, the scanning order can be: module 1 and module 6, module 2 and module 5, module 3 and module 8, and finally module 4 and module 7.

 figure: Fig. 2

Fig. 2 Topology of the proposed 3D body scanning system.

Download Full Size | PDF

2.2. Phase calculation

Four-step phase-shifting (least-squares) algorithm has been widely used in structured light-based profilometry. It projects four grey scale images with sinusoidal fringe patterns onto the object. The difference of initial phases between two adjacent images is 90 degrees. The intensity of the ith image on pixel (x, y) can be expressed as

Ii(x,y)=I+Isin[ϕ(x,y)+π2(i1)],i=1,2,,4,
where I′ is the average intensity of the image, I″ is the amplitude modulation, and ϕ(x, y) is the phase value of the pixel. The phase value can be calculated by
ϕ(x,y)=2πNxW,
where W is the width of the projected image and N is the number of fringes.

When these pattern images are projected onto one object, they will be modulated by the surface of the object. The reflection images captured by the camera have similar patterns with the projected ones. In the most elementary case that the camera and the projector have collimated illumination, the intensity of the ith reflection image on pixel (u, v) is

Ri(u,v)=R+Rsin[u0u+u0tan(θ0)O(u,v)+π2(i1)],i=1,2,,4,
where R′ is the average intensity of the reflection image, R″ is the amplitude modulation, u0 is the spatial frequency of the fringes at the camera plane in radians/pixels, θ0 is the angle between the camera and the projector, and O (u, v) is the physical object height. The term u0u represents the standard carrier frequency component and u0tan(θ0)O (u, v) represents phase modulation caused by object surface. Denotes the phase value of pixel (u, v) in camera plane as
φ(u,v)=u0u+u0tan(θ0)O(u,v).
Then we can get the following general expression
Ri(u,v)=R+Rsin[φ(u,v)+π2(i1)],i=1,2,,4.

When the camera and the projector have divergent optical systems, the model in Eq. (3) can be found in [31]. In our implementation, projectors are regarded as reverse cameras. Then the developed binocular stereo vision technology can be used to calculate 3D point coordinates. Therefore the key problem turns to be matching pixels in camera and projector planes. The following equation can be easily deduced from Eq. (5).

φ(u,v)=arctan(R4(u,v)R2(u,v)R1(u,v)R3(u,v)).

Note that the phase value calculated according to Eq. (6) is wrapped in the range of [0, 2π). Because there are N periods in each projected pattern image, φ(u, v) should be unwrapped to establish a one-to-one mapping between pixels in camera and projector planes. In our implementation, each projected phase shifting image has N = 64 fringes. Therefore six binary images with Gray-code patterns are needed to unwrap the phase value φ(x, y). Assume the value of Gray-code on pixel (u, v) is B(u, v), then the absolute phase on this pixel can be calculated as

Φ(u,v)=φ(u,v)+2πB(u,v).
The phase is in the range of [0, 2) and only one period exists now. Finally the x coordinate of pixel (x, y) in the projector plane corresponding to pixel (u, v) in the camera plane is
x=WΦ(u,v)2Nπ.
The process of absolute phase calculation is illustrated in Fig. 3.

 figure: Fig. 3

Fig. 3 Process of absolute phase calculation. Left: four-step phase shifting images. Bottom middle: phase map within [0, 2π). Top middle: six Gray-code images. Right: absolute phase map within [0, 2).

Download Full Size | PDF

2.3. System calibration

System calibration is crucial for structured light based systems. It contains two tasks: calibration between modules and calibration in every module. The former is to obtain the transform matrices of different modules, which are initial guesses of cloud poses in the procedure of cloud registration. The latter is to get the intrinsic and extrinsic parameters of the camera and projector, which will be used in 3D reconstruction. Because the guesses do not have to be very exact, the approximate physical parameters obtained in system building process can be used directly. Therefore only the latter is presented in this paper.

Calibration of a binocular stereo camera system is quite mature and can be referenced. The most widely used calibration algorithm is proposed by Zhang [32]. It uses a black-and-white checkerboard as calibration target. Images are captured by cameras when the checkerboard are adjusted in several poses. Then the coordinates of the checkerboard corners are extracted and the intrinsic and extrinsic parameters can be calculated. However, in a camera-projector system, the projector cannot capture checkerboard images. We need to project fringe patterns using the projector and capture reflection images by the camera. Then the coordinates of the corners in projector plane are determined according to their corresponding pixels in camera plane. Moreover, the black blocks of the checkerboard greatly affect the Gray-code and fringe patterns. Therefore we use a red-and-blue checkerboard as calibration target instead, as shown in Fig. 4(a). The reflection image captured by camera under structured light is shown in Fig. 4(b). It can be seen that the fringes are not affected by the red and blue blocks. To extract corners in camera plane, red light is projected onto the checkerboard. Figure 4(c) shows the captured reflection image, which is similar with the black-and-white checkerboard under natural lighting conditions.

 figure: Fig. 4

Fig. 4 Checkerboard images captured by camera under different lighting conditions: (a) natural light, (b) fringe pattern, and (c) red light.

Download Full Size | PDF

In order to calculate both the x and y coordinates of the checkerboard corners in projector plane, we need to project both vertical and horizontal patterns. Eq. (2) depicts the situation of projecting vertical patterns. The phase value ϕ(x, y) in horizontal patterns can be calculated by

ϕ(x,y)=2πNyH,
where H is the height of the projected image and N is the number of horizontal fringes.

The process of module calibration is summarized as follows.

  • Step 1: Adjust the pose of the checkerboard.
  • Step 2: Project one red image and capture the reflection image. Then extract coordinates of checkerboard corners in camera plane.
  • Step 3: Project six vertical Gray-code images and four vertical fringe pattern images. At the same time, capture the reflection images. Then calculate absolute phase map and x coordinates of checkerboard corners in projector plane.
  • Step 4: Project six horizontal Gray-code images and four horizontal fringe pattern images. At the same time, capture the reflection images. Then calculate absolute phase map and y coordinates of checkerboard corners in projector plane.
  • Step 5: Repeat step 1 to step 4 more than ten times.
  • Step 6: Calculate the intrinsic and extrinsic parameters of the camera and projector using the algorithm proposed by Zhang [32].

2.4. 3D reconstruction

With the intrinsic and extrinsic parameters, 3D reconstruction can be carried out now. Assume PW = [XW,YW, ZW, 1]T (in millimeter) is the homogenous coordinate of a 3D point in the world coordinate frame, PC = [XC,YC, ZC, 1]T (in millimeter) is its coordinate in camera coordinate frame, and [uc, vc, 1]T (in pixel) is its projection on the image plane. Then we have

ZC[ucvc1]=[ax0u00ayv0001][XCYCZC]
where ax and ay are focal lengths of the camera in pixel unit, u0 and v0 are coordinates of the principle point. All the four parameters are the intrinsic parameters of the camera and can be obtained by module calibration.

Let xc = XC/ZC and yc = YC/ZC, it can be derived from Eq. (10) that

{xc=XCZC=ucu0axyc=YCZC=vcu0ay.
Similarly, there is
{xp=XPZP=upu0axyp=YPZP=vpv0ay,
where ax, ay, u0 and v0 are the intrinsic parameters of the projector, [up, vp, 1]T is the corresponding pixel in projector plane, PP = [XP,YP, ZP, 1]T is the coordinate of the 3D point in projector coordinate frame.

Additionally, we have

[XPYPZP1]=TP[XCYCZC1]=[r11r12r13t1r21r22r23t2r31r32r33t30001][XCYCZC1],
where TP is the transform matrix between the camera and projector coordinate frames. It is the extrinsic parameter in module calibration.

According to Eqs. (11)(13), we can get the z coordinate of the 3D point in camera coordinate frame

ZC=t1t3xp(r31xc+r32yc+r33)xp(r11xc+r12yc+r13)=t2t3yp(r31xc+r32yc+r33)yp(r21xc+r22yc+r23).
Then the x and y coordinates of this point in camera coordinate frame can be calculated as XC = ZC xc and YC = ZC yc. Further, the coordinate of the point in world coordinate frame is
PW=TPC,
where T is the transform matrix of the module, which is obtained in system building process.

It can be seen from Eq. (14) that, only one of xp and yp is needed to calculate Zc. Therefore, only the vertical pattern images are used in our implementation and the matching between up and (uc, vc) is determined.

2.5. Registration and optimization

In our system, there are eight modules to scan different parts of the human body. Therefore we can get eight point clouds, which should be aligned into one model. Traditionally, the transform matrix between two adjacent point clouds is estimated using ICP algorithm. Then the point clouds can be registered incrementally. However, registration errors are accumulated in the whole process. In order to decrease these errors, we improve the ICP algorithm by registering each point cloud with all its neighbors instead of just its former one.

The layout of the modules can be seen in Fig. 1. For example, module 1, module 4, and module 5 are neighbors of module 3. Assume Ωi is the point cloud in world coordinate frame reconstructed by the ith module. When registering the third cloud Ω3, Ω1, Ω4, and Ω5 are combined and sampled into a temporary point cloud Δ. Then the points in Ω3 and Δ are matched according to their distances. Assume U = {u1, u2, ⋯, un} and V = {v1, v2, ⋯, vn} are matched point sets from Ω3 and Δ, respectively. Fixing Δ, the following error function can be calculated by adjusting the rotation matrix R and translation vector t of Ω3.

E(R,t)=argminR,t1ni=1n(1D(ui,vi)Dmax)||uiRvit||2,
where D(ui, vi) is the distance between point ui and vi. Dmax is the largest distance of the matching point pairs. If E(R, t) is smaller than a given threshold, the pose of Ω3 is found, i.e. R and t. Otherwise, Ω3 will be transformed using R and t and the above process will be executed again until E(R, t) is small enough.

In order to further minimize registration errors, a graph optimization algorithm is proposed in this paper. The nodes of the graph are poses of the modules. The edges of the graph are transform matrices between these modules. Assume node xi is the pose of the ith module, edge Ti, j is the transform matrix between xi and xj. Ideally, there should be

xi=Ti,jxj.
However, because of registration errors, there is
ei=xiTi,jxj.
Then we define an error function as
Eo(x)=i=18eiTei.
The final poses of the modules can be obtained by minimizing the error function in Eq. (19) using the solving method proposed by Kummerle et al. [33].

3. Experiments

In this section, experimental results are presented. In the experiments, we found that the camera’s response to projected images of different intensities is nonlinear. When the intensities of the projected images are close to 0 or 255, the intensities of the reflection images captured by camera are almost unchanged. Therefore the intensities of the projected fringe pattern images in our implementation are set between 80 and 200, i.e. I′ = 140 and I″ = 60 in Eq. (1).

3.1. Module calibration

Here we take the first module as the example to present module calibration results. In calibration, the checkerboard was adjusted under twelve different poses. At each pose, a red image was projected and the reflection image was captured to extract checkerboard corners on camera image plane. Ten vertical and ten horizontal pattern images were projected and corresponding reflection images were captured to match checkerboard corners on projector image plane. Therefore twelve image pairs indicating checkerboard corners can be obtained to calculate module parameters. The calculated intrinsic matrices of the camera and projector are

KC=[ax0u00ayv0001]=[967.90623.70971.7439.8001],
and
KP=[ax0u00ayv0001]=[1364.30961.701353.91097.5001].
The transform matrix of the projector is
TP=[r11r12r13t1r21r22r23t2r31r32r33t30001]=[0.94630.06710.3164409.820.05700.92840.367219.270.31840.36550.874770.540001].

The mean reprojection errors are shown in Fig. 5. The errors on camera image planes are represented by blue stripes and are in the range of 0.1816 to 0.2681 pixels. The errors on projector image planes are represented by brown stripes and are in the range of 0.6036 to 0.9598 pixels. The overall mean error of these image pairs is 0.4715, as illustrated by blue dashed line.

 figure: Fig. 5

Fig. 5 Mean reprojection errors of module calibration.

Download Full Size | PDF

The visualization of extrinsic parameters are shown in Fig. 6, where colored planes represent checkerboards under different poses. From Figs. 5 and 6, it can be seen that the calibration of this module is accurate.

 figure: Fig. 6

Fig. 6 Extrinsic parameters visualization. Colored planes represent checkerboards under different poses.

Download Full Size | PDF

3.2. 3D reconstruction by one module

In order to verify the accuracy of our 3D reconstruction algorithm, a precise flat board was reconstructed by one module. The board was about one meter far away from the module. Figure 7(a) shows the calculated relative phase map by four-step phase shifting method. As can be seen in this figure, there are many phase periods in the map. Figure 7(b) presents the absolute phase map after applying Gray-code decoding, where only one phase period exists. The reconstructed point cloud is shown in Fig. 7(c). These 3D points are fitted into a plane and the standard error is 1.03 mm, which meets the requirement of 3D body scanning.

 figure: Fig. 7

Fig. 7 3D reconstruction of a flat board. (a) Relative phase map obtained by four-step phase shifting method. (b) Absolute phase map with Gray-code decoding. (c) 3D point cloud of the board.

Download Full Size | PDF

Figure 8 shows the reconstruction results of a mannequin by one module. The relative and absolute phase maps are shown in Figs. 8(a) and 8(b), respectively. Note that the modules are mounted on the poles vertically to scan more parts of the body (see Fig. 1). Therefore Figs. 8(a) and 8(b) have been rotated 90 degrees and the fringe patterns seem to be horizontal now. Figures 8(c) and 8(d) show two different views of the reconstructed point cloud. The reconstruction results of a human body by one module are shown in Fig. 9. From these figures we can see that our 3D reconstruction algorithm is feasible and can produce sophisticated models.

 figure: Fig. 8

Fig. 8 3D reconstruction of a mannequin. (a) Relative phase map obtained by four-step phase shifting method. (b) Absolute phase map with Gray-code decoding. (c, d) Two views of the reconstructed 3D point cloud.

Download Full Size | PDF

 figure: Fig. 9

Fig. 9 3D reconstruction of a human body. (a) Absolute phase map. (b, c) Two views of the reconstructed 3D point cloud.

Download Full Size | PDF

3.3. Body scanning and optimization

With different parts reconstructed by different modules, the entire model can be obtained by point cloud registration. Then the graph optimization algorithm is used to minimize registration errors. Figure 10 shows the entire models before (left) and after (right) graph optimization, which are presented from the same perspective. Points reconstructed by different modules are marked with different colors. From the distributions of these colored points, we can see that the poses of the modules are different and the points are better overlapped after graph optimization, although the difference is not obvious enough.

 figure: Fig. 10

Fig. 10 3D model of a human body. Points in different colors represent different parts reconstructed by different modules. Left: Before optimization. Right: After optimization.

Download Full Size | PDF

To observe the improvement of performance by graph optimization more intuitively, the poses of the modules are drawn in Fig. 11 and are marked as numbered circles. Circle 1′ represents the pose of the first module after point cloud registration. It should be coincide with circle 1 ideally. However they are not coincide with each other because of accumulate errors, as shown in Fig. 11(a). After optimization, circle 1′ and circle 1 are overlapped, as shown in Fig. 11(b).

 figure: Fig. 11

Fig. 11 Pose graphs of the modules (a) before and (b) after optimization. Numbered circles represent the poses of the modules. Circle 1′ represents the pose of the first module after point cloud registration.

Download Full Size | PDF

Table 1 presents the (x, y, z) positions of the modules in world coordinate frame in meter. It can be seen that module 1 and module 1′ are in the same position after optimization. Positions of other modules are also changed slightly. This means that the accumulate errors have been evenly distributed among these modules. Therefore the accuracy of the scanned model is improved, as well as the visual effects. Different views of the final scanned results after combining all point clouds and removing noise points are presented in Fig. 12.

Tables Icon

Table 1. Positions of modules in world coordinate frame (in meter).

 figure: Fig. 12

Fig. 12 Different views of the final model after combining all point clouds.

Download Full Size | PDF

In order to present more quantitative comparing results, digitizing of a geometrical object has been performed. For all ICP based registration algorithms, the point clouds should have a certain of complex shapes. For example, points on a plane or a sphere cannot be registered using only geometric information. Therefore we designed an object as shown in Fig. 13(a). The base of the object is a cuboid, whose length (L1), width (W1), and height (H1) are 300, 300, and 400 millimeters, respectively. On top of the cuboid are four prismoids with 12 sides. Two prismoids with 8 sides are located at the left and right of the base cuboid. All these prismoids have the height of 170mm and the basal diameter of 300mm. In Fig. 13(a), H2 is the height of the entire object. C1, C2, and C3 represent the basal polygons’ circumferences of the prismods. A photograph of the real object is shown in Fig. 13(b). The reconstructed 3D model using our algorithm is shown in Fig. 13(c). It can be seen that the geometrical object was digitized correctly.

 figure: Fig. 13

Fig. 13 (a) A geometrical object to be measured. (b) Photograph of the real object. (c) Digitalized model using our scanning system.

Download Full Size | PDF

After 3D modelling, we measured the dimensions indicated in Fig. 13(a). The circumferences C1, C2, and C3 were calculated according to the contour points of the basal polygons. Other parameters were computed by searching the boundary points in corresponding directions. Table 2 presents the quantitative results. The ground truths were measured manually, which had a little bit differences with our designed values because of machining errors. We also registered the point clouds using the well-known ICP method and measured the dimensions according to the reconstructed model. From Tab. 2, we can calculate that the mean absolute error of our system is 1.94mm, while the mean absolute error of ICP is 4.84mm. Considering the scanning distance (approximately 1.2 meters), the result of our system is satisfied. Similar with Fig. 10, the visual difference between point clouds reconstructed by these two algorithms is not obvious. Therefore only the model obtained by our algorithm is presented in Fig. 13.

Tables Icon

Table 2. Measurement results of a geometrical object (in millimeter).

More results are shown in Fig. 14, including two mannequins and six human bodies. All the results demonstrate that our 3D body scanning system can produce accurate and sophisticated models.

 figure: Fig. 14

Fig. 14 Final results of two mannequins (a, b) and six human bodies (c-h).

Download Full Size | PDF

4. Conclusion

In this research, we present an accurate 3D body scanning system based on structured light technology. An improved ICP algorithm has been proposed to align different point clouds. We also propose a graph optimization algorithm to further minimize registration errors. These two contributions make our system more accurate than the standard ICP algorithm. In our implementation, eight modules are used to scan the body from different views. All the sensors, as well as the scanned body, need not to move in the whole scanning process. Each module is consisted of a projector and a camera. The projector projects periodic fringe patterns onto the scene and the reflection images are captured by the camera. We use a four-step phase shifting combined with Gray-code method to match pixels in projector and camera planes. Then the modules are calibrated using a red-and-blue checkerboard, which will not affect the projected stripes and is easy to extract corners at the same time. We have also derived the calculation of 3D point coordinates according to matched pixels. Experimental results show that our calibration and reconstruction algorithms are accurate. The proposed system can generate complete and accurate 3D human body models conveniently.

With modern projectors, digital cameras, and high-speed computers, one can easily obtain ten or more phase-stepping images. As analyzed in [34], utilizing higher phase step number fringes can improve both signal-to-noise ration and harmonics rejection, which will produce more accurate 3D body models. Therefore it is worth to increase the number of phase-steps although the capture and computing time will increase slightly. In the future, we would like to re-run our experiments with different number of phase-stepping images and further improve the accuracy of our 3D scanning system.

Funding

National Natural Science Foundation of China (NSFC) (61603020, 61620106012, 61573048).

References

1. J. Siebert and S. Marshall, “Human body 3D imaging by speckle texture projection photogrammetry,” Sensor Rev. 20(3), 218–226 (2000). [CrossRef]  

2. B. Allen, B. Curless, and Z. Popovic, “The space of human body shapes: reconstruction and parameterization from range scans,” ACM Trans. Graph. 22(3), 587–594 (2003). [CrossRef]  

3. J. Lu and M. Wang, “Automated anthropometric data collection using 3D whole body scanners,” Expert Syst. Appl. 35(1), 407–414 (2008). [CrossRef]  

4. J. Guo, X. Peng, A. Li, X. Liu, and J. Yu, “Automatic and rapid whole-body 3D shape measurement based on multinode 3D sensing and speckle projection,” Appl. Opt. 56(31), 8759–8768 (2017). [CrossRef]   [PubMed]  

5. R. Newcombe and A. Davison, “Live dense reconstruction with a single moving camera,” in Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (IEEE, 2010), pp. 1498–1505.

6. J. Pons, R. Keriven, and O. Faugeras, “Multi-view stereo reconstruction and scene flow estimation with a global image-based matching score,” Int. J. Comput. Vis. 72(2), 179–193 (2007). [CrossRef]  

7. H. Ji, K. An, J. Kang, M. Chung, and W. Yu, “3D environment reconstruction using modified color ICP algorithm by fusion of a camera and a 3D laser range finder,” in Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems (IEEE, 2009), pp. 3082–3088.

8. D. Paulo, M. Miguel, and S. Vítor, “3D reconstruction of real world scenes using a low-cost 3D range scanner,” Comput.-Aided Civ. Inf. Eng. 21(7), 486–497 (2010).

9. S. Chen, Y. Li, and J. Zhang, “Vision processing for realtime 3-D data acquisition based on coded structured light,” IEEE Trans. Image Process. 17(2), 167–176 (2008). [CrossRef]   [PubMed]  

10. R. Sagawa, R. Furukawa, and H. Kawasaki, “Dense 3D reconstruction from high frame-rate video using a static grid pattern,” IEEE Trans. Pattern Anal. Mach. Intell. 36(9), 1733–1747 (2014). [CrossRef]  

11. T. Petkovic, T. Pribanic, and M. Donlic, “Single-shot dense 3D reconstruction using self-equalizing De Bruijn sequence,” IEEE Trans. Image Process. 25(11), 5131–5144 (2016). [CrossRef]   [PubMed]  

12. H. Jing, J. Zhu, and P. Zhou, “Optical 3-D surface reconstruction with color binary speckle pattern encoding,” Opt. Express 26(3), 3452–3465 (2018). [CrossRef]   [PubMed]  

13. J. Xu, S. Liu, A. Wan, B. Gao, Q. Yi, D. Zhao, R. Luo, and K. Chen, “An absolute phase technique for 3D profile measurement using four-step structured light pattern,” Opt. Lasers Eng. 50(9), 1274–1280 (2012). [CrossRef]  

14. C. Jiang, B. Li, and S. Zhang, “Pixel-by-pixel absolute phase retrieval using three phase-shifted fringe patterns without markers,” Opt. Lasers Eng. 91232–241 (2017). [CrossRef]  

15. Z. Cai, X. Liu, X. Peng, and B. Gao, “Ray calibration and phase mapping for structured-light-field 3D reconstruction,” Opt. Express 26(6), 7598–7613 (2018). [CrossRef]   [PubMed]  

16. G. Sansoni, S. Corini, S. Lazzari, R. Rodella, and F. Docchio, “Three-dimensional imaging based on Gray-code light projection: characterization of the measuring algorithm and development of a measuring system for industrial applications,” Appl. Opt. 36(19), 4463–4472 (1997). [CrossRef]   [PubMed]  

17. Y. Wang, K. Liu, Q. Hao, D. Lau, and L. Hassebrook, “Period coded phase shifting strategy for real-time 3-D structured light illumination,” IEEE Trans. Image Process. 20(11), 3001–3013 (2011). [CrossRef]   [PubMed]  

18. X. Huang, J. Bai, K. Wang, Q. Liu, Y. Luo, K. Yang, and X. Zhang, “Target enhanced 3D reconstruction based on polarization-coded structured light,” Opt. Express 25(2), 1173–1184 (2017). [CrossRef]   [PubMed]  

19. M. Wheeler, “Automatic modeling and localization for object recognition,” PhD Thesis, School of Computer Science, Carnegie Mellon University, 1996.

20. Z. Cai, X. Liu, A. Li, Q. Tang, X. Peng, and B. Gao, “Phase-3D mapping method developed from back-projection stereovision model for fringe projection profilometry,” Opt. Express 25(2), 1262–1277 (2017). [CrossRef]  

21. Q. Wu, B. Zhang, J. Huang, Z. Wu, and Z. Zeng, “Flexible 3D reconstruction method based on phase-matching in multi-sensor system,” Opt. Express 24(7), 7299–7318 (2016). [CrossRef]   [PubMed]  

22. S. Barone, A. Paoli, and A. Razionale, “Multiple alignments of range maps by active stereo imaging and global marker framing,” Opt. Lasers Eng. 51(2), 116–127 (2013). [CrossRef]  

23. V. Pradeep, G. Medioni, and J. Weiland, “Visual loop closing using multi-resolution SIFT grids in metric-topological SLAM,” in Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (IEEE, 2009), pp. 1438–1445.

24. Y. Wang, D. Hung, and C. Sun, “Improving data association in robot SLAM with monocular vision,” J. Inf. Sci. Eng. 27(6), 1823–1837 (2011).

25. P. Henry, M. Krainin, E. Herbst, X. Ren, and D. Fox, “RGB-D mapping: using depth cameras for dense 3D modeling of indoor environments,” Int. J. Robot. Res. 31(5), 647–663 (2014). [CrossRef]  

26. I. Dryanovski, R. Valenti, and J. Xiao, “Fast visual odometry and mapping from RGB-D data,” in Proceedings of IEEE International Conference on Robotics and Automation (IEEE, 2013), pp. 2305–2310.

27. T. Lee, S. Lim, S. Lee, S. An, and S. Oh, “Indoor mapping using planes extracted from noisy RGB-D sensors,” in Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems (IEEE, 2012), pp. 1727–1733.

28. A. Bartoli and P. Sturm, “Structure-from-motion using lines: representation, triangulation, and bundle adjustment,” Comput. Vis. Image Underst. 100(3), 416–441 (2005). [CrossRef]  

29. P. Besl and N McKay, “A method for registration of 3-D shapes,” IEEE Trans. Pattern Anal. Mach. Intell. 14(2), 239–256 (1992). [CrossRef]  

30. H. Yue, W. Chen, X. Wu, and J. Liu, “Fast 3D modeling in complex environments using a single Kinect sensor,” Opt. Lasers Eng. 53, 104–111 (2014). [CrossRef]  

31. K. Gasvik, Optical Metrology, 3 Edition, (Wiley, 2002). [CrossRef]  

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

33. R. Kummerle, G. Grisetti, H. Strasdat, K. Konolige, and W. Burgard, “G2o: a general framework for graph optimization,” in Proceedings of IEEE International Conference on Robotics and Automation (IEEE, 2011), pp. 3607–3613.

34. M. Servin, J. Quiroga, and M. Padilla, Fringe Pattern Analysis for Optical Metrology: Theory, Algorithms, and Applications, (Wiley-VCH, 2014).

Cited By

Optica participates in Crossref's Cited-By Linking service. Citing articles from Optica Publishing Group journals and other participating publishers are listed here.

Alert me when this article is cited.


Figures (14)

Fig. 1
Fig. 1 Configuration of the proposed 3D body scanning system.
Fig. 2
Fig. 2 Topology of the proposed 3D body scanning system.
Fig. 3
Fig. 3 Process of absolute phase calculation. Left: four-step phase shifting images. Bottom middle: phase map within [0, 2π). Top middle: six Gray-code images. Right: absolute phase map within [0, 2).
Fig. 4
Fig. 4 Checkerboard images captured by camera under different lighting conditions: (a) natural light, (b) fringe pattern, and (c) red light.
Fig. 5
Fig. 5 Mean reprojection errors of module calibration.
Fig. 6
Fig. 6 Extrinsic parameters visualization. Colored planes represent checkerboards under different poses.
Fig. 7
Fig. 7 3D reconstruction of a flat board. (a) Relative phase map obtained by four-step phase shifting method. (b) Absolute phase map with Gray-code decoding. (c) 3D point cloud of the board.
Fig. 8
Fig. 8 3D reconstruction of a mannequin. (a) Relative phase map obtained by four-step phase shifting method. (b) Absolute phase map with Gray-code decoding. (c, d) Two views of the reconstructed 3D point cloud.
Fig. 9
Fig. 9 3D reconstruction of a human body. (a) Absolute phase map. (b, c) Two views of the reconstructed 3D point cloud.
Fig. 10
Fig. 10 3D model of a human body. Points in different colors represent different parts reconstructed by different modules. Left: Before optimization. Right: After optimization.
Fig. 11
Fig. 11 Pose graphs of the modules (a) before and (b) after optimization. Numbered circles represent the poses of the modules. Circle 1′ represents the pose of the first module after point cloud registration.
Fig. 12
Fig. 12 Different views of the final model after combining all point clouds.
Fig. 13
Fig. 13 (a) A geometrical object to be measured. (b) Photograph of the real object. (c) Digitalized model using our scanning system.
Fig. 14
Fig. 14 Final results of two mannequins (a, b) and six human bodies (c-h).

Tables (2)

Tables Icon

Table 1 Positions of modules in world coordinate frame (in meter).

Tables Icon

Table 2 Measurement results of a geometrical object (in millimeter).

Equations (22)

Equations on this page are rendered with MathJax. Learn more.

I i ( x , y ) = I + I sin [ ϕ ( x , y ) + π 2 ( i 1 ) ] , i = 1 , 2 , , 4 ,
ϕ ( x , y ) = 2 π N x W ,
R i ( u , v ) = R + R sin [ u 0 u + u 0 tan ( θ 0 ) O ( u , v ) + π 2 ( i 1 ) ] , i = 1 , 2 , , 4 ,
φ ( u , v ) = u 0 u + u 0 tan ( θ 0 ) O ( u , v ) .
R i ( u , v ) = R + R sin [ φ ( u , v ) + π 2 ( i 1 ) ] , i = 1 , 2 , , 4 .
φ ( u , v ) = arctan ( R 4 ( u , v ) R 2 ( u , v ) R 1 ( u , v ) R 3 ( u , v ) ) .
Φ ( u , v ) = φ ( u , v ) + 2 π B ( u , v ) .
x = W Φ ( u , v ) 2 N π .
ϕ ( x , y ) = 2 π N y H ,
Z C [ u c v c 1 ] = [ a x 0 u 0 0 a y v 0 0 0 1 ] [ X C Y C Z C ]
{ x c = X C Z C = u c u 0 a x y c = Y C Z C = v c u 0 a y .
{ x p = X P Z P = u p u 0 a x y p = Y P Z P = v p v 0 a y ,
[ X P Y P Z P 1 ] = T P [ X C Y C Z C 1 ] = [ r 11 r 12 r 13 t 1 r 21 r 22 r 23 t 2 r 31 r 32 r 33 t 3 0 0 0 1 ] [ X C Y C Z C 1 ] ,
Z C = t 1 t 3 x p ( r 31 x c + r 32 y c + r 33 ) x p ( r 11 x c + r 12 y c + r 13 ) = t 2 t 3 y p ( r 31 x c + r 32 y c + r 33 ) y p ( r 21 x c + r 22 y c + r 23 ) .
P W = T P C ,
E ( R , t ) = arg min R , t 1 n i = 1 n ( 1 D ( u i , v i ) D max ) | | u i R v i t | | 2 ,
x i = T i , j x j .
e i = x i T i , j x j .
E o ( x ) = i = 1 8 e i T e i .
K C = [ a x 0 u 0 0 a y v 0 0 0 1 ] = [ 967.9 0 623.7 0 971.7 439.8 0 0 1 ] ,
K P = [ a x 0 u 0 0 a y v 0 0 0 1 ] = [ 1364.3 0 961.7 0 1353.9 1097.5 0 0 1 ] .
T P = [ r 11 r 12 r 13 t 1 r 21 r 22 r 23 t 2 r 31 r 32 r 33 t 3 0 0 0 1 ] = [ 0.9463 0.0671 0.3164 409.82 0.0570 0.9284 0.3672 19.27 0.3184 0.3655 0.8747 70.54 0 0 0 1 ] .
Select as filters


Select Topics Cancel
© Copyright 2024 | Optica Publishing Group. All rights reserved, including rights for text and data mining and training of artificial technologies or similar technologies.