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.

[released 02/13/2012] read more...

To visualize the colored point clouds generated by your implementation of this method, download the J3DP application from the TOOLS page.

Assignment 2: Structured Lighting for 3D Scanning

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.

Assignment 3: Merging Point Clouds

The triangulation-based 3D scanning methods built in previous assignments are able to produce dense point clouds. However, only points on the front-facing side of the object can be reconstructed (i.e., on the same side as the projector and camera). To produce a complete representation, multiple scans taken from various points of view must be merged to produce a point cloud with sufficient sampling density over the whole visible surface of the object being scanned. The main challenge to merging multiple scans is that each scan is produced with respect to a different coordinate system. As a result, the rigid body transformations needed to register the scans with respect to each other must be estimated. After establishing some true point correspondences you will compute the rigid body transformations using the closed form solution discused in class. Once the points clouds are in approximate registration, you will use ICP to iteratively refine the rigid body transformation between two point clouds.