Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS ESTADO DE MÉXICO I ,-·f( ¡·y SISTEMA PARA LA GENERACIÓN DE MODELOS FACIALES 3D ANIMADLES, BASADOS EN MÚSCULOS Y COMPATIBLES CON MPEG-4, A PARTIR DE UNA IMAGEN, DE DESCRIPCIONES VERBALES O DE FORMA ALEATORIA. TESIS QUE PARA OPTAR EL GRADO DE MAESTRO EN CIENCIAS COMPUTACIONALES PRESENTA ADRIANA LORENA BOJÓRQUEZ ARGANIS Asesor: Comité de tesis: Jurado· Dr. ISAAC RUDOMIN GOLDBERG Dr. JORGE RAMÍREZ URESTI Dr. HOMERO RÍOS FIGUEROA Dr. NEIL HERNÁNDEZ GRESS Dr. JORGE RAMÍREZ URESTI Dr. ISAAC RUDOMIN GOLDBERG Presidente Secretario Vocal Mat. ANA LUISA SOLIS GONZALEZ COSlO Vocal Atizapán de Zaragoza, Edo. de México, Diciembre de 2001. 4 RESUMEN El rostro hwnano es la parte del cuerpo que nos permite reconocer a una persona y detectar sus emociones. A pesar de que la mayoría de las caras tienen una composición y estructura similar, existe una variación considerable de un individuo a otro. Uno de los retos del modelado facial es el desarrollar modelos que soporten estas variaciones. Un modelador de diferentes caras, que puedan ser animadas con expresiones faciales y sincronizadas con el movimiento de labios y habla, es muy útil para aplicaciones de video-telefonía, industria cinematográfica (generación de actores virtuales), juegos computacionales e interfaces con agentes personalizados para tutoriales, ventas y publicidad. La tesis "SISTEMA PARA LA GENERACIÓN DE MODELOS FACIALES 3D ANIMABLES, BASADOS EN MÚSCULOS Y COMPATIBLES CON MPEG-4, A PARTIR DE UNA IMAGEN, DE DESCRIPCIONES VERBALES O DE FORMA ALEATORIA" es un sistema que genera de manera rápida diferentes caras, a partir de la especificación de características distinguibles dadas por fotografias o descripciones. El sistema utiliza una base de datos de caras tridimensionales y sus nnagenes correspondientes, así como técnicas de reconocimiento facial para obtener una codificación eficiente de datos que permite modificar un modelo facial genérico y construir nuevos modelos. Las caras generadas son compatibles con MPEG-4 ( el primer estándar internacional que especifica una representación binaria comprimida de objetos audio-visuales sintetizados y animación de caras) y contienen músculos que permiten la animación de expresiones faciales de fonna realista. La generación del modelo se puede realizar en cualquiera de 4 módulos. El primer módulo genera una cara 3D a partir &l análisis automático de una imagen facial 2D; el segundo, genera una cara 3D de fonna aleatoria; el tercero, por medio de una interfaz tipo identikit o retrato hablado con descripciones verbales y el cuarto, con el análisis interactivo de una imagen facial 2D. Un quinto módulo consiste en animar el modelo facial, a partir de datos provistos por investigadores de la Universidad de Wright, Ohio, E.U. Esta investigación presenta una breve explicación del estado de arte en reconocuruento facial, modelado, generación y animación de caras tridimensionales, así como la descripción del estándar MPEG-4. Posteriormente, se describe el trabajo desarrollado para construir el sistema. Se lograron construir modelos faciales tridimensionales en un promedio de 7 segundos y animarlos en un rango de 43 a 58 cuadros por segundo en una PC, con procesador Celeron a 400 Mhz. Hasta el momento, este modelador es el único en su tipo, ya que puede generar y animar modelos tridimensionales con músculos y compatibles con MPEG-4, de forma aleatoria, a partir de una imagen frontal o una interfaz tipo identikit, con la ayuda de una base de datos de caras tridimensionales y técnicas de reconocimiento facial. 5 CONTENIDO 1 Planteamiento del Problema .................................................................................................... 12 1.1 Objetivo general ............................................................................................................... 14 1.2 Objetivos específicos ........................................................................................................ 14 2 Estado del arte ......................................................................................................................... 15 2.1 Reconocimiento facial. ..................................................................................................... 15 2.1.1 Detección de caras en imágenes ................................................................................ 16 2.1.2 Segmentación y normalización de caras .................................................................... 16 2.1.2.1 Análisis de componentes principales: Eigenfaces .............................................. 18 2.1.2.2 Análisis de componentes independientes ............................................................ 23 2.1.2.3 Factorización no-negativa de una matriz ............................................................ 26 2.1.3 Sistemas comerciales ................................................................................................. 27 2.2 Modelado facial ................................................................................................................ 28 2.2.1 Modelos paramétricos ................................................................................................ 28 2.2.2 Modelos basados en músculos ................................................................................... 29 2.3 Generación de modelos faciales ....................................................................................... 30 2.3 .1 Sistemas interactivos ................................................................................................. 30 2.3.2 Sistemas automáticos ................................................................................................. 35 2.3.2.1 Clonación automática de modelos faciales 3D ................................................... 36 2.3.2.2 Síntesis de modelos faciales 3D utilizando un modelo morph ........................... 37 2.3.2.3 Generación de modelos 3D a partir de una sola fotografia mediante PCA ........ 39 2.4 Animación facial .............................................................................................................. 41 2.4.1 Métodos de animación ............................................................................................... 41 2.4.2 Sincronización con habla ........................................................................................... 44 2.5 l\1PEG-4 ............................................................................................................................ 45 2.5.1 Cara en estado neutral. ............................................................................................... 45 2.5.2 Puntos característicos ................................................................................................. 46 2.5.3 FAPs .......................................................................................................................... 47 2.5.4 Sistemas compatibles con MPEG-4 ........................................................................... 48 2.5.5 Deformación basada en puntos de control de MPEG-4 ............................................ .49 3 Desarrollo ................................................................................................................................ 51 3.1 Trabajo preliminar ............................................................................................................ 51 3.1.1 Construcción de un modelo facial genérico ............................................................... 51 3.1.1.1 Sistema coordenado del modelo ......................................................................... 51 3 .1.1.2 Construccon del modelo y localización de puntos de control de MPEG-4 ....... 52 3.1.1.3 Construcción y representación de músculos .......................................................54 3.1.1.4 Ajuste del modelo (calibración) .......................................................................... 55 3.1.2 Construcción de la base de datos .......................................................................... ; .... 56 3.1.2.1 Recopilación ....................................................................................................... 56 6 3.1.2.2 Generación y normalización de modelos tridimensionales ................................ 57 3.1.2.3 Extracción de z-buffer ......................................................................................... 59 3 .1.3 Análisis de datos ........................................................................................................ 60 3.1.3.1 Algoritmo FNM y resultados .............................................................................. 61 3.1.3.2 Análisis de componentes principales .................................................................. 67 3.2 Desarrollo del sistema ...................................................................................................... 72 3.2.1 Módulo 1. Análisis automático de una imagen 2D .................................................... 72 3.2.1.1 Resultados ........................................................................................................... 74 3.2.2 Módulo 2. Generación de una cara de forma aleatoria .............................................. 76 3.2.2.1 Reconstrucción utilizando ACP .......................................................................... 77 3.2.2.2 Resultados ........................................................................................................... 77 3.2.3 Módulo 3. Identikit 3D .............................................................................................. 79 3.2.3.1 Definición de características ............................................................................... 79 3.2.3.2 Clasificación de la base de datos ......................................................................... 82 3.2.3.3 Interfaz gráfica .................................................................................................... 83 3 .2.3 .4 Análisis de la descripción de entrada y codificación de datos ............................ 84 3.2.3.5 Resultados ........................................................................................................... 84 3.2.4 Módulo 4. Análisis interactivo de una imagen 2D .................................................... 87 3 .2.4.1 Resultados ........................................................................................................... 88 3.2.5 Módulo 5. Animación facial ...................................................................................... 90 3.2.5.1 Normalización de coordenadas ........................................................................... 90 3.2.5.2 Contracción de músculos .................................................................................... 91 3.2.5.3 Movimiento de quijada ....................................................................................... 92 3.2.5.4 Resultados ........................................................................................................... 92 4 Conclusiones y trabajo a futuro .............................................................................................. 94 4.1 Trabajo Futuro .................................................................................................................. 95 5 Bibliografia ............................................................................................................................. 96 6 Anexo A ................................................................................................................................ 101 6.1 Anatomía ........................................................................................................................ 101 6.1.1 Huesos ...................................................................................................................... 101 6.1.2 Músculos .................................................................................................................. 1 O 1 6.1.3 Piel ........................................................................................................................... 102 6.2 Antropometría ................................................................................................................. ! 03 Anexo B ....................................................................................................................................... 106 6.3 Instructivo ....................................................................................................................... 106 6.3.1 Requerimientos del sistema ..................................................................................... 106 6.3 .2 Instrucciones de instalación ..................................................................................... 106 6.3.3 Instrucciones de ejecución ....................................................................................... 107 6.3.3.1 Módulo l. Análisis automático ......................................................................... 108 6.3.3.2 6.3.3.3 Módulo 2. Generación aleatoria ........................................................................ 108 Módulo 3. Identikit 3 D ..................................................................................... 108 6.3.3.4 Módulo 4. Análisis interactivo de una imagen 2D ........................................... 109 6.3 .3 .5 Interfaz final y módulo de animación facial ..................................................... 11 O Anexo C ....................................................................................................................................... 11 l 6.4 Estructura del modelo genérico ...................................................................................... 111 7 6.5 Ajuste del modelo (calibración) ..................................................................................... 112 6.6 Músculos ......................................................................................................................... 116 6.7 Desplegado del modelo en Java3D ................................................................................. l 18 6. 8 Exportación a VRML ..................................................................................................... 106 6. 9 Exportación a OBJ .......................................................................................................... 120 6 .1 O Exportación a D XF ......................................................................................................... 121 8 LISTA DE FIGURAS Fig. l. Esquema general del proyecto SDFA 12 Fig. 2. Ventanas deslizantes del algoritmo de Samaria, [28, 29]. 17 Fig. 3. Descripción de los cinco estados. Samaria, [28, 29]. 17 Fig. 4. Máscaras utilizadas por Brunelli, [30]. 18 Fig. 5. Eigenfaces estándar, [21]. 19 Fig. 6. Reconocimiento con eigenfaces. 21 Fig. 7. (a) Vistas de prueba, (b) Resultados eigenfaces, (c) Resultados eigenfeatures, [34]. 22 Fig. 8. Rangos de reconocimientos para eigenfaces, eigenfeatures y su combinación, [34]. 22 Fig. 9. Esquema de la primer arquitectura del algoritmo ACI propuesta por Bartlett, [22]. 24 Fig. 10. Representación de una imagen facial en ACI (combinación lineal de coeficientes), [22]. 24 Fig. 11. Modelo de síntesis de imágenes, [22]. 25 Fig. 12. Representación factorial de ACI = (ul, u2, .. , un), [22]. 25 Fig. 13. Resultados de FNM, [35]. 27 Fig. 14. Software Viisage ™ de Viisage Technology, [37]. 27 Fig. 15. Modelo de Parke, [41]. 29 Fig. 16. Simulación de capas cutánea, subcutánea y muscular de Terzopoulos, [50]. 30 Fig. 17. Sistema de Pighin, [ 52]. 31 Fig. 18. Puntos característicos en imágenes iniciales,[51]. 31 Fig. 19. Ajuste del modelo, [51]. 31 Fig. 20. Modelo producido por JOE Face™ en VRML97, [62] 32 Fig. 21. Interfaz de JOE Face™, [62] 32 Fig. 22. 3DmeNowM de Biovirtual, [63]. 33 Fig. 23. Bakehead™ de RedTed, [64]. 33 Fig. 24. Ulead face factoryM, [65]. 33 Fig. 25. Digimask™ de Matrox, [66]. 34 Fig. 26. Sistema Identikit: Spotlt! ™, [7] 34 Fig. 27. Sistema Identikit: Facette™, [8] 34 Fig. 28. Control de características faciales tipo Identikit de FaceGen Modeller 2.0™, [67]. 35 Fig. 29. Descripción del sistema de Goto et al., [53]. 36 Fig. 30. Detección automática de características faciales, [53]. 36 Fig. 31. Inicialización y seguimiento, [53]. 37 Fig. 32. Modelador de Blanz y Vetter, [11]. 38 Fig. 33. Unión del modelo general y una imagen. 39 Fig. 34. Codificación de una cara usando eigenfaces, [10]. 40 Fig. 35. Diagrama del sistema de Cuevas y Rudomin, [10]. (a) Inicialización, (b) Generación de una cara 3D. 40 Fig. 36. Resultados de reconstrucción tridimensional, Cuevas y Rudomin, [ 1 O]. 41 9 Fig. 37. Malla utilizada en FaceGen™, [67]. 43 Fig. 38. Software FaceGen Modeller 2.0™ de FaceGen, [67]. 43 Fig. 39. Ejemplos de visemas, [71]. 44 Fig. 40. MPEG-4 Cara en estado neutral, [73, 74]. 45 Fig. 41. MPEG-4 Puntos característicos, [73, 74]. 47 Fig. 42. Ejemplos de animación en VIDAS, [76]. 48 Fig. 43. Cuadros de animación para "Hello", [53]. 49 Fig. 44. Cálculo de pesos, [80]. 50 Fig. 45. Sistema coordenado del modelo genérico. 52 Fig. 46. Modelo de Parke, [39]. (Original en colores). 52 Fig. 47. Localización de 64 puntos de control de MPEG-4. 53 Fig. 48. Modelo genérico. a) Esqueleto, b) Con textura. 53 Fig. 49. Músculos del modelo facial en rojo. (Original en colores). 54 Fig. 50. Músculos de la boca. 54 Fig. 51. Resortes y partículas en un polígono. 55 Fig. 52. Número de caras y rangos de edad de la base de datos. 56 Fig. 53. Cámara Minolta 3D 1500™. 57 Fig. 54. Fotografías obtenidas por la cámara Minolta 3D 1500™. (a) Información de colores y textura, (b) Información de la profundidad. 57 Fig. 55. Generación del modelo 30 en el software Metaflash Studio™ de Metacreations. 58 Fig. 56. Algunas caras 30 de la base de datos. 58 Fig. 57. Aplicación para extraer z-buffer. 59 Fig. 58. Imágenes obtenidas (a) Imagen con textura, (b) Imagen con inf. de profundidad. 59 Fig. 59. Algunas imágenes9 utilizadas en algoritmo FNM. 61 Fig. 60. Algoritmo FNM en Matlab™ de MathWorks. 62 Fig. 61. Imagen original. 62 Fig. 62. Matriz V, donde cada columna corresponde a una imagen. 62 Fig. 63. Matriz W. 63 Fig. 64. Matriz H. 63 Fig. 65. Imagen reconstruida. 63 Fig. 66. Algoritmo para preprocesar las imágenes. 63 Fig. 67. Algoritmo para visualizar. 64 Fig. 68. Matriz V (procesada para permitir visualización). 64 Fig. 69. Matriz W (procesada para permitir visualización). 64 Fig. 70. Matriz H (procesada para permitir visualización). 64 Fig. 71. Imagen antes de hacer el clip. 64 Fig. 72. Imagen reconstruida utilizando clip inicial. 64 Fig. 73. 13 imágenes base de la matriz W (procesadas para permitir la visualización). 65 Fig. 74. 13 imágenes base. 66 Fig. 75. Resultados del algoritmo FNM, sobre 155 imágenes faciales y 20 componentes. 67 Fig. 76. Algunas imágenes de la base de datos utilizadas. 68 Fig. 77. Extracción de eigenfeatures. 69 Fig. 78. Eigenfeatures: imágenes y rasters. 69 Fig. 79. Reconstrucción del ojo izquierdo 7 eigenvectores de 16 imágenes 69 Fig. 80. Reconstrucción del ojo izquierdo 16 eigenvectores de 16 imágenes. 69 10 Fig. 81. Aplicación 3D Face Analyzer. 70 Fig. 82. Código para construir la matriz de covarianza con datos unidimensionales. 71 Fig. 83. Esquema general de los módulos de reconstrucción. 72 Fig. 84. Pre-procesamiento de una imagen. 73 Fig. 85. Resultados del algoritmo de reconocimiento. 73 Fig. 86. Resultados preliminares: imágenes originales y caras 3D construidas (textura ajustada). 74 Fig. 87. Resultado preliminar, cara 3D con ajuste de proporciones verticales. 75 Fig. 88. Imágenes de la base y generación de cara 30. 75 Fig. 89. Esquema para la generación aleatoria de una cara. 76 Fig. 90. Generación aleatoria de geometría. 76 Fig. 91. Caras obtenidas de forma aleatoria. 78 Fig. 92. Caras obtenidas de forma aleatoria, con textura. 78 Fig. 93. Generación de un modelo a partir de una descripción. 79 Fig. 94. Interfaz gráfica del módulo identikit. 83 Fig. 95. Caras generadas por el módulo ldentikit 30 y algunas de sus características. 86 Fig. 96. Módulo 3, Análisis interactivo de una imagen 2D. 87 Fig. 97. Coordenadas de ventana vs. coordenadas cartesianas. 88 Fig. 98. Caras 3D sin ajustar proporciones faciales. 89 Fig. 99. Caras 3D con ajuste en proporciones faciales. 89 Fig. 100. Músculo en reposo y con contracción. 91 Fig. 101. Ángulo para la quijada. 92 Fig. 102. Expresiones básicas de MPEG-4. 93 Fig. 103. Algunos frames de la animación. 93 Fig. 104. Movimiento de la mandíbula [71]. 101 Fig. 105. Músculos faciales responsables de la animación, [71]. 102 Fig. 106. Marcadores de profundidad, [71]. 103 Fig. 107. Reconstrucción de la cabeza, [71]. 103 Fig. 108. Puntos antropométricos faciales, [87]. 103 Fig. 109. Determinación del sexo con características del cráneo, [71]. 105 Fig. 11 O. Menú de módulos del sistema. 107 Fig. 111. Módulo de análisis automático. 108 Fig. 112. Identikit 3D. 109 Fig. 113. Módulo 3, Análisis interactivo de una imagen 20. 109 F ig. 114. Interfaz final. 11 O Fig. 115. Clase polígono. 111 Fig. 116. Coordenadas del archivo de textura. 112 Fig. 117. Estructura de una partícula, [89]. 112 Fig. 118. Sistema de partículas, [89]. 113 Fig. 119. Interfaz entre el sistema de partículas y el evaluador de ecuaciones diferenciales, [89]. 114 Fig. 120. Estructura del objeto Shape30 de Java30. 118 Fig. 121. Jerarquía de escenografia en Java30. 118 11 LISTA DE TABLAS Tabla 1. Ejemplos de parámetros de conformación y de expresión .............................................. 28 Tabla 2. FAPUs de MPEG-4 y definiciones .................................................................................. 46 Tabla 3. Grupos de FAPs ............................................................................................................... 47 Tabla 4. Formato de archivo para calibración del modelo genérico .............................................. 55 Tabla 5. Comparación de algoritmos de reconocimiento facial. ................................................... 60 Tabla 6. Relación entre características y puntos de control MPEG-4 ........................................... 80 Tabla 7. Otras características faciales ............................................................................................ 81 Tabla 8. Estructura del archivo de descripción para una cara ....................................................... 83 Tabla 9. Formato de archivo con datos de animación ................................................................... 90 Tabla 10. Relación de puntos antropométricos con puntos de control de MPEG-4 .................... 104 Tabla 11. Distancias y puntos de control MPEG-4 ..................................................................... 104 Tabla 12. Estructura de archivos: faceline.dat e indexes.dat. ...................................................... 111 Tabla 13. Pseudocódigo para obtener coordenadas de textura .................................................... 111 Tabla 14. Estructura de una partícula y un resorte en Java ......................................................... 113 Tabla 15. Código para calcular la fuerza de un resorte ............................................................... 114 Tabla 16. Código para modificar el estado. de una partícula ...................................................... 115 Tabla 17. Código para un paso de Euler ...................................................................................... 115 Tabla 18. Formato de archivo para calibracióndel modelo genérico .......................................... 116 Tabla 19. Formato de archivo para Muscle.dat. .......................................................................... 116 Tabla 20. Relación de músculos y puntos de control de MPEG-4 que los definen .................... 117 Tabla 21. Formato de archivo VRML 2 ...................................................................................... 119 Tabla 22. Formato de archivo OBJ. ............................................................................................. 120 Tabla 23. Formato de archivo DXF ............................................................................................. 121 12 1 PLANTEAMIENTO DEL PROBLEMA Debido a que el rostro humano es la parte del cuerpo que nos permite reconocer a una persona y detectar sus emociones, éste ha atraído la atención de diferentes disciplinas como la psicología, la criminología y las gráficas computacionales. A pesar de la familiaridad de la cara, su representación y animación en gráficas computacionales es todo un reto y ha sido un tema muy estudiado a partir de que Parke [ 1] presentó la primer animación facial tridimensional en 1972. Existen numerosas aplicaciones que necesitan la generación de caras por computadora como: síntesis del habla [2, 3], cirugía facial [4], síntesis de actores virtuales [ 5] e investigaciones criminales [ 6]. El reto de estas aplicaciones no es sólo generar modelos :faciales de apariencia real, sino también representar los diferentes movimientos de la cara de forma rápida y convincente. Este trabajo de tesis forma parte del proyecto: "Speech Driven Facial Animation" (SDFA)1, cuyo objetivo es animar una cara humana virtual tridimensional, de un hablante en particular, a partir de su habla real. (Ver figura 1). !voz Base de datos de ~········································· .. ··••·····••········· ~ 1 ................................................................. . Fig. 1. Esquema general del proyecto SDF A ~ A desarrollar. .. 1 SDFA (siglas en inglés de Animación Facial Guiada por habla), es un proyecto financiado por el Consejo Nacional de la Ciencia y Tecnología, (Conacyt) y el National Science Foundation, (NSF), que involucra a las instituciones educativas: Wright State University de Dayton, Ohio, E.U. y el Tecnológico de Monterrey, Campus Estado de México. 13 El proyecto SDF A requiere de un sistema que genere y anime un modelo facial a partir de los datos obtenidos por un análisis de habla y video. Este sistema debe ser capaz de representar a diferentes individuos y pennitir construir de forma rápida caras, listas para animar. Un sistema modular pennitirá la reutilización de componentes y ofrecerá al usuario diferentes opciones para generar una cara. El uso de una base de datos de modelos faciales tridimensionales e imágenes, así como técnicas de reconocimiento facial facilitará y acelerará la generación de modelos. La compatibilidad de los modelos con el estándar MPEG-4 facilitará la codificación para el almacenamiento y manipulación de una cara; y ampliará su uso en aplicaciones de intemet. Esta tesis consiste en desarrollar un sistema que genere de manera rápida diferentes caras, a partir de la especificación de características distinguibles dadas por fotograflas o descripciones. El modelo facial tridimensional obtenido debe simular la acción de los músculos faciales para la posterior animación de expresiones faciales y sincronía de movimientos con el habla. Se pretende utilizar alguna técnica de reconocimiento facial para la reconstrucción del modelo ya que, como se explicará más adelante, pennite un eficiente manejo de la codificación de datos. Para la construcción de un nuevo modelo facial se uti1iz.ará una base de datos, como lo hacen los sistemas de reconocimiento analiz.ados [6, 7, 8, 9, 10, 11], pero ésta contendrá información sobre las características faciales y de modelos tridimensionales para facilitar y acelerar la construcción del modelo, como lo hacen Cuevas y Rudomin [10] utilizando información de eigenfaces2 y modelos tridimensionales. El sistema será modular para proporcionar al usuario diferentes opciones para generar una cara. Un modelo podrá ser generado a putir de una fotografia facial frontal con una expresión neutral, pero si el usuario no dispone de una imagen con dichas características, podrá proporcionar una descripción tipo retrato hablado para generar la cara deseada o recurrir a la generación aleatoria de una cara si sólo desea un modelo representativo de una población sin importar que ésta tenga características específicas. Un módulo interactivo pennitiría tanto generar un modelo marcando algunos puntos sobre una imagen, como ajustar o pegar textura a los modelos generados por los otros módulos. Nuestro trabajo parte de las siguientes hipótesis: 1) A partir de una base de datos tanto de modelos tridimensionales como imágenes faciales, se pueden obtener datos suficientes para construir caras diferentes, representativas de una población. 2) Es posible utilizar técnicas de reconocimiento facial para la generación de un modelo de forma aleatoria o a partir de una descripción, ya que penniten un eficiente manejo de la codificación de datos. 3) Un modelo facial tri:limensional basado en músculos y compatible con el estándar MPEG-4 pennitirá una animación facial de forma rápida y realista. 2 Eigenfaces palabra en inglés que significa caras similares. 14 A continuación desglosaremos los objetivos para cwnplir con este trabajo de tesis. 1.1 OBJETIVO GENERAL Crear un sistema que genere rápidamente modelos faciales tridimensionales animables, compatibles con MPEG-4 y basados en músculos, generados a partir de descripciones verbales o imágenes. 1.2 OBJETIVOS ESPECÍFICOS El objetivo general implica una serie de objetivos específicos y un conjunto de tareas para realizarlos: • Construcción de un modelo facial tridimensional genérico, compatible con MPEG-4 y basado en músculos. o Localización de los puntos característicos de MPEG-4. o Implementación de un algoritmo para modificar el modelo genenco a partir de puntos característicos de MPEG-4, para generar un nuevo modelo. o Construcción de músculos e implementación de algoritmos necesarios para la animación facial. • Construcción de una base de datos tanto de imágenes faciales como de modelos tridimensionales. o Diseño y recopilación. o Normalización y clasificación de la base de datos. • Implementación de alguna técnica de reconocimiento facial para clasificar y codificar datos que permitan modificar el modelo genérico para obtener una nueva cara. • Implementación de módulos que permitan reconstruir un modelo facial tridimensional basándose en: o En el análisis de una foto 2D. o En un código generado al az.ar. o De forma interactiva, dando una descripción tipo identikit. o De forma interactiva, sobre una foto 2D. • Construcción de un módulo de animación que permita generar expresiones y sincronizarlas con habla, modelando correctamente fenómenos como coarticulación. 2 ESTADO DEL ARTE A continuación se presenta W1 resumen del estado del arte en el estudio del reconocimiento, modelado, generación y animación facial, así como la descripción del estándar MPEG-4. 2.1 RECONOCIMIENTO FACIAL 15 El reconocimiento de caras es una habilidad innata de los seres hwnanos que nos permite distinguir caras tanto familiares como desconocidas y clasificarlas de acuerdo al sexo, edad y estado emocional. Existe una gran cantidad de estudios en psicología y neurobiología para explicar como funciona este proceso. Técnicas de reconocimiento facial documentadas se encuentran desde 1886, cuando Francis Galton [12] estableció W1 método basado en la localización de pW1tos clave dentro de la cara ( orillas de los ojos y boca, pWlta de la nariz y fonna de la barbilla) y mediciones entre ellos. Estos datos confonnabanW1 vector que distinguía a cada cara. El reconocimiento facial también es W1 tema muy estudiado por la visión computacional. A partir de Bledsoe [13] en 1966 y Kanade [14] en 1973, han surgido gran número de estrategias, tanto automáticas como semiautomáticas para desarrollar sistemas de reconocimiento facial. Un sistema de reconocimiento facial permite identificar W1 rostro existente en una base de datos a partir de una imagen o descripción. Barret [ 15] riiala que el problema del reconocimiento facial puede dividirse en 3 etapas: 1. Detección de caras. 2. Segmentación y normalización de caras. 3. Reconocimiento facial: comparación de la cara en una base de datos con caras existentes. 16 2.1.1 DETECCIÓN DE CARAS EN IMÁGENES Consiste en localizar la cara dentro de una escena. Esta tarea requiere de un modelo para discriminar las caras de otros objetos. Kapur [16] describe un sistema para el reconocimiento de una cara dentro de una imagen a color. Su algoritmo utiliza un filtro (para el color de la piel), para localizar las zonas con piel; sobre las regiones marcadas quitan las regiones mas oscuras y brillantes (estas zonas coinciden con el área de los ojos, cejas, boca y orificios de la nariz). El área obtenida es la que representa a la cara. Caí et al. [17] presentan un método similar, pero utilizan un mapa de croma (obtenido por entrenamiento que busca los colores parecidos a la piel) para transformar la imagen a grises que muestran los píxeles pertenecientes a la piel. Procesando esta imagen se discriminan las regiones que no son piel. Posteriormente utiliza el componente luminoso de colores para localizar las caras en las regiones de piel. 2.1.2 SEGMENTACIÓN Y NORMALIZACIÓN DE CARAS Para simplificar la comparación y/o búsqueda en una base de datos, una imagen debe ser transformada en un sistema de coordenadas de baja dimensión que preserve la calidad de percepción de la imagen, con frecuencia se seleccionan las características más representativas [ 18]. Por lo tanto, esta etapa consiste en hacer los ajustes necesarios a la cara para su procesamiento como: la extracción de información relevante, detección de componentes y su codificación. Según Valentin et al. [19], los sistemas de codificación de caras pueden clasificarse en sistemas basados en componentes (no-conexionistas) y basados en representación de las imágenes faciales (conexionistas). Los primeros representan las caras en términos de distancias, ángulos y áreas determinadas, como el de Kanade [14], quien utilizó componentes geométricos para extraer la posición relativa y parámetros distintivos de ojos, boca, nariz y barbilla. Los modelos conexionistas utilizan la intensidad de los píxeles. Una ventaja de utilizar modelos conexionistas es que la información es obtenida automáticamente de la estructura estadística de las caras y se evita el problema de seleccionar componentes individuales. Los métodos más usados están basados en el análisis de componentes principales (ACP) o Eigenface [20, 21], análisis de componentes independientes (ACI) [22, 23, 24], métodos basados en redes neuronales [25, 26, 27], modelos de Hidden Markov [27, 28, 29], comparación de patrones [30, 31] y análisis bayesiano [32]. Samaria [28, 29] utiliza Hidden Markov Models en unagenes con escala de grises. Utiliza una ventana deslizante sobre la imagen para extraer datos uní-dimensionales e ingresarlos al modelo. 17 O¡ y X Fig. 2. Ventanas deslizantes del algoritmo de Samaria, [28, 29]. El algoritmo define 5 estados: frente, ojos, nariz, boca y barbilla y comprende los siguientes pasos: 1. Creación de un prototipo con número de estados, tamaño del vector de observación y transiciones permitidas. 2. Iteración de un conjunto inicial de parámetros de datos de entrenamiento (utilizando una segmentación inicial uniforme y alineamiento con Viterbi). 3. Re-estimación de parámetros utilizando Baum-Welch y ajuste para maximiz.ar la probabilidad de observación de los datos de entrenamiento. Fig. 3. Descripción de los cinco estados. Samaria, [28, 29]. Comparación de patrones: En este tipo de algoritmos, la imagen es representada como un arreglo bidimensional de valores de intensidad y comparado métricamente con un patrón que representa la cara. En [30], Brunelli y Poggio exponen que la técnica de comparación de patrones es mejor con respecto a la de componentes geométricos. Beymer [31] describe un algoritmo para reconocimiento facial con variación de pose basado en patrones. Las caras son transformadas a escala de grises y para alinear geométricamente la cara con el modelo, el reconocedor aplica una transformación afin, para poner en correspondencia puntos de los dos ojos y la nariz. Los patrones corresponden a ojos, nariz y boca. Tanto los patrones como la imagen a utilizar son pre-procesados por un gradiente u operador de Laplace para proveer invarianza a la iluminación. Después de la alineación geométrica, los patrones son comparados con una correlación normaliz.ada. Se utilizan varios patrones extraídos de 15 vistas variando la rotación de 62 caras ( 44 hombres y 18 mujeres}, se localizan manualmente los iris, lóbulos de nariz y comisuras de los labios. 18 Brunelli y Poggio [30] proponen un algoritmo para la extracción automática de componentes faciales basado en patrones. Hacen una nonnalización basada en la distancia intraocular y la dirección del eje de los ojos y por medio de un coeficiente cruzado de correlación definido por: donde Ir es el parche de la imagen I que es comparada con T, <> el operador promedio, Ir T representa el producto píxel por píxel y cr la desviación estándar sobre el área a ser comparado. Cada persona es representada por una imagen y 4 máscaras representando ojos, nariz, boca y cara. La localización de éstas es relativa a la posición (nonnalizada) de los ojos. Fig. 4. Máscaras utilizadas por Brunelli, [30]. La imagen es comparada con todas las imágenes de la base de datos y regresa un vector de puntuación (uno para cada componente). El problemas de esta técnica es que la correlación es sensitiva a los gradientes de iluminación y el tamaño seleccionado para los patrones. 2.1.2.1 Análisis de componentes principales: Eigenfaces La idea del uso de eigenfaces fue motivada por una técnica desarrollada por Sirovich y Kirby [33] para representar imágenes faciales eficientemente usando análisis de componentes principales (ACP), donde una colección de imágenes puede ser reconstruida aproximadamente por un conjunto de pesos para cada cara y un conjunto de imágenes estándar. Posteriormente, Turk y Pentland [20] extendieron esta teoría para el reconocimiento facial. Fig. 5. Eigenfaces estándar, [21]. 19 La técnica de eigenfaces consiste en calcular la variación de una colección de imágenes para codificar y comparar las imágenes individuales [21]. Un eigenface es un arreglo bidimensional de claros y osc\ll'Os en una cara. Cualquier imagen facial puede ser construida a partir de varias eigenfaces. En términos matemáticos, esta técnica de codificación encuentra los componentes principales de una distribución de caras; o los eigenvectores de una matriz de covarianza del conjunto de imágenes faciales. Cálculo de eigenfaces 1. Sea un conjunto de M imágenes faciales para entrenamiento, donde n representa una imagen y es un vector de longitud N, donde N es el número de píxeles. La cara promedio de este conjunto está definido por: 1 M q, =-Iirn M n=I Cada cara varía del promedio por el vector i=l, ... M 2. Se somete el conjunto de vectores a un análisis de componentes principales para encontrar un conjunto M de vectores ortonormales Un (eigenvectores) y sus eigenvalores asociados Ak, que mejor describen la distribución de los datos. Los vectores Uk y escalares Ak son los eigenvectores y eigenvalores respectivamente, de la matriz de covarianza: 20 3. La matriz C es de tamaño N x N , razón por lacual se buscan los eigenvectores de una matriz de M x M, donde M < N. La matriz L se construye de la siguiente forma: donde Y = l<1>1 q>2 ... <I>MJ y T Lnn = <Pm <Pn 4. Se obtienen los M eigenvectores (v), las eigenfaces UM se calculan de la siguiente forma: l= 1, ... ,M 5. Una vez obtenidas las eigenfaces, éstas se ordenan de acuerdo al valor descendiente de sus eigenvalores y se escogen los M' eigenvectores más significativos. Reconocimiento facial con eigenfaces Una nueva imagen facial (r) es transformada en eigenfaces (o proyectada en el "espacio facial") de acuerdo a: Para k = 1, .... ,M' Estos pesos Wk forman un vector íf = [w 1 w 2 .... w J que describe la contribución de cada eigenface para representar h nueva imagen. Este vector es usado para encontrar que clase, de un número predefinido de clases faciales, describe la cara. El método más sencillo para determinar que clase facial representa mejor a la nueva imagen es encontrar la distancia de la clase facial k que minimiza la distancia euclideana: donde Qk es el vector que describe a la k-enésima clase. Detección facial con eigenfaces La técnica de eigenfaces también puede ser utilizada para detectar caras en una imagen. Crear el vector de pesos para una imagen es equivalente a proyectar ésta en un espacio facial. La distancia e entre la imagen y su proyección es la distancia entre la imagen y la media : <I>=r-'P M' Y la proyección en el espacio facial: <l>r = L w k uk i=I Las imágenes de caras no cambian radicalmente al ser proyectadas en el espacio facial, por lo que para detectar una cara dentro de una escena se calcula la distancia e entre una parte de la imagen y el espacio facial. Esta distancia es usada como una medición raal facas In El reconocimiento con eigenfaces se hace a dlttlbe• partir de una base de datos con imágenes de caras (se recomiendan al menos 100 eigenfaces). A partir de una imagen se obtiene un conjunto de eigenfaces, las cuales se clasifican en grupos, con características comunes. Finalmente, se hace la comparación de las características eigenfaces de la imagen con la base de datos. Fig. 6. Reconocimiento con eigenfaces. 21 Entre las ventajas del uso de eigenfaces está el que reduce el requerimiento de memoria y permite trabajar en un espacio dimensional más bajo. Entre las desventajas está el que es necesario hacer un procesamiento previo de las imágenes en cuanto a alineación y normalización de iluminación. Eigenfeatures El concepto de eigenfaces ha sido extendido a la descripción y codificación de eigenfeatures3: eigeneyes (componentes para ojos), eigennose (componentes para nariz) y eigenmouth (componentes para boca). Esta técnica fue inicialmente propuesta por Pentland [34], donde demuestra que al incorporar estos componentes a las eigenfaces se obtiene una mejora en el reconocimiento de imágenes faciales con distinta pose, ya que los eigenfeatures permiten una mayor variación en condiciones de iluminación, rotación y tamaño. (Ver figura 8). 3 La traducción de eigentemplate es valor propio de componentes. (e) Fig. 7. (a) Vistas de prueba, (b) Resultados eigenfaces, (c) Resultados eigenfeatures, [34]. o.a 02 ,;,.- . __ .. ..,,:-:: ~~ :.:::~.i:::::.:: ., .• ~· .• r' ,. _l: ... , t' i t' jp'"·······º / i / . / . . 2 3 . ' . 4 5 18 # d Elgél'mldt::r.l ·-·-~·-:-:,.,. 7 8 9 10 Fig. 8. Rangos de reconocimientos para eigenfaces, eigenfeatures y su combinación, [34]. 22 Entre las ventajas están que combinados con eigenfaces mejoran el desempeño del reconocimiento, su modularidad provee ventajas para la codificación, permite una mayor variación que eigenfaces en iluminación, rotación y tamaño. Desgraciadamente, su uso requiere mayor capacidad para el almacenamiento y procesamiento. 23 2.1.2.2 Análisis de componentes independientes El análisis de componentes independientes (Acn es una extensión de ACP y su objetivo es recuperar fuentes independientes a partir de observaciones que son combinaciones lineales desconocidas de señales independientes. ACI tiene aplicaciones en el procesamiento de señales, sistemas de reconocimiento de voz y telecomunicaciones debido a su capacidad para extraer componentes. Pre-procesamiento Centrado: consiste en restarle la media a X, m = E{x} para hacer x una variable con media igual a O. Este pre-procesamiento es para simplificar el algoritmo de ACI. Filtrado (blanqueo) : consiste en transformar linealmente el vector x para obtener un nuevo vector x que es blanco, es decir sus componentes no están correlacionados y sus varianzas son iguales a la unidad. La matriz de covarianza de x equivale a la matriz identidad. Un método utilizado para este pre-procesamiento es la eigendescomposición de la matriz de covananza: E{xxT} = EDE T Donde E es la matriz ortonormal de los eigenvectores de E{xxT} y D es la matriz diagonal de los eigenvalores, D=diag(d¡, ... ,dn), El blanqueo se obtiene por: Este pre-procesamiento reduce el número de parámetros a ser estimados Reconocimiento facial con ACI En [22] Bartlett et al. proponen dos arquitecturas, la primera provee un conjunto estadísticamente independiente4 para imágenes faciales que pueden ser vistas como un conjunto de componentes faciales independientes, mientras que la segunda provee un conjunto de variables independientes para codificar las caras. Para encontrar el conjunto de imágenes de componentes independientes, las imágenes en X son consideradas como una combinación lineal de imágenes base estadísticamente independientes S, 4 Consideramos un conjunto de componentes faciales independientes cuando los valores de los píxeles en cada imagen de un componente son estadísticamente independientes de valores de píxeles en cualquier otra imagen. 24 donde A es W1a matriz desconocida. Las imágenes base son recuperadas por una matriz de filtros W¡, que producen salidas independientes U. (Ver figura 9) X • u • • • Fig. 9. Esquema de la primer arquitectura del algoritmo ACI propuesta por Bartlett, [22]. Las imágenes son los renglones de la matriz X. Las salidas en los renglones W1X = U son también imágenes. La representación ACI consiste en los coeficientes de la combinación lineal de las imágenes base en U que forman cada imagen facial. (Ver figura JO). = b1"' Fig. 1 O. Representación de una imagen facial en ACI ( combinación lineal de coeficientes), [22]. El número de componentes independientes encontrados por el algoritmo ACI depende de la dimensión de la entrada, por lo que Bartlett et al. consideran W1 conjW1to de m combinaciones inicial tal que m < n, donde n es el número de imágenes faciales. El desempeño de este algoritmo no se ve afectado con el reemplazo de las imágenes originales con una combinación lineal de éstas, así es que utilizan ACP para obtener combinaciones de menor dimensión sin pérdida significativa de datos. Sea P m la matriz que contiene los m componentes principales en sus columnas. ACI se aplica sobre la transpuesta de P m para producir una matriz de m imágenes fuente en los renglones de U. Los coeficientes v, para la combinación lineal de imágenes base en U que conforman las imágenes en X son determinadas de la siguiente forma: La representación de componentes principales de imágenes con media igual a O en X basados en P m está definida como R m = X* p m. Un error mínimo de X es obtenido por X rec = R m * P fu. El algoritmo ACI produce una matriz W1 = W * W2 tal que: W¡ * p¡ = U ~ p¡ = W¡ 1 U 25 Por lo tanto: La representación de componentes de las imágenes faciales están basadas en el conjunto de las m imágenes de componentes U, dados por los renglones de la matriz. La segunda arquitectura se basa en obtener la transpuesta de X tal que las imágenes estuvieran en las columnas y los píxeles en los renglones. Cada imagen en la base de datos es considerada como una combinación lineal de las imágenes base dado porla matriz A (Ver figura 12). s A ---- X w •-•-•-•- u Fig. 11. Modelo de síntesis de imágenes, [22]. =U}* * + ... +Un Fig. 12. Representación factorial de ACI = (ul, u2, .. , un), [22]. Ambas arquitecturas de ACI fueron superiores en el reconocimiento de caras en diferentes sesiones, cambios de expresión y de pose. Aunque ACI provee un método para reconstruir imágenes 2D de forma eficiente su codificación da lugar a imágenes base holísticas. 26 2.1.2.3 Factorización no-negativa de una matriz En [35], Daniel D. Lee y H.Sebastian Seung proponen un algoritmo basado en factorización no- negativa de una matriz (FNM) para el aprendizaje automático de segmentación de datos en sus partes. Este algoritmo de aprendizaje introduce restricciones no-negativas sinúlares a aquellas encontradas en las redes neuronales biológicas. En [35], presentan los resultados al aplicar este algoritmo a una base de datos de imágenes faciales comparándolo con análisis de componentes principales (ACP) y cuantización de vectores (CV). Mientras que ACP y CV tienen resultados holísticos, al obtener caras enteras, FNM presenta componentes relacionados con características faciales. La base de datos de imágenes es representada como una matriz de n x m, V; donde cada columna contiene n valores no-negativos de píxeles de cada una de las m imágenes faciales. Los tres métodos construyen factorizaciones aproximadas de la forma: r Viµ =(WH)i,µ = LW¡ªHªµ a=I Las r columnas de W son llamadas imágenes base. Cada columna de H es una codificación de correspondencia uno a uno con cara en V. Una codificación consiste en los coeficientes por los cuales una cara es representada como una combinación lineal de imágenes base. Las dimensiones de las matrices W y H son n x r y r x m respectivamente. El rango r de la factorización generalmente es obtenido por la condición: (n + m)r < nm. Las diferencias entre ACP, CV y FNM se encuentran en las diferentes condiciones para las matrices W y H. FNM no permite entradas negativas en W y H. Lee y Seung implementaron FNM con las siguientes reglas de actualización para W y H. W f-- Wiª ia LWja j La iteración de estas reglas converge a un máximo local de la siguiente fi.mción: F= Ii ffviµlog(WH}µ -(WH)iµ] i=I µ=I 27 Las 2,429 imágenes faciales usadas son tomadas de frente y fueron alineadas en una malla de 19 x 19. Se modificaron las intensidades de gris para tener una media y desviación estándar de 0.25 y se obtuvo un rango de [O, 1] donde el blanco equivale a O y el negro a 1. FNM comienza con un valor inicial aleatorio para W y H. Después de casi 50 iteraciones, el algoritmo convergió y después de casi 500 iteraciones se obtuvieron los resultados demostrados en la figura 13. NMF : 1. : lj : ' --~- _J_'"'!.J -.J_._..L_ l ,1 l_l"I 1 --t-+++~+-.+-- 1 J. 1 1 1 1 1 -,- y--~"!:~--i---~-- =--~ -_ ¡,_ -~~~--~- _\~ -- .. .;:¡._ ~r-~·~-- ~--J~- -~·- .. -. :- 1 -l-1-1 .. ~+-t- -1;-.;:--1- --:- -- 1 ..... 1 1 1 1 - Original ~ • --- X = • Fig. 13. Resultados de FNM, [35]. A pesar que FNM tiene éxito en aprender componentes faciales, esto no implica que este método pueda aprender componentes de cualquier base de datos, así como imágenes tomadas desde diferentes puntos de '\ista o sumamente articuladas. FNM asume que las variables escondidas son no-negativas pero no toma en cuenta las dependencias estadísticas. Esto es en contraste con ACI que asume que las variables escondidas son estadísticamente independientes y no-gaussianas [35]. El aplicar ACI a imágenes faciales para hacer las codificaciones independientes resulta en imágenes base holisticas. Una aplicación alternativa a ACI es transformar las imágenes base a ACP para hacer tanto las imágenes como las codificaciones estadísticamente independientes. [35] 2.1.3 SISTEMAS COMERCIALES Entre los sistemas comerciales de reconocimiento se encuentran: • Face-it de Visionics Corp. [36], está basado en local feature análisis (LFA). Extrae la imagen de fotografias o vídeo y ajusta el tunaño, luz y expresión. Hace una comparación en base de datos. Es automático y en tiempo real, pero carece de un modelo 3-D. • Visaje de Viisage Technology [37], utiliza la tecnología basada en eigenfaces desarrollado en MIT. Cada cara es codificada por 128 eigenfaces. • Miros utiliza tecnología de redes neuronales para el software Trueface [38]. ,,..._, r ~ - , • .__ ~ •• . .r 1y. - Fig. 14. Software Viisage™ de Viisage Technology, [37]. 28 2.2 MODELADO FACIAL La clave para crear modelos hwnanos faciales es entender la naturaleza de la anatomía de la cabeza, la posición de las distintas partes que la fonnan y su proporción. Aunque el cráneo define la fonna general de la cabeza, para crear expresiones faciales adecuadas también es necesario saber como se comportan los músculos. (Ver anexo A). Desarrollar un modelo facial incluye determinar las descripciones geométricas o procedimientos que se usaran para representar una cara. Para alcanzar más realismo, el modelo debe tener la capacidad para ser animado y una buena representación de los colores de la superficie y textura de la piel. Los modelos faciales pueden clasificarse en paramétricos y basados en músculos. 2.2.1 MODELOS P ARAMÉTRICOS Utilizan parámetros5 que se pueden clasificar en parámetros de conformación y parámetros de expresión facial y de emociones. Los parámetros de conformación determinan la fonna y tamaño de las partes de la cara, mientras los de expresión facial determinan los cambios de fonna que intervienen en la representación de una expresión o emoción [39]. (Ver tabla 1). Tabl 1 E" 1 d tr de f¡ a Jempos eparame os con onnac1on y d e expres1on Parámetros de conformación Parámetros de expresión facial y . de emociones Forma de la cara. Ojos: abertura, tamaño de pupila, Radio de la cara. cejas, dirección de la vista. Color de piel. Boca: rotación de quijada, ancho, Forma de la frente. expresión, posición de labios. Longitud y amplitud de la nariz. Forma de la barbilla, . tamaño y separación de los ojos. Fonna de la mejilla. Proporciones faciales. Los modelos paramétricos mejoran y aceleran la animación facial y aunque tienen una gran flexibilidad para generar cualquier expresión, su problemática estriba en la elección adecuada de parámetros representativos. Modelo de Parke Parke fue el primero en desarrollar un modelo facial. En [ 40] describe un modelo paramétrico de la cara, capaz de mover los labios y animar expresiones. Los ojos, párpados, cejas, labios y 5 Parámetro: valor escogido bajo cierto criterio que permite representar cualquier objeto. 29 mandfüula son controlados por parámetros. Utiliza interpolación6 entre la posición inicial y la final para obtener la animación. En 1982, Parke [ 41] mejora su modelo al introducir parámetros que penniten cambiar la estructura de la cara. :1- ~- X y Fig. 15. Modelo de Parke, [41]. Jew Los datos del modelo se obtuvieron por mediciones en una cabeza real. Parke utiliza una malla con posiciones arbitrarias de vértices. El cambio de forma es debido al cambio en la posición de los vértices. La boca y mandibula tienen una rotación especial. Los ojos tienen un punto de reflejo y un seguimiento. ro::" La animación se obtiene al variar parámetros con el tiempo. (Ver figura 15). 2.2.2 MODELOS BASADOS EN MÚSCULOS Estos modelos representan de forma simplificada la estructura de los huesos faciales, el tejido conectivo y la piel [42, 43, 44, 45]. La generación de expresiones faciales se da por la manipulación de los músculos y el tejido facial. La actividad de los músculos lineales es representada con vectores musculares lineales y la de los músculos esfinter, con actividad coseno. Platt y Badler [ 46] diseñaron un sistema basado en la estructura facial. La piel es el nivel externo y es representado por un conjunto tridimensional de puntos que definen una superficie. Los huesos son un conjunto tridimensionalde redes y no pueden moverse. Los músculos son grupos de puntos con áreas elásticas. En 1987, Waters [47], diseña un modelo muscular para animar una cara, que pennite el repertorio más amplio de expresiones conocido hasta ese momento. El modelo se basa en unidades de acción que controlan grupos de músculos. Su objetivo es producir un modelo que pueda representar las seis expresiones básicas y pueda ser utilizado con el sistema F ACS (Facial Action Coding System) de Ekman y Freisen [48]. 6 Interpolación: método que calcula un valor intermedio a partir de un valor inicial y uno final. 30 Magnenat-Thahnann et al. [49] propusieron un modelo que simula la acción de músculos utiliz.ando un procedimiento llamado AMA (Abstract Muscle Action procedure). (a) (h) Fig. 16. Simulación de capas cutánea, subcutánea y muscular de Terzopoulos, [50]. En 1990, Terzopoulos et al. [50] creó un modelo tridimensional (Ver figu.ra 16), que simula las propiedades de los músculos y la piel, utiliz.a la teoría de F ACS e imita los movimientos reales, siguiendo los contornos deformables de una cara. 2.3 GENERACIÓN DE MODELOS FACIALES La generación de un modelo tridimensional para una persona en particular puede ser hecha a partir de descripciones [6], fotografias [11, 51, 52, 53] o video [54, 55, 56, 57, 58]. Algunos sistemas obtienen el modelo deformando un modelo genérico tomando en cuenta las características extraídas de la cara deseada [51, 52, 53, 56, 57, 58, 59]. Otros generan diferentes geometrías faciales a partir de las mediciones antropométricas [60], escultura interactiva [61] o caras existentes [10, 11]. Los sistemas de generación de un modelo tridimensional hecho a partir de imágenes pueden clasificarse en interactivos y automáticos. 2.3.1 SISTEMAS INTERACTIVOS Los sistemas interactivos, (que son la mayoría), dependen de la asistencia manual por parte del usuario para localizar detenninados puntos y ajustar una malla tridimensional a la imagen [52, 56, 60]. En 1998, Pighin et al. [52] proponen un sistema de generación que requiere varias fotografias con diferentes vistas y poses, donde el usuario localiz.a y marca puntos en las diferentes vistas, posteriormente estos puntos son usados para deformar el modelo genérico. (Ver figu.ra 17). {a) (b) (e) (d) (e) Fig. 17. Sistema de Pighin, [52]. (a) Conjunto de imágenes iniciales con marcadores en puntos caracteristicos, (b) Componentes faciales resaltados por un conjunto de curvas, ( c) Modelo genérico, ( d) Modelo genérico adaptado a los 13 puntos iniciales, (e) Modelo después de 99 correspondencias adicionales. 31 En [51 y 60], Lee et al. utilizan fotografías ortogonales (frente y perfil) para reconstruir el modelo tridimensional. Localizan puntos caracteristicos de MPEG-4 en las fotografías para modificar el modelo genérico. (Ver figuras 18 y 19). Fig. 18. Puntos caracteristicos en imágenes Fig. 19. Ajuste del modelo, [51]. iniciales, [51]. (a) Modelo genérico, (b) Modelo ajustado, ( c) Modelo final con textura. Sistemas comerciales como JOE Face™ [62], 3DmeNow™ de Biovirtual [63], Bakehead™ de RedTed [64] y Ulead face factory™ [65] también entran en esta clasificación. 32 JOE (Join Our Experience) Face™ [62] es · un sistema de calibración que crea caras tridimensionales que pueden ser exportados a VRML97. (Ver figu,ra 20). El modelo se obtiene al identificar 22 puntos característicos de MPEG-4 en una fotografia frontal, como se ilustra en la Fig. 21. A partir de estos datos se ajusta una malla para producir el modelo. El modelo final contiene dientes y puede ser animado con la aplicación JOE Animation Studio TM. Fig. 21. Interfaz de JOE Face™, [62] Otro sistema de construcción de modelos tridimensionales es 3DmeNow™ de Biovirtual [63], cuyos modelos pueden ser exportados a VRML 1.0, VRML 2.0, 3DStudio y Alias Wavefront. 3DmeNow™. Una vez cargadas las imágenes es necesario acomodar los perímetros de acuerdo a las características de las caras, como se ilustra en la Fig. 22. La interfaz de 3DmeNow™ pennite al usuario ajustar la forma del modelo tanto de frente como de perfil. 33 ,lofxl Fig. 22. 3DmeNow™ de Biovirtual, [63]. Bakehead™ de RedTed [64] crea un modelo tridimensional permitiendo al usuario ajustar una malla a una fotografia de frente. (Ver figu,ra 23). Ulead face factory™ [65] permite crear modelos y exportarlos a VRML a partir de dos imágenes: una frontal y otra de perfil, el usuario debe escalar y alinear las fotos para producir el modelo. (Ver figu,ra 24). Fig. 23. Bakehead™ de RedTed, [64]. Fig. 24. Ulead face factory™, [65]. Digimask™ de Matrox [66], produce un modelo facial tridimensional a partir de dos imágenes ortogonales, el usuario necesita marcar ciertos puntos y enviar los datos para obtener el modelo facial. Vou m¡,y m~ peints by dri,ggrog lhem with lhe left mouse button ©@ 4of10 (!)@ Fig. 25. Digimask™=d,._e..,M,-a-tr ...... o-x,-[ 66]. 34 Otro enfoque de sistemas interactivos es el de identikits (sistemas de retrato hablado) para generar un modelo facial con la ayuda de imágenes de componentes faciales y/o descripciones. Algunos ejemplos de interfaces de identikits son Spotlit! TM [7], Facette TM [8]. (Ver figuras 26 y 27). ~'F"i¡ ~ ~ 1~ Fig. 26. Sistema ldentikit: Spotlt! ™, [7] Fig. 27. Sistemaldentikit: Facette™, [8] La mayoría de los sistemas tipo identikit crean modelos bidimensionales. Uno de los pocos que crea modelos tridimensionales utilizando una interfaz con descripciones es FaceGen Modeller 2.0™ de Singular Inversions, Inc. [67], como lo muestra la figura 28. Por ser éste un software más completo, será analiz.ado más adelante con mayor detalle. 35 Generate Shape 0.00 0.00 0.00 0.00 0.00 Fig. 28. Control de caracteristicas faciales tipo Identikit de FaceGen Modeller 2.0 M, [67]. 2.3.2 SISTEMAS AUTOMÁTICOS Algunos métodos automáticos utiliz.an dos imágenes, una de frente y otra de perfil para la generación [53, 54]. Mientras que en [53] Goto et al. obtienen una cara tridimensional a partir de 2 fotografias para una animación posterior, el de Blanz y Vetter [11], presentado en SIGGRAPH'99 requiere una sola imagen y hace la generación utilizando una base de datos de modelos tridimensionales y técnicas de minimización. 36 2.3.2.1 Clonación automática de modelos faciales 3D En [53] Goto et al. describen un sistema completo para reproducir una cara tridimensional a partir de dos imágenes ortogonales; la cara también es animada en tiempo real a partir del análisis de video y extracción de parámetros de MPEG-4. (Ver figu,ra 29). Fig. 29. Descripción del sistema de Goto et al., [53]. Las imágenes ortogonales proveen "edge infonnation" (infonnación de orillas) y en algunas ocasiones, de color. Para construir el modelo facial tienen como base un modelo genérico que es dividido en segmentos: ojos, cejas, nariz, boca, etc. El ajuste del modelo consiste en determinar las posiciones correctas de los componentes. (Ver figu,ra 30) . (e) (f) (g) (h) Fig. 30. Detección automática de características faciales, [53]. 37 Al inicio del procesamiento, obtienen las posiciones globales de las componentes y ajustan sus posiciones a valores promedio. Posteriormente, mediante el detector Canny de orillas {para orillas horizortales) y un estimado de la combinación de pesos de la distribución estándar de los datos, calculan las posiciones correctas. Finalmente refinan el modelo utilizando diferentes algoritmos para las diferentes regiones que así lo requieren. (Ver figura 30.a) Modelo facial con todos los componentes conectados, (30.b) Modelo con componentes separados por regiones, (30.c) Componentes en su posición correcta, (30.d) Refinamiento, (30.e) Deformación del modelo con la información del perfil, (30.j) Resultado de ajuste de perfil, (30.g) Resultado de ajuste (30.h) Modelo final con textura. Para animar el modelo, el sistema reconoce automáticamente lascaracterísticas más distinguibles para obtener la posición inicial de ojos, cejas y boca para su posterior seguimiento, como lo muestran las siguientes figuras. h r ,111· r , I ~ Fig. 31. Inicializ.ación y seguimiento, [53]. Este sistema trabaja en Windows NT, 2000 y 95/98. La velocidad de la animación (incluyendo el seguimiento y sincronización de labios) es re 1 O a 15 cuadros por segundo en una PC Pentium III 500 Mhz, capturando 15 cuadros por segundo con una resolución de 320x240. 2.3.2.2 Síntesis de modelos faciales 3D utilizando un modelo morph El sistema de Blanz y Vetter [11] puede generar un modelo facial tridimensional a partir de fotos o escaneo tridimensional de una cara; cuenta con una base de datos de 200 figuras y texturas. (Ver figura 32). Utiliza un modelo facial general, obtenido a partir de las combinaciones lineales de la base de datos inicial, para generar nuevas caras minimiz.ando las diferencias entre la nueva cara y la fi.mción del modelo facial. Base de datos modelos 3-D ... Modelo facial morph izadorde ~ --+ _. . caras 1 Modelador 1--+ Fig. 32. Modelador de Blanz y Vetter, [11]. Modelo 3D 38 Para construir la base de datos se escanearon con láser (Cyberware™) las cabezas de 200 adultos ( 100 hombres y 100 mujeres, sin maquillaje, accesorios y bigote) y las geometrías obtenidas fueron preprocesadas para obtener caras con 70,000 vértices. La geometría y textura de una cara están definidas por el vector de forma S = (Xi, Y1, Z1, ... ,Yn, Znl E R3"; y el vector de textura T = (R1, G1, B1, ~ ..... , Gn, Bnl E R3", donde n es el número de vértices. El modelo está definido por el conjunto de caras (Smod(a), Tmod(b)) parametrizados por los coeficientes a = (a1, az, ... aml y b = (b1, bz, ... ,bm) T. Caras adicionales pueden ser creadas modificado los parámetros a y o que controlan la forma y la textura. m m Smod = La;S¡ Tmod = Lb;Ti i=I i=I i=I i=I Se pueden estimar los posibles caras utiliz.ando métodos estadísticos. El promedio de la forma S y el promedio de la textura T y las matrices de covarianza Cs y Cr obtenidas por las diferencias l:l.S¡ = S¡ - S y l:l. T¡ = T¡ - T. m-1 m-1 Smode/= S+ L~S; T model = T + L /3J; i=I i=I Los coeficiertes CX.¡ y ~¡ no corresponden a atributos faciales; estos son obtenidos por un método de mapeo que extrae características como: sexo, barbillas cortadas, narices cóncavas y convexas. Basados en un conjunto de caras (S¡, T¡) manualmente marcadas con etiquetas µ¡ describiendo la magnitud del atributo, se calcula: m m 1:!,.S = L,~(Si-S) i=I l:l.T= L,~(T¡-T) i=I 39 Múltiplos de ~S, !l. T} pueden ser sumados o restados de cualquier cara. Para atributos binarios como el sexo, asignan valores constantes µA para todas las 11\,\ caras en la clase A y µ8 -:t µA para todas las me caras en B. Fig. 33. Unión del modelo general y una nnagen. (1) Imagen original, (2) Estimado del mapa de textura, (4)Extracción adicional de textura. Cambio en atributos faciales (3) Aumento de peso, (5) Pérdida de peso, (6) Fruncimiento de frente, (7) Sonrisa forzada. w Se obtienen nuevas caras y expresiones con la variación lineal de este modelo. (Ver figura 33) La generación de caras a partir de imágenes implica un proceso de optimiz.ación para eliminar errores. El proceso para generar un modelo tridimensional tarda en promedio 50 minutos y genera un modelo sin cabello. 2.3.2.3 Generación de modelos 30 a partir de una sola fotografia mediante PCA En [10], Cuevas y Rudomin describen el trabajo que han desarrollado para generar modelos faciales tridimensionales de forma automática a partir de una sola imagen usando análisis de componentes principales sobre una base de datos tanto de imágenes faciales como de modelos tridimensionales. El uso de análisis de componentes principales les pennite reducir el número de caras que se necesitan conocer para construir una nueva, a partir de una cara 2D. Su base de datos inicial es de 14 mallas faciales y sus imágenes correspondientes. Cada cara en el espacio facial es generada por la combinación lineal de las eigenfaces (ver figura 34), obtenido por: Donde x corresponde a la imagen facial (de tamaño m*n), y a la cara en el espacio facial y E a una matriz con k columnas correspondientes a k eigenfaces. La generación de x se obtiene mediante: x' = p * y Fig. 34. Codificación de una cara usando eigenfaces, [10]. 40 Cuevas y Rudomin estudian la posibilidad de crear una cara tridimensional utilizando eigenfaces tridimensionales y una codificación 20, por medio de la hipótesis: Si se tienen caras en 20 y 30 así como un conjunto de eigenfaces 20, es posible construir eigenfaces 3D resolviendo un sistema lineal: 1. Obtener la codificación 2D de cada cara de la base de datos Cara 20 = Codificación 20 * Eigenfaces 20 2. Resolver el sistema lineal para obtener eigenfaces 30: Cara 30 = Codificación 20 * Eigenfaces 30 Eigenfuces 30 = Cara 30/ Codificación 2D Para construir una nueva cara tridimensional a partir de una imagen, ésta se analiza usando eigenfaces 20 para obtener la codificación 2D y se sustituye en la siguiente ecuación. Cara 3D = Codificación 20 * Eigenfaces 3D Base Caras 2D Obtener eigenfaces 2D y 2D/3D coeficientes 2D de la descomposición lineal de cada cara. Coeficientes 2D Ei2enfaces 2D Resolver el sistema lineal para obtener eigenfaces 3D. Cara 3D = Codificación 2D • Eigenfaces 3D Eigenfaces 3D Cara normalizada 2D Análisis de la cara usando eigenfaces 2D. Coeficientes 2 D Generación de cara 3D: Cara 3D = Codificación 2D • Eigenfaces 3D Cara 3D (a) (b) Fig. 35. Diagrama del sistema de Cuevas y Rudomin, [10]. (a) Inicialización, (b) Generación de una cara 30. 41 Atmque los resultados son alentadores (Ver figura 36), la generación de tm nuevo modelo mediante este método requiere que todas las caras 3D en la base de datos tengan como base la misma malla genérica, razón que limita la aplicación de este sistema. Los autores [10] también señalan que es necesario aumentar el tamaño de la base de caras y desarrollar tm módulo para la generación y ajuste automático de textura. Fig. 36. Resultados de reconstrucción tridimensional, Cuevas y Rudomin, [10]. 2.4 ANIMACIÓN FACIAL Una buena animación facial requiere una simulación natural de la interacción de los músculos para representar los movimientos y expresiones. Psicólogos han identificado las caras como estímulos visuales y han estudiado los diferentes aspectos de la percepción y reconocimiento facial; así como las expresiones faciales. E1anan y Friesen [ 48] desarrollaron tm sistema de acciones faciales llamado F ACS que cuantifica las acciones de músculos voltmtarios independientemente de la interpretación cultural o personal. Ekman y Friesen han catalogado alrededor de 55,000 expresiones distintas, con 30 distinciones semánticas y seis expresiones básicas: sorpresa, miedo, disgusto, ira, alegría y tristeza. 2.4.1 MÉTODOS DE ANIMACIÓN La animación se puede obtener por métodos de interpolación [40], parametrización directa [41], comportamiento guiado [53,55,68] o métodos basados en pseudo músculos [43,49] y músculos [46, 47, 50, 58, 69]. La animación por interpolación consiste en : 1) Obtener una base de datos de diversas posturas faciales tridimensionales. 2) Mapear estos datos a cada vértice en cada postura (equivalencia topológica). 3) Calcular la interpolación entre los datos. 42 Esta técnica es común y sencilla, pero desafortunadamente el número de posturas está limitada a la base de datos inicial [70]. Los métodos para.métricos controlan la forma con la manipulación directa de la geometría de la superficie, utilizando cierto número de parámetros. La distancia entre puntos no anatómicos (ancho de labios y boca) pteden ayudar a predecir fi.mciones para.métricas tridimensionales y reglas de deformación. Estos métodos producen animaciones de forma rápida, perono son tan realistas como los métodos basados en músculos. Los métodos basados en pseudo músculos buscan simular la acción de los músculos faciales de una forma sencilla. Entre los métodos basados en pseudo músculos están AMA (Abstract Muscle Action) [49], FFD (Free Form Deformation) y RFFD (Rational FreeForm deformation) [43]. Estos métodos tienen como ventajas: ser independientes de la geometría facial y estar directamente relacionados con los sistemas basados en músculos. Los modelos basados en músculos (también llamados basados en fisica) simulan la acción de los músculos y el comportamiento elástico de la piel para producir expresiones, modelando las capas internas. La mayoría de estos utilizan sistemas de partículas y resortes, mallas de resortes con fi.mciones de fuemi que simulan la contracción de los músculos. Estos modelos son computacionalmente caros y dificiles de controlar debido a las fi.mciones de fuemi. Los métodos de comportamiento guiado se dan a través de información obtenida de acciones reales. En estos métodos, es necesario hacer un análisis previo para extraer los datos en tiempo real. Software FaceGen Singular Inversions, Inc. [67] es una compañía que sacó a la venta recientemente (casi al finalizar este trabajo de tesis), el software FaceGen Modeller y algunos servicios para producir caras tridimensionales. La importancia de este software radica en que buscan obtener resultados similares a los de este trabajo de tesis. El software de FaceGen utiliz.a el análisis estadístico de una base extensa de más de 240 caras tridimensionales generadas por escaneos 3D de Cyberware. La base representa casi todas las razas y está diseñada para que cualquier combinación produzca una cara realista. Esta base representa formas de caras en estado neutral. Utilizan una malla genérica de 9858 vértices y 9840 polígonos, como lo muestra la siguiente figura. 43 Fig. 37. Malla utilizada en FaceGen™, [67]. En una versmn anterior, FaceGen Modeller 1.3 ™ creaba caras aleatorias y a partir de una fotografia. FaceGen Modeller 2.0™, que salió a la venta en septiembre del 2001, es una aplicación para Microsoft Windows, que produce caras tridimensionales de forma aleatoria, a partir de una fotografia o con opciones tipo identikit, incluye el uso de texturas, pennite animarlas y exportarlas a formatos tipo OBJ, VRML 1 & 2 y 3DS. Este software pennite generar caras aleatorias y ajustar tanto su forma y textura de acuerdo al sexo, edad y características distinguibles utilizando barras de deslizamiento. La interfaz es sencilla de usar y pennite visualizar los cambios en tiempo real. Como lo indica la siguiente figura. Q111ffi~ sn ,, [[~ [[~-., .., ., ., --· ....... Fig. 38. Software FaceGen Modeller 2.0™ de FaceGen, [67]. 44 Allllque este software se asemeja a este trabajo de tesis en que utiliza una base de datos de caras tridimensionales y el análisis estadístico de éstos para generar caras aleatorias y con descripciones tipo identikit, los modelos generados no son compatibles con MPEG-4 y para ser animados es necesario generar expresiones cuadro por cuadro y exportarlas. También les falta construir Wl módulo para el reconocimiento y construcción automática de una cara a partir de una nmgen. 2.4.2 SINCRONIZACIÓN CON HABLA La animación facial con habla involucra la descomposición del habla en fonemas 7 y la sincronización de estos fonemas con los labios. Un visema es la forma básica de la boca que genera Wl fonema. Existen 16 visemas, algW1os ejemplos se muestran en la siguiente figura. M/P/BH y AA Fig. 39. Ejemplos de visemas, [71]. AlgW1os investigadores han generado automáticamente animación a partir de habla. En nuestro caso, las transformaciones que llevan información de habla a la animación tendrán Wl nivel de granularidad más fino que lo usual en el área, situación que nos permite generar Wl sistema optimo para mejor sincronía, y para modelar correctamente fenómenos como la coarticulación . La coarticulación es el resultado de la dinámica del tracto y posturas vocales requeridos para generar varios sonidos. Es la suma de los movimientos generados antes, después y durante la generación de Wl fonema. Coarticulación = Movimientos del + Movimientos del + Movimientos del Fonema anterior Fonema actual Fonema posterior 7 Un fonema es la unidad básica de un sistema gramatical, que distingue una articulación de otra. La combinación de fonemas crea palabras. 45 El proyecto SDF A subdivide los fonemas en unidades más pequeñas para permitir una meJor representación de la coarticulación. Para deformar la geometría y obtener animación en tiempo real, se necesitan métodos rápidos y robustos. Examinaremos algunos métodos para modificar la geometría facial y producir annnac1ones. 2.5 MPEG-4 MPEG-48 es el primer estándar internacional que especifica una representación binaria comprimida de objetos audiovisuales sintetizados animados [72, 73, 74], este estándar surge de la necesidad de contar con un método de codificación para facilitar el acceso a objetos visuales en video natural y sintético así como de sonido, para aplicaciones como almacenamiento, intemet y comumcac1ones. MPEG-4 permite la integración de animación de caras, especificando: un modelo de una cara en estado neutral, un número de puntos característicos en ese modelo como referencia y un conjunto de F APs9, cada uno correspondiente a una acción determinada de la cara partiendo del estado neutral. 2.5.1 CARA EN ESTADO NEUTRAL La cara en estado neutral de MPEG-4 (Ver figura 40), tiene las siguientes características: Fig. 40. MPEG-4 Cara en estado neutral, [73., 74]. La mirada está en la dirección del eje Z. Los músculos de la cara están relajados. Los párpados son tangentes al iris. La pupila es un tercio del diámetro del iris. Los labios están en contacto; la linea de los labios es horizontal y a la misma altura de las esquinas del labio. La boca está cerrada y los dientes superiores tocan los de abajo. La lengua está horizontal con la punta tocando el límite entre los dientes superiores y más bajos. 8 Las siglas MPEG en inglés corresponden a "Moving Pictures Expert Group". 9 Las siglas F APs en inglés corresponden a Facial Animation Parameters, su traducción en español es parámetros de animación facial. 46 MPEG-4 define fracciones de distancia entre ptu1tos clave de la cara para adaptar los parámetros de animación a cualquier modelo facial. (Ver tabla 2). Estas fracciones de distancia son llamadas "Face Animation Parameter Units" (FAPUs) y también permiten la interpretación de FAPs en cualquier modelo. FAPUs IRISDO ESO ENSO MNSO MWO AU Tabla 2. F APUs de MPEG-4 y definiciones. Definición , Diámetro del iris (por definición equivale a la IRISD = IRIS DO / 1024 distancia entre los párpados inferior y superior) Separación de los ojos ES= ESO/ 1024 Separación entre ojos y nariz ENS = ENSO / 1024 Separación entre boca y nariz MNS = MNSO / 1024 Ancho de la boca MW=MWO/ 1024 Unidad de árnmlo lOE-5 rad 2.5.2 PUNTOS CARACTERÍSTICOS Se definen 84 ptu1tos caracteristicos de MPEG-4 en la cara neutral. (Ver figura 41). Atu1que el propósito principal de estos ptu1tos es ser usados como referencias espaciales para definir los F APs, también sirven para definir la fonna del rostro. Estos ptu1tos se clasifican en grupos como mejillas, ojos, boca, nariz y orejas. 11.5 .,,-_,, _ _...,.... ___ ..... ,, ._ ~ ,~-- \ (~w-~\ ! t 4.4 4 2 4 1 4.3 \\ 11 \ íl !Y-;~~ ·_.r.::::-9:::-~\1 r 10.2 ijl {, .(:~ • • ~i:> ij\ 10.1 11 1 \ ~ 10.10 J 1 10.9 / 10.4 \ 1 • 5.4 t O \ 5.3 • 1t 10.3 10_6 ~10.e ~}~ 10.1f 10.5 \ 5.2 -4,., A 5.1 f . -- -::'!::.-:./, <:!!,;.-----_...r;?" ) 4,Y 2.14' ~--:;..::::7 2.13 ... -~ •2.~ ., 2.12 -........- 2.11 ,. X 2.1 z 11.5 ~,..,. 11.4 .......---- / 11.2 ---... / ' Í lJ~~· '~§j10.e 10.6 'y X 4.4 4.6~-~ ~' •5.4 \ 5.2 • 2.14 2.12
Compartir