The global scale of your calibration (i.e., units of three-dimensional spatial coordinates) is determined by the geometry of the calibration object that you are using. For example, when you calibrate in OpenCV using images of a flat checkerboard, the inputs to the calibration procedure are the corresponding pairs (P, p) of three-dimensional points P and their images p, (X, Y, Z) the coordinates of the 3D points are expressed in mm, cm , inches, miles, regardless of what is required by the size of the used target (and the optics that displays it), and the 2D coordinates of the images are in pixels. The result of the calibration procedure is a set of parameters (components of the projection matrix P and nonlinear distortion parameters k) that "convert" the 3D coordinates expressed in these metric units into pixels.
If you do not know (or do not want to use) the actual dimensions of the calibration target, you can simply lure them out but leave their relationship unchanged (for example, a square remains a square, although the true length of its side may not be known). In this case, your calibration will be determined to an unknown global scale. This is actually a common case: in most virtual reality applications you don't care what the global scale is, as long as the results look right on the image.
For example, if you want to add an even more fluffy pair of three-dimensional lips to Angelina Jolieโs video and combine them with the original video so that the new fake lips remain attached and look โnaturalโ on her face, you just need to rescale the 3D model of the fake lips so that she correctly coincided with the image of the lips. Regardless of whether the model is 1 yard or one mile from the CG camera in which you are creating the composition, it does not matter at all.
source share