Voxel-Coloring Algorithm*

We start with a handful of images of a Lambertian scene, together with camera pose information for each. We use voxel-coloring (the algorithm shown below) to construct a volumetric model of the scene. Finally, we project the model to synthesize new images.

*Seitz and Dyer, "Photorealistic Scene Reconstruction by Voxel Coloring," 1997 IEEE Computer Society Conference on Computer Vision and Pattern Recognition


/* Voxel-Coloring pseudocode */
for all images                      /* clear occlusion bitmaps */
  set all pixels to not-occluded
for each layer of voxels along major axis {
  for each voxel V in layer {
    for each image i {
      find the set P(i) of pixels in the projection of V
      for all pixels of P(i) which are not-occluded
        add contribution to colorMean and colorStandardDeviation
    }
    if (colorStandardDeviation < threshold) { /* if colors match… */
      mark V opaque and color V with the colorMean
      for each image i
        set pixels in P(i) to occluded
    } else mark V transparent       /* if colors do not match… */ 
  }
}

Schematic of Voxel-Coloring Algorithm


Synthesized images


Animations

Original
photos
Synthesized
frames
AVI MPEG
Tower 28 100 522 KB 199 KB
Train 14 200 951 KB 432 KB



Back to top.