zondag 21 februari 2016

MRI - 20 - Terug naar de MRI challenge

De deadline voor de Kaggle competitie "second-annual-data-science-bowl" komt snel dichterbij. (14 maart 2016)  Niet dat ik verwacht in de prijzen te vallen maar het zou toch leuk zijn om in ieder geval ook een inzending te hebben. Ik heb al vele mogelijkheden onderzocht maar ik ben nog niet dicht bij een inzendbaar resultaat. Het laatste deel van het onderzoek richtte zich op het vinden van de juiste slices vanuit de 2chamber en 4 chamber view. De vertaling van deze posities naar de juiste slice is ingewikkeld en mij nog niet gelukt.

Mijn deeplearning pogingen voor deze competitie heb ik tot nu toe voor dit op basis van Keras gedaan. Mede ook omdat er een mooi voorbeeld van is gepubliceerd t.b.v. deze competitie. Ik besluit maar eens uit te gaan van dit voorbeeld en daar mijn 'eigen intelligentie' aan toe te voegen. (Ben ik snel klaar :-) .

Het Keras voorbeeld biedt alle 30 afbeeldingen van de sax-slices vrijwel geheel aan aan een neuraal netwerk. Dat moet veel slimmer kunnen. Ik voeg een routine toe die de diastolische positie opzoekt op basis van het kleinste verschil in afbeeldingen 'rond het startpunt'. (Een beetje op het gevoel gekozen positie -10 tot 5) Daarna zoek ik voor de systolische positie de afbeelding met de grootste afwijking t.o.v. de diastolische positie.

Zoeken naar afwijkingen :-)
Ik haal daarna wat oude code van mij op waarmee ik op basis van deze twee posities het centrum van de grootste afwijking kan vinden. Daarmee selecteer ik per sax laag van de gevonden systolishe en diastolische afbeelding het relevante gedeelte. Dat met de linker hartkamer. Ik corrigeer, ook met de eerde gemaakte code, de afbeeldingen naar dezelfde schaal en maak ze even groot. In plaats van de oorspronkelijke 64x64 maak ik ze 106x106. Een behoorlijk betere resolutie van een veel significanter deel van de afbeelding. Dat moet toch punten opleveren. (De 106 heb ik eerder al eens gekozen om bij de meest gebruikte afbeeldingsresolutie een 15x5 cm beeld te krijgen)  Tevens haal ik de extreme waarden er weer uit. Deze zijn, denk ik, vaak een gevolg van de meting of van ruis.

Omdat ik denk, en bevestigd heb gekregen,  dat de metadata, leeftijd en geslacht, ook al een aardige indicatie geeft van de volumes geef ik die waardes mee in de randen van de afbeeldingen. Ik kies voor randen van 3 pixels diep zodat de waarden volgens mij relevant blijven bij gebruik in het convolutional network.    

Het kost even moeite om alles weer foutloos? te krijgen maar nu lijkt hij naar het gewenste resultaat te werken. Ik heb daarbij nog niet aparte data voor systole en diastole gemaakt. Dat moet zeker ook nog gaan gebeuren. Daarnaast denk ik dat ik later ook nog de 2- en 4 chamber view mee ga nemen. Tenslotte geven die m.i. ook heel veel informatie over het verwachte volume.

Geen opmerkingen:

Een reactie posten