Calibration of 2D Cameras for 3D Inspection
- Created: Wednesday, 01 May 2013
The camera will usually have special dedicated 3D hardware to extract the laser line profile from the entire 2D image and produce what is called a 3D profile. The 3D profile is a collection of points representing vertical (height) depth positions.
This collection of data is coming out of the camera as raw un-calibrated height data. Then, the data has to be mathematically transformed into real measurements such as inches or millimeters, to produce real 3D values (or height values).
The most common way of transforming raw data coming from a 2D camera is a calibration table or matrix. The matrix can be in the form of a Look Up Table (LUT) or a mathematical formula. We have the choice depending on the precision we want.
In order to obtain real 3D measurements, the calibration matrix must be filled with numbers that will transform the raw profile points into real measurements. There are several ways to fill this calibration matrix. A good approach would be to place a calibrated object in front of the camera, take some pictures and transform the raw data into real 3D measurement by simply applying a mathematical multiplication of the raw data to obtain real measurements.
Consider, for example, a 3D camera that has a vertical resolution of 12 bits and 480 lines. We want to calibrate a field of view of 300 mm over a vertical span of 12 bits (0 to 4095).
The laser line will be cut into 480 lines (using a VGA sensor). The vertical resolution is much higher because we can apply sub pixel interpolation. By moving a flat target in front of the camera at several places we would obtain the transfer graph shown in Figure 4. The raw data generated by the camera is obtained by several discrete movements of a target at known positions. (Note: The graph shown here is only an example and does not represent all 3D systems.) By using these curves, we can apply to the raw data the multiplying factors obtained from these curves to output the real measurements. This is known as an LUT (Look Up Table).
A matrix table will produce better results than a linear table because it will take into account the lateral distortions and angles (camera rotation), optical distortions (lens issues), and geometrical mounting distortions (baseline etc.) When a matrix is used, interpolation between known values is a good way of filling the matrix to avoid many calibration steps. The other possibility is to use a math formula to fill the matrix, but this method is more complicated and could produce bad results if the mathematical model is not good enough.
Why Use 2D Cameras For 3D Inspection?
Using 2D cameras to produce a 3D vision system is suitable for a number of applications because of the many options the 2D camera world has to offer. By combining additional dedicated 3D hardware technology with a 2D camera, real 3D vision systems are obtained at low cost and remain easy to use in any factory. In other words, if a specialized 3D camera is designed, it will be custom and may require specialized support. By using a standard 2D camera as the main component of the system, more options are available to the user in terms of resolution, speed, and cost.
Additionally, laser triangulation is easy to implement at a minimal cost. Other techniques are more technically complicated and simply cost more. Of course, more sophisticated techniques may yield better results for certain applications, but the difference may not be significant enough to justify the extra cost and hassle.