miércoles, 30 de noviembre de 2011

Unidad V

¿Qué es la visión artificial?

     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 algun ser vivo.

     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 de dos dimensiones y, por lo tanto, perdemos inevitablemente la información en el proceso de la proyección en el momento de pasar de un mundo tridimensional a una imagen de dos dimensiones.

     En segundo lugar, las imágenes son imágenes digitales: son representaciones discretas (es decir tienen valores distintos en los puntos regularmente muestreados) y son representaciones cuantificadas (es decir cada valor es un valor del número entero).

     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.

Animación por Computadora

     La animacion es la simulacion de un movimiento, creada por la muestra de una serie de imagnes o cuadros. Con el paso de los años, la animacion de imágenes ha evolucionado de forma considerable. Se debia dibujar cada cuadro y se unian para formar una imagen animada. Ahora el uso de la computadora permite crear escenas mucho más reales.

     La animacion por computadora se puede definir como un formato de presentacion de informacion digital en movimiento a través de una secuencia de imagnes o cuadros, se utiliza principalmente en videojuegos y peliculas. El video toma el movimiento continuo y lo descompone, mientras la animacion parte varias imágenes estaticas y las une para crear la ilusion de un movimiento continuo. 

Características de la Animacion 3D

A diferenia de la animacion dibujada a mano, en una escena animada por computadora es posible cambiar el angulo de la camara y con esto, ver otra prata de la escena.  John Lasseter de Pixar fue una de las primeras personas en crear animacion por computadora.

Una ventaja de la animacion por computadora es que se puede reutilizar partes de la animacion por separado. Una animacion puede verse muy diferene simplemente cambiando el angulo de la camara.

Es posible lograr que una animacion se vea mas realista si variamos el peso y el tamaño de los objetos. Podemos hacer que aparenten ser de un material especifico cambiado las texturas y pesos. Mientras mas pesado es un objeto, su masa es mayor y es necesario aplicar mayor fuerza para moverlo y esto significa que tiene menor aceleracon.

Otro punto importante a considerar en la animacion 3D es la forma en que se detienen los cuerpos. Si a un modelo lo detenemos por completo, el movimiento no se vera realista. Cuando un cuerpo vivo se va a detener,  la fuerza de la inercia hacen que se vaya deteniendo poco a poco.

Hay tres fases que componen una accion: La anticipacion de la accion, La accion en sí, y La reaccion a la acción.  Para que se vea realista, es necesario que el tiempo empleado en cada parte de la accion sea el indicado. Tambien se debe mantener el flujo y la continuidad entre las acciones y esto se logra traslapando un poco cada parte de la accion. 

Animación en el Cine

Los estuidos de Animacion Pixar crearon en conjunto con los estudios Disney la primera pelicula animada completamente por computadora: Toy Story.

Otros estudios famosos que tambien producen peliculas con animacion por computadora son Dream Works. Estos estudios fueron creados en 1994 por Steven Spielber, Jeffrey Katzenberg y David Geffe.

Un personaje muy conocido es Gasparin. Fue posible llevarlo al cine gracias a Eric Armstrong quien relizo los efectos para 400 tomas meidante el programa Soft Image.  Se realizo por medio de una tecnica llamda cinemática inversa, permite que otros elementos reaccionen al mover solo uno en el modelo 3D.

Tecnicas de Animacion.

Técnicas que se utilizan en la animación tradicional:
  • animación en acetatos (cel animation),
  • la animación basada en cuadros (flipbook animation)
  • la animación en sprite
Animacion Basada en Cuadros.

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.

Animacion Basada en Sprites.

Se refiere a animaciones de objetos sobre fondos estáticos, es decir, lo que cambia son los personajes. Con el paso del tiempo, se han creado nuevas técnicas como key framing, rotoscopiado, motion control y wavelets.

Key Framming
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 kay frame para cada control en cada nivel de la jerarquía del modelo.

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.

Motion Control

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.

Wavelets

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.

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.

El rendering de los datos es el proceso de traducir la información que forma la toma (sets, movimientos de los personajes, colores, etc) en un solo frame. Pixar cuenta con un enorme sistema computacional que interpreta los datos y les incorpora movimiento. Cada frame representa 1/24 de segundo y toma aproximadamente seis horas el rendereo, aunque ha habido tomas que tardan hasta noventa horas en este proceso.

Procesamiento 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 poder realizar mediciones sobre las imágenes generalmente requiere que sus características estén bien definidas, los bordes bien delimitados y el color y brillo sean uniformes. El tipo de mediciones a realizar para cada característica específica es un factor importante para poder determinar los pasos apropiados para su procesamiento. Los procedimientos aplicados para el procesamiento de imágenes están orientados a las aplicaciones. Lo que puede ser adecuado para una aplicación puede no serlo para otra

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

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.

Se considera como ruido en las imágenes electrocardiográficas un fondo con cuadriculado, así como cualquier otro píxel ajeno a la curva del electrocardiograma que pueda presentarse en la imagen.

Las técnicas de filtraje son transformaciones de la imagen píxel a píxel, que no dependen solamente del nivel de gris de un determinado píxel, sino también del valor de los niveles de gris de los píxeles vecinos en la imagen original. El proceso de filtraje se realiza utilizando matrices denominadas máscaras, que son aplicadas sobre la imagen. Los filtros sirven para suavizar o realzar detalles de la imagen, o inclusive minimizar efectos de ruido.

Filtro gaussiano

Este filtro implementa máscaras que intentan imitar la forma de una gaussiana: G(x,y) = e - (x + y)² / 2σ², donde x, y son las coordenadas de la imagen y sigma una desviación estándar de la probabilidad de distribución asociada

Los píxeles más lejanos del centro del operador tienen menor influencia y los píxeles más allá de tres valores de sigma a partir del centro tienen una influencia insignificante.

Este filtro tiene el inconveniente de que, además de remover el ruido, empaña la imagen ocasionando pérdida de los detalles más finos

Filtro mediana (rango de vecindades)

El objetivo es reducir el empañamiento de los bordes. Este filtro reemplaza el píxel actualmente analizado en la imagen por la mediana del brillo con respecto a los vecinos más cercanos. Este filtro tiene la ventaja de no ser afectado por píxeles individuales ruidosos. La eliminación de ruido obtenida con el filtro mediana es bastante buena, con la ventaja de no empañar demasiado los bordes.

Las principales desventajas del filtro mediana son que su desempeño disminuye cuando el número de píxeles con ruido es mayor a la mitad del número total de píxeles en la vecindad y tiene el inconveniente frente a los filtros lineales de ser más lento

Filtro de suavizado direccional (preservación de bordes)

La eliminación de ruido mediante suavizado distorsiona la información con respecto a los bordes. Para reducir el empañamiento de bordes al realizar el suavizado se puede usar un filtro de promediado direccional que se calcula en varias direcciones.

Filtro de suavizado conservador

Esta técnica de reducción del nivel de ruido emplea un algoritmo de filtración simple y rápido que sacrifica su poder de eliminación de ruido a cambio de preservar el detalle espacial de la frecuencia en una imagen, removiendo píxeles aislados con un valor muy alto o muy bajo.

Realce de contraste

Tiene como objetivo mejorar la calidad de las imágenes bajo ciertos criterios subjetivos del ojo humano. Normalmente esta técnica es utilizada como una etapa de pre-procesamiento para sistemas de reconocimiento de patrones.

El histograma es una de las formas más comunes de representar la distribución de los niveles de gris de una imagen, y también la más utilizada en procesamiento de imágenes. El histograma provee la información de cuántos píxeles poseen un determinado nivel de gris en la imagen en un intervalo definido entre 0 (negro) y 255 (blanco) para una imagen de 8 bits, ofreciendo datos importantes como la intensidad media y la dispersión de los valores de niveles de gris, siendo esta última la medida de contraste de la imagen. Cuanto mayor es la dispersión a lo largo del eje que representa los niveles de gris, mayor es el contraste de la imagen

Filtro paso bajo

Es un tipo de filtro de suavizado empleado para remover ruido de alta frecuencia espacial en una imagen digital. Este ruido es generalmente introducido en la imagen durante el proceso de conversión de analógico a digital como un efecto secundario de la conversión física de patrones de energía luminosa a patrones eléctricos.

Se lleva a cabo mediante una cancelación de las variaciones más rápidas entre píxel y píxel. El ruido aparece de manera aleatoria a manera de puntos en la imagen, usualmente con valores bastante distintos a los vecinos más cercanos.

Filtro paso alto

Opera de la misma manera que el filtro paso bajo, mediante el análisis de los valores de cada píxel y cambiando estos de acuerdo a los valores de los píxeles vecinos. El efecto en este filtro es, sin embargo, el opuesto. En vez de obtener un suavizado de la imagen, el filtro paso alto realza detalles de la imagen. El uso de este filtro debe reservarse preferentemente a imágenes con muy poco ruido.

Filtro SUSAN (Smallest Univalue Segment Assimilating Nucleus)

Preserva la estructura de la imagen alisando únicamente sobre los píxeles que se encuentran dentro de la región del píxel analizado (píxel central) tomando un excedente del promedio de los píxeles en la localidad que cae dentro del USAN (Univalue Segment Assimilating Nucleus), siendo este un núcleo circular de píxeles utilizado para el cálculo matemático del nuevo valor del píxel central [Martínez, 2002]. Los píxeles que caen dentro del USAN obtienen valores con pesos similares, mientras que los píxeles que se encuentran fuera de esta región son asignados con valores prácticamente de cero.

Operadores para la detección de bordes

La detección de esquinas y líneas se basa en los operadores de detección de bordes, mismos que, mediante el cálculo de primeras y segundas derivadas permiten determinar puntos de principal importancia para poder realizar las mediciones necesarias.

En el análisis de objetos dentro de las imágenes resulta esencial poder distinguir entre el objeto de interés y el resto de la imagen. Las técnicas utilizadas para determinar los objetos de interés son conocidas como técnicas de segmentación. Una de las más comunes la segmentación mediante la detección de bordes.

Para poder detectar los bordes de los objetos debemos detectar aquellos puntos de borde que los forman. Así, un punto de borde puede ser visto como un punto en una imagen donde se produce una discontinuidad en el gradiente.Un buen proceso de detección de bordes facilita la elaboración de fronteras de objetos, con lo que el proceso de reconocimiento de objetos se simplifica.

A fin de lograr la localización de los puntos en los que se produce la variación de intensidad, se emplean métodos basados en los operadores derivada. Básicamente se tienen dos posibilidades: aplicar la primera derivada (gradiente) o la segunda derivada (laplaciana). En el primer caso se buscarán grandes picos y en el segundo, pasos de respuesta positiva a negativa o viceversa (cruces por cero).

 Algunos de los algoritmos de detección de bordes más comunes son los siguientes:

Técnicas basadas en el gradiente:
  • Operador de Roberts
  • Operador de Sobel
  • Operador de Prewitt
  • Operador Isotrópico (u operador de Frei-Chen)


- Operadores basados en cruces por cero:
  • Operador de Marr-Hildreth
  • Detector de Canny
Un píxel de borde se describe mediante dos características importantes:
  1. Intensidad del borde, que es igual a la magnitud del gradiente.
  2. Dirección del borde, que es igual al ángulo del gradiente.

jueves, 17 de noviembre de 2011

Tecnicas de Sombreado

Iluminación Local. 

     Luces que no son extensas, como las reales, sino inextensas, puntuales. Y, por añadidura, se relacionan con los objetos como mónadas aisladas, sin tener en cuenta la interacción entre ellos. Esto explica lo artificioso de muchas de las técnicas que se describirán más adelante y que buscan compensar estas limitaciones. 

     Las insuficiencias de los métodos de iluminación local se han superado en parte por medio de sistemas de iluminación global que permiten tomar en cuenta la interacción entre objetos. Las dos técnicas principales son el trazado de rayos (ray tracing) y la radiosidad (radiosity)

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 triángulos. Cada triángulo será proyectado sobre la ventana bidimensional y rellenado con los colores adecuados para reflejar los efectos de la iluminación, texturas, etc. Una vez se han generado los triángulos, en la pipeline existen dos partes claramente diferenciadas: una primera etapa operaciones realizadas sobre cada uno de los vértices, y después de que éstos se proyecten sobre la ventana, entonces comienza una segunda fase de cálculos realizados para cada pixel cubierto por los triángulos.

Iluminación global. 

     Son sencillos y rápidos pero proporcionan imágenes muy simples, que no representan adecuadamente el modo en que la luz ilumina los objetos y los espacios. Esto no quiere decir que no sean útiles para un gran número de casos, y es muy importante calibrar adecuadamente que es lo que se necesita, pues puede muy bien ocurrir que un cálculo local proporcione imágenes relativamente esquemáticas pero más adecuadas para la representación de un proyecto. 

    Los métodos principales que existen en la actualidad pueden considerarse como desarrollos, con diferentes variantes, de los dos métodos principales que surgieron en la década de los 1980, ray tracing (introducido por T.Whitted en 1980) y radiosity (hacia 1984 por varios autores). Una base téorica más firme para los algoritmos y métodos de GI (Global Illumination), vino con la publicación, por Kajiya, en 1986 de la rendering equation, que puede encontrarse en un manual especializado

Trazado de Rayos 

   El trazado de rayos computa la interacción de la luz desde un punto de vista determinado y es particularmente adecuado para superficies reflectantes. Puede utilizarse como propiedad específica de un determinado material

Radiosidad 

     Está basado en principios generales que se pueden encontrar en un manual general sobre rendering. En el estadio 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 o, en una aproximación más exacta, cada parte de un objeto, según una subdivisión cuya densidad puede precisarse 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 iluminará a su vez a los objetos que le rodean.

Casi todos los modelos de iluminación necesitan conocer la normal de cada superficie para calcular su color. 

     El primero, llamado método de Gouraud, efectúa una interpolación a partir de los colores calculados por los vértices del polígono, en los que se conoce la normal. El segundo llamado método de Pong, interpola la normal en el punto en estudio a partir de las normales en los vértices, calculando a continuación el color con la ayuda de esta normal según el modelo de iluminación elegido 

Modelo de Reflexión Phong 

     El modelo de reflexión de Phong es eficiente y suficientemente aproximado a la realidad física para producir buenas imágenes, bajo una variedad de condiciones de luz y propiedades de materiales. Apoya los tres tipos de interacciones material-luz: ambiente, difusa y especular. Si se tiene un conjunto de fuentes puntos, con componentes independientes para cada uno de los tres colores primarios para cada uno de los tres tipos de interacciones material-luz.

Ray Tracing 

     En muchas formas, ray tracing es una extensión al enfoque de rendering con un modelo de iluminación local. Está basado en la observación previa que, de los rayos de luz saliendo de una fuente, los únicos que contribuyen a la imagen son aquellos que entran el lente de la cámara sintética y pasan por el centro de proyección. 

Buffer de Profundidad.

     El Z-Buffer se basa en que al generar la posición de un punto en la pantalla la computadora reserve una zona de memoria especial, llamada Z-Buffer, información relacionada con la profundidad del punto que ocupa en la escena representada. Cuando el ordenador representa un nuevo punto consulta el Z-Buffer del píxel que corresponde en pantalla. Si el valor que ya existe en el píxel es mayor que el que posee el nuevo punto, el sistema asume que este último es el visible y lo sustituye en la memoria del Z- Buffer.

Buffer Stencil.

     Stencill Buffer es una memoria intermedia que analiza y actualiza píxeles (con sus operaciones) junto con “depth buffer” o buffer de profundidad. Añade planos de bits adicionales para cada píxel además de los bits de color y profundidad. 

     Stencil buffer es similar al buffer de profundidad en que los dos son colección de planos de bit que no se pueden mostrar. Del mismo modo que el buffer de profundidad asocia a cada píxel de la ventana un valor de profundidad, el stencil buffer asocia su propio valor a cada píxel mostrado. Cuando el buffer de profundidad esta activado los valores de profundidad son usados para aceptar o rechazar fragmentos, del mismo modo los valores de Stencil buffer son usados para aceptar o rechazar fragmentos.

Buffer de Acumulacion

     Normalmente se usa un buffer de acumulación para unir las 2 imágenes 

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 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. 

Fuentes de Color 

     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.

Luz Ambiente 

     La luz ambiente ilumina por igual todas las zonas en sombra para simular el efecto de interacción entre objetos que hace que las partes en sombra de los objetos queden parcialmente iluminadas. 

     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. Si se sigue este segundo enfoque, se puede postular una intensidad ambiente en cada punto del ambiente. Por lo tanto, iluminación ambiente se caracteriza por una intensidad Ia, que es idéntica en cada punto de la escena.

Spotlights (direccionales) 

     Los spotlights 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. Se puede usar un cono cuyo ápice está en ps, apuntando en la dirección ls, y cuyo ancho está determinado por el ángulo θ.

Intensidad completa

La intensidad completa exclusivamente por efectos de iluminación es la siguiente:

http://e-md.upc.edu/diposit/material/24099/24099.pdf
http://informatica.uv.es/iiguia/AIG/web_teoria/tema3.pdf
http://www.azrodin.com/2009/09/generacion-de-sombras-con-stencil-buffer/
http://cannes.itam.mx/Alfredo/Espaniol/Cursos/Grafica/Sombreado.pdf
http://sabia.tic.udc.es/gc/Contenidos%20adicionales/trabajos/3D/modelosIlumionacion/introduccion_intensidad_completa.html