Valósidejű helikális cone-beam CT rekonstrukció a Mediso NanoPET/CT R készülékben Domonkos Balázs 1,2 Jakab Gábor 1 1 Mediso Kft. 1022 Budapest, Alsótörökvész u. 14. http://www.mediso.hu, research@mediso.hu 2 Budapesti Műszaki és Gazdaságtudományi Egyetem Irányítástechnika és Informatika Tanszék 1117 Budapest, Magyar tudósok körútja 2. http://www.iit.bme.hu Kivonat A kisállat vizsgáló berendezések tervezésének fontos szempontja a 10 100 mikrométeres felbontás, a valósidejű kiértékehetőség, valamint a helyigény és tápellátás korlátozottsága. Munkánk során a nagyteljesítményű számítási rendszerek körében egyre nagyobb teret nyerő GPU-k alkalmazhatóságát vizsgáltuk a fenti problémák megoldására. A cikkben az in vivo vizsgálatokra alkalmas NanoPET/CT R multi modalitású készülék CUDA technológiára épülő valósidejű helikális conebeam CT rekonstrukciós alrendszerét mutatjuk be. 1. Bevezetés A nukleáris képalkotás területén egyre elterjedtebbé válnak a többfunkciós, ún. multi-modalitású készülékek, melyek előnye a kompaktság mellett a különböző modalitások által reprezentált strukturális és funkcionális információk egymást kiegészítő jellege. A multi-modalitású preklinikai berendezések egyik családját alkotó kisállat vizsgáló berendezések jelentősége kiemelkedő az orvosbiológia és a gyógyszerkutatás területén. Ilyen képalkotó berendezések tervezésének fontos szempontja az alacsony helyigény és tápellátás korlátozottsága. Emellett a hatékony használhatósághoz az adatgyűjtést követően, sőt lehetőleg már a vizsgálat ideje alatt elő kell állnia a (részben) rekonstruált képnek, hogy szükség esetén időben újra lehessen indítani a mérést. A készülék kifejlesztése során ugyanakkor a magas képminőségi elvárások és a szigorú időkorlátok mellett mindvégig szem előtt kell tartani a gyárthatósági és gazdaságossági szempontokat, így a költséghatékony technológiák kiválasztását [1][2]. A cikkben bemutatott, egyidejű, in vivo funkcionális és anatómiai vizsgálatra alkalmas, NanoPET/CT R integrált PET/CT 3 készülék fejlesztése során a PCkben és játékkonzolokban alkalmazott GPU-k 4 alkalmazhatóságát vizsgáltuk a 3 pozitron emissziós tomográfia, számítógépes röntgen tomográfia 4 grafikus számításokat végző hardverelem
2 Domonkos B., Jakab G. CT rekonstrukciós alrendszer esetében. A változtatható fókusztávolsággal, helikális pályán cone-beam geometriában gyűjtött röntgenképek analitikus rekonstrukcióját teljes egészében grafikus kártyán végeztük beleértve a képkorrekciókat és a szűrt visszavetítéssel történő tomográfiás rekonstrukciót [3]. A következő fejezet a projekciók rekonstrukcióját végző analitikus szűrt viszszavetítés eljárás Feldkamp, Davis és Kress-féle változatát (FDK) [3] mutatja be. Ezt követően a 3. fejezet az alkalmazott technológiát, a 4. rész a megvalósítás részleteit, az 5. befejező fejezet pedig a kapott eredményeket foglalja össze. 2. FDK algoritmus cone-beam geometria esetén Jelölje S 2 az egységsugarú gömböt R 3 -ön. Adott θ S 2 vektorra legyen Θ θ által kijelölt egyenes és Θ az erre merőleges, origóra illeszkedő sík. Az ideális röntgen leképzést az R 3 -t Θ -ra vetítő P θ {f}(x) def = R f(tθ +x)dt, (1) integrál transzformációval modellezhetjük, ahol f(x) R 3 -ön értelmezett valósértékű integrálható függvény írja le a vizsgált test differenciális elnyelési tulajdonságának térbeli változását. Az integrálást (θ,x) paraméterű egyenesek mentén végezzük el, ahol θ az egyenes irányvektora, x pedig döféspontja Θ -n. A tomográfiás rekonstrukciós eljárások P inverzióját közelítik különböző analitikus ill. iteratív formulákkal. A NanoPET/CT R cone-beam geometriájú CT alrendszeréhez az analitikus szűrt visszavetítés (Filtered Back Projection) eljárás Feldkamp, Davis és Kress-féle változatát (FDK) [3] valósítottuk meg. A szűrt visszavetítés a Fourier vetítési tétel re (Fourier Projection-Slice Theorem) épül [4], amely f Fourier transzformáltja és f vetületeinek Fourier transzformáltja közti egyenlőséget írja le: F 2D {P θ f}(w) = F 3D {f}(w), (2) ahol θ S 2 és w Θ. Elegendő számú θ esetén az eredeti f függvény jól becsülhető. A szűrt visszavetítés lényege a f(x) = F 1 {F}(x) = F(w)e 2πjw x dw (3) R 3 Fourier inverziós formula w v = {v 1,v 2 } transzformációja f(x) = F(v)H(v)e 2πjw(v) x(y) dv 2 dv 1, (4) V 2 V 1 ahol v 1 V 1 -beli változók írják le a gyűjtés során θ trajektóriáját, míg v 2 V 2 változók valósítják meg az integrál transzformációt:
Valósidejű CT rekonstrukció a Mediso NanoPET/CT R -ben 3 tértartomány x y {}}{ {y 1,y 2} F frekvencia-tartomány w F 1 {}}{ v ahol y 1 F v1 F 1 F {v 1,v 2} y 2 v2 F 1 Párhuzamos projekciók esetén, ahol θ egy vetületen belül változatlan, H(v) a változó helyettesítés Jacobi determinánsaként számítható. Ha θ nem állandó adott projekción belül, pl. fan-beam [4] vagy cone-beam [3] geometria esetén, H v ennél általánosabb függvénye. P Fourier transzformáltját (4)-be írva az alábbi egyenletet kapjuk: f(x) = F {P y1 f}(v 2 )H(v)e 2πjw(v) x(y) dv 2 dv 1 (5) V 1 V 2 = Q y1 (y 2 )dv 1, (6) V 1 ahol Q y1 (y 2 ) def = F {P y1 f}(v 2 )H(v)e 2πjw(v) x(y) dv 2 (7) V 2 = P y1 {f}(y 2 ) h(y) (8) a szűrt vetület. A módszer implementációja során (6)-ban a V 1 integrált P db Q p szűrt vetület összegeként számítjuk: f(x) f(x) def = V 1 P P Q p (y 2 ). (9) p=1 A cone-beam FDK algoritmus a Jacobi determináns mellett a vetítés geometriáját az alábbi mélységfüggvénnyel írja le [3]: h (y) = d 2 (d+ y +zcos ( arctan y z θ y 1 ) ) 2, (10) ahol d a forrás origótól mért távolsága és θ y1 a forrás és a referenciatengely által bezárt szög. 3. A GPU-k alkalmazása az orvosi képalkotásban Az in vivo vizsgálatok során elsődleges fontosságú, hogy már az adatgyűjtés megkezdését követően ellenőrizni lehessen a részben rekonstruált eredményt. Ez a feladat hatalmas mennyiségű adat valósidejű feldolgozását igényli, melyre a
4 Domonkos B., Jakab G. hagyományos, CPU alapú architektúrákat tekintve csak a számítógép-klaszterek alkalmasak. Kompakt laborkészülékek esetén ez a megoldás nem kivitelezhető, mivel egy klaszter jelentős helyet foglal, sok áramot fogyaszt és ennek megfelelően a szoba hűtéséről is gondoskodni kell. Munkánk során ezért a nagyteljesítményű számítási rendszerek körében feltörekvő grafikus feldolgozó egységek orvosi képalkotásban történő alkalmazhatóságát vizsgáltuk. A számítógépes szórakoztatóipar felhasználóinak vizuális és fizikai valószerűség iránti intenzív igénye tette lehetővé, hogy az elmúlt tíz évben a PCkben és a játékkonzolokban alkalmazott GPU-k elképesztő teljesítménynövekedést érjenek el. A grafikus kártyák csúcsteljesítménye napjainkban megközelíti az 1 TeraFLOP-ot (10 12 lebegőpontos művelet másodpercenként), amely hozzávetőlegesen megegyezik egy hetvenprocesszoros, rackszekrény méretű, 900 ezer dolláros Cray X1 szuperszámítógép teljesítményével. Ezzel a mérettel, fogyasztással és árral szemben a 600 dollárért beszerezhető grafikus kártyák szinte bármely asztali számítógép PCI Express foglalatába beilleszthetők (2. ábra). A GPU-k általános célú alkalmazhatóságát körülbelül az ezredfordulóig jelentősen korlátozta teljesítményük, kevés memóriájuk és alacsony szintű programozhatóságuk. A rohamos fejlődésnek köszönhetően azonban ma már általános célú programok futtatására alkalmasak, IEEE 754-2008 kétszeres precizitású lebegőpontos regiszterekkel rendelkeznek, memória kapacitásuk elérte a 4 gigabájtot. Ennek eredményeképp egyre szélesebb körben kezdték alkalmazni olyan tudományos és ipari számításokra, melyek korábban nem nélkülözhették a szuperszámítógépeket. Kiragadott példaként említhető a jelfeldolgozás, az adatbáziskezelés és adatfeldolgozás, a képfeldolgozás és gépi látás, a geometriai számítások valamint az orvosi képalkotás. A GPU-k többlet teljesítménye a hagyományos processzoroktól eltérő felépítésükben rejlik. A CPU-t az emberi problémamegoldás mintájára szekvenciális utasítás-végrehajtásra fejlesztették ki. Ezzel szemben a GPU több száz végrehajtó egységből áll, és azok az utasításokat nagy mennyiségű bemeneti adaton, egyidejűleg tudják végrehajtani. Ezért a GPU felfogható úgy, mint egy sokmagos, sok csővezetékkel rendelkező vektorprocesszor. Hatékony működésének feltétele az adott probléma adatpárhuzamos reprezentációja akkor használható ki a hardver teljesítménye, ha nagy mennyiségű adaton kell ugyanazt a műveletsort végrehajtani, és az egyes feladatok egymástól nem, vagy csak nagyon kis mértékben függnek. A GPU programozása korábban a megoldandó probléma speciális, az inkrementális képszintézis sémájára történő leképzését igényelte különböző, ún. árnyaló (shader) kódokon keresztül. Az NVIDIA jelentős innovációja volt a 2007-ben bejelentett CUDA 5 programozási környezet, amely az általános programozási célra alkotott C nyelv módosított változata lehetővé teszi a hagyományos CPU programozás esetén bevált eszközökkel, technológiákkal történő programfejlesztést. 5 Compute Unified Device Architecture, www.nvidia.com/cuda
Valósidejű CT rekonstrukció a Mediso NanoPET/CT R -ben 5 1. ábra. A NanoPET/CT R CT alrendszerének korrekciós és rekonstrukciós lépései 4. Valósidejű CT rekonstrukció CUDA környezetben A GPU többlet teljesítményéből adódó előnyök minél szélesebb körben való kihasználására a Mediso Nucline TM multi-modalitású adatgyűjtő szoftverben módosítottuk a CT adatgyűjtés protokolljait, hogy a vizsgálat során keletkező nyers adatok a megfelelő korrekciók után már a vizsgálat alatt feldolgozhatók legyenek, ezáltal a gyűjtés végén azonnal rendelkezésre álljon a teljes rekonstruált térfogat. Az eredetileg CPU-ra tervezett FDK [3] algoritmust több ponton átszerveztük, hogy illeszkedjen a GPU speciális architektúrájához. A CPU és a GPU közötti adattovábbítások számát a sebességcsökkenés elkerülése érdekében célszerű volt minimalizálni, ezért az adatfeldolgozás valamennyi lépését a GPU-n belül hajtottuk végre. Az általunk kifejlesztett szoftver tehát abban különbözik a korábbi megoldásoktól [1][2], hogy nem csak a rekonstrukciót, hanem a nyers adatok korrekcióit is a GPU végzi. Emiatt több algoritmust kellett megfelelően integrálni: a nyers képek korrekcióit (ofszet, erősítés, hibás pixelek korrekciója), geometriai korrekciót a forgás pályájának korrigálására, Fourier transzformációt, a kép szűrését a frekvencia térben, az inverz Fourier transzformációt végül a vetületek visszavetítését visszavetítéséhez (1. ábra). Az ofszet, és erősítés korrekció triviálisan párhuzamosítható, mátrixokon (képeken) végzett elemi aritmetikai műveletek sorozata. A hibás pixelek korrekciója párhuzamosítható, ha minden hibás pixelre egyszerre hajtjuk végre az interpolációt. Mivel a detektor több panelból áll és a panelek között keskeny, körülbelül 2 pixelnek megfelelő illesztési hézag van, ez szintén kezelhető hibás pixeloszlopként. Az üres oszlopokat is beleszámítva emiatt a képen lévő hibás pixelek száma elérheti a 12-13 ezret, amit már érdemes párhuzamosan korrigálni.
6 Domonkos B., Jakab G. A klasszikus pixel korrekciós megoldások közül a lineáris és a gradiens alapú algoritmust valósítottuk meg CUDA-ban. Ezt követően a szűrt visszavetítés első lépése a korrigált képek frekvencia tartománybeli szűrése. Szerencsére a CUDA környezet szerves része a GPU-ra optimalizált, a közismert FFTW API-ját követő Fourier transzformációs programkönyvtár. A szűrt visszavetítés felüláteresztő szűrőjén kívül több klasszikus szűrő (pl. RamLak, Hamming, Hanning) implementációját elkészítettük. Tapasztalatunk szerint az algoritmus idejének 90%-át a visszavetítésben tölti, ezért ezt az operátort szükséges leginkább optimalizálni. A klasszikus FDK a detektor által készített vetületi képek pixeleiből indít sugarakat és az vizsgálja, hogy a rekonstruált térfogat mely voxelein megy keresztül a sugár. Ezeknek a voxeleknek az értékeit egy megadott függvény szerint növeli. A módszer egyik hátránya, hogy előfordulhat olyan voxel amit egyetlenegy sugár sem talál el, ezért lyukak keletkezhetnek a térfogatban. A gyakorlatban ezt úgy szokták kiküszöbölni, hogy a rekonstrukciót követően a térfogaton valamilyen interpolációs technikával kitölti az üresen maradt területeket. Az algoritmus másik hátránya, hogy nehezebben párhuzamosítható. Az algoritmus naiv párhuzamosítása lehetne a sugárnyalábok külön szálakhoz rendelése. A GPU azonban akkor működik maximális hatásfokkal, ha ugyanazt a műveletet hajtja végre minél nagyobb menynyiségű egymástól nem függő adaton adaton. A problémát az jelenti, hogy egy voxelt több sugár is eltalálhat, ami mindenképpen valamilyen szinkronizációt igényelne, ami jelentősen lelassítaná az algoritmust. A legújabb CUDA környezet lehetővé teszi atomi műveletek végrehajtását, amivel a szinkronizáció megoldható, ám jelenleg csak egész típusú adatokon végzett függvények állnak rendelkezésre. A jó minőségű rekonstrukció miatt számunkra csak a lebegőpontos számábrázolás jöhetett szóba, ezért ezt a lehetőséget el kellett vetni. Azonban a sugarak kezelését megfordítva az írási ütközés, így a szinkronizáció elkerülhető. A voxelek középpontját a fókuszponttal összekötő vetítési egyenes segítségével meghatározhatók a térelem vetített koordinátái. Természetesen a jobb képminőség érdekében érdemes legalább lineáris interpolációt alkalmazni a projekció kiolvasásakor, amit egyébként a GPU-k céláramkörökkel támogatnak. A párhuzamosítás így triviális, ha a visszavetítést minden voxelre külön szálon indítjuk el, így egy voxelre biztosan egyszer fog lefutni az algoritmus. A visszavetítésbe célszerű beleépíteni a geometria korrekciót is a gantry forgása során fellépő hibák, rezgések kiküszöbölésére. Ezt a műveletet minden egyes bejövő nyers, vetületi képre sorosan kell elvégezni. A grafikus kártya teljesítménye az általunk módosított algoritmussal lehetővé teszi, hogy a rekonstruált térfogatban a voxelek méretét mindhárom irányban 10 30 mikrométeresre csökkentsük, ami kisállat vizsgálatok esetén igen jó felbontású képet eredményez (4. ábra). A még gyorsabb rekonstrukció lehetővé teszi a valós idejű képalkotást, ami azt jelenti, hogy a gyűjtés során az elkészült projekció azonnal bekerül a rekonstrukciós eljárásba, ami rögtön fel is dolgozza, majd a részlegesen rekonstruált kép még gyűjtés közben azonnal megtekinthető a készülék képernyőjén. Az utolsó nyers kép elkészítése után így a vizsgálatot végző személy azonnal kiértékelheti a teljesen elkészült térfogati adatot.
Valósidejű CT rekonstrukció a Mediso NanoPET/CT R -ben 7 2. ábra. A rekonstrukció sebessége a vizsgált architektúrákon 3. ábra. Egérről készült teljestest felvétel, voxel méret: 100 µm 5. Eredmények A fenti technikák használatával sikerült valamennyi lépést egyetlen számítógépen megvalósítani, amely befér a készülék burkolata alá, ezáltal kompakt preklinikai eszközt eredményezve. Ez GPU-k használata nélkül lehetetlen lett volna, hiszen egy 16 PC-ből álló kétmagos processzorokkal rendelkező számítógép klaszter összteljesítménye nagyjából 350 gigaflop és körülbelül 4 kw áramot fogyaszt. Ezzel szemben a jelenleg elérhető egyik leggyorsabb videokártya teljesítménye egy teraflop, ami háromszorosa az előbbi megoldásnak, ugyanakkor fogyasztása pedig csak 170-200 W. A számítógép klaszterrel elérhető leggyorsabb rekonstrukció 236 másodpercig tart [5], míg a fentebb említett grafikus kártyával (NVIDIA GeForce GTX280) azonos paraméterek mellett ehhez mindössze 40 másodpercre van szükség. Az eredményeinkből látható, hogy a két GTX280 típusú videokártyát tartalmazó rendszer, körülbelül hatvanszor olyan gyors, mint egy ma korszerűnek tekinthető négymagos CPU (2. ábra). Annak érdekében, hogy egyaránt tudjunk végezni nagy látómezejű egésztest méréseket (3. ábra) valamint kis látómezejű, de igen nagy felbontású vizsgálatokat (4. ábra), a röntgen detektort és a röntgencsövet egy sínen motorikus vezérléssel mozgathatjuk a forgástengelyhez viszonyítva. Ezáltal a felvett képek
8 Domonkos B., Jakab G. 4. ábra. Egérfejről készült nagyfelbontású felvétel, voxel méret: 50 µm nagyítása változtatható, és ezzel együtt változik a látómező nagysága valamint a rekonstrukciót követően adódó voxel méret, mely meghatározza az elérhető legjobb felbontást. A több-gpu-s, CUDA alapú, FDK CT rekonstrukciós alrendszer kifejlesztését követően számításintenzívebb iteratív rekonstrukciós technikák GPU implementációjával szeretnénk foglalkozni, amely lehetővé teszi a képminőség javítása mellett a vizsgálat okozta sugárterhelés csökkentését. Köszönetnyilvánítás Munkánkat a Mediso Kft. valamint az NKTH Jedlik Ányos programja (NKFP-A1-2006-0017) támogatta. A készülékfejlesztésben részt vett továbbá a Debreceni Egyetem, a Magyar Tudományos Akadémia Atommagkutató Intézete valamint a Budapesti Műszaki és Gazdaságtudományi Egyetem. Köszönjük kollégáink, Árvai László Bükki Tamás, Major Péter, Németh Gábor, Patay Gergely segítségét és konstruktív javaslataikat. Hivatkozások 1. Knaup, M., Steckmann, S., Bockenbach, O., and Kachelrieb, M. Tomographic Image Reconstruction using the Cell Broadband Engine(CBE) General Purpose Hardware. In Presentations at Computational Imaging (2007). 2. Scherl, H., Keck, B., Kowarschik, M., and Hornegger, J. Fast GPU-Based CT Reconstruction using the Common Unified Device Architecture (CUDA). Nuclear Science Symposium Conference Record (2007), 4464 4466. 3. Feldkamp, L. A., Davis, L. C., and Kress, J. W. Practical cone-beam algorithm. Journal of the Optical Society of America 1 (June 1984), 612 619. 4. Kak, A. C., and Slaney, M. Principles of Computerized Tomographic Imaging. IEEE Press, 1988. 5. Fang Xu et al. Real-time 3D computed tomographic reconstruction using commodity graphics hardware. Phys. Med. Biol. 52 3405 3419. (2007)