We take a shape from silhouette approach to recover 3D geometry of objects from a set of pictures. Because we use this method to simulate physical interactions, which include occlusion, shadow and mutual illumination, between these real objects and graphical objects. We need to extract silhouette, or occluding contour, to do occlusion anyway. Beside, occluding contour is more robust than other image measurements, say pixel values. This is on-going work and we have some success in using the levelset method. The way it works is that the 3D to-be-reconstructed surface is embeded into a higher-dimensional surface and is the 0-levelset of this hypersurface. The 0-levelset, which is the surface we want, is obtained by the marching-cube algorithm and is projected to the contours. A distance of the real contour and the projected contour is computed and is the force to drive the 0-levelset to evolve. The following example shows the evovling of an initial surface (a cube) toward a coffee mug.
Eight contours of a coffee mug.
The reconstruction. Click for a movie showing the surface evolving.