Skip to content

Strobe & Depth – an idea and my first attempt

Featured Replies

For a while I've had an idea in my head: what if you could place the light in an underwater photo afterwards, exactly where you want it, the way you would with a strobe during the dive? I have now started my first attempt at it.

It all starts with a depth map: from a single photo, the software calculates how far away every point in the image is from the camera. So it knows what is in front and what lies behind.

You click into the photo where the light should go and drag it bigger or smaller. You can set up to five lights, each with its own strength, color and falloff. Just like underwater, the light gets weaker with distance: the subject in front glows, the reef behind it stays calm.

What mattered most to me: nothing is invented. No generative AI paints new details or colors into the picture. The light is calculated with image algorithms on the real pixels, guided by the depth mask. What wasn't photographed doesn't end up in the image.

The goal is still a natural photo, not a gimmicky effect. Everything runs locally on the Mac, with no cloud and no upload.

These are the first results of a test feature:

https://depthlight-site-c9a456.gitlab.io/new.html

I'd love your honest feedback – what you think about the idea?

Backscatter

Well, for starters, I do video, so perhaps my opinion doesn't matter. However, I don't see this as a tool that I would ever use.

  • Author

Accepted ☺️ This should be one part of the whole diveApp I develop. I think it would be a nice feature for boosting out small details but maybe not we will see. Thanks for your opinion.

  • Author

@Grantmac still not, sorry. I finished the first prototype today, now I'm working on it to make further progress. I still trying to collect a lot of different image material to try on.
Will share everything when I make further progress.

Edited by Jurgen

The example pictures are nice, but something similiar could be done manually with fuzzed-out oval mask(s) & brightening, I think. The (AI?-) calculated depth mask may have advantages in more heterogeneous situations ("jagged" background etc.). I think it is more intuitive to apply and probably easier to use on a smartphone, so why not. Revolutionary? Doesn't look like that to me - but more intuitive is a good argument for it. It cannot replace a strobe at depth, though - when the red is gone from the raw file, only genAI could bring it back (and that may go too far for many).

@Jurgen

The issue I see is not having a way to calculate adding specific colors back based on depth and wavelength.

Strobes don't just brighten a scene, they add back "natural light" wavelengths that are missing at a specific depth, but that needs to be based on the specific subjects being lit, not uniformally across a scene.

Light Attenuation (Depth Gradient)

Water molecules absorb lower-energy, long-wavelength light first.

  • 0–5 meters (0–16 ft): True vivid reds (vermilion, bright crimson, scarlet) remain intact.

  • 5–10 meters (16–33 ft): Darker or warmer reds shift toward brownish-red or deep maroon as the longest red wavelengths ($650\text{–}700\text{ nm}$) are filtered out.

  • Beyond 10–15 meters (33–50 ft): Ambient red light is almost completely absorbed. Without an artificial light source (strobes or video lights), objects pigmented red appear dark brown, grey, or pitch black.

    There was an experiment run by some underwater researchers (I believe at MBARI) that used AI to add color back (at depth) based on the subjects. For example, once a specific type of coral or substrate was identified (using AI) color could be applied to show what it might look like under natural light. The key was indentifying the subject first (to get the actual colors).

    Your approach is reasonable as a "hack" adding light back into an image - this would be a good first approximation for most compact or action cameras with no light sources.

Where I think this could be useful is when you can only light part of the scene.

Like a wreck which you just can't reach with a strobe, or with a diver illuminating part of it.

If ultimately it's just a clever mask with colour adjustments then that's going to save a lot of time.

Have it do video and I'd be thrilled. I absolutely hate grading video.

  • Author

@OneYellowTang

Thanks, this discussion actually gets very close to where I want to take the idea next.

I agree that simply brightening an image with a fuzzy mask is not really the interesting part. That is possible manually today. The reason I am interested in the depth map is that I want the light to behave more like an actual light source: its position, distance to the subject, angle, beam and attenuation through the water should all matter. A subject 1 meter from the virtual strobe should not receive the same light as something 10 meters away, even if both happen to be inside the same mask.

And I think the point about color is especially important. I am not trying to claim that a mathematical model can magically recover red information that the camera never recorded. If the signal is completely gone, the original color is simply not recoverable from that image alone. I do not want to solve that by having AI guess what the coral or wreck should look like.

But there is an interesting distinction: a virtual strobe is not necessarily trying to reconstruct the missing ambient light. It is simulating a new light source that was not present when the photo was taken. If we know where that light is, how far it travels through the water, its spectrum and how it hits the surface, we can calculate the additional light contribution and apply it to the information that is actually present in the photograph.

So rather than asking “What color should this object have?”, I am more interested in asking “What would happen to this photograph if a real strobe had been placed here?”

Of course, there are hard limits. If the original image contains absolutely no usable information about a surface or its color, I do not want to invent it. But if there is still texture and some spectral information in the image, a physically modelled additional light source may be able to do considerably more than simply brighten the pixels.

That is actually where I am heading with the next version: depth and geometry, camera-to-subject distance, strobe-to-subject distance, surface orientation, wavelength-dependent water attenuation and a physically parameterized light source. The goal is not to create a particular look, but to see how far we can get toward a photorealistic result without generating anything that was not in the photograph.

I think the interesting question now is not whether this can replace a real strobe. It obviously cannot. The question is how much of the effect of having had a strobe there can be reconstructed from the information that the camera already captured.

That is the experiment I would like to run next.

I suspect the complicated part of the problem will be the prerequisite of creating a 3d data set from an image. Once you have that, the lighting and shadow could be almost off-the-shelf ray tracing pulled from a video game library.

Light intensity and colour filtering will need to be adjustable, there are so many variables - depth, distance, clarity, plankton, algae, silt. It can never be a single adjustment.

Paralenz had some pretty good automated depth/colour adjustment.

Steve Jones won some awards for natural light deep wreck scenes. He used a trick with swapping colour channels to inject colour back into what started as visually monochrome images. There will be some articles about it online.

  • Author

@John Liddiard

Thanks, that's a very helpful way of looking at it. Every bit of input in this discussion is a big help to me, so I really appreciate it.

I agree that the 3D reconstruction is probably the hardest part. A depth map can tell me where the visible surfaces are, but it doesn't really tell me what is behind them. That's why I want to be quite careful with things like cast shadows for now — a wrong shadow could easily make the result look artificial.

I'm also with you on the light intensity, colour and water conditions. I want to see how far I can take things like distance, angle, light path through the water, turbidity, etc., rather than simply changing brightness and colour.

And I think @OneYellowTang made a very good point about colour. A virtual light source obviously can't recover colour information that the camera never captured. If the red information is completely gone, it's gone. But if there is still some information left, perhaps additional simulated light can make better use of it.

That's really the experiment I want to run: not trying to invent missing information with AI, but seeing how far I can get using the information that is actually present in the photograph and a reasonably realistic light model.

Let's see how far I can take it. 🙂

  • Author

Hi everyone,

@John Liddiard @OneYellowTang

this is one of my internal tests. I’m still very early in the development, so there’s obviously a long way to go.

Unfortunately, the source material was a single frame from a 1080p GoPro video — not exactly the best starting point. But maybe that makes it interesting as well, since it could help reveal the limitations of the approach quite early.

Of course, after such a short development and testing period, I’m not expecting miracles yet. But for one of the first tests, I think it might be heading in the right direction.

IMG_5644.jpeg

What do you think?

Edited by Jurgen

If I were taking the pic, In the real world I would have aimed the strobe slightly higher and from more central/above the camera or even from a little over to right so as to illuminate the fallen mast more and the deck this side of it less.

The colour looks realistic, certainly heading in the right direction. I prefer the overall light level of the automatic version. Given both in a raw processor I would be experimenting with a fade/merge between the two.

  • Author

Thanks @John Liddiard for the really helpful tip regarding the strobe position — I’ll definitely keep that in mind.

I’d also love to have some proper RAW material to work with, but unfortunately for this project I have to work with some old and rather poor GoPro footage from this wreck. 😄

I’ll keep working on it and hopefully get better results with each iteration. There’s still a long way to go, but I think it’s heading in an interesting direction.

I tried to combine the automatic and strobe output and just blended them quickly by 50/50 (strobe still the same)

IMG_5646.jpeg

Jurgen - That's fascinating. There are people here with a much better understanding of the physics involved with making a still photograph underwater, but I, for one, would love to dive with less gear.

I've spent decades shooting above water, and have used artificial lighting for specific photographs. Interestingly now, those same strobes are needed far less because of advances in sensors and imaging. My brother, while on assignment as a photojournalist, doesn't carry a strobe at all. I still do, however. A safety blanket perhaps.

Lighting underwater is quite a throwback to how we used strobes in the past: to light darkness in an era of slow film and to recapture color. If we can do all that without strobes - and we're getting close - I'd be all for it. What can be lost, though, is the look that can be achieved with strobes. And I also like the challenge of capturing an image on scene rather than working it to death in post.

Best,

Craig

  • Author

Thanks Craig, I really appreciate that perspective.

I actually agree with you on the point about the look and the challenge of capturing the image on the dive. I don’t see this as a replacement for that — if anything, I’d still prefer to get the lighting right in camera whenever possible.

What interests me is the situation where you couldn’t get the shot you wanted on the dive, whether because of the amount of gear, the position of a wreck, limited visibility, or simply because you didn’t have a strobe with you.

And I think you’re right that the “strobe look” is more than just adding brightness or recovering colour. The direction, falloff, shadows and contrast are a big part of what makes an underwater-lit image look the way it does. That’s actually what I’m trying to explore with this project.

I’m also curious how far modern sensors and computational photography have already taken us. Maybe the result will turn out to be useful only in certain situations — or maybe there are some things that simply can’t be reconstructed convincingly. Finding that boundary is probably the most interesting part for me.

Let’s find out.

@humu9679

@Jurgen I uploaded some recent photos. One strobe, several photos underexposed. Some small files, and others larger, all JPEG.

One thing that fits in the context of not being able to get the shot you wanted - simulate a "snoot" that you didn't have when taking the shot. I've tried that manually a bit but the results were dismal. It looked extremely artificial and didn't come remotely close to the amazing pics we can find on waterpixels.

Maybe your tool could be a step towards that goal? Basically taking your example of dramatic look to the extreme. The shadows cast by a single snooted strobe might be difficult to emulate, though.

  • Author

@Klaus I was thinking about this already. This should be actually not that hard. I will give it a try when I have time would be great if you could provide me any image.

Edited by Jurgen

  • Author

Hi,

I have already done some additional tests.

There are two videos on the page: -> https://depthlight-site-c9a456.gitlab.io/depth.html#video
One is a 3D Strobe · one light, placed and moved live, the other video shows Static Light · two lights, strobe arm, diffuser, and light color

Its still not where I want to go but I think it opens some doors already definitely have to try a few things more.
What you think so far? @humu9679 , @John Liddiard , @Klaus , @Grantmac

Ultralight Control Systems

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.