pythonopencvcamera-calibrationmultiview

Rigid body transformation between 4 views


I have 4 cameras placed in the corners of a room and would like to estimate the rotation and translation of the cameras to one of those 4 cameras with the help of opencv. I was going to estimate R and t based on the essential matrix between camera 1 and 2, camera 1 and 3, and camera 1 and 4. Since the essential matrix only depends on 2 views I was wondering if there is a smarter way of taking advantage of having 4 views to determine R and t? Are there any good guides or tutorials for such a multi-view calibration available? A quick google search didnt lead to success.

Thank you in advance!


Solution

  • I assume the cameras are already calibrated and that there is a portion of the field of view of the reference camera (the one you refer to as "one of those cameras") that is also visible in all the other cameras.

    If this is the case, you only need to match some static points in the scene between each pair of (reference, other) camera, then use solvePnP to get the rotations and translations. You can use a calibration chart (checkerboard or dots) to provide the set of static points.