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.
- 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)
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
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
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
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
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.
brew install uvuv python install 3.11Fø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.11For å aktivere kjør:
source .venv/bin/activateLast ned pakker:
uv syncWorkshoppen 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:
- Fyll inn
DITT_NAVNog MLflow server URI i notebook (se MLflow config-celle) - Trainer vil automatisk logge til MLflow
- 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.
-
Start Jupyter:
jupyter lab
-
Åpne Task 1 og følg instruksjonene
- Task 1: Presentasjon og demo
- Task 2: Tren din modell
- Task 3: Valgfritt dypdykk
-
Data lastes automatisk ned når du kjører notebookene
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
Dette er en workshop for faggruppe Data Science og Maskinlæring ved Bekk.
Forfatter: Simon Jensen (simon.jensen@bekk.no)