1

In researching ways to minimize pose estimation inaccuracies, I found this Stack Overflow answer which suggests that gamma-compression could be one factor to consider. My question is: what is the best way to avoid this? I am using an industrial machine vision camera and have the ability to change gamma. Should I simply set gamma=1, since that implies no compression (or expansion)?

As background, I have taken the ordinary precautions to ensure a good pose:

  • The target is accurate and flat: professionally printed on DIBOND Aluminum,
  • I believe I have good camera intrinsics (calibrated using same target with markers covering entire FOV; maximum re-projection error in 30+ calibration images was sub-1-pixel), and
  • Calculated distortion parameters do a good job of undistorting images.

I end up with what appears to be a slight rotational inaccuracy as shown in the detected pose image. This is particularly apparent at the end of the red x-axis, which diverges from the chessboard edges. The ArUco markers as well as the chessboard corners appear to have been accurately located. Is this error to be expected, or, are there ways I can improve upon this?

sg65
  • 13
  • 5

1 Answers1

0

If you can control the gamma compression at the camera, it's definitely better to disable it. Even better, if the sensor actually captures at more than 8 bpp you should process at whatever pixel depth it produces. Generally speaking, the closer you are to the metal, the better off you are.

That said, with good illumination and exposure, the effect of gamma compression should generally be quite small. For debugging your example I'd look first at the distribution of the measurements in work volume (did you capture enough depth? did you angle the target w.r.t. the focal axis), focus/depth of fields/other sources of blur in the images. See also my other answer here.

Francesco Callari
  • 11,300
  • 2
  • 25
  • 40
  • I _did_ angle the target wrt optical axis, but perhaps not enough. I suppose I can back project the detected corners using the calibration and poses for each image to determine the volume I spanned. Using the maximum available bit depth and possibly using a lens with higher resolving power (to reduce blur) are other things I will look at. Looking closely at my pose image, however, I realized that there are a bunch of corners that are obviously inaccurate: ids 40, 49, 51, 55, 56, 58 & 60. What could cause such gross errors, especially when the ArUco corners seem to be accurate? – sg65 Feb 23 '23 at 20:38