1 / 52

Conceptos computacionales esenciales en arte multimedia

12 de marzo de 2007 Dra. Elisa Schaeffer FIME/UANL elisa@yalma.fime.uanl.mx. Conceptos computacionales esenciales en arte multimedia. Un algoritmo es un método de solución para resolver una instancia de un cierto problema.

Download Presentation

Conceptos computacionales esenciales en arte multimedia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 12 de marzo de 2007 Dra. Elisa Schaeffer FIME/UANL elisa@yalma.fime.uanl.mx Conceptos computacionales esenciales en arte multimedia

  2. Un algoritmo es unmétodo de soluciónpara resolver una instancia de un cierto problema. En computación, por lo general, se escribe el algoritmo en un lenguaje de programación para ser ejecutado por unacomputadora. Ejemplos: ¿Cómo encontrar un nombre en la guía telefónica? ¿Cómo llegar de mi casa a mí oficina? ¿Cómo determinar si un dado número es un número primo? Para un problema, por lo general existen varios algoritmos con eficiencia (es decir, tiempo de ejecución) diferente. Algoritmo

  3. Parámetros: en número de interés X Salida: “sí” si X es par y “no” si X es impar Procedimiento: Divide el valor X por dos. Asigna en una variable Y el resultado de la división. Si Y es un número entero, dice “sí”. En otro caso, dice que “no”. Termina ejecución. Asignar X = 83 nos da Y = 41,5 que no es entero y el resultado es “no”. Asignar X = 76 nos da Y = 38 que es entero y el resultado es “sí”. Un algoritmo para determinar si un número es par o impar ,

  4. Variables: “espacios de memoria” donde se guarda datos durante la ejecución del algoritmo (nombre, a, x[1]) Asignaciones: poner como el valor de una variable el resultado de alguna operación o copiar el valor de otra variable (a = b, c = 0.45, p = promedio(a, c)) Reclamaciones: “frases” que pueden ser verdaderos o falsos(b > 10, a == d, (e != 3 && d <= 8)) Condiciones: haz una cosa o otra dependiendo si una reclamación R es o no es verdad (if) Repeticiones: haz algo N veces o haz algomientras una dada condición es válida(for while do) Elementos típicos de algoritmos

  5. Varios algoritmos funcionan en base de un conjunto de estados. El modelo abstracto de operación según el estado actual através de transicionesentre los estados se llama autómata. Autómata A B C C B A A

  6. Un sistema para fijar la velocidad de un vehículo que se controla con un solo botón; reacciona automáticamente si el chofer frena o accelera. Cada transición del autómata está disparada por una de tres acciones: presionar el botón (B), accelerar (A) o frenar (F). Modelo simplificado con dos estados: crucero apagado o activo. Autómata de control de crucero B, F OFF ON A,F B A

  7. Fractales son estructuras matemáticas donde el mismo “patrón” repite en diferentes “niveles”. Ejemplo: Copo de nieve de Koch toma una línea divídelo en tres partes elije la parte central levanta su punto medio arriba (repite para cada parte) Si se hace el mismo con un triangulo, línea por línea, resulta un copo. Fractales Línea del copo después de 10 iteraciones

  8. Conjunto Julia http://home.ix.netcom.com/~dcwright/CS35/Lab1/images/blue-julia.png

  9. Conjunto Mandelbrot http://en.wikipedia.org/wiki/Image:Mandel_zoom_00_mandelbrot_set.jpg

  10. Muchos organismos naturales muestran comportamiento parecido a las matemáticas de fractales. Fractales: Inspiración de la naturaleza http://students.washington.edu/pblaxton/Pics/fractal%20non-crystal%20salt.JPG

  11. Existen varios algoritmos para generar terrenos artificiales con computación de tipo fractal. Terrenos fractales Midpoint-displacement (diamonds and squares)

  12. Terrenos artificiales Con el fin de lograr imágenes más realísticas, ell procesamiento de los algoritmos de terrenos artificiales es iterativo y además estocástico, en diferencia en los algoritmos determinísticos de fractales matemáticos. http://en.wikipedia.org/wiki/Image:Fractal_mountain.gif

  13. Terrenos fractales Después de generar una reja de las alturas, se añade textura y color: http://www.fractal-landscapes.co.uk/graphics/pictures/volcanic2.jpg

  14. Helecho fractal x = 0.796956 x + 0.0607246 y y = -0.0697246 x + 0.796956 y + 1.0 x = -0.119707 x + 0.328892 y y = 0.328892 x + 0.119707 y + 0.5 x = 0.107736 x - 0.296003 y + 0.0 y = 0.296003 x + 0.107736 y + 1.0 x = 0.0 y = 0.2232 y http://en.wikipedia.org/wiki/Image:Bransleys_fern.png

  15. Árboles fractales http://www.sfu.ca/~rpyke/335/tree.jpg http://epod.usra.edu/archive/images/fractal_tree.jpg

  16. Una interfaz es una “frontera” o “cortina” entre dos o más componentes(un usuario humano y un software, dos computadoras, varias piezas del mismo software, etcétera)que les permite interactuar/comunicar/colaborar sin conocer en detalle la estructura o función del “otro lado”, utilizando la información que ofrece la interfaz. Interfaz A B

  17. El Internet es una red de computadoras que comunican entre ellas por un protocolo, enviando paquetes de datos de una computadora a otra pasando por una cadena de computadoras intermedias. Cada computadora conectada al Internet tiene asignada una dirección IP númerico (por ejemplo, 148.234.29.72, tipo Ipv4). El proceso de encontrar un camino para entregar un paquete de datos de la computadora de orígen al recipiente se llama ruteo. Se puede asignar un sobrenombre a una dirección IP por servidores especiales de servicio dinámico de nombres (DNS):por ejemplo, la computadora con la dirección IP 148.234.30.91 tambien se conoce como www.uanl.mx. Internet

  18. La Web está compuesta por documentos que se intercambia entre computadores conectados al Internet por un protocolo especial que se llama HTTP (HyperText Transfer Protocol). La redestá formada por enlaces entre las páginas de web. Una página se identifica por su URL (Universal Resource Locator) que está compuesta por el nombre del servidor de HTTP donde están guardados y el camino de carpetas en el disco duro del servidor. El acto de navegar la web significa copiar documentos por el protocolo HTTP de un servidor conectado al Internet al disco duro de la computadora local para mostrar sus contenidos en unun software especializadoque se llama unnavegador. World Wide Web (WWW)

  19. Los documentos transferidos por HTTP típicamente son páginas de web que son documentos escritos en HTML (HyperText Markup Language). <html> <head><title>Mi p&aacute;gina personal</title></head> <body><h1>La p&aacute;gina de Elisa</h1> <p>&iexclam;Bienvenidos a mi p&aacute;gina!<br> Tambi&eacute;n tengo <a href=”http://yalma.fime.uanl.mx/~elisa/”>otra</a> p&aacute;gina de web, pero es de mi trabajo.</p> </body></html> Por HTTP también mueven documentos de otro formato, pero no se consideran páginas de web en si. Si el navegador tiene un plugin adecuado instalado, documentos de otros tipos también abren en el navegador, y en otro caso, se los guarda en el disco duro. World Wide Web (WWW)

  20. (inglés: feedback) Un mecanismo para permitir que un sistema utilice su propia salida (en tiempo t) como una de sus entradas (típicamente con retardo: el uso como entrada será en tiempo t + 1). Retroalimentación

  21. El estudio de mecanismos con retroalimentación se llama la cibernética. En términos más generales, es la ciencia de comunicación y control en organizaciones, máquinas y organismos vivos. La inteligencia artificial y diferentes tipos de sistemas adaptivos son ejemplos de la cibernética. Cibernética

  22. La IA es la ciencia e ingeniería del diseño y la construcción de máquinas que tengan capacidad de razonar sobre observaciones y/o reaccionar en su ambiente Una clasificación de IA según John McCarthy: lógica, búsqueda, identificación de patrones, representación, inferencia, conocimiento de sentido común, razonamiento, aprendizaje de experiencia, planificación, epistemiología, ontología, heurísticas, programación genética Inteligencia Artificial http://www-formal.stanford.edu/jmc/whatisai/whatisai.html

  23. Estás chateando con un desconocido. Necesitas determinar si estás realmente chateando con un ser humano o con una máquina. Si no puedes detectar cuando estás comunicando con una persona y cuando con una máquina, se considera la máquina inteligente. (originalmente por Alan Turing en 1950) La prueba de Turing

  24. AI = una pieza de software que utiliza IA para realizar algunas tareas predeterminadas, típicamente en una manera interactiva con su ambiente. Por lo menos tienen la capacidad de observar su ambiente, y en algunos casos, también pueden modificarlo. Adaptación + Aprendizaje Agentes inteligentes

  25. En general, robot es un agente inteligente programado para realizar una(s) cierta(s) tareas. La ciencia de estudio y desarrollo de robotes se llama robótica. Si los robotes son controlados de distancia, se trata de telerrobótica. Robotes físicos tienen una máquina como su “cuerpo” para interactuar con su ambiente. Robotes de software interactuan con su ambiente por Internet o por una interfaz de usuario. En computación, se dice también “bot” en vez de “robot”. Los bot suelen realizar tareas de tipo navegación automatizada de la web en búsqueda de información o de interacción con usuarios (realizando por ejemplo calculaciones o traducciones). (Ro)bot

  26. = la unidad básica de información digital Un bit es una variable binaria: tiene dos valores posibles que se interpreta como los valores lógicos “verdad” y “falso” verdad = 1 (on, alto) falso = 0 (off, bajo) Bit

  27. Expresamos los números con sumas de potencias de dos: 20 = 1, 21 = 2, 22 = 4, 23 = 8, 24 = 16, 25 = 32, etcétera, empezando con la potencia más grande que quepa en el número e iterando hasta llegar a la suma correcta. Representamos la presencia de una cierta potencia con 1 y su ausencia por 0, empezando con la potencia más grande presente: 61 = 32 + 28 = 32 + 16 + 13= 32 + 16 + 8 + 5 = 32 + 16 + 8 + 4 + 1 =25 + 24 + 23 +22 +20 = 111101 es un 6-bit representación de 61 Números binarios

  28. = la unidad básica de capacidad de memoria digital Un byte (se pronuncia báit) es una secuencia de 8 bits. El número entero más grande que se puede guardar en un byte es 27 +26 + 25 + 24 + 23 + 22 + 21 +20 =28 – 1 = 255 y entonces, contando cero, son 256 valores posibles por un byte. 1024 bytes = un kilobyte 1024 kilobytes = un megabyte 1024 megabytes = un gigabyte 210 = 1024 Byte

  29. Un señal analógico se representa con frecuencias. En la representación digital, no se toma en cuenta todas las frecuencias, pero una escala discreta predeterminada (posiblemente dinámica) de frecuencias. El proceso de aplicar la escalera se llama discretización. Analógico versus digital

  30. Además, el señal analógico es de tiempo continuo, pero la representación digital de tiempo discreto: se elija una frecuencia de muestreo y solamente guarda la frecuencia del señal original en ciertos instantes según la frecuencia de muestreo elegida discretizada al nivel más cercano: Analógico versus digital

  31. Con imágenes, la discretización de hace en 2D: se impone una reja imaginaria sobre la imágen y representa cada celda de la reja con un pixel, es decir, un rectangulo pequeño que tiene un sólo color. Pixel

  32. Colores en forma digital El color asignada al pixel es el color más cercano de una tabla predeterminada de colores. Típicamente los colores están guardados en formato RGB (o otro formato parecido), asignando una cierta cantidad de bytes para la representación de cada componente del color. En la representación estándar, se asigna un byte por color y escribe el byte con dos dígitos hexadecimales. El primer byte indica el nivel de “presencia” del color rojo, el segundo el nivel de verde, y el tercero el nivel de azul. El valor cero (expresado como 00) significa que el color no está presente y el valor 255 (expresado como FF) significa que se usa el máximo posible del color. de bytes por cada componente de color.

  33. Tabla hexadecimal de colores , RRGGBB Típicamente no se utiliza todas las combinaciones posibles de tres valores entre 0 y 255, pero seis niveles: FF = 255, CC = 204, 99 = 153, 66 = 102, 33 = 51, 00 = 0 http://www.drewfoster.com/rgbhex/images/rgbhex.gif

  34. La resolución de la imagen es la cantidad de pixeles en la dirección horizontal por la cantidad de pixeles en la dirección vertical. Por ejemplo, la resolución 1024x768 es típica para monitores de 15 pulgadas. Cuando la resolución se define con un sólo número, es el producto de los dos: cinco megapixeles corresponde por ejemplo a 2621x2000. Resolución

  35. Un ejemplo del efecto de la resolución 100 pixeles horizontalmente 480 pixeles horizontalmente

  36. Cuando la información ya ha sido digitalizada, se puede aplicar un algoritmo de compresión para poder guardarlo en un espacio menor. Dos posibilidades: compresión con o sin pérdida. En compresión con pérdida, se ignora información “no tan relevante” para ahorrar espacio. En compresión sin pérdida, se aprovecha ciertas regularidades de los datos para evitar repetición no necesaria de elementos. Compresión de datos

  37. Digamos que queremos de expresar la secuencia siguiente con menos símbolos: AAAAABBBCCCCAAAAACCCCAAAAABBBAAAAABBBAAACCCCCAAAAABBBCCCC Una posibilidad: las frecuencias de uso de los símbolos 5A3B4C5A4C5A3B5A3B5A4C5A3B4C Otra posibilidad: añadimos también símbolos auxiliares DEFDFDEDEDFDEF #D5AE3BF4C La parte subrayada es un “diccionario” que nos ahorraría mucho espacio si tuvieramos una secuencia más larga original. En este caso, el ahorro es solamente de tres símbolos como tenemos que incluir el diccionario mismo también para no perder información. Un ejemplo de la compresión

  38. Existen algoritmos para generar números pseudo-aleatorios, es decir, que parecencomo si hubieran sido generados totalmente al azar, aunque no lo son. El ejemplo más simple imaginable: Xt+1 = (a Xt + c) mod b (generador lineal congruencial de Lehmer, 1948) Números aleatorios

  39. Asignamos en el método de LehmerX0 = 6, a = 21, c = 3 y b = 100: X1 = (21 x 6 + 3) mod 100 = 129 mod 100 = 29 Secuencia generada:6, 29, 12, 55, 58, 21, 44, 27, 70, 73, 36, 59, 42, 85, 88, 51, 74, 57, 0, 3, 66, 89, 72, 15, 18, 81, 4, 87, 30, 33, 96, 19, 2, 45, 48, 11, 34, 17, 60, 63, 26, 49, 32, 75, 78, 41, 64, 47, 90, 93, 56, 79, 62, 5, 8, 71, 94, 77, 20, 23, 86, 9, 92, 35, 38, 1, 24, 7, 50, 53, 16, 39, 22, 65, 68, 31, 54, 37, 80, 83, 46, 69, 52, 95, 98, 61, 84, 67, 10, 13, 76, 99, 82, 25, 28, 91, 14, 97, 40, 43 Está combinación nos da números de 0 a 99 y después vuelve a repetir la misma secuencia. Es un algoritmo muy simple por lo cual repite bastante rápidamente. Existen otros muy buenos con cuales no se puede predecir con facilidad qué número es el siguiente haber observado los anteriores. Una secuencia de ejemplo

  40. Otra opción es el uso de observaciones del mundo real en la generación de números “al azar”. Ejemplos: Uso de la temperatura dentro de la computadora: Decide un límite de temperatura T. Si la temperatura actual es mayor que T, la salida es uno. Si la temperatura es menor o igual a T, la salida es cero. Uso del reloj de la computadora: Toma el último dígito D de la hora actual. Si D es par, la salida es cero. Si D es impar, la salida es uno. Números aleatorios “naturales”

  41. En ciencias aplicadas, se utiliza simulación para estudiar el comportamiento de un método nuevo antes de adoptarlo en uso. La idea es: Simulación programar un modelo computacional de la situación aplicar la solución propuesta en el modelo hacer observaciones del comportamiento ajustar la solución y el modelo repetir la aplicación y observación Cuando el resultado de la simulación ya está suficientemente satisfactoria, se puede adoptar la solución en uso con mayor confianza en su éxito. También se utiliza simulación para estudiar el comportamiento de algún mecanismo de interés y experimentar con los efectos de diferentes perturbaciones.

  42. Nodos en movimiento forman grupos con otros nodos “cercanos”. Un ejemplo de simulación: formación de grupos

  43. Otro ejemplo de simulación: detección de incendios La vigilancia distribuida de un bosque para evitar incendios: se coloca varios aparatos pequeños que comuniquen por radio a distancias cortas en el bosque. Cada uno cuenta con un termómetro y una batería. Se pueden fallar y dar alarmas falsas. Al detectar una alarma, un aparato tiene que decidir si o no va a transmitir alarma también.

  44. Realidad virtual es un ambiente artificial generado completamente o parcialmentepor computadora. Cuando la generación es parcial, es decir, cuando se combina el ambiente artificial con el mundo real, se utiliza el concepto de realidad aumentada. Sus usos principales son simulaciones ambientales para el entrenamiento de por ejemplo pilotos de aviones, personal militar o médicos. Realidad aumentada se utiliza por ejemplo en películas con efectos especiales creados por computadora y combinados con grabación de actores humanos. Realidad virtual

  45. Típicamente la ilusión de una RV consiste por lo menos de (1) una experiencia amplia visual, de uno a seis paredes de pantalla, con efectos esterocópicos para lograr una aparencia 3-dimensional (2) sonidos por auriculares o bocinas, generados con algoritmos especiales para crear una ilusión de fuentes de sonido en diferentes ubicaciones e incluso fuentes de sonido en movimiento Además, más y más sistemas actualmente cuenten con sensores para seguir la posición y postura del usuario para ajustar dinámicamente la vista y la producción de audio a los movimientos del usuario. También se puede incorporar elementos hápticos a través de sistemas de información tactil que crean sensaciones de contacto con los objetos virtuales, típicamente por un guante especial. RV y RA interactiva

  46. Originalmente es un concepto de hinduismo(la palabra proviene de sánscrito) que refiere a la incarnación de un dios. Actualmente (desde hace los años 80) se utiliza también para referir a la identidad elegida/construida por una persona para representarla en alguna comunidad virtual que comunica por Internet, en un foro de discusión o en un juego. Avatar Un avatar puede ser una representación gráfica de un “cuerpo virtual” (en 2D o 3D) o simplemente un sobrenombre de texto y símbolos. El ejemplo fue creado en http://www.sp-studio.de/

  47. Cuando una persona comunica o interactua con otras personas (o máquinas) de distancia como si estuviera físicamente presente. (Piensen en los “teléfonos” de películas de ciencia ficción donde aparece una imágen 3D de una persona en una sala de reunion. También los cines con pantalla IMAX ofrecen un grado de telepresencia – desde el punto de vista del espectador, es casi como estar presente.) Sus aplicaciones incluyen, además de teleconferencias, la realización de trabajos peligrosos sin poner en peligro seres humanos: el trabajador controla de distancia un robot (= telerrobótica) para ejecutar la tarea, utilizando información enviada por el robot (video por una cámara en el robot, audio por micrófono, información háptica, medidas de niveles de sustancias químicas). Incluso existen sistemas para cirurgía de distancia. Telepresencia

  48. Por lo general, se utiliza mucha de la misma tecnología de RV/RA, pero la meta es diferente: En telepresencia, hay que establecer que el usuario interactue con un ambiente real a través de computadora en vez de crear uno artificial. Además, si la interacción es entre personas y no puras máquinas, hay que crear una representación tipo avatar del usuario en el ambiente con cual interactua. Telepresencia y RV/RA

  49. Virtual Reality Modeling Language = un lenguaje de representación para objetos tres-dimensionales interactivos en la World Wide Web La meta de VRML es el modelado de ambientes virtuales (tipo RV) los cuales se puede “navegar” a través de un navegador de una manera similar al navegar páginas de web escritos en HTML. VRML

  50. ¿Cómo utilizar VRML? Para crear modelos en VRML, no se necesita ninguna herramienta especializada. • Se escribe la descripción en un archivo con la extensión .wrl con una sintaxis predeterminada. • Los archivos hay que poner disponible en algún servidor de HTTP. • Uno tiene que instalar un plugin gratuito en su navegador como lo de http://ovrt.nist.gov/cosmo/ para poder ver e interactuar con los modelos. Los que prefieren XML a HTML, utilizan X3D en vez de VRML.

More Related