CSCI 497P/597P Project 4

Overview

In this short assignment, you will implement calibrated photometric stereo as discussed in Lecture 20.

Tasks

  1. Run download.sh (or download the file linked within) and extract its contents into the data/ directory.

  2. Implement calibrated_gray, which takes a list of images and a matrix of light vectors and returns surface normals and albedos for the scene.

  3. Implement calibrated_color, which handles color images. You are free to handle the 3-channel case how you like. One approach given in the lecture slides is to solve for N using a single channel or grayscale image then solve for each albedo channel with N fixed. Another approach would be to compute normals and albedos for all three channels and average the normals together.

Results

You should achieve results on cat, lizard, and tentacle_rendered similar to the ones shown here.

Extra Credit

There is no 597-only component of this project. Extra credit is available for implementing extensions, including:

Submission

  1. Make sure that running python ps.py generates at least the images corresponding to those shown in the Results section above.
  2. If you did any extra credit, describe what you did in readme.txt. Running your code as above should also produce any relevant result images. If you use any input data not provided via download.sh, include it in your repository.
  3. Include the number of hours spent in hours.txt.
  4. Push all changes to github.

Grading

This assignment is out of 30 points. 20 points will be awarded for grayscale results, and 10 points for working color results. Deductions may be made for missing results, coding style, submission mechanics.