Machine Vision

Showing results for 
Search instead for 
Did you mean: 

Distortion Model Calibration Error


I am trying to calibrate an Opto-E telecentric lens on VBAI.

On the mechanical setup, everything is fine. Telecentric lens, suitable industrial camera, telecentric illumination etc.

Using a certificated dot calibration plate with 0.001mm accuracy.


The system itself is quite fine. When I make a simple pixel to mm calibration, the maximum error with a Johnson gauge is 0.025mm.

I need a better accuracy so I try to use Distortion Model with the calibration plate.

With the same pictures, using Distortion Model calibration, the maximum erorr becomes 0.090mm. It needs to be getting better but the reality is the reverse..

The lens itself with only a simple coefficient is better than a VBAI corrected calibration, calibration results a negative effect.


Is there anyone who made a micron-grade accurate calibration on all over the FOV with a telecentric lens using VBAI/Labview?

0 Kudos
Message 1 of 10

Conveniently, I was just working on my calibration routines last night, so it is fresh in my mind.


I have a few ideas, but I need to start with a little more information.  What is your FOV?  What is the dot grid spacing?  Can you attach an image of the grid?  What is the approximate mm/pixel scale?


What is a Johnson gauge?  I am not familiar with one for measuring vision accuracy.  Can you attach an image that you used for verifying the calibration?



Bruce Ammons
Ammons Engineering
0 Kudos
Message 2 of 10

Hello Bruce,


Below is the information which you have asked.

FOV: Horizontal approximately 85mm. There is some vignetting, I am trying different camera-lens combinations.

Dot spacing: 8mm

mm/px: 0,0433


Attached the images(30_1 is horizontal placement, 30_12 is vertical placement). Johnson gage is basically a block gage with accurate length. This one I am using has a 30mm length.

The main thing is, I calculate mm/px calibration in horizontal. With the same coefficient, the vertical image results 25μm error.

When I make distortion model calibration, the vertical image results 90μm error.

Download All
0 Kudos
Message 3 of 10

You are very close to the calibration limits, no matter how good your calibration method is.  Your measurement error is less than 0.1%, which really isn't bad.  I don't think it would be physically possible to calibrate and/or measure down to micron accuracy.  The best I would possibly expect is an error of about 5-10 microns, which is 1/5 to 1/10 of your pixel size.


I would try the different calibration methods.  The camera model method might work well in your case.  I would also try correcting the dot grid coordinates using the grayscale image (this is another NI calibration function).


I have considered writing a routine that does polynomial fits to each row and column of the grid and estimates the pixel error for each grid, then corrects them based on the average of the row and column measurements.  This might help with the distortion calibration, but I suspect there is already curve fitting in the camera model calibration, and this wouldn't help any.


When you did the horizontal and vertical measurements, I would assume the pixel measurement differ by half a pixel.  In that case the error is in the measurement, not the calibration.  Improving your calibration won't change the measurement error at all.



Bruce Ammons
Ammons Engineering
Message 4 of 10

Thank you for the explanations. I have tried the camera model, but it does not finish without error and error itself already explains that this method does not work with telecentric lenses. But I could not find your second suggestion dot grid grayscale.


I agree that I can't go down to 1 micron accuracy, and 1/10px would be good and 1/20px would be best I could aim.

Because when I create my own distance calculation methods, I can see 1/20 of pixel size repeatability on the limited FOV.(without any calibration)

And on the whole FOV, I can see 1/2 of pixel size repeatability error.(without any calibration, we are still on the pixel space)


Based on these results, in an ideal world, I would expect 1/20 px accuracy at best, if the calibration algorithm works perfectly. Of course this is not possible.

And to be more realistic, I would say that calibration is succesful, if I could improve my worst result better than 1/2px. 1/10 would be good, 1/5 would be okay.

But in the real world, the worst result becomes worser. It becomes like 2px.


You are right that there are many other source of errors but I take a lot of shots to understand what is the main source. As far as my results show, the mechanical and optical system are good and the measurements methods which I have create works fine in the pixel world. 

I am unsure about the calibration algorithm. It seems to me it is creating negative effect instead of positive.

0 Kudos
Message 5 of 10


I find your discussion very interesting. I am working in the semiconductor space.

It is quite common in semiconductors to get measurement precision of 1/10 - 1/20 of pixel. 

But it is base on special algorithms that are specially tailored to the targets. Overlay inspection machine do that all the time. 

Those algorithms are not base on Distortion Model Calibration. If you have a telecentric lens you probably don't need this correction. Like you said it will only make things worth. 

If you want to get to those precisions we need to discuss what you are trying to do.

Maybe I will be able to give some advice. I am working on algorithms that give that precision. 

Amit Shachaf
0 Kudos
Message 6 of 10


I am working on the coordinate measurement industry. And trying to understand how NI standard calibration algorithms work. I would like to learn if anyone has ever did a test with similar setup, and if someone get any positive result with the distortion model calibration method because I am unsure if it works correct.

Any advice would be appreciated, thanks in advance.

0 Kudos
Message 7 of 10

I was remembering a separate vi for correcting the dot grid, but it is built in to the Target to Points vi.  You just have to wire in the grayscale image for it to do the correction.


I think the distortion template expects distortion, so it mostly just connects the grid points to create a mesh.  Each square in the mesh uses the corner values to interpolate the calibration values.  This is sensitive to the accuracy of the grid points.



Bruce Ammons
Ammons Engineering
0 Kudos
Message 8 of 10

I think that what Bruce is explaining is correct. 

If you want expended explanation you can look up the Geometrical distortion chapter in "Image Processing handbook" by John C. Russ. There might be better books. But that is the one I have.

I think that mesh type of correction is less precise then estimation of a know optical effect. For example "pin cushion" effect can be estimated if you know what effects your optical system has.

But in your case you already have lens that is corrected.  

I am not familiar with your industry so I don't know what to advice.


Amit Shachaf
0 Kudos
Message 9 of 10

Thank you both for your comments.

For the first part of my question related to if anyone had a better accuracy with a similar system by using NI built algorithms, I conclude there is not. Because in the description, it is written that this method should be used for telecentric systems, but for my understanding it is just the reverse, this method should be avoided if a telecentric lens used.

A new approach should be taken to correct telecentric lenses.


0 Kudos
Message 10 of 10