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:
- detect corners and perform normal camera calibration assuming planar checkerboard. (openCV)
Phase 2:
-
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. -
calibrate again using the optimised real-world corners. (using openCV)
repeat 1-2 several times optionally weighting outliers less based on the reprojection error.