Bricks: A New Primitive for Visual Hull Modeling
Visesh Chari, Amit Agrawal, Yuichi Taguchi and Srikumar Ramalingam
Mitsubishi Electric Research Labs (MERL)
We propose convex bricks, a new 3D primitive for modeling and reconstructing visual hulls from silhouettes. Unlike voxel based visual hull reconstruction where the shape of voxel remains fixed, the shape of convex bricks can adapt to the given silhouettes, thereby reducing the number of primitives required for a volumetric representation. Using convex bricks, polyhedral visual hull can be generated from polygonal silhouettes as a combination of 3D convex polytopes.
Convex bricks are unique in that they allow both volumetric and surface based representation. Being a volumetric approach, our technique avoids explicit computation of triple points/frontier points and does not require local orientation or connectivity rules. Interestingly, convex bricks also provides a watertight surface mesh, bridging the gap between volumetric and surface based approaches. In addition to high-quality reconstruction, our representation is useful for applications that require convex decomposition of 3D shapes.
Advantages over voxels:
A representation using CB has following benefits:
1. Unlike voxels, the representation is independent of any 3D discretization. Convex bricks does not result in blockiness or quantization artifacts as shown in the above figure. Both the size and shape of CB’s depend on the inherent non-convexity of the shape, rather than on the surface area as in voxel carving.
2. CB representation produces high quality reconstruction using lower number of primitives than voxel carving.
3. It can provide both volumetric and surface information, while previous approaches result in either of two.
4. Using convex bricks, a 3D decomposition of the shape is obtained automatically.
Our implementation uses well-studied computational geometry operations such as (a) 2D convex decomposition, (b) 2D intersections and (c) 3D-3D convex intersections. The implementation is similar to voxel carving. Starting from a bounding box, each convex brick is projected on to a new silhouette. If it lies outside, the CB is discarded. If it lies completely inside, it is retained. If it intersects with the silhouette, then the intersection is divided into k convex partitions. Each convex partition is then back-projected to subdivide the convex brick into k smaller convex polytopes. Thus, while voxel carving subdivides each voxel into 8 smaller voxels, our approach subdivides each convex brick into k convex polytopes depending on local silhouette shape.