Project 3: Photometric Stereo

Landon Todd Detwiler
CSEP 576 Winter 2005


For each of the 3 artifacts below, the images are in the following order left to right, top to bottom:

  1. one of the original photographs
  2. RGB normals
  3. needle map
  4. albedo map
  5. model in position 1
  6. model in position 1 with albedo map
  7. model in position 2
  8. model in position 2 with albedo map

The cat:

 


The rock:

 


The horse:

 


What worked and what did not:

The first three segments of this project were fairly straight forward. I did experience some minor deviation from the sample solution in the lighting calibration step, but these were very small and likely due to rounding error or due to variations in the procedure for finding the center of the highlight (for example, I only considered pixels with intensities that were greater than 90% of the max value, the sample may have used something else, like greater than or equal to).

The last segment of the project, solving for the depths, caused me a great deal of difficulty. In hind sight it doesn't seem like it should have been so hard, but it took me a long time to figure out exactly what I was supposed to do. Part of the problem was that I was filling the M matrix and v vector without properly considering the order of the z vector. I also had issues early on with not properly checking all of the out of bounds and invalid number conditions. However, once I corrected for all of these issues, I was able to reconstruct 3d surfaces from all of the sample data sets.

Although I have not included an "owl" artifact here, I did generate an artifact from this sample data set. I noticed a very interesting artifact associated with this sample. The owl has a specular highlight in its eye. This may be painted on or it may be a reflective surface, but either way it is interpreted by this algorithm as a high-point. The resulting 3D geometry shows a sharp spike located at this highlight. A better solution might blur the images to eliminate some of these color changes (which are interpreted as depth changes). The ideal surface for this method would be uniform in color. In this way any intensity changes in the image would be due to angle, depth, or shadow.