Real-time Refractive Calibration Method for MarineSitu C3 / Flat Port OAK-D

Im working with a custom underwater housing for an OAK-D W and I’m trying to achieve the same level of depth accuracy that the MarineSitu C3 provides.

I understand that the C3 is “individually calibrated for underwater operation.” Given that it uses a flat quartz port, a standard OpenCV/Pinhole calibration leads to significant depth error as distance increases.

Could you provide any insight into the calibration pipeline used for the C3? > Specifically:

  1. Do you use an Axial Camera Model (like the Pinax model) to account for refraction at the air-glass-water interfaces?

  2. How are the housing parameters (glass thickness and lens-to-glass distance) integrated into the final rectification maps sent to the OAK-D’s Warp engine?

  3. Is the calibration performed entirely submerged in a test tank, or is it a hybrid model (in-air intrinsics + mathematical refractive correction)?

Any pointers toward the specific refractive toolboxes or papers that informed the C3’s calibration logic would be greatly appreciated!

Hi @dandyIdk -
Welcome to the forums!
From what I understand, the calibration Marine Situ performs takes place entirely underwater. It uses the standard checkerboard approach with openCV, as @jackmead515 linked to documentation on here.

This calibration approach makes explicit consideration of things like glass thickness and distances not necessary!

Generally, depth error does increase with distance for stereo cameras in any situation - increasing the baseline separation is the best approach if depth measurements at greater range is required…