Curso 2006-2007.
Uso de hardware gráo para la
aeleraión de métodos algebraios de
reonstruión
Autores:
David Garía Soriano
Enrique Martín Martín
David Romero Laorden
Diretor del proyeto:
Christian Tenllado van der Reijden
os de reonstruión.
Memoria del proyeto de n de arrera
pre-sentado por David Garía Soriano, Enrique
Martín Martín y David Romero Laorden en
la Universidad Complutense de Madrid, y
realizado bajo la direión de Christian T
en-lladovan der Reijden.
Se autoriza a la Universidad Complutense a
difundir y utilizar on nes aadémios, no
omeriales, y menionando expresamente a
sus autores, tanto la propia memoria omo
el ódigo, la doumentaión y/o el prototipo
desarrollado.
Madrid, 6 de julio de 2007.
DavidGaría Soriano
Enrique Martín Martín
El objetivo de este proyeto ha sido implementarun algoritmode
reons-truión algebraia(en partiular SART, Simultaneous Algebrai
Reonstru-tion Tehnique) y aelerar su ejeuión utilizando los reursos paralelos que
ponenadisposiióndelprogramadorlasunidadesde proesamientográode
hoy en día.Para ello,primerosehan desarrolladodos variantes delalgoritmo
que sólo utilizan la CPU, en las que nos hemos basado para posteriormente
portara laGPUlas partessuseptiblesde obtener una mejorasubstanial de
veloidad.Porúltimo,sehaanalizadoen ambasvariantes laalidadde las
re-onstruiones yelspeedup obtenidorespetoalasimplementaionesenCPU,
asíomo elimpatoen laalidadde losdiversos parámetrosongurablesdel
algoritmo.
Summary
Theaimofourprojethasbeentheimplementationofanalgebrai
reons-trution algorithm (known as SART, Simultaneous Algebrai Reonstrution
Tehnique)and improvement ofits runningtimeby making use ofthe
massi-vely parallelomputationalresoures whih today's graphisproessingunits
providethe programmerwith.Tothis end,two variantsof thealgorithmhave
rst been developed whih are exeuted entirelyon the CPU, and upon
whi-h we have based our subsequent porting to the GPU of those parts having
the potential to enjoy a substantial inrease in speed. Finally, the quality of
both variants'reonstrutions has been analyzed,along withthe speedup
ob-tained over CPU implementations and the impat that various ustomizable
Ténias de reonstruión algebraia, GPGPU, reonstruión
tridimen-sional, tomografía omputerizada, CT, CT de rayos paralelos, ART, SART,
hardware gráo, CUDA.
Keyword list
Algebrai reonstrution tehniques, GPGPU, three-dimensional
reons-trution,omputedtomography,CT,parallel-beamCT,ART,SART,graphis
Queremos mostrar nuestra gratitud a Christian Tenlladovan der Reijden
y a Manuel Prieto Matías por habernos dado laoportunidad de elaborar este
proyeto y porlaayuda que nos han proporionado.
También queremosaprovehar esta oasión paraagradeer aCarlosÓsar
Sánhez Sorzano, del CNB, la doumentaión amablemente edida y el alto
Índie de guras v
Índie de tablas ix
1. Introduión 1
2. Los algoritmosde reonstruión algebraia 7
2.1. Introduióna latomografía . . . 7
2.2. Desripión delproblema . . . 8
2.3. Representaión delvolumen . . . 12
2.4. Formalizaión delproblema . . . 15
2.5. El métodoKazmarz . . . 17
2.5.1. Fases delmétodo. Proyeión y bakproyeión. . . 21
2.6. ART . . . 23
2.6.1. Fatores del modelo que afetan a la alidad de la re-onstruión . . . 24
2.6.1.1. Funiones base . . . 24
2.6.1.2. Fatorde relajaión . . . 27
2.7. SIRT . . . 28
2.8. SART . . . 29
3. Unidades de proesamiento gráo (GPUs) 33 3.1. Generalidades . . . 33
3.2. Pipeline gráo . . . 34
3.2.2. Etapa de rasterizaión . . . 37
3.3. Computaiónde Propósito Generalen GPUs (GPGPU) . . . . 39
3.3.1. Stream Proessing . . . 40
3.3.2. Caraterístias de rendimiento . . . 42
3.3.2.1. Ventajas einonvenientes de laGPGPU . . . 44
3.3.2.2. ComparativaGPU-CPU . . . 44
3.4. CUDA . . . 46
3.4.1. Introduióna CUDA . . . 46
3.4.1.1. Evoluión de lasGPU's . . . 46
3.4.1.2. Una nueva arquitetura . . . 47
3.4.2. Modelo de programaión . . . 49 3.4.3. Thread Bathing . . . 49 3.4.3.1. Bloques de hilos . . . 50 3.4.3.2. Rejillas de hilos . . . 51 3.4.3.3. Modelo de memoria . . . 51 3.4.4. Implementaiónhardware . . . 52 3.4.4.1. Modelo de ejeuión . . . 53
3.4.5. Serie Nvidia GeFore 8800 . . . 54
3.4.6. Fatoresinuyentes en elrendimiento . . . 55
3.4.6.1. Instruiones aritmétias y de ontrol . . . 55
3.4.6.2. Instruiones de aesoa memoria . . . 57
3.4.6.3. Tamañode bloque . . . 58
3.4.7. Reomendaiones para el rendimiento . . . 59
3.4.8. Limitaiones . . . 60
4. Implementaión en CPU 63 4.1. Formato de los arhivos. . . 64
4.2. Supuestos previos . . . 65
4.3. Esquema genério . . . 67
4.4. Problemas de laimplementaión inmediata . . . 67
4.5. Proyeión . . . 74
4.5.1.1. Algoritmo de Cohen-Sutherland generalizado
a tres dimensiones . . . 75
4.5.1.2. Pseudoódigo de la proyeión por rayos . . . 78
4.5.2. Proyeión dirigidapor vóxeles . . . 80
4.6. Cálulo de laorreión . . . 83
4.7. Bakproyeión . . . 83
4.8. Orden de las proyeiones . . . 84
5. Implementaión en GPU 87 5.1. Estrutura general . . . 89
5.2. Proyeión y álulode lasorreiones . . . 92
5.2.1. Proyeión dirigidaporrayos . . . 93
5.2.2. Proyeión dirigidaporvóxeles . . . 95
5.3. Bakproyeión . . . 98
5.4. Consideraiones nales . . . 98
6. Resultados experimentales 101 6.1. Calidad de lasreonstruiones . . . 101
6.1.1. Calidad visual . . . 101
6.1.2. Error uadrátio medio . . . 105
6.2. Speedup . . . 110
6.2.1. Anaión de los algoritmos. . . 111
6.2.2. Comparaión de tiempos . . . 115
6.3. Parámetros delalgoritmoque afetan ala alidad . . . 120
6.3.1. Fatorde relajaión
λ
. . . 1206.3.2. Número de iteraiones . . . 124
6.3.3. Ordenaión de las proyeiones . . . 127
7. Conlusiones y trabajo futuro 131 7.1. Conlusiones. . . 131
7.2. Trabajofuturo . . . 134
A. Instalaión y uso 137 A.1. Instalaión . . . 137
A.2. Uso . . . 139
B. Visualizador de volúmenes Chimera 141 B.1. Instalaión . . . 141
B.2. Uso general . . . 142
B.2.1. Visualizaiónde un volumenonreto . . . 143
B.2.1.1. Display Styles . . . 143
B.2.1.2. Coloreado . . . 145
C. Introduión a la mirosopía eletrónia de transmisión 147
1.1. Isosuperie delantígeno T . . . 2
1.2. Superie delantígeno T, vista inferior y superior . . . 2
1.3. Planos de lareonstruión del antígenoT . . . 2
2.1. Obtenión de imágenes tomográas . . . 9
2.2. Ángulos de Euler . . . 12
2.3. Representaión de la proyeión . . . 14
2.4. Representaión delmétodoKazmarz . . . 18
2.5. Osilaión en elmétodoKazmarz. . . 20
2.6. Perl transversal de dos blobs tridimensionales . . . 26
2.7. Efeto delfator de relajaión . . . 28
3.1. Etapas prinipales delpipeline gráo . . . 34
3.2. Estrutura básia delpipeline gráo . . . 36
3.3. Etapas de lafase de geometría . . . 38
3.4. Rasterizaión . . . 38
3.5. Evoluiónde lasoperaiones de punto otante en CPU y GPU 46 3.6. Capas software de CUDA . . . 48
3.7. Operaiones de leturay esritura en memoriaen CUDA . . . 49
3.8. Thread Bathing en CUDA . . . 50
3.9. Modelo de memoriaen CUDA . . . 52
3.10.Modelo hardware de CUDA . . . 53
4.1. Pseudoódigo delSART . . . 68
4.3. Pseudoódigo de la orreión . . . 70
4.4. Pseudoódigo de la bakproyeión . . . 71
4.5. Gráo de los 4posiblespíxeles veinos . . . 73
4.6. Proyeión porrayos . . . 75
4.7. Algoritmo de Cohen-Sutherland en 3D . . . 76
4.8. Detallede una de las seis regiones posibles . . . 77
4.9. Pseudoódigo de la proyeión dirigidaporrayos. . . 79
4.10.Proyeión porvóxeles . . . 81
4.11.Pseudoódigo de la proyeión dirigidaporvóxeles. . . 82
5.1. División en gruposde
2
×
2
píxeles . . . 945.2. Splatting . . . 96
5.3. Paso de reduión . . . 97
6.1. Volumenoriginal delantígeno T . . . 103
6.2. AntígenoT reonstruidoutilizandola suite Xmipp. . . 104
6.3. Reonstruión del antígenoT usando vóxeles . . . 105
6.4. Reonstruión del antígenoT usando blobs . . . 106
6.5. Volumenoriginal delomplejo DnaB-DnaC . . . 107
6.6. DnaB-DnaC reonstruido utilizandola suite Xmipp . . . 108
6.7. DnaB-DnaC reonstruido usandovóxeles . . . 109
6.8. DnaB-DnaC reonstruido usandoblobs . . . 110
6.9. AntígenoT: tiempos proyetando porrayos en GPU . . . 112
6.10.AntígenoT: tiempos proyetando porvóxeles en GPU . . . 113
6.11.DnaB-DnaC:tiempos proyetando por rayos en GPU . . . 114
6.12.DnaB-DnaC:tiempos proyetando por vóxeles . . . 115
6.13.Sphereblob:tiemposproyetando por rayos en GPU . . . 116
6.14.Sphereblob:tiemposproyetando por vóxelesen GPU . . . 117
6.15.Calidad de Cuboloid (blobs)según
λ
. . . 1216.16.Calidad de Cuboloid (vóxeles) según
λ
. . . 1226.17.Calidad de DnaB-DnaC (blobs)según
λ
. . . 1226.18.Calidad delantígeno T(vóxeles) según
λ
. . . 1236.19.Calidad de TwoRings (blobs)según lasiteraiones . . . 124
6.21.Calidad de Sphereblob (blobs) segúnlas iteraiones. . . 125
6.22.Calidad de Sphereblob (vóxeles) según lasiteraiones . . . 126
6.23.Calidad de Sphereblob (vóxeles) ordenando proyeiones . . . . 128
6.24.Calidad de TwoRings (blobs)ordenando proyeiones . . . 128
6.25.Calidad delantígeno T(vóxeles) sin ordenarproyeiones . . . 129
6.26.Calidad delantígeno T(vóxeles) ordenando proyeiones . . . 129
B.1. Pantallaprinipalde UCFS Chimera . . . 142
B.2. Apliaiónde un ltro de suavizado . . . 144
B.3. Ventana Surfae Color . . . 145
B.4. Coloreado de efeto radial . . . 146
C.1. Mirosopio eletrónio de transmisión . . . 149
3.1. Evoluiónde lasGPUs frente alas CPUs . . . 45
6.1. Error uadrátio medio para reonstruiones en CPU . . . 111
6.2. Error uadrátio medio para reonstruiones en GPU. . . 111
6.3. Tiempode usuario para reonstruiones en CPU . . . 118
6.4. Tiempode usuario para reonstruiones en GPU . . . 118
6.5. Speedup para distintas reonstruiones . . . 119
6.6. Speedup frente aXmipp . . . 119
Introduión
Este doumento tiene el objetivo de dar una visión a distintos niveles sobre
nuestro proyeto de Sistemas Informátios, pudiéndose enontrar en él
infor-maiónsobrelosdistintosaspetosqueloforman.Enesteapítulosepretende
introduirbrevementeuáles son nuestrosobjetivos, lasherramientasque
he-mos utilizadoy la estruturadel resto de la memoria.
El área de apliaión del proyeto es el de la Tomografía
Compute-rizada, uyo propósito es la reonstruión de la estrutura tridimensional
interna de un objeto a partir de una serie de proyeiones bidimensionales
digitalizadas obtenidas al iluminarlo desde diversas direiones. Las
proye-iones medidasontienen loqueseonoe omo latransformada de rayos X
delobjeto(estoserá preisado másadelante,perolaidea ateneren uenta es
que adavalormedidoen un puntode laimagendependede todos lospuntos
del objeto que ha atravesado un rayo, inuyendo más los puntos on mayor
densidad). Estas imágenes son proesadasporun omputador,y lasalida del
proeso es una modelizaión delvolumen que onuerde lomejor posible on
los datos experimentales (idealmente, una funión real que a ada punto del
espaio le asigne, por ejemplo, la densidad del objeto en él). Un ejemplo de
reonstruión delantígeno Tse muestra en lasguras 1.1, 1.2 y 1.3.
Figura 1.1:RepresentaióndelaisosuperiedelantígenoT.Fuente:[Sor02℄
Figura 1.2:RepresentaióndelasuperiedelantígenoT,vistadesdelaparteinferiory
superiorrespetivamente.Fuente:[Sor02℄
Figura 1.3:Algunos planos de la reonstruión del antígeno T tomados desde arriba.
Fuente:[Sor02℄
Wil00℄; itaremos tres de ellas a modode ejemplo (y sin pretender en modo
alguno ubrir todas las posibilidades):
Enmediinasonindispensablesomoherramientadediagnóstioen
hos-pitales,alpermitirlaobservaióndelosórganosinternosdelospaientes
on una preisiónsinpreedentes.
Enbiologíamoleularseutilizanparaladeterminaiónexperimentalde
la estrutura de omplejos maromoleulares.
En astronomíase aplianala determinaiónde ladistribuiónde brillo
transmisión) tiene una serie de limitaiones (rango de tamaños del objeto,
máxima resoluión alanzable, nivel de ruido...), y por tanto los algoritmos
de reonstruión se adaptan en funión delmétodoempleado para la
adqui-siión de datos,on eln de tratar de superar estas limitaiones.
Nosotros nos hemos entrado en los llamados métodos algebraios de
re-onstruión, de naturaleza iterativa. Engeneral, nonos preoupamos por la
naturaleza exata de los objetos a reonstruir, ni de los detalles del
proe-so físio de obtenión de datos; en su lugar hemos abordado el problema de
reonstruión desde un punto de vista matemátio, teniendo en uenta el
signiado real de los datos de entrada y la presenia de ruido en las
pro-yeiones medidas.Sin embargo,sehan utilizadodatosproporionadosporel
Centro Naional de Biotenología (CNB-CSIC), y la alidadde los
resulta-dos hasido omparadaonlosproduidosporlasuitede apliaionesXmipp
(X-Windows-based MirosopyImage Proessing Pakage,paquetede
proe-samientode imágenesde mirosopíabasado enX-Windows), desarrolladoen
el CNB y de libre distribuión,bajo lieniaGPL [SMVM
+
04,MMM
+
96℄.
Laprinipaldesventaja delasimplementaionesen software de estos
algo-ritmosesquesetratade unproeso omputaionalmenteintensivo.Debido al
gran número de proyeiones neesario para obtener reonstruiones de alta
alidad,quejuntoalaneesidaddeonseguirlamayorresoluiónposiblehae
reer demasiado el volumen de datos a tratar, el proeso aree de la
velo-idad quesería deseable en muhas apliaiones. Como ejemplo, elprograma
de reonstruión de Xmipptardaunos
24
minutosen reonstruirun objetoa partir de1000
imágenes de128
×
128
píxelesen una CPUde altagama(Intel Core duo 6600a 2.4Ghz).Este problema se aentúa partiularmente el aso de los algoritmos
ite-rativos, uyo uso es preferible sobre otras alternativas (las que trabajan en
pro-yeiones no están distribuidas uniformemente en ángulo o no ubren todas
las orientaiones). Esto provoa que la veloidad a la ual la reonstruión
puede ser obtenida se vea limitada y es lo que ha impedido su uso rutinario
en apliaiones línias en tiempo real. Existen, por tanto, dos vías por las
que afrontar esta situaión: disminuir la omplejidad omputaional global
pormedio de lasténias algorítmias y/outilizar hardware espeializadode
alto rendimiento.
Hay ierto número de implementaiones en hardware de estos algoritmos
disponiblesomerialmente, bienusandoiruitosintegrados de apliaión
es-peía(ASIC) obienmedianteFPGAs (FieldProgrammableGate Arrays).
Este enfoque,sinembargo,sufre de unaserie de importantes desventajas,
en-tre lasqueseenuentransuelevadoosteysufaltade exibilidad(elhehode
que el algoritmo esté ya implementado en hardware hae muy difíil
modi-arlo o generalizarlo,y supone un obstáulo para desarrollos posteriores).Así
pues, esdeseable busarotra soluiónsipretendemos quesuuso sea prátio,
tanto para investigadores omopara línios.
AunquehoyendíalasnuevasCPUs hanalanzadoelsuientepoderpara
ser ompetitivas en el terreno de la reonstruión bidimensional, no se
pue-de armar lo mismo en lo referente a las reonstruiones tridimensionales.
Afortunadamente, existe una soluión intermedia entre una implementaión
software en CPU y eluso de hardware espeío: el empleode hardware
grá-o programable.Trataremos de expliar brevemente a ontinuaión porqué
esta idea esapliable anuestro problema.
Losproesadores gráos (Graphial Proessing Units, GPUs)son
proe-sadores diseñados para el renderizado de gráos, on el objetivo de realizar
la mayoríade las operaiones neesarias en hardware, aligerando así laarga
de trabajo delproesadorentral.Esta esuna funionalidaden prinipiomuy
espeía, pero on eltiempolosfabriantes han idoañadiendo posibilidades
de programaión on el n de permitir iertos efetos espeiales,
los meanismos de ahing resultan menosefetivos,y areen de ténias de
prediión de saltos o ejeuión espeulativa), pero on una ventaja muy
im-portanteparanosotros:dadoqueelproesode renderizadotieneunaltogrado
de paralelismo, lasGPUs ofreen una gran poder de ómputo para
apliaio-nes paralelasy omputaionalmenteintensivas.
Igualmenteimportanteeselhehode quelosproesadoresgráos
progra-mables ofreen una relaiónentre preioy apaidad de ómputo inigualada;
atualmente es posible adquirir GPUs muy potentes para uso doméstio en
ordenadores personales.
Todo esto haimpulsado enormemente eldesarrollode lasténias
onoi-das omo GPGPU (General Purpose Computation on Graphial Proessing
Units, o omputaión de propósito general en GPUs) durante los últimos
años. Estos métodos han sido apliados on éxito en una gran variedad de
ampos(proesamientode imágenes y señales,visiónporomputador,
odi-aión/deodiaióndevídeo,reonoimientodevoz...),ysonespeialmente
exitosos en aquellas apliaiones que se enajen dentro delmodelo de Stream
Proessing (que detallaremos más adelante, en la seión 3.3.1), y al que los
algoritmos iterativos de reonstruión se ajustan razonablementebien.
Portanto,elobjetivode nuestroproyeto esonseguir unaaeleraión
sig-niativa del proeso de reonstruión tomográa, sin sariar por ello la
preisión obtenida, medianteténias de GPGPU. Enpartiular, nos
entra-remos en las variantes del método onoido omo Algebrai Reonstrution
Tehnique (ART), queatúa de formaiterativa,partiendo de una estimaión
iniialdelvolumenyproediendoaorregirlodeauerdoalasdifereniasentre
las proyeiones que sealularían on esa estimaión y las proyeiones
me-didas. Como ya hemos menionado,el programa de reonstruión de Xmipp
es nuestra prinipal referenia on la que omparar resultados y tiempos de
Laformulaiónmatemátia delproblema de tomografía,así omolos
dis-tintos métodos de reonstruión algebraia y las ténias relativas a ellos
serán el objeto delsegundo apítulo.
En el terer apítulo se profundiza en el interior de un unidad de
pro-esamiento gráo, detallando la estrutura del pipeline gráo y su
funio-namientoyademás,analizaremosde manerageneralla arquiteturautilizada
pornosotros(Compute UniedDevieArhiteture,CUDA),introduidapor
NVIDIA para lafamiliade tarjetas GeFore 8800.
En los apítulos uarto y quinto se desriben las implementaiones
lleva-das a abo (en CPU y en GPU, respetivamente), analizando sus ventajas e
inonvenientes; y en el sexto apítulo se detallan los resultados obtenidos de
manera experimental teniendo en uenta laspruebas realizadas.
Entre las onlusiones detalladas en el séptimo, y último, apítulo, abe
destaarquenuestraimplementationenGPUonsiguemejorasdeunordende
magnitud en lostiemposde reonstruión on respeto a las
implementaio-nes existentes en CPU,onlosmismosasos depruebay,loqueesigualmente
importante, onuna alidadde reonstruión quenotiene nadaqueenvidiar
Los algoritmos de reonstruión
algebraia
2.1. Introduión a la tomografía
Como ya hemos omentado en el apítulo anterior, existen prinipalmente
dos tipos de algoritmos de reonstruión: los que trabajan en el dominio de
Fourier,relaionandolosdatosde proyeión medidosonlatransformada de
Fourierbidimensionalde sus seiones; y losmétodosalgebraios, que
onsis-ten en asumir que las seiones deluerpo forman una matriz de inógnitas,
y onstruir y resolver el sistema de euaiones asoiado, repitiendo el
proe-so si es neesario hasta onseguir que la reonstruión enaje on todas las
proyeiones. Losprimerosson losmás utilizadosatualmenteen apliaiones
médias (dondepredomina la FBP, Filtered Bakprojetion o retroproyeión
ltrada), pero para ser apliados on la exatitud requerida neesitan una
distribuión uniforme de los ángulos de proyeión y una gran antidad de
proyeiones, loque en muhas situaiones noesposible. Cuando esto ourre
(porejemplo,uando faltanproyeiones en algunasorientaiones), los
méto-dos algebraiosson la mejoreleión. Eneste trabajo desribimos on detalle
mi-rosopía eletrónia 1
;elletorinteresado puedeenontrar informaiónsobre
los métodos basadosen transformaionesen [KS88℄.
2.2. Desripión del problema
Vamos a desribir on más preisión el problema que queremos resolver. El
primer paso es representar el volumen a reonstruir omo una funión real
f
:
R
3
→
R
denida en el espaio tridimensional,que sepretende determinar a partir de sus proyeiones bidimensionales. Esta funión representa lain-tensidad de ierta magnitud físia dependientedel proeso onreto utilizado
para laobteniónde lasimágenes; porejemplo,en elasode latomografíade
rayosX,
f
representaunosoeientesdeatenuaión(opaidadalosrayosX); en el aso de la mirosopía eletróniarepresenta elpotenialeletrostátio.En ualquier aso,
f
está relaionada de manera direta on la distribuión de masa en el espaio delobjetoonsiderado. Nuestro objetivo esreonstruirlos valores de esta funión on la mayorpreisión posible. Como es obvio, en
la prátia debemos obtener una representaión nita de la funión que la
aproxime adeuadamente.
En el proeso de obtenión de imágenes tomográas, se parte de una
fuentedesde la quese lanzanmúltiplesrayos(ver gura2.1). No nos
preou-paremosde momentode lageometríaexata dela distribuióndeestos rayos;
losdos asos másfreuentementeonsideradosson elusode proyeiónde
ra-yos paralelos(elaso más omún en mirosopía eletrónia,y el que hasido
onsiderado en este trabajo)o ónios (todos partiendo de un mismopunto).
De todas formaslaeleiónonretanoafetaaladisusión quesigueen este
apartado, por lo que el letor puede imaginaruna serie de rayos paralelos si
así lodesea.
Asumiremos, omo es usual, que los rayos viajan en línea reta. Para el
1
El letor que desee omprender on algo de detalle la mirosopía eletrónia, que
uso de losmétodos algebraiosesesenial onoer latrayetoriaexata de los
rayos; en otras ondiiones, los resultados normalmente areerán de
signi-ado. (Sin embargo, si los efetos de refraión y difraión existen pero son
suientemente pequeños, es posible [AK84℄ ombinar estos métodos on el
uso de ténias digitalesde seguimiento de rayoso ray-traing).
Al llegar los rayos al reeptor, la imagen resultante está en funión de la
Transformada de rayos X del objeto, que noes más que la integral de línea
de lafunión
f
alolargodelatrayetoriaquehaatravesadoelrayo.(Estamos asumiendo quelosrayostienengrosor nulo;en asoontrario,tendríamosquetomar realmente laintegral de volumen de todo elrayo).
Figura2.1: Obtenióndeimágenestomográas
Por ejemplo, en el aso de los rayos X, la intensidad reoletada en un
punto deree exponenialmentesegún laintegralde línea:
I
=
I0
exp
−
Z
∞
−∞
f(p0
+
t
·
~v) dt
(donde
p
0
es el origen del rayo y~v
un vetor unitario que india su dire-ión), pero lo importante es que la relaión entre las intensidades medidas ylas originales están en funión de estas integrales,en ualquiera de los
méto-dos utilizados.Esta relaiónesademásinvertible,porloquedespués deierto
preproesamiento sobre los datos medidos podemos onsiderar que los datos
que tenemos a nuestra disposiión son diretamentelas transformadas de
ra-yos Xdel volumen.Nótese que,alontrarioque en una imagenfotográade
un objeto, las imágenes resultantes dependen de su interior y no sólo de su
frontera.
Naturalmente, una sola proyeión no basta para denir la forma de un
objeto tridimensional, por lo que es neesario tomar ierto número de
imá-genes desde distintas direiones; el objetivo es enontrar una funión
f
que onuerde on todas ellas (y, a ser posible, que la soluión sea únia, de talmanera que se pueda asegurar que los datos obtenidos son suientes para
una reonstruión inequívoa). Claramenteesto no esposible en laprátia,
inluso aunque supusiéramos ausenia de ruido, pero existe un teorema muy
importante en tomografía que nos die qué informaión podemos obtener a
partir de una proyeión.
Esteresultado sedenomina Teoremade laseiónentral,yeslabaseen
la que se fundamentan la mayoría de los métodos basados en
transformaio-nes. Establee, en elaso que nos interesa,que latransformada de Fourier de
la proyeión de un volumen esigual auna seiónbidimensionalde la
trans-formada de Fourier del volumen entero, tomada según la misma direión.
Esto nos da una ondiión neesaria y suiente para onseguir uniidad en
la soluión en ausenia de ruido: lasproyeiones deben ser tales que ubran
ompletamenteelespaiodeFourierasoiadoalvolumen.Comoesobvio,esto
no se puede onseguir on un número nito de proyeiones, pero si se toma
un número suientemente grandeque ubra apropiadamente bien el espaio
se pueden interpolarlos valoresatodoel espaiotridimensionalonun ierto
grado de exatitud. Obsérvese que los métodos basados en una inversión
di-reta de lastransformadas de Fourierde lasproyeiones neesitan por tanto
ubrir lamayorantidadposiblede ángulosde manerauniforme,loqueomo
apli-aión.
Enuantoalosángulosdeproyeión,dependendiretamentedelproeso
on elquesehan obtenido lasimágenes, porlo quepodría pareer quedeben
ser onoidos. Enrealidad, en el ampo de la mirosopía eletrónia esto no
esasíde senillo,puestoquelasimágenestomadaspueden orrespondera
mo-léulasdistintas,porloqueseneesita realizarotroproesoiterativoenelque
se parte de ierta informaión relativa a los ángulos,se reonstruye el objeto
suponiendoqueestainformaiónesexata, yseajustade nuevo laestimaión
angular. En este trabajo nos oupamos úniamentede la reonstruión
asu-miendo que los ángulosson onoidos on exatitud, que es la parte integral
del proeso; una posible ampliaión(véase el apítulo7) onsistiría en llevar
a abo elproeso entero en laGPU.
Laformausual de espeiar laposiióny direión desde lasque hasido
obtenida una imagenes espeiar una matriz de rotaión que transforme la
direión del rayo en el eje
Z
, y el plano de la imagen (perpendiular a él) en elXY
; de este modoel proeso de proyeión orresponde simplemente a una proyeión vertial (esto es, desehar la terera oordenada artesiana).Tradiionalmente, en mirosopía eletrónia se ha utilizad la representaión
basada en ángulosde Euler. Elorigen delsistema de oordenadas se sitúa en
el entro del volumen a reonstruir, y se espeia una rotaiónalrededor de
un ejeualquieraquepaseporelorigenonuna ternadeángulos
(α, β, γ)
.Su signiado, ilustrado en lagura 2.2, es el siguiente:α
(ángulo aimutal):india larotaión realizadaen torno al ejeZ
β
(ángulode inlinaión):rotaión respeto alnuevo ejeY
γ
(ángulo de rotaiónen elplano): rotaiónrespeto al últimoZpro-Figura2.2:ÁngulosdeEuler
duto de lastres matries de rotaiónorrespondientes, es
cos
(
γ
)
cos
(
β
)
cos
(
α
)
−
sin
(
γ
)
sin
(
α
)
cos
(
γ
)
cos
(
β
)
sin
(
α
) +
sin
(
γ
)
cos
(
β
)
−
cos
(
γ
)
sin
(
β
)
−
sin
(
γ
)
cos
(
β
)
cos
(
α
)
−
cos
(
γ
)
sin
(
β
)
−
sin
(
γ
)
cos
(
β
)
sin
(
α
) +
cos
(
α
)
cos
(
β
)
sin
(
γ
)
sin
(
β
)
sin
(
β
)
cos
(
α
)
sin
(
β
)
sin
(
α
)
cos
(
β
)
En resumen, los datos de entrada para nuestro proeso onsisten en una
serie de proyeiones que ontienen las transformadas de rayos X del objeto,
onvenientementenormalizadas(onelobjetivodehomogeneizarlosnivelesde
densidad de grisde imágenes orrespondientes adistintasmirografías),junto
on la informaión de los ángulos de Euler asoiados a ada una de ellas; y
la salida es una representaión de la funión
f
que se pretendía determinar. Cómoexatamenteseráestarepresentaión,y uáleselfunionamientode losmétodos algebraios, es elobjetode lassiguientes seiones.
2.3. Representaión del volumen
Las ténias de reonstruión algebraia forman una familia de algoritmos
que utilizan un proeso iterativo de resoluión de sistemas de euaiones
li-neales para obtener la reonstruión busada. Para desribirlos, empezamos
vo-lumen onsuientepreisión, de talmaneraquelafuniónquebusamos (la
funión
f
omentada en la seión anterior) la podamos esribir, aproxima-damente, omo unasuma nita ponderada de funiones base; de esta manerala salida de nuestro algoritmo será simplementelos oeientes de esta suma
ponderada:
f
(x) =
N
X
i
=1
f
i
·
g
i
(x)
donde
g
i
, i
∈
1
. . . N
son lasfuniones base, uyo soporte está típiamente li-mitadoaunazonareduida delespaioyson normalmentetranslaionesunasde otras.
Consideremos que el volumen está dividido en una rejilla ompuesta de
eldas formadas por ubos de lado unidad (que denominaremos vóxeles, ya
quesetratadelanálogotridimensionalalospíxelesde unaimagen).El
mode-lo más simplese basa en suponer que
f
toma un valoronstanteen ada una de las eldas; en este aso, podemos usar una funión base para ada elda,de talmaneraque lafunión asoiada ala elda
i
tiene valor1 dentro de ella y fuera en el exterior. Llamaremos vóxeles también a estas funiones base (alo largo de este trabajo, el ontexto dejará laro si nos estamos reriendo a
las eldas en sí o a las funiones base asoiadas a ellas). De esta manera, la
euaión anteriorseinterpreta omoque
f
esonstante dentrodel vóxel (el-da)i
, y toma elvalorf
i
(ver gura 2.3, en laque semuestra elaso análogo bidimensional). Claramente, eluso de un número mayorde vóxeles supondráuna mejorresoluión en el resultado obtenido.
A lolargode esta expliaiónusaremos vóxelesuyo lado eselmismoque
ladistaniaentredospíxelesadyaentesalaimagen.Porsupropianaturaleza,
el uso de vóxeles omo funiones base impide obtener volúmenes on bordes
suaves; en laseión2.6.1.1examinaremosotras posibilidades,omolosblobs,
que intentan soluionar este problema.Notemos, sinembargo,que laeleión
de lasfuniones base noinuye en gran medida sobre elalgoritmode
Figura 2.3:Representaióndelaproyeión.Fuente:[KS88℄
integralesde líneade ada una de las funionesbase paraada rayo).
En el proyeto ha sido onsiderada la utilizaión tanto de vóxeles omo
de blobs. En ualquiera de los asos, las funiones base son opias idéntias
unas de otras, on la únia difereniade que están desplazadas en el espaio.
Los blobs, sin embargo, gozan de otra araterístia deseable de la que
are-en losvóxeles, que essusimetríaesféria. Este heho, unido alaobservaión
anterior, permiteelpreálulo de lasintegralesde líneade un rayoen funión
2.4. Formalizaión del problema
La araterístia prinipaldel ART es que, una vez denida la rejilla en que
se divide el volumen y las funiones base que vamos a utilizar, se plantea un
sistema de euaiones lineales uyas inógnitas son los oeientes asoiados
a adaelda(elpesode sufuniónbase asoiada),yadaeuaión representa
la mediiónexperimentalde laintegral de línea de uno de los rayoslanzados.
La soluión aeste sistema será la modelizaióndel objeto reonstruido.
Deloquehemosdihohastaahorasedesprendequeadaeldaontribuye
al valorde un píxel on una antidad igual a la integral de la funión base a
lo largo del rayo. Para el aso de un vóxel, en el que la funión es onstante
dentrode laelda ynulafuerade él,esta integral oinideon lalongituddel
segmento interseión entre el rayo y el vóxel, multipliadapor el oeiente
orrespondientea esa elda.
Para enontrar el sistema de euaiones a resolver, onsideremos un
volu-men formado por
N
vóxeles y un onjunto de proyeiones formadas porM
rayos (que identiaremoson sus píxeles asoiados).Estableemosportantola siguiente nomenlatura:
w
ij
i
∈
1..N, j
∈
1..M
: integralde línea de la porióndelrayoi
-ésimo que orta alvóxel númeroj
,f
j
j
∈
1..N
: peso de lafunión base asoiada alvóxelj
-ésimo.p
i
i
∈
1..M
: integral delrayoi
-ésimo, es deir,el valorobtenido en el píxeli
Entones la relaión que oneta el volumen y las proyeiones obtenidas
se resume en:
N
X
j
=1
w
ij
f
j
=
p
i
i
∈
1..M
(2.1)nuestro sistemaompleto será de laforma
w11f1
+
w12f2
+
w13f3
+
. . .
+
w1
N
f
N
=
p1
w
21
f
1
+
w
22
f
2
+
w
23
f
3
+
. . .
+
w
2
N
f
N
=
p
2
w
31
f
1
+
w
32
f
2
+
w
33
f
3
+
. . .
+
w
3
N
f
N
=
p
3
. . .w
M
1f1
+
w
M
2f2
+
w
M
3f3
+
. . .
+
w
M N
f
N
=
p
M
(2.2)que esun sistema linealde
M
euaiones enN
inógnitas. Esimportante ob-servar,sinembargo,quelamatriz delsistema esmuydispersa, puestoqueunrayo sólopuedeatravesar un ierto númerode eldasdelvolumen;asípues la
gran mayoríade los
w
ij
son ero 2.
Resolver este sistema es senillo en teoría, pero las grandes dimensiones
que tiene haen impratiable una resoluión basada en métodos matriiales
onvenionales omo la eliminaión gaussiana. Por ejemplo, para reonstruir
un volumen de
64
×
64
×
64
usando250
proyeiones de64
×
64
, el sistema de resultante tendríaM
= 1024000
euaiones enN
= 262144
inógnitas. Además,este problemade dimensionesseveagravadouandoon elaumentodel tamañodel volumen a reonstruir,ya que ree proporionalmenteal
nú-mero de eldas que onsideremos (que asu vez es proporionalal ubo de la
longitud de un lado delvolumen).
Para tratareste problema,losmétodos de reonstruiónalgebraia
adop-tan un enfoque iterativo para aproximar la soluión del sistema. Nos
oupa-remos aontinuaión de lasbases de este enfoque(el métodoKazmarz), así
omo de losrepresentantes más importantes de esta familiade métodos.
2
Intuitivamente,elnúmeromáximodevóxelesquepuedeatravesarunrayodeberíavariar
demaneralinealonlasumadelosladosdelvolumenynoonelnúmerototaldeeldasen
elvolumen.Comoveremosenelapítulo4,estoesiertoyademásesdegranimportania
2.5. El método Kazmarz
El métodoKazmarz, también llamado método de las proyeiones, esun
al-goritmoiterativo,propuesto en
1937
porKazmarz,para resolversistemasde euaioneslinealesomoelanterior.Susaraterístiaslohaenespeialmenteadeuadoparanuestrasneesidades,debidoasus propiedadesdeonvergenia
y a que, omo veremos, se puede esribir omo un proeso de proyeión de
un volumen/orreiónqueseadaptamuynaturalmenteanuestroproblema.
El algoritmo está basado en onsiderar que la soluión a las euaiones
2.2 está dada por un punto en el espaio eulídeo
N
-dimensional. Cada una de las euaionesorresponde portanto aun hiperplanoenR
N
,siendo
w
i
su vetornormal.Laténiapararesolverelsistemaonsisteenempezaronunaestimaión iniial de lasoluióny proeder atomaruna serie de proyeiones
ortogonales suesivassobre adauno deloshiperplanos; uandoseha
realiza-do una iteraión sobre todos ellos, se puede repetir el proeso sies neesario,
hasta que sesatisfaga algún riterio de onvergenia jado de antemano.
Pa-ra permitir una mejor visualizaión de su forma de operar, mostraremos un
senillo ejemplo de dos euaiones en dos variables(linealmente
independien-tes, porlo que la soluiónes únia) donde se podrá observar gráamente el
proeso:
w11f1
+
w12f2
=
p1
w21f1
+
w22f2
=
p2
(2.3)
Este sistemadene dos retas en el plano,y su soluiónse halla en la
in-terseión de lasmismas.
Seomienza onelestableimientodeuna estimaióniniialdelasoluión
s0
,quenormalmentesetomanula(esdeir,seempiezaenelorigen),aunquesi seposeealgunainformaiónsobrelanaturalezadelasoluiónsepuedegenerarotra quereamos más erana a la soluiónreal. Esta soluión
s0
se proyeta sobre una de las dos retas, obteniendo una nueva estimaións
1
, que se pro-yeta sobrelaotra reta onsiguiendounatereraestimaións2
.Si elsistematienesoluiónúnia,éstaestáenlainterseiónde todosloshiperplanos,y
re-pitiendoeste proesode proyeionessobre lasretasobtenemosuna suesión
de puntosque onvergeaella(lademostraiónde laonvergeniaqueda fuera
del alanede este doumento,pero puede enontrarse en [Tan71℄). Podemos
ver laapliaióndelmétodopara nuestropequeño sistemaen lagura 2.4.
Figura 2.4:RepresentaióngráadelmétodoKazmarz.Fuente:[KS88℄
Una vez desrito el método general, pasemos a estudiar los fatores que
afetan a la onvergenia del algoritmo.Aunque en general nose obtendrá la
soluión exata al abo de un número nito de proyeiones, la apliaiónde
unnúmerosuientementeelevadodeiteraionesnosllevaaunaaproximaión
a la soluiónbastante el. Existe un aso, sin embargo, en el que la soluión
se alanzaalabode un númeronito de pasos,y esimportantedarseuenta
de ellopara estudiar laspropiedades de onvergenia del algoritmo.
que entones alanzaríamoslasoluiónexata despuésde haberrealizadosólo
dos proyeiones, y es fáil ver que en general si partimos de
n
hiperplanos ortogonales en un espaion
-dimensional, enontraremos la soluión después de haber proesado todos ellos. Por otro lado, si las dos retas fueran asiparalelas,seneesitaríaun grannúmerode iteraionesparallegarauna
apro-ximaión satisfatoria.
Por tanto,laonvergenia del métododepende en gran medidade los
án-gulos queformen los hiperplanos. En teoría sería posible realizar una
ortogo-nalizaiónprevia (usandoporejemploelonoidométodode Gram-Shmidt),
pero tal proedimiento, aparte de no ser omputaionalmente fatible (tiene
omplejidad O(
N
3
), la misma que el método de Gauss que deidimos
evi-tar), tiende apoteniarelefeto delsiempre presenteruido. Portodoesto, la
opión más prátia, disponible en varias implementaiones(inluida la
pro-porionadaen Xmippylanuestra),esordenarlasimágenes antesde tratarlas
para intentarevitar queproyeiones oninformaiónmuypareida(tomadas
desde direiones muy eranas) sean tratadas onseutivamente, pues esto
supondría proyetar sobredos hiperplanosasi paralelos.
En uanto a la presenia de ruido, es inevitable en esenarios de
reons-truión reales, bien sea por errores en la estimaión de los ángulos, en la
normalizaión de las imágenes, o en las propias mediiones. Esto, unido al
heho de que los sistemas quese suelen utilizaren la prátia están
sobrede-terminados (hay más euaiones linealmenteindependientes que inógnitas),
implia que el sistema será en realidad inonsistente. En estos asos el
mé-todo Kazmarz no onverge, sino que se alanza un patrón asi periódio de
osilaiones torno a una veindad donde estaría la soluión real sin ruido. Si
la magnitud del ruido no es exesiva, esta veindad es aeptable y nos lleva
a buenas reonstruiones, pero uando el ruido es alto los resultados de la
proyeión son impredeibles. Un ejemplo de esta osilaiónen torno a la
so-luión puede observarse en lagura 2.5.
indeter-minado. En nuestro ejemplo bidimensional,esto orrespondería a quelas dos
retas fueran de heholamisma. Entonestodoslos puntosde la retaserían
soluiones válidas,yalapliarelmétodosimplementeproyetaríamos unavez
y nos quedaríamos on ese resultado, obteniendo por tanto la soluión más
erana al punto de partida. También se puede demostrar [Tan71℄ que este
resultado esiertoen general:elalgoritmoonvergealasoluiónmás erana
a la estimaión iniial(en elsentido de la normaeulídea
n
-dimensional,que oinide on laque se obtieneal tomarel error uadrátio medio).Figura2.5:OsilaiónenelmétodoKazmarz.Fuente:[KS88℄
Es senillo obtener la expresión matemátia orrespondiente al proeso.
Comenzamosonunasoluióniniial
f
(0)
1
,f
(0)
2
,f
(0)
3
,...f
(0)
N
quevetorialmente denotaremosf
~
(0)
(donde el superíndie denota el número de proyeiones ya
hehas). Esta soluión iniial es proyetada sobre el hiperplano que dene la
primera euaión de (2.2), llegando a
f
~
(1)
.
f
~
(1)
el hiperplano denido por la segunda euaión de (2.2), resultado
f
~
(2)
, y así suesivamente. Comow
i
h
w
i
, w
i
i
es el vetor unitario perpendiular al i-ésimo
hiperplano,tenemos que
~
f
(
i
)
=
f
~
(
i
−
1)
+
λ
w
i
h
w
i
, w
i
i
donde
λ
esladistaniadef
~
(
i
−
1)
asuproyeiónortogonalsobreelhiperplano
(que será
f
~
(
i
)
).Dado que
f
~
(
i
)
tiene quesatisfaer la euaión delhiperplano
h
f
~
(
i
)
, w
i
i
=
p
i
(2.4)sustituyendo la euaión anterior en esta relaión obtenemos
λ
=
p
i
− h
f
~
(
i
−
1)
, w
i
i
porlo quenalmente resulta
~
f
(
i
)
=
f
~
(
i
−
1)
−
h
f
~
(
i
−
1)
, w
i
i −
p
i
h
w
i
, w
i
i
·
w
i
(2.5)Por último, notaremos que una implementaión ingenuade esta euaión
llevaríaaun algoritmode omplejidaden tiempo O(
NM
), que esdemasiado lento en la prátia. Sin embargo, esta omplejidad puede reduirseonside-rablemente si tenemos en uenta, omo ya observamos, que la mayor parte
de los
w
ij
son ero. Comentaremos esto on más detalle en el apítulo de implementaión (seión 4.4).2.5.1. Fases del método. Proyeión y bakproyeión
Existeotramaneradeinterpretarlaeuaión (2.5),másilustrativapara
nues-tros propósitos. Se puede ver que para alular la estimaión
i
-ésima se ha de apliar una orreión a la soluión que se tenía; el valorde la orreióndepende asuvez de ladifereniaentre laproyeiónteória(dada porel
pro-duto esalar del numerador) y la proyeión medida (
p
i
). Se puede esribir (2.5) de una formaalgodiferente para poner énfasis en lavariaiónque sufreada vóxel:
f
j
(
i
)
=
f
(
i
−
1)
j
+
p
i
−
q
i
P
N
k
=1
w
ik
2
w
ij
∀
j
∈
1
. . . M
(2.6) dondeq
i
=
h
f
~
(
i
−
1)
, w
i
i
=
M
X
k
=1
f
(
i
−
1)
k
w
ik
(2.7)es deir,
q
i
es la integral de línea del rayoi
-ésimo atravesando el volumen atualyp
i
laintegralde esemismo rayoatravesandoelvolumenreal;setoma la diferenia y se distribuye en la estimaión del volumen según un fator denormalizaión dado por
w
ij
P
N
k
=1
w
ik
2
.
Vistode esta forma,el métodopuede separarse en tres fases:
1. Proyeión: alula
q
i
, la suma que daría el rayoi
-ésimo al atravesar el volumen atual2. Calular la orreión: sehalla ladiferenia entre la suma delrayo real
y lasuma delrayo atual,y se normalizaesa diferenia.
3. Bakproyeión:seapliadihaorreiónaadaunodelosvóxelespara
obtener
f(i)
.Esta división delmétodoen tres fases reeja la naturaleza delproeso (al
n y alabolas imágenes medidasnoson más queproyeiones, y loque
ha-emos es ompararlas on las que obtendríamos si el volumen onidiera on
nuestra estimaión, y orregir en funión del resultado), y además nos será
muy útil posteriormente, uando hablemos más detalladamente de la
imple-mentaión del algoritmo.
En uanto a los ostes omputaionales, baste deir por ahora tanto la
proyeión omo labakproyeión tienen omplejidadO(
n
3
) en tiempopara
una imagensitenemosproyeionesde
n
2
rayosyun volumende
n
×
n
×
n
;en la prátia, sin embargo, alrededor del 90% del tiempo de ejeuión se debeal proeso de proyeión (porque es el que tiene que alular los rayos que
interseanaadavóxelylosoeientes; estainformaiónyaestá almaenada
paraelpasodebakproyeión).Estoesiertotantoparalasimplementaiones
en CPU omopara la nuestra en GPU.
2.6. ART
Algebrai Reonstrution Tehniques (ART) es el nombre dado tanto a un
algoritmodereonstruiónomoatodaunafamiliade variantessuyas,sobre
algunasde lasuales nos ouparemosen lasseiones siguientes. Elalgoritmo
básio del ART essimplementeel método Kazmarz,ya desrito, aumentado
on un fatorde relajaión,uyouso sirve parahaerlomástolerantealruido
y que desribiremos en breve. Antes, sin embargo, examinaremos algunas de
las failidades que permiten los métodos algebraios en general (y de ART
en partiular) de las que areen los métodos basados en transformaiones.
Estas derivan del heho de que estos algoritmos permiten inluir fáilmente
restriiones espeiales, omo podrían ser porejemplo:
1. Informaiónsobreelsoporteolaformadelobjeto(laregióndeespaiono
vaía):sóloatualizamosaquellosvaloresdentrodelsoporte, reduiendo
así el número de variables. Esta reduión de variables podría también
inrementarse si, por ejemplo, supiéramos on seguridad que el objeto
tiene alguna simetría.
2. Informaión sobre la funión a reonstruir: si sabemos porejemplo que
sólotomavaloresnonegativos,podemosforzarestarestriiónponiendo
a 0 todos los valores que,una vez alulados,resulten ser negativos.
3. Informaiónsobre elvolumen queoupaelobjeto(olamasa,si
onoe-mos su densidad media): si sabemos que el volumentotal no puede ser
mayor que
V
, en ada paso ponemosa ero todos losvaloresalulados que noestén entre losV
mayores.Además, omo ya hemos visto, el método onverge a la soluión que más
empezando on una estimaión no nula, de auerdo a la informaión de que
dispongamos.
2.6.1. Fatores del modelo que afetan a la alidad de la
reonstruión
Antes de terminaresta introduiónal método ART en general, dediaremos
unas líneas a introduir algunos fatores que pueden afetar a la alidad de
lasreonstruiones.Estossonprinipalmentedos:ladistribuióndedensidad
dentro de los vóxeles y el estableimiento de un fator de relajaiónpara las
orreiones.
En losalgoritmos de reonstruión basados en ART es normal que estos
dosfatoresseanparámetrosdenidosporelusuario.Comoeselusuarioquien
puedeteneraesoainformaiónsobrelanaturalezadelobjetoareonstruiry
las araterístias(tamaño, nivel de ruido...)de lasproyeiones, seleofree
laposibilidaddeajustarlosyrealizarpruebas ondiversasombinaionespara
enontrar lasque satisfagan sus neesidades espeías.
2.6.1.1. Funiones base
Hasta ahora hemos onsiderado, omo aproximaión, que la distribuión de
la funión a determinar es onstante dentro de los vóxeles, y oupa todo el
volumen de éste. Por eso para alular la integral del rayo
i
-ésimo en el vó-xelj
-ésimodeíamosquesolodependíade ladistaniaquedihorayoreorría dentrodeesevóxel.Aunqueestemodelodedensidaddalugarabuenasreons-truiones y noesmuyompliadode alular (apartede ser elmás utilizado
porlospaquetesdesoftwarequetrabajanonvolúmenes)existeninnidadde
opiones.
En algunas implementaiones simplemente se sustituyen los pesos
(inte-grales de un rayo en un vóxel) por 0 ó 1, (dependiendo de si el rayo orta al
ompromiso entre alidad de la reonstruión y veloidad de álulo de la
integral de rayo. Esto failitalos ómputos, pero da lugar a reonstruiones
on una gran antidad de loque se onoe omo salt and pepper noise,que
surge de las inonsistenias que se introduen en el sistema de euaiones al
sustituirlos
w
ij
realesporaproximaionesnodemasiadobuenas. La introdu-ión de un fator de relajaión (que omentaremos en la siguiente seión)ayuda a eliminareste ruido y a produir reonstruionesmás suaves.
Unmodelomás avanzadotratade obtenervolúmenes de bordessuaves(lo
ual sediultaon eluso de vóxeles, puestoque porsupropiadeniión son
disontinuasenlosbordes).Entrelassoluionespropuestas,estánlasfuniones
de Kaisser-Bessel modiadas, omúnmente onoidas omo blobs [MHC98℄.
Elvalorde estasfunionesauna distania
r
delentrodelblob estádado por:b
m
n
(r) =
„q
1
−
(
r
a
)
2
«
m
I
m
„
α
q
1
−
(
r
a
)
2
«
I
m
(
α
)
si0
≤
r
≤
a
0
en otro asodonde
a
es el radio del blob,α
es un fator de suavizado,m
es el orden de la funión de Bessel (el blob resulta ser derivable hasta ordenm
),n
es la di-mensión del espaio en que se dene (en nuestro ason
= 3
puesto que nos enontramos enR
3
) e
I
m
(x)
esla funión de Bessel de primeraespeie de or-denm
. Elnombre de Kaisserse debea que lafunión de Besselse enuentra multipliadaporuna ventanade Kaisser quelalimitaen elespaio.La gura2.6 representa el orte de algunos blobs representativos, on los parámetros
más utilizados.
Eluso de blobs tieneademáslaventaja añadidade quepresentan simetría
esféria, por lo que las integrales de línea sólo dependen de la distania al
entro del blob y pueden ser prealuladasen una tabla en la que seuse esta
distaniaomoíndie,ahorrandotiempode álulodurantelaproyeión(tal
enfoque no es posible on el uso de vóxeles). En partiular, en el aso de las
Figura 2.6:Perltransversaldedosblobs tridimensionalesdeparámetros
r
= 2
,m
= 2
yα
= 3
,
6
,10
,
4
implementaión on blobs, la proyeión (integral de línea) a una distania
s
∈
R
del entroestá dada por:p(s) =
2
a
α
t
3
α
2
t
+1
sinh
α
√
t
−
α
3
√
t
cosh
α
√
t
I
2
(
α
)
si0
≤
s
≤
a
0
en otro aso (2.8) dondet
= 1
−
s
a
2
y
I
n
(x)
es la funión de Bessel de ordenn
(de primera espeie). Estas funionesse denen por:I
n
(x) =
∞
X
k
=0
(
−
1)
k
(x/2)
n
+2
k
k! Γ(n
+
k
+ 1)
donde
Γ()
esla funión gammade Euler.Este modelo esfério puede ampliarseoloandomás de una esfera dentro
de ada vóxel,posiblementepermitiendosusolapamiento.Unejemplode esto
es eluso deuna estrutura úbiaentrada en eluerpo(BCC), quees laque
ada uno de losvérties delvóxel, además de uno en el entro.
2.6.1.2. Fator de relajaión
En sistemas que varían tratando de onverger a valor, es usual introduir un
fator de relajaión. Lo que se pretende es disminuir la inuenia del ruido,
para lo que se introdue un fator uyo efeto es dar más peso a los
valo-res pasados que al último alulado. En nuestro aso se orresponde on, en
vez de haerlaproyeiónompletahaiaesehiperplano,reorrerúniamente
una fraión dada. Se muestra en la gura 2.7 el resultado de realizar una
relajaión de manera ontinua on
λ
= 0,5
; la línea azul india la señal que ambiay laroja laatualizaiónde losvalores3
. Se apreia quela variaión
se realiza alprinipio de manera gradual,de tal maneraque se onsigue una
onvergenia exponenial al nuevo valor. Si el pulso resultara ser espurio y
volviera rápidamenteasuvaloriniial,laestimaiónhabríavariadopooy se
reuperaríaelvalorverdaderoenpootiempo.Estoaumentalaestabilidaddel
algoritmo,reduiendoelimpatodelruidoen lareonstruión. Sin embargo,
esta mejora en la alidadse hae aexpensas de laveloidad de onvergenia,
que omo es obviose vedisminuida.
Fijándonosenlaeuaión(2.6),vemosqueestefatorafetaríadelaforma:
f
j
(
i
)
=
f
(
i
−
1)
j
+
λ
p
i
−
q
i
P
N
k
=1
w
2
ik
w
ij
∀
j
∈
1..M
(2.9)Es posible demostrar que la ondiión neesaria y suiente para que el
métodoKarmaz,usandoun fator derelajaión,onverja,esqueéstetenga
un valoromprendidoenelintervalo(0,2).Intuitivamenteestoeradeesperar,
puestoqueualquiervaloreneste intervaloaerará lasoluiónalhiperplano,
mientras que ualquier otro valordejará la nueva estimaión a una distania
3
Conmáspreisión:silalíneaazuleslagráadelafunión
w
(
x
)
,larojaeslagráadey
(
x
)
, yelambioseprodueenx
= 0
,sehadibujadolasoluióndelaeuaióndiferenialy
′
(
x
) =
λ
(
w
(
x
)
−
y
(
x
))
, que en nuestro aso (w
(
x
) =
cte
=
w
) está dada pory
(
x
) =
Figura2.7:Efeto delfatorderelajaión
mayor o igual que la anterior. En efeto, para
λ
= 0
el punto permaneería inalterado, mientras que paraλ
= 2
lo que se obtiene es la reexión de ese punto sobre el hiperplano, on lo que su distania a él permanee onstantey nose ha avanzado en laobtenión de una mejoraproximaión.Es fáil ver
que ualquier valor en (0, 2) resulta en una nueva soluión más erana al
hiperplano,y ualquiervalorsuperior a2 o inferior a0 loaleja.
2.7. SIRT
Simultaneous Iterative Reonstrution Tehnique (SIRT) es una variaióndel
ARTque normalmenteonsigue mejoresreonstruiones aosta deuna
on-vergenia más lenta. Para ello seusa alguna distribuiónde densidad senilla
y para adarayosealulalaorreión queseleapliaríaaadavóxel. Pero
en vez de apliarla inmediatamente después de tratar ese rayo, se reorren
todos los demás alulando las orreiones asoiadas a ellos. Una vez todos
han sido proesados, se alula la media de las orreiones para ada vóxel,
que es la orreión que se aplia entones. Cuando se termina esta primera
2.8. SART
Simultaneous Algebrai Reonstrution Tehnique (SART) es un algoritmo
perteneiente a la familia del ART reado por A.H Andersen y A.C. Kak
[AK84℄ en 1984. El objetivo es tratar de ombinar lo mejor de los dos
méto-dos desritos anteriormente: laspropiedadessupresoras de ruidode SIRTy la
rápida onvergenia de ART.
Comométododereonstruión algebraia,atúaapliandoiteraionesde
proyeiones y bakproyeiones alvolumenhasta llegar auna soluión. Pero
adifereniadeART,queaplialaorreiónporadarayo,yde SIRT,quelas
apliasólotrashaberproesadotodoslosrayos,SARTalulalasorreiones
utilizando todos losrayosde una determinadaproyeión. Unavez quelosha
proesado ontinúa on la bakproyeión, apliando a ada vóxel una media
ponderada de las orreiones obtenidas por ada rayo. Una desripión de
este algoritmoes:
El algoritmo SART
Iniializar volumen
Hasta alanzar la onvergenia
1) Seleionar una proyeión P
2) Proyetar del volumen
Calular la suma de ada uno de los rayos de la proyeión P,
dando lugar a los valores de los píxeles.
3) Calular la orreión
Para ada píxel, alular la diferenia de los valores reales
de la proyeión P y la suma de los rayos alulada.
4) Bakproyetar la orreión
Distribuir las orreiones entre todos los vóxeles del volumen.
Laexpresiónmatemátiautilizadaparalaorreiónesligeramentedistinta
f
j
(
k
)
=
f
(
k
−
1)
j
+
λ
M
X
i
=1
p
i
−
N
X
n
=1
w
in
f
n
(
k
−
1)
N
X
n
=1
w
in
w
ij
M
X
i
=1
w
ij
(2.10)donde
N
es el número de vóxeles del volumen,M
es el número de rayos en la proyeiónatual,p
i
esla integral medidadel rayoi
-ésimo,f
(
k
)
j
esel valor delvóxelj
después de habertratadok
proyeiones,w
ij
eslaintegraldelrayoi
-ésimo en elvóxelj
, yλ
es elfator de relajaión.Como puede verse, el interior del sumatorio del numerador alula la
orreión para el vóxel
j
debido al rayoi
. El numerador entero alula la suma ponderada de todas esas orreiones para todos los rayos de unapro-yeión
P
,dandomayorpesoalosrayosonlosquehaymayorinterseión,y el denominadoralula lasuma de todas lasintegralesde rayode losrayosdela proyeión
P
que han pasado por elvóxelj
.Así pues, la orreión que se le aplia alvóxelj
esuna media ponderada de todas lasorreiones debidas a los rayos de la proyeiónP
, efetuando una relajaiónon elfatorλ
.Como en este método las sumas de rayos se alulan para todos los
ra-yos de una proyeión, tiene sentido proponer varias formas de haerlo. Hay
básiamentedos: proyeión orientada apíxel y proyeión orientada a vóxel.
En la proyeión orientada a píxel se parte del píxel y se reorre ada rayo
alulando qué vóxeles atraviesa y on qué integral. Sumando todas ellas se
obtienelasumadelrayo,esdeir,elvalordelpíxel.Enlaproyeiónorientada
a vóxelseproedede una maneradiferente, sereorrenlosvóxelesalulando
qué píxeles afetarían y uanto. Para efetuar este proedimientolo usual es
usar una ténia onoida omo splatting (véase seión 5.2.2). Se divide el
volumen en franjas y ada una se trataporseparado, omo si ada una fuese
onseguir elvalornal loquetendremos quehaer essumardihos valores de
todas lasfranjas.
Unade lasaraterístiasmássorprendentes delSARTesqueproporiona
reonstruiones de gran alidadon solouna iteraión (estoes, on solouna
Unidades de proesamiento gráo
(GPUs)
3.1. Generalidades
Una unidadde proesamientográo(GPU) esun miroproesadordediado
espeíamente al renderizado de gráos; es deir, el proesamiento de una
desripión de alto nivel de una esena para obtener una imagen
bidimensio-nal rasterizada, liberandoa la CPU de gran parte de la arga de trabajo del
proeso y aelerándolo signiativamente. Su desarrollo ha sido fuertemente
impulsado por la industria de los videojuegos (de la que emana la neesidad
de generarimágenes renderizadasde alidadinematográa en tiemporeal),
y omo resultado hoy en día están ampliamente disponibles en ordenadores
personales, estaiones de trabajo y videoonsolas.
Lo importante para nuestros propósitos es que el proeso de
renderiza-do puede ser paralelizado muy eientemente, y por tanto la estrutura de
las GPUs es espeialmente adeuada para apliaiones altamenteparalelas y
omputaionalmenteintensivas;omo veremos, paratales apliaioneses
mu-ho más efetiva una implementaión en una GPU programable que en una
CPU. Por este motivo, dediaremos este apítulo a estudiar la arquitetura
pipeline gráo, así omo las ventajas e inonvenientes que se derivan de su
uso para tareas distintas de para lasque fueron originalmentediseñadas.
3.2. Pipeline gráo
La entrada al pipeline gráo es, típiamente, una desripión en alto nivel
de una esena tridimensional generada por una apliaión que se ejeuta en
la CPU. Esta esena suele estar representada poruna serie de polígonos,on
informaiónasoiadasobreoloresymateriales.Elresultadoesunaimagen
bi-dimensional rasterizada y almaenadaen elframebuer. Rasterizada quiere
deir simplementequeelresultadoesuna matrizque ontiene elolor nalde
adapíxelindividual,yportantoyaestálistaparasermostradadiretamente.
Laestrutura básiadelproeso suele onentrase en tornoa tres grandes
etapas oneptuales (ver gura3.1):
Figura 3.1:Pipeline gráo.Lastresetapasprinipales
1. Apliaión: es el programa que se ejeuta en CPU, on omandos
re-feridos alsubsistema gráode la GPU.NormalmenteaedealaGPU
2. Geometría:alulaquéesloquesevaamostrar,ómoydónde.En
tér-minosmás preisos, seenargadeproyetarlostriángulosen lapantalla
y alularatributos omoiluminaión,olory orientaiónde las
super-ies. Todoesto sellevaaabomedianteoperaiones porpolígono,omo
transformaionesdeoordenadas,iluminaión,generaióndetexturasde
oordenadas y reorte. Este proeso se puede llevar a abo en paralelo
para ada uno de lostriángulos.
3. Rasterizaión: se alulan los píxeles (fragmentos) de la imagen
re-sultante y se proesan usando mapeado de texturas, interpolaión de
olores, visibilidad y mezlado de transparenias. Aquí se opera por
pí-xeles independientemente.
Cada una de estas fases se divide a su vez en varias etapas, y ada una
de ellasatúade maneraindependientey simultánea,proesando elresultado
de la anterior y enlazando la salida on la entrada a la siguiente etapa. El
rendimientode launidadgráade proesamientoestá prinipalmente
deter-minado por lalateniade laetapa más lenta.
Laestrutura básia delpipeline de renderizado esla quese observaen la
gura3.2. Enlasseionessiguientesseprofundizaráen adaetapade lasque
se aaban de menionar.
3.2.1. Etapa geométria
Laesenaestá denidapormediode vérties,normales, oloresy propiedades
de iluminaiónde losmateriales, queseonreta medianteprimitivas
propor-ionadas porla API gráa. Cadaelemento de la esenapuede estar denido
en un maroloaldeoordenadas distinto(loalspae);elometido dela
eta-pa geométria es llevara abo una serie de transformaionesde oordenadas
uyoresultadonalseanpíxeles delpuertodevista(que esdondesemostrará
la imagen). Las distintas fases de esta etapa, que pueden verse en la gura
3.3, son:
Figura3.2:Estruturabásiadelpipeline gráo
están iniialmenteada uno enmarados en un sistema de oordenadas
propio (loal spae),setransforman en oordenadas delmundo (world
oordinates), que es un sistema universal de oordenadas en el espaio
tridimensional en el que se enmaran todos los objetos; el resultado de
esta transformaión (denominadamodelado) seonvierte a su vez a un
nuevo marode oordenadas (eye oordinates)que representa la esena
vista desde la ámara (en funión de su posiión y orientaión). Esta
división en dos pasos es más bien de aráter oneptual, puesto que
lo usual es que ambos se realien en uno, que se redue a apliar una
transformaión afín dada por la matriz de modelado y vista, que
ombina ambos efetos.
2. Iluminaión por vértie: seaplian modelosde iluminaióna los
ob-jetos en funión de las posiiones y araterístias de las fuentes de luz
(que pueden tratarsede luzambiente, foos omnidireionales,foos
ó-nios...),propiedades de losmateriales (laproporiónde luzambiente,
difusayespeularquereejan),normalesalassuperiesyposiióndela
ámara.Estosmodelos sonsóloaproximados;una simulaiónrealistade