Acquisition Overview

- Frame - Image object
- Profile - Laser triangulation profile
- RangeMap - Accumulation of laser triangulation profiles
- COP - Organized Cloud of Points
- ZMap - Projection of a COP on the XY plane
- Mesh - 3D representation based on a list of triangles

A Frame represents an image taken by a camera. In this kind of 3D acquisition, the images correspond to the projection of the laser on the object to be digitized.

A common camera - laser setup configuration can be seen in the next figure.

An example of how the laser stripe shape varies as a function of the object's height can be seen in the following figure.

A Profile contains the information of the laser position within a Frame.

A RangeMap is defined as the composition of a surface consisting of several consecutive Profiles,

acquired by equally spaced displacements of the part under the laser. Equivalently, the part could be static while the camera - laser set moves.

The following figures describe the process of building a RangeMap. For each Frame from the camera, a Profile contains the pixel coordinates of each laser stripe. The accumulation of different Profiles (moving the scanned part under the laser) results in a RangeMap, containing 3D information of scanned part's surface.

Any RangeMap can be represented as a bidimensional image encoding the *g* coordinate as gray level values (see the following figure). Each column of the image represents data from a single Profile.

Depending on the acquisition technique or the 3D camera used, the profiles will be arranged in rows, instead of columns.

A COP consists on a set of organized 3D points. Unlike the rangemaps, the cop values correspond to metric coordinates. COP Object consists on three planes, one for each metric coordinate (x, y and, z). Each COP plane consists on a bidimensional grid. The COP object assumes that neighbours on the grid are neighbours on the 3D Space. So, if two points are neighbours in the COP structure, there exists a triangle that connects them in the 3D space.

Although no linear relation exists between pixels on a range map, and 3D points on a COP, an approximation can be done to generate COP without any calibration.

- Xcop = factorU × Y
- Ycop = factorV × X
- Zcop = factorG × RangeMap(X,Y)

See the section Rough calibration by using 3 linear factors for more information how to configure an acquisition system with 3 factors

The cop coordinate Xcop depends on the range map coordinate Y instead of X. Similar with Ycop (see the following picture).

This linear assumption is not useful to get accurate reconstructions. In that case, the Metric calibration is recommended.

3DExpress provides tools for the correction of projective distortion. See section Calibration of the rangemap data for more information.

The ZMap consists on a planar projection of COP onto the z plane. 3DExpress transforms each COP element to the ZMap using the following relation:

- Y
_{ZMap}= round((height-1)×(X_{cop}- x_{min})/(x_{max}- x_{min})) - X
_{ZMap}= round((width-1)×(Y_{cop}- y_{min})/(y_{max}- y_{min})) - ZMap(X, Y) = Z
_{cop}

- Warning
- ZMap axes naming does not correspond directly to 3D coordinate axes. Y ZMap axis is related to the vertical axis, that axis corresponds to the X-axis on the 3D coordinate system, so, the motion axis.

A ZMap object internally contains a list of factors:

- x
_{min}: minimum x-coordinate of the associated COP - x
_{max}: maximum x-coordinate of the associated COP - y
_{min}: minimum y-coordinate of the associated COP - y
_{max}: maximum y-coordinate of the associated COP - width: Total number of columns of the ZMap
- height: Total number of rows of the ZMap

Although the ZMap only contains metric information of the z-coordinate, metric information along x, and y axis can be extracted using ZMapFactors as follows:

- X
_{metric}= x_{min}+ Y_{ZMap}×(x_{max}- x_{min})/(height-1) - Y
_{metric}= y_{min}+ X_{ZMap}×(y_{max}- y_{min})/(width-1)

One characteristic of the ZMap is the constant ratio pixel/metric units. So, the metric distance between consecutive pixels along a main axis is always constant.

This constant ratio can be computed from the ZMapFactors:

- ratioX = (x
_{max}- x_{min})/ (height - 1) - ratioY = (y
_{max}- y_{min})/ (width - 1)

The ZMap has several advantages compared with the typical range map:

- Remove effects of perspective distortion present on a Range Map
- Remove the effects of Range Map distortion due to scanning resolution for laser scanning systems
- Allows to perform 3D measures with 2D libraries
- Simple direct proportional relation between pixels and X,Y metric units
- Z directly in metric units

The following figure displays the same object in 3 different formats: a typical Range Map, a ZMap, and a ZMap after forcing the top plane parallel to plane Z.

Range Map | Direct ZMap | ZMap after COP orientation |
---|

The range map is affected by several reasons: different acquisition resolution on X and Y axis, projective distortion, and the acquisition of the object not being aligned parallel to the camera sensor. With all this deformations it is difficult to compute metric distances over the range map.

The ZMap solves all these deformations. Metric coordinates of each pixel can be determined by using the ZMapFactors.

In addition, if before the ZMap generation, the COP is correctly oriented, it is possible to generate a ZMap aligned with a reference plane. After that, 3D measures can be computed over the ZMap by using standard 2D libraries (like region growing, diameter computation, etc). The right image displays a ZMap where holes are perfectly rounded regardless of the camera orientation. Using this image, it is easy to compute the metric diameter of the hole. It is only required to multiply this value with the metric ratio. (see Forcing an equal metric ratio in both axes and Ratio Pixel/Metric units sections for more information).

In case of laser tilted it is recommended to use the Fast mode, as the COP can contain artifial triangles. Alternative, user can filter these triangles before ZMap creating using the function sal3d::COP::filterTrianglePerimeter.

In case of Fast ZMap generation, during the creation of the ZMap from a COP, the ZMap could present some black lines (see following picture). These lines correspond to a set of undefined points. This problem appears when no point of the COP object is mapped on those ZMap pixel positions. These undefined points are represented as NaN values on the ZMap. In general, when these empty points appears on the ZMap it means that we are asking for more resolution than the resolution present on the COP.

These lines can be avoided by reducing the resolution of the ZMap, i.e., by choosing a smaller height and width in the ZMapFactors (see previous figure b).

In addition, the ZMap proportions depends on its factors. As the predefined values depends on the resolution on x and y axis during the acquisition, not always both axis have the same proportions. So, ZMaps could appear different scaled in both axis.

In order to get a ZMap with the same ratio pixels/metric units on both axis, user must take care on the following equation:

(x_{max} - x_{min}) * (width - 1) = (y_{max} - y_{min})*(height - 1)

Structure defining a surface composed of vertices and triangles.

Despite in SAL3D there are not a lof of functions to process Mesh data, it can be used as input and/our output objects.

It is possible to create Meshes from a single COP, or for multiple COPs (using the SAL3D integrator tool).

In addition, using the Mesh Import tool is possible to create COPs and ZMaps from a given Mesh object.

Generated on Wed Jul 27 2016 15:36:07 for by 1.8.3.1