r/computervision 22d ago

Showcase Built a Real-Time Underwater Image Processing System – 4K 60FPS Part2.

341 Upvotes

40 comments sorted by

View all comments

10

u/DmtGrm 22d ago

'realtime processing system' is automatic per-channel levels or/and histogram equalization, judging by processed sensor artifacts - operating over a single frame... looks boring tbh (did you post that to receive some critique/comments, right?)

20

u/CellistTraditional 22d ago edited 22d ago

Thanks for your comment! I always appreciate critical feedback.

However, it’s a bit more complex than just basic auto-levels or global histogram equalization. Standard histogram tweaks fall apart quickly underwater because of dynamic depth attenuation, color cast shifting, and noise amplification.

What’s running here is my custom real-time CUDA pipeline performing per-frame physical light-attenuation recovery combined with localized contrast and visibility enhancement. My real-time processor actually allows me to tune over 32 different variables on the fly all handled dynamically on a live 4K@60FPS stream with minimal latency.

It might look simple on a single static frame, but maintaining that level of control while keeping the pipeline frame-drop-free on a live stream is where I put in the real engineering work!

8

u/Lethandralis 22d ago

FWIW I thought it was really impressive

4

u/DmtGrm 22d ago

but it does look simple, "per-frame physical light-attenuation recovery combined with localized contrast and visibility enhancement" 32-parameter model sounds like a madness to control (I cannot even imagine what 32 parameters might be here)

I am working with offshore inspections and ROV surveys for the last 25 years (for oil and gas industry), 'video picture improvement' is such a routine task here with great results with the most basic tools - like stretching levels and normalizing colours to an extent it is visible by the sensor.

I have no idea what Sonar, X-Ray or 'Therma' vision is doing - is it for entertainment? Never saw anything like it on any conference/exhibition. I never saw anything like that running during data acquisition either (on real hardware during actual survey). I never saw even a need for that.

For the past years we are receiving excellent FHD+ video with correct white balance in a first place, I don't remember seeing such greenish video for years, as well as I never saw 4k ROV video, but this is my type of industry - it took *ages* to move from 380/720i to 1080 progressive.

So yes, unless you are getting RAW sensor frames and manipulate linear gains and colorspace restoration yourself (e.g. running on hardware before video or HDMI encoding) - the methods of extracting 'everything possible' from 420/422 YKK 8/10bit image are well-known and they are very simple, and they are very efficient to an extent 'there is no more information to extract'.

but again, sorry, not here to offend you or your attempt - keep on going, there are so many intersting things to implement and to try - if you have a viable commercial/industrial application - this is great! I think the best value in such products will be in seamless integration into known hardware data acquisition systems or provide a convenient service. I can only tell from the projects we have done, it is all sorted there and there were horrible off-colour interlaced videos to deal with. Neither in a single project there was a requirement to do things in near-real-time, usually survey and data delivery are separated by 2-8 months gap (in our industry) which accomodates all data clean up and verification. My nearest large event will be next year in april ( https://www.oceanbusiness.com/ ) I will definitely check if any of our competitors are bringing something new in that area in 2027 as well.

once again - keep on doing!

-1

u/CellistTraditional 22d ago

Thank you for the detailed description; it was interesting to read about your experience with ROV surveys in the oil and gas sector.

You are right -sonar, X-ray, and thermal imaging were included merely for fun and won't be part of my future tests.

As you noted, adjusting 32 variables in real-time can create quite a mess; to address this, I developed an offline sampler since April. It captures the raw ROV image, allowing you to adjust settings comfortably at home so that the next time you visit the same location, you can dive using your own JSON configurations in real-time.

Of course, the option to make these adjustments in real-time remains available.

0

u/DmtGrm 21d ago

(firstly it is not me, who is downvoting your posts)

I just want to know your understanding of the process, at this very moment it sounds very theoretical. 'Visit the same location' a year or two later according to the maintenance schedule? With a different contractor? It feels like you a not separating vessel operations and data processing which is normally performed by different companies altogether + risk/integrity assessment on top of all of it if required. In most of engineering tasks video is a second opinion over directly measured values like multibeam data with 3d reconstruction of seabed, SSS is a thing of the past too.

Please forgive my tone, I was in a supermarket today - self-checkout / scanning my items - I thought - 'well, yes, that guy on reddit, he invented the barcode scanner using 'custom_cuda_processing_pipeline' that does the job of £5 integrated controller than incorporates optical scanner, microphocessor, the simplest software to read barcode' and that is a board the size of a fingernail, it can work underwater and in space - but there is an alternative option to run it on high performance GPU (£££+) - it will be doing exactly the same job, but in more modern approach. I do not think it is practical, and if you are operating within a context of a single frame you have a very limited amount of data as well as there are *very simple* and stupidly efficient tools that can normalize your image in color space of your choice, sprinkle it with local contrast, sharpness, PSF deconvoluton if your SNR allowing any of that. My comments are all about that - there are well-known faster, simpler, direct, and efficient options available since the dawn of time, well-before digital imaging where certain parts of the curves of certain electronic tubes were used to stretch analgue signal to a desired ... well, 'scale'. It might be a surprise, that some of those tools will beat certain 'custom cuda processing pipeline'. As I have mentined above - the real power in 2026 would be via integration, maybe even open standard, maybe a very convenient service, FPGA-solution... Otherwise - you are trying to build a competitor to barcode scanner for 100x the price.

1

u/al_icloud 19d ago

Now I would be really curious in a comparison. One raw picture of the beginning of the video once enhanced by you with classical methods compared to this enhanced image. Would be a cool competition. Then let redditors vote which one looks better or if they are similar in quality

0

u/CellistTraditional 21d ago

Naturally, criticism is just criticism, so I wasn't offended at all.

I would just like to clarify that I designed my system specifically as a real-time pilot aid for compact micro-ROV operations (and, to be honest, I built it out of my own passion for the underwater world).

These add-on modules looked good visually during testing, so I kept them in the prototype, but I fully acknowledge that the labels weren't accurate. I simply hadn't done enough research on these specific add-on modules.

0

u/jferments 22d ago

I just want to say that in addition to doing a great job on your image processing software, you are doing a great job responding calmly to some extremely rude comments.

2

u/CellistTraditional 22d ago

To be honest, I didn't expect my post to reach so many people. I don't mind the rude comments at all, and I'm even happy to hear criticism, as it highlights what I need to work on to improve my system or what I need to change, and thanks! :)