Tesis 12370
Tesis 12370
Tesis 12370
TESIS
El presente estudio también aporta una función de la medida de similitud entre dos
imágenes, así como un conjunto de puntos de referencia para aproximar a una imagen
con otra, estos puntos son parte de los parámetros ópticos obtenidos por la metodología.
Agradecimientos técnicos
A mi director de tesis el Dr. Ricardo Barrón Fernández, por su experta guı́a para
el desarrollo de este trabajo, ası́ como por su apoyo y sobre todo por su amistad.
A mis sinodales, el Dr. Isaac Juan Rudomin, el Dr. Sergio Suarez y el Dr. Serguei
Pavlovich Levashkine, por sus muy acertados consejos y por su apoyo para la ade-
cuada culminación de este trabajo.
A la Dra. Nareli Cruz por su clases, sus sabios consejos y su experta guı́a.
A todo el personal del CIC, comenzando por mis profesores, y a todo el personal
en general por su apoyo.
xi
Agradecimientos personales
Ante todo deseo agradecer a mis padres Lucia Carbajal Vilchis y Juan Olguı́n
Trejo por todo, en particular por siempre enseñarme que la educación y el estudio
son la base del desarrollo personal.
xiii
Índice general
Resumen VII
Abstract IX
Agradecimientos técnicos XI
Índice general I
Índice de figuras V
Índice de tablas IX
1 Introducción 1
1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. Relevancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4.2. Objetivos especı́ficos . . . . . . . . . . . . . . . . . . . . . . 3
1.5. Alcances del trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6. Contribuciones del trabajo . . . . . . . . . . . . . . . . . . . . . . . 4
1.7. Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.8. Organización del trabajo . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Trabajos relacionados 7
2.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2. Revisión del estado del arte . . . . . . . . . . . . . . . . . . . . . . 10
2.3. Trabajo relacionado . . . . . . . . . . . . . . . . . . . . . . . . . . 11
i
ii ÍNDICE GENERAL
3 Marco teórico 21
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3. El proceso de renderizado . . . . . . . . . . . . . . . . . . . . . . . 22
3.4. Radiometrı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.1. Percepción del color . . . . . . . . . . . . . . . . . . . . . . 26
3.5. Heurı́sticas bioinspiradas . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5.1. Evolución diferencial . . . . . . . . . . . . . . . . . . . . . . 28
3.5.2. Optimización por cúmulo de partı́culas . . . . . . . . . . . . 30
3.6. Unidad de procesamiento gráfico . . . . . . . . . . . . . . . . . . . 31
3.6.1. Caracterı́sticas del sistema. . . . . . . . . . . . . . . . . . . 34
7 Conclusiones 113
7.1. Aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.3. Productos de la investigación . . . . . . . . . . . . . . . . . . . . . 115
Referencias 117
B Renderizado 125
B.0.1. Etapa de aplicación . . . . . . . . . . . . . . . . . . . . . . 125
B.0.2. Etapa geométrica . . . . . . . . . . . . . . . . . . . . . . . . 126
B.0.3. Etapa de rasterizado . . . . . . . . . . . . . . . . . . . . . . 127
iv ÍNDICE GENERAL
Glosario 145
Índice de figuras
v
vi ÍNDICE DE FIGURAS
ix
x ÍNDICE DE TABLAS
Finalmente como parte del uso de una arquitectura paralela para mejorar el de-
sempeño en velocidad, se demuestra que la implantación de heurı́sticas bioinspirada
es paralelizable, lo que mejora respecto al nivel de granuralización de la implantación
usada y a que tanto del código a ejecutar se programa en el GPU.
vii
Abstract
This work is about a design and development for a parameter estimation method-
ology from real objects image obtained with a digital camera for, afterward, use these
obtained parameters as input data for an illumination model in computer generated
graphics rendered images, as close as posible to the real objects image.
Apart from other methodologies that use an open loop for parameter estimation,
the proposed methodology uses a close loop for the estimation of these illimination
model rendering parameters, by using a non-supervised bioinspirated heuristic.
In this work we are able to see that the precision level of the obtained parameters
is straigthforward dependent of the used illumination model accuracy. The better the
illumination model, the better the acuracy for the obtained parameters.
This work also add a function capable to compare two images and assign a differ-
ence percentage between both images. Present work adds too a set of image reference
points, used to bring near generated images to objetive image, aquired one, this set
of point are part of metodology obtained optical parameters.
ix
Capı́tulo 1
Introducción
1.1. Motivación
La búsqueda de imágenes fotorrealistas, comienza desde los primeros traba-
jos en 1945 de Jay Forrester del MIT en ASCA (Navy’s Airplane Stability And
Control Analyzer), creando el sistema de despliegue de texto e imágenes en un
osciloscopio, el problema de la graficación ha sido un reto que gradualmente ha
ido aumentando, actualmente las gráficas por computadora se usan de forma tan
cotidiana que ya son parte de la vida diaria, y han logrado un realismo tal que
en la mayorı́a de las ocasiones no es posible percatarse de que lo que se ve en
la televisión o en el cine son gráficas generadas por computadora. Por ejemplo,
en la pelı́cula el Harry Potter 7 parte 2 se usaron más efectos por computado-
ra que en ninguna otra pelı́cula anterior (julio de 2011). A las gráficas generadas
a partir de los datos de un escenario virtual se les denomina gráficas renderizadas.
1
2 CAPÍTULO 1. INTRODUCCIÓN
1.1.1. Relevancia
Desde el punto de vista de las aplicaciones, la generación de imágenes fotorrea-
listas tiene un alto impacto económico a nivel mundial. Como ya se mencionó an-
teriormente, la industria de la cinematografı́a se ve en gran medida beneficiada
de las imágenes generadas por computadora, pero no es la única, también indus-
trias multimillonarias como la de los juegos de computadoras, las de producción y
postproducción de video, las de imágenes médicas, las de televisión (por ejemplo,
las productoras de programas infantiles), la investigación en fı́sica atómica, las
de astronomı́a, quı́mica, entre otras.
1.2. Justificación
Actualmente la mayorı́a de los métodos empleados para la obtención de pará-
metros, no usan las condiciones actuales del escenario a renderizar ya que se basan
en el criterio y la experiencia del diseñador, lo cual tiene una gran parte subjetiva.
La solución propuesta es eliminar en la medida de lo posible lo subjetivo, por
medio del uso de Inteligencia Artificial y la metodologı́a propuesta, y volverlo
objetivo.
1.3. Hipótesis
Es posible realizar una extracción de parámetros ópticos que definen a un
objeto por medio del uso de un dispositivo sencillo de captura de imágenes y un
algoritmo bioinspirado que buscará los parámetros a encontrar; generando una
imagen a partir de un escenario virtual que contenga los mismos elementos que
la imagen original y realizando una comparación de la imagen generada contra la
imagen obtenida e intentando minimizar la diferencia entre ambas, modificando
únicamente los parámetros del modelo de iluminación a usar. Esto se realiza
mediante un dispositivo sencillo para capturar una imagen de un objeto con
parámetros desconocidos de color, reflexión y absorción de la luz.
1.4. Objetivos
1.4.1. Objetivo general
Desarrollar una metodologı́a de extracción de parámetros de iluminación para
renderizado, por medio del uso de una imagen de un escenario real como referen-
cia.
Trabajos relacionados
2.1. Antecedentes
Desde el desarrollo de la primera técnica para la interpretación de datos de
escenarios virtuales [3], que consumı́a mucho poder de cómputo, se han desa-
rrollado técnicas que gradualmente fueron mejorando la apariencia de la imagen
final, primero haciendo una interpolación bilineal de intensidades para tener cur-
vas más suaves [37], después realizando mapeos de textura [12], posteriormente
agregándole brillos especulares a los objetos [3] hasta que finalmente se llegan a
técnicas de generación fotorrealistas que brindan imágenes que usan un modelo
que simula el comportamiento de los rayos de luz [92] el cual obtiene algunas de
las imágenes más impresionantes generadas por computadora [69] y [11]. Por
desgracia, estas técnicas consumen una gran cantidad de poder de cómputo, por
lo que la comunidad de sı́ntesis de imágenes por computadora está en constante
búsqueda de nuevas técnicas que permitan obtener imágenes fotorrealistas a un
menor costo computacional. Muchas de las propuestas para resolver la generación
de gráficas por computadora van desde el tipo de estructura para el almace-
namiento de la información [29] [81], pasando por la arquitectura empleada para
el mejor desempeño de los algoritmos de renderizado [54], y por la subdivisión
espacial del entorno virtual [51] [41], y finalizando hasta la forma de la distribu-
ción de los rayos de luz [15]. Algunas de estas aproximaciones usan novedosas
técnicas de transformaciones geométricas [80] como parte de su esquema para
lograr una mejora en el desempeño. Existen también otras soluciones en las cuales
técnicas conocidas como la traza de rayos son modificadas para usar algoritmos
evolutivos con la finalidad de obtener mejores imágenes en menor tiempo con el
mismo poder de cómputo [90] y [69].
7
8 CAPÍTULO 2. TRABAJOS RELACIONADOS
1. Nivel de detalle
2. Objetos precalculados
3. Detección de colisiones
4. Secuencias precalculadas
Los algoritmos para el manejo del nivel de detalle, ası́ como los objetos precal-
culados, la detección de colisiones y las secuencias precalculadas son operaciones
que tienen la finalidad de evitar cálculos innecesarios de objetos o escenarios en
los cuales se pueden encontrar redundancias y tiempo de procesamiento perdido
que no van a tener relevancia en la imagen final; por ejemplo, si se tienen ob-
jetos que no cambian de posición, orientación o tamaño, dichos objetos pueden
ser precalculados de forma que no impacte en el tiempo de generación de una
imagen donde existen otros objetos que si tienen variantes. En el caso del nivel
de detalle, se hace que los objetos a grandes distancias tengan poco detalle (pocos
polı́gonos) y a distancias cortas muy buen detalle (muchos polı́gonos por objeto),
lo que aumenta considerablemente el desempeño del algoritmo de cálculo de la
imagen, ya que en objetos lejanos con cientos o miles de polı́gonos sólo se calculan
unas pocas decenas de polı́gonos y no existe impacto en la imagen final generada.
2. Metajerarquı́as [4]
algunas están:
Los métodos existentes para la medición de los parámetros fı́sico ópticos re-
quieren del uso de equipo muy costoso por ejemplo el que se usa para medir
las propiedades de dispersión para quı́mica coloidal [26], por medio del uso
de un Goniometro ALV modelo SP-86, un fotomultiplicador QB EMI 9863, y
un correlacionador-estructurador ALV 3000. Como fuente de iluminación usaron
un Laser de Argon-ion operado a una longitud de onda de 514.5nm, el análisis
de los datos obtenidos se proceso en varias computadoras personales (PC) con
procesadores 80286 y 80386. El experimento obtuvo datos muy útiles para su
investigación, sin embargo entrega pocos datos utilizables para la graficación por
computadora. Más recientemente se han realizado esfuerzos para la medición y
estimación de propiedades fı́sicas ópticas de los objetos con la finalidad de usar
12 CAPÍTULO 2. TRABAJOS RELACIONADOS
Para la medición directa se han usado algunos métodos, entre ellos la Gonio-
fotometrı́a la cual mide la función de fase para la dispersión en medios traslucidos
[28]. En esta técnica se usa óptica microscópica convencional pero se reemplaza
al sistema de iluminación al usar una hoja de luz Laser, lo cual proporciona una
mejor medición del medio, ya que mejora la nı́tidez de la imagen al mismo tiempo
que disminuye el nivel de ruido de fondo.
2.3. TRABAJO RELACIONADO 13
Figura 2.3: Un microscopio de hoja delgada de luz laser para oceanografı́a micro-
biana, Fuchs et al.
Una aproximación es la que realizan Fukawa et al. [30] en la cual usan un dis-
positivo de adquisición, basado en escaners laser de rango, para obtener el modelo
3D (tridimensional) de la textura de los objetos, la cual después aplicarán en sus
modelos. Esta plataforma especializada para captura de parámetros, funciona
en dos etapas: primero obtiene la información geométrica de los objetos y su
conjunto indexado de texturas 4D o BTF (Funcion de Textura Bidireccional,
bi-directional texture functions), y después comprime la base de datos de la tex-
tura usando un producto tensor de expansión. Esta información le permite a los
diseñadores renderizar los objetos desde puntos de vista arbitrarios, con ilumi-
nación y deformaciones también arbitrarias.
De forma similar Gero Muller et. al [35] usan un sistema de adquisición de
parámetros el cual está formado por una semiesfera de cámaras y luces fijas que
a diferencia de otros diseños usa un paralelismo masivo y no tiene partes móviles,
esta aproximación obtiene la textura tridimensional de los objetos ası́ como su
14 CAPÍTULO 2. TRABAJOS RELACIONADOS
Figura 2.4: Modelado de objetos basado en apariencia usando una base de datos
de texturas: captura, compresión y renderizado, Furukawa et al.
G. Müller et. al [31] diseñan un dispositivo con una sola cámara y una fuente
de luz, pero la fuente de luz se queda fija, mientras que la cámara se desplaza
en un semicı́rculo para obtener los parámetros de reflexión y color de un objeto.
El sistema requiere un ambiente medido y de control complejo ya que adquiere
una función bidireccional de textura (BTF) para la adecuada representación de
la textura del objeto en el modelo tridimensional, esta técnica brinda unos re-
sultados impresionantes, aunque sigue siendo un sistema costoso por el equipo,
el control y el cálculo asociado. Asimismo la gran cantidad de datos generados
por un sistema como éste requiere que los datos adquiridos sean comprimidos ya
que dichos datos sin comprimir pueden tener hasta 1 Gigabyte de tamaño para
81 vistas de 81 luces, con imágenes de 256x256, según Wai Kit Addy Ngan [64].
de dispersión del medio, ası́ como su fase y su ı́ndice de absorción de la luz, en-
tre otros; posteriormente usan estos parámetros en un algoritmo Motecarlo para
generar imágenes fotorrealistas con muy buenos resultados.
tros de bajo nivel para ajustar el estilo visual. Asimismo Collomose y Hall [53],
han desarrollado un sistema automático para pintura adaptiva aplicando técnicas
de búsqueda evolutiva para el aprendizaje de las máquinas, usando Algoritmos
Genéticos como un mecanismo para el control automático del detalle en la reali-
zación de las pinturas, pero únicamente en un sólo estilo de pintura.
Para el proceso de renderizado, los algoritmos evolutivos han sido usados para
obtener una mejor distribución de los haces en un algoritmo de renderizacion por
algoritmo de trazador de rayos, usando el supermuestreo de un haz de luz, como
el sistema usado por Dutre, Suykens, y Willems [69]. Beyer y Lange aplicaron
algoritmos genéticos para solucionar el problema de la integración de la radianza
en una semiesfera [7]. Ellos usaron los individuos como rayos, los cuales evolu-
cionaron para mejorar su distribución en la superficie con respecto a la radianza
incidente. Otra aproximación es la usada por Veach y Guibas, donde las rutas de
los haces son seleccionadas usando un método Metropolis para mutar las rutas
en lugar de la más comúnmente usada técnica Montecarlo. Su algoritmo comien-
za con unas cuantas trayectorias de transporte de la luz y les aplica mutaciones
aleatorias. Como resultado “En el estado fijo, las cadenas de Markov resultantes,
visitan cada trayectoria con una probabilidad proporcional a la contibución de
dicha trayectoria a la imágen” [90].
eradas con imágenes del escenario real tanto en condiciones originales como en
nuevas condiciones, el resultado es que el método predice adecuadamente la im-
agen resultante bajo condiciones nuevas de iluminación. Los parámetros que se
obtienen son el ı́ndice de reflexión difusa y el ı́ndice de reflexión especular para
los colores rojo, verde y azul.
Marco teórico
3.1. Introducción
Este capı́tulo está dedicado a proporcionar conceptos básicos de dos temas
fundamentales de este trabajo de tesis, el proceso de renderizado y la computación
heurı́stica bioinspirada. Estos temas se consideran importantes para establecer
claramente el problema que se desea solucionar. Inicialmente se comienza con los
conceptos fundamentales del proceso de renderizado y de la radiometrı́a. Tam-
bién se revisa el proceso de la percepción del color. Posteriormente se pasa a las
heurı́sticas poblacionales bioinspiradas como una herramientas que se propone
para solucionar la obtención de los parámetros ópticos de renderizado. Final-
mente se hace una revisión de la arquitectura de una Unidad de Procesamiento
Gráfico (GPU, Grapchics Processor Unit) y las caracterı́sticas del sistema de
pruebas.
3.2. Antecedentes
Las gráficas por computadora tienen una relevancia muy grande en la vida
diaria, desde la medicina, la geografı́a, la exploración, las simulaciones de fı́sica
de partı́culas de alta energı́a hasta el entretenimiento [95], Anexo A.
21
22 CAPÍTULO 3. MARCO TEÓRICO
3.4. Radiometrı́a
La radiometrı́a es el campo de la ciencia encargado del estudio de la medición
de la energı́a electromagnética, se encarga del estudio del transporte de la energı́a,
en el caso de la luz visible se encarga del estudio del transporte de la luz. En las
gráficas por computadora, el transporte de la luz es simulado únicamente en
el espectro visible de la luz. Algunos fenómenos del comportamiento de la luz,
respecto su análisis como una propagación de onda, son ignorados por ejemplo:
la fosforescencia, la fluorescencia, la interferencia y la polarización.
En las gráficas por computadora un modelo de iluminación corresponde a la
forma en la que será tratado el fenómeno de la incidencia de la luz visible sobre
3.4. RADIOMETRÍA 23
La aportación de la fuente
Donde:
Donde:
Li (x, ωi ) cos θi dωi es la suma la luz incidente de todas las direcciones mul-
tiplicada por la superficie de reflexión y el ángulo de incidencia
I(Q) = ka × Ia × C
+ SU M i : 1..m(f aten(Q)i × (kd × Idi × (N ∆Li) × Cd
+ ks × Isi × (V ∆Ri)n × Cs))
+ kr × Ir
+ kt × It
+ Ce (3.4)
Donde:
Mutación
Cruza
Selección
rado por Shi y Heberhart en 1998[79], por medio de la introducción del concepto
de inercia. El algoritmo PSO es descrito a continuación:
Ambas técnicas, ED y PSO, usan una población inicial con individuos que
representan soluciones al problema propuesto, estas soluciones deben ser repre-
sentables en forma de un vector de números reales. Para el estudio del presente
trabajo ambas técnicas de optimización son prometedoras debido a su naturaleza
poblacional, y a su capacidad de exploración y explotación del universo de solu-
ciones. Encontrar una solución óptima para los parámetros de renderización por
medio de una búsqueda exhaustiva es impráctico, sin embargo el uso de PSO y
ED ofrece una posibilidad de encontrar buenas soluciones.
En los procesadores vectoriales este concepto se lleva aún mas lejos, de forma
tal que en vez de sólo entubar las instrucciones, también se entuban los datos,
de manera que en lugar de estar decodificando instrucciones constantemente y
obteniendo los datos necesarios para completarlas, se lee una sola instrucción y a
continuación una gran cantidad de datos para operar esta instrucción sobre todos
ellos, esto permite un gran ahorro de tiempo por la parte de la decodificación de
instrucción.
Metodologı́a de extracción de
parámetros
4.1. Introducción
El presente capı́tulo comienza con una breve descripción de la metodologı́a
actualmente usada para la obtención de parámetros ópticos para su uso en la
renderización y posteriormente explica la metodologı́a que el presente trabajo
propone como una alternativa para la extracción de parámetros.
37
38 CAPÍTULO 4. METODOLOGÍA DE EXTRACCIÓN DE PARÁMETROS
2. Usar una función objetivo que compara dos imágenes y muestra su diferen-
cia en valores RGB por separado
manera independiente, de forma que se puede tener uno, dos, tres o los cuatro
leds encendidos en cualquier orden.
Para dispersar la luz de los LED, que son direccionales, en la parte superior
de la caja se colocó un plástico blanco traslucido para dispersar de manera uni-
forme la luz de los LED. Para minimizar las reflexiones externas se coloca una
tapa en la caja, figura 4.5b para que solo sea visible el lente de la cámara. Con
este dispositivo se adquieren las imágenes de los escenarios a ser usados como
referencia de la función objetivo.
4.2. ADQUISICIÓN DE IMAGEN OBJETIVO 41
Exposición = 48
Brillo = 20
Contraste = 20
Hue = 18
Saturación = 50
Sharpness = 3
Gamma = 3
Habilitar color = 1
Formato de imagen
este caso 24), el tipo de compresión (normalmente a 0, en este caso 0), el número
de datos en bytes de la imagen, etc. Sin embargo el formato BMP almacena la
información invertida en el eje Y, esto significa que una imagen adquirida por el
dispositivo de captura, se presentará invertida en el eje Y, esto debe ser consi-
derado al momento de la comparación de las imágenes. También se debe tomar
en cuenta que las imágenes se almacenan en bytes pero cada renglón debe tener
un número de elementos correspondientes a un múltiplo de 4, de otra forma el
algoritmo del formato BMP rellena con ceros el final del renglón. Estos ceros
deben ser descartados en la lectura de la imagen para que no interfieran con la
comparación respecto a la imagen generada por el algoritmo de renderizado.
F01- Función de evaluación para asignar aptitud, considerando todos los pı́xe-
les de la imagen:
i=n
X
Dif = |RGBObji − RBGT rayi | (4.1)
i=0
Donde:
n = Xmax * Y max
F02- Función de evaluación para asignar aptitud, considerando sólo los puntos
de interés sobre los pı́xeles de la imagen:
i=n
X
Dif = |RGBObji − RBGT razi | (4.2)
i=0
Donde:
n = Puntos de interés.
Se probó la función con una imagen adquirida contra la misma imagen con
un pı́xel de diferencia. Dos imágenes iguales con una variación de un pı́xel dan
una diferencia de: 147+ 137+ 134 = 418
Obj, posteriormente inicializa las partı́culas del algoritmo PSO (Particle Swarm
Optimización) y genera una población de partı́culas, posteriormente evalúa la
aptitud de cada partı́cula. La evaluación se divide en dos fases:
4.4. Algoritmo
ImagenO = Obtención de Imagen
Iniciar partı́culas
Para cada partı́cula
Para cada Variable
Selecciona un valor aleatorio entre 0.0 y 1.0
Crea vecindarios
Mientras (el criterio de parada no se cumpla)
Para partı́cula=1 a numero de partı́culas
46 CAPÍTULO 4. METODOLOGÍA DE EXTRACCIÓN DE PARÁMETROS
Calcula Aptitud
Usa variables de la partı́cula como parámetros del trazador
Ejecuta trazador de rayos y genera imagenT
Compara ImagenO con ImagenT
Calcula Velocidad
Si Aptitud de (Xp > Mejor de vecindario)
Actualiza Mejor de Vecindario con aptitud de Xp
Calcula Mejor de Vecindario
Calcula Mejor de los vecindarios
Fin de ciclo de partı́cula
Próxima Iteración hasta criterio de parada
Partı́culas = 25
Variables = 30
Vecindarios= 5
Grupos = 5
Iteraciones= 302
VMax = 0.020000
VMin = -0.020000
Resultados esperados
[XposL , Y posL , ZposL , P otenciaL , Resf , Gesf , Besf , Rpla , Gpla , Bpla ]
Se puede apreciar una ligera mejora en el color del objeto central, esfera, con
respecto a lo obtenido al usar el modelo RGB, figura 4.12.
Se uso del modelo de color HSV, como una posibilidad de mejora a los resul-
tados de las búsquedas de los individuos. Esto se justifica si se toma en cuenta
el espacio de búsqueda de un modelo RGB que puede ser conceptualizado como
un cubo el cual tiene algunos puntos que pueden ser de difı́cil acceso para los
individuos de ED, tal como las esquinas del cubo, figura 4.13.
espacio RGB.
Figura 4.14: Espacio de color HSV, se conceptualiza como una forma cónica
El uso del modelo HSV mejoró el tono del color de la esfera con respecto
a los modelos RGB usados con anterioridad. Por lo cual es lógico pensar que a
la Evolución Diferencial le benefició el espacio de búsqueda HSV ya que pudo
realizar una mejor exploración de parámetros.Para una información adicional de
los modelos de color se puede revisar el apéndice C.
dejó fijo.
Figura 4.16: Tanto el color del suelo como el objeto se ven con más brillo que
en las partes anteriores, la corrección gamma empleada es de 1.2 para todas las
componentes
De esta forma hasta terminar con todas las partı́culas de la iteración, durante
90 iteraciones, evidentemente los mejores puntos de interés van a permanecer. Se
puede ver la distribución inicial que se tiene al principio de la optimización, es
una distribución aleatoria, figura 4.19. Y la distribución final, más organizada
que se tiene en la iteración 100, figura 4.20.
56 CAPÍTULO 4. METODOLOGÍA DE EXTRACCIÓN DE PARÁMETROS
Implantación en la arquitectura
paralela
5.1. Introducción
En el presente capı́tulo se describe el proceso de la implantación de la metodo-
logı́a de extracción de parámetros en la arquitectura del GPU. Primero se realiza
una implantación de un algoritmo PSO y se evalúa el desempeño de sus diferentes
variantes para la implantación paralela. Posteriormente se hace un comparativo
de la implantación de un algoritmo PSO y de un algoritmo de Evolución Dife-
rencial y se observa y reporta su comportamiento en el GPU. Finalmente, en
base a los resultados de los experimentos anteriores se implanta la metodologı́a
propuesta en el GPU.
59
60 CAPÍTULO 5. IMPLANTACIÓN EN LA ARQUITECTURA PARALELA
5.2.1. Introducción
Las técnicas heurı́sticas bio-inspiradas, tales como el cómputo evolutivo, colo-
nia de hormigas y PSO, se propusieron como alternativas para resolver proble-
mas de optimización difı́ciles obteniendo soluciones aceptablemente buenas en un
tiempo razonable. Estas técnicas, al ser poblacionales, ensayan diferentes solu-
ciones con base a ciertas reglas y al uso extensivo de gran cantidad de procesos
estocásticos subyacentes. Estas herramientas han encontrado aplicación en prácti-
camente todos los campos del conocimiento, gracias a la disponibilidad de la ve-
locidad y poder de cálculo de las actuales computadoras personales. Las técnicas
heurı́sticas obtienen soluciones aceptablemente buenas en un tiempo “razonable-
mente corto”, en comparación con los métodos determinı́sticos y enumerativos
tradicionales que exploran cada una de las posibilidades y que resultan imprácti-
cos en los problemas de optimización difı́ciles. Sin embargo, el tiempo “razonable”
que pueden consumir las técnicas heurı́sticas es de varios segundos, minutos, e
incluso horas, dependiendo del problema y de la técnica heurı́stica que se emplea.
En este sentido, las técnicas como colonia de hormigas y estrategias evolutivas
pueden llegar a ser especialmente demandantes de recursos computacionales. Por
ello, los algoritmos heurı́sticos simples, como lo es el de optimización con cúmulo
de partı́culas, PSO, se han vuelto muy atractivos en virtud de que su relativa
simplicidad se traduce en un tiempo de ejecución proporcionalmente corto. No
obstante, cuando se requiere obtener una buena solución en “tiempo real”, inclu-
so los algoritmos simples pueden resultar lentos. Todo lo anterior ha motivado la
búsqueda de nuevas formas que aceleren el desempeño las técnicas heurı́sticas.
[9] y [63]. Otras propuestas para paralelizar los algoritmos PSO se han hecho con
base al concepto de procesamiento vectorial paralelo, como en [70] y en [77], pero
también se han hecho propuestas con base a procesos concurrentes en un solo
procesador como en [5].
n−1
X
f5 (~x) = [100(xi+1 − x2i )2 + (xi − 1)2 ] (5.1)
i=1
−30 < xi < 30
mı́n(f5 ) = f5 (1, . . . , 1) = 0
n−1
X
f9 (~x) = [x2i − 10cos(2πxi ) + 10] (5.2)
i=1
−5,12 < xi < 5,12
mı́n(f9 ) = f9 (0, . . . , 0) = 0
Tabla 5.2: Proporciones del costo computacional en función del número de di-
mensiones
256 partı́culas, 20 vecinos, 2000 iteraciones
Dimensiones
30 dimensiones 60 dimensiones 120 dimensiones
Función Evalúa Actualiza Evalúa Actualiza Evalúa Actualiza
F05 3.03 % 97.25 % 3.26 % 96.74 % 3.38 % 96.66 %
F09 26.93 % 69.38 % 30.51 % 67.81 % 33.56 % 66.53 %
F11 41.31 % 55.81 % 44.9 % 53.55 % 46.95 % 49.49 %
Inicialización de población.
Para concluir con esta sección, sólo resta mencionar algunas consideraciones
prácticas que deben tomarse en cuenta para lograr una implantación funcional
de un algoritmo PSO paralelo en un GPU:
Contención. Hay que tener cuidado con el manejo de variables globales que
pueden ser actualizadas y leı́das por varios hilos a la vez, incorporando las
técnicas que resuelvan este problema. Por ejemplo, en el algoritmo PSO
esto ocurre con la variable que contiene el ı́ndice a la mejor solución global
hasta el momento.
Para evaluar el desempeño de las diferentes variantes del algoritmo PSO pa-
ralelo, se definen algunas métricas, usadas comunmente para medir el desempeño
en algoritmos paralelos, las cuales nos son más que medidas para comparar el
desempeño entre las variantes:
Costo computacional
5.2. ESTUDIO COMPARATIVO DE IMPLANTACIONES PARALELAS EN UNA
ARQUITECTURA MULTIHILOS 67
Rapidez
Ventaja (speedup)
Eficiencia
Las funciones que se usaron fueron la F05, F09 y F11, ya que presentan una
complejidad significativa al ser evaluadas [1]. El óptimo para todas las funciones
es de 0.
El primer grupo de experimentos se realizó para medir el desempeño en térmi-
nos de la complejidad de las funciones objetivo. Se fijaron los parámetros en
10,000 iteraciones, 256 partı́culas, y 30 dimensiones. Se realizaron 10 corridas de
las 4 variantes del algoritmo PSO para cada una de las 3 funciones de evalua-
ción, obteniendo el promedio del óptimo encontrado y del tiempo consumido en
segundos. Los resultados se pueden apreciar en la tabla 5.3. A continuación se
realizaron pruebas de desempeño de las implantaciones variando dos parámetros
fundamentales: el número de partı́culas usadas y el número de iteraciones. Se
reportó el error respecto del óptimo, ası́ como el tiempo consumido en segundos
con centésimas de segundos de precisión. Debido a las restricciones de espacio, y
después de observar que la función F11 consume más tiempo de procesamiento
en todos los casos, se optó por elegir a las corridas con F11 para ilustrar los
resultados experimentales de este trabajo.
Para los experimentos donde se varió el número iteraciones se fijaron los si-
guientes parámetros:
Partı́culas = 256
Dimensiones = 60
Función = F11
mientras que para aquellos experimentos donde se varió del número de partı́cu-
las se fijaron los siguientes parámetros:
5.2. ESTUDIO COMPARATIVO DE IMPLANTACIONES PARALELAS EN UNA
ARQUITECTURA MULTIHILOS 69
Iteraciones = 10,000
Dimensiones = 60
Función = F11
Figura 5.2: Comparativo del error de las variantes PSO, en función del número
de iteraciones, para la optimización de F11
Figura 5.3: Comparativo del tiempo consumido por las variantes PSO, en función
del número de iteraciones, para la optimización de F11
Figura 5.4: Comparativo del tiempo consumido por las variantes PSO, en función
del número de partı́culas, para la optimización de F11
implantados adquiere una notable mejorı́a a medida que más cálculos son dis-
tribuidos para su ejecución en el dispositivo GPU, comportamiento que es prácti-
camente uniforme para todas las funciones probadas. Las métricas para el de-
sempeño de las diferentes variantes se resumen en los cuadros 5.6 a 5.9 y sus
gráficas corespondientes (ver fig 5.5 a fig 5.8), las cuales son elocuentes por sı́ mis-
mas.
Tabla 5.6: Ventaja de las variantes PSO paralelas, respecto de la variante secuen-
cial, en función del número de iteraciones
F11, 256 partı́culas, 60 dimensiones
Iteraciones
10,000 30,000 60,000
Variante PSO Ventaja Ventaja Ventaja
Global ev 1.57011394 1.57184751 1.57234043
Global ev+up 5.37181409 5.38964304 5.37252444
Embebida 5.89309211 10.9276249 27.9778068
Tabla 5.7: Ventaja de las variantes PSO paralelas, respecto de la variante secuen-
cial, en función del número de partı́culas
F11, 10,000 iteraciones, 60 dimensiones
Partı́culas
64 256 1024
Variante PSO Ventaja Ventaja Ventaja
Global ev 1.20689655 1.57829731 1.60885689
Global ev+up 2.10161663 5.37237237 7.18460789
Embebida 2.16152019 5.77096774 16.8378995
Tabla 5.8: Eficiencia de las variantes PSO paralelas, respecto de la variante se-
cuencial, en función del número de iteraciones
F11, 256 partı́culas, 60 dimensiones
Iteraciones
10,000 30,000 60,000
Variante PSO Eficiencia Eficiencia Eficiencia
Global ev 0.04906606 0.04912023 0.04913564
Global ev+up 0.16786919 0.16842634 0.16789139
Embebida 0.18415913 0.34148828 0.87430646
Tabla 5.9: Eficiencia de las variantes PSO paralelas, respecto de la variante se-
cuencial, en función del número de partı́culas
F11, 10,000 iteraciones, 60 dimensiones
Partı́culas
64 256 1024
Variante PSO Eficiencia Eficiencia Eficiencia
Global ev 0.03771552 0.04932179 0.05027678
Global ev+up 0.06567552 0.16788664 0.22451901
Embebida 0.06754751 0.18034274 0.52618436
74 CAPÍTULO 5. IMPLANTACIÓN EN LA ARQUITECTURA PARALELA
porcional al número de núcleos del GPU, con lo cual se tiene el poder de cómputo
de un cluster en una máquina de escritorio. Se intuye que aprovechando todas
las capacidad del GPU para realizar operaciones simultáneamente sobre múlti-
ples elementos de datos, además de la eficiente administración de hilos, es posible
incrementar las métricas de desempeño.
de cálculo paralelo, sino que además tiene un rol preponderante como manejador
multihilos [16].
Partiendo del teorema de “no hay desayuno gratis” de Wolpert [94], se sabe
que usando un conjunto limitado de funciones de prueba no se garantiza que un
algoritmo con un buen desempeño, no será necesariamente competitivo con un
78 CAPÍTULO 5. IMPLANTACIÓN EN LA ARQUITECTURA PARALELA
donde:
dimGrid y dimBlock son parámetros especializados que especifican las dimen-
siones del la malla de procesamiento paralelo, en bloques, y las dimensiones de
los bloques en hilos, respectivamente.
La estructura general de un algoritmo PSO y un algoritmo DE se puede
conjuntar en los siguientes bloques funcionales:
5.3. ESTUDIO COMPARATIVO DE ALGORITMOS DE OPTIMIZACIÓN POR
CÚMULO DE PARTÍCULAS CONTRA EVOLUCIÓN DIFERENCIAL
IMPLEMENTADOS EN UN GPU MULTIHILOS 79
Inicialización de la población. Inicia los individuos de la población con va-
lores aleatorios.
Para ilustrar la paralelización del código, los bloques funcionales del código se-
cuencial han sido reorganizados, resaltando los ciclos que están en términos del
número de individuos. La idea principal es crear un hilo por cada individuo.
En la implementación secuencial, todos los bloques funcionales son ejecutados
en el procesador anfitrión. En contraste, en nuestra implementación paralela, a
la que llamamos empotrada (embedded), únicamente el módulo de inicialización
se encuentra en el anfitrión, ya que existen llamadas a kernel asociadas con la
evaluación, la comparación y la actualización, todas ejecutándose en el GPU
hasta que se alcance una condición de finalización. De forma especı́fica, nuestra
implementación embebida y su correspondiente módulo de inicialización, la ini-
cialización de las semillas (una por hilo, usadas para la generación de los números
aleatorios) es llevada a cabo en el anfitrión y permanece fuera del GPU. La condi-
ción anterior, garantiza que la generación de números aleatorios sea diferente,
dentro del GPU, para cada hilo de procesamiento.
Tiempo de sobrecarga(Overhead)
Sincronización (Synchronization)
Contención (Contention)
Procedimiento experimental
• Iteraciones = 15000
• Dimensiones = 30
• Criterio de parada = número de iteraciones.
c1 =1
c2 =1
vmax =1
vmin = −1
Para PSO, el vecindario que se definió para cada partı́cula fue de 20 vecinos
seleccionados de forma aleatoria, el valor es la norma en los esquemas de vecin-
darios en los algoritmos PSO.
Costo computacional
Aceleramiento.
Como se puede apreciar, figuras 5.9, 5.10 y 5.11, el efecto de la variación del
número de iteraciones, con un conjunto fijo de parámetros de 128 individuos y F
= 0.6 para todas las funciones, y cambiando el parámetro CR dependiendo si son
funciones separables o no separables. El algoritmo DE converge a un buen valor en
las primeras 1000 a 5000 iteraciones. Incrementando el número de iteraciones no
muestra una mejora significativa. Asimismo, para este conjunto de experimentos,
DE tiene un mejor desempeño que PSO desde el inicio hasta el fin en todas las
funciones, excepto en la función F01 (Rosenbrock genralizada) figura 5.9, donde
84 CAPÍTULO 5. IMPLANTACIÓN EN LA ARQUITECTURA PARALELA
al inicio (iteración 1000) PSO tiene un mejor desempeño que DE, pero en la
iteración 3000 y de ahı́ en adelante, hasta las 23,000 iteraciones, DE es mucho
mejor que PSO.
Figura 5.12: Costo en la función F01, con un número fijo de 128 individuos y con
iteraciones variables
Figura 5.13: Costo en la función F02, con un número fijo de 128 individuos y con
iteraciones variables
Figura 5.14: Costo en la función F03, con un número fijo de 128 individuos y con
iteraciones variables
kernel, Extracción de Parámetros, que ejecuta las tareas asociadas con la evalua-
ción, la comparación y la imitación, hasta cumplir con el criterio de parada.
Como es bien sabido, la parte que más tiempo de cálculo consume en las
heurı́sticas bioinspiradas es la prueba de la función objetivo, y en este caso no
es la excepción. La metodologı́a propuesta usa un algoritmo de traza de rayos
para generar una imagen de prueba que se compara con la imagen de referen-
cia, el resultado se almacena como la aptitud de cada individuo de Evolución
Diferencial. Debido a lo anterior el número de individuos, ası́ como el número de
generaciones, determina la cantidad de llamados a la función objetivo. En este
caso se realizaron pruebas con 60 individuos y con con un numero inicial de 150
5.4. IMPLEMENTACIÓN DE LA METODOLOGÍA PROPUESTA EN
ARQUITECTURA PARALELA MULTIHILOS 91
Presentación y discusión de
resultados
6.1. Introducción
El presente capı́tulo reporta las pruebas y los resultados obtenidos con dife-
rentes imágenes objetivo, se destacan la obtención de la posición de la fuente de
iluminación ası́ como su intensidad. Asimismo, se obtiene un color aproximado
de los objetos en el escenario y sus caracterı́sticas de material, como dureza y
rugosidad.
6.2. Experimento 1
Se tiene un escenario sencillo con un plano que representa el piso, una esfera de
diferente material y una fuente de iluminación, se capturan 7 imágenes objetivo
de diferentes colores y materiales, figura 6.1.
Como ya se mencionó, el vector de variables de cada individuo tiene una
correspondencia con la fuente de iluminación del escenario, de forma tal que las
primeras tres variables de cada individuo corresponden a la posición X, Y y Z
de la fuente de luz (posL ), y la cuarta variable corresponde a la intensidad de
la fuente (P otenciaL ), las siguientes variables corresponden a los valores HSV
de la esfera (esf ), el siguiente valor corresponde al parámetro brillo (dureza) y
el último a la chispa (rugosidad) y posteriormente los mismos valores del plano
(pla), de forma tal que el vector X de cada individuo de evolución diferencial
está de la siguiente forma:
93
94 CAPÍTULO 6. PRESENTACIÓN Y DISCUSIÓN DE RESULTADOS
Se han realizado 10 corridas del algoritmo, por cada objeto, con un criterio de
parada de 100 iteraciones para encontrar la posición de la fuente de iluminación
y su intensidad, a continuación se realizan 200 generaciones para el cálculo de
los componentes del objeto (color HSV, brillo y chispa) y finalmente se realiza
la etapa de optimización de color con 20 valores de prueba para H, S y V. El
algoritmo de Evolución Diferencial se ejecuta con 60 individuos. Con una variable
CR de 0.8 y F de 0.6. A continuación se muestran los resultados de una corrida
para una esfera de color, se pueden observar claramente las tres etapas de la
metodologı́a, figura 6.2.
X = 10mm
Y = 80mm
Z = -35mm
X = 0.521
Y = -0.02
Z = 0.73
Los datos no son iguales a los del mundo real pero están con una aproximación
razonable. La búsqueda de la posición de la fuente de iluminacion se muestra en
la figura 6.3.
Figura 6.4: Aptitud de cada una de las componentes, a medida que disminuye el
valor en la gráfica, disminuye la diferencia entre la imagen generada y la imagen
objetivo
Donde:
n = Xmax * Y max
Tabla 6.1: Desviación de cada uno de los mejores individuos con respecto a su
imagen objetivo
Desviación
Esfera %R %G %B Promedio
Roja 6.2560 5.2532 5.2027 5.5706
Verde 6.9311 6.1894 4.3935 5.8380
Azul 10.8471 9.5256 7.4329 9.2685
Amarilla 7.2940 6.9565 10.1744 8.1416
Blanca 12.6140 10.5589 6.2914 9.8214
Naranja 8.7913 7.2358 15.9613 10.6628
Metal 7.7390 6.4553 4.4356 6.2100
Los resultados del algoritmo se compararon contra otros métodos que obtienen
parámetros de renderizado y los implantan en objetos virtuales, la comparativa
se realizó obteniendo las imágenes de los artı́culos de cada método, ya que no
6.2. EXPERIMENTO 1 99
fue posible implementar los métodos que los autores proponen, debido a que se
requiere equipo especial que ellos diseñaron y con el cual realizaron su proceso
de extracción de parámetros, es probable que el desempeño sea diferente si se
obtienen imágenes de referencia y generadas directamente de los autores. Los
resultados se presentan en la tabla 6.6 Cabe aclarar que en el caso de los
modelos de Wai Kit Adi, no se tiene una imagen del modelo real y del modelo
virtual que ajusten en tamaño y forma, ası́ que se tomaron imágenes lo mas
parecidas posible. En el caso de los modelos Ward, no se tenı́a una imagen del
modelo real ası́ que se comparó contra la referencia que los autores presentan,
la cual también es un modelo virtual y por lo tanto la diferencia entre ambas
imágenes es menor.
100 CAPÍTULO 6. PRESENTACIÓN Y DISCUSIÓN DE RESULTADOS
6.3. Experimento 2
Como un segundo conjunto de experimentos se compara la eficiencia de ex-
tracción de parámetros de la metodologı́a respecto a la eficiencia de una persona
con conocimientos de renderizado y de modelado de objetos.
Tabla 6.3: Tabla parcial de experimentos para obtención de parámetros por méto-
do semiautomático
6.4. Experimento 3
El desempeño de nuestro método es altamente dependiente del modelo de
iluminación usado, se programaron tres modelos de iluminación básicos y el de-
sempeño del tercero es superior al primero y segundo, debido a que considera
un mayor número de factores, como son la brillantez y la chispa del material,
asimismo el cálculo del color del pixel resultante es de mayor exactitud a los dos
anteriores. Es de suponer que al usar un modelo de iluminación más complejo, el
desempeño también mejore. Para demostrar lo anterior se propone otro conjunto
de experimentos en el cual la imagen objetivo no es adquirida por una cámara
digital, en su lugar la imagen objetivo se genera usando los mismos escenarios
con el modelo de iluminación más completo. Y verificar el nivel de aproximación
6.4. EXPERIMENTO 3 103
viduo las 4 primeras tienen una correspondencia con la fuente de iluminación del
escenario, las 3 variables siguientes corresponden a los valores HSV de la esfera
(esf ), el siguiente valor corresponde al parámetro brillo (dureza) y el último a la
chispa (rugosidad) y posteriormente los mismos valores del plano (pla), de forma
tal que el vector X de cada individuo de evolución diferencial está conformado
de la siguiente forma:
X = 0.430
Y = 0.173
Z = 0.731
Intensidad = 300
X = 0.489
Y = 0.966
Z = 0.936
Intensidad = 600
F01- Función de evaluación para asignar aptitud, considerando todos los pı́xeles
de la imagen:
i=n
X
Dif = |RGBObji − RBGT rayi | (6.4)
i=0
Donde:
n = Xmax * Y max
El resultado de las imágenes generadas muestra una ligera variación, sin em-
bargo en algunos casos la diferencia es mı́nima, y el color de los objetos es muy
108 CAPÍTULO 6. PRESENTACIÓN Y DISCUSIÓN DE RESULTADOS
Tabla 6.5: Desviación de cada uno de los mejores individuos con respecto a su
imagen objetivo
Objetivo Original Estimado % diferencia
H S V H S V Promedio
Roja esfera 0.0 0.764 0.850 0.001 0.558 0.999 6.21
plano 0.590 0.428 0.723 0.664 0.569 0.912
Verde esfera 0.482 0.374 1.0 0.480 0.407 0.568 5.3
plano 0.634 0.009 1.0 0.204 0.004 0.533
Azul esfera 0.655 0.825 1.0 0.654 0.863 0.720 2.63
plano 0.522 0.301 1.0 0.513 0.275 0.680
Amarilla esfera 0.081 0.835 0.882 0.079 0.998 0.998 5.77
plano 0.548 0.406 0.825 0.616 0.321 0.769
Naranja esfera 0.069 1.0 1.0 0.066 0.998 1.0 3.54
plano 0.317 0.145 1.0 0.219 0.208 0.769
Rosa esfera 0.991 0.898 0.990 1.0 0.824 0.938 6.79
plano 0.0 0.5 0.60 0.333 0.445 0.518
Promedio general 5.04
Los resultados del algoritmo se compararon contra otros métodos que obtienen
parámetros de renderizado y los implantan en objetos virtuales, la comparación
se realizó obteniendo las imágenes de los artı́culos de cada método. Los resultados
6.4. EXPERIMENTO 3 109
Figura 6.18: Imágenes de la esfera verde donde se pueden ver: a) imagen objetivo
e b) imagen generada por la metodologı́a.
Figura 6.19: Comparación de las imágenes objetivo y las imágenes generadas por
la metodologı́a
Por otra parte Yu, Debeverec, Malik y Hawkins [96] obtienen un conjunto
de parámetros como son: el ı́ndice de reflexión difusa y el ı́ndice de reflexión es-
6.4. EXPERIMENTO 3 111
pecular para los colores rojo, verde y azul. Sin embargo este método recibe las
condiciones de iluminación del usuario, a diferencia de nuestra metodologı́a que
lo calcula por su cuenta.
Conclusiones
Se propuso y probó una función que evalúa la diferencia entre dos imágenes de
la misma resolución, siempre y cuando sean imágenes de las mismas dimensiones
y de la misma cantidad de colores. De igual forma se tiene un algoritmo heurı́stico
bioinspirado para generar una propuesta de parámetros de iluminación para al-
goritmos de renderizado. Las pruebas con el algoritmo desarrollado demostraron
que es factible la extracción de los parámetros correspondientes a la posición e
intensidad de la fuente de iluminación ası́ como el color de objetos en el escenario.
113
114 CAPÍTULO 7. CONCLUSIONES
7.1. Aplicación
El presente desarrollo puede ser usado principalmente en el área de diseño de
escenarios virtuales, para la obtención de una apariencia realista de los objetos a
usar, ası́ como para la colocación de las fuentes de luz y su intensidad en la simu-
lación de escenarios reales. Esto ya se realiza pero de una forma semiautomática,
usando extracción de parámetros, probando dichos parámetros y ajustando la
diferencia, en el caso de esta investigación todo esto se lleva a cabo de forma au-
tomática. Una mejora en tiempo que es demostrada en el capı́tulo 6, en la tabla
6.4 y donde se aprecia una mejora significativa en la que una tarea que toma 117
minutos, se puede llevar a cabo en sólo cuatro, es decir en un 3 % del tiempo.
Y cualquier mejora en tiempo en la industria de los gráficos 3D se traduce en
ganancias millonarias.
Conclusiones
Se propuso y probó una función que evalúa la diferencia entre dos imágenes de
la misma resolución, siempre y cuando sean imágenes de las mismas dimensiones
y de la misma cantidad de colores. De igual forma se tiene un algoritmo heurı́stico
bioinspirado para generar una propuesta de parámetros de iluminación para al-
goritmos de renderizado. Las pruebas con el algoritmo desarrollado demostraron
que es factible la extracción de los parámetros correspondientes a la posición e
intensidad de la fuente de iluminación ası́ como el color de objetos en el escenario.
113
114 CAPÍTULO 7. CONCLUSIONES
7.1. Aplicación
El presente desarrollo puede ser usado principalmente en el área de diseño de
escenarios virtuales, para la obtención de una apariencia realista de los objetos a
usar, ası́ como para la colocación de las fuentes de luz y su intensidad en la simu-
lación de escenarios reales. Esto ya se realiza pero de una forma semiautomática,
usando extracción de parámetros, probando dichos parámetros y ajustando la
diferencia, en el caso de esta investigación todo esto se lleva a cabo de forma au-
tomática. Una mejora en tiempo que es demostrada en el capı́tulo 6, en la tabla
6.4 y donde se aprecia una mejora significativa en la que una tarea que toma 117
minutos, se puede llevar a cabo en sólo cuatro, es decir en un 3 % del tiempo.
Y cualquier mejora en tiempo en la industria de los gráficos 3D se traduce en
ganancias millonarias.
[2] John Amanatides. Ray tracing with cones. Volume 18, Number 3, 1984. [citado en p. 9]
[3] A. Appel. Some techniques for shading machine renderings of solids, volume 32.
Proceedings of the Spring Joint Computer Conference, 1968. [citado en p. 7]
[5] S. Baskar and P Suganthan. A novel concurrent particle swarm optimization. 2004.
[citado en p. 62]
[6] M. Belal and P. El-Ghazawi. Parallel models for particle swarm optimizers. 2004.
[citado en p. 61]
[8] James F. Blinn. Models of light relfection for computer synthetized pictures. 11,
1977. Issue 2, Summer 1977. [citado en p. 53]
[9] L. Bo and et al. Parallelizing particle swarm optimization, ieee pacific rim conference
on communications. In Computers and signal Processing, PACRIM, pages 288–291,
Aug 2005. [citado en p. 62]
[12] E. Catmull. A subdivision algorithm for computer display of curved surfaces, volume
PhD thesis. University of Utah, 1974. 623-629. [citado en p. 7, 10]
[13] J. Chang and et al. A parallel particle swarm optimization algorithm with commu-
nication strategies. Journal of information science and engineering, 21(4):809–818,
2005. [citado en p. 61]
117
118 REFERENCIAS
[14] John P. Collomosse. Supervised genetic search for parameter selection in painterly
rendering. 2007. [citado en p. 16]
[15] T. Carpenter L. Cook, R.L. Porter. Distributed ray tracing. 18 (3), 137145, 1984.
[citado en p. 7, 9]
[17] S. Cui and D. Weile. Application of a parallel particle swarm optimization scheme to
the design of electromagnetic absorbers. IEEE TRANSACTIONS ON ANTENNAS
AND PROPAGATION, 53(11):3616–3624, November 2005. [citado en p. 61]
[18] Ran Gal Tommer Leyvand Daniel Cohen-or, Olga Sorkine and Ying-Qing Xu. Color
harmonization. 2006. [citado en p. 110]
[19] Günter Wyszecki Deane B. Judd. Color in business, science and industry. 1975.
[citado en p. 134]
[21] Rudomin Goldberg Isaac Elorza Tena Joaquin. An interactive system for solving
inverse illumination problems using genetic algorithms. 1997. [citado en p. 19, 111]
[24] J.F. Schutte et al. Parallel global optimization with the particle swarm algorithm.
2003. [citado en p. 61]
[25] C. Puech F. Durand, G. Drettakis. Fast and accurate hierarchical radiosity using
global visibility. Vol. 18, No. 2, 1999. [citado en p. 9, 10]
[26] E. G. Finsy and J. Joosten. Maximum entropy inversion of static light scatter-
ing data for the particle size distribution by number and volume. in advances in
measurements and control of colloidal processes. 1991. [citado en p. 11]
[27] Adrian Ford and Alan Roberts. Colour space conversions. 1998. [citado en p. 132]
[28] E. Fuchs and J. S. Jaffe. Thin laser light sheet microscope for microbial oceanogra-
phy. 10 (2), 145-154, 2002. [citado en p. 12]
[29] Z.M. Naylor B.F. Fuchs, H. Kedem. On visible surface generation by a priori tree
structures. 14, 124133, 1980. [citado en p. 7, 8]
[30] Ikekuchi K. Sakauchi M. Furukawa R., Kawasaki H. Appearance based object mod-
eling using texture database: acquisition, compression and rendering. 3 pp. 257-266,
2002. [citado en p. 13]
[32] A. M. Day G. Simiakakis, Th. Theoharis. Parallel ray tracing with 5d adaptive
subdivision. 1998. [citado en p. 9]
[33] Mark Gatter. Getting it right in print: Digital prepress for graphic designers. 2004.
[citado en p. 132]
[34] David Geisler-Moroder and Arne Dür. Color-rendering indices in global illumination
methods. Oct-Dec 2009. [citado en p. 27, 40]
[35] Reinhard Klein Gero Müller, Gerhard H. Bendels. Rapid synchronous acquisition of
geometry and appearance of cultural heritage artefacts. Archaeology and Cultural
Heritage VAST, 2005. [citado en p. 13]
[36] A.S. Glassner. Space subdivision for fast ray tracing. 4 (10), 1522., 1984.
[citado en p. 8]
[37] H. Gouraud. Computer display of curved surfaces, volume 20. IEEE Transactions
on Computers, 1971. 623-629. [citado en p. 7]
[40] Kwan-Liu Ma Han-Wei Shen, Ling-jen Chiang. A fast volume rendering algorithm
for time-varying fields using a time-space partitioning (tsp) tree. 1999. [citado en p. 9]
[42] S. Harding and W. Banzhaf. Fast genetic programming and artificial developmen-
tal systems on gpus. In Proceedings of the 21st International Symposium on High
Performance Computing Systems and Applications, HPCS, pages 2–2, May 2007.
[citado en p. 62]
[43] S. Harding and W Banzhaf. Fast genetic programming on gpus. In M. Ebner and
et al., editors, Proceedings of the 10th European Conference on Genetic Program-
ming, ser. Lecture Notes in Computer Science, volume 4445, pages 90–101. Springer,
April 2007. [citado en p. 62]
[44] Juan Buhler Henrik Wann Jensen. A rapid hierarchical rendering technique for
translucent materials. 2000. [citado en p. 10]
[45] Juan Buhler Henrik Wann Jensen. A rapid hierarchical rendering technique for
translucent materials. 2002. [citado en p. 8]
[46] Marc Levoy Henrik Wann Jensen, Stephen R. Marschner and Pat Hanrahan. A
practical model for subsurface light transport. 2001. [citado en p. 12]
[49] David Kirk James Arvo. Fast ray tracing by ray classification. Volume 21, Number
4, 1987. [citado en p. 9]
[50] N. Jin and Y. Rahmat-Samii. Parallel particle swarm optimization and finite- dif-
ference time-domain (pso/fdtd) algorithm for multiband and wide-band patch an-
tenna designs. IEEE TRANSACTIONS ON ANTENNAS AND PROPAGATION,
53(11):3459–3468, November 2005. [citado en p. 61]
[51] Andrew Woo ) John Amanatides. A fast voxel traversal algorithm for ray tracing.
1988. [citado en p. 7, 8]
[52] James S. Painter John K. Kawai and Michael F. Cohen. Radioptimization - goal
based rendering. 1993. [citado en p. 18]
[53] P.M. Hall John P. Collomosse. Genetic paint: A search for salient paintings. 2005.
[citado en p. 17]
[55] Yun-Kung Chung Jui-yu Wu. Artificial immune system for solving generalized ge-
ometric problems: A preliminary results. 2005. [citado en p. 9]
[56] James T. Kajiya. The rendering equation. Volume 20, 1986. [citado en p. 10, 23]
[57] J. Kennedy and R. Eberhart. Swarm intelligence. 2001. [citado en p. 30, 65]
[59] Stephen Mann Leo Dorts, Daniel Fontijne. Geometric Algebra for Computer Sci-
ences. Morgan Kaufman, 2007. [citado en p. 9]
[62] Werner Hartmann Michael Haller, Stephan Drab. A real-time shadow approach for
an augmented reality application using shadow volumes. 2003. [citado en p. 10]
[64] Wai Kit Addy Ngan. Acquisition and Modeling of Material Appearance. PhD thesis,
Massachusetts Institute of Technology, 2003. [citado en p. 14]
REFERENCIAS 121
[66] Ricardo Cancho Niemietz. Schematic representation on how tv signals are gamma-
compensated when broadcasted. 2008. [citado en p. 137]
[67] NVIDIA. Nvidia cuda instalation and verification. 2008. [citado en p. 63]
[68] U.S. Departament of Energy. Color rendering index and leds. January 2008.
[citado en p. 27, 40]
[69] Y. Willems P. Dutre, F. Suykens. Optimized monte carlo path generation using
genetic algorithms. Volume 19, Number 3, 1998. [citado en p. 7, 8, 9, 10, 11, 17]
[70] K. Parsopoulos and et al. Multiobjective optimization using parallel vector eval-
uated particle swarm optimization. In Proceedings of the IASTED International
Conference on Artificial Intelligence and Applications (AIA), pages 869 – 875, July
2007. [citado en p. 62]
[71] Danny Pascale. A review of rgb color spaces... from xyy to r’g’b’. 2003.
[citado en p. 133]
[72] B-T. Phong. Illumination for computer generated pictures. 311-316, 1975. 623-629.
[citado en p. 52]
[73] D. Robilliard and et al. Population parallel gp on the g80 gpu. In Lecture Notes in
Computer Science, volume 4971, pages 98–109. Springer Berlin / Heidelberg, 2008.
[citado en p. 62]
[78] Smits Brian Arvo James Schoeneman Chris, Dorsey Julie and Greenberg Donald.
Painting with light. In SIGGRAPH ’93 Proceedings of the 20th annual conference
on Computer graphics and interactive techniques, July 1993. [citado en p. 19]
[79] Y. Shi and R. Eberhart. A modified particle swarm optimizer. 1998. [citado en p. 31]
[80] Ken Shoemaker. Animating rotation with quaternion curves. Volume 19, Number
3, 1984. [citado en p. 7, 8, 9]
[81] Daniel Thalmann Srikanth Bandi. An adaptive spatial subdivision of the object
space for fast collision detection of animated rigid bodies. Vol. 14, num. 3, 1995.
[citado en p. 7, 8]
122 REFERENCIAS
[82] Craig Donner Ravi Ramamoorthi Shree K. Nayar HenrikWann Jensen Srinivasa
G. Narasimhan, Mohit Gupta. Acquiring scattering properties of participating me-
dia by dilution. 2006. [citado en p. 12, 14]
[83] R. Storn and K.V. Price. Differential evolution - a simple and efficient heuristic for
global optimization over continuous spaces. 11(4), 1997. 341-359. [citado en p. 28]
[85] Barbara Fritchman Thompson. Astronomy hacks: Tips and tools for observing the
night sky. 2005. [citado en p. 26]
[86] Marko Tkalcic. Colour spaces - perceptual, historical and applicational background.
2001. [citado en p. 135]
[87] Latham W. Todd, S. Evolutionary art and computers. 1992. [citado en p. 17]
[88] Latham W. Todd, S. The mutation and growth of art by computers. 1999.
[citado en p. 17]
[89] T. Unemi. Sbart2.4: Breeding 2d cg images and movies, and creating a type of
collage. The Third International Conference on Knowledgebased Intelligent Infor-
mation Engineering Systems, 1999. [citado en p. 17]
[91] Nicholas J. Wade and Josef Broek. Purkinje’s vision. 2001. [citado en p. 26]
[92] T. Whitted. An improved illumination model for shaded display. 343-349, 1980.
623-629. [citado en p. 7]
[93] Remo Ziegler Addy Ngan Wojciech Matusik, Hanspeter Pfister and Leonard McMil-
lan. Acquisition and rendering of transparent and refractive objects. 2002.
[citado en p. 14]
[94] D. H. Wolpert and W. G. Macready. No free lunch theorems for optimization. 1997.
[citado en p. 77]
[95] Donald Hearn y M. Pauline Baker. Gráficas por computadora. Prentice Hall, segunda
edition, 1995. [citado en p. 21, 137]
[96] Jitendra Malik Yizhou Yu, Paul Debevec and Tim Hawkins. Inverse global il-
lumination: Recovering reflectance models of real scenes from photograps. 1999.
[citado en p. 18, 110]
[97] Yizhou Yu. Modeling and editing real scenes with image-based techniques. 2000.
[citado en p. 18]
Apéndice A
Mejora en el tiempo
En una búsqueda de imágenes cada vez más realistas, la tecnologı́a de las gráfi-
cas por computadora se ha transformado y ha evolucionado desde las primeras
gráficas de lı́neas hasta imágenes que son idénticas a una fotografı́a o en su caso
de videos reales grabados por cámaras de TV. El costo de estas imágenes, cada
vez más realistas, se ha reflejado en el poder de procesamiento necesario para
generar dichas imágenes, donde una sola computadora del siglo 21 puede tar-
darse dı́as para una sola imagen. Y un grupo de computadoras (Granja), puede
tomarse horas para una sola imagen. Lo cual trae a la mente un sencillo cálculo,
una imagen toma varias horas de cálculo, se necesitan 24 imágenes por segundo
para presentar una sensación de movimiento continuo a los espectadores de una
pelı́cula de cine. Las pelı́culas duran en promedio 2 horas, entonces:
24 imágenes x 60 segundos x 120 minutos (2 horas) = 172,872 imágenes (im).
123
124 APÉNDICE A. MEJORA EN EL TIEMPO
dimensiones.
Desde el surgimiento de las computadoras el problema de la graficación ha
sido un reto que gradualmente ha ido aumentando desde las primeras imágenes
presentadas en un monitor.
El caso que nos ocupa es el del software de renderzado, ya que al generar la
imagen, el modelo de iluminación debe considerar la corrección gamma que el
sistema en conjunto va a necesitar. Adicionalmente cada elemento que participe
en la adquisición, almacenamiento, comparación y generación de una imagen
necesita considerar si alguna de sus partes está llevando a cabo la corrección
gama y en que forma, ası́ como sus respectivos ı́ndices de corrección.
Apéndice B
Renderizado
2. Renderizado
3. Despliegue de la imagen
1. Etapa de aplicación
2. Etapa Geométrica
3. Etapa de Rasterizado
Cada una de las etapas antes mencionadas tiene su tarea especı́fica a realizar, y
cada una de dichas etapas, tiene una gran cantidad de cálculos asociados para
obtener los resultados que de ella se esperan, a continuación se explica más a
detalle cada una de las tareas.
125
126 APÉNDICE B. RENDERIZADO
entre los más importantes. De todas las tareas antes mencionadas, se pueden
destacar 3.
2. Conformar escena
Por ejemplo el sistema de coordenadas locales del objeto tiene que ser rela-
cionado con el sistema de coordenadas globales del escenario virtual, para hacer
esto la etapa geométrica tiene que relacionar dos espacios afines a través de opera-
ciones geométricas, muchas veces llevados a cabo, por medio de multiplicaciones
de matrices. Pero esto no esto todo, ya que se tiene que pasar en diferentes sis-
temas de coordenadas, figura B.1, las cuales son:
1. Locales
2. Mundiales
3. Vista
4. Pantalla
5. Dispositivo
Lo anterior es para lograr que todos los elementos del escenario virtual se
manejen en el mismo sistema de coordenadas, pero adicionalmente se tienen que
127
realizar otros cálculos; los cuales también son llevados a cabo por la parte geo-
métrica, tales como: Mover objetos (multiplicación de matrices), mover cámara
(multiplicación de matrices), calcular la iluminación en los vértices del triángulo
(multiplicación de vectores), proyectar en la pantalla y recorte, entre otros.
La etapa geométrica se puede separar básicamente en tres etapas:
Rasterización
Sombreado
A continuación se muestran las nueve etapas que forman parte del proceso de
renderización:
2. Conformar escena
7. Rasterización
8. Sombreado
Modelos de color
131
132 APÉNDICE C. MODELOS DE COLOR
Modelo CMY
El modelo CMY [33] debe su nombre a los colores Cyan, Magenta y Yellow
(Acua, Rosa-violeta, amarillo) que son los colores básicos para crear color en un
modelo sustractivo, esto significa que cada vez que se agrega una componente de
color, la luz emitida por la página donde se encuentra el color es disminuida, este
modelo de color es el usado en las copias impresas y en las impresoras.
CMY es muy fácil de implementar, pero la adecuada transferencia del RGB al
CMY es muy difı́cil. CMY es dependiente del dispositivo, no lineal con respecto a
la percepción visual y razonablemente intuitivo [27]. Con diferentes dispositivos
tiene caracterı́sticas distintas de transferencia entre valores CMY y la cantidad
de tinta a colocar sobre el papel. Existen algunas formas simples de transformar
C.1. MODELO DE COLOR 133
colores RGB a colores CMY para impresión, sin embargo estas transformaciones
en raras ocasiones generan en impresión los colores observados en pantalla.
RGB a CMY
Cyan = 1 − Red
M agenta = 1 − Green
Y ellow = 1 − Blue (C.1)
CMY a RGB
Red = 1 − Cyan
Green = 1 − M agenta
Blue = 1 − Y ellow (C.2)
Existe un método más preciso el cual consiste en calcular los valores tries-
tı́mulo CIE de los valores RGB de los pixeles de la imagen y usar estos valores
como objetivo para una transformación similar hacia los valores de cromatici-
dad CMY del dispositivo y la adecuada función de transferencia de los valores
correspondientes CMY.
Modelo RGB
El modelo RGB obtiene su nombre de los colores Red Green y Blue [71], del
inglés para el Rojo el Verde y el Azul. El modelo RGB es un modelo de sı́ntesis
aditiva, de forma que cuando se desea generar un color primario se aumenta
la componente del color primario a mostrar, por ejemplo rojo, y se aumenta la
intensidad para obtener un color más intenso desde el color negro hasta el rojo
intenso. Sin embargo si se desea obtener un color secundario como el amarillo se
deben incrementar en forma conjunta dos colores primarios como son el rojo y el
verde. En las gráficas por computadora el modelo RGB es muy popular ya que
134 APÉNDICE C. MODELOS DE COLOR
son usados por los dispositivos de despliegue de imagen como son: los monitores
de tubos de rayos catódicos (CRT - Cathodic Ray Tube)o los de formato digital
como son los monitores de crital liquido (LCD), los de plasma y los cañones
proyectores son controlados por un sistema digital que permite hasta 256 niveles
de intensidad en cada componente de color, esto proporciona hasta 256 niveles
diferentes de rojo verde y azul, y asimismo 256 niveles de colores secundarios.
La cantidad de colores que es capaz de mostrar un modelo como éste es de 256r
x 256g x 256b = 16,777,216 diferentes colores. De acuerdo con Judd, Deane B.
y Wyszecki, Günter [19], el ojo humano sólo puede percibir entre 8 y hasta 10
millones de colores, ası́ que el modelo RGB de 256 niveles por componente es más
que suficiente. Esto quiere decir que de los 16 millones de colores que es capaz
de desplegar el modelo RGB, el ojo humano no puede percibir casi la mitad de
ellos. Sin embargo, tanto las modernas tarjetas de gráficos, ası́ como los modernos
monitores de computadora, si son capaces de desplegarlos. Adicionalmente a esto,
el ojo humano es más sensible a unas longitudes de onda que a otras, y esto, como
ya se mencionó, es dependiente de si es iluminación nocturna, o diurna.
Modelo HSV
HSI (Hue Saturation Intensity) y el HCI (Hue Chroma Intensity). Todos los
modelos son transformaciones lineales del RGB y como tal comparten algunas de
sus limitaciones, sin embargo, el espacio de búsqueda es diferente ya que tiene la
forma de un cono, y esto puede ayudar en la búsqueda de soluciones diferentes
al usar heurı́sticas para exploración del espacio de color, figura C.7.
Figura C.7: Espacio de color HSV, se conceptualiza como una forma cónica
Apéndice D
Corrección gamma
Donde los valores de entrada y de salida deben ser valores reales positivos, con
valores de 0 a 1. A un valor gamma < 1 se le denomina gamma de codificación,
ya que al usarlo como una potencia del valor de color a transformar, el valor
disminuye, es decir se realiza una compresión gamma. Por otra parte un valor
137
138 APÉNDICE D. CORRECCIÓN GAMMA
gamma. Incluso los sistemas operativos usan diferentes niveles de corrección. Por
ejemplo una imagen generada en un sistema operativo Machintosh, al ser pasada
a un sistema Windows debe ser corregida con un factor gama para que la imagen
se vea igual que la original.
Los valores de intensidad del pixel en una imagen de forma que representen
los valores gamma corregidos en lugar de una codificación lineal. Esto es
muy común en los archivos de video digital para evitar la etapa de decodi-
ficación gamma.
Otros experimentos
141
Lista de abreviaciones
143
144 LISTA DE ABREVIACIONES
Término Descripción
Algoritmo evolutivo Es un método de optimización y búsqueda de soluciones
basado en algunos postulados de la evolución biológica,
estos algoritmos son parte de la rama de la Inteligencia
Artificial, se usan, en su mayorı́a, en espacios de búsqueda
extensos y no lineales.
145
146 GLOSARIO
Término Descripción
Estimación Montecarlo Es un método no determinı́stico usado para aproximar ex-
presiones matemáticas complejas y costosas de evaluar con
exactitud, actualmente es parte fundamental de los algo-
ritmos de traza de rayos. En la renderizacion se usa para
eliminar el efecto de diente de sierra en las imágenes sinte-
tizadas, de esta forma la resolución aparente de la imagen
es mayor que la real.
Término Descripción
Iluminación inversa Se refiere a un problema en el cual se busca le mejor confi-
guración de las condiciones de iluminación, para iluminar
la escena por medio de la minimización de la diferencia
entre la escena renderizada y la imagen deseada.
Término Descripción
Reflexión especular Es el resultado de la casi total reflexión de la luz incidente
en una región concentrada alrededor de un ángulo de re-
flexión especular, y se caracteriza porque al observar una
superficie brillante iluminada, como una manzana, se apre-
cia un toque de luz o una mancha del color de la fuente de
iluminación y no del color de la manzana.
Virtual Algo que no es real, pero que sin embargo puede presen-
tar algunas caracterı́sticas de lo real. En el caso de los
sistemas de cómputo se refiere a programas que simulan
el comportamiento de equipo o proceso. Sin embargo en
este caso particular se refiere a simulaciones generadas por
computadora de objetos reales para la construcción de es-
cenarios.