The problem of using 'depth sensing' module in water

I’m trying to use Zed2 to do the depth sensing underwater with the ‘depth sensing’ example. However, when I put the camera in water, the depth sensing module didn’t work well. I guess it’s caused by the weak texture instead of the low light or contrast. The pictrue show what I come across. Please help me or tell me what can I do to improve the depth sensing module. Besides, I woder if there are other changes for zed2 used in water. I have finished the calibrating and will use it for underwater object detection in the future.
I am greatly looking forward to your reply.

Thank you!

Hi @EtherW
Welcome to the Stereolabs community.

The problem is not the low level of texturization, but the camera calibration.
The ZED cameras are factory calibrated for “air” depth sensing and cannot be used natively underwater because the water act as a lens hence the factory calibration is invalidated.

You must recalibrate the camera for this type of application. Ream more on this support page:

Thanks for your reply! I will calibrate the camera again. By the way, the module can figure out the depth sometimes but also didin’t have a good depth map.

Hi @EtherW
are you normalizing the depth map before visualizing it?

No, I just tried to convert sl::Mat to cv::Mat and used Opencv to show that. You reminded me, and I will set ‘new_value = value/max_range * 255’ and try again.

Thank you for your help, I’ve solved the problems because of your advice.

1 Like