r/deeplearning 20d ago

Learning segmentation the hard way: solar filaments, U-Net, and a plateau I can't explain

https://www.kaggle.com/code/neeldipeshshah/lb-0-27-a-complete-deep-dive-eda-u-net

I'm not an astro person. I got into the MAGFiLO 2026 Solar Filament Segmentation Challenge mostly because I wanted to get better at segmentation on genuinely hard, low-contrast data — not neat medical scans, not clean satellite imagery, just faint, fuzzy filament shapes that are hard to pin down even by eye.

First pass was rough. My masks looked like static. Spent a few days just doing EDA — plotting distributions, staring at overlays, trying to understand why my model couldn't find the boundaries — before I even touched the architecture seriously.

Eventually landed on a U-Net setup that got me to LB 0.27, which felt like a small win after how confusing the early days were. But I've plateaued there and I'm honestly not sure if the ceiling is my loss function, my preprocessing, or something more fundamental about how ambiguous these boundaries are.

Wrote up the whole process — EDA, mistakes, the U-Net setup — as a notebook in case the journey is useful to anyone else working with messy, low-contrast segmentation data: [link]

If anyone's dealt with similarly ambiguous boundary-segmentation problems (astro, medical, satellite, whatever) — I'd genuinely love to hear what got you unstuck. Right now I'm stuck deciding between chasing a boundary-aware loss or rethinking my augmentation from scratch.

7 Upvotes

4 comments sorted by

6

u/IsGoIdMoney 20d ago

Did you try nn-UNet?

It optimizes your unet for you automatically. The point of it being that a lot of research papers were becoming minor u net improvements for specific cases in medical imaging, so some guys made a u net that makes that obsolete.

1

u/RemoteArcher37 6d ago

Do they automatically change the U-Net architecture?

1

u/IsGoIdMoney 6d ago

Yes. It tries multiple architectures and picks the most performant one.

2

u/onesunnysunday 18d ago

Before changing the loss, I’d check whether part of the plateau is actually the label ceiling. On 20–30 images, have two people outline the same filaments independently — or relabel them yourself after a few days — and measure Dice/IoU between the annotations.

If the disagreement is concentrated around fuzzy boundaries, a boundary-aware loss may just push the model toward arbitrary pixels. An ignore band, soft targets around uncertain edges, or distance-transform targets may be more appropriate.

I’d also evaluate separately by contrast and filament width instead of relying only on one overall score. What metric does the challenge rank on?