Recommended calibration target and procedure for accurate two-ZED 2i point-cloud registration

Hi Stereolabs team,

I came across this discussion where it was mentioned that the ArUco-based multi-camera calibration approach may provide better accuracy for static-object point-cloud applications than ZED360.

I am working with two ZED 2i cameras and my goal is accurate extrinsic calibration for registering their point clouds into a common coordinate system.

Before setting up the calibration, I would like to clarify a few things:

  • For this use case, do you currently recommend ArUco, ChArUco, checkerboard, or another calibration target ?
  • If using ArUco, is there a recommended target size ? For example, would a 500–700 mm marker be sufficient, or would you recommend a larger target for cameras several meters apart?
  • Should I use one large rigid target and move it through different positions, heights, distances, and orientations within the overlapping FOV?
  • Approximately how many target positions/views would you recommend for a reliable calibration?
  • Should calibration always be performed with the cameras in their final mounting positions and orientations ?
  • If I later change the position or angle of either camera, should I perform the complete extrinsic calibration again?
  • What is the recommended way to validate the accuracy of the resulting transformation , particularly for 3D point-cloud alignment?
  • Is the current zed-aruco/multi-camera workflow still the recommended approach with the latest ZED SDK 5.x?

My main requirement is accurate 3D point-cloud registration , rather than only object/body tracking through Fusion.

Any recommendations regarding the target type, target dimensions, calibration procedure, and validation method would be greatly appreciated.

Thank you!

Hi Jithu,

Thank you for reaching out and your questions.

ZED360 calibrates from body tracking data, and it only optimises yaw. Pitch and roll come straight from each camera's IMU and are never refined. More information can be found on the ZED360 page. For most applications (especially with only 2 cameras), this can be enough.

The Aruco path could work too. On the ArUco sample, the multi-camera README covers the basics: 6x6 dictionary, 160 mm by default, and the size in the code has to match your printed marker exactly or you get a scale error in the extrinsics. Bigger markers give better pose accuracy. All cameras have to see one single marker at the same time, and the extrinsics come from that one observation.

The full extrinsic calibration has to be performed with the cameras in their final mounting position, and must be redone if either one moves.

My recommendation would be to download the latest available 5.4.1 SDK version and try both ZED 360 or the Aruco path with the provided sample to see which ones provides the best results.

Best,
Rodolphe