woensdag 30 december 2015

MRI - 07 - Plannen maken

Het is een complex project met vele mogelijke insteken. Ik ben veel aan het experimenteren maar wellicht wordt het tijd om eens een plan van aanpak op te zetten. Heb ik in ieder geval iets om naar toe te werken.

Strategie deel 1 - Metadata

Ik wil eigelijk gebruik maken van de Dicom metadata om de oplossing een beetje te sturen. Dat zou een arts denk ik ook doen. Een baby van enkele maanden heeft nou eenmaal een heel ander volumeverwachting dan een man van 40. Er is niet veel metadata beschikbaar. Wel is er leeftijd en geslacht wat al een aardige indicatie zal geven.

Daarnaast kan je wellicht aannemen dat de totale afstand van de 'sax-slices' ook iets zegt over de grootte van het hart en dus het mogelijke volume. Er is ook een 'slice thickness' maar die lijkt weinig relatie met de afstanden te hebben. Wellicht dat de 'patient position' later nog kan helpen bij het bepalen van de locatie van de LV. In ieder geval heb ik ook de 'pixel spacing' nodig om de werkelijke grootte van de afbeelding te kunnen vaststellen.  

Strategie deel 2 - Afbeeldingen

Bij de afbeeldingen is het mij dus gelukt om bij de meeste, per slice, een behoorlijk juiste positie te bepalen van het hart. Dit door te kijken waar de meeste 'beweging' zit. Daarmee kan ik het relevante deel van de slice 'uitsnijden'. Ik corrigeer de uitsnede met behulp van de 'pixel spacing' naar een uitsnede van 15 x 15 cm zodat er eenzelfde schaal gebruikt wordt. Daarna maak ik de afbeeldingen allemaal even groot.   In eerste instantie kies ik 106 x 106 pixels wat het beste lijkt aan te sluiten bij een groot deel van de uitsneden. Maar wellicht volg ik een van de voorbeelden en breng ik alles terug naar 64x64. Dat maakt e.e.a. wellicht beter behapbaar voor de GPU.

Een van de mogelijkheden is om alle 30 afbeeldingen per slice samen te pakken in 1 'Tensor' van 30 x 64 x 64 en deze aan en (convolutional) neuraal netwerk aan te bieden. Dat wordt zo te zien in bovengenoemd voorbeeld gedaan. Het betekent dat er gemiddeld zo'n 10 van deze matrixes worden aangeboden per studie. (variĆ«rend van 8 tot 18 slices) . 10 x 30 x 64 x 64 is 1.228.800 input variabelen per study om 2 volumes uit te rekenen. Bij het betreffende voorbeeld worden de tensor-waarden volgens mij 1 voor 1 met het target volume aangeboden. Dus niet voor alle slices tegelijk. Er is dus geen samenhang tussen de slices in 1 studie behalve de systolische en diastolische volume uitkomsten. Voordeel is wel dat alle beschikbare afbeelding - informatie gebruikt lijkt te worden.

Wellicht is het beter om met de afbeeldingen de w.o.w. van de arts te gebruiken. Voor zover ik het begrijp kiest deze eerst de bovenste 'slice' die nog de buitenwand van de LV weergeeft. Tevens kiest hij / zij de slice waar de hartkleppen op te zien zijn. Dan wordt het moment (de afbeelding) gekozen waarop het kleinste volume te zien is (systole) en de tijd ( afbeelding) waarop het grootste volume (diastole) te zien is. Op deze selectie (hoogste / laagste slice - kleinste / grootste volumemoment) worden dan oppervlakte metingen gedaan zodat, vermenigvuldigd met de slice-afstand, er een volume berekening uit komt. Diastole is eenvoudig te vinden. Die zit aan het begin van de 'hartcyclus' en betreft dus volgens mij 'frame1'. Systole zit vaak ergens tussen 1/4 en 1/2 van de hartcyclus (Frame 7 tot frame 15). De rest van de cyclus wordt gebruikt om 'passief' het hart weer vol bloed te laten stromen. Ik denk dat ik het 'systolisch moment' (frame) probeer te vinden door het kleinste verschil tussen 2 beelden te zoeken. Van de 2 neem ik dan de 'laagste gemiddelde waarde' omdat bloed meestal witter (dus hoger) wordt weergegeven.

Voor het leeralgoritme zou ik dus frame 1 van de slices kunnen combineren voor diastool volume en frame X (nog te vinden) voor systolisch. Probleem is dus wel dat er een verschillend aantal slices per study is. Daarnaast is de afstand tussen de slices verschillend. Stel dat we alle slices terugbrengen naar bijvoorbeeld 10 stuks dan geven sommige een 'hoogte maat van bijvoorbeeld 10cm en andere een hoogtemaat van bijvoorbeeld 15 cm'. Wellicht is dit te compenseren door het 'doelvolume' te corrigeren (vermenigvuldigen) met de sliceafstand. De simulatiewaarde moet dan na de training uiteraard weer terug-berekend worden.

Bij het terugbrengen of ophogen van het aantal slices naar , zeg 10, is denk ik lastig. Het mag namelijk geen of nauwelijks invloed hebben op het meetvolume. Ophogen kan, denk ik, eenvoudig door 'zwartlagen' toe te voegen. (Of zou herhaling van de laatste laag minder verstoren?)

Studie 341 heeft bijvoorbeeld 21 sax slices en studie 436 heeft er 22. Dat zijn wel uitzonderingen. De meeste zitten zo rond de 10. Bij nadere bestudering blijkt bij deze 2 de hart MRI 2x te zijn uitgevoerd. Pfff. Ook nog mee rekening houden. Misschien ook met de 'SlicePosition'? Ik besluit deze eerst wat verder te onderzoeken voordat we verder gaan met 'de strategie'.

   

Geen opmerkingen:

Een reactie posten