3D Object Reconstruction

My final year project was titled "3D Object Reconstruction from Calibrated Multiview Images". In essence, it took many pictures of an object, taken from many different views, and computed the 3D model of that object. The project was carried out at the Image Processing Lab of M.S Ramaiah Institute of Technology, Bangalore, under the guidance of Prof. V K Ananthashayana. My team mates were Sriganesh.T.V and Iman Ghamari.

Details

The project involved generating a texture mapped continuous voxel based 3D model from multiple sparse views. The cameras are fully calibrated (the position, orientation and FoV are known). The input images are assumed to be segmented (with some scope for thresholding). The reconstruction occurs in these phases:

  • Shape from Silhouette: The given image silhouettes are projected into a 3D voxel cube, and the intersection of the projection volumes gives the 3D model.
  • Depth map generation: The resultant 3D model is re-projected onto the individual image planes, to generate depth information at each image point.
  • Texture mapping: The correspondence between 3D information and color information is used to map the images onto the 3D voxel model.
  • Post processing: The resultant 3D model is coarse and has several aliasing artefacts. To mitigate this, an additional alpha channel (transparency) is introduced at each voxel, and the voxels are 'blurred' using a 3x3x3 filter.
  • Realtime Rendering: The processed model is rendered as an OpenGL 3D texture. The visualisation is achieved by 'cutting' the 3D Texture into several cross sections (planes), which when super-imposed give the illusion of a 3D surface.

More info, along with source code will be posted soon.

Results

Here are some of the results obtained when we run our reconstruction algorithm on the TempleRing Data-Set, consisting of 18 segmented images. The scene consists of over 35 million points (about 216 MegaBytes of uncompressed data). The scatter plot and an OpenGL based 3D texture rendering are displayed below.