Are Computer Stereo Vision techniques appropriate for sub-millimetre measurements? I have a project where I would like to image an object and be able to derive the heights of features in this image to sub-millimetre precision (exactly how precise is still yet to be determined, but let's say 100ths of a millimetre for now).
I have been previously advised that direct laser ranging techniques will not be appropriate

the travel time will be too small and thus will require too much precision to make precise calculations
minor vibrations (such as a person walking near the apparatus) will perturb the results

I have observed a laser device that sells for approximately $1000 that can achieve the precision but suffers from the vibration problem (which is fine, mechanically isolating the apparatus is another discussion).
I would prefer to achieve a result that is more cost effective, and considered stereo vision as an alternative.  Being a novice to this field I am uncertain if the desired precision can be achieved.
Is the desired precision (at least) theoretically attainable?
Is there a recommended paper or resource that would help explain this topic further?
Additional notes
The objects in question will range from approximately 1/2&quot; square up to about 2 1/2&quot; square with some times very low thickness (1/16&quot;?). A large percentage of the surface should be flat, though one test will be to confirm that assertion. Features will be fairly rough (generally sharp transitions). Aug 17 at 11:00
One of the &quot;harder&quot; interesting objects would be about 20mm square, 1.25mm high. The surface features in question would be on the order of .1 - .3mm I'm estimating. The camera position would likely be on the order of 6&quot; above. Does this give you better insight? Aug 17 at 15:15
I am not looking to perform a single profile/relief measurement, but rather attempting to generate a surface height map of the object.  The surface features of the object, as well as the overall profile, are of significant interest.
Stereo imaging

Given the large field of view you need in relation to the accuracy you want, and how close you want to be, I think that stereo imaging may be a challenging, so you need to somehow amplify the differences you are trying to measure.

Structured lighting

If you are essentially trying to measure the profile of an object, have you considered a single high resolution camera and structured lighting?



Thanks to looptechnology for this image, used without permission, but hopefully attribution will be enough.

Note, the shallower the grazing angle, the the greater accuracy you can measure, but the lower the supported depth of field would be, so for your application you would need to optimise for your needs or make your system adjustable (one laser angle for 0-500um, another for 500-1500um and so on). In this case though, you would probably have to calibrate each time you changed laser position.

Incidentally, a very cheap way to try this out would be to pick up a pair of Laser Scissors which include a basic line laser LED.

Finally, you can remove the vibration problem by sampling multiple times, rejecting outliers and then averaging. A better solution though would be to mount the whole test apparatus on a block of granite. This worked well for laser micro-machining tools I've worked with in the past, which require micron level position and depth of focus accuracy, even when located in factories.

Some back of the envelope calculations.

Lets assume an incident angle of 10 degree from horizontal, and a camera with a 640x480 resolution and a field of view of 87 x 65mm. If we place the beam so that it is right at the bottom of the portrait frame with no sample, and then place the sample with the beam crossing it, this should give us a maximum height of around 15mm and thus an uncorrected resolution of around 24um for each pixel the line walks up the screen. With this setup, a 0.1mm variation should be visible as a 4 pixel variation in position.

Similarly, if we use an incident angle of 2 degrees from horizontal then this should give us a maximum height of around 3mm (Tan(2deg)*87mm) and thus an uncorrected resolution of around 4.7um per pixel, for a much more noticeable 20 pixel jump. This would probably require a much more accurate line laser however.

Note, if the camera is close enough then the you may need to do a second trig calculation, using the camera height, to determine the the true position of the line relative to the base line.

Also note that if you don't need absolute accuracy, and local repeatability is enough (say you are profiling the flatness of a sample to ensure it is within given tolerances) then just being able to see the relative position of the laser line might be enough.