Patent Description:
Optical phase profilometry systems have been employed to accurately measure and obtain precision dimensional information relative to a surface object. However, some new electronic assemblies include components with reflective specular surfaces. Traditional systems, which are generally configured to measure diffuse, non-reflective surfaces, have trouble obtaining precise dimensional information for such components. Additionally, certain technologies are reducing in size (e.g. circuit boards and components and/or device thereupon) and requiring higher magnification and higher resolution optics in order to obtain accurate dimensional information. Traditional optical metrology systems experience a variety of measurement errors from a variety of factors as the size and surface reflectivity of applications advance and change. <CIT> Al discloses the measurement of the shape of an object by two structured light sensors each consisting of a projector and a camera wherein the point cloud data is combined based on reliability of the data which is calculated based on image brightness.

As the precision of dimensional information for such components becomes more and more vital to various industries and processes it becomes more and more important to accurately measure and obtain such information and to correct for the various causes of measurement error in the measured surface profile.

The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.

An optical phase profilometry system includes a first operative coaxial camera-projector pair aligned at a first angle relative to a target surface that projects a first illumination on the target surface and a second operative coaxial camera-projector pair aligned at a second angle relative to the target surface that projects a second illumination on the target surface. Wherein the first and second angles are equal and opposite to one another relative to the target surface such that the second operative coaxial camera-projector pair is configured to capture a first reflection from the first illumination and the first operative coaxial camera-projector pair is configured to capture a second reflection from the second illumination. The optical phase profilometry system further includes a controller configured to, based on the captured first and second reflections, generate a first and second estimation of the target surface and combine them to generate a dimensional profile of the target surface.

Optical phase profilometry systems are often employed in various industries and processes to obtain precision dimensional information relative to a surface or an object. For instance, these systems can be used to measure the height and position of various components on an objects surface. In the electronics industry, for example, many electronic assemblies include a variety of components and/or devices mounted on circuit boards. To ensure correct dimensions and placement of such components and/or devices, illumination sources (e.g. a projector) project a patterned illumination onto a target surface or object. The patterned illumination, which is reflected from the target surface or object, is captured by an imaging system (e.g. a camera) viewing the target surface at a known angle relative to the illumination angle (e.g. triangulation angle). The optical phase profilometry system calculates the dimensions of the target surface or object by measuring the phase or position of the projected illumination at a particular point of the image (e.g. pixel) captured by the imaging system and the geometry of the sensor.

In a typical optical phase profilometry system, it is common to have a single projector illuminating the surface with a structured pattern, and multiple oblique cameras (i.e. cameras placed at an angle oblique to the projector relative to the surface) observing the surface. Or, the opposite, but equivalent structure, a single camera is used that observes the surface that is illuminated by multiple oblique projectors (i.e. projectors placed at an angle oblique to the camera relative to the surface).

An estimate of the surface to be measured (e.g. a point cloud) is typically generated independently from each camera-projector pair, and then these estimates are averaged together to form an approximate reconstruction of the surface. Commonly the estimates may be formed by projecting sinusoidal fringes onto the surface and estimating the phases of the sinusoid at each pixel in the image.

<FIG> is a diagrammatic view showing one example of a typical optical phase profilometry system <NUM>. System <NUM> includes projector <NUM>, oblique camera <NUM>, oblique camera <NUM>, illumination <NUM>, surface <NUM>, reflection <NUM> and reflection <NUM>. As described above, system <NUM> has a single projector <NUM> and multiple oblique cameras <NUM> and <NUM>. Projector <NUM> projects illumination <NUM> onto surface <NUM> which is reflected as reflections <NUM> and <NUM> which are captured by multiple oblique cameras <NUM> and <NUM>. While <FIG> shows a single projector/multiple oblique camera configuration, the equivalent, but opposite configuration, as described above, could also be used in a typical phase profilometry system wherein a single camera observes a surface onto which multiple oblique projectors project an illumination.

These typical systems have a number of limitations, particularly when observing an object having specular surfaces and/or challenging surface profiles (e.g. "rounded" and/or "curved" reflective surfaces, tilted target surface, variations in reflectance, etc.).

One challenge relates to measurement inaccuracies due to specular reflections. During optical inspection it is common to encounter a situation in which there is a glint (i.e. a bright specular reflection) at some location on the target surface from one imaging system's point of view. Glints occur when the surface normal of a highly reflective surface bisects the angle defined by the camera-projector pair. Because of the non-zero width of the imaging system's point spread function, which is a practical reality in imaging optics, used by optical phase profilometry, the phase estimate at neighboring pixels may be distorted by the phase observed at the glint since the reflection at the glint is much stronger than that of neighboring points on the surface. This can result in inaccurate points being added to that phase profilometry system's point cloud representation of the test surface.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system <NUM>. <FIG> depicts only one oblique camera's point of view. System <NUM> includes illumination <NUM>, target surface <NUM>, reflection <NUM>, glint <NUM>, actual surface point <NUM>, erroneous surface point <NUM>, projector <NUM> and first oblique camera <NUM>. As can be seen in <FIG>, projector <NUM> projects illumination <NUM> onto target surface <NUM> which is reflected as reflection <NUM> towards and captured by first oblique camera <NUM>. However, target surface <NUM> contains at least some specular portion which causes glint <NUM> to occur as illumination <NUM> reaches target surface <NUM>. Due to the point spread function of camera <NUM> image properties and the strength of the reflection glint <NUM>, phase information of illumination <NUM> appears in camera <NUM>'s image of surface point <NUM>. Since the information that camera <NUM> receives from surface point <NUM> via reflection <NUM> is a combination of phase information of surface point <NUM> and glint <NUM>, the reconstructed point of surface point <NUM> will be inaccurately measured. As shown in <FIG>, measure position surface point of camera <NUM> is moved along the ray of reflection <NUM> in the direction of glint <NUM>, causing, for example, an erroneous surface point <NUM>.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system <NUM>. <FIG> depicts the point of view of the other oblique camera of system <NUM> (opposite to <FIG>). System <NUM> includes illumination <NUM>, target surface <NUM>, reflection <NUM>, reconstructed surface point <NUM>, projector <NUM> and second oblique camera <NUM>. As can be seen in <FIG>, projector <NUM> projects illumination <NUM> onto target surface <NUM> which is reflected as reflection <NUM> towards and captured by second oblique camera <NUM>. However, unlike in <FIG>, no glint occurs near surface point <NUM> from second oblique camera <NUM>'s point of view. Thus reconstructed surface point <NUM> of camera <NUM> is an accurate representation of the actual surface point.

However, while second oblique camera <NUM> accurately reconstructs the surface point, because, as described above, the estimates (e.g. point clouds) generated by both cameras <NUM> and <NUM> are combined during reconstruction of the final surface estimate of target surface <NUM>, there will be an error due to the inaccurate point (<NUM>) measured by first oblique camera <NUM>. The final surface estimate, therefore, will be biased by the error in first oblique camera <NUM>'s point cloud.

A similar effect as that described in <FIG> can occur when there is any intensity gradient and/or reflectance gradient (e.g. variation in brightness) on the target surface. Due to the point spread function of the imaging optics (e.g. cameras <NUM> and <NUM>), the phase at a darker point will be affected by the phase at a nearby brighter point. This can lead to inaccuracies in the final reconstruction (e.g. the final reconstruction will be biased towards the brighter point along the respective reflection (imaging system) ray).

<FIG> is a diagrammatic view showing one example of an optical inspection environment <NUM>. Environment <NUM> includes projection <NUM>, reflection <NUM>, target surface <NUM>, arrow <NUM> and measured surface point <NUM>. Target surface <NUM> has an intensity and/or reflectance gradient, from "brighter" to "less-bright," left to right, as indicated by arrow <NUM>. Generally, this means that target surface <NUM> is more to less reflective and/or more to less specular from left to right. Projection <NUM> is projected, by a projector or other illumination source, onto target surface <NUM> and reflected as reflection <NUM> which is captured by a camera or other imaging system. However, because of the gradient, the camera will decode the height as lower than the actual surface height, as indicated by measured surface point <NUM>, as the increased brightness on the left of target <NUM> biases measured surface point <NUM> towards the brighter portion of target <NUM>, along the reflection (imaging system) ray. Thus, the measurement output of the camera will be erroneous. This error tends to occur when the normal (e.g. perpendicular) of surface <NUM> bisects the angle between projection <NUM> and reflection <NUM>.

<FIG> is a diagrammatic view showing one example of an optical inspection environment <NUM>. Environment <NUM> includes projection <NUM>, reflection <NUM>, target surface <NUM>, arrow <NUM> and measured surface point <NUM>. Environment <NUM> is similar to environment <NUM> except that projection <NUM> is coming from the right side ("less-bright side"/less specular side) of target surface <NUM> whereas projection <NUM> was coming from the left side ("brighter side"/more specular side) of target surface <NUM>. Target surface <NUM> has an intensity and/or reflectance gradient, from "brighter" to "less-bright," left to right, as indicated by arrow <NUM>. Generally, this means that target surface <NUM> is more to less reflective and/or more to less specular from left to right. Projection <NUM> is projected, by a projector or other illumination source, onto target surface <NUM> and reflected as reflection <NUM> which is captured by a camera or other imaging system. However, because of the gradient, the camera will decode the height as higher than the actual surface height, as indicated by measured surface point <NUM>, as the increased brightness on the left of target <NUM> biases measured surface point <NUM> towards the brighter portion of target <NUM>, along the reflection (imaging system) ray. Thus, the measurement output of the camera will be erroneous. This error tends to occur when the normal (e.g. perpendicular) of surface <NUM> bisects the angle between projection <NUM> and reflection <NUM>.

To overcome the problems described above, a system using multiple coaxial illumination source/imaging system (e.g. projector/camera) pairs with a counterposed channel configuration is used.

For purposes of clarity, it is to be understood that the term "channel" refers to a specific illumination source-imaging system pair and the term "counterposed channels" refers to a pair of channels that are identical except that the illumination source and imaging system locations are interchanged. It is also to be understood that the term "channel" can comprise an illumination source from one operative pair (e.g. operative coaxial imaging system-illumination source pair) and an imaging system from another operative pair. It also to be understood that the term "channel" can comprise a camera from a first camera-projector pair and a projector from a second camera-projector pair.

<FIG> is a diagrammatic view showing one example of an operative coaxial imaging system-illumination source pair. System <NUM> includes illumination source <NUM>, imaging system <NUM>, beam splitter <NUM>, illumination <NUM>, target surface <NUM> and reflection <NUM>. Illumination source <NUM> (e.g. projector) projects illumination towards target surface <NUM> and hits beam splitter <NUM>. A portion of illumination <NUM> continues towards target surface <NUM> and is reflected back towards beam splitter <NUM> and is reflected towards imaging system <NUM> as reflection <NUM>. By utilizing beam splitter <NUM>, system <NUM> is configured with illumination source <NUM> and imaging system <NUM> that share a common optical path. That is, illumination source <NUM> and imaging system <NUM> are approximately coaxial and effectively view target surface <NUM> from the same perspective/point of view.

Beam splitter <NUM>, which is shown as a plate beam splitter, placed at <NUM>° angle, consisting of a thin, flat glass plate that has been coated (e.g. half-silvered) on the surface facing towards illumination source <NUM>. Beam splitter <NUM> "splits" illumination <NUM> in half, with a portion continuing (e.g. transmitted) towards target surface <NUM> (as shown) while another portion is reflected (not shown in <FIG> for purposes of clarity), usually towards a reference surface (e.g. a mirror) in the field of view of imaging system <NUM> which will reflect a reference beam (back through beam splitter <NUM>) towards imaging system <NUM> (usually for purposes of recombining the split beam before it enters imaging system <NUM>). While also not shown in <FIG> for purposes of clarity, system <NUM> can also include a number of lenses (e.g. collimating lens, object lens, a compound lens assembly, a telecentric lens assembly etc.), apertures, sensors, additional beam splitters, mirrors, and any other suitable components and/or devices. Additionally, while a plate beam splitter is shown, other types of beam splitters could be used, for example, but not limited to, a cube beam splitter.

While shown separated from each other in <FIG> for purposes of illustration, illumination source <NUM> and imaging system <NUM> are an operative pair that can be contained within a single housing. For purposes of illustration, certain future descriptions will show each operative illumination source/imaging system pair as a single assembly, as depicted in <FIG>.

is a diagrammatic view showing one example of an operative coaxial illumination source/imaging system pair. <FIG> is a shorthand version of system <NUM> as shown in <FIG> and is similar to <FIG> and as such similar elements are numbered the same. System <NUM> includes operative illumination source/imaging system pair <NUM>, which includes, but is not shown by numeral, illumination source <NUM>, imaging system <NUM> and beam splitter <NUM>. System <NUM> further includes illumination <NUM>, target <NUM> and reflection <NUM>. While illumination <NUM> and reflection <NUM> share a line in <FIG> and <FIG> it is to be understood that it equally represents illumination <NUM> and reflection <NUM> as depicted by the arrows. Illumination source <NUM>, in one example, comprises a projector. Imaging system <NUM>, in one example, comprises a camera.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system <NUM>. System <NUM> includes first illumination source/imaging system operative pair <NUM> and second illumination source/imaging system operative pair <NUM>. Operative pairs <NUM> and <NUM> are coaxial pairs, as described above with reference to <FIG>. System <NUM> further includes target surface <NUM>, illuminations <NUM> and <NUM> and reflections <NUM> and <NUM>. The configuration (e.g. alignment geometry) shown in <FIG> utilizes two operative pairs <NUM> and <NUM>, each viewing target surface <NUM> from a different angle and forms two counterposed channels (as will be further described below).

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system <NUM>. <FIG> is similar to <FIG> and thus similar elements will be numbered similarly. <FIG> illustratively splits system <NUM> into their respective illumination and imaging components for purposes of illustrating the two counterposed channels formed by the configuration of system <NUM>. On the left, the illumination source in operative pair <NUM> projects illumination <NUM> onto target surface <NUM> which is reflected therefrom as reflection <NUM> and captured by the imaging system of operative pair <NUM>. This optical pathway (e.g. channel) (<NUM> and <NUM>) forms a first counterposed channel <NUM>.

On the right, the illumination source in operative pair <NUM> projects illumination <NUM> onto target surface <NUM> which is reflected therefrom as reflection <NUM> and captured by the imaging system of operative pair <NUM>. This optical pathway (e.g. channel) (<NUM> and <NUM>) forms a second counterposed channel <NUM>.

Using counterposed channels is advantageous. Both channels <NUM> and <NUM> observe/expose the same field of view and share the same relative angle between illumination and reflection, so there is no difference in optical coverage. More importantly, they are more robust in that they eliminate and/or reduce the measurement errors described earlier (<FIG>) in reference to the effects of the imaging systems' point spread functions in the presence of glints or intensity gradients. Specifically, when these errors occur in system <NUM>, the corresponding points from the two channels <NUM> and <NUM>' estimations (e.g. point clouds) move in nearly equal and opposite directions. By using an appropriate algorithm, channels <NUM> and <NUM>' estimations can be combined in such a way that the errors mostly and/or substantially cancel one another out. In this sense, the counterposed channels <NUM> and <NUM> are complementary to one another and are self-compensating. This is more fully illustrated in the Figures below.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. <FIG> is similar to <FIG> and thus similar features are numbered the same. System <NUM> includes operative illumination source/imaging system pair <NUM>, operative illumination source/imaging system pair <NUM>, surface target <NUM>, illumination <NUM> and reflection <NUM>, which form first counterposed channel <NUM>. System <NUM> further includes glint <NUM>, actual surface point <NUM> and erroneous surface point <NUM>. Similar to the phenomenon in <FIG>, glint <NUM> causes the imaging system of operative pair <NUM> to generate an erroneous surface point <NUM>. The actual surface point <NUM> is moved along the ray of reflection <NUM> in the direction of glint <NUM>.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. <FIG> is similar to <FIG> and thus similar features are numbered the same. System <NUM> includes operative illumination source/imaging system pair <NUM>, operative illumination source/imaging system pair <NUM>, surface target <NUM>, illumination <NUM> and reflection <NUM>, which form second counterposed channel <NUM>. System <NUM> further includes glint <NUM>, actual surface point <NUM> and reconstructed surface point <NUM>. Again here, glint <NUM> causes a measurement error. The imaging system of operative pair <NUM> generates an erroneous reconstructed surface point <NUM>. The actual surface point <NUM> is pulled along reflection <NUM> ray (just as the erroneous reconstructed surface points in <FIG> and <FIG>). However, because operative pairs <NUM> and <NUM> are coaxial, and because they are configured to form two counterposed channels, the error is oppositely equal and thus can be compensated for.

As discussed above, each of the counterposed channels <NUM> and <NUM> generates an estimation (point cloud) of target surface <NUM>. These estimations will contain errors resulting from the effect of the imaging systems' point spread functions in the presence of glints (e.g. <NUM>) or intensity gradients. However, because of counterposed channels <NUM> and <NUM> the errors in the reconstructed surface points <NUM> and <NUM> are equal and opposite along their respective rays of reflections <NUM> and <NUM> and thus can compensate for one another.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system <NUM>. System <NUM> includes operative pairs <NUM> and <NUM>, target surface <NUM>, illuminations <NUM> and <NUM>, reflections <NUM> and <NUM>, counterposed channels <NUM> and <NUM>, glint <NUM>, erroneous reconstructed surface points <NUM> and <NUM>, correctly reconstructed surface point <NUM> and arrows <NUM> and <NUM>. The error in reconstructed surface points <NUM> and <NUM> can be corrected to create reconstruction point <NUM> by moving the erroneous points <NUM> and <NUM> along their respective reflection rays <NUM> and <NUM>, as indicated by arrows <NUM> and <NUM>, until they intersect and define a new, more accurate representation of the surface target position. The direction of the reflection rays is derived, in one example, by mapping the imaging systems' pixel location within a field of view to the angle of reception using imaging system calibration techniques.

In another embodiment, it is possible to approximate the intersection of the erroneous reconstruction points of the counterposed channels with use of an algorithm. Speaking generally, the algorithm iteratively refines each respective estimation (point cloud) from the counterposed channels, successfully moving each point in small steps along its reflection ray (imaging system ray) towards the other point cloud.

<FIG> is a flowchart showing one example method of iterative joint point cloud refinement. Method <NUM> begins at block <NUM> where reconstructed surface points are generated in a first counterposed channel's point cloud and a second counterposed channel's point cloud along a target surface using an optical profilometry system. Surface points are reconstructed (estimated) for both the first and second counterposed channels' point clouds. In one example, an optical profilometry system such as system <NUM> is used.

The method continues at block <NUM> where, for each reconstructed surface point in the first channel's point cloud, reconstructed surface points in the second channel's point cloud near the respective reflection (imaging system) ray for each reconstructed surface point in the first channel's point cloud are identified. This identification step identifies a set of "candidate" points on the second channel's point cloud that are near to the chosen first channel's reconstructed surface point's reflection (imaging system) ray.

The method continues at block <NUM> where the projection of each of the near (candidate) points of the second channel's point cloud are calculated onto the first channel's reflection (imaging system) ray. In other words, the distance that each of the near (candidate) points of the second channel would be along the first channel's reflection (imaging system) ray is calculated. Or to put it another way, calculate where along the first channel's reflection (imaging system) ray where each of the near (candidate) points should be positioned.

The method continues at block <NUM> where the average projection (position) of each of the second channel's near (candidate) points calculated projections (positions) on the first channel's reflection (imaging system) ray is calculated. In other words, calculate the average position of the near points on the reflection ray.

The method continues at block <NUM> where the reconstructed surface point of the first channel is moved along its reflection (imaging system) ray a fraction of the distance to the calculated average position of the near (candidate) points on the reflection (imaging system) ray.

Method <NUM> continues at block <NUM> where, for each reconstructed surface point in the second channel's point cloud, reconstructed surface points in the first channel's point cloud near the respective reflection (imaging system) ray for each reconstructed surface point in the second channel's point cloud are identified. This identification step identifies a set of "candidate" points on the first channel's point cloud that are near the chosen second channel's reconstructed surface point's reflection (imaging system) ray.

Method <NUM> continue at block <NUM> where the projection of each of the near (candidate) points of the first channel's point cloud are calculated onto the second channel's reflection (imaging system) ray. In other words, the distance that each of the near (candidate) points of the first channel would be along the second channel's reflection (imaging system) ray would each of the near (candidate) points be.

The method continues at block <NUM> where the average projection (position) of each of the first channel's near (candidate) points calculated projections (positions) on the second channel's reflection (imaging system) ray is calculated. In other words, calculate the average position of the near points on the reflection ray.

The method continues at block <NUM> where the reconstructed surface point of the second channel is moved along its reflection (imaging system) ray a fraction of the distance to the calculated average position of the near (candidate) points on the reflection (imaging system) ray.

<FIG> is a diagrammatic view showing one iteration of method <NUM>. In particular, <FIG> depicts blocks <NUM>-<NUM>. Iteration <NUM> includes operative illumination source/imaging system <NUM>, reflection <NUM> (or reflection/imaging system ray) which forms a portion of first counterposed channel <NUM>, first channel surface point <NUM>, near (candidate) points <NUM>, average projection point <NUM>, relocated (refined) point <NUM> and arrow <NUM>. Near (candidate) points <NUM> that are near to reflection <NUM> are identified. Near points <NUM> average projection (position) point along reflection <NUM> is calculated as represented by <NUM>. Once average projection point <NUM> is calculated, relocated (refined) reconstruction point <NUM> is identified by moving recalculated surface point <NUM> along reflection <NUM> a fraction of the way towards average projection point <NUM> as indicated by arrow <NUM>.

<FIG> is a flowchart showing one example method of merging point clouds from counterposed channels. Method <NUM> begins at block <NUM> by generating, with an optical phase profilometry system having at least a first and second counterposed channel, a first and second point cloud. Wherein each the first and second counterposed channels generate the respective first and second point clouds. And, wherein, each the first and second point clouds have a plurality of surface points corresponding to a measured surface point along a target surface.

Method <NUM> continues at block <NUM> where the volume to be measured, corresponding to the target surface, is divided into a set of voxels. Method <NUM> continues at block <NUM> where for each surface point in each the first and second point cloud, the point's Signed Distance Function (SDF) and corresponding weights are added to the volume of voxels along each of the first and second counterposed channels' reflection (imaging system) rays. The signed distance is the distance from a point to a reference surface measured in a specified direction. For instance, elevation is the signed distance to sea level, with positive values for points above sea level and negative values for points below sea level. The Signed Distance Function (SDF) is the function that computes this distance for a specified point, in this case, the signed distance represents the distance from an individual voxel to a point in the point cloud.

Method <NUM> continues at block <NUM> where a surface profile map, corresponding to the target surface in the volume of voxels, is generated by identifying the level set (e.g. the theoretical zero-crossing) of the SDF for each the first and second point clouds.

<FIG> are diagrammatic views showing one example of merging point clouds from counterposed channels. More particularly, <FIG> illustrate one example of performing method <NUM>. It is to be understood that the volumes and voxels shown in <FIG> are 3D objects that define the whole measurement space of the optical phase profilometry system. For purposes of illustrative clarity, the volumes and voxels are shown in 2D.

<FIG> is a diagrammatic view showing one example of a point cloud corresponding to a first counterposed channel in a volume of voxels. Voxel volume <NUM> includes volume to be measured <NUM>, voxel(s) <NUM>, surface point(s) <NUM>, and reflection (imaging system) ray(s) <NUM>. Generally, voxel volume <NUM> shows volume to be measured <NUM>, having a plurality of voxels <NUM>, wherein a plurality of surface points <NUM>, with each respective point's SDF and corresponding weight along its respective reflection (imaging system) ray <NUM>, added to the volume to be measured <NUM>.

<FIG> is a diagrammatic view showing one example of a point cloud corresponding to a second counterposed channel in a volume of voxels. Voxel volume <NUM> includes volume to be measured <NUM>, voxel(s) <NUM>, surface point(s) <NUM>, and reflection (imaging system) ray(s) <NUM>. Generally, voxel volume <NUM> shows volume to be measured <NUM>, having a plurality of voxels <NUM>, wherein a plurality of surface points <NUM>, with each respective point's SDF and corresponding weight along its respective reflection (imaging system) ray <NUM> added to the volume to be measured <NUM>.

<FIG> is a diagrammatic view showing one example of merging point clouds from a first and second counterposed channel. Voxel volume <NUM> includes volume to be measured <NUM>, voxel(s) <NUM>, first counterposed channel reflection (imaging system) ray(s) <NUM>, second counterposed channel reflection (imaging system) ray(s) <NUM>, and target surface approximation <NUM>. Generally, voxel volume <NUM> shows a target surface profile map that is generated by identifying the level set (e.g. the theoretical zero-crossing) of the SDF for each the first and second point clouds, as is represented by target surface approximation <NUM>, which corresponds to a target surface in volume to be measured <NUM>.

Another particular challenge for typical optical phase profilometry systems is the accurate measurement of target surfaces and/or objects having rounded/spherical profiles (e.g. a ball). Particularly when these target surfaces and/or objects have specular surface portions which can cause glints.

As mentioned above, the typical optical phase profilometry system it is a common to have a single projector illuminating the surface with a structured pattern and multiple oblique cameras observing the surface. Or, the opposite, but equivalent configuration is used, with a single camera and two oblique projectors.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. System <NUM> includes first oblique projector <NUM>, second oblique projector <NUM>, camera <NUM>, spherical target <NUM>, projections <NUM> and <NUM>, first oblique projector measurement <NUM>, second oblique projector measurement <NUM> and height error <NUM>. System <NUM> suffers from the effects of the phenomenon described in reference to <FIG> and <FIG>, namely, measurement errors due to glints. As can be seen in <FIG>, first oblique projector <NUM> generates, in combination with camera <NUM>, measurement <NUM> which shows height error <NUM> on the top of spherical target <NUM> (e.g. a height divot error). Similarly, second oblique projector <NUM> generates, in combination with camera <NUM>, measurement <NUM> which shows height error <NUM> on the top of spherical target <NUM> (e.g. a height divot error). This error is caused by the occurrence of glints due to the combination of the oblique angle of each of the respective projectors and the point of view of the camera in combination with its point spread function, as described previously. Each respective projector is affected by glint from a different location on spherical target <NUM>. In triangulation systems, such as embodiments of the present invention, the measured location of a feature is perturbed by a glint. The magnitude of the perturbation is modulated by the product of two factors: <NUM>) the distance to the glint; and <NUM>) the Point Spread Function (PSF) of the glint. Thus, a plot of the perturbation tends to have a tilt over the localized region corresponding to the width of the PSF. We call this a "divot" because of its resemblance to the divot produced by a wayward golf swing.

<FIG> is a diagrammatic view showing one example of a generated three-dimensional profile of spherical target <NUM> using system <NUM>. As can be seen in profile <NUM>, height error <NUM> occurs, showing a "height divot error". As can be seen, there is a clear reduction in the height measurement, as reflected by height measurement units <NUM> at the top of spherical target <NUM> where it should be at the apex of its height. Compare, for example, the height readings at the outside <NUM> of target <NUM> as compared to the height readings at the area indicated as height error <NUM>.

This height divot error is not solved by using a single projector multiple oblique camera system, as will be shown in <FIG>.

<FIG> is a diagrammatic view showing one example of a three-dimensional profile of spherical target <NUM>. On the left is a measured Z height of target <NUM>, which shows the actual height profile of target <NUM>. As can be seen, target <NUM> is at the apex of its height at the center of the image (which corresponds to the top of target <NUM>) as is reflected by height measurement units <NUM>. On the right, however, is the three-dimensional profile of spherical target <NUM> generated by a single projector/two oblique camera system. As can be seen, height error <NUM> occurs at the center of the image (which corresponds to the top of target <NUM>) as is reflected by height measurement units <NUM>.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. System <NUM> includes operative coaxial illumination source/imaging system pair <NUM>, oblique operative coaxial illumination source/imaging system pairs <NUM> and <NUM>, spherical target <NUM> and channels <NUM>. System <NUM> is configured to eliminate or reduce measurement errors, such as those described in reference to <FIG>. In one example, the measurement errors due to glints are compensated for by the alignment geometry of system <NUM>, for example, the errors caused by glints tend to be nearly equal and opposite (and thus cancel each other out) when using the four channel alignment geometry (in which there are <NUM> pairs of counterposed channels). System <NUM> is configured, in one example, to have an alignment geometry that creates six channels (e.g. four diffuse channels [optical channels configured to capture diffuse reflections] and two specular channels [optical channels configured to capture specular reflections]). In one example, system <NUM> compensates for measurement errors caused by specular or partially specular targets and/or objects by creating an alignment geometry that is configured to capture both specular and diffuse reflections and thus compensate for the errors caused by either. This alignment geometry will be described in more detail in <FIG>.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. Specifically, <FIG> illustrates two of the six channels created by the alignment geometry of system <NUM>. The first channel is formed by projection <NUM> and reflection <NUM>. Projection <NUM> is projected by the illumination source of operative pair <NUM> which is reflected from target <NUM> as reflection <NUM> and captured by the imaging system of operative pair <NUM>. The second channel is formed by projection <NUM> and reflection <NUM>. Projection <NUM> is projected by the illumination source of operative pair <NUM> and reflected from target <NUM> as reflection <NUM> which is captured by the imaging system of operative pair <NUM>. The first and second channel form a first pair of counterposed channels.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. Specifically, <FIG> illustrates two of the six channels created by the alignment geometry of system <NUM>. The third channel is formed is formed by projection <NUM> and reflection <NUM>. Projection <NUM> is projected by the illumination source of operative pair <NUM> which is reflected from target <NUM> as reflection <NUM> and captured by the imaging system of operative pair <NUM>. The fourth channel is formed by projection <NUM> and reflection <NUM>. Projection <NUM> is projected by the illumination source of operative pair <NUM> and reflected from target <NUM> as reflection <NUM> which is captured by the imaging system of operative pair <NUM>. The third and fourth channels create a second pair of counterposed channels.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. Specifically, <FIG> illustrates the two of the six channels created by the alignment geometry of system <NUM>. The fifth channel is formed by projection <NUM> and reflection <NUM>. Projection <NUM> is projected by the illumination source of operative pair <NUM> which is reflected from target <NUM> as reflection <NUM> and captured by the imaging system of operative pair <NUM>. The sixth channel is formed by projection <NUM> and reflection <NUM>. Projection <NUM> is projected by the illumination source of operative pair <NUM> and reflected from target <NUM> as reflection <NUM> and captured by the imaging system of operative pair <NUM>.

In one example, the optical configurations of operative pairs <NUM>, <NUM> and <NUM> are telecentric. In one example, the lens assembly of operative pairs <NUM>, <NUM> and <NUM> comprise a multi-element/compound lens assembly with an entrance or exit pupil at infinity. A telecentric optical configuration ensure that the nominal projection directions (as represented by <NUM>, <NUM> and <NUM>) and reflection directions (as represented by <NUM>, <NUM> and <NUM>) are the same across the field of view of operative pairs <NUM>, <NUM> and <NUM>. With the projection and reflection angles equal across the field of view the advantage of counterposed channels is maintained in that the respective reflections for each channel is received by the respective imaging systems for each operative pair. In one example, illumination produced by the illumination sources enters the multi-element/compound telecentric lens assembly, becomes substantially parallel and thus highly concentrated as it exits the operative pair. Thus nearly all the light produced by the illumination source hits the target surface and the resulting reflection is captured by the imaging system.

<FIG> is a flowchart showing one example method of generating a dimensional profile of a target surface and/or object. Method <NUM> begins at block <NUM> where a first dimensional profile of a target surface and/or object is generated. This can be done by joint point cloud refinement as indicated by block <NUM>, merging point clouds from counterposed channels as indicated by block <NUM>, for example by using the SDF, and/or other <NUM>. Other <NUM> could include Method <NUM> and/or Method <NUM>. Other <NUM> could include a cross-section. Other <NUM> could include any other suitable technique for generating a dimensional profile of a target surface and/or object.

Method <NUM> continues at block <NUM> where a second dimensional profile of a target surface and/or object is generated. This can be done by joint point cloud refinement as indicated by block <NUM>, merging point clouds from counterposed channels as indicated by block <NUM>, for example by using the SDF, and/or other <NUM>. Other <NUM> could include Method <NUM> and/or Method <NUM>. Other <NUM> could include a cross-section. Other <NUM> could include any other suitable technique for generating a dimensional profile of a target surface and/or object.

Method <NUM> continues at block <NUM> where a third dimensional profile of a target surface and/or object is generated. This can be done by a comparison of the first and second dimensional profiles as indicated by block <NUM>. This can be done by a combination of the first and second dimensional profile as indicated by block <NUM>. This can be done by other techniques, as indicated by block <NUM>. For example, other <NUM> could include taking an average (e.g. a weighted average) of the first and second dimensional profiles. Other <NUM> could include any other suitable techniques for generating a third dimensional profile based on a first a second dimensional profile.

While a particular order of steps has been shown for illustrative purposes in <FIG>, it is to be understood that some or all of these steps can be performed in any number of orders including, but not limited to, simultaneously, concurrently, sequentially, non-concurrently, non-sequentially and any combinations thereof. No particular order of steps for Method <NUM> is to be implied by and/or construed from the illustration.

<FIG> are diagrammatic views showing one example of generating a dimensional profile of a target surface and/or object. More particularly, <FIG> illustrate some examples of performing steps of Method <NUM>.

<FIG> is a diagrammatic view showing one example of generating a dimensional profile of a target surface and/or object using iterative joint point cloud refinement. Dimensional profile <NUM> is a representation of dimensional profiles for a plurality of target objects <NUM>, here shown as spherical objects. Dimensional profile <NUM> displays the plurality of target objects' <NUM> dimensional information, including their y coordinate (e.g. length and/or width) measured in micrometers, their x coordinate (e.g. length and/or width) measured in micrometers and their height (e.g. z coordinate) as represented by <NUM>. Dimensional profile <NUM> is a cross-section of selected target objects as indicated by line <NUM>. Dimensional profile <NUM> displays selected target objects' <NUM> dimensional information, including their x coordinate (e.g. length and/or width) measured in micrometers and their height (e.g. z coordinate) as represented by <NUM>. Dimensional profiles <NUM> and/or <NUM>, in one example, could be generated by Method <NUM>.

<FIG> is a diagrammatic view showing one example of generating a dimensional profile of a target surface and/or object using merging point clouds from counterposed channels with the SDF. Dimensional profile <NUM> is a representation of dimensional profiles for a plurality of target objects <NUM>, here shown as spherical objects. Dimensional profile <NUM> displays the plurality of target objects' <NUM> dimensional information, including their y coordinate (e.g. length and/or width) measured in micrometers, their x coordinate (e.g. their length and/or width) measured in micrometers and their height (e.g. z coordinate) as represented by <NUM>. Dimensional profile <NUM> is a cross-section of selected target object as indicated by line <NUM>. Dimensional profile <NUM> displays selected target objects' <NUM> dimensional information, including their x coordinate (e.g. length and/or width) measured in micrometers and their height (e.g. z coordinate) as represented by <NUM>. Dimensional profiles <NUM> and/or <NUM>, in one example, could be generated by Method <NUM>.

According to the Scheimplug theorem, if an object plane is not normal to the optical axis, the image plane is also tilted. <FIG> is a diagrammatic view showing one example of the geometry of tiled object and image planes. Object <NUM> lying in plane <NUM> has normal <NUM> that is tilted at angle <NUM> to optical axis <NUM>. Ray bundle <NUM> enters lens <NUM> and is brought to a focus at image sensor <NUM> lying at angle <NUM> to the optical axis, which is denoted by theta (θ). Lens <NUM> is normal to the optical axis. According to the Scheimpflug theorem: <MAT>
where m is the magnification of the imaging system <NUM> and <NUM>° is the angle <NUM> in <FIG>.

If the magnification m is large, the tilt of the image plane required by the Scheimpflug theorem can be large. For instance, if m=<NUM>, we have theta <NUM>°. This required angle is well outside the usable range for typical imaging systems, especially those using microlenses.

Image plane tilt <NUM> can be substantially reduced by the introduction of a prism in the optical path, as taught in <CIT>. Unfortunately, the reduction of image plane tilt is attended by the introduction of various aberrations, especially astigmatism and lateral chromatic aberration. To avoid this problem, additional prisms may be introduced into the optical path, and the performance optimized by a lens design program, as is well-known in the art. In the preferred embodiment, three prisms are used for adequate control of aberrations, and at least two types of glass are used for control of lateral chromatic aberration, analogous to the need for two types of glass in an achromatic lens, as is well-known in the art. The number of prisms depends on the magnification, field of view, and obliquity, and can be chosen without departing from the scope of the invention as defined by the claims.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. System <NUM> includes lens <NUM>, focal plane <NUM>, emerging ray bundle <NUM>, and prism assembly <NUM>, which includes prisms <NUM>, <NUM>, <NUM> and wedge angles <NUM>, <NUM> and <NUM>. Light emerging from the rear surface of lens <NUM> is refracted by prism assembly <NUM>, and converges to focal plane <NUM>, which is almost normal to the optical axis.

In one example, system <NUM> allows for a high resolution and/or high magnification optical phase profilometer by reducing the required image sensor tilt angle (e.g. the Scheimpflug angle) with the use of multiple prisms (e.g. <NUM>, <NUM> and/or <NUM>) to compensate for, reduce and/or eliminate aberrations (e.g. chromatic aberration) as light passes through the imaging system and unto the focal plane. In one example, at least one of the prisms <NUM>, <NUM> and/or <NUM> comprises a different glass types than at least one of the other prisms. In another example each of the prisms <NUM>, <NUM> and <NUM> comprise a different glass type than each of the other prisms. In one example, prisms <NUM>, <NUM> and/or <NUM> comprise a wedge prism. In one example at least one of the prisms <NUM>, <NUM> and/or <NUM> comprise a different wedge angle than at least one of the other prisms. In one example, at least one of the prisms <NUM>, <NUM> and/or <NUM> has a wedge angle (e.g. wedge apex angle) towards a different direction than at least one of the other prisms. In one example, prism assembly <NUM> comprises a first prism (e.g. <NUM>) having a wedge angle (e.g. wedge apex angle <NUM>) towards a first direction, a second prism (e.g. <NUM>) having a wedge angle (e.g. wedge apex angle <NUM>) towards a second direction and third prism (e.g. <NUM>) having a wedge angle (e.g. wedge apex angle <NUM>) towards the second direction. While three prisms are shown in <FIG>, any number of prisms can be used, comprising any number of materials and having a wedge angle toward any number of directions.

Another challenge with typical optical phase profilometry systems are measurement errors due to changes to the sensor or the sensor' s environment. For example, thermal scaling, mechanical drift, along with a variety of other factors, can cause measurement output errors. As mentioned above, typical optical phase profilometry systems have multiple imaging paths that view the target surface from different viewpoints (e.g. single camera/multiple projector, single projector/multiple camera, etc.). Each camera/projector pair forms a channel (imaging/optical path) and provides unique perspective of the surface to be measured. The surface is often reconstructed separately by each channel (e.g. in a point cloud) and these reconstructions are combined into a final dimensional profile (e.g. height map) of the target surface.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. System <NUM> includes camera <NUM>, projectors <NUM> and <NUM>, target surface <NUM>, projections <NUM> and <NUM> and reflection <NUM>. Projection <NUM> and reflection <NUM> form a first channel <NUM> and projection <NUM> and reflection <NUM> form a second channel <NUM>. While reflection <NUM> is shown a single line for purposes of illustrative clarity in <FIG>, it is to be understood that the projection projected by projector <NUM> creates a separate reflection than the projection projected by projector <NUM>. From each the first and second channels a point cloud is generated that comprises a dimensional reconstruction of target surface <NUM>. First channel <NUM> generates a first point cloud <NUM> and second channel <NUM> generates a second point cloud <NUM>. Because of the alignment geometry of projectors <NUM> and <NUM> and the relative height of target surface <NUM>, there are blind spots/shadows in each point cloud, as indicated by <NUM> and <NUM>. Thus, the point clouds are combined to generate a complete dimensional profile of target surface <NUM> as indicated by <NUM>.

Combining these separate point clouds requires that they be well aligned with one another, which typically is ensured through the imaging sensor's calibration procedure. However, over time, changes to the sensor (e.g. thermal scaling, mechanical drift, etc.), as mentioned above, can cause the individual point clouds to shift (e.g. become misaligned). In such cases, the final combined dimensional profile may end up being less accurate and repeatable than it would have been had the channels still been in precise alignment.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. <FIG> is similar to <FIG> and thus similar elements are numbered similarly. <FIG> shows projector <NUM> in a misaligned position (e.g. shifted) as represented by precise alignment <NUM> in comparison to the actual alignment of projector <NUM>. This causes a measurement error as indicated by surface point <NUM>. This misalignment causes second channel <NUM>'s point cloud <NUM> to shift with respect to first channel <NUM>'s point cloud <NUM>. Combination of point cloud <NUM> and <NUM> results in an erroneous dimensional profile of target surface <NUM>, as indicated by <NUM>.

These types of errors could be resolved by recalibrating the sensor, for example by following a field calibration procedure. However, these field calibration procedures often require the optical phase profilometry system to stop making measurements in order for the system to be worked on by an operator. This can be very disruptive to production and lower the throughput of an online inspection operation. A less disruptive technique is needed. One example of such a technique is provided below.

By using a method of dynamic compensation, errors can often be resolved on the fly (e.g. as the system continues to operate). The relative errors between the individual point clouds can be estimated dynamically and then compensated for before combining them into a final dimensional profile of the target surface. The general method is to estimate the relative errors between the individual point clouds by computing a transformation that best aligns them in 3D. In general, that transformation may consist of a rotation, translation, scaling, or any other form of transformation that models the changes expected by changes to the imaging sensor (e.g. thermal scaling, mechanical drift, etc.). In one example, a translation in 3D will be sufficient to model small changes to the system's alignment geometry.

<FIG> is a flowchart showing one example method of dynamically compensating for errors in an optical phase profilometry system. Method <NUM> begins at block <NUM> where, using a first and second channel (e.g. imaging/optical path), a first and second point cloud is generated. While two individual point clouds from two individual channels is described above, in other examples, any number of channels could be used and any number of point clouds could be generated. In other examples, each channel in a particular optical phase profilometry system could generate and individual point cloud relative to a target surface and/or object.

Method <NUM> continues at block <NUM> where it is determined which parts of the field-of-view are non-empty. In one example, this determination comprises determining which portions of the point cloud(s) have surface points and which do not. In one example, this determination is made by the optical phase profilometry system which can have a number of controllers and/or processors (e.g. microprocessors) configured to receive sensor signal(s) (e.g. from an image sensor) indicative of any number of characteristics (e.g. dimensional information relative to a target surface and/or object) and determine, based on the sensor signals, which portions of the field-of-view (e.g. the respective area, volume to be measured, environment the system is viewing, etc.) are non-empty (e.g. those portions that have a corresponding surface point).

Method <NUM> continues at block <NUM> where the first and second point clouds are aligned in the determined non-empty portions of the field-of-view (e.g. the non-empty portions of the point clouds). This alignment can be done in a variety of ways. In one example, the optimal transformation for each point cloud is computed, as indicated by block <NUM>. In one example, a rotation is performed, as indicated by block <NUM>. In one example, a translation is performed as indicated by block <NUM>. In another example scaling is performed as indicated by block <NUM>. In another example, weighting is performed as indicated by block <NUM>. In one example, the weighting at block <NUM> comprises weighting the surface points of the point clouds by their confidence values (e.g. their signal-to-noise indices). In another example, the point clouds can be aligned by performing any other number of transformations, particularly those that model changes (e.g. thermal scaling, mechanical drift, etc.) to the imaging sensor, as indicated by block <NUM>.

Method <NUM> continues at block <NUM> where the relative error for each point cloud is determined. In one example, determining the relative error for each point cloud comprises identifying the opposite of the optimal transformation for each point cloud. Method <NUM> continues at block <NUM> where a dimensional profile of the target surface and/or object is generated. In one example, generating a dimensional profile of the target surface and/or object comprises subtracting the relative error. In one example, generating a dimensional profile comprises computing the optimal transformation for each point cloud, identifying the relative error for each point cloud (e.g. the opposite of the optimal transformation) and subtracting from each point clouds its respective relative error and combining the compensated and/or corrected point clouds.

<FIG> is a diagrammatic view showing one example of dynamic compensation. At the top of <FIG>, a first point cloud <NUM> and a second point cloud <NUM> are shown. In one example, point clouds <NUM> and <NUM> are generated by a first and second channel (e.g. <NUM> and <NUM>). Each the first and second point clouds have a plurality of respective surface points as indicated by the dots. As shown in <FIG>, both point clouds <NUM> and <NUM> have measurement errors due to a change to the image sensor (e.g. mechanical drift as shown in <FIG>). The generated point clouds are not accurately indicative of the target surface (e.g. <NUM>) being measured. However, through dynamic compensation, as described above (e.g. Method <NUM>), the measurement error of each point cloud can be compensated for and/or corrected and create a dimensional profile of the target surface that is correctly or substantially correctly indicative of an actual dimensional profile of the target surface, as indicated by aligned dimensional profile <NUM>.

In one example, dynamic compensation comprises: generating a first and second point cloud from a respective first and second channel of an optical phase profilometry system observing a target surface, wherein the first and second point clouds are indicative of dimensional information relative to the optical phase profilometry system's field of view; determining which parts of the field of view are non-empty (e.g. which parts of the field of view have surface points); aligning, in the non-empty areas, the first and second point clouds by computing the optimal transformation for each point cloud and identifying (e.g. calculating) the relative error of each point cloud; subtracting the relative error from each point cloud; and generating a dimensional profile (e.g. height map) by subtracting the relative error from each the first and second point cloud and combining the corrected and/or compensated first and second point clouds. In one example, computing the optimal transformation comprises weighting the surface points of each the first and second point cloud by their confidence values (e.g. signal-to-noise indices). In one example, computing the optimal transformation comprises performing a rotation, a translation, scaling, or any other transformation or combination thereof.

In some cases, determining the relative error for each point cloud can be computationally intensive and can slow down the overall reconstruction of the target surface and/or object (e.g. the generation of a height map). Particularly in on-line inspection environments, where three-dimensional acquisitions are performed continuously (e.g. during automatic optical inspection of circuit boards in an electronic assembly process), it may not be necessary or desirable to determine the relative errors at each frame. In one example, the relative errors are determined periodically and then applied at each acquisition (e.g. dimensional profile, height map, etc.). Additionally, since each determination of the relative errors may contain a bit of noise, the determinations can be smoothed temporally by keeping a running average of the relative error determinations.

<FIG> is a flowchart showing one example method of dynamic compensation. Method <NUM> starts at block <NUM> where for each individual three-dimensional acquisition of a target surface and/or object, it is determined if the time since the last determination of the relative error average exceeds a threshold. If it is determined at block <NUM> that the time since the last relative error average was determined does not exceed the threshold then the most recent relative error average is applied to each point cloud. Method <NUM> continues at block <NUM> where a dimensional profile (e.g. a height map) is generated for the target surface and/or object.

Returning to block <NUM>, if it is determined that the time since the last relative error average exceeds the threshold, method <NUM> continues at block <NUM> where the a new relative error average is determined. In one example, the new relative error average is determined by determining the average of the transformation (e.g. optimal transformation). In one example, the average of the transformation is determined according to: <MAT>
where α is a constant between <NUM> and <NUM>.

Method <NUM> continues at block <NUM> where the relative error average (e.g. Tavg) is subtracted from each point cloud. Method <NUM> continues at block <NUM> where the corrected and/or compensated (e.g. the relative error average has been subtracted) point clouds are combined. Method <NUM> continues at block <NUM> where a dimensional profile (e.g. height map) is generated based on the combination of the corrected and/or compensated point clouds. Method <NUM> can continue for each three-dimensional acquisition until the optical inspection operation is complete.

In some cases, there may be a limit to how much error can be compensated for. When the relative error determinations begin to approach this limit, a full field or factory calibration may need to be performed. In one example, the optical phase profilometry system can determine if the relative error determinations have exceeded a threshold (e.g. amount of error, a number of iterations, etc.) and upon a determination that the threshold has been exceeded, the optical phase profilometry can generate a communication, an alert, an alarm, or some other indication (e.g. surface a display to a user interface) that calibration is needed.

Another challenge facing typical optical phase profilometry systems are caused by system limitations which limit the quality and accuracy of acquired images of target surfaces and/or objects.

Optical phase profilometry is limited by the quality of the projected sine wave. Digital Light Processing (DLP) systems are flexible but have a finite pixel size which creates a stair-step pattern in the phase of the projected sine waves. DLP systems also have limited dynamic range. For example, a typical DLP system uses <NUM>-bit images which results in the sine waves being quantized to <NUM> levels. Unfortunately, this digital-to-analog (e.g. optical light level) conversion is not perfectly linear. Real applications can have significant integral and/or differential linearity errors, the latter of which is more difficult to deal with (e.g. correct, compensate, etc.). Integral error, on the other hand, along with offset and gain errors, can be removed by multi-phase reconstruction. For example, three-phase reconstruction is insensitive to offset gain errors, while four-phase reconstruction is insensitive to quadratic integral errors and higher order reconstructions will compensate for higher order integral errors. Whereas differential linearity errors add "random" (e.g. difficult to predict) phase noise across all parts of the sine wave.

DLP systems produce multiple gray levels by a time-slicing method. To produce a gray level, individual mirrors in the DLP system are flipped on and off, akin to pulse width modulation (PWM). As the mirrors are mechanical devices they are limited in their switching time, and therefore, increasing the number of gray levels projected (e.g. increasing the number of bits in an image) also increases the frame time for the image. A single-bit image, for example, may not look much like a sine wave but it can be projected very quickly, relative to higher bit images, and therefore system output time is improved.

<FIG> is a diagrammatic view showing one example of a DLP projector system. System <NUM> includes light source <NUM>, digital micromirror device <NUM>, optical low-pass filter (OLPF) <NUM>, digital projection lens assembly <NUM>, which further includes lenses <NUM> and <NUM>. System <NUM> further includes source ray bundle <NUM>, projection <NUM> and target surface <NUM>. Generally, the operation of system <NUM> is as follows. Source ray bundle <NUM> emanates from light source <NUM> (e.g. an LED) and passes through condenser lens <NUM> which converges source ray bundle <NUM> in order to effectively illuminate digital micromirror device <NUM>. Source ray bundle <NUM>, after passing through condenser lens <NUM>, falls on digital micromirror device and is projected therefrom as digital projection <NUM>. Digital projection <NUM> passes through OLPF <NUM> which, as will be discussed in further detail below (<FIG>), is configured to reduce and/or eliminate the problems with typical DLP systems, as described above. Projection <NUM> continues onto projector lens assembly <NUM> which includes lenses <NUM> and <NUM> which are arranged to focus projection <NUM> to desired levels onto target surface <NUM>. Projection <NUM> then passes onto surface target <NUM> from which it will be reflected and subsequently captured by an imaging system (e.g. a camera) which will produce a dimensional profile of target surface <NUM> using a sensor (e.g. image sensor). While a particular arrangement of components is shown for illustrative purposes in <FIG>, system <NUM> can include any number of additional components and/or devices, including, but not limited to, additional digital micromirror devices, additional lenses (e.g. shaping lens), including additional lenses in projector lens assembly <NUM> arranged in a variety of way, color filter(s), additional light sources, and other components and/or devices necessary or desirable for such a system.

<FIG> is a simplified block diagram showing one example of an OLPF. OLPF <NUM> includes birefringent material(s) <NUM> and other <NUM>. Birefringent material(s) <NUM> include quartz plate(s) <NUM>, wave retarder(s) <NUM> and other <NUM>. In one example, OLPF <NUM> consists of layers of birefringent material. In one example, quartz plate(s) <NUM> comprises a first quartz plate which splits a point from the digital micromirror device into a pair of points and a second quartz plate which splits the two points into four points. In one example, the four points are arranged in a square pattern. In one example, wave retarder(s) <NUM> comprise a first quarter wave retarder that converts the polarized light for each copy of the image (projected by the digital micromirror device) into circularly polarized light and a second quarter wave retarder that converts the polarized light for each copy of the image into circularly polarized light. In one example, the second quarter wave retarder ensures that the light (e.g. projection <NUM>) output by OLPF <NUM> is circularly polarized. In one example, OLPF <NUM> comprises four layers of birefringent material, wherein the first layer comprises a first quartz plate, the second layer comprises a first quarter wave retarder, the third layer comprises a second quartz plate and the fourth layer comprises a second quarter wave retarder.

Birefringent material(s) <NUM> can also include any other number of birefringent materials, including, but not limited to any other number of crystal structures. OLPF <NUM> can also include any other number of materials and/or components necessary or desirable for optical low-pass filtering and/or reconstruction filtering in imaging systems.

As an optical phase profilometry system's vertical resolution is limited by the highest frequency projected. For DLP phase profilometry systems, the frequency is typically about <NUM> digital micromirror device pixels per period. A frequency of ¼ cycle per pixel is effectively a square wave. By applying OLPF <NUM> to a DLP phase profilometry system the square wave can be turned into a sine wave. A benefit of starting with a square wave is that it is a binary image (e.g. only two levels). Using a binary pattern improves the speed of system <NUM> as compared to other, typical DLP phase profilometry systems. For example, eight-bit DLP images need tens of milliseconds per image whereas a single bit image, as in the case of system <NUM>, can be projected in well under <NUM> millisecond, thus improving the speed of image acquisition and dimensional profile output.

In cases where lower frequency sine waves are needed additional bit levels can be added to the sine wave, for example, a <NUM> pixel per cycle sine wave can be sufficiently projected with only three gray levels (e.g. <NUM>, <NUM> and <NUM>). In one example, for a sine wave which repeats every n pixels, n/<NUM> gray levels are provided. System <NUM> is configured to maximize signal level for the desired projected frequencies and to minimize unwanted artifacts (e.g. harmonics of the projected frequencies or "screen-door effects').

<FIG> is a flowchart showing one example of projecting light onto a target surface. Method <NUM> begins at block <NUM> where light is projected onto a digital micromirror device (DMD) using a light source. Before the light reaches the DMD surface, it may first pass through a lens assembly <NUM>, which can, in one example, include a condenser lens. The light may also pass through any other devices and/or components on its way to the DMD. The light source may comprise an LED <NUM>. The light source may comprise any other type of light source <NUM> suitable for projection of light onto a DMD.

Method <NUM> continues at block <NUM> where the projected light (projection) is reflected form the DMD towards a target surface and/or object. Method <NUM> continues at block <NUM> where the projected light, after it is reflected from DMD, but before it reaches the target surface and/or object, is filtered. This filtering can be done using an OLPF <NUM>. This filtering can be done using other types of filters <NUM>. The filter can include any number of wave plate(s) <NUM>, for example, quartz wave plates. The filter can include any number of wave retarder(s) <NUM>, for example, quarter wave retarders. The filter can include any other number of materials, components, and/or devices including, but not limited to, birefringent materials, crystal structures, and any other materials, components, and/or devices necessary and/or desirable for filtering and/or reconstruction. In one example, the filter is an OLPF consisting of multiple layers, wherein the first layer comprises a first quartz wave plate, the second layer comprises a first quarter wave retarder, the third layer comprises a second quartz wave plate, and the fourth layer comprises a second quarter wave plate. In one example, the filter at block <NUM> can comprise OLPF <NUM>.

Method <NUM> continues at block <NUM> where the filtered projection is focused onto the target surface and/or object. The filtered projection can first pass through a lens assembly <NUM>. In one example, the lens assembly at block <NUM> is projector lens assembly <NUM>. The filtered projection can first pass through aperture(s) <NUM>. The filter projection can pass through any number of other devices and/or components on its way to the target surface and/or object.

In one example, method <NUM> comprises projecting, with an LED, a projection onto a DMD configured to reflect light at a frequency of ¼ cycle per pixel (e.g. reflect the projection as a square wave). The light from the DMD is then filtered by an OLPF which is configured to "reconstruct" the square wave into a sine wave. The OLPF comprising a first quartz wave plate configured to split a point from the DMD into a pair of points, a first quarter wave retarder configured to convert the polarized light for each copy of the image into circularly polarized light, a second quartz wave plate configured to split the two points into four points, wherein the four points are arranged in a square pattern, and a second quarter wave retarder configured to convert the output light (e.g. the light passing through and out of the OLPF and towards the target surface and/or object) into circularly polarized light. The filtered light then passes through a projector lens assembly configured to focus the filtered light onto the target surface and/or object, wherein the lens assembly comprises a first lens having a first convex surface and second lens having a second convex surface wherein the first and second convex surfaces are facing opposite directions.

Another challenge associated with typical phase profilometry systems relates to target tilt, particularly with specular target surfaces. In typical systems, the illumination source has a numerical aperture that defines the boundary of the ray bundle emerging from each point on the target surface. Normally, the system would be aligned such that, for a non-tilted target, the center of the illumination source pupil would intersect the center of the imaging system pupil. However, any tilt of the target surface disturbs this alignment, for example, as the target surface tilts the ray bundle from the source (reflected from target as a reflection) transits the aperture of the receiver. For example, deflectometer error occurs as the target surface tilts from the ideal plane and changes the triangulation angle. This error is compounded when the reflection overlaps at the edges, also known as vignetting. In some cases, such as when a target is at an extreme tilt, the reflection no longer overlaps but is rather not visible to the imaging system and thus no dimensional information of the target surface can be generated. The errors due to target surface tilt are further explained in <CIT>.

As an example of deflectometer error, as a specular target at non-zero height (e.g. ideal plane) is tilted the height measured by the imaging system varies. For example, in a phase profilometry system with a <NUM>° included angle, a target <NUM> millimeter from the camera's best focus tilted <NUM>° will have a height error of approximately <NUM> micrometers.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. System <NUM> includes first operative coaxial imaging system/illumination source pair <NUM> which includes imaging system <NUM>, illumination source <NUM> and beam splitter <NUM>. System <NUM> further includes second operative coaxial imaging system/illumination source pair <NUM> which includes imaging system <NUM>, illumination source <NUM> and beam splitter <NUM>. Operative pairs <NUM> and <NUM> are configured such that their respective imaging systems (<NUM> and <NUM>) share an optical path with their respective illumination sources (<NUM> and <NUM>). Operative pairs <NUM> and <NUM> utilize respective beam splitters <NUM> and <NUM>, which, in one example, are configured at a <NUM>° degree angle relative to their respective imaging systems (<NUM> and <NUM>) and respective illumination sources (<NUM> and <NUM>). In one example, imaging systems <NUM> and/or <NUM> can comprise a camera. In one example, imaging systems <NUM> and/or <NUM> can comprise image sensor(s). In one example, illumination sources <NUM> and/or <NUM> can comprise a projector. In one example, illumination sources <NUM> and/or <NUM> can comprise a DLP projector, which can include a digital micromirror device (DMD) and an OLPF. System <NUM> further includes target surface <NUM>, illuminations <NUM> and <NUM> and reflections <NUM> and <NUM>.

System <NUM> is arranged such that operative pairs <NUM> and <NUM> comprise oblique pairs (e.g. are placed at an oblique angle relative to target surface <NUM> and normal [e.g. perpendicular]). System <NUM> is further arranged such that operative pairs <NUM> and <NUM> are symmetrical relative to each other. In other words, their oblique angles relative to target surface <NUM> and normal are equal but in the opposite direction (e.g. on opposite sides of normal). In this way operative pairs <NUM> and <NUM> form counterposed channels. In one example, they form a first and second specular channel, The first channel comprises illumination <NUM>, projected from illumination source <NUM>, and reflection <NUM> reflected from target surface <NUM>. In one example, reflection <NUM> comprises a specular reflection. The second channel comprises illumination <NUM>, projected from illumination source <NUM>, and reflection <NUM> reflected from target surface <NUM>. In one example, reflection <NUM> comprises a specular reflection.

System <NUM>'s alignment geometry has the advantage that height reconstruction errors due to the tip or tilt of a specular target surface is compensated. The errors caused by target tilt will be, for system <NUM>, equal and opposite for each the operative pairs <NUM> and <NUM>. Thus, when the point clouds generated by operative pairs <NUM> and <NUM> are combined, the specular error caused by target tilt is corrected. Further, in one example, the optical apertures (not shown) of the illumination sources and the imaging systems are equal (e.g. the numerical apertures of each respective channel are equivalent), the specular error is minimized and the resulting representation of the target surface is more accurate.

<FIG> is a diagrammatic view showing one example of an optical phase profilometry system. System <NUM> includes first operative coaxial imaging system/illumination source pair <NUM> which includes imaging system <NUM>, illumination source <NUM> and beam splitter <NUM>. System <NUM> further includes second operative coaxial imaging system/illumination source pair <NUM> which includes imaging system <NUM>, illumination source <NUM> and beam splitter <NUM>. System <NUM> further includes third operative coaxial imaging system/illumination source pair <NUM> which includes imaging system <NUM>, illumination source <NUM> and beam splitter <NUM>. Operative pairs <NUM>, <NUM> and <NUM> are configured such that their respective imaging systems (<NUM>, <NUM> and <NUM>) share an optical path with their respective illumination sources (<NUM>, <NUM> and <NUM>). Operative pairs <NUM>, <NUM> and <NUM> utilize respective beam splitters <NUM>, <NUM> and <NUM>, which, in one example, are configured at a <NUM>° angle relative to their respective imaging systems (<NUM>, <NUM> and <NUM>) and respective illumination sources (<NUM>, <NUM> and <NUM>). In one example, imaging systems <NUM>, <NUM> and/or <NUM> can comprise a camera. In one example, imaging systems <NUM>, <NUM> and/or <NUM> can comprise image sensor(s). In one example, illumination sources <NUM>, <NUM> and/or <NUM> can comprise a projector. In one example, illumination sources <NUM>, <NUM> and/or <NUM> can comprises a DLP projector, which can include a digital micromirror device (DMD) and an OLPF. System <NUM> further includes target surface <NUM>, illuminations <NUM>, <NUM> and <NUM> and reflections <NUM>/<NUM>/<NUM>, <NUM>/<NUM> and <NUM>/<NUM>.

System <NUM> is arranged such that it forms six counterposed channels. In one example, four diffuse channels and two specular channels. In one example, four counterposed channels are configured to capture nominally diffuse reflections and the two counterposed specular channels are configured to capture specular reflections. System <NUM> is arranged such that operative pairs <NUM> and <NUM> comprise oblique pairs (e.g. are placed/aligned at an oblique angle relative to target surface <NUM> and "normal" [e.g. perpendicular and/or, in one example, operative pair <NUM>]). System <NUM> is arranged such that operative pairs <NUM> and <NUM> are symmetrical relative to each other. In other words, their oblique angles relative to target <NUM> and normal are equal but in the opposite direction (e.g. on opposite sides of normal). In this way operative pairs <NUM> and <NUM> form a first and second counterposed specular channel. The first channel comprises illumination <NUM>, projected from illumination source <NUM>, and reflection <NUM> reflected from target surface <NUM>. In one example, reflection <NUM> comprises a specular reflection. The second channel comprises illumination <NUM>, projected from illumination source <NUM>, and reflection <NUM> reflected from target surface <NUM>. In one example, reflection <NUM> comprises a specular reflection.

System <NUM> is further arranged such that four more counterposed channels are formed, two counterposed channels between each oblique pair (<NUM> and <NUM>) and operative pair <NUM>. Operative pair <NUM> is placed/aligned at approximately normal (e.g. perpendicular) relative to target <NUM>. The third counterposed channel comprises illumination <NUM>, projected by illumination source <NUM>, and reflection <NUM> reflected from target surface <NUM>. In one example, reflection <NUM> is a diffuse reflection. The fourth counterposed channel comprises illumination <NUM>, projected from illumination source <NUM>, and reflection <NUM> reflected from target surface <NUM>. In one example, reflection <NUM> is a diffuse reflection. The fifth counterposed channel comprises illumination <NUM>, projected from illumination source <NUM>, and reflection <NUM> reflected from target surface <NUM>. In one example, reflection <NUM> is a diffuse reflection. The sixth counterposed channel comprises illumination <NUM>, projected from illumination source <NUM>, and reflection <NUM>. In one example, reflection <NUM> is a diffuse reflection.

In one example, to minimize the time required to acquire all six channels of system <NUM>, the timing of the individual imaging system-illumination source pairs can be interlaced. Typically, imaging system <NUM>, <NUM> and <NUM> are configured with CMOS area array detectors. These types of imagers have the ability to control the exposure time such that the exposure time for that imager is a small fraction of the imager's frame time (e.g. time to acquire and readout and image). For example, if the imaging system (e.g. <NUM>, <NUM> and <NUM>) is capable of acquiring images at <NUM> frames per second, the time between acquisitions is <NUM>/<NUM> seconds or <NUM> milliseconds. To acquire at least one images from each of the six channels in serial mode which acquires at least two images from one imaging system, the time to acquire a full set of images is <NUM> milliseconds (<NUM> [images] x <NUM> milliseconds). However, if there is sufficient intensity in the reflections (e.g. <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> and <NUM>) the exposure time can be considerably shorter than <NUM> milliseconds and the sequence of image acquisition can be interlaced between the three imaging systems. By interlacing the acquisition sequence of the three imaging systems, the exposure of one imaging system can be timed to be at the same time as the readout time required by another imaging system to complete its frame time resulting in an overall acquisition time of <NUM>/<NUM> or <NUM> milliseconds, for this particular example.

The following is an example of an interlaced triggering sequence for acquiring images from six channels which can take advantage of system <NUM>'s alignment geometry (e.g. configuration) to minimize acquisition time:.

In the example, the time between trigger events is <NUM>/<NUM> = <NUM> milliseconds. The time between triggering any single one imaging system is <NUM> milliseconds yet the overall acquisition time for all six images is <NUM> milliseconds x <NUM> = <NUM> milliseconds. It is to be understood that this is just one example of an interlacing sequence and that other interlacing sequences can be used without departing from the scope of the invention as defined by the claims.

<FIG> is a simplified block diagram showing one example of an optical phase profilometry system. System <NUM> includes illumination source(s) <NUM>, imaging system(s) <NUM>, electronics <NUM>, alignment geometry <NUM>, power source(s) <NUM>, memory <NUM>, user interface(s) <NUM>, beam splitter(s) <NUM>, remote device(s) <NUM>, housing(s), display(s) <NUM> and other <NUM>. System <NUM> can comprise any of the embodiments and incorporate any of the methods described herein.

Illumination source(s) <NUM> include illumination generator(s) <NUM>, lens assembly <NUM>, filter(s) <NUM>, aperture(s) <NUM>, housing(s) <NUM> and other <NUM>. Illumination source(s) <NUM> could comprise any of the embodiments described herein. Illumination generator(s) <NUM> are configured to generate an illumination (e.g. a structured or patterned illumination) to be projected on to a target. Illumination generator(s) <NUM> could comprise a spatial light modulator, a structured light generator, a DLP projector, transmissive liquid crystal, liquid crystal on silicon (LCOS) or any other suitable techniques for projecting a structured light pattern, a digital micromirror device (DMD), or any other number of suitable illumination generator(s).

Lens assembly <NUM> is generally configured to direct illumination from illumination source(s) <NUM> towards a target and could comprise a telecentric lens assembly, an entrance lens and an exit lens, an entrance or exit pupil at infinity, two or more lenses, and lenses made from various materials including, but not limited to, polycarbonates, plastics, polymers, glass, liquid lens material, and any other suitable materials. Lens assembly <NUM> can comprise condenser lenses, a projector lens assembly, wherein the projector lens assembly comprises a first lens having a first convex surface and a second lens having a second convex surface wherein the first and second convex surface face in opposite directions.

Filter(s) <NUM> are generally configured to filter and/or reconstruct illumination. Filter(s) <NUM> can include an OLPF, wherein the OLPF comprises any number of birefringent materials. The OLPF can comprise four layers, wherein the first layer comprises a wave plate (e.g. quartz wave plate), the second layer comprises a quarter wave retarder, the third layer comprises a second wave plate (e.g. quartz wave plate), and the fourth layer comprises a second quarter wave retarder. Filter(s) <NUM> can include any other number of materials, components and/or devices including, but not limited to, crystal structures, plates, etc..

Aperture(s) <NUM> are configured to direct illumination from illumination source <NUM> towards a target surface. Aperture(s) <NUM> could comprise any variation in size across an optical phase profilometry system, such as the systems and embodiments described herein. In one example, the numerical apertures of each operative coaxial imaging system-illumination source pair is equivalent. In one example, the numerical apertures are of different size. In one example, for a channel (e.g. counterposed, specular, diffuse, etc), the receiver (e.g. imaging system) numerical aperture is smaller than the source (e.g. illumination source) numerical aperture. In one example, for a channel (e.g. counterposed, specular, diffuse, etc.), the receiver (e.g. imaging system) numerical aperture is larger than the source (e.g. illumination source) numerical aperture. In one example, for a channel (e.g. counterposed, specular, diffuse, etc.), the receiver (e.g. imaging system) numerical aperture and the source (e.g. illumination source) numerical aperture are equivalent.

Housing(s) <NUM> are configured to define a body of illumination source(s) <NUM> and house components of illumination source(s) <NUM>. Housing(s) <NUM> could comprise any number of materials including, but not limited to, plastics, polymers, metals or any other suitable materials. Housing(s) <NUM> could comprise any of the embodiments herein described. Other <NUM> could comprise any other components suitable to be used by an illumination source to project a structed illumination on a target.

Imaging system(s) <NUM> include lens assembly <NUM>, aperture(s) <NUM>, camera(s) <NUM>, image plane(s) <NUM>, adjust mechanism(s) <NUM>, housing(s) <NUM>, sensor(s) <NUM> and other <NUM>. Imaging source(s) <NUM> are configured to receive an illumination projected from illumination source(s) <NUM> which reflects from a target. Lens assembly <NUM> is configured to direct illumination reflected from a target towards interior components (e.g. camera(s) <NUM>, image plane(s) <NUM>, sensor(s) <NUM>) of imaging system(s) <NUM> and could comprise a telecentric lens assembly, an entrance and exit lens, an entrance or exit pupil at infinity, two or more lenses, adjustable lenses, and lenses made from various materials including, but not limited to, polycarbonates, plastics, polymers, glass, liquid lens material, and any other suitable materials. Lens assembly <NUM> could include a prism assembly (e.g. <NUM>) which can include any number of prisms (e.g. <NUM>, <NUM> and/or <NUM>).

Aperture(s) <NUM> are configured to direct illumination reflected from target towards interior component(s) of imaging system(s) <NUM>. Aperture(s) <NUM> could comprise any variation in size across an optical phase profilometry system, such as the systems and embodiments described herein. In one example, the numerical apertures of each operative coaxial imaging system-illumination source pair is equivalent. In one example, the numerical apertures are of different size. In one example, for a channel (e.g. counterposed, specular, diffuse, etc), the receiver (e.g. imaging system) numerical aperture is smaller than the source (e.g. illumination source) numerical aperture. In one example, for a channel (e.g. counterposed, specular, diffuse, etc.), the receiver (e.g. imaging system) numerical aperture is larger than the source (e.g. illumination source) numerical aperture. In one example, for a channel (e.g. counterposed, specular, diffuse, etc.), the receiver (e.g. imaging system) numerical aperture and the source (e.g. illumination source) numerical aperture are equivalent.

In one example, the numerical apertures of aperture(s) <NUM> and aperture(s) <NUM> are equivalent and thus configured to reduce, compensate, and/or eliminate measurement errors due to target tilt (e.g. deflectometer errors, vignetting, etc.).

Camera(s) <NUM> are configured to receive illumination projected by illumination source(s) <NUM> and reflected from a target towards imaging system(s) <NUM>. Camera(s) <NUM> could include sensor(s) <NUM> (e.g. image sensors) configured to generate sensor signals based on the received illumination indicative of an image of a target. Image plane(s) <NUM> are part of camera(s) <NUM> and define a surface of the camera onto which the reflected illumination is focused after it passes through the interior components of imaging system(s) <NUM> (e.g. lens assembly <NUM>, aperture(s) <NUM>, etc.).

Adjustment mechanism(s) <NUM> are devices configured to change a position or a characteristic of lens assembly <NUM> or another component of imaging system(s) <NUM>. Adjustment mechanism(s) <NUM> could comprise a mechanical device configured to change a position of a lens such that the focus point of the lens is changed. Adjustment mechanism(s) <NUM> could comprise an electro-optical lens that changes its shape between image captures such that its focus position is changed. In such a system, the curvature of the lens is adjusted by applying an electrical current. Adjustment mechanism(s) <NUM> could comprise a variable power lens, for instance, a liquid lens assembly. Adjustment mechanism(s) could comprise a device configured to change a position of image plane(s) <NUM>. Adjust mechanism(s) <NUM> could comprise a device configured to change a position of camera(s) <NUM>. Adjustment mechanism(s) <NUM> could comprise any other suitable devices, components and/or techniques such that the focus position of the imaging system could change.

Housing(s) <NUM> are configured to define a body of imaging system(s) <NUM> and house components of imaging system(s) <NUM>. Housing(s) <NUM> could comprise any number of materials including, but not limited to, plastics, polymers, metals or any other suitable materials. Housing(s) <NUM> could comprise any of the embodiments herein described. Sensor(s) <NUM> could comprise any number of sensors configured to generate a signal indicative of a characteristic of received illumination, target dimensional information, a captured image, etc. Other <NUM> could include any other suitable components configured to allow imaging system(s) <NUM> to receive illumination or obtain dimensional information relative to a target.

Electronics <NUM> include communication circuitry <NUM>, processor(s) <NUM>, controller(s) <NUM> and other <NUM>. Communication circuitry <NUM> is configured to communicate with other components of system <NUM> (e.g. illumination source(s) <NUM> and imaging system(s) <NUM>), external components (e.g. user interface(s) <NUM>, remote device(s) <NUM>, and display(s) <NUM>), as well as other components of electronics <NUM>. Communication circuitry <NUM> could comprise wired (e.g. wired loop) and/or wireless (WiFi, Bluetooth, etc.) circuitry. Processor(s) <NUM> are configured to receive signals (e.g. sensor signals from sensor(s) <NUM>) and other input relative to a target and, based on those signals and input, determine, calculate, and/or generate characteristics and/or dimensional information relative to the target (e.g. height, slope, x position, y position, z position, etc.). Processor(s) <NUM>, in one example, are configured to generate point clouds having a plurality of surface points captured by a respective channel (e.g. optical path) of the system relative to a target, wherein the channel comprises at least one illumination source and at least one imaging system. Processor(s) <NUM> can be adapted, via hardware, software, or a combination thereof, for receiving acquired images from imaging system(s) <NUM> and performing a number of calculations, methods and/or techniques, including those described herein. For example, processor(s) <NUM> can perform point cloud merging, iterative joint point cloud refinement, signed distance function, weighted averages, dynamic compensation, combinations, comparisons and any other number of calculations, methods and/or techniques or any combinations of those described herein.

Controller(s) <NUM> are configured to receive signals from processor(s) <NUM>, and other components (e.g. user interface(s) <NUM>) and generate control signals to components of system <NUM>. In one example, controller(s) <NUM> can comprise any number of processor(s) or microprocessor(s) including processor(s) <NUM>. For example, controller(s) <NUM> could receive an output from processor(s) <NUM> indicative of a need to initiate a calibration process (e.g. where relative error determinations have exceeded limit and field or factory calibration is needed). Controller(s) <NUM> could then generate a control signal to have an external component (e.g. user interface(s) <NUM>, remote device(s) <NUM> and/or display(s) <NUM>) surface a display, an alert, an alarm or any other indication of a status of system <NUM> (e.g. that calibration is needed). In other example, controller(s) <NUM> could generate a control signal to have processor(s) <NUM> determine a new relative error and a control signal to have communication circuitry <NUM> store the new relative error in memory <NUM>. Controller(s) <NUM> can generate any number of control signals, including control signals for any of the methods and/or techniques described herein.

In another example, controller(s) <NUM> are configured to operate system <NUM>'s timing (e.g. projection and acquisition timing, exposure timing, etc.). In one example, the timing of system <NUM> is interlaced (e.g. an interlaced triggering sequence). In one example, the exposure of one imaging system can be timed to be the same as the readout time required by another imaging system to complete its frame time. In one example, the interlaced triggering sequence can result in an overall acquisition time of <NUM> milliseconds for system <NUM>. In one example, the time between trigger events is <NUM> milliseconds.

Alignment geometry <NUM> is the positional and alignment structure of system <NUM>. Alignment geometry <NUM> can comprise the vertical or horizontal position of illumination source(s) <NUM> and/or imaging system(s) <NUM>. Alignment geometry <NUM> could comprise the azimuth, or the optical axis of illumination source(s) <NUM> and/or imaging system(s) <NUM>. Alignment geometry <NUM> can comprise any of the systems, methods, techniques, or embodiments described herein, for example, but not limited to, the alignment geometry described in <FIG>, <FIG>, <FIG>, <FIG>, <FIG>, <FIG> and <FIG>.

Power source(s) <NUM> are configured to provide power to components of system <NUM>. Power source(s) <NUM> could comprise a batter, a wired connection to an electric circuit or any other suitable techniques such that the components of system <NUM> will be powered. Additionally, each of the individual subsystems of system <NUM> (e.g. illumination source(s) <NUM>, imaging system(s) <NUM>, and electronics <NUM>) could include their own power source(s) (e.g. a battery or an individual connection to an electronic circuit) such that they are powered independently from one another. Power source(s) <NUM> could also comprise any combination of these.

Memory <NUM> is configured to store data (e.g. dimensional information relative to a target, calculations, determinations, instructions, etc.), calibration information, system status information, etc. Memory <NUM> could comprise RAM, ROM, Cache, Dynamic RAM, Static RAM, Flash Memory, Virtual Memory, Video Memory, BIOS, or any other suitable form of memory. Memory <NUM> is preferably electrically coupled to system <NUM>.

Beam splitter(s) <NUM> are configured to "split" illumination from illumination source(s) <NUM> as well as reflections reflected from a target such that illumination source(s) <NUM> and imaging system(s) <NUM> can, in one example, comprise an operative coaxial pair as described herein. Housing(s) <NUM> can be configured to house both illumination source(s) <NUM> and imaging system(s) <NUM> in a singular housing, particularly where a operative coaxial illumination source/imaging system pair is utilized as with certain embodiments described herein. Housing(s) <NUM> are configured to define a body of illumination source(s) <NUM> and imaging system(s) <NUM> and house internal components of each, as well as, in one example, beam splitter(s) <NUM>. Housing(s) <NUM> can comprise any number of materials including, but not limited to, plastics, polymers, metals or any other suitable materials. System <NUM> can include any other number of suitable components and/or devices as indicated by <NUM>.

User interface(s) <NUM> are configured to receive a user or operator input. User interface(s) could comprise a touch-screen display, switches, levers, an electronic control board, buttons, or any other suitable techniques for receiving a user or operator input. Remote device(s) <NUM> could comprise devices electronically coupled to, but remote from, system <NUM> such as a computer in a control room on a wired loop. Remote device(s) <NUM> could also comprise devices wirelessly coupled to system <NUM> such as handheld devices, laptops, tablets, computers off-site, etc. Remote device(s) <NUM> can be configured to display, receive, and send information relative to system <NUM> (e.g. dimensional information relative to a target, performance analytics, alerts, alarms, notifications, system status, etc.). Display(s) <NUM> are configured to display information relative to system <NUM>. Display(s) <NUM> could comprise visible displays such as screen displays, or lights configured to display a status of system <NUM> (e.g. warning lights). Display(s) <NUM> could comprise audible displays configured to generate a noise to convey information relative to system <NUM> (e.g. an audible alarm).

Any and all of the components and/or devices of system <NUM> can comprise any of the components, devices, techniques, methods, and/or embodiments described herein or any combination thereof.

The particular embodiments described herein are also, in one example, configured to reduce, eliminate, compensate and/or correct errors (e.g. measurement errors) such as those described herein. Such errors include, but are not limited to, errors due to reflectance gradient of a target surface, glints, tilt of a target, etc..

While a particular order of steps has been shown for illustrative purposes in methods described herein, it is to be understood that some or all of these steps can be performed in any number of orders including, but not limited to, simultaneously, concurrently, sequentially, non-concurrently, non-sequentially and any combinations thereof. No particular order of steps for the method described herein is to be implied by and/or construed from the illustrations.

Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the scope of the invention as defined by the claims. It should be noted that the different examples described herein can be combined in different ways. That is, parts of one or more examples can be combined with parts of one or more other examples. All of this contemplated herein.

Claim 1:
A method (<NUM>) of merging point clouds which are generated by profilometry systems or phase profilometry systems, wherein a channel is a specific illumination source-imaging system pair and counterposed channels are a pair of channels that are identical except that the illumination source and imaging system locations are interchanged, the method comprising:
generating reconstructed surface points (<NUM>) in a first counterposed channel's point cloud;
generating reconstructed surface points in a second counterposed channel's point cloud;
characterized by:
identifying, for a selected reconstructed surface point in the first counterposed channel's point cloud, reconstructed surface points in the second counterposed channel's point cloud that are near an imaging system ray for the selected reconstructed surface point in the first counterposed channel's point cloud (<NUM>);
calculating a projection of each of the identified near points in the second counterposed channel's point cloud onto the imaging system ray for the selected reconstructed surface point in the first counterposed channel's point cloud;
calculating an average projection of each of the identified near points in the second counterposed channel's point cloud onto the imaging system ray of the selected reconstructed surface point in the second counterposed channel's point cloud; and
moving the selected reconstructed surface point in the first counterposed channel's point cloud along its imaging system ray a portion of the distance towards the calculated average projection of each of the identified near point in the second counterposed channel's point cloud.