underwater color correction

Hi,

I’m a diving instructor and underwater photos are a little tricky as colors disappear as you go deeper.
Today, I found that : http://openaccess.thecvf.com/content_CVPR_2019/papers/Akkaynak_Sea-Thru_A_Method_for_Removing_Water_From_Underwater_Images_CVPR_2019_paper.pdf

That would be great if G’mic had such a color restoration filter !!

Welcome Chag,

Think about G’MIC as a beautiful playground with interesting playground equipment, but not totally organized . There are some really nice attractions. You can learn, you can play. But it is and will not become a fully developed amusement park.

But if you keep that in mind, then it is fun to play.

Perhaps there is an enthusiastic hobbyist who has the knowledge, the will and the time to implement these things. But I wouldn’t hope too much for it.

Please G’MIC people, correct me if I’m wrong.

I don’t take underwater photos myself, and it looks to me like this research is a whole new level of colour correction for underwater photos than anything we have now.
In the meantime, I haven’t tried it myself because i don’t have any underwater photos, but have you ever tried the red/blue equalizer in the white balance tool of raw therapee? It’s not going to be a neural net reconstructing the colour in your photos, but it might still help achieve something closer to realistic colour underwater. Just a thought, having never used it myself, and obviously you’ll want to have raw photos for it to work at its best. I suppose the deeper underwater you are the trickier it will be to make colours look right…so I recommend you edit the photos on dry land lol.

Enhancing underwater images is a difficult endeavour. One must do the following (this applies to any scientific pursuit).

1 Gather empirical data and develop models to support the data.
2 Develop a set of algorithms that can apply the models in a meaningful and practical way.
3 Design and generalize the algorithms so that they can be implemented in an efficient manner.

Even if an algorithm is reasonably robust, it would likely require lots of input data from the user and be incredibly slow, which is the case of the paper being asked about.

Rather than agonizing over the paper or waiting for someone to implement it, let us try to understand the problem a bit more. Here is how I would explain and tackle the problem. Consider this work flow.

1 Colour and brightness balance A.
2 Haze removal.
3 Colour and brightness balance B.

When we consider enhancement, we are mainly looking to increase visibility. We often use other words to describe that: clarity and contrast. Visibility varies, depending on where we are in the water, at what and where we are looking, and what else is in and happening there. There is no short of variables because there is so much going on in the water: turbulence, particles, occlusion, temperature, sources of light, etc.

What water does is attenuate (reduce), transmit and scatter (bounce) light. Its properties are very different from air. Certain colours are attenuated and scattered more than others and this changes with depth (transmission) and turbulence. This is the reason for the colour shifts.

However, colour restoration isn’t as simple as matching the scene as if there were no water. That would result in a very unnatural scene. I am of the opinion that achieving accurate colours with a series of colour checkers isn’t necessarily the best way to go about restoring the image, but I guess it depends on what one’s expectations are.

The problem at its core is still a haze removal problem. Since all removal algorithms hold certain assumptions about the scene, the role of step 1 is to make the image palatable for the algorithm. I use the terms colour balance instead of white balance, and brightness balance instead of exposure, because white balance and exposure corrections only shift the image uniformly. We need to adjust the colour, exposure, contrast, among other features, with respect to scene data such as depth.

Step 3 is about doing the final touches. If you are really patient after the hard work of steps 1-2, step 3 could actually be step 1, where you loop the steps until you get a satisfactory result.

1 Like

Read this and you will know why this isn’t suitable for general use.

image

image

Edited post #4 for clarity and detail.