Camera calibration

Detected corers in sub-pixel accuracy is done only once, but the real-world position of the corners is iterated upon.

Full camera calibration flow is as follows:
Phase 1:

  1. detect corners and perform normal camera calibration assuming planar checkerboard. (openCV)

Phase 2:

  1. given the detected corners the assumed real-world position of them, the distortion coefficients and the camera calibration.
    perform bundle adjustment keeping the camera calibration and distortion coefficients fixed. optimising the
    real-world location of the corners.

  2. calibrate again using the optimised real-world corners. (using openCV)

repeat 1-2 several times optionally weighting outliers less based on the reprojection error.