3D Scanning System using Structured Light

Visgraf - 2003

This page presents the 3D scanning system developed here at Visgraf - Impa, Brazil. Here you will find a brief explanation of the method used to recover the shape of objects.

What is 3D scanning?

3D scanning is the procedure that allows us to recover the shape of objects, scenes or people. There are many different ways to scan things, but the one described here uses a structured light technique. Usually, the scan result consists on a 3D computer model of the real object.

What is structured light?

Structured light methods seek to retrieve points of the scanned object surface in order to reconstruct a cloud points in 3D space. The idea is to project stripes of different widths on the object and acquire images of this scene in order to determine the stripe boundaries. These boundaries define a set of points over the object surface that can be calculate using an active triangulation method and camera (and projector) calibration. You can read more about structured light here.

The pipeline

Calibration: finding the camera and projector calibration parameters

Image capturing: acquiring images of the object with pattern illumination

Stripe determination: finding out each stripe code

Active triangulation : calculating the intersection of each stripe with the image plane

Outlier removal: removing points with wrong coordinates

Our system

We implemented a system that has three major modules. The first one consists on a calibration software that allows the user to determine the 3D position in space for the camera and the projector used for scan and save the calibratrion results. The second module is a set of scripts (currently only working under Linux) that allows the user to quick scan objects using a step-by-step approach. The third module implements the stripe determination, the active triangulation procedure and the coordinate recovering steps. The model can be viewed as a points cloud.


The calibration module documentation is avaiable here. The triangulation module documentation can be found here. The system works under Linux (tested under Redhat 7.3). The calibration and the triangulation modules also work under Windows but the scan scripts are still not supported.

You can see the scan script README here.

Last update December 12, 2003