3D Imaging, Modeling, Processing, Visualization and Transmission
Simple, Accurate, and Robust Projector-Camera Calibration
Daniel Moreno and Gabriel Taubin
Structured-light systems are simple and effective tools to acquire 3D models. Built with off-the-shelf components, a data projector and a camera, they are easy to deploy and compare in precision with expensive laser scanners. But such a high precision is only possible if camera and projector are both accurately calibrated. Robust calibration methods are well established for cameras but, while cameras and projectors can both be described with the same mathematical model, it is not clear how to adapt these methods to projectors. In consequence, many of the proposed projector calibration techniques make use of a simplified model, neglecting lens distortion, resulting in loss of precision. In this paper, we present a novel method to estimate the image coordinates of 3D points in the projector image plane. The method relies on an uncalibrated camera and makes use of local homographies to reach sub-pixel precision. As a result, any camera model can be used to describe the projector, including the extended pinhole model with radial and tangential distortion coefficients, or even those with more complex lens distortion models.
Sample system setupA typical setup of a structured light system used for 3D scanning. The system is composed of a data projector (left) and camera (right). In this case we used a Mitsubishi XD300U DLP projector and a Canon EOS Rebel XSi camera. The statue at the front is the target object to be scanned.
Calibration SoftwareAs result of this work, and to make structured-light 3D more widely available, a Camera-Projector Calibration software was developed and is available to download and try. Sample calibration images are provided too. The software allow the user calibrate a projector-camera system through a user-friendy GUI. The software is tested on Microsoft Windows 7, Debian GNU/Linux, and Mac OS X Mountain Lion. However, it should be easy to build and run on any platform where Qt and OpenCV libraries are available.
Local homographiesA novel contribution of this work is the concept of local homographies to individually translate each checkerboard corner from the camera plane to the projector plane. The idea of using homographies itself is not new but other works use a single global homography to translate all the available corners, we disregard this idea because it cannot cope with the lens distortion observed in projector lenses. In change, we propose to compute a local homography using a small neighbordhood around each corner. Each local homography is valid only in its neighborhood and it is used to translate only one corner. This way all corners are transferred from camera to projector plane completely independently of each other allowing the full mapping from camera to projector coordinates to be non-linear as is the case in the presence of lens distortion.
ResultsWe have calibrated a structured light system with the software in this project and with the software from Projector-Camera Calibration Toolbox referred to as "procamcalib". The table below summarizes the results showing that the average reprojection error of our method is lower, meaning that is a more calibration. The table includes also the error of the calibration where all the local homographies were replaced with a single global homography.
|Proposed w/global homography||0.2176|
The figures below show a comparison of the accuracy of a 3D model scanned using a system calibrated with the software here and with a commercial 3D scanner (left), and a model scanned with the same system and converted into a mesh using SSD (right). The comparison with the laser scanner shows that the Hausdorff distance is less than 0.5 mm in most of the model, it is larger for the parts that were in shadow but this can be fixed by taking additional views of the object. The mesh reconstruction is not quantitative but to show that small details present in the object were preserved.