ENGN2911I (Spring 2008)

3D Photography and Geometry Processing

Assignments

Assignment 1: 3D Photography with Planar Shadows

The goal of this assignment is to build an inexpensive, yet accurate,
3D scanner using household items and a camera. Specifically, we'll
implement the "desktop scanner" originally proposed by
Jean-Yves Bouguet and Pietro Perona, composed of five items: a camera,
a point-like light source, a stick, two planar surfaces, and a
checkerboard. By waving the stick in front of the light source, the
user can cast planar shadows into the scene. Afterward, the depth at
each pixel can then be recovered using simple geometric reasoning. In
the course of completing this homework, you will develop a good
understanding of camera calibration, Euclidean coordinate
transformations, manipulation of implicit and parametric
representations of lines and planes, and efficient numerical methods
for solving least-squares problems.

The goal of this assignment is to build a 3D scanner using one or more
digital cameras and a single projector. While the "desktop
scanner" implemented in the previous assignment is inexpensive,
it has limited practical utility. The scanning process requires manual
manipulation of the stick, and the time required to sweep the shadow
plane across the scene limits the system to reconstructing static
objects. Manual translation can be eliminated by using a digital
projector to sequentially display patterns (e.g., a single stipe
translated over time). Furthermore, various structured light
illumination sequences, consisting of a series of projected images,
can be used to efficiently solve for the camera pixel to projector
column (or row) correspondences.

This assignment will introduce basic geometry processing
for polygonal meshes. After completing this homework you should have a
good understanding of the type of algorithms, data structures, and
coding practices expected for this course – especially with regard
to the Java framework we'll provide. In particular, you'll be
implementing a variety of fundamental mesh operations, including:
selection, deletion, and classification of vertices, edges, and
faces. The methods developed in this problem set will form the
foundation for further assignments focusing on more advanced topics
such as compression and filtering.