Skip to main content
Log in

GPU-based parallel construction of compact visual hull meshes

  • Original Article
  • Published:
The Visual Computer Aims and scope Submit manuscript

Abstract

Building a visual hull model from multiple two-dimensional images provides an effective way of understanding the three-dimensional geometries inherent in the images. In this paper, we present a GPU accelerated algorithm for volumetric visual hull reconstruction that aims to harness the full compute power of the many-core processor. From a set of binary silhouette images with respective camera parameters, our parallel algorithm directly outputs the triangular mesh of the resulting visual hull in the indexed face set format for a compact mesh representation. Unlike previous approaches, the presented method extracts a smooth silhouette contour on the fly from each binary image, which markedly reduces the bumpy artifacts on the visual hull surface due to a simple binary in/out classification. In addition, it applies several optimization techniques that allow an efficient CUDA implementation. We also demonstrate that the compact mesh construction scheme can easily be modified for also producing a time- and space-efficient GPU implementation of the marching cubes algorithm.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

References

  1. Baumgart, B.: Geometric modeling for computer vision. Ph.D. thesis, Stanford University (1974)

  2. Bresenham, J.: Algorithm for computer control of a digital plotter. IBM Syst. J. 4(1), 25–30 (1965)

    Article  Google Scholar 

  3. Deriche, R.: Recursively implementing the Gaussian and its derivatives. Unité de Recherche INRIA-Sophia Antipolis. Tech. Rep. No. 1893 (1993)

  4. Erol, A., Bebis, G., Boyle, R., Nicolescu, M.: Visual hull construction using adaptive sampling. In: Proc. of the 7th IEEE Works. on Application of Computer Vision, vol. 1, pp. 234–241 (2005)

    Google Scholar 

  5. Franco, J.S., Boyer, E.: Exact polyhedral visual hulls. In: Proc. of British Machine Vision Conf, pp. 329–338 (2003)

    Google Scholar 

  6. Harris, M.: Parallel prefix sum (scan) with CUDA. In: Nguyen, H. (ed.) GPU Gems 3, pp. 851–876. Addison Wesley, Reading (2008)

    Google Scholar 

  7. Ladikos, A., Benhimane, S., Navab, N.: Efficient visual hull computation for real-time 3D reconstruction using CUDA. In: Proc. of the Conf. on Computer Vision and Pattern Recognition Works, pp. 1–8 (2008)

    Google Scholar 

  8. Laurentini, A.: The visual hull concept for silhouette-based image understanding. IEEE Trans. Pattern Anal. Mach. Intell. 16(2), 150–162 (1994)

    Article  Google Scholar 

  9. Liang, C., Wong, K.Y.: Exact visual hull from marching cubes. In: Proc. of the 3rd Int. Conf. on Computer Vision Theory and Applications, vol. 2, pp. 597–604 (2008)

    Google Scholar 

  10. Lorensen, W., Cline, H.: Marching Cubes: a high resolution 3D surface construction algorithm. Proc. ACM SIGGRAPH 21, 163–169 (1987)

    Article  Google Scholar 

  11. Matusik, W., Buehler, C., McMillan, L.: Polyhedral visual hulls for real-time rendering. In: Proc. of the 12th Eurographics Works. on Rendering Techniques, pp. 115–126 (2001)

    Google Scholar 

  12. NVIDIA: NVIDIA CUDA C Programming Guide (Version 3.2) (2010)

  13. Satish, N., Harris, M., Garland, M.: Designing efficient sorting algorithms for manycore GPUs. In: Proc. of the 2009 IEEE Int. Symp. on Parallel & Distributed Processing, pp. 1–10 (2009)

    Chapter  Google Scholar 

  14. Shujun, Z., Cong, W., Xuqiang, S., Wei, W.: Dream World: CUDA-accelerated real-time 3D modeling system. In: Proc. of the IEEE Int. Conf. on Virtual Environments, Human–Computer Interfaces and Measurement Systems, pp. 168–173 (2009)

    Google Scholar 

  15. Slabaugh, G., Culbertson, B., Malzbender, T., Schafer, R.: A survey of methods for volumetric scene reconstruction from photographs. In: Proc. of Int. Works. on Volume Graphics, pp. 81–100 (2001)

    Google Scholar 

  16. Waizenegger, W., Feldmann, I., Eisert, P., Kauff, P.: Parallel high resolution real-time visual hull on GPU. In: Proc. of the 16th IEEE Int. Conf. on Image Processing, pp. 4301–4304 (2009)

    Google Scholar 

Download references

Acknowledgements

This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education, Science, and Technology (Grant no. 2012R1A1A2008958), and by the strategic technology development program of MCST/MKE/KEIT (Development of Full 3D Reconstruction Technology for Broadcasting Communication Fusion (KI001798)).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Insung Ihm.

Appendix: Proof of perspective-corrected ratios

Appendix: Proof of perspective-corrected ratios

We want to reveal the relation between the points \(\mathbf{p}^{i}_{w}\), \(\mathbf{p}^{s}_{w}\), \(\mathbf{p}^{o}_{w}\) in the world space and the mapped points \(\mathbf{p}^{i}_{s}\), \(\mathbf{p}^{s}_{s}\), \(\mathbf{p}^{o}_{s}\) in the screen space (see Fig. 9 again). Note that the transformation from the normalized image space to the screen space is an affine transformation because it involves only translation, scaling, and possibly shearing; so is the view transformation that converts points from the world space to the camera space. Since the affine transformations preserve the ratios of distance along a line, it is enough to consider the mapping between the corresponding points \(\mathbf{p}^{i}_{c}\), \(\mathbf{p}^{s}_{c}\), \(\mathbf{p}^{o}_{c}\) in the camera space and \(\mathbf{p}^{i}_{n}\), \(\mathbf{p}^{s}_{n}\), \(\mathbf{p}^{o}_{n}\) in the normalized image space (see Fig. 14).

Fig. 14
figure 14

Mapping between the camera space and the normalized image space

Assume that \(\mathbf{p}^{i}_{c} = (x^{i}_{c} \ y^{i}_{c} \ z^{i}_{c})^{t}\), \(\mathbf{p}^{s}_{c} = (x^{s}_{c} \ y^{s}_{c} \ z^{s}_{c})^{t}\), \(\mathbf{p}^{o}_{c} = (x^{o}_{c} \ y^{o}_{c} \ z^{o}_{c})^{t}\), where

$$\mathbf{p}^s_c = \alpha\left( \begin{array}{c} x^o_c \\[1mm] y^o_c \\[1mm] z^o_c \end{array} \right) + (1-\alpha) \left( \begin{array}{c} x^i_c \\[1mm] y^i_c \\[1mm] z^i_c \end{array} \right). $$

Similarly, let \(\mathbf{p}^{i}_{n} = (x^{i}_{n} \; y^{i}_{n})^{t}\), \(\mathbf{p}^{s}_{n}= (x^{s}_{n} \; y^{s}_{n})^{t}\), \(\mathbf{p}^{o}_{n}= (x^{o}_{n} \; y^{o}_{n})^{t}\). When \(\mathbf{p}^{s}_{c}\) is transformed into the normalized image space by multiplying the perspective transformation matrix, we get

which, via perspective division, leads to

By the same perspective transformation, it becomes that \((x_{n}^{i} \ y_{n}^{i})^{t} = (\frac{f x_{c}^{i}}{z_{c}^{i}} \ \frac{f y_{c}^{i}}{z_{c}^{i}})^{t}\) and \((x_{n}^{o} \ y_{n}^{o})^{t} = (\frac{f x_{c}^{o}}{z_{c}^{o}} \ \frac{fy_{c}^{o}}{z_{c}^{o}})^{t}\). From these, we obtain that

This implies that \(t = \frac{\alpha z_{c}^{o}}{\alpha z^{o}_{c} + (1-\alpha )z^{i}_{c}} \), from which we are led to \(\alpha= \frac{t z_{c}^{i}}{t z_{c}^{i} + (1-t)z^{o}_{c}}\).  □

Rights and permissions

Reprints and permissions

About this article

Cite this article

Chang, B., Woo, S. & Ihm, I. GPU-based parallel construction of compact visual hull meshes. Vis Comput 30, 201–211 (2014). https://doi.org/10.1007/s00371-013-0796-2

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00371-013-0796-2

Keywords

Navigation