this approach attempts to compute the exact intersec-
tion of viewing cones. The idea was first realized in
(Baumgart, 1975), where the visual hull was com-
puted directly as the intersection of polyhedralized
viewing cones. Matusik et al. (Matusik et al., 2001)
proposed an efficient algorithm capable of computing
the polyhedral visual hull in real time, in the case of a
few cameras. However, it suffers from numerical in-
stability when more cameras are introduced. Lazeb-
nik et al. (Lazebnik, 2002) derived the visual hull as
a topological polyhedron computed from the epipo-
lar constraints. In (Boyer and Franco, 2003; Franco
and Boyer, 2003), Franco and Boyer computed ex-
act polyhedral visual hull by cutting and joining the
visual rays casted from silhouettes and joining them
together. Despite the complexity involved in join-
ing the visual ray segments, the visual hull recon-
structed is highly accurate in terms of silhouette con-
sistency. However, both methods suffer from produc-
ing ill-formed mesh triangles.
In this paper, we propose a novel approach for
reconstructing an exact visual hull from silhouettes.
Our approach is based on the existing octree and
marching cubes algorithm. The key to our approach is
a simple and efficient strategy to directly estimate the
exact positions where the voxel edges intersect with
the visual hull. This exact intersection computation
will replace the interpolation procedure for locating
the vertex position in the traditional marching cubes
algorithm. While producing more accurate visual hull
mesh, this proposed approach retains the simplicity
of the volumetric approach. Compared with the poly-
hedral approach, the method generates significantly
more regular mesh triangles and is much easier to im-
plement. The proposed approach has been verified
by both quantitative and qualitative comparisons with
other existing volumetric and polyhedral approaches.
2 BACKGROUND
An octree is a tree structure commonly used for rep-
resenting volume in 3D space. It can be seen as a 3D
equivalence of a quadtree (in 2D space) and a binary
tree (in 1D space). Each leaf-node corresponds to an
actual volume element, also termed as voxel, in 3D
space. The leaf nodes are attached to non-leaf nodes
higher in the tree hierarchy. A non-leaf node does not
correspond to a real volume but the bounding box of
all its descendants. The root node is thus the bounding
volume of the object to be reconstructed.
An octree of an object can be reconstructed from
the silhouettes through recursive subdivision and pro-
jection tests. The process usually begins with a single
VisualHull
nooccupancy
complete
occupancy
partial
occupancy
Figure 1: Three types of voxels in octree based visual hull
reconstruction: complete occupancy (black), partial occu-
pancy (gray) and no occupancy (white).
voxel. Each voxel is projected onto each image and
tested against the silhouette. The test result classi-
fies the voxel, by how much of its volume is occu-
pied by the visual hull, as one of these three types:
{black, gray, white} (see Fig. 1), which indicate com-
plete occupancy, partial occupancy and no occupancy,
respectively. Among the three type of voxels, only
voxels with partial occupancy contains the potential
visual hull boundary and is subject to further subdi-
vision until certain termination criterion is reached,
such as when the maximum allowed number of sub-
division is reached.
Once the octree is reconstructed, marching cubes
algorithm can be applied to extract the object surface.
To do this, the voxel occupancy of a leaf node is en-
coded into an 8-bit value using the occupancy of its
eight vertices. This value is then used to index into
a pre-defined lookup table which defines surface tri-
angles within the voxel that will form part of the final
visual hull mesh. However, since the octree gives only
binary occupancy information, the procedure of com-
puting the triangle vertex by interpolating the voxel
vertex values in the standard marching cubes algo-
rithm becomes meaningless. A simple strategy was
proposed in (Montani et al., 1994) to use mid-points
for the triangle vertices, which unfortunately creates
a jagged surface (see Fig. 2(middle)). If we apply
smoothing to the mesh to reduce the jaggedness, real
features on the surface will also be smoothed out.
We will present in the next section a simple and
efficient strategy that can directly estimate the exact
positions where the voxel edges intersect with the vi-
sual hull. The estimated position can be used in place
of the linear interpolation result in the marching cubes
algorithm for extracting an accurate visual hull mesh
(see Fig. 2(right)).
VISAPP 2008 - International Conference on Computer Vision Theory and Applications
598