Isolating Underwater Methane Bubbles into Binary Masks - Source Videos Included

A few days ago I made a thread describing my project, and a few of the problems I’m encountering for edge cases.

Goal: Take 4k videos of methane bubbles & turn them into binary masks where just bubbles are shown (and as clearly as possible, to prepare them for tracking).

Long story short, while my knowledge of CV is very limited, here’s what I’ve tried:

  • Simple Frame Differencing (absdiff) + Thresholding.

  • Area-based contour filtering (Min Area 4–10).

  • Max Intensity Z Projection (won’t work, since this technique is based on brightness and the bubbles aren’t always bright).

  • MOG2 with 0.001 learning value and 500 frames max

Unfortunately, I can’t edit that post, but I wanted to provide a few of the clips here incase anyone wanted to take a crack at this problem.

Here are some unprocessed source videos

  • 1052 (bottom-left mask below shows mask for 1 frame)

    • need help getting rest of rightmost plume.
    • upper left/middle plume on 1052 easily detected like most plumes)
    • note: screenshots show different methods so not always indicative of final results
  • 1074 (also having some issues detecting the puny little middle plume here)

And some other various results so far (there’s lots of videos with varied plumes):

A post was merged into an existing topic: Isolating & Tracking Methane Bubbles from Underwater Video(s)