Abstract

This paper describes a Graphics Processing Unit (GPU)-assisted real-time three-dimensional shape measurement system. Our experiments demonstrated that the absolute coordinates calculation and rendering speed of a GPU is more than four times faster than that of a dual CPU workstation with the same graphics card. By implementing the GPU into our system, we realized simultaneous absolute coordinate acquisition, reconstruction and display at 30 frames per second with a resolution of approximately 266K points per frame. Moreover, a 2+1 phase-shifting algorithm was employed to alleviate the measurement error caused by motion. Applications of the system include medical imaging, manufacturing, entertainment, and security.

© 2006 Optical Society of America

Full Article  |  PDF Article

References

  • View by:
  • |
  • |
  • |

  1. M. Takeda and K. Mutoh, "Fourier Transform Profilometry for the Automatic Measurement of 3-D Object Shape," Appl. Opt. 22, 3977-3982 (1983).
    [CrossRef] [PubMed]
  2. S. Almaz´an-Cu´ellar and D. Malacara-Hern´andez, "Two-step Phase-shifting Algorithm," Opt. Eng. 42, 3524-3531 (2003).
    [CrossRef]
  3. C. Quan, C. J. Tay, X. Kang, X. Y. He, and H. M. Shang, "Shape Measurement by Use of Liquid-crystal Display Fringe Projection with Two-step Phase-Shifting," Appl. Opt. 42, 2329-2335 (2003).
    [CrossRef] [PubMed]
  4. P. S. Huang and S. Zhang, "A Fast Three-Step Phase Shifting Algorithm," Appl. Opt. 45 (2006).
    [CrossRef] [PubMed]
  5. S. Zhang and P. S. Huang, "High-Resolution, Real-time 3-D Shape Measurement," Opt. Eng. (2006). In Press.
    [CrossRef]
  6. S. Zhang and S.-T. Yau, "High-resolution, Real-time 3D Absolute Coordinate Measurement Based on a Phaseshifting Method," Opt. Express 1414, 2644-2649 (2006).
  7. J. R. P. Angel and P. L. Wizinowich, "A Method of Phase Shifting in the Presence of Vibration," in ESO Proc., vol. 30 (1988).
  8. P. L. Wizinowich, "Phase Shifting Interferometry in the Presence of Vibration: A New Algorithm and System," Appl. Opt. 29, 3271-3279 (1990).
    [CrossRef] [PubMed]
  9. J. C. Wyant, "Phase Shifting Interferometry," http://www.optics.arizona.edu/jcwyant/Optics513/optics513.htm (1998).
  10. M. Ujaldon and J. Saltz, "Exploiting Parallelism on Irregular Applications Using the GPU," in Intl. Conf. on Paral. Comp., pp. 13-16 (2005).
  11. B. Khailany, W. Dally, S. Rixner, U. Kapasi, J. Owens, and B. Towles, "Exploring the VLSI Scalability of Stream Processors," in Proc. 9th Symp. on High Perf. Comp. Arch., pp. 153-164 (2003).
  12. E. Lindholm, M. J. Kligard, and H. Moreton, "A user-programmable vertex engine," in Proc. of SIGGRAPH, pp. 149-158 (2001).
  13. R. Fernando and M. J. Kilgard, The Cg Tutorial (Addison-Wesley, Boston, 2003).
  14. D. Malacara, ed., Optical Shop Testing (John Wiley and Songs, NY, 1992).
  15. S. Zhang, "High-Resolution, Real-Time 3-D Shape Measurement," Ph.D. thesis, Stony Brook University, State University of New York (2005).
  16. D. C. Ghiglia and M. D. Pritt, Two-Dimensional Phase Unwrapping: Theory, Algorithms, and Software (John Wiley and Sons, Inc, 1998).
  17. S. Zhang, X. Li, and S.-T. Yau, "Multi-level Quality-Guided Phase Unwrapping Algorithm for Real-time 3-D Reconstruction," Appl. Opt. (2006). In Revision.
    [PubMed]
  18. S. Zhang and P. S. Huang, "A Novel Structured Light System Calibration," Opt. Eng. 45 (2006).
    [CrossRef]

2006

P. S. Huang and S. Zhang, "A Fast Three-Step Phase Shifting Algorithm," Appl. Opt. 45 (2006).
[CrossRef] [PubMed]

S. Zhang and P. S. Huang, "High-Resolution, Real-time 3-D Shape Measurement," Opt. Eng. (2006). In Press.
[CrossRef]

S. Zhang and S.-T. Yau, "High-resolution, Real-time 3D Absolute Coordinate Measurement Based on a Phaseshifting Method," Opt. Express 1414, 2644-2649 (2006).

S. Zhang and P. S. Huang, "A Novel Structured Light System Calibration," Opt. Eng. 45 (2006).
[CrossRef]

2003

1990

1983

Almaz´an-Cu´ellar, S.

S. Almaz´an-Cu´ellar and D. Malacara-Hern´andez, "Two-step Phase-shifting Algorithm," Opt. Eng. 42, 3524-3531 (2003).
[CrossRef]

He, X. Y.

Huang, P. S.

P. S. Huang and S. Zhang, "A Fast Three-Step Phase Shifting Algorithm," Appl. Opt. 45 (2006).
[CrossRef] [PubMed]

S. Zhang and P. S. Huang, "High-Resolution, Real-time 3-D Shape Measurement," Opt. Eng. (2006). In Press.
[CrossRef]

S. Zhang and P. S. Huang, "A Novel Structured Light System Calibration," Opt. Eng. 45 (2006).
[CrossRef]

Kang, X.

Malacara-Hern´andez, D.

S. Almaz´an-Cu´ellar and D. Malacara-Hern´andez, "Two-step Phase-shifting Algorithm," Opt. Eng. 42, 3524-3531 (2003).
[CrossRef]

Mutoh, K.

Quan, C.

Shang, H. M.

Takeda, M.

Tay, C. J.

Wizinowich, P. L.

Yau, S.-T.

Zhang, S.

S. Zhang and P. S. Huang, "A Novel Structured Light System Calibration," Opt. Eng. 45 (2006).
[CrossRef]

S. Zhang and S.-T. Yau, "High-resolution, Real-time 3D Absolute Coordinate Measurement Based on a Phaseshifting Method," Opt. Express 1414, 2644-2649 (2006).

P. S. Huang and S. Zhang, "A Fast Three-Step Phase Shifting Algorithm," Appl. Opt. 45 (2006).
[CrossRef] [PubMed]

S. Zhang and P. S. Huang, "High-Resolution, Real-time 3-D Shape Measurement," Opt. Eng. (2006). In Press.
[CrossRef]

Appl. Opt.

Opt. Eng.

S. Almaz´an-Cu´ellar and D. Malacara-Hern´andez, "Two-step Phase-shifting Algorithm," Opt. Eng. 42, 3524-3531 (2003).
[CrossRef]

S. Zhang and P. S. Huang, "A Novel Structured Light System Calibration," Opt. Eng. 45 (2006).
[CrossRef]

S. Zhang and P. S. Huang, "High-Resolution, Real-time 3-D Shape Measurement," Opt. Eng. (2006). In Press.
[CrossRef]

Opt. Express

Other

J. R. P. Angel and P. L. Wizinowich, "A Method of Phase Shifting in the Presence of Vibration," in ESO Proc., vol. 30 (1988).

J. C. Wyant, "Phase Shifting Interferometry," http://www.optics.arizona.edu/jcwyant/Optics513/optics513.htm (1998).

M. Ujaldon and J. Saltz, "Exploiting Parallelism on Irregular Applications Using the GPU," in Intl. Conf. on Paral. Comp., pp. 13-16 (2005).

B. Khailany, W. Dally, S. Rixner, U. Kapasi, J. Owens, and B. Towles, "Exploring the VLSI Scalability of Stream Processors," in Proc. 9th Symp. on High Perf. Comp. Arch., pp. 153-164 (2003).

E. Lindholm, M. J. Kligard, and H. Moreton, "A user-programmable vertex engine," in Proc. of SIGGRAPH, pp. 149-158 (2001).

R. Fernando and M. J. Kilgard, The Cg Tutorial (Addison-Wesley, Boston, 2003).

D. Malacara, ed., Optical Shop Testing (John Wiley and Songs, NY, 1992).

S. Zhang, "High-Resolution, Real-Time 3-D Shape Measurement," Ph.D. thesis, Stony Brook University, State University of New York (2005).

D. C. Ghiglia and M. D. Pritt, Two-Dimensional Phase Unwrapping: Theory, Algorithms, and Software (John Wiley and Sons, Inc, 1998).

S. Zhang, X. Li, and S.-T. Yau, "Multi-level Quality-Guided Phase Unwrapping Algorithm for Real-time 3-D Reconstruction," Appl. Opt. (2006). In Revision.
[PubMed]

Supplementary Material (1)

» Media 1: MOV (2383 KB)     

Cited By

OSA participates in CrossRef's Cited-By Linking service. Citing articles from OSA journals and other participating publishers are listed here.

Alert me when this article is cited.


Figures (6)

Fig. 1.
Fig. 1.

GPU pipeline. Vertex data including vertex coordinates and vertex normal are sent to the GPU. GPU generates the lighting of each vertex, creates the polygons and rasterizes the pixels, then output the rasterized image to the display screen.

Fig. 2.
Fig. 2.

Vertex shader. The input vertex data including vertex homogeneous position coordinates and normals are sent to the vertex shader, the vertex shader generates the clip space coordinates and the color of every single isolated vertex data. The GPU assembles the polygons based on the order of the streaming data which are then put in the next pipeline.

Fig. 3.
Fig. 3.

Our vertex shader. Three absolute phases of one triangle and one vertex index are sent to the GPU. The GPU computes the absolute coordinates for each vertex. The normal for one vertex can then be computed on the GPU.

Fig. 4.
Fig. 4.

Measurement results of a static object using the 2+1 phase-shifting algorithm.

Fig. 5.
Fig. 5.

Measurement result of human face.

Fig. 6.
Fig. 6.

(2.32MB) Real-time acquired, reconstructed, and displayed 3-D absolute coordinates at 30 fps.

Tables (1)

Tables Icon

Table 1. Comparison between the computation and rendering with GPU and CPU

Equations (18)

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

I 1 ( x , y ) = I ( x , y ) + I ( x , y ) cos ( ϕ ( x , y ) 2 π 3 ) ,
I 2 ( x , y ) = I ( x , y ) + I ( x , y ) cos ( ϕ ( x , y ) ) ,
I 3 ( x , y ) = I ( x , y ) + I ( x , y ) cos ( ϕ ( x , y ) + 2 π 3 ) ,
ϕ ( x , y ) = tan 1 3 ( I 1 I 3 ) 2 I 2 I 1 I 3 ,
γ ( x , y ) = I ( x , y ) I ( x , y ) = 3 ( I 1 I 3 ) 2 + ( 2 I 2 I 1 I 3 ) 2 I 1 + I 2 + I 3 .
I 1 = I ( x , y ) + I ( x , y ) sin ( ϕ ( x , y ) ) ,
I 2 = I ( x , y ) + I ( x , y ) cos ( ϕ ( x , y ) ) ,
I 3 = I ( x , y ) .
ϕ ( x , y ) = tan 1 I 1 I 3 I 2 I 3 ,
γ ( x , y ) = I ( x , y ) I ( x , y ) = ( I 1 I 3 ) 2 + ( I 2 I 3 ) 2 I 3 ,
Δ i = x I i ( x , y ) x + y I i ( x , y ) y
A c = [ a 11 c , a 12 c , a 13 c , a 14 c a 21 c , a 22 c , a 23 c , a 24 c a 31 c , a 32 c , a 33 c , a 34 c ] ,
A p = [ a 11 p , a 12 p , a 13 p , a 14 p a 21 p , a 22 p , a 23 p , a 24 p a 31 p , a 32 p , a 33 p , a 34 p ] .
s c [ u c , v c , 1 ] T = A c [ x , y , z , 1 ] T ,
s p [ u p , v p , 1 ] T = A p [ x , y , z , 1 ] T ,
ϕ a ( u c , v c ) = ϕ a p ( u p ) = ϕ a .
u p = ϕ a c × P ( 2 π ) + W p 2 .
[ x y z ] = [ a 11 c u c a 31 c a 12 c u c a 32 c a 13 c u c a 33 c a 21 c v c a 31 c a 22 c v c a 32 c a 23 c v c a 33 c a 11 p u p a 31 p a 12 p u p a 32 p a 13 p u p a 33 p ] 1 [ u c a 34 c a 14 c v c a 34 c a 24 c u p a 34 p a 14 p ] .

Metrics