Utfordringen
Manglende eller ødelagte områder i medisinske bilder er et kjent problem. Oppgaven var å fylle inn kunstig maskerte områder i T1-vektede MRI-snitt, og å måle kvaliteten på en måte som ikke belønner modellen for piksler den allerede fikk se.
Løsningen
Kvadratiske områder ble maskert i snitt fra friske kontrollpersoner, og modellene fikk det maskerte bildet og masken som input. Fire varianter ble sammenlignet: en konvolusjonell autoenkoder som baseline, en U-Net med oppmerksomhetsporter, en GAN med U-Net-generator og lokal PatchGAN-diskriminator, og til slutt en finjustert generator der den adversarielle treningen ble erstattet med maske-, kant-, gradient- og SSIM-baserte tap.
Hvordan det ble bygget
Prosjektet ble gjennomført i en gruppe; jeg bidro på tvers av databehandling, modellering og evaluering. PyTorch-pipelinen gikk fra 3D-volumer til 2D-snitt i tre plan, med 15 120 snitt fra 504 personer delt pasientvis i trening, validering og test (354/75/75 personer). Den brukte en hjernemaske med Otsu-terskling, masker på 16–32 piksler plassert inne i hjernen, og en korrigering der det maskerte inputbildet lages etter skalering, slik at bilde og maske stemmer overens.
Resultat
Målt bare inne i de maskerte områdene på testsettet ga den finjusterte generatoren lavest gjennomsnittlig absolutt feil (0,037 på normaliserte intensiteter), mot 0,038 for U-Net, 0,040 for GAN og 0,045 for autoenkoderen. Forskjellen mellom U-Net og de mer avanserte variantene var altså liten.
Kontekst
Helbilde-PSNR og -SSIM er ikke sammenlignbare mellom modellene, fordi noen varianter kopierer inn de kjente pikslene før måling; derfor brukes feilen i det maskerte området. Oppgaven gjelder kunstig maskering i friske hjerner, ikke rekonstruksjon av ekte MRI-opptak og ikke en klinisk validert metode.