I’m just curious. For years, I’ve dabbled in running OpenCV on a Raspberry Pi or Jetson to do some shooting tasks.
The first step I always do is run the camera calibration programs. I use the chessboard style calibration.
It never works. Well, I shouldn’t say that, but it never works as well as doing it some other way. I can get the values of the K matrix better by measuring the focal length. I have a tape measure attached to the wall. I take a picture from a known distance. From there I can figure out the focal length in pixels. I know that the value for the offset vector is the center of the image. It all works.
By contrast, the calibration parameters are always slightly off. I might be 20 pixels off from the center of the image. I might have X and Y focal lengths that don’t match, even though I know that they do, in reality, and I can look at the error values and know that things aren’t perfect.
I’m just curious if other people have this problem, or if there’s a trick to this. I usually capture about 100 pictures. I use and 9x8 chessboard, with 25 mm squares. (The first year I did this, I printed out a chessboard pattern, but getting it absolutely flat was difficult when I taped or glued it to a target. Then I bought a very rigid European checkerboard, and taped off a couple of rows, so I am confident I have a perfectly flat, perfectly measured, board.)
It’s not a crisis or anything. As I said, I know how to make it better, so it isn’t a huge deal. On the other hand, I’m usually working with a narrow field of view camera, so I can mostly ignore distortion. If I want a wider field of view, I get the fish eye effect, and then it becomes really important to get the distortion coefficients right. If I know the focal length and offsets are a little bit off, I’m worried that the distortion coefficients will be as well.
Anyway, I’m mostly just curious if others see this problem, and if there’s an easy way to get numbers I can trust. In my experience, taking twice as many calibration images doesn’t help much, but I wonder what others’ experience is.