ZED X Mini underwater give worse disparity after calibration

Hi,

I’m using ZED X Mini with Xavier NX underwater. I did calibration following tutorial How to Calibrate your ZED camera with OpenCV - Stereolabs, the rectified image looks quite good with no distortion, but the depth sensing is worse when running with calibration file than without calibration file.
This is the calibration file:

%YAML:1.0
---
Size: [ 1920, 1200 ]
K_LEFT: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [ 9.7311816613777467e+02, 0., 9.3729447371503773e+02, 0.,
       9.6756339102779350e+02, 6.0698738433763651e+02, 0., 0., 1. ]
D_LEFT: !!opencv-matrix
   rows: 1
   cols: 5
   dt: d
   data: [ 3.7689544395172730e-01, -9.6374269857492784e-02,
       -1.6051414915441101e-02, -3.2471985330426232e-03,
       7.9898016024009963e-02 ]
K_RIGHT: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [ 9.7279354472023931e+02, 0., 1.0040517634999151e+03, 0.,
       9.6826025143913273e+02, 6.0659327864206830e+02, 0., 0., 1. ]
D_RIGHT: !!opencv-matrix
   rows: 1
   cols: 5
   dt: d
   data: [ 3.7877927930441607e-01, -1.1095840898000960e-01,
       -1.6212957651222260e-02, -3.5198699122780935e-03,
       1.2172249019652885e-01 ]
R: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [ 9.9999845623683359e-01, -1.7334635101399166e-03,
       -2.8745122824488505e-04, 1.7335264510310428e-03,
       9.9999847349253523e-01, 2.1885758573424923e-04,
       2.8707140780964458e-04, -2.1935555217752296e-04,
       9.9999993473657212e-01 ]
T: !!opencv-matrix
   rows: 3
   cols: 1
   dt: d
   data: [ -4.9590653986534068e-02, 5.5844406358709586e-06,
       4.0890855087971948e-04 ]

WITHOUT calibration:
left unrectified


left rectified

disparity

WITH calibration:
left unrectified

left rectified

disparity

What can be the reason for this bad disparity? Thank you.

Hi,
indeed the image looks rectified.
did you check the depth minimum distance ?
https://www.stereolabs.com/docs/api/structsl_1_1InitParameters.html#a115c93ba994ec7b5c853375d647a936e

maybe the pattern is too close to be perceived.
If it is not the case can you share your opencv calibration and a short svo file with us ?
you can send it via support@stereolabs.com

Hi,

I have tried with depth range 0.1-5m, the chart is 0.4m from the camera, and the wood bar behind is 0.75m. But the result is still the same.
So I have sent email to support@stereolabs.com with recorded SVO, calibration yml file. Please help me to troubleshoot this. Thank you so much.

Found the reason for this, the unit of baseline in T matrix is not compatible with ZED SDK. If I use mm (same as factory calibration) for baseline, the calibration works fine.

Hi @linh.nguyen,

Would you be interested in having a side conversation regarding your procedure for calibrating this camera in the water? I’m trying to do the same and at first attempt, found this post and your calibration file to be very helpful.

Thank you in advance!