Skip to content

simojens/bekk-computervision-workshop

Repository files navigation

Computer Vision Workshop 🧠🫀

En praktisk workshop i 3D medisinsk bildesegmentering med dyp læring. I denne workshoppen skal du lære grunnleggende konsepter innen computer vision og trene dine egne segmenteringsmodeller på virkelige medisinske datasett.

🎯 Hva skal vi lære?

  • Computer Vision Pipeline: Fra rådata til prediksjon
  • 3D Medisinsk Bildebehandling: CT og MRI-data
  • Preprocessing & Transforms: Hvordan forberede data for deep learning
  • U-Net Arkitektur: Den klassiske segmenteringsmodellen
  • Training & Evaluering: Dice score, loss functions, og metrics
  • Multi-modal Learning: Kombinere flere MRI-sekvenser (avansert)

📚 Workshop-struktur

Task 1: Introduksjon og Pipeline-demo (~30 min)

Presentasjonsmodus - Lær fundamentals uten å skrive kode

  • 📊 Teori: Computer vision, segmentering, 3D medical imaging
  • 🖼️ Live demo: Se transforms i aksjon
  • 🏗️ Pipeline walkthrough: Fra input til prediksjon
  • 🚀 Mini-training: Observer en modell trene

Task 2: Tren din første modell (~30 min)

Hands-on - Velg et datasett og tren din egen modell

Velg mellom to medisinske datasett:

  • 🫁 Spleen (enklest): 61 CT-scans, 1 organ, 1.5 GB
  • 🧠 Hippocampus (medium): 360 MRI-scans, 2 strukturer, 27 MB

Task 3: Valgfritt fokus (40-50 min)

Velg din egen vei basert på interesse:

  • Task 3A: 3D Slicer Visualisering 📊
    Åpne og analyser dine predictions i 3D Slicer - profesjonelt medisinsk visualiseringsverktøy

  • Task 3B: Submit til Leaderboard 🏆
    Kjør inference på test set og submit til Medical Decathlon leaderboard


🗂️ Datasett

Vi bruker to datasett fra Medical Segmentation Decathlon:

Task09: Spleen Segmentation 🫁 (Anbefalt for nybegynnere)

Om:

  • Target: Milt (spleen) i CT-scans
  • Modalitet: CT
  • Størrelse: 61 volumes (41 training, 20 testing)
  • Klasser: 1 (binær segmentering)
  • Utfordring: Liten mengde data, stor variasjon i størrelse

Hvorfor denne?

  • ✅ Middels rask å trene (~10 min)
  • ✅ Enkelt problem (1 organ)
  • ✅ Perfekt for å lære basics
  • ✅ God for å teste data augmentation
Task04: Hippocampus Segmentation � (Medium kompleksitet)

Om:

  • Target: Hippocampus anterior og posterior
  • Modalitet: MRI (T1-weighted)
  • Størrelse: 360 volumes (263 training, 97 testing) - Kun 27 MB!
  • Klasser: 2 (anterior hippocampus, posterior hippocampus)
  • Utfordring: To små nabostrukturer som krever høy presisjon

Hvorfor denne?

  • ✅ Raskeste nedlasting (27 MB!)
  • ✅ Introduserer MRI-preprocessing (NormalizeIntensityd)
  • ✅ Utfordrende: små strukturer krever presisjon
  • ✅ God for å lære om multi-class segmentering
  • ⚠️ Vanskeligere enn Spleen (små strukturer)

Hvorfor er Hippocampus vanskeligere enn Spleen?

  • 🔬 Små strukturer: Hippocampus er mye mindre (~3-4 cm vs 10-12 cm)
  • 🎯 Høy presisjon: To separate deler som må segmenteres nøyaktig
  • 🧩 Nabostrukturer: Anterior og posterior ligger inntil hverandre
  • 🧲 MRI-data: Krever annen normalisering enn CT
  • 📏 Mindre feilmargin: Feil på få voksler = større Dice-nedgang

🛠️ Setup Instrusjoner

Disse instruksjonene tar deg gjennom oppsett av pakker vi trenger i prosjektet. I denne workshoppen skal vi forsøke oss på uv, et lynraskt alternativ som erstatter poetry, virtualenv, conda.

1. Installer uv

brew install uv

2. Installer riktig python

uv python install 3.11

3. Opprett og Aktiver et virtuelt miljø

Først opprett et virtuelt miljø med uv. Dette isolerer pakkene du installerer fra system python installasjonen. Dette oppretteter mappen .venv hvor alle pakkene ligger. Kjør følgende i en terminal fra rotmappen i prosjektet:

uv venv .venv --python 3.11

For å aktivere kjør:

source .venv/bin/activate

Last ned pakker:

uv sync

📊 MLflow Experiment Tracking (Valgfritt)

Workshoppen støtter nå MLflow for å tracke alle dine eksperimenter! Dette lar deg sammenligne runs, hyperparameters og resultater på tvers av tasks og modaliteter.

For å aktivere:

  1. Fyll inn DITT_NAVN og MLflow server URI i notebook (se MLflow config-celle)
  2. Trainer vil automatisk logge til MLflow
  3. Se alle resultater i MLflow UI

For kun lokal logging: La MLFLOW_TRACKING_URI være tom - da brukes kun CSV logging.

Stor takk til Stian Mogen for ferdig oppsatt mlflow server https://mlflow-server-167244186990.europe-west1.run.app/

📖 Les mer: Se MLFLOW_GUIDE.md for fullstendig dokumentasjon.


🚀 Kom i gang

  1. Start Jupyter:

    jupyter lab
  2. Åpne Task 1 og følg instruksjonene

    • Task 1: Presentasjon og demo
    • Task 2: Tren din modell
    • Task 3: Valgfritt dypdykk
  3. Data lastes automatisk ned når du kjører notebookene


🎓 Læringsutbytte

Etter denne workshoppen vil du:

  • ✅ Forstå hele computer vision pipeline for medisinsk bildebehandling
  • ✅ Kunne preprocessere 3D volumetriske data (CT/MRI)
  • ✅ Trene U-Net modeller for segmentering
  • ✅ Evaluere modeller med Dice score og andre metrics
  • ✅ Visualisere og analysere resultater i 3D Slicer
  • ✅ Submitte resultater til Medical Decathlon leaderboard
  • ✅ Forstå forskjellen mellom CT og MRI preprocessing

📚 Ressurser


🤝 Bidrag

Dette er en workshop for faggruppe Data Science og Maskinlæring ved Bekk.

Forfatter: Simon Jensen (simon.jensen@bekk.no)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published