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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Baumgart, B.: Geometric modeling for computer vision. Ph.D. thesis, Stanford University (1974)
Bresenham, J.: Algorithm for computer control of a digital plotter. IBM Syst. J. 4(1), 25–30 (1965)
Deriche, R.: Recursively implementing the Gaussian and its derivatives. Unité de Recherche INRIA-Sophia Antipolis. Tech. Rep. No. 1893 (1993)
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)
Franco, J.S., Boyer, E.: Exact polyhedral visual hulls. In: Proc. of British Machine Vision Conf, pp. 329–338 (2003)
Harris, M.: Parallel prefix sum (scan) with CUDA. In: Nguyen, H. (ed.) GPU Gems 3, pp. 851–876. Addison Wesley, Reading (2008)
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)
Laurentini, A.: The visual hull concept for silhouette-based image understanding. IEEE Trans. Pattern Anal. Mach. Intell. 16(2), 150–162 (1994)
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)
Lorensen, W., Cline, H.: Marching Cubes: a high resolution 3D surface construction algorithm. Proc. ACM SIGGRAPH 21, 163–169 (1987)
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)
NVIDIA: NVIDIA CUDA C Programming Guide (Version 3.2) (2010)
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)
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)
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)
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)
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
Corresponding author
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).
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
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
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00371-013-0796-2