miércoles, 30 de noviembre de 2011

UNIDAD IV. Actividad 1

Capítulo III. Procesamiento de imágenes
En el procesamiento digital de imágenes se distinguen dos niveles principales de manera general:

·         Procesamiento de imágenes a bajo nivel
Muy poco uso de conocimiento respecto al contenido de las imágenes.
Comúnmente se reconoce una secuencia de cuatro para el procesamiento a bajo nivel: adquisición de la imagen, pre-procesamiento, segmentación de la imagen, descripción y clasificación de objetos.
·         Entendimiento de imágenes a alto nivel
Existe la capacidad de realizar toma de decisiones respecto al contenido de las imágenes.

El el procesamiento de imágenes está dado por  un conjunto de operaciones llevadas a cabo sobre las imágenes a fin de realizar mediciones cuantitativas para poder describirlas; es decir, extraer ciertas características que permitan mejorar, perfeccionar o detallar la imagen.

Las herramientas para la adquisición de imágenes transforman la imagen visual de un objeto físico y sus características intrínsecas en un conjunto de datos digitalizados, usados para procesarla.

En el procesamiento digital de imágenes, existen diversas aplicaciones y problemas:
- Representación
- Transformación
- Modelado
- Restauración
- Reconstrucción
- Análisis
- Compresión de datos

3.2  Filtros para la eliminación de ruido en las imágenes
Se define como ruido cualquier entidad en las imágenes, datos o resultados intermedios que no son interesantes para la computación que se pretende llevar a cabo.


Capítulo III. Animación por Computadora
La animación es la simulación de un movimiento, creada por la muestra de una serie de imágenes o cuadros. Un ejemplo sencillo de esto son las caricaturas, que pertenecen a la animación tradicional. Con el paso de los años, la animación de imágenes he evolucionado de forma considerable. Hace algunos años se debía dibujar cada cuadro y se unían para formar una imagen animada. Ahora, el uso de la computadora permite crear escenas mucho más reales.

3.1 Características de la Animación 3D
Una característica importante de la animación por computadora es que nos permite crear escenas “realmente” tridimensionales. Esto quiere decir que, a diferencia de la animación dibujada a mano, en una escena animada por computadora es posible cambiar el ángulo de la cámara y con esto, ver otra parte de la escena. John Lasseter de Pixar fue una de las primeras personas en crear animación por computadora y el tiene un trabajo muy reconocido presentado en SIGGRAPH 84 llamado “Las Aventuras de Andre y Wally B”.

Otra ventaja de la animación por computadora es que se pueden reutilizar partes de la animación por separado. Incluso, una animación puede verse muy diferente simplemente cambiando el ángulo de la cámara o cambiando el tiempo del movimiento o de partes de la animación. Por ejemplo, si tenemos un conjunto de elementos iguales que se mueven en forma similar (como en el caso de esta tesis un grupo de animales), podemos hacer que cada uno de ellos tenga ligeros movimientos independientes además del movimiento que hace el grupo. De esta manera la animación se verá mucho más dinámica.


3.2 Animación en el Cine
Sin duda la industria del cine es una de las que más estudios sobre animación por computadora ha hecho, tanto en efectos visuales como en películas totalmente animadas por computadora.

Los estudios de Animación Pixar crearon en conjunto con los estudios Disney la primera película animada completamente por computadora: Toy Story. Esta además ganó el premio de la Academia en 1995. Otras películas producidas por pixar son Bichos (“A Bugs Life”, 1998), Toy Story 2 (1999) y Monsters Inc. (2001).
Monsters Inc. [12] Copyright © Pixar Animation Studios Otros estudios famosos que también producen películas con animación por computadora son Dream Works SKG. Estos estudios fueron creados en 1994 por Steven Spielberg, Jeffrey Katzenberg y David Geffen. Algunas películas conocidas de estos estudios son: Pollitos en Fuga (Chicken Run), Pequeños Soldados (Small Soldiers), Hormiguitaz (Antz) y Shrek ganadora del premio de la Academia en el año 2001 por mejor película animada y ganándole a la producción de Pixar, Monsters Inc.  

3.3 Técnicas de animación
Algunas técnicas que se utilizan en la animación tradicional son la animación en acetatos (cel animation), la animación basada en cuadros (flipbook animation) y la animación en sprite.
3.3.1 Animación Basada en Cuadros
La animación basada en cuadros es una de las más utilizadas. Una película contiene 24 cuadros por segundo generalmente, las caricaturas tienen solamente 12. Para hacer una secuencia, se van filmando las imágenes cuadro por cuadro y luego estos se unen para formar la animación. Es posible formar bibliotecas de movimientos de cada parte del cuerpo de la animación para de esta forma combinarlas y hacer animaciones diferentes.
3.3.2 Animación Basada en Sprites
Sobre la animación en Sprites, esta se refiere a animaciones de objetos sobre fondos estáticos, es decir, lo que cambia son los personajes. Esta técnica es aplicada en los video juegos. Con el paso del tiempo, se han creado nuevas técnicas como key framing, rotoscopiado, motion control [17] y wavelets [18].

3.3.3 Key Framming
El key framing se refiere a establecer posiciones en puntos específicos de tiempo en una animación y la parte intermedia la obtiene la computadora por medio de interpolación matemática. Es necesario hacer un key frame para cada control en cada nivel de la jerarquía del modelo.
3.3.4 Rotoscopiado
El Rotoscopiado consiste en una forma más elaborada de key framing. En este caso se obtienen la posición y el ángulo de los puntos clave de imágenes reales y se trata de hacer converger los modelos en computadora con ellos.
3.3.5 Motion Control
La técnica de Motion control es muy utilizada actualmente, sobre todo en sets virtuales y en el cine. Consiste en obtener posiciones clave de manera automática a partir de un actor real por medio de dispositivos que se conectan a su cuerpo. El primer modelo importante utilizando esta técnica fue Sexy Robot en 1985 creado por Robert Abel & Associates. En México, un modelo muy conocido de esta técnica es el Ponchito Virtual,  utilizado por Andrés Bustamante en el programa de TV Azteca Los Protagonistas. El Ponchito Virtual fue construido por la empresa mexicana ARTEC.

3.3.6 Wavelets
Wavelets significa “pequeñas ondulaciones”. Esta técnica permite que en una sola imagen se compriman una gran cantidad de datos para que al acercarse a ella, se vayan viendo los detalles.
Por ejemplo, con esta técnica es posible que al irse acercando a una planta, se vayan viendo las ramas, las hojas y todos los detalles necesarios. Esto no es posible lograrlo con una imagen normal, ya que si nos acercamos a ella, solo se verá cada vez más distorsionada.
La técnica de los Wavelets es una teoría puramente matemática que ha sido aplicada en distintas áreas, por ejemplo, fue utilizada para buscar una manera de transmitir mensajes claros a través de los hilos telefónicos, encontrar una forma mejor de interpretar las señales sísmicas e incluso es utilizada por el FBI para codificar su base de datos de 30 millones de huellas digitales.  La técnica de los Wavelets fue utilizada en la realización de la película Bichos (Bugs) de Pixar.
3.3.7 Técnicas de Pixar
El proceso que utiliza Pixar  para crear sus animaciones se compone de cuatro etapas principales: Desarrollo (crear el guión de la historia), preproducción (se direccionan los retos técnicos), producción (creación de la película) y post producción (pulir los últimos detalles). El proceso es largo y si lo vemos mas a detalle, es el siguiente: El primer paso de la producción es la presentación de una idea por parte de los empleados a su equipo. Se escribe un texto llamado Text Treatment que es un pequeño documento que resume la idea principal de la historia.
¿Qué es la visión por computadora y por qué deberíamos estar interesados en estudiarla?
Hay varias razones por las que debemos estar interesados en la visión computacional o visión artificial, pero los dos siguientes aspectos nos permitirán observar las distintas direcciones en las cuales se puede ver el tema:
·         Todas las formas de vida inteligente poseen la capacidad de obrar recíprocamente y de manipular su ambiente de una manera coherente y estable. Esta interacción es facilitada por la continua intervención inteligente entre la percepción y el control del movimiento (es decir acción); la percepción visual es de fundamental importancia para la vida inteligente.
·         Más fabricantes están preocupados por la integridad cosmética de sus productos; los clientes comparan absolutamente a menudo la calidad del aspecto con calidad funcional. Así pues, para asegurar la acertada comercialización a largo plazo de un artículo, es altamente deseable comparar su aspecto visual antes de ser empaquetado y enviado. Asimismo, es deseable que el proceso de la inspección esté automatizado y efectuado sin la intervención humana
La experiencia en el mundo en que vivimos esta cubierta por una variedad sin fin de objetos, animados e inanimados. Así pues, si la visión es un medio para un fin – conocer el mundo observándolo – la visión artificial es exactamente lo mismo salvo que el medio por el cual se adquiere el conocimiento ahora es un instrumento de cómputo más bien que el cerebro de alguna ser vivo. Sin duda, esto es una definición muy amplia. Pero el tema de la visión artificial es extenso: los asuntos tales como la restauración de imágenes, mejoramiento de imagen, inspección visual automatizada, visión robótica, escenas tridimensionales, y percepción y cognición visual todas forman parte del término “Visión Artificial”.
Como hemos visto, a la visión artificial le compete estudiar la estructura física tridimensional del mundo para el análisis automático de imágenes. Sin embargo, es necesaria la calidad en el uso de imágenes. Primero, analicemos una simple imagen es de dos- dimensiones y, por lo tanto, perdemos inevitable la información en el proceso de la proyección, es decir en pasar de un mundo tridimensional a una imagen de dos dimensiones.
La visión artificial incluye muchas técnicas que son útiles para si misma, Ej., el procesamiento de imágenes (que se refiere a la transformación, codificación, y transmisión de las imágenes) y los patrones, de las cuales los patrones visuales son pero solo una instancia). Más significativamente, sin embargo, la visión artificial incluye técnicas para la descripción útil de la forma y del volumen, para modelos geométricos, y para el llamado proceso cognoscitivo. Así, aunque la visión artificial se refiere ciertamente al procesamiento de imágenes, estas imágenes son solamente la materia prima de una ciencia mucho más amplia, la misma que se esfuerza en última instancia para emular las capacidades perceptivas del hombre y, quizás, para verter una luz sobre la manera por la cual él logra su interacción adaptativa y robusta con su ambiente.

jueves, 17 de noviembre de 2011

CONCEPTOS UNIDAD 4

Tecnicas de sombreado clasicas y avanzadas

Clasicas: Iluminacion local
Calculos de iluminación por vértices
Para poder aplicar iluminación necesitamos asociar a cada vértice de nuestro objeto un vector normal asociado. Cuando tenemos la normal calculada tenemos que normalizarla, o sea, dividir ese vector por su propio modulo para que sea unitario, pero también podemos hacer que se encargue la OpengGl activando la normalización,
glEnable GL_NORMALIZE
o desactivarla con,
glDisable GL_NORMALIZE
el usar GL_NORMALIZE dependerá de nuestra aplicación ya que forzando a que sea OpenGl que las utilice se ralentiza ya que le estamos hacer mas cálculos de los que debe.

Para definir las normales en opengl utilizaremos la función glNormal3f(X,Y,Z) por ejemplo para definir una cara con 4 vértices la definiremos de la siguiente manera

GlBegin GL_QUADS
glNormal3f nX,nY,nZ
glvertex3f x,y,z
glvertex3f x,y,z
glvertex3f x,y,z
glvertex3f x,y,z
glEnd

Es decir, cada vez que queremos definir una normal a un vértice usamos glNormal y el vértice/s que siguen se asocian a esta normal.

La luz de tipo SMOOTH el polígono que definamos tendrá un color definido par cada vértice, asociando las normales a los vértices OpenGL puede hacer los cálculos de los colores a cada uno del vértice y después hace una interpolación de colores con este tipo de luz se acerca bastante al realismo pero a un la podemos mejorar.
Posterior relleno de triangulos

Rellenado de los triángulos (rastering). Para ello se realizan varias fases de procesamiento por Pixel.
Comprobar si cada nuevo pixel es visible o no (comprobación de profundidad).
Interpolación lineal del color para el nuevo pixel (método de Gouraud).
Si existe una textura definida o transparencia, efectuar la modificación de color correspondiente.
Se trata de la última fase, en ocasiones la más costosa, del proceso, por lo que es la primera que se suele integrar en el hardware gráfico. En esta etapa se trata de asignar colores a los pixels correspondientes al interior de cada triángulo proyectado que cae dentro del área de visualización. Los colores asignados deben calcularse por el método de Gouraud, interpolando linealmente entre los colores de los tres vértices.

Renderizado en tiempo real
La idea fundamental del procesado en tiempo real es que todos los objetos deben ser descompuestos en polígonos. Estos polígonos serán descompuestos a su vez en triangulos. Cada triangulo será proyectado sobre laventana bidimensional y rellenado con los colores adecuados para reflejar los efectos de la iluminación, texturas, etc. Ua vez se han generado los triangulos, en la pipeline existen dos partes claramente diferenciadas: uina primera etapa operaciones realizadas sobre cada uno de los vértices, y después de que estos se proyecten sobre la ventana, entonces comienza una segunda fase de cálculos realizados para cada pixel cubierto por los triangulos.

Realistas: iluminación global

Trazado de rayos
El trazado de rayos computa la interaccion de la luz desde un punto de vista determinado y es particularmente adecuado para superficies reflectantes. Puede utilizarse como propiedad especifica de un determinado material.

Radiosidad
Esta basado en principios generales que se pueden encontrar en un manual general sobre rendering. En el estado inicial la escena consta de dos tipos de objetos: objetos que emiten luz y objetos que reciben luz. A partir de aquí, en una primera vuelta, se computa la luz que recibe cada objeto en una aproximación mas exacta, cada parte de un objeto, según una subdivisión cuya densidad puede percisarse en sucesivas aproximaciones. Cada una de estas partes, según su grado de reflexividad, su orientación y su distancia con respecto a las fuentes de luz original, se convertirá en una segunda vuelta, en un nuevo emisor de energía lumínica, una fuente de luz secundaria que iluminara a su vez a los objetos que le rodean.

Calculos de iluminación por pixel

La iluminación por píxel en tiempo real es una tecnología revolucionaria ofrecida como primicia por NVIDIA Shading Rasterizer. La iluminación dinámica a nivel de píxel libera a los desarrolladores de las restricciones de otros sistemas de iluminación y pone a su alcance toda una gama de sofisticados efectos. La potencia de NSR eleva la calidad de la experiencia multimedia que ofrecen las GPU NVIDIA. NSR mantiene la alta resolución en entornos dinámicos y proporciona la experiencia de juego más impactante.

La técnica Pixel Shader
La técnica Pixel Shader es una tecnología que pueden incorporar el hardware que se encarga de convertir las instrucciones generadas por un ordenador o una videoconsola en gráficos visualizables en la pantalla de TV o monitor, dicha técnica se encarga de virtualizar el mundo físico mediante gráficos generados digitalmente, en concreto el pixel shader se encarga de la gestión de iluminado de la escena, produciendo los efectos lumínicos de luces y sombras.

El hardware que implementa Pixel Shader es comúnmente conocido como "la tarjeta gráfica", o adaptador gráficos, VGAs o tarjetas de vídeo.

Alto Acabado

Sombreado Constante o plano. Un cálculo para todo el polígono. Obtenemos una intensidad  que aplicamos a un conjunto de puntos de un objeto (p.ej. todo un triángulo). Aceleramos el proceso de síntesis.  Correcto si se verifica: Fuente de luz en el infinito. Observador en el infinito. El polígono representa una superficie plana real del objeto que se modela y no es una aproximación de un objeto curvo.

Calcula normales al polígono
La iluminación cte. no produce buenos resultados en superficies curvas (aprox. por facetas planas).
Evaluar la ecuación de iluminación en cada punto de una superficie genérica es muy costoso.
Posible solución: aproximar mediante facetas planas e interpolar dentro de cada  polígono.
Hay que evitar producir una apariencia “faceteada” (bandas de Mach; respuesta del ojo humano)
Sombreado Constante/Plano
(Flat Shading)
Obtenemos una intensidad que aplicamos a un conjunto de puntos de un objeto
–Aceleramos el proceso de síntesis
–Correcto si se verifica:
• Fuente de luz en el infinito
• Observador en el infinito
• El polígono representa una superficie plana real del objeto que se modela y no es una    aproximación de un objeto curvo.

Sombreado por Interpolación

La iluminación cte. no produce buenos resultados en superficies curvas (aprox. Por facetas planas)

– Evaluar la ecuación de iluminación en cada punto de una superficie genérica es muy costoso

– Posible solución: aproximar mediante facetas planas e interpolar dentro de cada polígono

– Hay que evitar producir una apariencia “facetada” (bandas de Mach; respuesta del ojo humano)

Sombreado de Gouraud

Se basa en la interpolación de intensidad o color

• Considera que facetas planas vecinas proceden de aproximar una superficie curva (salvo que se declare una arista real entre ambas)

• Elimina en gran medida las discontinuidades de iluminación

• Es sencilla, pero produce peores resultados en objetos con brillos especulares que el método de  Phong.

• Implementado en OpenGL.

Necesita la dirección de la normal en cada vértice (si se desconoce, se calcula a partir de las normales de las facetas que contienen el vértice)

• Si dos facetas están separadas por una arista real, se utilizan dos normales diferentes para

trabajar en cada faceta (se promedian las normales situadas solo a un lado de la arista)

• A partir de la normal en cada vértice, se evalúa la ecuación de iluminación (solo para cada vértice) y se obtiene un valor de intensidad para cada uno de ellos

• Se realiza una interpolación bilineal para obtener la intensidad en cada punto dentro de la

faceta (de forma incremental).

Sombreado de Phong

• Se basa en la interpolación de la dirección de la normal, calculada de la misma forma que antes.

• Igual que en Gouraud, se interpola a lo largo de cada línea de barrido, entre los puntos inicial y final, interpolados a su vez de los valores de los vértices de la arista.

• Captura mejor los brillos especulares en el medio de facetas planas (Gouraud los puede omitir).

Produce mejores resultados, a un coste computacional mayor (hay que incrementar la dirección de la normal en tres direcciones, normalizarla y calcular la ecuación de sombreado encada punto)

• Si el coeficiente de reflexión especular es pequeño, los resultados no difieren tanto (se pueden combinar objetos sombreados por ambos métodos en una escena).
Ray Tracing (Trazador de rayos):
Es un método basado en los principios físicos de la óptica geométrica que puede simular reflexiones múltiples y la transparencia
Buffer de profundidad 
Es la parte de la memoria de nuestra tarjeta gráfica encargada de la visibilidad de nuestros gráficos 3D según las coordenadas de sus pixeles, con lo que se puede gestionar qué elementos de una escena renderizada son visibles y cuales permanecerán ocultos según sus posiciones en el eje Z ( distancia a cámara ). Sirve para no dibujar objetos delante de otros cuando no debe.
Buffer de Stencil
Es un buffer extra, además de la memoria de color (buffer pixel) y el buffer de profundidad (z-buffering) encontró en el equipo moderno hardware gráfico. El buffer es por píxel, y trabaja en valores enteros, por lo general con una profundidad de un byte por píxel. El buffer de profundidad y stencil buffer a menudo comparten la misma área en la memoria RAM del hardware de gráficos.
Buffer de acumulación
Sirve para capturar el buffer de color en un fotograma y aplicarle acumulaciones del color de otro fotograma/s. Esto básicamente sirve para simular el efecto de estela que deja un objeto cuando se mueve muy rápidamente en el encuadre de la cámara.
Fuentes de Luz
La luz puede dejar una superficie mediante dos procesos fundamentales:
· Emisión propia
· Reflexión
Normalmente se piensa en una fuente de luz como un objeto que emite luz solo mediante fuentes de energía internas, sin embargo, una fuente de luz, como un foco, puede reflejar alguna luz incidente a esta del ambiente. Este aspecto no será tomado en cuenta en los modelos más sencillos.
Fuentes de color
Son fuentes luminosas naturales todos aquellos cuerpos capaces de emitir luz, como las estrellas, las luciérnagas, el fuego, etc. No solamente las fuentes de luz emiten diferentes cantidades de luz en diferentes frecuencias, pero también sus propiedades direccionales varían con la frecuencia. Por lo tanto, un modelos físicamente correcto puede ser muy complejo. Para la mayoría de las aplicaciones, se puede modelar fuentes de luz en base a tres componentes primarios, RGB, y puede usar cada uno de los tres colores fuentes para obtener el componente de color correspondiente que un observador humano vería. La mayor fuente natural de luz y de calor en la Tierra, es el Sol durante el día y durante la noche son la Luna y las Estrellas que la reciben del Sol y lo reflejan a la Tierra.
Luz ambiente
En algunos cuartos, las luces se diseñan y ubican para proveer iluminación uniforme en el cuarto. Tal iluminación se logra mediante fuentes grandes con difusores cuyo propósito es esparcir la luz en todas las direcciones. Se puede crear una simulación precisa de tal iluminación, modelando todas las fuentes distribuidas, y luego integrando la iluminación de estas fuentes en cada punto de una superficie reflectora. Hacer tal modelo y generar la escena sería un tarea formidable para un sistema gráfico, especialmente si se desea ejecución en tiempo real. De manera alternativa, se puede ver el efecto deseado de las fuentes: lograr un nivel de luz uniforme en el cuarto. Esta iluminación uniforme se llama luz ambiente.
Spotlights (direccionales)
Se caracterizan por un rango delgado de ángulos por los cuales se emite luz. Se puede construir un spotlight sencillo de una fuente de punto limitando los ángulos de donde la luz de la fuente se puede ver.
Fuentes de Luz Distantes
La mayoría de los cálculos de sombreado requieren la dirección de un punto sobre la superficie a la fuente de luz. Según se mueve a lo largo de la superficie, se debe recomputar este vector para calcular la intensidad en cada punto, una computación que es una parte significativa del cálculo del sombreado. Sin embargo, si la fuente de luz está lejos de la superficie, el vector no cambiará mucho según se mueve de un punto a otro, al igual que la luz del sol da en todos los objetos cercanos entre si con el mismo ángulo.
Intensidad completa
 La intensidad completa exclusivamente por efectos de iluminación es la siguiente:

FUENTES:
1.http://cannes.itam.mx/Alfredo/Espaniol/Cursos/Grafica/Sombreado.pdf
2. http://www.fdi.ucm.es/profesor/segundo/PDFs/7SombreadoVisualizacion.pdf
3.http://lsi.ugr.es/~curena/doce/vr/pracs.10-11/03/#ilu
4.http://e-md.upc.edu/diposit/material/24099/24099.pdf
5.http://informatica.uv.es/iiguia/AIG/web_teoria/tema3.pdf
6.http://www.azrodin.com/2009/09/generacion-de-sombras-con-stencil-buffer/
7.http://cannes.itam.mx/Alfredo/Espaniol/Cursos/Grafica/Sombreado.pdf
8.http://sabia.tic.udc.es/gc/Contenidos%20adicionales/trabajos/3D/modelosIlumionacion/introduccion_intensidad_completa.html