Nieuwe scanmethode keert objecten razendsnel binnenstebuiten
Live meekijken met een CT-scan in plaats van achteraf de beelden pas te analyseren. Als het aan de Leidse wiskundige Jan-Willem Buurlage ligt, is dat binnenkort realiteit. Hij ontwikkelt methodes om de algoritmes achter 3D-scans sneller te maken. Best een uitdaging: ‘Net als wiskundigen zijn computers beter in nadenken dan in communiceren.’ Hij verdedigt zijn proefschrift op 1 juli.
Tijdrovend
‘Het in beeld brengen van het binnenste van een object zonder deze open te hoeven maken, oftewel: tomografie, heeft een groot aantal toepassingen,’ vertelt Buurlage. ‘Denk aan een patiënt in een CT-scanner, een miniscuul nanodeeltje onder een microscoop of een brug die we moeten inspecteren op barsten in het beton.’ Bij dit soort reconstructies zijn algoritmes nodig om verschillende 2D-beelden te combineren tot een enkel beeld in 3D. Deze stap in het reconstructieproces is echter zeer tijdrovend, voornamelijk door de grootte van de data.
Live meekijken
Buurlage ging op zoek naar manieren om dit proces sneller te maken. ‘Het maken van een scan en het analyseren van het resultaat gebeuren nu nog los van elkaar: eerst maak je een scan, dan bereken je daaruit een beeld van bijvoorbeeld het binnenste van een patiënt, en pas daarna worden die beelden bestudeerd. Hierdoor is het niet mogelijk veranderingen binnenin een object live in beeld te brengen.’
En juist dat zou zeer nuttig zijn: ‘Als we tijdens de scan al een live-beeld kunnen berekenen, dan kunnen we de scan tijdens een experiment sturen en bijvoorbeeld inzoomen op een deel dat er verdacht of juist interessant uit ziet of mislukte opnames voorkomen door instellingen of posities aan te passen. Ook kunnen we veranderingen in het object volgen terwijl ze gebeuren: je kunt dan bijvoorbeeld een materiaal verhitten of een patiënt zijn adem in laten houden.’
Communicatieprobleem
Om de 3D-reconstructie te versnellen, maakt Buurlage gebruik van parallelle algoritmes. Deze algoritmes gebruiken de rekenkracht van meerdere computers tegelijk. De computers wisselen tussenresultaten uit om samen tot het juiste antwoord te komen. Buurlage: ‘Dit is potentieel veel sneller, maar het uitwisselen van informatie moet wel efficiënt gebeuren om te voorkomen dat juist de communicatie een bottleneck wordt. Dan levert het netto namelijk niet genoeg winst op.’ Een flinke uitdaging: ‘Net als wiskundigen zijn computers namelijk beter in nadenken dan in communiceren,’ grapt Buurlage. Het resultaat is dan ook een oplossing die de koppeling en dus communicatie tussen de verschillende rekenelementen waar mogelijk vermijdt.
Parallelle berekeningen
Probleem: Je hebt een verzameling ongesorteerd briefgeld van 5, 10, 20 en 50 euro, en je wilt weten hoeveel je van elk hebt.
Oplossing 1 (in je eentje): Ga door de stapel heen, en sorteer de briefjes in verschillende stapels. Vervolgens tel je afzonderlijk de stapels van 5, 10, 20 en 50 euro.
Oplossing 2 ('parallel'): Schakel wat vrienden in om je te helpen. Geef iedereen een deel van het briefgeld. Iedereen voert afzonderlijk oplossing 1 uit op hun deel van de stapel. Vervolgens tel je alle resultaten bij elkaar op om tot het eindantwoord te komen.
Een paar observaties:
- Als je maar een paar briefjes hebt, is het sneller om het zelf doen in plaats van de stapel verdelen.
- Als je veel briefjes hebt, dan is het sneller om je vrienden in te schakelen.
- Maar stel nou dat je miljarden briefjes hebt, dan wil je ook miljoenen mensen inschakelen om je te helpen tellen. Dan wordt de laatste stap (het optellen van alle resultaten om tot het eindantwoord te komen) wel erg langzaam. Dit moet je dus proberen te omzeilen:
Een oplossing kan zijn om iedereen in groepjes te verdelen. Bijvoorbeeld: als je 1.000 groepjes maakt van 1.000 man, dan heb je in totaal een miljoen tellers, maar elk groepje hoeft maar 1.000 tussenresultaten op te tellen. Vervolgens moeten dan de tussenresultaten van elk van de duizend groepjes nog weer bij elkaar worden opgeteld.
De optimalisaties van Buurlage werken volgens hetzelfde principe, alleen telt hij geen geld, maar stelt hij uit verschillende beelden een 3D-weergave samen.
Out of the box
Maar Buurlage bedacht nog een andere aanpak om de reconstructie te versnellen. Hij legt uit: ‘Normaal gesproken reconstrueren we eerst het gehele 3D-beeld, en geven dit daarna vorm in een drietal doorsnedes. Ook een live 3D-videobeeld zullen we op deze manier weergeven.’
Om tijd te winnen, draaide Buurlage de berekeningen om: hij koos drie doorsnedes en berekende deze direct uit de data, zonder eerst het volledige 3D-beeld uit te reconstrueren. ‘Hierdoor wekken we de illusie dat we een volledige 3D-reconstructie maken, terwijl we in werkelijk alleen met doorsnedes werken’, aldus Buurlage. Hij noemt deze methode quasi-3D.
En dat werkt prima: ‘Zelfs met een normale computer kost het minder dan een seconde om een hoge resolutie quasi-3D-reconstructie te maken of over te springen naar een ander doorsnede. In vervolgonderzoeken willen we nu ook de beeldkwaliteit verbeteren en de doorsneden automatisch kunnen analyseren. Zo kunnen we in de toekomst misschien automatisch specifieke elementen detecteren, zoals een botbreuk of tumor.’