lunes, 28 de noviembre de 2011

Resumen

PROCESAMIENTO DE IMÁGENES

Procesamiento de imágenes a bajo nivel
- Muy poco uso de conocimiento respecto al contenido de las imágenes
- Adquisición de la imagen, pre-procesamiento, segmentación de la imagen, descripción y clasificación de los objetos.

Entendimiento de imágenes a alto nivel
- existe la capacidad de realizar toma de decisiones respecto al contenido de las imágenes

El procesamiento de las 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.
Una característica es un atributo usado para hacer decisiones respecto a objetos en la imagen.
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.

Una imagen f(x,y) está dada por sus coordenadas espaciales y su brillo, y es representada matemáticamente por una matriz.

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

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.

Las técnicas de filtraje son transformaciones de la imagen pixel a pixel, que no dependen solamente del nivel de gris de un determinado pixel, sino también del valor de los niveles de gris de los pixeles vecinos en la imagen original. El proceso de filtraje se realiza utilizando matrices denominadas máscaras, que son aplicadas en la imagen. La imagen resultante de la aplicación de un filtro es una nueva imagen. Los filtros sirven para suavizar o realzar detalles de la imagen, o inclusive minimizar efectos de ruido.

Filtro Gaussiano
El filtro Gaussiano es comúnmente utilizado en aplicaciones de detección de bordes y análisis de escala espacial. Este filtro tiene el inconveniente de que, además de remover el ruido, empaña la imagen ocasionando pérdida de los detalles mas finos.

Filtro Mediana (Rango de Vecindades)
Su objetivo es reducir el empañamiento de los bordes. este filtro reemplaza el pixel actualmente analizado en la imagen por la mediana del brillo con respecto a los vecinos más cercanos. Su ventaja es de no ser afectado por pixeles individuales ruidosos. La eliminación del ruido es muy buena y no empaña demasiado los bordes. Su desventaja es que disminuye cuando el número de pixeles con ruido es mayor a la mitad del número total de pixeles 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.

Filtro de suavizado conservador
Esta técnica 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 pixeles aislados con un valor muy alto o muy bajo. El procedimiento consiste en encontrar los valores máximo y mínimo de intensidad para cada uno de los pixeles que se encuentran alrededor del pixel a analizar.

Realce de Contraste
Esta técnica tiene como objetivo mejorar la calidad de las imágenes bajo ciertos criterios subjetivos al ojo humano y es utilizada como una etapa de pre-procesamiento para sistemas de reconocimiento de patrones.
El contraste entre dos objetos se puede definir como la razón entre sus niveles de gris medios. La manipulación de contraste consiste en una transferencia radiométrica  en cada pixel, con el fin de discriminación visual entre los objetos presentes en la imagen. La operación esta realizada punto a punto.

Filtro paso bajo
Este filtro es 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. Las reducciones de ruido mediante este filtro se lleva a cabo mediante una cancelación de las variaciones más rápidas entre pixel y pixel.

Filtro paso alto
Opera de la misma manera que el filtro de paso bajo, mediante el análisis de los valores de cada pixel y cambiando estos de acuerdo a los valores de los pixeles vecinos, sin embargo su efecto es el opuesto, en vez de obtener un suavizado de la imagen, se realzan los detalles de la imagen.

Filtro SUSAN (Smallest Univalue Segment Assimilating Nucleus)
Este algoritmo preserva la estructura de la imagen aislando únicamente sobre los pixeles que se encuentran dentro de la regíon del pixel analizado, tomando un excedente del promedio de los pixeles en la localidad que caedentro de USAN, siendo este el núcleo circular de pixeles utilizado para el cálculo matemático del nuevo valor del pixel central. Este filtro integra los mejores aspectos de los métodos de reducción de  ruidos existentes incluyendo la preservación de bordes.

Operadores para la detección de bordes

La detección de esquinas y líneas se basa en los operadores 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.
El objetivo de un algoritmo de detección de bordes es obtener imágenes cuya salida muestre pixeles de mayor intensidad en los valores que detecten transiciones cercanas. Los bordes son encontrados en zonas de la imagen donde el nivel de intensidad fluctúa bruscamente. Cuanto más rápido se produce el cambio de intensidad, el borde es más fuerte.

Algunos algoritmos de detección de bordes más comunes son los siguientes:
- Técnicas basados 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
Los operadores basados en el gradiente asumen que los bordes de una imagen son pixeles con un alto gradiente. Un pixel de borde se describe mediante dos características importantes:
- Intensidad del borde, que es igual a la magnitud del gradiente.
- Dirección del borde, que es igual al ángulo del gradiente.

El gradiente se estima por medio del uso de operadores.

Operador de Roberts
Es el operador de gradiente más simple. Utiliza las direcciones diagonales para calcular el vector gradiente mediante las máscaras que se muestran en la figura.



Operador de Sobel
Este operador es la magnitud del gradiente, calculada mediante:
donde las derivadas parciales son calculadas por
con la constante c = 2.
De igual manera que el operador de Roberts, Sx y Sy pueden implementarse usando máscaras de convolución.
Operador de Prewitt
Al igual que el Sobel, expande la definición del gradiente en una máscara de 3 x 3 para ser más inmune al ruido, utilizando la misma ecuación que Sobel, pero con una constante c = 1. A diferencia del operador de Sobel, este operador no otorga una importancia especial a pixeles cercanos al centro de la máscara.
Operador Isotrópico
El operador de Prewitt proporciona una buena detección para bordes verticales y horizontales, mientras que el operador Sobel es mejor en la detección de bordes diagonales. El operador Isotrópico intenta llegar a un equilibrio entre ellos aplicando las máscaras mostradas en la figura.

Vision por computadora: Procesamiento de iamgenes o Inteligencia artificial

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 inteligiente entre la percepción y el control del movimiento.
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, la visión artificial es exactamente lo mismo salvo que el medio por el cual se adquiere el conocimiento ahora es un intrumento de cómputo mas bien que el cerebro de algún 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.
La visión artificial incluye muchas técnicas que son útiles para la misma, por ejemplo, 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 solo una instancia).
La visión artificial incluye técnicas para la descripción útil de la forma y del volumen, para los modelos geométricos y para el llamado proceso cognositivo.

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. La animación por computadora se puede definir como un formato de presentación de información digital en movimiento a través de una secuencia de imágenes o cuadros creadas o generadas por la computadora.

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 dibujada por compuatdora es posible cambiar el ángulo de la cámara y con esto, ver otra parte de la escena.
Otra ventaja de la animación por computadora es que se pueden reutilizar partes de la animación por separado, 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.

Gracias a las nuevas técnicas de graficación, los objetos se pueden ver mucho más realistas. Podemos hacer incluso que aparenten ser de un material específico cambiando las texturas y los pesos. Mientras más pesado es un objeto, su masa es mayor y es necesario aplicar mayor fuerza para moverlo y esto significa que tiene menor aceleración. Hay tres fases que componen una acción: La anticipación de la acción, la acción en si y la reacción de la acción.

Animación en el cine

Los estudios de animación pixar crearon en conjunto con los estudios Disney la primera película animada completamente por computadora: Toy Story. 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, Pequeños Soldados, Hormiguitaz y Shrek.
Un personaje muy conocido en el cine es Gasparín (Casper). Este personaje fue posible llevarlo al cine gracias a Eric Armstrong de Industrial Light and Magic (ILM) quién realizó los efectos para 400 tomas mediante el programa Soft Image.

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. 

Animación basada 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 usada en los videojuegos. Con el paso del tiempo se han creado nuevas técnicas como key framing, rotoscopiado, motion control y wavelets.

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.

Rotoscopiado

Consiste en una forma más elaborada de key framing. En esta caso se obtiene 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

Es una técnica muy utilizada actualmente, sobre todo en sets virtuales y en 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 creada por Robert Abel & Associates.

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

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 direcciona los retos técnicos), producción (creación de la película) y post producción (pulir los últimos detalles). 

El primer paso de la producción es la presentación de una idea por parte de los empleados de su equipo. Se escribe un texto llamado Text Treatment que resume la idea principal de la historia. Una vez hecho esto se dibuja el Story Board. Este es una versión dibujada a mano de la historia. Cada artista recibe guiones y un beat outline que es un mapa de los cambios emocionales que los personajes deben mostrar durante la película . Ahora se graban la voz de los personajes. Los mismos artistas de Pixar son los encargados de grabar los diálogos para el Story Board. Cuando la historia y los diálogos ya están avanzados, artistas profesionales graban las voces de los personajes.
Entonces el editor comienza a hacer los reels, que son videos utilizados para limpiar las secuencias del Story Board. Este es un paso esencial para validar la secuencia. El departamento de arte crea la imagen y los sentimientos de los personajes. Se crean las ilustraciones del mundo y los personajes. Se diseñan los sets, imágenes para superficies, colores, iluminación, etc.
A continuación se articulan y esculpen los modelos a mano y escaneados en 3D o modelados directamente en la computadora. Los sets son creados en 3D y se llenan con sillas, cortinas, juguetes, etc. Para crear un mundo tridimensional realista. Ahora se traduce la historia en escenas tridimensionales. Se hacen las coreografías de los personajes en el set y se utiliza una cámara virtual que captura la emoción y el punto de la historia en cada escena. Se anima la escena. Con el software de Pixar se hacen los movimientos y expresiones faciales para cada escena. 
Una vez realizada la animación, se sombrean los sets y los personajes. El sombreado se hace por medio de Shaders que son programas de software que permiten variaciones complejas en los colores. La forma de los objetos es determinada por los shaders con las características de los modelos, la superficie, el color y la textura. La animación se hace utilizando "luz digital". Se hace el rendering de los datos. Por último se le dan los toques finales a las escenas. Los editores ven la película y añaden la música y otros efectos de sonido. Los efectos de animación añaden los efectos especiales y el departamento de fotociencia graba las imágenes digitales a una película o al formato adecuado para su proyección.

lunes, 29 de agosto de 2011

Glosario

Ray Tracing.- es un algoritmo para síntesis de imágenes tridimensionales. Propuesto inicialmente por Turner Whitted en 1980, está basado en el algoritmo de determinación de superficies visibles de Arthur Appel denominado Ray Casting (1968).

Clipping.- Any procedure which identifies that portion of a picture which is either inside or outside a picture is referred to as a clipping algorithm or clipping. The region against which an object is to be clipped is called clipping window.

Raster.- In computer graphics, a raster graphics image, or bitmap, is a data structure representing a generally rectangular grid of pixels, or points of color, viewable via a monitor, paper, or other display medium. Raster images are stored in image files with varying formats.

Render.- Se refiere al proceso de generar una imagen desde un modelo.

API.- is a particular set of rules ('code') and specifications that software programs can follow to communicate with each other.

VRAM.- tipo de memoria RAM usada para la pantalla de la computadora, debe ser rápida para mantener la velocidad con la cual la pantalla es escaneada.

gif.- Graphics Interchange Format, formato gráfico usado ampliamente en la www tanto en imágenes como en  animaciones.

bmp.- formato propio del programa Microsoft Paint, que viene que el sistema operativo windows, puede guardar imágenes de 24 bits, 8 bits y mneos.

Algoritmo LZW.- algoritmo de compresión sin pérdida desarrollado por Terry Welch en 1984 como una versión mejorada del algoritmo LZ78 desarrollado por Abraham Lempel y Jacob Ziv.

jpeg.- Joint Photographic Experts Group, comité de expertos que creo un estándar de compresión y codificación de archivos de imágenes fijas. 

png.- Portable Network Graphics, formato gráfico basado en un algoritmo de compresión sin pérdidas para bitmaps no sujeto a patentes. este formato fue desarrollado en buena parte para resolver las deficiencias del formato GIF.

svg.- Scalable Vector Graphics, describe gráficos vectoriales bidimensionales, tanto estáticos como animados en formato XML.

sábado, 20 de agosto de 2011

Introducción a la Computación Gráfica


1950
Se construye Whirlwind primer computadora que utiliza CRT (tubos de rayos catódicos) en el MIT (Instituto Tecnológico de Massachussets), para simular vuelos de entrenamiento de los escuadrones de los bombarderos de la marina de EUA. Continua el desarrollo de los dispositivos de entrada.

1952
Producto de la tesis doctoral de Alexander Sandy Douglas se crea el primer videojuego de la historia con el nombre de OXO.

1961
Steve Russel dirigió un equipo que creó el primer videojuego interactivo de naves espaciales llamado SPACEWAR. El juego se escribió en una PDP-1 en el MIT.

1963
Primer sistema que permitía la manipulación directa de objetos gráficos y fue el precursor de los sistemas de gráficos por computadora y los programas de diseño asistido por computadora (CAD). Desarrollado por Ivan Sutherland.

1966
Sutherlando junto con Bob Sproull fue el primero en implementar un sistema de realidad virtual.

1968
Tektronix introdujo un CRT con tubo de almacenamiento que permitía retener permanentemente un dibujo hasta que el usuario decidiera borrarlo.

1970
Edwin Catmull creo una animación de su mano abriéndose y cerrándose, Fred Parke creó una animación del rsotro de su esposa.
A partir de 1970 se comenzaron a introducir los gráficos por computadora en el mundo de la televisión. Computer Image Corporation (CIC), desarrollo sistemas complejos de hardware y software como ANIMAC, SCANIMATE y CAESAR.

1971
Aparece el microprocesador uno de los avances más importantes para los gráficos por computadora. Una de las primeras microcomputadoras de escritorio diseñada para uso personal fue la Altair 8800 de Micro Instrumentation Telemetry Systems (MITS). Nolan Kay Bushnell junto con un amigo creó el atari.

1972
Comenzó el desarrollo de un videojuego de arcadia llamado Pong. Se basaba en el creado por William Higinbotham, quien programó un osciloscopio para que simulara una partida de ping pong que permitía interacción entre dos jugadores, este juego fue llamado Tenis for two.

El primer videojuego público y comercial de la historia fue el Galaxy Game, creado por Hill Pitts y Hugh Tuck. Quienes reprogramaron la versión original del juego Spacewar.

1980
En la conferencia de SIGGRAPH fue presentada una película llamada “Vol Libre”. Se trataba de un vuelo de alta velocidad a través de montañas fractales creadas por computadora.

A finales de los 70’s Carpenter había construido modelos en 3D de diseños de aeroplanos y quería algunos escenarios para usarlos.

1981
Carpenter escribió su primer programa de rendering para Lucas Film, llamado REYES (Renders Everything You Ever Saw), REYES tomaría parte del motor de renderizado Renderman.

1991
Fue estrenada Terminator 2 que inpuso un nuevo estándar para los efectos con imágenes generadas por computadora (CGI).

1995
Se presentó la primera película de larga duración con gráficos y animaciones 3D por computadora. La película realizada por Pixar fue llamada Toy Story.
Sony lanzó al mercado mundial su consola de juegos Playstation, que contenía un chip de 3D acelerado por hardware capaz de dibujar 360,000 polígonos por segundo.

1996
La industria de los videojuegos experimentó un gran avance en los gráficos 3D con la salida de Quake de ID Software.

1997
La industria de los videojuegos experimento una nueva revolución con el acelerador 3DFX VooDoo 3D. Este chip 3D aplastó por completo a la competencia con su increible y extremadamente práctico desempeño en 3D.

1999
nVidia logró superar el desempeño de 3DFX en la batalla de los chips 3D con su procesador TNT2. En octubre sacaron a la venta el primer GPU (Unidad Gráfica de Procesamiento) para consumo del mundo, la GeForce256. Fue la primera tarjeta 3D que poseía un motor de hardware llamado Transform & Lighting. Quake III era el único que soportaba esta opción. La GeForce256 podía renderizar triángulos con soporte de T&L en hardware con un rendimiento igual o mayor a 10 millones de polígonos por segundo.

En el año 2000 nVidia adquirió los activos intelectuales de 3DFX, ATI se estaba volviendo fuerte y MATROX anunciaba nuevos productos.

2001
Nintendo lanzó el Gamecube y el Gameboy Advance, pero el gran lanzamiento de ese año fue el de la consola Xbox de Microsoft, con un procesador gráfico de sarrollado por nVidia, disco duro, CPU intel y más, fue diseñada para ganarle a sus principales competidores Playstation 2 y Gamecube de Nintendo. SEGA había dejado el mundo del hardware y se concentró en software.
El mundo de la cinematografía también se vió beneficiado con estos avances y se puede ver en películas como Final Fantasy: The Spirits Within, fue el primer inteno por crear humanos realistas en una película completamente generada por computadora.

2003
Aparecen secuelas con grandes efectos especiales: X-men 2, Matrix 2 y Terminator 3 son solo algunos ejemplos.

2004
Algunos de los juegos que aparecieron en ese año como Farcry de Ubisoft fueron de los primeros juegos en utilizar los últimos avances en los gráficos por computadora como los shaders de Direct X 9.0. El segundo gran juego fue Doom 3. Hacia finales de año llegó Half-life 2 que se desarrollo durante seis años y presentaba gráficos increiblemente realistas y creaba toda una nueva dimensión en el modo de juego.

2007
Para la película Spider-man 3 Sony Pictures Imageworks (SPI) usó el software Autodesk Mayapara la animación en 3D, el modelado texturizado y combinación de movimientos de los personajes y efectos visuales en un 80% de las tomas. Se usó el sistema de efectos visuales Autodesk Flame para hacer cambios en el rostros de los personajes y para integrar tomas reales de ellos en ambientes generados totalmente por computadora.

martes, 16 de agosto de 2011

Tarea 1

Aplicaciones de gráficos por computadora

Ingeniería.- Las actividades de ingeniería pueden dividirse en cinco áreas: diseño, análisis, dibujo, fabricación/construcción/procesamiento y control de calidad.

Ciencias.- Los científicos pueden emplear las gráficas por computadora de muchas maneras.

Arte.- El artista siempre ha podido escoger los medios de expresión adecuados para su talento. Las gráficas por computadora son otro medio del que dispone para ampliar su libertad de expresión.

Educación.- El beneficio más grande que a aporta las computadoras y las gráficas que realizan en un ambiente educativo. En cuanto a capacitación se diseñan sistemas especiales.

películas

videojuegos

Sistemas de gráficos

Procesador.- Circuito integrado central y mas complejo de una computadora se le puede asociar como el cerebro de la computadora, está constituido por millones de componentes electrónicos integrados.

Memoria.- Dispositivos que retienen datos informáticos durante algún intervalo de tiempo.

Frame Buffer.- Categoría de dispositivos gráficos, que representan cada uno de los pixeles de la pantalla como ubicaciones en la memoria de acceso aleatorio.

Dispositivos de salida.- Son los que permiten representar los resultados del proceso de datos. Por ejemplo, el monitor, impresora, trazadores gráficos, bocinas, etc.

Dispositivos de entrada.- Son aquellos que sirven para introducir datos a la computadora para su proceso. Los dispositivos de entrada convierten la información en señales eléctricas que se almacenan en la memoria central. Ejemplos, teclados, lápices ópticos, joystick, etc.

Disparidad Binocular.- Se refiere a la ligera diferencia entre los dos puntos de vista proporcionados por ambos ojos. Es la forma de percibir profundidad y relieve.