Clear Filters
Clear Filters

High Reprojection Error Discrepancy Between Kalibr and MATLAB Camera Calibration on Same Dataset estimateCa​meraIMUTra​nsform function.

16 views (last 30 days)
Hello everyone,
I'm encountering a puzzling issue while attempting to calibrate a camera and imu using MATLAB's camera calibration toolbox. I'm using the same dataset that I successfully used with Kalibr, but I'm observing significantly higher reprojection errors in MATLAB compared to Kalibr.
Despite achieving very low reprojection errors when using the same dataset with Kalibr, I'm puzzled by the discrepancy when running the calibration in MATLAB. The extrinsics error in MATLAB is much higher than expected.
Has anyone else encountered a similar issue? I would greatly appreciate any insights or suggestions on how to address this discrepancy and improve the accuracy of the calibration in MATLAB.
Thank you in advance for your help!

Answers (1)

Akshai Manchana
Akshai Manchana on 18 Apr 2024
Edited: Akshai Manchana on 18 Apr 2024
The parameter settings should match while executing the extrinsic calibration in Kalibr and MATLAB to expect a similar result.
Just to ensure that we are configuring both estimation environments similarly, consider ispecting the following.
  • A significant difference between Kalibr IMU noise parameter YAML and factorIMUParameters is that the Kalibr expects Noise standard deviations and MATLAB expects Noise covariances (square of kalibr parameters).
  • Ensure that the pattern point arrangement (checkerboard grid corner points or april grid corner points) to be in meters.
  • By default MATLAB expectes image point detection input to be distorted. The target detection is executed on undistorted images. Ensure that the camera intrinsic parameter (focal length, principle point, radial distortion and targential distortion) setting are consistent between both calibration runs.
  • If using AprilTag target calibration board which is preferred by Kalibr in MATLAB ensure that enough feature points are detected in each calibration image. Both use different detectors and this april tag detection in MATLAB may need some fine tuning.
  • Time delay estimation (temporal calibration) is not yet available in estimateCameraIMUTransform. For proper comparison disable the time delay in Kalibr.
  • If your target pattern point detection (output of detectCheckerBoardPoints etc.) seems accurate use a larger (100*eye(2)) CameraInformation matrix through cameraIMUCalibrationOptions. This will ensure that the image point detection are given good weightage during calibration.
If possible looking at the calibration data will help in understanding the issue better and suggest more recommondations.
Thanks & Regards
Akshai Manchana
  3 Comments
Akshai Manchana
Akshai Manchana on 29 Apr 2024
A user can use circle-grid, checkerboard or april-grid with estimateCameraIMUTransform calibration utility function. However the target board detection and target pattern point generation varies as per the calibration target board.
If it is alright sharing the calibration data would help us understand the issue better.
  • detected target board points along with image time stamps (instead sharing raw undistorted images will also help)
  • corresponding world point arrangement of target calibration board
  • IMU accelerometer, gyroscope data along with time stamps.
  • Camera intrinsic parameters (from the intrinsic camera calibration)
  • IMU noise parameters (from the IMU datasheet or allan variance method suggested in the example)
Thanks & Regards
Akshai Manchana

Sign in to comment.

Categories

Find more on Image Processing Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!