Academia.eduAcademia.edu

Universidad Nacional De Educación a Distancia

e-spacio.uned.es

Este trabajo ha sido parcialmente …nanciado por los Proyectos de Investigación del Ministerio de Educación y Ciencia con referencia DPI2005-03769, DPI2008-05444 y de la Junta de Extremadura PRI09C088 y de la CAM S2009/DPI-1559 (Robocity2030-II). Agradecer esta tesis a mis directores Santiago Salamanca Miño y Carlos Cerrada Somolinos por depositar su con…anza en mí desde mis comienzos en la investigación, y por brindarme la oportunidad de adentrarme en el apasionante mundo de la investigación 3D Por otro lado, me gustaría dar las gracias a mis padres porque sin ellos no habría llegado a este punto, sin su apoyo, su esfuerzo y su cariño esto no habría sido posible. Además añadir mi agradecimiento a mis otros pilares imprescindibles: mis hermanos. Por último, expresar mi agradecimiento a toda la gente que ha ido apareciendo a lo largo de este camino, y que se han convertido en grandes compañeros, amigos y mucho más que amigos. Gracias por vuestra paciencia y apoyo en los momentos que más lo he necesitado. Gracias a todos.

Universidad Nacional de Educación a Distancia Escuela Técnica Superior de Ingeniería Informática Departamento de Ingeniería de Software y Sistemas Informáticos TÉCNICAS DE RELLENO DE HUECOS EN SUPERFICIES ADQUIRIDAS MEDIANTE ESCÁNERES 3D TESIS DOCTORAL Emiliano Pérez Hernández Ingeniero en Organización Industrial 2011 Universidad Nacional de Educación a Distancia Escuela Técnica Superior de Ingeniería Informática Departamento de Ingeniería de Software y Sistemas Informáticos TÉCNICAS DE RELLENO DE HUECOS EN SUPERFICIES ADQUIRIDAS MEDIANTE ESCÁNERES 3D Memoria que presenta para optar al grado de Doctor Emiliano Pérez Hernández Ingeniero en Organización Industrial por la Universidad de Extremadura Directores: Santiago Salamanca Miño Profesor Titular de Universidad del Departamento de Ingeniería Eléctrica, Electrónica y Automática de la Universidad de Extremadura Carlos Cerrada Somolinos Catedrático de Universidad del Departamento de Ingeniería de Software y Sistemas Informáticos de la Universidad Nacional de Eduación a Distancia Agradecimientos Este trabajo ha sido parcialmente …nanciado por los Proyectos de Investigación del Ministerio de Educación y Ciencia con referencia DPI2005-03769, DPI2008-05444 y de la Junta de Extremadura PRI09C088 y de la CAM S2009/DPI-1559 (Robocity2030-II). Agradecer esta tesis a mis directores Santiago Salamanca Miño y Carlos Cerrada Somolinos por depositar su con…anza en mí desde mis comienzos en la investigación, y por brindarme la oportunidad de adentrarme en el apasionante mundo de la investigación 3D Por otro lado, me gustaría dar las gracias a mis padres porque sin ellos no habría llegado a este punto, sin su apoyo, su esfuerzo y su cariño esto no habría sido posible. Además añadir mi agradecimiento a mis otros pilares imprescindibles: mis hermanos. Por último, expresar mi agradecimiento a toda la gente que ha ido apareciendo a lo largo de este camino, y que se han convertido en grandes compañeros, amigos y mucho más que amigos. Gracias por vuestra paciencia y apoyo en los momentos que más lo he necesitado. Gracias a todos. Resumen La digitalización de objetos para multitud de aplicaciones ha ido evolucionando de la mano de la evolución de los diferentes equipos de captura que han ido siendo desarrollados y puestos en el mercado. El proceso de digitalización puede dividirse en varias etapas, independientemente del sensor que se utilice. Este proceso parte de una etapa de adquisición, en la que se trabaja de forma manual con los equipos de captura. Le sigue una etapa de registro de todas las vistas parciales adquiridas en un sistema de referencia común. A continuación es necesario integrar todas esas vistas parciales en una única malla. Debido a la multitud de parámetros que intervienen en las etapas anteriores, siempre se incluye una etapa …nal de procesado que tratará de eliminar errores o pulir los resultados obtenidos. El procesado puede incluir una gran variedad de operaciones, dependiendo de las necesidades que vayan apareciendo. Entre estas operaciones son habituales las de suavizado de la malla; las de remallado o uniformización de la malla y una de gran importancia como es el relleno de huecos. Los huecos aparecen en la malla debido a diversas razones tales como: oclusiones en la super…cie del objeto, limitaciones en el posicionamiento del equipo de captura, super…cies de baja re‡ectancia, errores en las etapas de registro e integración, etc. Se trata de una tarea que no es trivial, ya que pueden presentarse in…nidad de casos de aparición de huecos, y, por tanto, no existe una solución que sea general a todos. Por otro lado, existe una extensa investigación en el campo de los algoritmos de restauración de imágenes. La …nalidad de estos algoritmos es la obtención de un proceso automático para la eliminación de elementos en una foto, como puede ser: puntos debido al ruido, suciedad en la imagen debido a la antigüedad de la película, texto impreso, objetos o personas, etc. Puede encontrarse cierta similitud entre el problema que abordan los algoritmos de restauración de imágenes y el problema que se presenta en el relleno de huecos en super…cies 3D: en ambos caso hay parte del conjunto de datos que se han eliminado y que necesitan ser restauradas. Por tanto, la idea de esta tesis es abordar el diseño de un método de relleno de huecos en mallas 3D utilizando algoritmos de restauración de imágenes para reconstruir las partes que se han de completar. Para ello, se estudiará todo la problemática que ello conlleva, empezando por la primera diferencia que salta a la vista: se pretende aplicar métodos tradicionalmente aplicados en datos 2D (fotografías) a la resolución de un problema de datos 3D. En primer lugar, se realizará un diseño inicial del método y su correspondiente análisis aplicándolo en vistas parciales obtenidas tras la digitalización. Tras la validación del método, se ha procedido al diseño de un método más general que aborde el problema en mallas completas que son obtenidas tras la digitalización y procesado de diversos tipos de objetos. Puede concluirse, tras el análisis global de los resultados, que el método …nal se comporta de forma robusta en una gran variedad de situaciones, ofreciendo resultados de gran calidad para diversos tipos de huecos y diferentes tamaños de los mismos. Abstract The digitalization of objects for many applications has evolved hand in hand with the evolution of di¤erent capture devices which have been developed and put on the market. The scanning process can be divided into several stages, regardless of sensor used. This process begins by an acquisition stage, which is worked manually with the capture equipment. There follows an step of registration of all acquired partial views in a common reference system. Then it is needed to integrate all these partial views into a single mesh. Due to the many parameters involved in the earlier stages, it is always included a …nal stage of processing to try to debug or re…ne the results. Processing can include a wide variety of operations, depending on the needs that are appearing. These operations are commonly: smoothing the mesh, remeshing and an important one is the …lling of holes. Holes appear in the mesh due to various reasons such as occlusions on the surface of the object, limitations on the positioning of the capture equipment, low re‡ectance surfaces, errors in registration and integration stages, and so on. This is a task that is not trivial as they may occur many cases of appearance of holes, and therefore there is no general solution that is all. On the other hand, there is extensive research in the …eld of image restoration algorithms. The purpose of these algorithms is to obtain an automatic process for removing items in a photo, such as: points due to noise, dirt in the image due to the age of the …lm, printed text, objects or people, etc. . You can …nd some similarity between the problem that address image restoration algorithms and the problem that arises in …lling gaps in 3D surfaces: in both cases a part of the data set have been removed and need to be restored. Therefore, the idea ofthis thesis is to address the design of a method of …lling holes in meshes using 3D image restoration algorithms to reconstruct the parts that have been completed. To this end, it will be studied all the problems that entails, beginning by the …rst di¤erence which is obvious: it is intended to apply methods traditionally used in 2D data (photographs) to solving a problem of 3D data. First, there will be an analysis of the problem and an initial design of appropriate method, applying it in partial views obtained after scanning. After validation of the method, we proceeded to design a general method to tackle the problem in whole mesh which are obtained after scanning and processing of various types of objects. It can be concluded after a comprehensive analysis of the results, the …nal method behaves robustly in a variety of situations, o¤ering high-quality results for di¤erent types of holes and sizes of them. Índice general 1. Introducción 1.1. Motivo . . . . . . . . . . . 1.2. Objetivos . . . . . . . . . 1.3. Estructura de la tesis . . . 1.4. Contribuciones de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Conceptos básicos de la creación de modelos 3D de objetos 2.1. Adquisicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Sistemas con contacto . . . . . . . . . . . . . . . . . . 2.1.2. Sistemas sin contacto . . . . . . . . . . . . . . . . . . . 2.2. Registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Representación de los datos e integración . . . . . . . . . . . . 2.3.1. Datos en bruto . . . . . . . . . . . . . . . . . . . . . . 2.3.2. Super…cies . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.3. Sólidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.4. Estructuras de alto nivel . . . . . . . . . . . . . . . . . 2.4. Procesado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. Métodos de relleno de huecos. . . . . . . . . . . . . . . . . . . 2.5.1. Criterios de robustez del algortimo de relleno de huecos 2.5.2. Clasi…cación de los métodos de relleno de huecos. . . . 2.5.3. Revisión técnicas de relleno de huecos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 3 4 5 reales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 10 11 12 16 17 18 21 31 36 37 40 41 42 43 . . . . . . . . . . . . 3. Veri…cación de los algoritmos de image inpainting en el rellenado de huecos 3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Técnicas de restauración de imágenes . . . . . . . . . . . . . . . . . . . . . . 3.3. Método desarrollado. Aplicación de algoritmos de image inpainting al rellenado de huecos en mallas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Generación de la imagen de rango . . . . . . . . . . . . . . . . . . . . . . . . 3.5. Aplicación de los algoritmos de restauración . . . . . . . . . . . . . . . . . . 3.6. Transformación de 2D a 3D. Triangulación de huecos . . . . . . . . . . . . . 3.7. Integración de los huecos triangulados con la malla inicial . . . . . . . . . . . 3.8. Validación del método de relleno propuesto . . . . . . . . . . . . . . . . . . . 3.9. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10. Resultados experimentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 52 52 4. De…nición de un método general para el rellenado de huecos 4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Descripción general del método para mallas completas . . . . . 4.3. Identi…cación de los huecos . . . . . . . . . . . . . . . . . . . . 89 89 90 92 i en . . . . . . mallas 3D . . . . . . . . . . . . . . . . . . 54 55 62 66 70 71 88 88 4.4. Selección de la porción de malla . . . . . . . . . . . . . . . 4.5. Generación de la imagen de rango . . . . . . . . . . . . . . 4.5.1. Plano de proyección sobre el que proyectar . . . . . 4.5.2. Resolución de la imagen de rango . . . . . . . . . . 4.6. Aplicación de los algoritmos de image inpainting . . . . . . 4.7. Integración de los resultados. Transformación de 2D a 3D. huecos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8. Resultados experimentales . . . . . . . . . . . . . . . . . . 4.9. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Triangulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . de . . . . . . 94 95 95 104 107 109 111 111 5. Conclusiones 114 5.1. Lineas de trabajo futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6. Anexo I 117 7. Anexo II 7.1. El equipo de captura. . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1. Descripción especí…ca del sensor de rango empleado. . . . . . 7.2. Descripción de los elementos y con…guración empleados. . . . . . . 7.2.1. El trípode y la cabeza de rotación . . . . . . . . . . . . . . . 7.2.2. La mesa o tabla de rotación. El patrón de calibración. . . . . 7.2.3. La iluminación de la escena. . . . . . . . . . . . . . . . . . . 7.2.4. El monitor de video. . . . . . . . . . . . . . . . . . . . . . . 7.2.5. El ordenador. . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3. Estudio del brillo del objeto . . . . . . . . . . . . . . . . . . . . . . 7.4. Estudio de la textura. Problemas ocasionados por los tonos oscuros. 7.5. Detección y eliminación de puntos y caras erróneas. . . . . . . . . . 7.5.1. Tipos de corrección de errores aplicados:. . . . . . . . . . . . 7.5.2. Operaciones a realizar para corrección de la malla: . . . . . . 7.6. Estudio de la ocupación óptima . . . . . . . . . . . . . . . . . . . . 7.7. Generación de la imagen de rango sin rasterización . . . . . . . . . 7.8. Generación de la imagen de rango con rasterización . . . . . . . . . 7.9. Extensión de la porción de malla . . . . . . . . . . . . . . . . . . . 7.10. Resultados experimentales para mallas completas . . . . . . . . . . 7.11. Estudio de la curvatura antes y después del relleno . . . . . . . . . 141 141 141 145 145 146 149 151 153 154 156 156 156 157 161 172 183 187 198 201 8. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 ii Índice de …guras 2.1. Imagen de una cabezal de digitalización en continuo SP 600 de Renishaw . . 2.2. Representación de un equipo de digitalización mediante brazo articulado. . . 2.3. Izquierda: Cono de visión limitado por la silueta de la imagen y que contiene al objeto. Derecha: Intersección de varios conos de visión. . . . . . . . . . . . 2.4. Digitalización mediante escaner láser: (a) Barrido del laser sobre el objeto; (b) malla poligonal del objeto digitalizado; (c) representación suavizada de la malla poligonal; (d) inclusión de la textura en la representación del objeto virtual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. Digitalización mediante la proyección de luz estructurada multicolor. . . . . 2.6. Proceso de extracción de características en un objeto 3D. . . . . . . . . . . . 2.7. a) Fotografía de la escultura que va a digitalizarse; b) Nube de puntos estructurada; c) Nube de puntos desorganizada. . . . . . . . . . . . . . . . . . . . 2.8. Diferentes representaciones de un objeto: (a) fotografía para observar la información del color. (b) malla poligonal obtenida correspondiente a la digitalización de una vista parcial del objeto. (c) imagen de rango o niveles de profundidad correspondientes a esa vista parcial digitalizada. . . . . . . . . . 2.9. Representación del mapa de alturas correspondiente a una imagen de rango. 2.10. Coordenadas cartesianas, esféricas y ejes ortogonales. . . . . . . . . . . . . . 2.11. Diferentes ejemplos de representación utilizando el método sopa de polígonos. 2.12. Representación de una super…cie paramétrica, con algunas curvas contenidas en la misma.[Rog01] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.13. (a) Super…cie NURB con líneas de nudos (knot lines); (b) Red de puntos de control [Sev09]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.14. (a) Representación de la super…cie implícita de un toro; (b) representación de la super…cie"blobby"formada por la unión de dos esferas. . . . . . . . . . . . 2.15. Conversión de malla poligonal a super…cie implícita [Tur01]. . . . . . . . . . 2.16. Representación de una esfera mediante: (a) Malla estructurada; (b) Malla no estructurada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.17. Representación de una malla hexagonal en 2D y su dual triangular [Mar07]. . 2.18. Entidades que componen la malla triangular e interconexión entre ellas . . . 2.19. (a) Dos partes de la super…cie con‡uyen en un vértice que produce una variedad no bidimensional (a la izquierda). Una arista que no produce una variedad bidimensional tiene más de dos caras incidentes (en el centro). La con…guración de la derecha, aunque da lugar también a una variedad no bidimensional, es más habitual en muchas mallas [Bot06]; (b) Vecindad de un vértice dado vi [Vas06]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.20. Descomposición de un objeto en diferentes celdas básicas. . . . . . . . . . . . 2.21. Representación mediante vóxeles de distinto tamaño de un mismo objeto. . . iii 11 12 14 15 16 16 18 19 20 21 22 23 24 25 26 27 28 29 31 33 33 2.22. (a) Esquema de partición del árbol octal u octree [Can02]; (b) y (c) ejemplos de representación de sólidos mediante árboles octales. . . . . . . . . . . . . 2.23. (a) Esquema de partición de un árbol BSP en el espacio 3D; (b) visualización de árbol BSP para un polígono en 2D, con su respectiva separación entre lo que queda dentro (in) y fuera (out) de cada partición. . . . . . . . . . . . . 2.24. Representación CSG: (a) Primitivas con sistemas de referencia; (b) Primitivas en un mismo sistema de referencia; (c) CSG resultante. . . . . . . . . . . . . 2.25. Modelado de sólidos mediante la técnica de barrido o {nit sweep}. . . . . . . 2.26. Descomposición de un objeto en las diferentes partes que lo componente. El grá…co resultante formaría parte del grafo de la escena en donde se encuentre el objeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.27. Ejemplo de extracción del esqueleto de objetos de formas diversas ([Cor07], [Pan10]). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.28. Diversos tipos de errores habituales en mallas poligonales. [Ju09] . . . . . . . 2.29. Proyeccion de huecos poligonales en un plano: (a) Hueco simple; (b) Hueco complejo [Jun05]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.30. Ejemplo de relleno mediante funciones de base radial (RBF).(a) Malla con hueco. (b) Conjunto de centros utilizados para la interpolación. (c) Malla rellenada utilizando interpoladores RBF.[Bra06] . . . . . . . . . . . . . . . . 2.31. Ejemplo de relleno utilizando el método de funciones de base radial. (a) Malla con hueco. (b) Malla reparada. (c) Mapa del error entre la malla reparada y la original.[Wu08] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.32. Ejemplo de malla con un hueco, y detección de las líneas de las características de la super…cie.[Li10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.33. Ejemplo de relleno mediante desdoblado de la malla. (a) Hueco en la cabeza del modelo humano. (b) Malla desdoblada.(c)-(e) Malla …nal obtenida tras la minimización de energía.[Bru09] . . . . . . . . . . . . . . . . . . . . . . . . . 2.34. Ejemplo de relleno mediante la técnica de subdivisión en huecos más simples [Li08]. En (a) y (b) mallas antes y después del relleno, respectivamente . . . 2.35. Ejemplo de relleno de huecos complejos utilizando la técnica de cálculo de normales.[Zha07] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.36. Ejemplo de relleno utilizando el método de ajuste de NURBs.[Kum07] . . . . 2.37. Interpolación de huecos grandes en dos imágenes de rango. (a) y (b) son dos imágenes de rango adquiridas de puntos de vista opuestos que ya están alineadas. (c) es una sección 2D del campo de distancias inicial, calculado a partir de las dos imágenes de rango. (d) - (h) resultados tras el relleno de huecos. (i) sección 2D de las mallas generadas.[Sag08] . . . . . . . . . . . . . 2.38. Ejemplo de relleno de huecos utilizando la división en volúmenes atómicos propuesta en [Pod05]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.39. Relleno de huecos con síntesis de textura.[Bre05] . . . . . . . . . . . . . . . 2.40. Ejemplo de relleno de huecos utilizando un método basado en la información del contexto [Sha04]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. (a), Restauración de una imagen antigua deteriorada; (b) Restauración de una imagen estropeada con ruido. . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Etapas del método de relleno de huecos desarrollado . . . . . . . . . . . . . . 3.3. Elección del plano de proyección para hacer la transformación 3D a 2D: (a) elección errónea; (b) elección idónea. . . . . . . . . . . . . . . . . . . . . . . iv 34 35 35 36 37 38 39 41 44 45 45 46 47 47 48 49 49 51 51 53 55 56 3.4. 3.5. 3.6. 3.7. 3.8. 3.9. Dimensiones de la imagen de rango en función del tamaño del píxel elegido, q. Imágenes de rango en función del ancho de celda elegido . . . . . . . . . . . In‡uencia de la uniformidad de la malla en la generación de la imagen de rango Relación entre el ratio de ocupación óptima OIh y el factor de proporcionalidad Escalado de los valores, acercamiento en Z al plano Z=0 . . . . . . . . . . . (a) Imagen original; (b) Imagen con la máscara de selección aplicada, con la que se señala qué parte se desea eliminar; (c) Imagen resultante tras la aplicación del algoritmo de restauración propuesto por Criminisi et al. en [?]. 3.10. (a) Fotografía antigua deteriorada; (b) Restauración de la fotografía antigua mediante la aplicación del algoritmo propuesto en [?]; (c) Imagen original con un texto sobrepuesto que desea eliminarse; (d) Imagen con el texto eliminado tras la aplicación del algoritmo de [?]. . . . . . . . . . . . . . . . . . . . . . . 3.11. Ejemplo de Máscara de selección . . . . . . . . . . . . . . . . . . . . . . . . 3.12. Obtención de los píxeles rellenos de la imagen restaurada mediante la aplicación de la máscara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.13. Correspondencias entre las coordenadas 3D y las coordenadas del plano imagen. 3.14. Puntos que se van a triangular (los de los huecos –en rojo- junto con los del borde de los mismo –en azul-): (a) Puntos del borde de los huecos; (b) Puntos que se van a triangular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.15. Relacion de vecindad entre puntos / relación de vecindad entre pixeles. Nube de puntos estructurada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.16. Esquema de las triangulaciones boundary 1 U boundary 2 . . . . . . . . . . 3.17. Huecos una vez realizada la fase de triangulación. . . . . . . . . . . . . . . . 3.18. Malla …nal reconstruida, con los huecos coloreados en rojos para observar la reconstrucción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.19. Kd-tree, distancias entre dos mallas triangulares . . . . . . . . . . . . . . . . 3.20. Comparativa de los algoritmos teniendo en cuenta la distancia media por hueco. 3.21. Comparativa de los algoritmos teniendo en cuenta la distancia media por malla. 3.22. Representación de la distancia media por malla para los tres algoritmos. . . . 3.23. Representación de la tasa de éxito frente a (a) el área total de los agujeros y (b) el área percentual. La línea continua es para el método propuesto, y la línea de puntos para el algoritmo comercial. . . . . . . . . . . . . . . . . . . 3.24. Mallas (a) originales y (b) restauradas, digitalizadas de la colección del Museo Nacional de Arte Romano de Mérida. . . . . . . . . . . . . . . . . . . . . . . 58 58 59 61 62 4.1. Etapas del método de relleno de huecos desarrollado . . . . . . . . . . . . . . 4.2. Etapa inicial de identi…cación de los hi (i = 1; :::; m) huecos en la malla total MT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Procedimiento de selección de la porción de malla mediante la obtención de los anillos Ri , a partir del borde de hueco Bk . . . . . . . . . . . . . . . . . . 4.4. Selección de las porciones de malla para cada uno de los huecos que aparecen en la …gura 1: (a) Hueco 1; (b) Hueco 2; (c) Hueco 3. Se han utilizado distintos valores de en cada caso: = 7; = 5; = 11, respectivamente. . . . . . . 4.5. Selección de diferentes planos de referencia o de proyección para cada uno de los huecos que se van a rellenar. . . . . . . . . . . . . . . . . . . . . . . . . . 4.6. Elección del plano de proyección para hacer la transformación 3D a 2D: (a) elección errónea; (b) elección idónea . . . . . . . . . . . . . . . . . . . . . . . 91 v 63 65 66 67 68 68 69 70 71 72 74 79 80 80 86 87 94 96 97 97 98 4.7. (a), Anillo de triángulos que pertenecen al borde del hueco; (b) Normal al hueco obtenida como la media de las normales a las caras que son forman el borde de hueco; (c) Proyección del borde de hueco según la dirección de la normal al hueco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.8. Three sub…gures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.9. Cálculo de la orientación de ligado al plano de referencia, que haga que el Área de Pk, Ak, sea máxima . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.10. En (a) se muestra la representación 3D a la izquierda y la proyección sobre el plano de referencia inicial, del hueco 1. En (b) se muestra la representación 3D a la izquierda y la proyección sobre el plano de referencia que se ha obtenido tras aplicar el algoritmo de maximización del area. . . . . . . . . . . . . . . . 102 4.11. Posicion del plano de referencia con respecto a la porción de malla. . . . . . 104 4.12. Aparición de pérdidas en la imagen de rango debidas a la orientación del plano de referencia con respecto a la malla. . . . . . . . . . . . . . . . . . . . . . . 106 4.13. Aparición de más de un hueco en la imagen de rango de uno de ellos . . . . . 107 4.14. Representación de la imágenes de rango extraídas de las porciones de malla M i (a la izquierda ) y de las imágenes de rango obtenidas tras la aplicación del algoritmo de restauración, para los huecos 1, 2 y 3 en a, b y c, respectivamente.109 4.15. Integración de las zonas que se han rellenado aplicando el algoritmo de restauración en la malla total MT de la …gura 4.2. Huecos 1, 2 y 3 en (a), (b) y (c), respectivamente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 7.1. 7.2. 7.3. 7.4. Vista frontal y trasera y diagrama de medidas del sensor Vivid 300 de Minolta.142 Principio de medida del sensor de rango. . . . . . . . . . . . . . . . . . . . . 143 Imagen del trípode Manfrotto 475 utilizado como soporte del escáner. . . . 146 Imagen de la cabeza de rotación Manfrotto 279 utilizada para la orientación del escáner. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 7.5. Imagen del conjunto formado por trípode, la cabeza de rotación y el escáner. 147 7.6. Imagen de la mesa de rotación situada en el entorno de captura con iluminación controlada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 7.7. Controlador de la mesa de rotación de la marca ISEL . . . . . . . . . . . . . 148 7.8. Imagen del patrón de calibración centrado sobre el plato giratorio . . . . . . 149 7.9. Flexos utilizados para el control de iluminación de la escena. . . . . . . . . . 150 7.10. Entorno de captura con iluminación controlada . . . . . . . . . . . . . . . . 150 7.11. Monitor de video Sony PVM-14L1 utilizado para visualizar la señal de video del escaner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 7.12. Controles accesibles en el frontal del monitor y conexiones de entrada y salida disponibles en la parte trasera del mismo . . . . . . . . . . . . . . . . . . . . 152 7.13. (a). Imagen captada por la cámara del escáner que es mostrada en el monitor de video;(b). Imagen a la que realmente se le aplica el proceso de triangulación153 7.14. Ordenador que se ha utilizado para el sistema de adquisición de super…cies . 154 7.15. Esquema general que muestra las interconexiones entre los elementos que componen el sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.16. Ejemplo de caras con topología Non-manifold. . . . . . . . . . . . . . . . . . 157 7.17. Ejemplo en donde la cara (V1 V2 V3) es una cara redundante. . . . . . . . . 158 7.18. Ejemplo de caras cruzada en donde la arista (V2 V3) de la cara (V1 V2 V3) está cruzada con la arista (V1 V4) . . . . . . . . . . . . . . . . . . . . . . . . 158 7.19. Ejemplo de caras inestables en la modalidad de normales erróneas . . . . . . 158 vi 7.20. Ejemplo de caras inestables en la modalidad de caras giradas . . . . . . . . . 7.21. Ejemplo de dos caras que intersectan entre sí. . . . . . . . . . . . . . . . . . 7.22. Ejemplo de “folded faces”, es decir, caras adyacentes que comparten una arista y con un ángulo entre ellas muy pequeño. . . . . . . . . . . . . . . . . . . . . 7.23. Figura 123.- (a) y (b) Estado anterior y posterior, respectivamente, al cosido de bordes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii 159 159 160 161 Índice de tablas 2.1. Nueve criterios para elegir un equipo de digitalizacion adecuado . . . . . . . 10 3.1. Selección de un subconjunto de imágenes del banco de imágenes de Berckley utilizado para el entrenamiento del algoritmo propuesto por Roth et al [?] . . 3.2. Distancia media por malla en función del algoritmo de image inpainting . . . 3.3. Distancia media por malla en función del algoritmo de image inpainting . . . 3.4. Representación de la distancia media por hueco en cada malla . . . . . . . . 65 75 76 81 6.1. Generación de huecos arti…ciales en 20 vistas parciales de la base de datos . 118 6.2. Comparación de algunas mallas rellenas con cada uno de los tres algoritmos aplicados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 6.3. Valor máximo y mínimo de la distancia entre nodos para los mapas de distancias133 6.4. Mapas de distancias entre las mallas originales y las mallas reconstruidas . . 134 7.1. 7.2. 7.3. 7.4. 7.5. 7.6. Estudio de la ocupacion optima . . . . . . . . . . . Generacion de la imagen de rango sin rasterizacion Generación de la imagen de rango con rasterización Extensión de la porción de malla . . . . . . . . . . Resultados experimentales para mallas completas . Estudio de la curvatura antes y después del relleno viii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 173 184 188 199 202 Capítulo 1 Introducción 1.1. Motivo Prácticamente desde los inicios de su historia, el hombre, haciendo uso de su inteligencia, ha tratado de representar el entorno que le rodea para los …nes más diversos: expresión artística, representaciones religiosas, esquemas de fabricación, plani…cación bélica, transmisión y almacenamiento de conocimientos o ideas, etc. Para tales representaciones, ha empleado multitud de técnicas a lo largo de la historia, tales como: pintura, escultura, dibujo, maquetas,etc. En una posible distribución cronográ…ca de esas técnicas, saltaría a la vista la in‡exión que suposo la irrupción de los ordenadores en el siglo XX, lo que da lugar a una revolución en los métodos de representación y modelado existentes hasta el momento. Los ordenadores se han convertido en una herramienta, actualmente imprescindible, en el campo de la representación y modelado, principalmente en lo relativo a la fabricación y construcción, en donde, permiten un estudio más preciso y detallado, así como una simulación del comportamiento en diversos escenarios, de la entidad que se desea fabricar o construir. Además, la posibilidad de creación de mundos virtuales, recreados en un ordenador, en donde experimentar, estudiar, recrear, divertirse, suponen un potencial de in…nitas posibilidades. Ahondando aun más en las aplicaciones relacionadas con la fabricación, el modelado CAD y la fabricación asistida CADCAM ha permitido un cambio cuantitativo y cualitativo colosal en la producción industrial. Y además, se han añadido posibilidades muy interesantes tales como la ingeniería inversa, lo que permite, partiendo de un objeto fabricado o real, volver hacia atrás en su esquema de fabricación hasta llegar al concepto, la idea, el modelo inicial, el cual puede ser inyectado de nuevo en la cadena de producción, con las mismas características o con características mejoradas. Los métodos para la representación o modelado de objetos reales por ordenador, han ido evolucionando a lo largo del tiempo. Así, inicialmente solo se podían introducir en el ordenador, de forma relativamente manual, las medidas tomadas en el mundo real, mediante los métodos de medición existentes. Las técnicas que supusieron un gran cambio fueron las que aplicaban una serie de sensores especí…cos que permitían capturar la realidad y enviarlas de forma automática al ordenador, tales como: sensores de rango o escáneres 3D. El uso de esas técnicas se ha extendido a multitud y variados campos como: fabricación, ingeniería inversa, reconocimiento, conservación del patrimonio, bases de datos de objetos, creación de mundos virtuales con elementos reales, efectos especiales, etc. Dentro de ese contexto, antes del planteamiento de esta tesis, en el grupo al que pertenezco se estaba desarrollando el proyecto Diseño, desarrollo y aplicación de técnicas de reconstrucción y visualización de escenas 3d complejas mediante sensores de rango, en el que se 1 CAPÍTULO 1. INTRODUCCIÓN 1.1. MOTIVO de…nían como objetivos la construcción de un sistema de reconocimiento de escenas 3D formado por un sensor de rango, un brazo robot y una línea de montaje sobre la que pasarían los conjuntos objetos a reconocer. En ese proyecto se desarrolló un algoritmo de segmentación y reconocimiento, con el que se obtuvieron unas tasas de éxito elevadas. La idea era que tras el proceso de reconocimiento se le mandaban al robot que coge las piezas, las consignas adecuadas para que fuese adaptando sus movimientos según las necesidades requeridas por la escena, ya conocida. Para realizar el reconocimiento era necesario disponer de una base de datos 3D de todas las posibles objetos a reconocer. La creación de esa base de datos fue llevada a cabo mediante el empleo del adecuado equipo de captura. Esta tarea consistió en mi principal contribución al desarrollo de dicho proyecto. El inconveniente que se comprobó que presentaban estos procedimientos de reconocimiento es que se basan en la búsqueda y comparación de valores dentro de bases de datos de objetos. Por tanto, si ya de por sí son algoritmos muy costosos computacionalmente, a medida que el tamaño de la base de datos aumenta, el tiempo de cálculo alcanza valores muy elevados. Por esto, se hace muy difícil la aplicación de estos métodos en sistemas que requieran un reconocimiento en tiempo real. Seguidamente se continuó con el proyecto Integración de sensores visuales de rango y de radiofrecuencia aplicada a tareas de reconocimiento de objetos en entornos de fabricación automatizada que añadía como elemento innovador al sistema anterior la incorporación de etiquetas y sensores RFID. Con esto se consiguía que el sistema descrito anteriormente fuese asistido por esta nueva tecnología y se consiguiesen unos tiempos de proceso inferiores a los anteriores. Este proyecto dio lugar a mis primeros trabajos de investigación dentro del periodo de investigación de mis cursos de doctorado. En concreto, consistieron en el análisis global de los resultados y en la obtención de medidas cuantitativas de la mejora que suponía este último proyecto con respecto al anterior. Tras ese análisis se concluyó que la hipótesis por la que se planteaba la introducción del RFID, reducción de tiempos de ejecución y mejoras de las tasas de reconocimiento, podía ser validada. Sin embargo también se observó que la mejora era menor de la que cabría esperar en un principio. Por ello se decidió intentar mejorar el método, comenzando en primer lugar por la modi…cación del algoritmo de reconocimiento. El algoritmo de reconocimiento estaba basado en el uso de modelos esféricos de mallas. Estos modelos, si se estudian a fondo, a pesar de ofrecer buenos resultados, presentan muchas limitaciones en cuanto a la forma y constitución de los objetos y escenas con que se trabaje. Por tanto, se planteó como siguiente objetivo el planteamiento de nuevos modelos de mallas que no fuesen esféricos. Y, a partir de ahí, se decidió introducirse en el campo del modelado por mallas triangulares, comenzando por el estudio de las técnicas de reconstrucción de super…cies 3D de objetos reales. La creación de modelos 3D de objetos reales con cierta precisión no es una tarea trivial. Además, para llevarla a cabo no son válidas las técnicas tradicionales de modelado. En tales situaciones, se hace imprescindible el uso de sensores de rango o escáneres 3D debido a su relativa independencia de la geometría adquirida y al corto tiempo de adquisición. La reconstrucción completa de la super…cie 3D a partir de la información adquirida con un escáner 3D puede dividirse en varias etapas. Una primera etapa de registro de las diferentes vistas parciales, en la que se calcula un sistema de referencia común para todas ellas. La siguiente etapa es la integración de las vistas parciales con el …n de obtener una única representación matemática de la super…cie. En la siguiente etapa se procesará la super…cie 3D obtenida. Este procesado puede incluir operaciones de suavizado, remallado, detección y 2 CAPÍTULO 1. INTRODUCCIÓN 1.2. OBJETIVOS eliminación de elementos erróneos, rellenado de huecos, etc. Cuando una malla se encuentra cerrada, suponiendo que no existen caras o bordes mal de…nidos. Existen multitud de aplicaciones que necesitan que la malla sea hermética: sistemas de prototipado rápido, sistemas de metrología, modelos 3D para aplicaciones de visión por computador o para gra…cas por computador, etc. La razón fundamental de que la malla no sea hermética es la aparición de huecos en ella. Es, por tanto, de vital importancia la fase de rellenado de huecos para así conseguir una malla cerrada. Existen dos hechos que hacen que aparezcan huecos en una malla. El primero es que en el proceso de registro y/o integración se haya producido alguna pérdida o rede…nición incorrecta de la malla, por ejemplo, algún triángulo que falte por de…nir. Este tipo de huecos no suponen un problema y suelen rellenarse de forma directa sin tener en cuenta la información geométrica que rodea al hueco. El segundo hecho es la falta de información geométrica debido a oclusiones o sombras en los objetos. En este caso los huecos suelen ser de mayor tamaño que los anteriores. Además, cuando se trabaja con objetos de forma libre, con cierto nivel de detalle, pueden encontrarse huecos de cuyas super…cies podrían ser muy complejas (por ejemplo, con grandes variaciones en la curvatura), y su rellenado se convierte en un problema de gran di…cultad. Es por esto que, aunque la búsqueda de una solución haya sido abordada por muchos autores, no existe aún un procedimiento general para todas las posibles situaciones que se pueden presentar. Por ello se requiere normalmente de la intervención del usuario para poder evaluar el problema y no existe un algoritmo automático que le dé solución. Dentro del proceso de reconstrucción 3D, el relleno de huecos es en la actualidad un tema su…cientemente abierto, en el que todavía el factor humano es determinante y que despierta un gran interés desde un punto de vista investigador. Todo ello justi…caba que se plantease el desarrollo de esta tesis con el objetivo de la resolución de este problema. 1.2. Objetivos En esta tesis se aborda por tanto el problema del relleno de huecos. Para su abordaje y resolución se plantea el desarrollo de diferentes técnicas con las que se pretende alcanzar los siguientes objetivos principales: Que permitan el funcionamiento de forma automática. Que sean válidas para diversas situaciones y tipos de datos. Para tal …n se establece una metodología de trabajo estructurada en los siguientes puntos: 1. Documentación bibliográ…ca: Recopilación de textos, artículos y referencias en general especializados en los temas propuestos. 2. De…nición del/de los algoritmo/s de rellenado: Dado que se observa que los algoritmos de reparación de imágenes son similares a los de rellenado y son bastante robustos, se plantea su aplicación en el relleno de huecos en objetos 3D. 3. Adaptación del/de los algoritmo/s para trabajar con objetos 3D: Para ello es necesario adaptar la forma de representación de los datos 3D para que sean entendibles por esos algoritmos. Ya se ha trabajado en este aspecto, proponiendo un método basado en la proyección de los datos 3D sobre un plano y su almacenamiento en cuadrículas o píxeles de un ancho determinado. Lo que así se obtiene, con la correspondiente normalización, 3 CAPÍTULO 1. INTRODUCCIÓN 1.3. ESTRUCTURA DE LA TESIS es una imagen en niveles de grises que almacena la información de la super…cie 3D desde un punto de vista determinado (imagen de rango). Otro factor que hay que estudiar es el tamaño de la imagen de rango, en número de pixeles, en función de la resolución de la malla con que se está trabajando. Habrá que determinar un valor experimental óptimo que dé lugar a una imagen de rango que represente adecuadamente la información 3D de la vista parcial. 4. Prueba del/de los algoritmo/s sobre vistas parciales con huecos generados arti…cialmente: En primer lugar se reunirá un conjunto de vistas parciales sobre las que probar los algoritmos. En este caso particular, el problema de la elección del eje de proyección a partir del que generar la imagen de rango está resuelto. Los huecos, que se generen arti…cialmente, tendrán formas y tamaños variados. Los resultados podrán ser comparados con las vistas parciales, lo que proporcionará una medida de cuán e…caz y robusto es el método que se proponga. 5. Adaptación del/de los algoritmo/s para modelos completos: En este punto se pretende conseguir un método de relleno automático de huecos en mallas completas. Cada una de estas mallas es obtenida tras la digitalización y fusión de las diferentes vistas de un objeto real. Pueden existir diversas causas para la aparición de huecos, tales como: auto-oclusiones debido a la forma del objeto; brillos en la super…cie con la consiguiente pérdida de información; limitaciones en el posicionamiento del escáner con la consiguiente falta de datos reales, etc. Para plantear el rellenado en estas situaciones, se habrán de estudiar las siguientes particularidades: Cómo efectuar la proyección de cada zona a rellenar sobre un plano. Qué tamaño habrá de tener la imagen con respecto al tamaño del objeto. Qué resolución habrá de tener la imagen de rango. En qué orden proceder al rellenado, cuando se presentan varios huecos. Qué limitaciones presenta este método, en cuanto a tamaño del hueco, concavidad o convexidad de la super…cie.etc. En el estudio de estas situaciones se utilizarán datos 3D procedentes de la digitalización de esculturas ubicadas en el Museo Nacional de Arte Romano de Mérida. 1.3. Estructura de la tesis El trabajo desarrollado en la tesis se va a vertebrar utilizando 3 capítulos y 3 anexos. En primer lugar, en el capítulo 2 se va a contextualizar el problema tratado en la tesis, haciendo un repaso por los conceptos básicos de la creación de modelos 3D de objetos reales. En este capítulo se comenzará tratando las etapas básicas que componen dicho proceso de creación (adquisición, registro, representación, integración, procesado), y se acabará con una explicación detallada del problema que se aborda en la tesis: el relleno de huecos. Además de el análisis inicial del problema se expondrá una extensa revisión de las diversas técnicas de relleno de huecos que pueden encontrarse al sondear el estado actual del arte de esas técnicas. En el capítulo 3 se comenzará, tras un primer planteamiento del método ideado de relleno, con una revisión de técnicas de restauración de imágenes disponibles en la literatura 4 CAPÍTULO 1. INTRODUCCIÓN 1.4. CONTRIBUCIONES DE LA TESIS especializada. Seguidamente, se propone la veri…cación del método desarrollado inicialmente aplicándolo únicamente a vistas parciales de objetos. Para ello, van a desarrollarse cada una de las etapas que componen dicho método en las diferentes secciones del capítulo. Finalmente, se tratará de efectuar las pertinentes mediciones que demuestren si puede ser validada la técnica de relleno que se ha ideado. Para terminar, se expondrán los diferentes resultados globales que se han alcanzado para vistas parciales. Una vez validado el método, en el capítulo 4, se propone su adaptación para que sea aplicado en en mallas 3D completas. El nuevo método se va a estructurar prácticamente en las mismas etapas que en el capítulo anterior. Por tanto, el capítulo se dividirá en las mismas etapas que en el caso de vistas parciales, pero en cada una de ellas se irán explicando las pertinentes modi…caciones que han de aplicarse por las particularidades que con…eren el uso de mallas 3D completas. Al …nal del capítulo se expondrán también los resultados globales que se han obtenido y las conclusiones que de ellos se extraen. Para concluir la tesis se enumerarán las conclusiones globales que han emanado a lo largo del desarrollo del trabajo de la tesis y se lanzarán una serie de sugerencias e ideas sobre trabajos futuros, algunos ya comenzados y otros que quedan en el tintero para continuar trabajando en la resolución del problema de la tesis o bien para extender la idea planteada a otros campos de aplicación. Al …nal de la memoria se incluyen 3 anexos que en los que se expondrán una larga lista de …guras y grá…cos con los resultados particulares obtenidos tanto en la aplicación con vistas parciales como con objetos completos, así como una exposición de las principales partes del código desarrollado, respectivamente. 1.4. Contribuciones de la tesis Los trabajos desarrollados desde el inicio del periodo de doctorado hasta la redacción …nal de esta tesis, han dado lugar a diversas publicaciones y asistencias a congresos, que se enumeran a continuación: Publicaciones (libros): Carlos Cerrada, Santiago Salamanca, Emiliano Pérez, José A. Cerrada e Ismael Abad, Fusion in 3D Vision Techniques and RFID Technology for Object Recognition in Complex Scenes, Proceedings del IEEE International Symposium on Intelligent Signal Processing, 6 páginas, ISBN: 1-4244-0829-6. Emiliano Pérez Hernández, Santiago Salamanca Miño, Antonio Adán Oliver, Carlos Cerrada Somolinos, Pilar Merchán García, Inés Tejado Balsera, Aplicación de algoritmos de reparación de imágenes al rellenado de huecos en mallas 3D, Acta de las XXVIII Jornadas de Automática, 9 páginas, ISBN: 978–84–690–7497–8. Vicente Domínguez González, Apolonio Oliver del Hierro, Antonio Adán Oliver, Santiago Salamanca Miño, Emiliano Pérez Hernández, Carlos Cerrada Somolinos, Creación de modelos completos 3D sobre piezas escultóricas, Acta de las XXVII Jornadas de Automática, 9 páginas, ISBN: 978–84–690–7497–8. Publicaciones (revistas): 5 CAPÍTULO 1. INTRODUCCIÓN 1.4. CONTRIBUCIONES DE LA TESIS Emiliano Pérez, Santiago Salamanca, Pilar Merchán, Antonio Adán, Carlos Cerrada, Inocente Cambero, A Robust Method for Filling Holes in 3D based on Image Restoration, Advanced Concepts for Intelligent Vision Systems 2008, Lecture Notes in Computer Science, Juan-LesPins, Francia, Octubre 2008. Carlos Cerrada, Santiago Salamanca, Emiliano Pérez, J. A. Cerrada, Ismael Abad, Improved Method for Object Recognition in Complex Scenes by Fusioning 3D Information and RFID Technology: Performance Analysis, IEEE Transaction on Instrumentation and Measurement (ISSN: 0018-9456), Vol. 58, Num:10, pp. 34733480, 2008. Santiago Salamanca, Antonio Adán, Carlos Cerrada, Miguel Adán, Pilar Merchán, Emiliano Pérez, Reconocimientos de Objetos de Forma Libre a Partir de los Datos de Rango de una Vista Parcial Usando Cono Curvaturas Ponderadas, Revista Iberoamericana de Automática e Informática Industrial (RIAI), Vol. 4, pp. 95106, 2007. Asistencias a congresos: E.Pérez, S.Salamanca, C.Cerrada, P. Merchán, A. Adán, Técnica de relleno de huecos en mallas 3D completas mediante algoritmos de restauración de imagen, Simposio CEA de Visión por computador y modelado 3D, Badajoz (Spain), Julio 2011. E.Pérez, S.Salamanca, C.Cerrada, Un método robusto para relleno de huecos en mallas 3D basado en algoritmos de restauración de imágen, 7th Workshop Robocity 2030, Madrid (Spain), Octubre 2010 Emiliano Pérez Hernández, Santiago Salamanca Miño, Carlos Cerrada Somolinos, Pilar Merchán García, Antonio Adán Oliver, Revisión de Técnicas de Relleno de Huecos en Mallas 3D, XXXI Jornadas de Automática, Jaén (Spain), Septiembre 2010. A. Adán, S. Salamanca, P. Merchán, T. Nogales, V. Domínguez, R. Chacón and E. Pérez, Digitalization and 3D Reconstruction of Aeneas Group, The 9th International Symposium on Virtual Reality, Archaeology and Cultural Heritage VAST (2008), The Eurographics Association 2008, Braga (Portugal), Diciembre 2008. A. Martin, E. Perez, S. Salamanca, P. Merchan and A. Adan, Heritage pieces integration in autonomous augmented reality systems: key problems and solutions, The 9th International Symposium on Virtual Reality, Archaeology and Cultural Heritage VAST (2008), The Eurographics Association 2008, Braga (Portugal), Diciembre 2008. Emiliano Pérez, Santiago Salamanca, Pilar Merchán, Antonio Adán, Carlos Cerrada, Inocente Cambero, A Robust Method for Filling Holes in 3D based on Image Restoration, Advanced Concepts for Intelligent Vision Systems 2008, Juan-LesPins (Francia), Octubre 2008. Santiago Salamanca, Pilar Merchán, Emiliano Pérez, Antonio Adán, Carlos Cerrada, Filling Holes in 3D Meshes using Image Restoration Algorithms, Four International Symposium on 3D Data Processing, Visualization and Transmission, Atlanta (Georgia,EEUU), Junio 2008. 6 CAPÍTULO 1. INTRODUCCIÓN 1.4. CONTRIBUCIONES DE LA TESIS Carlos Cerrada, Santiago Salamanca, Emiliano Pérez, José A. Cerrada e Ismael Abad, Fusion in 3D Vision Techniques and RFID Technology for Object Recognition in Complex Scenes, IEEE International Symposium on Intelligent Signal Processing, Alcalá de Henares (España), Octubre 2007. Emiliano Pérez Hernández, Santiago Salamanca Miño, Antonio Adán Oliver, Carlos Cerrada Somolinos, Pilar Merchán García, Inés Tejado Balsera, Aplicación de algoritmos de reparación de imágenes al rellenado de huecos en mallas 3D, XXVIII Jornadas de Automática, Huelva (España), Septiembre de 2007. Vicente Domínguez González, Apolonio Oliver del Hierro, Antonio Adán Oliver, Santiago Salamanca Miño, Emiliano Pérez Hernández, Carlos Cerrada Somolinos, Creación de modelos completos 3D sobre piezas escultóricas, XXVIII Jornadas de Automática, Huelva (España), Septiembre de 2007. 7 Capítulo 2 Conceptos básicos de la creación de modelos 3D de objetos reales Dentro del ámbito del que trata esta tesis, reconstruir un objeto tridimensional, se re…ere a obtener una representación matemática del mismo para poder ser almacenado, visualizado o procesado. Los métodos para la reconstrucción de objetos tridimensionales han incrementado su velocidad y precisión considerablemente en los últimos años gracias a diversos avances cientí…cos, tales como el desarrollo de lásers, chips CCD, y el aumento de velocidad de trabajo de los procesadores. La creación de modelos tridimensionales es de utilidad para un amplio rango de aplicaciones tales como fabricación, simulación virtual, exploración con …nes cientí…cos, medicina, marketing, etc. Se exponen a continuación algunas de las más relevantes [Cur97]: Visión por computador: Las técnicas de visión por computador tienen como …n último extraer propiedades del mundo a partir de diversas fuentes de información tales como: una imagen o conjunto de imágenes, secuencias de video, digitalizadores o escáneres, etc . Existen multitud de aplicaciones de la visión arti…cial, entre las que cabe destacar las siguientes: control de procesos (p .ej.: operación automática de robots industriales, guiado de vehículos autónomos); evaluación automática de la calidad de piezas; detección de eventos (p. ej.: vigilancia o conteo de personas); modelado de objetos o entornos (p. ej.: análisis de imágenes médicas o modelado topográ…co); diseño de dispositivos de interacción humana con las máquinas, etc. Grá…cas por ordenador: En ellos se incluyen las técnicas desarrolladas para generar imágenes visuales sintéticamente e integrar o cambiar la información visual y espacial adquirida del mundo real. Actualmente los grá…cos por ordenador se aplican en multitud de aspectos de la vida cotidiana tales como información sobre la predicción del tiempo, investigaciones médicas, efectos especiales en cine, creación de productos para la industria del videojuego, realidad virtual, etc. Ingeniería inversa: Algunos componentes para la fabricación de un producto se diseñan actualmente mediante sistemas CAD. Sin embargo, en algunos casos, se dispone de un componente mecánico del que no existe un modelo 3D previo para poder regenerarlo. Esta situación se da habitualmente en componentes de máquinas que fueron diseñadas antes del uso sistemático de CAD en fabricación, así como en componentes que fueron ajustados manualmente para que encajasen en algún sistema. Si alguno de estos componentes se deteriora y no existen repuestos, puede ser útil la digitalización de la pieza de forma precisa para poder fabricarlo de nuevo. 8 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES Inspección: Una vez que un fabricante ha creado un modelo 3D en el ordenador de un componente mediante digitalización de un objeto real o mediante diseño CAD, dispone de un prototipo para comenzar la fabricación en cadena del producto. En determinadas tipos de componentes las dimensiones del producto a fabricar solo acepta determinadas tolerancias con respecto al modelo CAD. En este caso, la digitalización de la pieza puede ser de utilidad para determinar qué zona convendría modi…car del modelo CAD para que el proceso de fabricación produzca resultados aceptables. Estudio y conservación de piezas del Patrimonio Cultural: Las piezas de museo representan un tipo de objetos que son de interés para diversos colectivos: historiadores, cientí…cos, educadores, etc. Tradicionalmente, para observar estos objetos se ha hecho necesario visitar físicamente el museo u obtener imágenes o secuencias de video que no ofrecen ninguna interactividad. Mediante la digitalización de estas piezas puede conseguirse que multitud de valiosas esculturas estén disponibles para su visualización y estudio. Para los cientí…cos, estos modelos virtuales ofrecen la oportunidad para estudiar y medir determinados parámetros de forma remota y mediante el uso de potentes herramientas digitales. Medicina: Dentro de la medicina existen multitud de aplicaciones pontenciales de la digitalización de piezas. Así, por ejemplo, en el diseño de prótesis se requiere ajustar las dimensiones de una pieza a un paciente determinado con alta precisión. Los cirujanos plásticos pueden utilizar el cuerpo digitalizado de un paciente para simular y visualizar los resultados de una cirujía. En los tratamientos de radioterapia, puede ser de utilidad el uso de un modelo del paciente para guiar al médico en la dirección de aplicación de radiación de forma precisa. Otras aplicaciones: compras a distancia, al permitir añadir modelos 3D en los catálogos de productos, con las posibilidades exploración que ello ofrece; o el diseño, revisión y corrección de prototipos de productos. Para capturar un objeto completo se ha de realizar un muestreo de un conjunto de puntos discretos de su super…cie. Como resultado se obtiene un volumen de datos que debe ser e…cientemente tratado con determinados algoritmos para generar un modelo 3D con su…ciente precisión. Actualmente, gracias al desarrollo de técnicas de digitalización y al abaratamiento del hardware especializado, se ha extendido el uso de sensores de rango o escáneres 3D debido a su relativa independencia de la geometría adquirida y al corto tiempo de adquisición. La reconstrucción completa de la super…cie 3D a partir de la información adquirida con un escáner 3D puede dividirse en las siguientes etapas: Adquisición: Por razones obvias, cuando se adquiere la super…cie de un objeto, se dispone de una sola vista parcial. Para obtener la super…cie completa habrá que adquirir varias vistas parciales. Registro: Se realiza la alineación de las diferentes vistas parciales, y se calcula un sistema de referencia común para todas ellas. Integración: Se obtiene una única representación de toda la super…cie, sin distinguir entre las vistas parciales. 9 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.1. ADQUISICION Procesado: En esta etapa se incluyen operaciones tales como suavizado, remallado, detección y eliminación de elementos erróneos, relleno de huecos, etc. A lo largo de este capítulo se van a explicar cada una de estas fases de forma más detallada. De esta forma, en la sección 2.1, se enumerarán y clasi…carán diversos sistemas de digitalización que se encuentran disponibles para efectuar la primera etapa; en la sección 2.2 se describirán brevemente las técnicas para el registro de vistas parciales; en la sección ?? se analizarán los modelos de representación de super…cies más usuales, centrándonos en el que se ha utilizado particularmente, en la presente tesis, el modelo de malla triangular. A continuación, en la sección 2.4 se describirán las operaciones más comunes que se aplican en la etapa de procesado, para …nalizar en la sección 2.5 con un exhaustivo análisis de las técnicas de relleno de huecos, que es el principal objeto de estudio de esta tesis. 2.1. Adquisicion Como se mencionó en el apartado anterior, el hardware para la digitalización 3D ha evolucionado considerablemente en los últimos años, aumentando la velocidad y precisión de digitalización y disminuyendo los costes. En el mercado se encuentran disponibles diferentes tipos de escaneres 3D cada uno de ellos con unas características especí…cas. En [Pav07] proponen una lista de nueve criterios a tener en cuenta a la hora de elegir un sistema de digitalización 3D (ver tabla 2.1). Tabla 2.1: Nueve criterios para elegir un equipo de digitalizacion adecuado No Criterio 1 Coste 2 Material a digitalizar 3 Tamaño del objeto a digitalizar 4 Equipo transportable 5 Precisión 6 Adquisición de textura 7 Productividad de la técnica 8 Necesidad de personal especializado 9 Adaptación de los datos generados a los estandares Una posible clasi…cación de los sistemas de digitalización 3D sería teniendo en cuenta si hay o no contacto con la super…cie a adquirir, y de esta forma tendríamos los siguientes grupos: Sistemas con contacto Sistemas sin contacto En los siguientes puntos se describirán brevemente algunos de los métodos disponibles dentro de cada uno de los grupos mencionados. 10 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.1. ADQUISICION Figura 2.1: Imagen de una cabezal de digitalización en continuo SP 600 de Renishaw 2.1.1. Sistemas con contacto Estos sistemas de digitalización 3D son los primeros que surgieron. Mediante ellos se obtienen las coordenadas 3D de los puntos de una super…cie gracias al desplazamiento de una punta sobre la misma. El primer inconveniente que salta a la vista es la lentitud con que se adquiere la super…cie de un objeto. Además, para emplear estos sistemas por contacto, se necesita que las piezas tengan la rigidez su…ciente para que no se deformen por el contacto de la punta. Por otra parte, debido a la geometría de las puntas, normalmente esférica, es imposible digitalizar algunas ranuras y ángulos interiores. En la actualidad existen cabezales de digitalización en continuo, como el que se muestra en la …gura 2.1, que permiten una velocidad de adquisición mayor respecto a los convencionales, al no tener que separarse de la super…cie a digitalizar. Otro tipo de sistema de digitalización 3D con contacto son los brazos articulados de operación manual, como el mostrado en la …gura 2.2. Estos poseen una elevada precisión; pero por el contrario tienen una velocidad de adquisición de datos muy baja, ya que la punta necesita ser llevada manualmente cada punto que se quiera digitalizar, con lo cual la digitalización de un objeto de tamaño medio resulta muy costosa. En cuanto a su aplicación, principalmente se utilizan en la veri…cación dimensional de piezas industriales (control de calidad). 11 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.1. ADQUISICION Figura 2.2: Representación de un equipo de digitalización mediante brazo articulado. 2.1.2. Sistemas sin contacto La principal ventaja de los digitalizadores 3D sin contacto es que tienen una velocidad de adquisición de datos muy superior a las de los que requieren contacto. Una posible clasi…cación de este tipo de digitalizadores es la basada en la técnica de visión que utilicen. De esta forma se tendrán los siguientes grupos, que serán explicados a continuación: Técnicas de visión pasiva Técnicas de visión activa Técnicas de visión pasiva El sistema visual humano permite obtener información de profundidad mediante la fusión de dos escenas monoculares, que son las escenas que captan cada uno de los ojos. Este sistema permite al hombre “ver en 3D” y es conocido como principio de visión estereoscópica. Así pues, dicho principio se basa en utilizar dos puntos de vista de un mismo objeto para encontrar las coordenadas tridimensionales. Para determinar la posición de un punto a partir de dos imágenes es necesario tener un modelo del sistema óptico utilizado. Este principio general puede mejorarse con modelos de cámaras más elaborados o utilizando más de dos cámaras, lo que se conoce con el nombre de fotogrametría. La visión estereoscópica presenta el interés de poder dar la posición en 3D de puntos sobre las super…cies independientemente de la iluminación especí…ca (visión pasiva). Estereoscopios El objetivo de este método es la extrapolación de la información geométrica de un objeto a partir de un par de fotografías tomadas desde ángulos y posiciones relativas conocidas, simulando la visión humana. Estos sistemas tienen gran importancia en el campo de la robótica y la visión por ordenador. Como ventajas han de resaltarse la posibilidad de captura de geometría y textura simultáneamente, el bajo coste y la transportabilidad. Por contra, las desventajas del sistema son la baja resolución que ofrecen y la necesidad de una calibración adecuada para su correcto funcionamiento. 12 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.1. ADQUISICION Digitalización mediante video Esta es una variante del estereoscopio, pero en lugar de dos cámaras se utiliza una cámara de video que captura una secuencia de imágenes de diferentes vistas del objeto. Para una correcta adquisición, el objeto ha de permanecer estático sin ninguna parte móvil. Este método utiliza algoritmos similares a los utilizados en estereoscopía y es muy sensible al ruido de la imagen de video. La idea básica del sistema es la identi…cación de puntos comunes en la secuencia de imágenes y el registro de esos puntos en una escena virtual tridimensional. En ocasiones se producen errores debido a que no hay un conocimiento previo de la posición de la cámara y el objeto. Como ventajas de esta técnica hay que resaltar el bajo coste, lo transportable que es el equipo y la capacidad de capturar textura y geometría. La desventaja principal es la baja resolución en la captura de la geometría del objeto. Adquisición mediante la detección de la silueta Esta técnica se basa en la captura de una sucesión de fotografías alrededor de un objeto, desde diferentes ángulos, contra un fondo que ofrezca un gran contraste con respecto a éste. A partir de esta serie de fotografías se calcula la geometría usando las siluetas extraídas de cada una de ellas (…gura 2.3). En algunos sistemas desarrollados recientemente se ha añadido el uso de la informaicón de textura para la correción y mejora de los datos geométricos calculados. Esta técnica ofrece una alta productividad y un relativo bajo coste. Otra ventajas que ofrecen son la transportabilidad y facilidad de uso del sistema. La principales desventajas son la baja-media resolución que alcanza y las limitaciones para capturar las concavidades de algunos objetos. Adquisición mediante textura La textura de los objetos puede ser una fuente de información signi…cativa sobre la geometría de una super…cie. Se sabe que el sistema visual del hombre puede identi…car fácilmente la geometría de una super…cie cuando la textura es homogénea. La idea de este método es la identi…cación de zonas texturadas y encontrar la posible transformación para determinar la variación de la super…cie. Es una técnica fotográ…ca, de bajo coste pero con baja precisión y aplicaciones limitadas (captura de tejidos, piel humana, etc). Digitalización mediante sombreado Las sombras son una fuente de información en la percepción de la profundidad. Muchos investigadores han intentando simular la manera en que el sistema de visión humana utiliza la información de las sombras para percibir la 13 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.1. ADQUISICION Figura 2.3: Izquierda: Cono de visión limitado por la silueta de la imagen y que contiene al objeto. Derecha: Intersección de varios conos de visión. profundidad. Este método realiza la captura del objeto desde un punto de vista …jo. Lo que se varía es la posición de la fuente de luz lo que da lugar a una variación de la sombra sobre la super…cie del objeto. Así, los algoritmos obtienen la geometría de la super…cie del objeto mediante varias fotos con diferentes condiciones de iluminación. Es un método muy simple, con un muy bajo coste y que puede capturar la textura y geometría del objeto. Las principales desventajas son que no puede capturar la textura en las zonas con sombra y que tienen muy baja precisión. Hay una variante de este método, con mejoras en la precisión, que combina esta idea con la del esteoroscopio. Adquisición mediante fotometría Esta es una variante de la adquisición mediante sombreado. En este método se capturan fotos del objeto desde un punto de vista …jo y se van variando las condiciones de iluminación. En este caso, se utilizan objetos de referencia, tales como la posición de la fuente de luz, para la calibración del sistema. Es un sistema de bajo coste, pero que requiere de unas condiciones de iluminación controladas por lo que se emplazan en laboratorios, eliminando así la característica de la transportabilidad. Adquisición mediante enfoque En los ultimos años se ha estado investigando para calcular la geometría de una escena a partir de la profundidad de campo de una foto. Se trata de una técnica recursiva basada en la toma de fotografías de un objeto mientras se varía continuamente el plano de enfoque. Sabiendo la posición del plano de enfoque (a través del posicionamiento del sistema) puede determinarse la profundidad de los pixeles enfocados. De forma recursiva, el sistema va reconstruyendo la geometría del objeto foto a foto. Es una técnica que ofrece una resolución y precisión limitadas. Tiene especial aplicación en combinación con imágenes microscópicas. El coste del sistema es relativamente alto, aunque es muy simple y fácil de aplicar. Técnicas de visión activa Estás técnicas hacen intervenir una fuente de luz especí…ca para explorar el entorno. Mediante un emisor y teniendo en cuenta las características de la información recibida, se determina la profundidad de la escena. A continuación se exponen algunos sensores que utilizan técnicas de visión activa.: 14 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.1. ADQUISICION Figura 2.4: Digitalización mediante escaner láser: (a) Barrido del laser sobre el objeto; (b) malla poligonal del objeto digitalizado; (c) representación suavizada de la malla poligonal; (d) inclusión de la textura en la representación del objeto virtual. Escaneres láser Los sistemas de escaneado mediante láser contienen básicamente un emisor láser y un detector óptico. El emisor laser emite un haz con forma de línea o un patrón determinado sobre la super…cie de los objetos y el detector optico (normalmente una cámara digital) detecta esa línea o patrón en los objetos. Aplicando el principio de triangulación extrae la geométria de los objetos (…gura 2.4). La ventaja de utilizar emisores laser es que puede adquirir super…cies a largas distancias. Además, estos escaneres tienen una gran precisión en la medida de características geométricas del objeto. Como desventajas citar la dependencia con las características de la super…cie como la re‡ectancia o transparencia, así como el alto coste de estos equipos. Respecto a la productividad y la transportabilidad, éstas varían signi…cativamente en función del sistema utilizado. Escaneres de luz estructurada Este método se basa en la proyección de uno o varios patrones especí…cos sobre la super…cie de los objetos. A partir de las deformaciones de estos patrones se extrae la información geométrica de los objetos, tras haber aplicado el principio de triangulación. Los patrones pueden ser de diversas formas tales como simples franjas multicolores o complejos patrones con curvas que pueden estar codi…cados en función del tiempo (…gura 2.5). El método también puede ser acompañado de una adquisición de textura y da lugar a resultados de gran realismo y exactitud. Una de las ventajas de estos sistemas es la velocidad ya que en lugar de adquirir un punto están adquiriendo múltiples puntos simultáneamente. Por otra parte, hay que destacar como ventaja que determinados sistemas pueden utilizarse en movimiento. Puede decirse que, actualmente, la investigación en estos sistemas es un área muy activa. Adquisición mediante sombras Esta técnica es una variante de la adquisición mediante proyección de luz estructurada, aunque en este caso se produce una sombra mediante un objeto simple móvil, o con una fuente de luz móvil. A través de la deformación de la sombra proyectada sobre el objeto se extrae la información de la geometría de la super…cie. La principal ventaja de este método es el bajo coste pero, como es evidente, ofrece una baja precisión. 15 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.2. REGISTRO Figura 2.5: Digitalización mediante la proyección de luz estructurada multicolor. Figura 2.6: Proceso de extracción de características en un objeto 3D. 2.2. Registro Cuando se digitaliza un objeto, se obtienen varias vistas parciales del mismo, cada una de ellas con su sistema de coordenadas propio. En la fase de registro se calculan las transformaciones a aplicar a cada una de esas vistas parciales para obtener la representación de todas en un sistema de referencia común, y se procede a aplicarlas a cada malla. Por lo tanto el problema principal será obtener las matrices de rotación y traslación con su…ciente precisión para que el acople de unas vistas con otras, en el sistema de referencia común, se realice con un error mínimo. Esta etapa de registro es de gran importancia en los procesos de segmentación y reconocimiento de objetos. Para llevarla a cabo pueden darse las siguientes posibilidades: 1. No existe una estimación de las matrices de transformación. 2. Existe una estimación de las matrices de transformación. Para el primer caso se utiliza alguna característica de las super…cies adquiridas para efectuar la alineación. Estas características pueden ser primitivas básicas en que pueda descomponerse el objeto, descriptores númericos de ese conjunto de datos que representa el objeto 3D, o cualquier otro descriptor que se de…na y que pueda dar información su…ciente para efectuar una alineación con precisión. En la …gura 2.6 puede observarse un esquema del proceso de extracción de características en un objeto 3D. La situación más habitual es que exista una estimación de las matrices de transformación ya que los dispositivos con que suelen realizarse las adquisiciones posicionan el objeto frente al sensor, con lo que se conoce el movimiento que ha realizado. Un método muy extendido para el registro o alineación de dos nubes de puntos es el llamado Iterative Closest Point (ICP) [Bes92]. Este método calcula la transformación partiendo de dos vistas parciales en las que existe, como se ha dicho, una estimación de dicha transformación. Partiendo de un conjunto de datos de rango P y un subconjunto de éste Q, se calcula para cada punto p 2 P el punto q 2 Q más cercano a él. Una vez realizado este paso se evalúa la transformación T (rotación más traslación) que minimiza la suma S de los cuadrados de las distancias entre los 16 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN pares (p; q). Por último se aplica T sobre P y se repite el algoritmo hasta que S llegue a un mínimo. Para que se obtengan buenos resultados es necesario que el error en la estimación inicial de la transformación sea pequeño para que se llegue a una convergencia aceptable. A partir de esta idea básica han sido desarrolladas multitud de variantes de esta técnica. 2.3. Representación de los datos e integración En esta etapa se lleva a cabo la de…nición matemática de la super…cie que mejor se aproxime al conjunto de vistas parciales, convenientemente registradas.Existen muchos métodos que se pueden emplear para modelar los datos muestreados de una super…cie. A continuación se muestra una clasi…cación de esos métodos, agrupados según el nivel en el que se está trabajando: Datos en bruto: Nube de puntos Imagen de rango Sopa de polígonos Super…cies: Métodos basados en la de…nición analítica de la super…cie Mallas poligonales Sólidos: Aproximaciones de partición espacial Arbol BSP Geometría Constructiva de Sólidos (Constructive Solid Geometry, CSG) Sweep Estructuras de alto nivel: Grafo de la escena Esqueletos (Skeletons) Seguidamente se procederá a describir cada uno de estos métodos, haciéndolo de forma más exhaustiva en los tipos de representación que van a utilizarse en el método de relleno que se propone en la tesis: imagen de rango (sección 2.3.1) y mallas poligonales (sección 2.3.2). 17 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN (a) (b) (c) Figura 2.7: a) Fotografía de la escultura que va a digitalizarse; b) Nube de puntos estructurada; c) Nube de puntos desorganizada. 2.3.1. Datos en bruto Nube de puntos Se trata de un conjunto de puntos de…nidos por sus coordenadas, usualmente cartesianas X, Y y Z en un sistema de referencia determinado. Es el tipo de datos que producen los escaneres 3D tras el muestreo del entorno. A la hora de generar los datos, pueden darse dos formas distintas de almacenarlos (…gura 2.7): Nube de puntos desorganizada: Es una mera lista de todos los vértices que componen la nube que no contiene ninguna información topológica. Este tipo de datos suele ser generado por los Sistemas de medida de coordenadas de piezas. Nube de puntos estructurada: Es una nube de puntos con un orden determinado, usualmente dispuestos en una matriz que se genera en función de cómo hace el muestro el digitalizador, por lo que el orden en que están dispuestos incluye información topológica. Es la forma más común de generación de datos de los escáneres 3D. Las nubes de puntos son de utilidad en metrología e inspección de piezas, en donde los puntos muestreados son comparados con el diseño CAD de la pieza para detectar imperfecciones en el proceso de fabricación. Otra de sus aplicaciones es la representación de información volumétrica en imágenes médicas. Por último cabe destacar su aplicación en sistemas de información geométrica, en donde representan el punto de partida para realizar la elevación del terreno. Como es evidente, las nubes de puntos no ofrecen una representación de la super…cie de los objetos, para el estudio de la misma (curvatura, colisiones,etc) o para una visualización más realista (p. ej. con aplicación de textura). Por lo tanto, lo más usual es que sean convertidas a otro tipo de representación que sí la ofrezcan, como las que serán explicadas cuando se trate el tipo de representación: super…cies. Imagen de rango La imagen de rango es una colección de medidas de distancia a los puntos de la super…cie de un objeto de una escena, desde un sistema de referencia conocido. Las imágenes de rango son denominadas de diferentes formas, según el contexto de trabajo: mapa de rango, imagen 3D, imagen 2.5D, mapa de terreno digital (DTM), mapa topográ…co, per…l de super…cie, lista de puntos xyz, mapa de contorno, mapa de alturas de super…cie. Las imágenes de rango pueden ser representadas de dos formas básicamente. Una es mediante una lista de coordenadas 3D en un sistema de referencia dado, en la que no se 18 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.8: Diferentes representaciones de un objeto: (a) fotografía para observar la información del color. (b) malla poligonal obtenida correspondiente a la digitalización de una vista parcial del objeto. (c) imagen de rango o niveles de profundidad correspondientes a esa vista parcial digitalizada. requiere ningún orden especí…co. En este caso se dice que la imagen de rango está en forma xyz. La otra forma es una matriz R(i; j) de valores de profundidad a lo largo de las direcciones de los ejes de la imagen x e y, lo que conlleva una organización espacial explícita. Esta forma de representación se denomina forma rij . Si los intervalos de muestreo son consistentes en las direcciones x e y de una imagen de rango xyz, podría representarse mediante una matriz de valores rij de rango cuantizados y escalados, donde cada coordenada xyz vienen determinadas de forma implícita por la …la y columna que ocupa en la matriz y el valor de rango almacenado en la celda. El término “imagen” se utiliza porque cualquier imagen de rango rij puede ser visualizada como una imagen en niveles de gris, en la que cada uno de esos niveles corresponde a diferentes valores de profundidad. Si rij es el valor de un pixel en la i-esima …la y j-esima columna de la matriz, las coordenadas 3D correspondientes vendrán dadas por: 1 0 1 0 ax + s x i x @ y A = @ ay + s y i A (2.1) az + rij i z en donde los valores sx , sy , sz son los factores de escala y los valores ax , ay , az son los o¤sets. En la …gura 2.8 aparecen diferentes representaciones de la vista parcial de un objeto digitalizado: en la …gura 2.8-a se observa la fotografía correspondiente a esa vista parcial en la que se muestra la información de color; en la …gura 2.8-b puede verse la malla poligonal correspondiente a esa vista; en la …gura 2.8-c se ha representado la imagen de rango de esa digitalización; en la …gura 2.9 se representa en forma de mapa de alturas la información contenida en la imagen de rango de la …gura 2.8. Cada una de estas representaciones es igualmente válida para visualizar los datos. La transformación afín mostrada en la ecuación 2.1 es adecuada para imágenes de rango ortográ…cas donde las profundidades se miden a lo largo de vectores paralelos, perpendiculares al plano de imagen. En los sensores de rango activos es más común la transformación no afín de los datos de rango rij a coordenadas cartesianas x; y; z. En el sistema de coordenadas esféricas mostrados en la …gura 2.10, los índices (i; j) se corresponden con los ángulos de latitud (elevación) y longitud (azimuth) respectivamente. La transformación de coordenadas esféricas a cartesianas se haría como sigue: 19 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.9: Representación del mapa de alturas correspondiente a una imagen de rango. 0 1 0 ax + sr rij cos(is )sen(js x @y A = @ ay + sr rij sen(is ) az + sr rij cos(is ) cos(js z ) ) 1 A (2.2) donde sr , s , s son los factores de escala en rango, latitud, longitud y los valores ax , ay , az son los o¤sets. El sistema de coordenadas con eje ortogonal alternativo, también mostrado en la …gura 2.10, utiliza otro ángulo de elevación psi. En este caso la conversión a coordenadas cartesianas sería: 0 1 s r tan(js ) ax + p r 2ij 0 1 2 1+tan (is )+tan (js ) C x B B C @y A = Bay + p sr r2ij tan(js )2 (2.3) C 1+tan (is )+tan (js ) @ A sr rij tan(js ) z az + p 2 2 1+tan (is )+tan (js ) el nuevo ángulo de elevación depende solamente de y y z mientras que depende de x, y y z. Las diferencias en (x; y; z) para las ecuaciones 2.2 y 2.3 para el mismo valor de azimuth y elevación son menores del 4 % en x y z y menos del 11 % en y, incluso cuando ambos ángulos son del orden de 30o . Sopa de polígonos En esta representación se tiene es una colección desordenada de polígonos sin información de las posiciones relativas de unos polígonos respecto de otros. Se almacena solamente una lista de caras, especi…cando la posición de los vértices de cada cara, por lo que no incluye relaciones topológicas entre las mismas Podemos considerar que los algoritmos que utilizan esta representación suelen ser menos e…cientes y robustos que aquellos que poseen información topológica adicional. A pesar de esta desventaja resulta más fácil para algunos usuarios y creadores realizar un diseño mediante esta estructura ya que no les obliga a tener en 20 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.10: Coordenadas cartesianas, esféricas y ejes ortogonales. mente una determinada estructura. Es también conocida como trimesh en algunos motores de cálculo de físicas (colisiones, dinámicas,...). En esta estructura se utilizan dos matrices para almacenar los datos: una matriz V que contiene todas las coordenadas de todos los vértices de todas las caras y una matriz F de índices a vértices, con una entrada para cada cara. De esta forma, se dispone de una estructura estática, que no puede ser procesada lo que di…culta su análisis, además de ser algo ine…ciente en el sentido de que los vértices pueden estar repetidos muchas veces. Como se verá, a continuación, la estructura resulta parecida a las mallas poligonales, sin embargo, en este caso, las caras son de forma y tamaño variable, además de que no existe ninguna relación entre ellas, y, de hecho, puede darse que caras adyacentes tengan diferente número de vértices en la arista por la que están unidas. Como ventajas cabe destacar que ofrecen una gran facilidad en la representación de discontinuidades de profundidad sin ninguna información extra, y la continuidad de la super…cie 3D puede ser asegurada al …jar las mismas coordenadas en determinados vértices de polígonos distintos. Estas estructuras son muy utilizadas en el ámbito de la programación en 3D en tiempo real, por ejemplo en programación de videojuegos. En la …gura 2.11 aparecen diferentes ejemplos de la representación tipo sopa de polígonos. 2.3.2. Super…cies Métodos basados en la de…nición analítica de la super…cie Este tipo de representaciones son completas, de forma que la descripción geométrica es explícita, la totalidad de la super…cie o del objeto es descrita, y por tanto, la representación del objeto puede hacerse para cualquier posición arbitraria del mismo. Funciones paramétricas La forma paramétrica genérica de una super…cie 3D es [Cam01]: 3 x = f (u; v) S(u; v) = 4 y = g(u; v) 5 z = h(u; v) 2 21 (2.4) CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.11: Diferentes ejemplos de representación utilizando el método sopa de polígonos. Las tres funciones f (u; v), g(u; v) y h(u; v) tienen como argumentos las dos variables paramétricas (u; v), por lo que se dice que es una super…cie biparamétrica (…gura 2.12). Sin pérdida de generalidad, el dominio de (u; v) puede ser restringido a un cuadrado unitario [0; 1] [0; 1]. Si uno de los valores de los parámetros se mantiene constante mientras el otro varía, se genera una curva isoparamétrica en la super…cie, que también puede observarse en la …gura 2.12. Si, en cambio, se mantienen constantes ambos paramétros se genera un punto. Los límites de la super…cie se obtienen manteniendo el máximo o mínimo valor de uno de los parámetros y variando el otro. Si se de…ne uno de los parámetros como una función del otro también se obtienen curvas en la super…cie. Por ejemplo para una super…cie con límites 0 u 1y0 v 1, las funciones u = 1 v y v = 1 u generan las diagonales de la super…cie. De entre las técnicas existentes para la generación de super…cies mediante funciones paramétricas, la más común es la conocida como NURBS (Nonuniform rational B-Spline) propuesta por en [Ver75]. Un super…cie NURBS S(u; v) de grado (p; q) es una función racional bivariada de la forma [Igl02]: S(u; v) = m Pn P Pij ! i;j Ni;p (u)Nj;q (v) i=0 j=0 n m P P (2.5) ! i;j Ni;p (u)Nj;q (v) i=0 j=0 donde f! ij gi;j representan los valores escalares de los pesos asociados a los puntos de control fPij gi=0;:::;n;j=0;:::;m y Ni;p (u) y Nj;q (v) son las funciones bases normalizadas B-Splines de 22 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.12: Representación de una super…cie paramétrica, con algunas curvas contenidas en la misma.[Rog01] grado p y q, respectivamente. Una función básica i-ésima B-Spline de grado p (orden p + 1), denotada por N , está de…nida recursivamente como sigue: Ni;0 (u) = Ni;p (u) = u ui+1 1 si ui u ui+1 0 en cualquier otro caso ui ui+p+1 u Ni;p 1 (u) + Ni+1;p 1 (u) ui ui+p+1 ui+1 (2.6) (2.7) donde ui es el vector de nudos (knot). Este último vector indica los puntos en donde la derivada de la super…cie puede tener una discontinuidad. Las super…cies NURBS son funciones racionales de…nidas por intervalos de forma paramétrica. Estas son expresadas en terminos de una red de control, en la que cada punto actúa como un atractor para la super…cie resultante. En la …gura 2.13 se muestra un ejemplo en el que las líneas sobre la super…cie determinan los cambios en la de…nición de las NURBS (knot lines). Las super…cies NURBS son útiles por diversas razones: Son invariantes a las transformaciones a…nes y de perspectiva: operaciones como rotaciones y traslaciones pueden ser aplicadas a las NURBS solo con su aplicación a la red de puntos de control. Ofrecen ‡exibilidad para el diseño interactivo, con una gran habilidad para representar de manera precisa formas cerradas, cónicas y cuádricas. Necesitan menos espacio en memoria para ser almacenados que otros métodos que requieren que se almacenen todas las entidades en que dividen a la super…cie, como por ejemplo las sopas de polígonos o las mallas poligonales.. 23 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN (a) (b) Figura 2.13: (a) Super…cie NURB con líneas de nudos (knot lines); (b) Red de puntos de control [Sev09]. El principal inconveniente de este método es el gran coste computacional que implica su cálculo. Por otro lado P.J. Besl en [Bes90] indica que este tipo de representaciones no son muy adecuadas para tareas de visión por computador debido, entre otras cosas, a que los puntos de control no son fácilmente detectables ni únicos. Para profundizar en este tema puede recurrirse al libro de Rogers [Rog01]. Funcion implicita Una función implícita es una función multivariable de…nida en un dominio Rn . En el espacio 3D, viene dada por una función F : R3 ! R (2.8) Tal que, para un isovalor v, la super…cie implícita, o isosuper…cie, se de…ne por F (x; y; z) = v o: F (x; y; z) (2.9) v=0 En la representación de super…cies de objetos, estas vienen representadas como el conjunto de datos en los que una función,f , se hace igual a cero: (2.10) S = f(x; y; z)=f (x; y; z) = 0g De esta forma, la función implícita se de…ne de forma que sea negativa dentro de la super…cie, nula en la super…cie, y positiva fuera de la misma. Se han utilizado diversos tipos de funciones para describir super…cies implícitas. Las funciones cuadráticas pueden utilizarse para describir super…cies naturales tales como las esferas, elipsoides y cilindros [Lev76]. Las funciones polinómicas de un grado mayor pueden utilizarse para crear formas más complejas, aunque se hace difícil el control de estas formas [Ker04], [Tau96]. Los parches algébricos pueden utilizarse para mejorar el control en la creación de la super…cie, aunque resulta costoso en términos de computación conseguir una unión suave entre los parches [Baj95]. Estos tipos de super…cies son descritas con gran detalle en el libro editado por Bloomethal [Blo97]. Como ejemplo se muestra en la …gura 2.14(a) la super…cie implícita de un toro, cuya ecuación es la siguiente: f (P ) = x4 +y 4 +z 4 +R4 +r4 +2 x2 y 2 + x2 z 2 + y 2 z 2 24 R2 + r 2 x2 + z 2 + R 2 r 2 y 2 R2 r 2 (2.11) CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN (a) (b) Figura 2.14: (a) Representación de la super…cie implícita de un toro; (b) representación de la super…cie"blobby"formada por la unión de dos esferas. Con respecto a las super…cies paramétricas presenta algunas propiedades ventajosas. Por ejemplo ofrece un fácil acceso a la evaluación de la super…cie, buenas propiedades para el modelado, buenas características de extrapolación de datos y posee la capacidad de poder representar objetos de cualquier topología. La reconstrucción de super…cies implícitas o lo que es lo mismo la generación de la función implícita que de…ne una super…cie a partir de los datos de rango puede hacerse usando diversos métodos. La mayoría de ellos están basados en la idea de Blinn de unir o fusionar primitivas implícitas [Bli82]. Los “blobs”, como él llamó a las super…cies implícitas primitivas, dan lugar a un efecto de unión de metaballs que ha sido usado, por ejemplo, en el diseño de formas orgánicas. En la …gura 2.14(b) se muestra un ejemplo de este tipo de super…cies “blobby” cuya ecuación de super…cie es: f (P ) = g(P ) + h(P ) (2.12) donde g(P ) y h(P ) son las dos esferas cuya unión componen la super…cie, y que están defnidias por las siguientes ecuaciones: rg2 g(P ) = jCentrog rh2 h(P ) = jCentroh P j2 (2.13) P j2 siendo rg y rh los radios de ambas esferas y cg y ch las coordenadas de sus respectivos centros. La desventaja que poseen es en la visualización de las mismas, y en la creación de algunas formas complejas. En este sentido suele interesar la conversión a modelos poligonales, aunque esta debe realizarse cada vez que se cambie la super…cie implícita original (…gura 2.15). Mallas poligonales Una malla poligonal se podría de…nir como el par O = hP; Vi (2.14) donde V= fv1 ; :::; vn g es el conjunto de vértices o nodos 3D que se aproximan a los datos de rango, siendo vi = (xi ; yi ; zi )T , y P = fp1 ; :::; pm g una lista de elementos que relacionan a 25 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.15: Conversión de malla poligonal a super…cie implícita [Tur01]. los vértices entre sí. Estas relaciones suelen ser las aristas que unen a un par de vértices y/o los polígonos o patches por formados por éstos. Se pone de mani…esto, tras esta formalización, que las mallas poligonales vendrán caracterizadas fundamentalmente por dos propiedades: Propiedades geométricas que están relacionadas con las coordenadas de los vértices, o lo que es lo mismo, con la posición de éstos en el espacio 3D. Propiedades topológicas referidas a la relación existente entre los vértices o nodos de la malla. Centrándonos en las propiedades topológicas, se puede realizar una clasi…cación de las mallas en función de la información que almacene P. Si en P = fp1 ; :::; pm g se almacenan las aristas que unen a los distintos vértices, se podrá calcular la relación de vecindad entre ellos. Teniendo en cuenta esta relación, la malla se puede clasi…car como: Malla no estructurada en donde el número de vecinos de cada nodo no es constante. Malla estructurada en donde el número de vecinos de cada nodo es constante. Las segundas presentan ciertas ventajas sobre las primeras ya que son más simples, requieren menos memoria para su almacenamiento en un ordenador y permiten un control más directo sobre la forma de los patches. Además, otra de sus ventajas es la existencia de multitud de algoritmos más e…cientes en tiempo de computación para las mallas estructuradas. 26 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.16: Representación de una esfera mediante: (a) Malla estructurada; (b) Malla no estructurada. Por otro lado, al ser el número de vecinos un parámetro …jo, es más sencillo el cálculo de propiedades sobre los nodos. La gran desventaja es la poca ‡exibilidad que presentan a la hora de aproximarse a super…cies complejas, presentándose en las mallas obtenidas un suavizado en las zonas de mayor curvatura de los objetos que se pretendan modelar. La decisión sobre la utilización de un tipo u otro de malla dependerá de la aplicación a la que vayan destinados los modelos. De esta forma, las mallas estructuradas no serán aceptables cuando se necesite una representación exacta del objeto, como puede ser en una aplicación CAD. En la …gura 2.16 puede observarse la representación de una esfera mediante los dos tipos de malla mencionados. Otra clasi…cación que se puede realizar basándonos en las propiedades topológicas de la malla es en función del tipo de polígono o patch que se utilice en éstas. En este caso, cada elemento ti 2T almacenará una lista con los vértices que de…nen a los polígonos de la malla. En principio el tipo de patch puede ser de muy distinto tipo, pero los más habituales son: Triangulares Cuadrangulares Hexagonales Las mallas triangulares son las más más utilizadas por dos razones: es el tipo de polígono más simple y permiten calcular los vectores normales a las super…cies necesarios para la simulación del proceso de re‡exión de la luz sobre éstas. Esta segunda propiedad es empleada en aplicaciones relacionadas con grá…cas por computador. Cuando se utilizan este tipo de patches, las mallas suelen ser no estructuradas. Las mallas con patches cuadrados están relacionadas esencialmente con la obtención de éstas a partir de las representaciones obtenidas mediante técnicas analíticas, sobre todo con las funciones paramétricas. No suelen ser empleadas cuando se trabaja en tareas de visión por computador. Por último, las mallas hexagonales son mallas estructuradas con tres vecinos por nodo. Una característica interesante de este tipo de mallas es que su dual es una malla triangular (…gura 2.17). 27 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.17: Representación de una malla hexagonal en 2D y su dual triangular [Mar07]. El tipo de mallas que se utilizarán en los algoritmos planteados en esta tesis serán las mallas triangulares, que serán explicadas a continuación. Mallas triangulares. Una malla triangular M consiste en un componente geométrico y otro topológico en el que la super…cie viene representada por un conjunto de vértices V = f 1 ; :::; (2.15) Vg y un conjunto de caras triangulares que los conectan T = ft1 ; :::; tm g; ti 2 V V V (2.16) en donde cada triángulo especi…ca los vértices de que lo forman. La conectividad de la malla también viene de…nida en términos de las aristas A = fa1 ; :::; ak g; ai 2 V V (2.17) La componente geométrica de la malla triangular en R3 viene especi…cada mediante la asociación de la posición 3D pi a cada vértice vi 2 V: 1 0 x (vi ) (2.18) P =fp1 ; :::; pV g, pi := p (vi ) = @ y (vi ) A 2 R3 ; z (vi ) La super…cie está formada, por tanto, por una red de triángulos cuyos vértices son los puntos de la nube P y cuya conectividad viene de…nida por la 3-tupla de elementos fV;A;T g. Se puede decir que la malla triangular es un grafo G(V; A) en el que se establece una relación de conectividad entre los vértices mediante las aristas, tal y como puede observarse en la 28 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.18: Entidades que componen la malla triangular e interconexión entre ellas …gura 2.18. Los triángulos están formados por la conexión de tres vértices vecinos en el grafo G, mediante las respectivas tres aristas. Una mallas triangular representa por tanto una super…cie lineal continua de…nida a tramos. Si se utiliza para aproximar una super…cie su…cientemente suavizada, se puede determinar mediante una expansión local de Taylor que el error es del orden de O (h2 ), siendo h la longitud máxima de aristas. Debido a esta aproximación cuadrática, el error puede reducirse en 1=4 si se dividen a la mitad la longitud de las aristas. Al realizar esta subdivisión se divide cada triángulo en cuatro subtriángulos, lo que hace que se incremente el número de triángulos de F a 4F . Por tanto, el error de aproximación de una malla triangular a una super…cie es inversamente proporcional al número de caras, y depende del término de mayor exponente de la expansion de Taylor. Debido a esto para conseguir una gran aproximación a la super…cie, habrá que adaptar la densidad de vértices a la curvatura de la super…cie, de forma que las zonas planas tengan una baja densidad, mientras que en las zonas de detalle la densidad será muy alta. Una caracterización topológica importante de una super…cie es si es o no una variedad bidimensional (en inglés: super…cies 2-manifold), es decir, si no existen puntos singulares donde la super…cie se intersecte consigo misma o se abra en varias hojas (…gura 2.19(a)) se dice que que es una variedad bidimensional, en caso contrario se dice que no lo es (nonmanifold). Este tipo de mallas son fuente de problemas para la mayoría de los algoritmos, ya que las relaciones de vecindad no quedan bien de…nidas en el entorno de la con…guración sin variedad bidimensional. En la …gura 2.19(a) se presentan diversos tipos de topologías de la vecindad de un punto vi que producen variedades bidimensionales y que no las producen. Además, el hecho de que una malla triangular sea cerrada implica una continuidad en toda esa red de triángulos que modelan la super…cie. Esto se traduce, teniendo en cuenta la forma de construcción de la malla triangular, en que todas las aristas pertenecen únicamente a dos triángulos contiguos en la malla. De esta forma, se deduce que, para toda malla triangular cerrada y que sea una variedad bidimensional M = G(V; A), se cumplen las siguientes propiedades, referidas cada una de ellas a uno de los elementos de la 3-tupla V, A y T : 29 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN i) Conectividad de los vértices: todos los vértices de la malla están conectados con al menos otros trés vértices vecinos, o lo que es lo mismo, tienen al menos tres aristas incidentes: 8vi 2V; 9AS A 8ah 2AS ; vi ah ^ card(AS ) 3 ii) Pertenencia de aristas a triángulos: todas las aristas están compartidas únicamente por dos triángulos, que se dice que son contiguo: 8ah 2A; 9!ti; tj ti \ tj = ah ; i 6= j iii) Conexión de los triángulos: cualquier par de triángulos de la red tienen o una arista en común o ninguna; 8tr ; ts 2T ; card (tr \ ts ) 2 f0; 1g Dado que entre los elementos de la 3-tupla existe una relación de conectividad, el enunciado de cada una de esas propiedades viene implícito en las otras propiedades. Otro concepto que se utiliza para caracterizar a este tipo de mallas es el de grado un vértice, grad(vi ), que se de…ne como el número de aristas que inciden sobre él. De esta forma, en el caso de mallas triangulares cerradas y que sean una variedad bidimensional siempre se cumplirá que grad(vi ) 3; 8i. Además si se tratase de una malla totalmente regular, 8vi 2V; grad(vi) = cte. Por otra parte, al tratarse de variedades bidimensionales cerradas, puede utilizarse la fórmula de Euler-Poincaré, para obtener el número de componentes que tiene cada conjunto de entidades, V,A,T , que componen la malla. De esta forma, se tiene la siguiente relación: card(V) + card(T ) card(A) = = 2(1 (2.19) g) donde es la constante característica de Euler, que será diferente, según las características de la malla;y, g 2 N es el género de la super…cie y representa intuitivamente el número de asas de un objeto. Dado que lo más habitual en todas las mallas es que el género sea pequeño en comparación con el número de elementos, la constante puede aproximarse a cero para obtener una relación aproximada entre el número de los elementos que la componen. Por otra parte, dado que cada triángulo está limitado por tres aristas, de igual forma que cada arista (interior) es compartida por dos triángulos, pueden obtenerse las siguientes relaciones: 3 card(T ) (2.20) 2card(A) card(A) 3card(V) (2.21) card(T ) 2card(V) (2.22) Si se combinan las expresiones (2.19) y (2.20)-(2.22), se deduce que, por término medio, en una malla triangular el grado de todos sus vértices es 6, tal y como se obtiene con las siguientes expresiones: card(V) + card(T ) card(A) = card(V) + (2=3)card(A) card(A) = 3 (card(V) 2 + 2g) card(A) = 2(1 g) (2.23) (2.24) A partir de esto y recordando cómo se defínía el grado de un vértice, se puede deducir su formulación matemática aproximada, sabiendo que será el cociente entre el número de aristas y la mitad del número de vértices. Así, aplicando la de…nición y la expresión (2.24): 30 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN (a) (b) Figura 2.19: (a) Dos partes de la super…cie con‡uyen en un vértice que produce una variedad no bidimensional (a la izquierda). Una arista que no produce una variedad bidimensional tiene más de dos caras incidentes (en el centro). La con…guración de la derecha, aunque da lugar también a una variedad no bidimensional, es más habitual en muchas mallas [Bot06]; (b) Vecindad de un vértice dado vi [Vas06]. 8vi 2 V; grad(vi ) 2card(A)=card(V) = 6 (card(V) 2 + 2g) =card(V) (2.25) Si la expresión se aplica en mallas de objetos, en los cuales normalmente el número de vértices es muy elevado, se tiene que: grad(vi ) 6 En comparación con las spline y las super…cies por subdivisión, las mallas triangulares no están restringidas por limitaciones geométricas, topológicas o de conectividad, y pueden por tanto ser consideradas como la representación más ‡exible de todas. Los triángulos son, conceptualmente, la primitiva más simple para la representación de super…cies, y, es por esto que, permiten la implementación de algoritmos muy e…cientes. 2.3.3. Sólidos El modelado de sólidos es una técnica matemática para la representación de objetos sólidos en un ordenador. A diferencia del modelado de super…cies, en el modelado de sólidos se asegura una conexión adecuada entre todas las super…cies y que el objeto es geométricamente correcto. El modelado de solidos añade la complicación de que implica la representación del objeto de forma interna, describiendo el volumen interior, la masa y el peso del objeto. Si se secciona un modelo pueden verse los elementos que lo componen interiormente. De cualquier forma, a pesar de la complejidad que puede representar un modelo sólido, en la mayoría de las ocasiones suele interesar obtener solamente la representación de la parte visible del mismo, es decir, de la super…cie externa. A continuación se explicarán brevemente las técnicas más utilizadas para la representación de la super…cie de los sólidos. Aproximaciones de partición espacial Mediante esta representación los sólidos son caracterízados por un conjunto de volúmenes fVi g , que permite caracterizar qué parte del espacio euclídeo está dentro del objeto y qué parte está fuera. Esta forma de representación cumple lo siguiente: 31 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN i) 8i; Vi 6= ? ii) 8i; j; Vi \ Vj = ? iii) [i fVi g = Espacio(R3 ) Algunas de las utilidades del empleo de este método de representación son: Clasi…cación de puntos : para discernir cuáles son los puntos del espacio ocupados por el objeto y cuáles no. Esto es Información sobre propiedades de puntos en el espacio. Cada volumen de la partición puede además contener información adicional sobre alguna propiedad del objeto en esa parte del espacio (densidad, color, presión, composición. . . ). Clasi…cación de objetos dentro de la escena : en este caso no se trataría de describir la forma de un objeto determinado, sino de agrupar los objetos de una escena compleja en partes para optimizar los métodos de visualización. Por tanto el espacio euclídeo es particionado en regiones tridimensionales no sobrepuestas (pero sí adjuntas) llamadas celdas o vóxeles [Ros99]. Los distintos esquemas de partición varían según las restricciones que se impongan a las celdas, como forma, posición, orientación, etc. Una clasi…cación muy utilizada divide a las particiones en jerárquicas y no jerárquicas. En las primeras el sólido se representa mediante en sucesivas particiones de más y más detalle, cuyos volúmenes están incluidos en una partición de nivel inferior, y que se forma mediante operaciones sucesivas de división. Un ejemplo de este tipo de partición, muy utilizado en programación de grá…cos, son los árboles octales (octrees). En las particiones no jerárquicas, existe un único conjunto de volúmenes que forman la partición, y no tiene relaciones internas de inclusión. Este es el caso de: la descomposición de celdas (cell decomposition), la enumeración de la ocupación espacial (spatial occupancy enumeration). Pasemos a continuación a analizar estos tipos concretos de representación. La descomposición de celdas es la forma de particionamiento más simple.que consiste en descomponer el sólido en varias celdas (…gura 2.20). Si bien no genera ambigüedad, una representación puede tener varias acepciones. La validación también es costosa, ya que para casi todos los pares de celdas hay que establecer si hay o no intersección. Este método ha sido muy utilizado en el análisis de elementos …nitos, así como en la representación del interior de edi…cios para la plani…cación de trayectorías con robots móviles [Can88]. La enumeración de la ocupación espacial es un caso particular de la descomposición de celdas donde cada celda en el esquema (llamada voxel) debe ser cúbica, del mismo tamaño y recaer en una malla …ja [Req80]. La restricción que establece este esquema permite que cada celda sea ubicada con las coordenaddas de un solo punto; por lo tanto para representar un objeto solamente es necesario de…nir una malla 3D y una lista de celdas ocupadas (enumeradas). No se requiere validación ya que la malla y las restricciones de las celdas evitan intersecciones inapropiadas. Se puede hacer una representación del espacio para distintos tamaños de celdas, lo que proporciona la posibilidad de tener información a distintas resoluciones, dependiendo a qué nivel de detalle se quiera trabajar con el sólido, con el consiguiente ahorro de recursos de ordenador (…gura 2.21). Por lo que respecta a los árboles octales u octrees es un esquema de representación de objetos en términos de una estructura de árbol octal obtenida por divisiones recursivas 32 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.20: Descomposición de un objeto en diferentes celdas básicas. Figura 2.21: Representación mediante vóxeles de distinto tamaño de un mismo objeto. 33 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN (a) (b) (c) Figura 2.22: (a) Esquema de partición del árbol octal u octree [Can02]; (b) y (c) ejemplos de representación de sólidos mediante árboles octales. de la caja envolvente del volumen a codi…car [Sam88]. Estas divisiones están hechas de manera que los octantes obtenidos en cada nivel de la descomposición son del mismo tamaño, repitiendo el proceso hasta que las propiedades representadas en todos los nodos del árbol sean homogéneas o bien hasta un nivel de profundidad prede…nido (…gura 2.22). Arbol BSP (Binary Space Partitioning). Se trata de una estructura de datos que representa un división jerárquica y recursiva del espacio tridimensional en otros subespacios. El árbol BSP trata cada polígono 3D como un plano de corte que divide y etiqueta al resto de polígonos como pertenecientes a la parte delantera o trasera de este plano. En otras palabras, cuando se añade una partición al árbol, primero es etiquetada con respecto al nodo principal y a continuación de forma recursiva con respecto a cada una de las ramas del árbol (…gura 2.23). Sus aplicaciones más habituales son: eliminación de super…cies ocultas en la representación 3D en tiempo real, trazado de rayos (ray tracing), modelado de sólidos, plani…cación de rutas para robots móviles. 34 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN (a) (b) Figura 2.23: (a) Esquema de partición de un árbol BSP en el espacio 3D; (b) visualización de árbol BSP para un polígono en 2D, con su respectiva separación entre lo que queda dentro (in) y fuera (out) de cada partición. Figura 2.24: Representación CSG: (a) Primitivas con sistemas de referencia; (b) Primitivas en un mismo sistema de referencia; (c) CSG resultante. Geometría constructiva de sólidos(Constructive Solid Geometry, CSG) La representación mediante este esquema consiste en capturar un proceso de construcción que de…na al sólido por medio de operaciones que combinan primitivas [Ros99]. Un objeto es representado generalmente como un árbol binario, ordenado con operadores en los nodos terminales y primitivas en las hojas. Los nodos no terminales pueden ser operaciones booleanas regularizadas (unión, intersección, diferencia) o bien operaciones básicas como traslación, escalado, rotación, etc. Para generar una representación el esquema hace una lectura ordenada del árbol binario y ejecuta las operaciones entre los objetos para reconstruir un sólido (…gura 2.24). Los árboles binarios de este esquema son concisos, no ambiguos, y no son únicos, ya que puede existir otro árbol que genere la misma …gura y que por ende pueda existir algún tipo de redundancia. Sweep Se de…ne el sólido mediante el movimiento de una forma básica a lo largo del espacio. Estos movimientos pueden incluir una operación de escalado de forma paralela y con una función de crecimiento determinada. En la …gura 2.25 pueden verse varios ejemplos de sólidos simples generados a partir de un cuadrado y de un círculo. 35 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.3. REPRESENTACIÓN DE LOS DATOS E INTEGRACIÓN Figura 2.25: Modelado de sólidos mediante la técnica de barrido o {nit sweep}. 2.3.4. Estructuras de alto nivel Grafo de la escena Un grafo de escena es un grafo dirigido acíclico de nodos que contiene los datos que de…nen un objeto y controlan su proceso de representación. Contiene descripciones de bajo nivel de la geometría y la apariencia visual de los objetos, así como descripciones de alto nivel referentes a la organización espacial de la escena, datos especí…cos de la aplicación, transformaciones, etc. Los grafos de escena almacenan la información del escenario virtual en diferentes tipos de nodos. Existen nodos que almacenan la información geométrica y actúan como nodos hijos dentro del grafo de escena; el resto de los nodos suelen aplicar algún tipo de modi…cación sobre el segmento de jerarquía que depende de ellos, bien sea estableciendo agrupaciones, aplicando alguna transformación afín o realizando algún tipo de selección sobre alguna de sus ramas hijas. El proceso de dibujado consiste en realizar un recorrido de dicho grafo, aplicando las operaciones indicadas por cada tipo de nodo. El Grafo de Escena tiene como funciones principales: Contribuir a establecer una organización lógica de la escena. Establecer dependencias jerárquicas entre distintos sistemas de referencia. Posibilitar el proceso de selección entre múltiples niveles de detalle. Posibilitar el proceso automático de Culling (eliminación automática de los objetos que se encuentran fuera del campo de visión). 36 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.4. PROCESADO Figura 2.26: Descomposición de un objeto en las diferentes partes que lo componente. El grá…co resultante formaría parte del grafo de la escena en donde se encuentre el objeto. Facilitar el control de la escena por parte del usuario. Hacer más cómodo el acceso a las librerías grá…cas de bajo nivel. En la …gura 2.26 se puede apreciar la descomposición de un objeto en sus diferentes componentes, de manera agrupada, lo cual sería una aproximación al grafo de escena que lo de…niría. Esqueletos (Skeletons) El grafo de esqueleto de un objeto 3D es una representación abstracta geométrica y topológica de su forma tridimensional. Este grafo representa la relación espacial entre las partes geométricas signi…cativas y una estructura de grafo. Cada arco de este grafo representa una parte del objeto con un diámetro aproximadamente constante y aproxima su línea central. Dicho de otra forma, un esqueleto se de…ne como el lugar de los centros de las esferas o discos máximos inscritos en un volumen 3D (…gura 2.27). Este grafo es su…cientemente conciso y expresivo para utilizarlo como representación abstracta del objeto 3D. La principal di…cultad de este tipo de representación es conseguir una interpretación correcta de la forma del objeto. Sus aplicaciones principales son variadas: catalogación y animación de personajes animados, navegación virtual, plani…cación de laparoscopias,etc. 2.4. Procesado Hasta este punto se ha modelado el objeto 3D a partir de la integración de varias vistas parciales del objeto real, obtenidas mediante un escaner 3D. El modelo que se ha obtenido 37 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.4. PROCESADO Figura 2.27: Ejemplo de extracción del esqueleto de objetos de formas diversas ([Cor07], [Pan10]). no es del todo …el al objeto real debido a que se producen diversos errores en cada una de las etapas del proceso de modelado. Hay que tener en cuenta que para que sea de utilidad en la práctica, un modelo poligonal tiene que satisfacer determinados criterios según la aplicación a que vayan destinados. A pesar de esa dependencia de la aplicación …nal, se diferencian dos criterios que son comúnmente demandados para el tratamiento de modelos poligonales: Criterios de corrección intrínsecos al modelo poligonal: corrección geométrica. Los polígonos han de representar la super…cie exterior de un sólido 3D. Esto es, la super…cie poligonal ha de ser una variedad bidimensional (seccion 2.3.2), es decir, sin puntos singulares donde la super…cie se intersecte consigo misma o se abra en varias hojas, cerrada y libre de intersecciones. Criterios de corrección extrínsecos al modelo poligonal: corrección topológica. Los modelos poligonales han de tener la misma topología que el sólido que representan. En particular, las características topológicas, tales como asas y componentes conectados, han de ser preservados. La corrección geométrica es particularmente importante en ingeniería y fabricación, donde los objetos sólidos son requeridos para cálculos numéricos, tales como el análisis de los elementos …nitos, o para la producción real, tales como prototipado rápido. El requisito de que sea una variedad bidimensional es crítico para el cálculo de medidas diferenciales en las super…cies, tales como normales y curvaturas. Por otro lado, la corrección topológica asegura que el modelo poligonal no introduce una complejidad extra con respecto al objeto que representa, tales como asas redundantes y piezas desconectadas, que complicaría de forma innecesaria tareas tales como la simpli…cación, parametrización y segmentación. En esta etapa se procesará la malla poligonal bien de forma manual o bien mediante la aplicación de algoritmos automáticos con el objetivo de corregir los diferentes errores que puede contener, para que, de esta manera, satisfaga los dos criterios expuestos. A continuación se enumeran algunos de los errores que se presentan habitualmente: 38 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.4. PROCESADO Figura 2.28: Diversos tipos de errores habituales en mallas poligonales. [Ju09] Autointersecciones entre polígonos que pueden producirse tras el proceso de registro e integración, o bien tras la aplicación de alguna operación de procesado. Normales erróneas, que se re…ere a la existencia de algún cambio en la dirección de las normales, que sea inconsistente con la dirección de las mismas en el resto de la super…cie. Elementos que no son variedad bidimensional (elementos non-manifolds): lo que da lugar a que la malla no sea una variedad bidimensional, tales como aristas que son compartidas por más de dos polígonos. Huecos que producen que la malla poligonal tenga agujeros que no presenta la super…cie real del objeto. Picos (peaks, en inglés) o, lo que es lo mismo, caras triangulares que sobresalen de la super…cie, con una longitud de arista muy superior a la media, debido principalmente al ruido de los datos de entrada. Es habitual que las mallas obtenidas en el proceso de reconstrucción no presenten solo un tipo de estos errores sino una combinación de ellos. En la …gura 2.28 pueden verse algunos de los errores que se acaban de enumerar. En [Ju09] se presenta una recopilación de técnicas para la corrección de los mismos. De todos los errores descritos, la aparición de huecos es crítica a la hora de conseguir que una malla sea hermética (watertight en inglés) o, lo que es lo mismo, que exista una conexión entre todos los polígonos de forma que esté totalmente cerrada (independientemente de las características topológicas del objeto). Este tipo de mallas son de especial interés para multitud de aplicaciones tales como: sistemas de prototipado rápido, sistemas de metrología, 39 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. modelos 3D para aplicaciones de visión por computador o para gra…cas por computador, etc. Para conseguir mallas totalmente cerradas es, por tanto, de vital importancia la fase de relleno de huecos. El tema de la presente tesis se centra en los métodos de relleno de huecos por lo que se procederá a continuación a explicar, con más detalle, este error habitual y los diferentes métodos que pueden encontrarse en la literatura cientí…ca para acometer su relleno. 2.5. Métodos de relleno de huecos. Existen dos hechos que hacen que aparezcan huecos en una malla. El primero es que en el proceso de registro y/o integración se haya producido alguna pérdida o rede…nición incorrecta de la malla, por ejemplo, algún triángulo que falte por de…nir. Este tipo de huecos no suponen un problema y suelen rellenarse de forma directa sin tener en cuenta la información geométrica que rodea al hueco. El segundo hecho es la falta de información geométrica debido a oclusiones o sombras en los objetos. En este caso los huecos suelen ser de mayor tamaño que los anteriores. Además, cuando se trabaja con objetos de forma libre, con cierto nivel de detalle, pueden encontrarse huecos de formas muy complejas, y su rellenado se convierte en un problema de gran di…cultad. Es por esto que, aunque su solución haya sido ampliamente estudiada, no existe aún un procedimiento general para todas las posibles situaciones que se pueden presentar. Por ello se requiere normalmente de la intervención del usuario para poder evaluar el problema y no existe un algoritmo automático que le dé solución. El tipo de huecos que se presenta va a depender, por tanto, de las características de la super…cie tales como su curvatura, resolución, topología, etc. El grado de di…cultad del relleno será mayor cuanto mayor sea la curvatura, la resolución, la profundidad de determinadas cavidades, etc. El problema del rellenado de huecos puede dividirse en dos subproblemas: 1. La identi…cación de los huecos 2. La creación de geométría que rellene el hueco existente. En cuanto al primer subproblema, la identi…cación depende del tipo de representación con que se esté trabajando. En la presente tesis se ha trabajado con mallas poligonales triangulares, mallas a las que se le exige que sean una variedad bidimensional y que estén libres de errores. En este tipo de mallas, la identi…cación es relativamente sencilla. Dado que la malla está formada por triángulos que comparten cada una de sus aristas sólo con un triángulo vecino, se deduce que los triángulos que estén en el borde disponen de una arista no compartida con ningún triángulo. Partiendo de esta condición, se realizará una búsqueda en la estructura de triángulos de la malla de conjuntos de aristas no compartidas, y se determinarán los caminos o ciclos cerrados que formen estas aristas, y que darán lugar a los bordes de hueco. En cuanto al segundo subproblema de generación de geometría para rellenar el hueco, puede intuirse que no es un problema trivial dada la complejidad y diversidad de huecos que pueden presentarse, no existiendo ningún método que pueda rellenar automáticamente cualquier hueco que se presente. La mayoría de los métodos existentes tienen di…cultades en rellenar huecos de gran complejidad y curvatura elevada. De esta forma, conocido el problema, es posible elucubrar una lista de criterios que debería cumplir un algoritmo de relleno de huecos para que fuese robusto, como la que se presenta en la siguiente sección. 40 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. (a) (b) Figura 2.29: Proyeccion de huecos poligonales en un plano: (a) Hueco simple; (b) Hueco complejo [Jun05]. Pero antes del relleno, puede establecerse una clasi…cación de los huecos en dos categorías principales, según el tipo de borde de hueco que se presente: huecos simples y huecos complejos [Jun05]. Los primeros son aquellos que pueden ser rellenados a partir de una triangulación plana, dado que todas las aristas pertenecientes al borde de hueco pueden ser proyectados en un plano sin autointersecciones (…gura 2.29(a)). La idea principal de la triangulación plana es rellenar huecos con triángulos planos en el plano donde el borde de hueco ha sido proyectado. Con respecto a los segundos, los huecos complejos, debido a la complejidad de su forma no es posible aplicar una triangulación plana y en ellos, los bordes de hueco no pueden ser proyectados en ningún plano sin autointersecciones (…gura 2.29(b)). 2.5.1. Criterios de robustez del algortimo de relleno de huecos Un buena recopilación de criterios para de…nir un algoritmo de relleno de huecos robusto es la que propone Podolak en [Pod05]: 1. Debe producir una malla hermética sin autointersecciones, y que sea una variedad bidimensional. 2. Debe tener la capacidad de procesar huecos de forma y tamaño arbitrarios. 3. Debe evitar cambios, aproximaciones o remuestreos de los datos originales. Es esencial que los datos de partida permanezcan invariables a lo largo del proceso de reconstrucción, ya que son los datos reales medidos físicamente mediante sensores. 4. Debe tener la posibilidad de que el usuario incorpore limitaciones para permitir la selección de múltiples soluciones topológicamente diferenciadas. A menos que se desarrollase un algoritmo con elevado nivel de inteligencia, en muchas ocasiones se presentará una solución múltiple para una malla de entrada, por lo que es necesaria la colaboración del usuario. 5. Debe poder procesar mallas escaneadas de gran tamaño y resolución con un tiempo de ejecución que sea proporcional al tamaño de los huecos, en lugar de a la malla de entrada. 41 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. 6. Debe distinguir a la salida del algoritmo entre las super…cies reales observadas y las super…cies fabricadas. Este requisito es especialmente importante para determinadas aplicaciones cientí…cas, tales como fabricación, estudio y simulación de piezas de patrimonio histórico, etc. 2.5.2. Clasi…cación de los métodos de relleno de huecos. Existen multitud de posibles clasi…caciones de los métodos de relleno de huecos, en función de las distintas características diferenciadoras que se tengan en cuenta. La clasi…cación en la que se basará la revisión de técnicas de relleno, propuesta en este artículo, será en base a las siguientes dos categorías: Métodos en donde el relleno es un proceso implícito en la creación del modelo 3D. Se lleva a cabo de forma implícita durante la fase de integración y reconstrucción de la super…cie del objeto. Métodos en donde el relleno es un proceso independiente a la creación del modelo 3D. En los primeros la entrada al algoritmo son las coordenadas 3D de la super…cie del objeto sin ninguna información topológica asociada. A partir de estos datos se crea una representación (malla, Bezier, funciones implícitas...) que, por de…nición, no presenta huecos. El segundo grupo de métodos de relleno de huecos es más empleado que el primero. La razón es que de esta forma se independiza el proceso de modelado 3D del proceso de rellenado de huecos, permitiendo procedimientos de trabajo más ‡exibles. Dentro de este segundo tipo, se puede realizar otra clasi…cación sería teniendo en cuenta el grado de intervención del usuario. De esta forma podrían diferenciarse entre: Métodos automáticos, los cuales realizan el rellenado de forma autónoma sin requerir la intervención del usuario. Métodos semiautomáticos, en los que se requiere que el usuario …je determinados parámetros para que el proceso produzca los resultados idóneos. Métodos manuales, en los que el usuario que el usuario ha de realizar de forma interactiva el relleno del hueco, especi…cando las caras que unirán los vértices del borde del hueco. Casi todos los métodos propuestos intentan que sus algoritmos funcionen de forma automática, aunque suele exigirse que la malla cumpla determinados requisitos impuestos en el proceso de diseño del algoritmo. Como ejemplo de método que requiere una participación directa del usuario, en [He06] se propone un método semiautomático de relleno de huecos en mallas triangulares, mediante el uso de un sensor háptico. Con las técnicas de interacción háptica el usuario puede manipular puntos y triángulos en 3D de forma más intuitiva para modi…car y reparar modelos con agujeros complejos. A continuación van a exponerse diversos métodos de relleno que pueden encontrarse en la literatira cientí…ca. 42 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. 2.5.3. Revisión técnicas de relleno de huecos. Métodos implícitos. Del primer grupo de métodos, en donde el relleno se realiza implícitamente con la creación del modelo 3D, pueden encontrarse diversos ejemplos en la bibliografía. Por ejemplo, en [Cur96] convierten cada malla en una función de distancias con signo cuyo nivel de cero es la super…cie observada. Seguidamente fusionan estas funciones de distancias y extraen el conjunto de valores nulos, que se corresponde con la super…cie …nal. Para rellenar los huecos, primero marcan como vacía la región del espacio 3D que se encuentra a lo largo de la línea de visión entre el escáner y las mallas. A continuación extraen el borde de esta región como una super…cie adicional. El relleno lo hacen creando una super…cie que limite la máxima región del espacio que sea consistente con las vistas parciales, por lo que garantiza que se produce una malla hermética. Otro tipo de métodos son los basados en nubes de puntos, que tratan la unión de todas las vistas parciales como un conjunto de punto 3D no organizados a los cuales hay que ajustar una super…cie continua. Al no tener conectividad entre las vistas, los huecos que presentan son conceptualmente equivalentes al espacio entre vistas adyacentes, por lo que estos métodos rellenan los huecos durante la reconstrucción. Una clase de métodos basados en nubes de puntos interpolan los datos originales utilizando formas alfa (alpha shapes) ([Ede94], [Baj95]), cortezas ([Ame98], [Dey01]) o esferas ([Ber99]). Sin embargo, la interpolación puede resultar inadecuada para datos con demasiado ruido. En [Ber99] solucionan este problema aplicando un suavizado previo y consiguen una unión adecuada, sin saltos entre las esferas, aplicando varias veces el algoritmo mientras que se incrementa el radio de las esferas. Una tercera clase de métodos ajusta un conjunto de funciones de base radial (RBF, radial basis functions) a los datos. Se realiza una suma ponderada de esas funciones para dar lugar a una nueva función global, de la que un determinado nivel de valores generará la super…cie ([Din01], [Car01]). Métodos independientes Respecto al segundo grupo de métodos, en los que el relleno es un proceso independiente a la creación del modelo 3D, es donde se engloban mayor cantidad de algoritmos encontrados en la bibliografía. En todos ellos antes del relleno debe realizarse una búsqueda de los huecos y detección de los bordes de los mismos. Si se trabaja con mallas poligonales, como se ha comentado, la identi…cación de agujeros se realiza buscando los triángulos que tienen al menos una arista no compartida con ningún otro triángulo. Al unir esas aristas cada ciclo o camino cerrado formado se corresponderá con el borde de un agujero. En [Wu08] proponen un método que realiza una búsqueda más rápida de los bordes de hueco en una malla triangular mediante el uso de kd-trees. Para efectuar el relleno de huecos algunas técnicas mantienen la representación poligonal de los datos, mientras que otros transforman todos o parte de los datos de rango en otras representaciones tales como NURBs, funciones implícitas, proyección en imagen de rango, etc. A continuación se describirán brevemente algunas de esas técnicas. En [Bra06] primero realizan un análisis de los huecos para determinar cuáles han de ser rellenados y cuáles pertenecen a la topología del objeto. Este análisis consiste en el estudio de la torsión de la curva del contorno de cada hueco. Se basa en la idea de que los huecos que pertenecen a la super…cie son suavizados y regulares, mientras que los que son 43 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. Figura 2.30: Ejemplo de relleno mediante funciones de base radial (RBF).(a) Malla con hueco. (b) Conjunto de centros utilizados para la interpolación. (c) Malla rellenada utilizando interpoladores RBF.[Bra06] generados por oclusión presentan irregularidades que se traducen en una torsión elevada del contorno. Seguidamente se utilizan los puntos del entorno del borde de hueco para ajustar una super…cie mediante interpoladores de funciones de base radial (RBF). Se realizará un proceso iterativo que irá haciendo el hueco más pequeño hasta que se alcance un umbral de ajuste predeterminado. Una característica importante de este algoritmo es que garantiza que las porciones de malla de relleno se ajustan suavemente en la malla original (…gura 2.30). Además, la super…cie reconstruida mantiene la resolución de la malla original. Como limitación hay que reseñar que no funciona de manera e…ciente con huecos de gran tamaño. Otro método que utiliza funciones de base radial es el presentado en [Wu08]. Tras la correspondiente detección de huecos, para uno dado, se extraen vértices del borde del mismo y los nodos que tengan un grado de vecindad 2 ó 3 con dichos ellos. Estos vértices se van a utilizar como centros de interpolación para de…nir una super…cie implícita local y que servirá, aplicando las RBF, para interpolar el contenido del hueco. El último paso del algoritmo es la integración de esa porción de malla calculada con el resto de la malla. Dado que el parche de malla sobre el que se han interpolado los puntos de relleno es más grande que el hueco, habrá que distinguir cuáles son los puntos interiores al hueco. Para ello, se realiza una proyección a un plano del parche de malla mediante un análisis de las componentes principales. En el mismo plano se proyectará el polígono correspondiente a los bordes de hueco. En 2D, se determinarán qué puntos quedan dentro del polígono mediante un algoritmo que denominan algoritmo de comprobación de inclusión de puntos. Para terminar se aplica una transformación de 2D a 3D a los puntos de relleno detectados para incluirlos en la malla de partida (…gura 2.31). En [Li10] se presenta un método que emplea técnicas de ajuste polinomial, y que tiene como ventaja la preservación de características de la super…cie del entorno del hueco. En primer lugar, se detectan las características de la super…cie en el entorno del hueco (…gura 2.32). A continuación se buscan las curvas que se ajusten a esas características super…ciales a partir de una minimización dentro de una familia de curvas de ajuste. Estas curvas presentarán discontinuidades en las zonas correspondientes a los huecos. Seguidamente se utiliza una técnica de ajuste polinomial para restaurar las partes incompletas de las curvas super…ciales. Para completarlas habrá que asegurar que se satisfaga no solamente la continuidad en la dirección de las tangentes y la curvatura, sino también la continuidad de la torsión. 44 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. Figura 2.31: Ejemplo de relleno utilizando el método de funciones de base radial. (a) Malla con hueco. (b) Malla reparada. (c) Mapa del error entre la malla reparada y la original.[Wu08] Figura 2.32: Ejemplo de malla con un hueco, y detección de las líneas de las características de la super…cie.[Li10] Las curvas super…ciales obtenidas dividen el hueco en otros sub-huecos más simples. A continuación, se determinan todos los puntos de ajuste de cada uno de los sub-huecos y se utilizan parches híbridos de Bézier-Lagrange para rellenarlos. Si el parche de tercer orden de Bézier no se ajusta correctamente o la interpolación de Lagrange no es estable, se requiere de una subdivisión para conseguir el resultado idóneo. Finalmente se lleva a cabo el proceso de triangulación y optimización del parche calculado. El resultado …nal es un conjunto de triángulos que se ajusta al hueco y que consigue mantener localmente la forma de la super…cie. El método que se propone en [Bru09] realiza un proceso de despliegue de la malla y, de esta forma, lleva a cabo el relleno en 2D. La aproximación propuesta se lleva a cabo en tres pasos. En el primer paso,se seleccionan los vértices del borde cerrado del hueco, y se les aplica el proceso de despliegue mediante la minimización de una función de energía. Durante este proceso, se limita el movimiento para que se eviten las autointersecciones. Tras el despliegue, el borde del hueco quedará convertido en un polígono plano simple. En el segundo paso, se triangula el polígono plano utilizando un algoritmo de triangulación de Delaunay limitado. En el tercer y último paso, el polígono o parche triangulado es incrustado en el objeto 3D utilizando las posiciones conocidas de los bordes. El parche resultante queda colocado de forma que cierra el hueco. Seguidamente será re…nado para que tenga la misma resolución que el entorno de la malla al que pertenece. Los vértices interiores son posicionados de forma que aproximen una super…cie de mínima energía (MES, minimum energy surface), utilizando dos funciones de energía: una función discreta de energía equitativa [Kob98] y una función de energía laplaciana para obtener una malla de mínimos cuadrados [Sor04]. En la …gura 2.33 puede verse un ejemplo de aplicación de este método. 45 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. Figura 2.33: Ejemplo de relleno mediante desdoblado de la malla. (a) Hueco en la cabeza del modelo humano. (b) Malla desdoblada.(c)-(e) Malla …nal obtenida tras la minimización de energía.[Bru09] Una idea sencilla, pero que ofrece buenos resultados es la propuesta en [Li08]. Aquí se propone un algoritmo que, en primer lugar, divide el hueco en huecos más planos para reducir el número de huecos complejos y para preservar características de detalle de la malla. Esta división se hace en base a la curvatura asociada a cada vértice del borde de hueco. Partiendo del vértice con menor curvatura, se van añadiendo vértices en un proceso iterativo, y ajustando el conjunto resultante a un polinomio bivariado de grado dos. Cuando la máxima desviación de este ajuste supere un valor determinado, se añade una nueva arista para dividir el hueco, en dos más aplanados. A continuación, para cada uno de los huecos de la malla, se proyecta el borde de hueco sobre un plano. Si el polígono proyectado tiene autointersecciones, el hueco se de…nirá como complejo, en caso contrario, será de…nido como hueco simple. En el caso de que se presente un hueco simple este será rellenado utilizando una técnica explicada más adelante. Si el hueco es complejo se hará necesario subdividirlo en otros más simples, utilizando la técnica que ellos denominan “expansión de aristas”. Para ello, se almacenan las aristas que producen la autointersección. En base a una búsqueda de conectividad idónea entre los triángulos cuyas aristas dan lugar a la autointersección, se divide el hueco en otros más simples. Los nuevos huecos serán sometidos de nuevo al criterio de análisis basado en su proyección sobre un plano. En el caso de que se encuentren de nuevo huecos complejos volverá a repetirse el proceso. Una vez que todos los huecos complejos han sido divididos en huecos simples, todos los huecos son simples, por lo que es el momento de proceder al relleno de los mismos. Para cada uno, primero se procede a la triangulación del polígono resultante de proyectar el borde de hueco en un plano. Esta triangulación plana se realizará utilizando la triangulación de Delaunay limitada basándose en el Diagrama de Voronoi A continuación se mapeará esa triangulación plana sobre la malla 3D para así rellenar el hueco (…guras 2.34). Simultáneamente la resolución de las nuevas triangulaciones puede mejorarse aplicando procesos de subdivisión y suavizado sobre la vecindad de los triangulos ya existentes. En [Zha07] se aplican dos ideas novedosas para el relleno de huecos en mallas triangulares. 46 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. (a) (b) Figura 2.34: Ejemplo de relleno mediante la técnica de subdivisión en huecos más simples [Li08]. En (a) y (b) mallas antes y después del relleno, respectivamente Figura 2.35: Ejemplo de relleno de huecos complejos utilizando la técnica de cálculo de normales.[Zha07] La primera, la técnica de avance frontal en la malla que es utilizada para generar un cierre inicial del hueco, en lugar de las técnicas tradicionales de triangulación 3D. La segunda, los triángulos que forman ese parche inicial son modi…cados mediante la estimación de las normales adecuadas. Finalmente, las tres coordenadas de cada nuevo vértice son recolocadas mediante la resolución de las ecuaciones de Poisson basándose en las normales adecuadas y los bordes del hueco. Por tanto, en este artículo se presentan dos esquemas de cálculo de normales adecuadas: esquema basado en armónicos y esquema basado en propiedades geodésicas. El primero de ellos se utiliza cuando el entorno del hueco es relativamente plano, en caso contrario se utilizará el segundo esquema. En la …gura 2.35 se puede observar la e…ciencia de este algoritmo. Un ejemplo de aplicación de super…cies NURBs es el que puede consultarse en [Kum07].En este método comienzan cerrando el hueco mediante una malla, basandose en la triangulación de Delaunay. Esta conectividad será la que mantengan …nalmente los puntos. A continuación, para cada hueco, se calculan 6 anillos de vértices alrededor del borde de hueco, basados en las relaciones de vecindad. Se calculan las curvas spline que se aproximen a cada uno de esos anillos. Estas curvas se utilizaran para obtener un conjunto de super…cie NURBS que cierren el hueco, en concreto 18 super…cies suavizadas. Sobre cada una de esas super…cies se proyectará la triangulación inicial que se hizo. Las coordenadas …nales se calcularán como 47 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. Figura 2.36: Ejemplo de relleno utilizando el método de ajuste de NURBs.[Kum07] una media entre todas esas proyecciones.Es un algoritmo que solo puede ser utilizado en super…cies simples con cierto suavizado (…gura 2.36). Como ejemplo de métodos que utilizan funciones implícitas puede acudirse a [Dav01]. Aquí se calcula una función implícita, de distancias, de…nida en el entorno del hueco a rellenar. Sobre ella se aplica un proceso de difusión que extiende la super…cie a lo largo del volumen. Es este un método simple de implementar, que genera super…cies que no intersectan entre sí y que es e…ciente en grandes mallas o de elevada resolución ya que el algoritmo sólo se aplica en las áreas cercanas a los huecos. En [Guo06] se presenta una variante de este método. Otro algoritmo muy e…ciente en el relleno de huecos y que también utiliza un campo de distancias con signo es el presentado en [Sag08]. En éste se parte de un conjunto de imágenes de rango obtenidas tras la digitalización de un objeto 3D. Para la fusión de esas imágenes de rango y, como representación intermedia, se utiliza un campo de distancias con signo. El método que se propone genera una super…cie para rellenar un hueco mediante la actualización de forma iterativa del campo de distancias, a la vez que se procura que se mantenga la continuidad con las imágenes de rango de partida. La super…cie interpolada se va generando mediante la minimización de la curvatura de la super…cie, que es lo mismo que la minimización del área de la super…cie interpolada en un dominio local. Dado que la isosuper…cie de un campo de distancia puede ser identi…cada como una super…cie interpolada (usando la función distancia), el método propuesto calcula el área de una super…cie interpolada, en la vecindad de un voxel, antes y después de invertir el signo de la distancia asociada a dicho voxel. Si el área se ve reducida al invertir el signo, entonces el método propuesto cambia el signo asociado al voxel. Por lo tanto, este método minimiza el área de la super…cie interpolada. Este cálculo se va iterando hasta que se llega a la convergencia. Además no se requiere de ninguna condición de borde y el estado inicial del proceso se …ja al calcular el campo de distancias con las imágenes de rango de partida. Por otra parte, dado que este método puede ser aplicado a un campo de distancias de resolución adaptativa, se puede decir que funciona e…cientemente en agujeros grandes y en entornos de curvatura elevada (…gura 2.37). Otro método que particiona la malla de entrada en volúmenes es el que se presenta en [Pod05]. En este artículo se propone un algoritmo de relleno de huecos en 3D basado en una descomposición del espacio en volúmenes atómicos. El proceso se divide en dos pasos. En el primero, se genera un cubo que contenga a la malla de entrada y se va particionando en volúmenes atómicos. Un volumen es atómico si no intersecta con los polígonos de la malla. A 48 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. Figura 2.37: Interpolación de huecos grandes en dos imágenes de rango. (a) y (b) son dos imágenes de rango adquiridas de puntos de vista opuestos que ya están alineadas. (c) es una sección 2D del campo de distancias inicial, calculado a partir de las dos imágenes de rango. (d) - (h) resultados tras el relleno de huecos. (i) sección 2D de las mallas generadas.[Sag08] partir de esta formulación, cada volumen atómico estará complemente o dentro de la malla …nal de salida (un volumen interior) o fuera de la misma (un volumen exterior). Se de…ne el modelo de salida como la unión de los volúmenes interiores, o lo que es lo mismo, viene implícito al identi…car la malla de salida como el borde entre los volúmenes interiores y los exteriores. La de…nición implícita garantiza que el objeto resultante sea hermético, sin huecos. En el segundo paso, se aplica un proceso de suavizado para hacer menos visible la estructura subyacente de los volúmenes atómicos. En este proceso se fuerza a que la clasi…cación de los volúmenes no pueda ser modi…cada mientras que se suaviza, para garantizar que no se produzcan autointersecciones en la malla …nal. Nooruddin y Turk en [Noo03] proponen un método que parte de la voxelización de la malla para el rellenado de huecos y reparación de zonas mal de…nidas (dobles paredes, caras Figura 2.38: Ejemplo de relleno de huecos utilizando la división en volúmenes atómicos propuesta en [Pod05]. 49 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. con intersección...). Además, basándose en la misma representación, proponen un método que posibilita simpli…car la malla. El procedimiento resultante no permite rellenar huecos en zonas de alta curvatura. Wang y Oliveira en [Wan07] toman una nube de puntos como datos de entrada y generan una representación intermedia consistente en una malla de caras triangulares sobre la que se hace una detección de bordes para determinar los huecos. Tras ello, se toma un grupo de puntos vecinos a esos bordes y se realiza una interpolación mediante la técnica MLS (Moving Least Squares) [Lan81]. En cuanto a métodos que se basan en técnicas para fotografías 2D, puede destacarse el artículo [Bru07]. En primer lugar, comienza con un rellenado inicial del hueco utilizando una interpolación geométrica. Esta interpolación realiza en primer lugar una triangulación del hueco sin añadir puntos interiores, y evitando que se produzcan auto-intersecciones. Seguidamente esa triangulación es re…nada, añadiendo puntos interiores y basándose en Delaunay, para conseguir una resolución similar al resto de la malla. Seguidamente esta super…cie de relleno es deformada utilizando una aproximación de varias vistas estéreo orientadas a la super…cie. Es decir se disponen de varias fotografías del objeto tomadas durante el proceso de digitalización para completar la textura del mismo. Tras aplicar un proceso de matching de las fotografías, se utiliza la información de las mismas para formular un problema de minimización de energía basado en una fotoconsistencia y un suavizado Laplaciano. Para resolver este sistema, se parte de los datos conocidos, que son los bordes de hueco. El método utilizado para la minimización de energía es el esquema Broyden-FletcherGoldfarb-Shanno (LSBFGS) de memoria limitada [Noc00]. Otro método que utiliza algoritmos, normalmente aplicados a imágenes 2D es el propuesto en [Bre05]. Aquí se combinan técnicas de ajuste global de la super…cie y técnicas de síntesis de textura. La aproximación propuesta tiene, por tanto, dos partes: en la primera se completa la super…cie subyacente utilizando técnicas de geometría simple, como las propuestas en [Del02], [Cas02], [Stu01] y, en la segunda parte, se propaga la textura de la super…cie 3D desde la porción vista hacia las zonas que se han completado o creado, utilizando una adaptación de las técnicas no paramétricas de síntesis de textura 2D, propuesta en [Efr99]. El objetivo …nal es completar la super…cie con un acabado realista basándose en la propagación del conocimiento que se tiene de las porciones visibles hacia las porciones invisibles. Este proceso se rige por la limitación geométrica impuesta por el relleno realizado en la primera parte de la aproximación. Aunque el relleno que se obtiene no es una reconstrucción precisa del fhueco, cuyo contenido es a priori desconocido, es aceptable para hacerse una idea de la forma real del objeto completo (…gura 2.39). Por último, otro tipo de métodos de relleno es el basado en la información del contexto. La idea está inspirada en los métodos de síntesis de textura comentados anteriormente. Un ejemplo representativo de este tipo de métodos es el propuesto en [Sha04]. En lugar de hacer suposiciones a priori de las partes que hay que rellenar, se analizan las super…cies que ya existen, y analizando las similitudes en formas que se repiten, junto con la información de la vecindad, los huecos se van rellenando progresivamente (…gura 2.40). El algoritmo propuesto parte de una división del volumen en un octree, lo que le con…ere diversas características a tener en cuenta: -Multi-escala: La identi…cación de los huecos, el análisis de la super…cie, las medidas de similitud son aplicadas de arriba hacia abajo, o, lo que es lo mismo, de menor a mayor grado 50 CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA CREACIÓN DE MODELOS 3D DE OBJETOS REALES 2.5. MÉTODOS DE RELLENO DE HUECOS. Figura 2.39: Relleno de huecos con síntesis de textura.[Bre05] Figura 2.40: Ejemplo de relleno de huecos utilizando un método basado en la información del contexto [Sha04]. de detalle. De forma que los pequeños detalles se in…eren a partir de un grado de detalle más bajo. - Funciones identi…cadoras o …rmas: Se ajustan funciones algebraicas de forma local como una función identi…cadora de la super…cie local que entra dentro de una de las subdivisiones del octree. La …rma se utiliza para determinar las similitudes entre conjuntos de puntos. -Alineación: Para ajustar la porción de malla determinada, con mayor similaridad, se aplica una transformación rígida utilizando la técnica ICP junto con pequeñas deformaciones elásticas en funciones asociadas a determinadas subdivisiones del octree. 51 Capítulo 3 Veri…cación de los algoritmos de image inpainting en el rellenado de huecos 3.1. Introducción En el capítulo anterior se explicaban las diferentes etapas que componen el proceso de digitalización de objetos mediante el uso de escáneres 3D. Como ya se mencionó, el eje principal de esta tesis está …jado sobre la última de las etapas, el procesado y, en concreto, sobre el problema del relleno de huecos Al …nal del capítulo II, se ponía de mani…esto que, a pesar de la extensa investigación que existe sobre este problema, aún no existe una solución completa y automática para su resolución. En esta tesis se plantea la realización de un método que, basándose en algoritmos de restauración de imágenes (image inpainting en inglés), sea capaz de hacer un rellenado de huecos los más e…ciente y robusto posible en mallas 3D. El hecho de emplear estos algoritmos 2D es debido a que suelen generar buenas soluciones en diversas situaciones, en el ámbito de la restauración de fotografías. Por tanto, en primer lugar, en la sección 3.2, se hará una introducción a las técnicas de image inpainting que pueden encontrarse en la literatura, para seguir a continuación con una explicación más detallada de dos de las técnicas que han sido seleccionadas para la veri…cación del método propuesto. Seguidamente, en la sección 3.3, se esquematizará el método de relleno que se ha propuesto para continuar, desde la sección 3.4 a la 3.7, con la explicación detallada cada una de las etapas en que se divide dicho método. Para terminar, en la sección 3.8, se planteará la validación del método mediante el análisis de los resultados experimentales obtenidos y en la sección ?? se obtendrán las conclusiones pertinentes. 3.2. Técnicas de restauración de imágenes Se conoce como image inpainting al proceso de restauración de imagen que permite recuperar una parte deteriorada de ésta, o eliminar alguna zona no deseada. En fotografía digital se trata de traducir a algún algoritmo las técnicas manuales que aplican los restauradores profesionales de cuadros o fotos. Estas técnicas suelen recuperar las regiones dañadas o perdidas a partir de la información que hay disponible en el entorno. 52 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.2. TÉCNICAS DE RESTAURACIÓN DE IMÁGENES (a) (b) Figura 3.1: (a), Restauración de una imagen antigua deteriorada; (b) Restauración de una imagen estropeada con ruido. Es por esto que puede ser interpretada como un tipo de interpolación. Como aplicación típica, en fotografía y cine, de estas técnicas cabe destacar la recuperación de la imagen tras el deterioro del material de soporte. Por ejemplo, la reconstrucción de fotos (como la que se observa en la …gura 3.1(a)), eliminación de manchas en la película de cine, etc. Por otra parte, también puede utilizarse para eliminar letras que aparezcan impresas en las fotos (fecha, datos,...), eliminación de ojos rojos, eliminación de objetos no deseados, etc. Son variados los algoritmos que intentan hacer frente a este problema. En general, muchos de estos algoritmos constan de un paso inicial en el que el usuario ha de seleccionar las partes a eliminar mediante una máscara de selección. Para algunos usos especí…cos, como la eliminación de ruido, manchas de debidas al polvo, etc,... el algoritmo puede funcionar de forma automática sin la intervención del usuario (véase otro ejemplo en la …gura 3.1(b)). De los diversos algoritmos que pueden encontrarse en la literatura cientí…ca, puede proponerse la siguiente clasi…cación de los métodos propuestos: 1. Métodos basados en síntesis de textura: Mediante esta metodología se consiguen rellenar grandes regiones de la imagen con texturas (patrones repetitivos con estocasticidad moderada). En determinados casos se hace un estudio analítico de la textura y en otros se realiza un muestreo de esa textura, copiando y pegando la información en las zonas a rellenar. En el caso de imágenes reales, algunas pueden considerarse formadas por estructuras sin un orden prede…nido y otras como una textura con un patrón de repetición. Por tanto, será necesario tener en cuenta esa regularidad o irregularidad en la imagen, lo cual añade complejidad al problema, [?]. Como ejemplos de estos métodos pueden consultarse los trabajos desarrollados en [?],[?], [Efr99], [?] y [?]. 2. Métodos basados en la difusión de información: Algunos de los algoritmos resuelven el problema especí…co de eliminación de ruido, polvo, suciedades o texto,..., que no es otra cosa que eliminar y sintetizar pequeñas regiones dentro de la imagen, como los que aparecen en [?], [?],[?], [?], [?]. Estos algoritmos rellenan los huecos mediante la propagación de información de la imagen hacia el interior de la región vía difusión. Estos métodos se basan en las ecuaciones diferenciales que describen el ‡ujo de calor y funcionan con muy buenos resultados, aplicados como algoritmos de restauración. El inconveniente que presentan es que el proceso de difusión introduce cierta borrosidad en las imágenes, que se hace más visible cuanto mayores son las regiones. 3. Métodos basados en la información estadística: Otro grupo de algoritmos realizan un estudio estadístico de la imagen a restaurar y/o de otras imágenes similares. 53 CAPÍTULO 3.3. MÉTODO 3. VERIFICACIÓN DESARROLLADO. DE LOSAPLICACIÓN ALGORITMOS DE DE ALGORITMOS IMAGE INPAINTING DE IMAGE EN EL RELLENADO DE HUECOS INPAINTING AL RELLENADO DE HUECOS EN MALLAS. En base a este análisis pueden inferirse los valores de los pixeles que estan dentro del hueco que hay que rellenar. En esta dirección, está muy extendido el uso de los Campos de Markov, que consideran la imagen como un campo bidimensional de variables aleatorias. En el método que se ha desarrollado para esta tesis se utilizaron algoritmos del segundo y tercer grupo para veri…car la e…cacia del método. Los algoritmos empleados serán explicados más adelante en la sección 3.5. A continuación se iniciará la explicación del método que ha sido desarrollado. 3.3. Método desarrollado. Aplicación de algoritmos de image inpainting al rellenado de huecos en mallas. Una vez han sido expuestos las diferentes metodologías para el rellenado de huecos en mallas y para la restauración de imágenes, se trata ahora, como se comentó en la introducción, de proponer una idea que combine ambas técnicas: el rellenado de huecos en mallas utilizando los algoritmos de restauración de imágenes. Por tanto, la hipótesis que se plantea, trata de aplicar un método diseñado para datos 2D a un problema que se presenta en datos 3D, por lo que, como es lógico, habrá que diseñar los mecanismos adecuados para hacer las diferentes transformaciones entre los datos. El objetivo es emplear un método que se normalmente se utiliza para información bidimensional (imagen) en un modelo 3D que contiene información tridimensional. Para ello podríamos abordar la modi…cación de los algoritmos de reparación de imágenes para que se pueda aplicar directamente sobre la malla, o, por el contrario, modi…car el tipo de representación 3D y adaptarla a 2D, de tal forma que el algoritmo de reparación de imágenes pueda aplicarse sin modi…cación. En esta tesis se aborda esta segunda forma. Lo que se hará será utilizar una representación bien conocida de representación 3D, que es el el de las imágenes de rango, mediante la cual se almacena la información 3D en un formato idéntico a cómo se almacenan las imágenes. Por ello, se procede a convertir el trozo de malla, en donde se ubica el hueco a rellenar, en una imagen de rango, y sobre ella se aplica el algoritmo para rellenar el hueco. Por último, se requiere una conversión de la zona rellena en información 3D, para que el objeto 3D de partida quede rellenado. Este procedimiento que se ha explicado puede ser esquematizado en los siguientes pasos (representados en la …gura 3.2): 1. Transformación 3D a 2D para obtener la imagen de rango, Ih , asociada a la malla con huecos Mh . 2. Aplicación del algoritmo de image inpainting. La imagen reconstruida se denotará por If . 3. Transformación 2D a 3D y fusión de los datos de relleno con la malla con agujeros. Se transforman los datos de If que se corresponden con los huecos rellenos, resultando la malla Mf , que se fusionará con Mh para dar como resultado la malla M 0 . Para poder veri…car la validez de este método es necesario disponer de un amplio conjunto de resultados experimentales. Para realizar esta experimentación, se ha tomado un conjunto de mallas 3D de objetos que no presentan ningún hueco y a las que se les ha generado huecos arti…ciales de diversa forma y tamaño (ver Tabla 7.6 en ANEXO XXXXXX). La razón 54 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.4. GENERACIÓN DE LA IMAGEN DE RANGO Figura 3.2: Etapas del método de relleno de huecos desarrollado de proceder de esta manera es para que se disponga de datos que permitan el análisis y veri…cación de la bondad de los resultados, ya que así puede compararse la malla de partida, sin huecos, con la malla rellenada. Por último, en este capítulo se probarán varios métodos de relleno para comparar la viabilidad de cada uno de ellos. A continuación se procederá a detallar cada uno de los pasos que se han expuesto. 3.4. Generación de la imagen de rango En esta etapa se lleva a cabo la transformación de los datos 3D a 2D, mediante la generación de una imagen de rango, Ih , de la malla que vaya a ser reparada. Como ya se señaló en la sección ?? del capítulo anterior, la imagen de rango es un método de representación de super…cies en el que en una imagen codi…ca, mediante niveles de grises, la información de altura de los puntos 3D respecto a un plano de referencia o punto de vista. Es evidente que no es válido cualquier plano para obtener una imagen de rango adecuada de la super…cie. Su orientación con respecto a la super…cie 3D es decisiva para que la proyección resultante sea representativa de la malla Por otra parte, el otro parámetro decisivo para la generación de la imagen de rango es el ancho de cada una de las celdas en que se divide el plano de referencia. Esas celdas almacenan las distancias a que se encuentran los puntos de la super…cie que les corresponden al proyectar. En un somero análisis del problema, se deduce que si el ancho de esas celdas fuese lo su…cientemente grande, varios puntos 3D incidirían sobre la misma celda del plano, dando lugar a una pérdida en la capacidad de representación de la imagen de rango. Por otra parte, si se redujese el ancho de celda demasiado, la nueva situación daría lugar a que cada punto 3D se correspondería con una única celda del plano. Esto evitaría las pérdidas que se daban en el caso anterior pero, sin embargo, daría lugar a otros errores. Ahora se generarían celdas vacías entre las celdas sobre las que inciden puntos consecutivos de la super…cie, dada la excesiva resolución de la imagen de rango. Por tanto, la solución ideal sería un punto intermedio entre ambos casos. Tras lo anterior, se plantea ahora la correspondiente formulación matemática al problema expuesto. De esta forma, el proceso de obtención de la imagen de rango necesita de los dos parámetros fundamentales que se enumeran a continuación: 1. Plano de proyección sobre el que proyectar. 2. Resolución de la imagen de rango. Para determinar estos dos parámetros se establecen los criterios que se exponen a continuación. 55 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.4. GENERACIÓN DE LA IMAGEN DE RANGO Figura 3.3: Elección del plano de proyección para hacer la transformación 3D a 2D: (a) elección errónea; (b) elección idónea. Plano de proyección sobre el que proyectar. En este punto lo que se pretende es elegir qué orientación tendrá que tener el plano de proyección con respecto a la super…cie 3D. Es evidente que el plano de proyección que se elija tendrá in‡uencia en la capacidad de representación que tenga la imagen con respecto a los datos 3D. En la …gura 3.3 (a) se muestra un ejemplo de una elección errónea del plano de proyección ya que coinciden las proyecciones de dos puntos 3D en un mismo punto de plano, lo que da lugar a una función bidimensional multivaluada. Sin embargo, en la …gura 3.3 (b) el plano de proyección elegido no da lugar a situaciones como la anterior. Como puede fácilmente deducirse, el problema de elección del plano de proyección es diferente si se trabaja con vistas parciales de un objeto 3D que si se trabaja con el objeto 3D completo. En el primer caso, la orientación del plano viene determinada por la posición del escáner con respecto a la super…cie o vista parcial. En el segundo caso habrá que encontrar un método de determinación de la orientación idónea para que la imagen de rango sea de utilidad en el método de relleno desarrollado. Este último caso será tratado en el capítulo siguiente. Inicialmente, para la validación del método de relleno se consideró su…ciente el uso de vistas parciales. En el proceso de adquisición el escáner genera las coordenadas 3D de los vértices de la malla con respecto a un sistema de referencia OXY Z, centrado en plano imagen y con el eje Z dirigido hacia fuera, es decir, coincidente con el eje de visión del escáner. La elección del plano, en este caso, es inmediata, ya que coincide con el plano XY , que representa el campo de visión del escáner. Esta situación es la que será considerada en lo que sigue de este capítulo. 56 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.4. GENERACIÓN DE LA IMAGEN DE RANGO Resolución de la imagen de rango. Una vez que se ha determinado la orientación del plano de proyección, el siguiente paso es la de…nición de la resolución de la imagen Ih en píxeles, para lo cual debe determinarse primero el tamaño de la imagen en milímetros. Como se dijo anteriormente, dada una vista parcial Mh , si se toman solo las coordenadas X e Y de sus puntos y se descarta la coordenada Z, se obtienen directamente las coordenadas de los puntos proyectados sobre el plano de referencia. De esto se deduce que el tamaño de la imagen es una constante para una malla determinada. Esto es, si la vista parcial que se va a representar, Mh , está formada por C coordenadas, cuyos valores máximos y mínimos en X y en Y son xmax , ymax y xmin , ymin , respectivamente, el tamaño que representa la imagen es de w x h, en donde: w = xmax h = ymax xm n ym n (3.1) Ésta limita un área rectangular que ha de dividirse en una cuadrícula o rejilla, cuyas celdas se corresponden con los píxeles de la imagen Ih . El número de celdas de la rejilla de proyección determina la resolución y la discretización de la proyección Mh . De esta manera, si se elige que la anchura de la rejilla es q (mm=pixels), la resolución de la imagen es 1=q (pixels=mm) y su tamaño es (n; m) = (w=q h=q)(pixels), como puede observarse en la …gura 3.4. El píxel (i; j) almacena la información de profundidad, o lo que es lo mismo, la coordenada zi del nodo ni 2 Mh cuya coordenada (xi ; yi )veri…ca (i (j 1) q 1) q xi < i q xi < i q (3.2) Como se pone de mani…esto, cuanta menor resolución tenga la imagen, mayor será el tamaño de las celdas de la cuadrícula y mayor será el número de nodos Mh que veri…can la condición 3.1 o, dicho de otra forma, existirán puntos de la super…cie cuya proyección se corresponda con la misma celda de la imagen. En tales casos, se ha optado por almacenar en ese píxel el valor de la menor coordenada z del conjunto de nodos que veri…can esa condición. Es evidente que esto conlleva pérdidas de información en la imagen de rango. En el extremo opuesto, si se elige una resolución de la imagen muy elevada el tamaño del píxel disminuirá, dando lugar a que existan algunas celdas para las que ningún nodo haya veri…cado la condición 3.1, lo que se traduce en una imagen con zonas vacías. Cuando aparecen estas regiones, se les aplica un algoritmo de rasterización, para que en la imagen de rango exista una continuidad en donde efectivamente es continua la super…cie. Este algoritmo, que será explicado en el punto siguiente, conlleva la introducción de datos arti…ciales, calculados matemáticamente, que no se corresponden con valores reales obtenidos de la super…cie. Por tanto, aun disponiendo de esta herramienta, hay que intentar reducir este tipo de regiones vacías en la imagen de rango buscando obtener, a toda costa, una resolución tan óptima como sea posible para evitar la degeneración de la representación 2D de la malla Mh . Ambas situaciones extremas han de evitarse. Es necesario calcular un valor óptimo de la resolución de la imagen de rango, valor que condicionará la etapa de aplicación del algoritmo de inpainting, o lo que es lo mismo el rellenado de huecos que se haga de la malla. 57 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.4. GENERACIÓN DE LA IMAGEN DE RANGO Figura 3.4: Dimensiones de la imagen de rango en función del tamaño del píxel elegido, q. Figura 3.5: Imágenes de rango en función del ancho de celda elegido 58 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.4. GENERACIÓN DE LA IMAGEN DE RANGO Figura 3.6: In‡uencia de la uniformidad de la malla en la generación de la imagen de rango En la …gura 3.5 se muestran las proyecciones de una malla Mh , con distintos valores de resolución de la imagen de rango. En el proceso de generación de la imagen de rango tiene una gran importancia el tipo de distribución de los puntos en la super…cie o malla 3D. Así, si la distribución es no uniforme, por más que se pretenda, será imposible encontrar un valor de ancho de píxel que evite las pérdidas mencionadas anterioremente. Con ese tipo de mallas se producirán tanto pérdidas debidas a coincidencias en la proyección de varios puntos sobre la misma celda como pérdidas debido a las regiones de píxeles vacías entre puntos consecutivos de la malla. Dado que la rejilla de proyección es forzosamente de distribución uniforme, interesará que la super…cie 3D tenga una distribución lo más uniforme posible (…gura 3.6). Esto es inmediato cuando se trabaja con vistas parciales ya que, por el propio funcionamiento del escaner, las vistas son generadas con una distribución uniforme. Sin embargo, en objetos completos la malla …nal no suele tener una distribución uniforme, ya que son creados mediante vistas parciales, que pueden ser de diferentes resoluciones, y a las que se aplica un proceso de integración y procesado. Es por esto que, al trabajar con objetos completos, se incluirá una etapa al comienzo de remallado de la super…cie. Esta etapa será explicada con mayor detalle en el capítulo siguiente. Por tanto, a partir de lo explicado, queda garantizado que las mallas con las que se trabaja tienen una distribución aproximadamente uniforme. Con este tipo de super…ces, el valor adecuado de q estará relacionado con la media de las longitudes de las aristas de la malla 3D. Dado que, de forma general, no se da una uniformidad total y con el objeto de encontrar un valor óptimo de q, se hace necesario buscarlo de forma experimental. Para determinar la mejor resolución, se ha de…nido la ocupación óptima por píxel. Así, se dice que un píxel pij 2 Ih está ocupado de forma óptima si existe un y solo un nodo ni 2 Mh , que veri…que la condición 3.1 para este pixel. A partir de esto, surge la siguiente de…nición: De…nición 1 Se de…ne el Ratio de Ocupación Óptima como el ratio entre el número de píxeles ocupados de forma óptima y el número total de píxeles en la imagen. Así, este ratio 59 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.4. GENERACIÓN DE LA IMAGEN DE RANGO puede expresarse como sigue: OIh = n Pn P Vij i=1j=1 n m (3.3) De…nición 2 donde n m es el número de píxeles de Ih y Vij es una variable que toma los siguientes valores: Vij = 1 si el pixel pij está ocupado óptimamente 0 en el reso de los casos (3.4) De esta manera, OIh , será pequeño para imágenes de baja resolución. A medida que la resolución se incrementa, el número de píxeles óptimamente ocupados también lo hace, y lo mismo para OIh hasta el valor en el que cada píxel está ocupado óptimamente. A partir de este punto, OIh decrece de nuevo, dado que el número de píxeles en la imagen se incrementa mientras el número de píxeles óptimamente ocupados no. El valor de resolución idóneo será aquel que haga máximo a OIh . Para …jar el mejor valor del ancho de píxel (que es equivalente al valor de resolución de la imagen), se ha calculado el ratio OIh para diferentes valores de qIh para cada malla de la base de datos utilizada. Para que este cálculo sea independiente de las características de la malla, se ha de…nido qIh proporcional a la media de las longitudes de las aristas, dm : qIh = dm (3.5) donde es el factor de proporcionalidad y representa la variable relacionada con OIh . Por tanto se han ido generando, para cada malla de la base de datos, la variación del ratio de ocupación óptima en función de la variación de , o lo que es lo mismo de qIh . Esta relación entre variables puede representarse grá…camente en curvas como las que aparecen en la …gura 3.7. En tales curvas se observa que, dado que todas las mallas han sido capturadas con el mismo sensor y, consecuentemente, la distribución de todas es similar, el máximo de todas las curvas se sitúa dentro del mismo intervalo de variación de . Un parámetro que aún no ha sido tratado y que también ha de tenerse en cuenta es la posición relativa de la vista parcial con respecto al plano de proyección. Ésta viene determinada inicialmente por la posición relativa del objeto digitalizado con respecto al escáner, ya que se …jó como plano de proyección el plano XY (Z = 0), asociado a la posición del escáner. Por consiguiente, la distancia entre malla y plano de proyección, será, inicialmente, la distancia entre objeto y escáner. Ahora bien, aunque, matemáticamente, la proyección puede llevarse a cabo para cualquier valor de esa distancia, el algoritmo de restauración sí es sensible a ese valor, o lo que es lo mismo, al rango de valores que almacene la imagen que tiene que procesar. De esta forma, si la distancia es alta, los valores almacenados en la imagen de rango son elevados y , por tanto, al funcionar los algoritmos de restauración de forma iterativa, se necesitarán más iteraciones para conseguir un valor …nal adecuado en las zonas de relleno. Por ello, interesará acercar lo máximo posible a la vista parcial hacia el plano de referencia, lo cual se realiza aplicando un factor de escala, fesc , a la imagen de rango como sigue: 60 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.4. GENERACIÓN DE LA IMAGEN DE RANGO Figura 3.7: Relación entre el ratio de ocupación óptima OIh y el factor de proporcionalidad 61 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE3.5. HUECOS APLICACIÓN DE LOS ALGORITMOS DE RESTAURACIÓN Figura 3.8: Escalado de los valores, acercamiento en Z al plano Z=0 Ih0 = Ih fesc (3.6) En la …gura 3.8 aparece representado grá…camente el proceso de escalado.Lógicamente, el factor de escala fesc habrá que tenerlo con los resultados que se obtienen tras el algoritmo de image inpainting. Ahora, una vez obtenida la imagen de rango, I 0 h , ya se cuenta con un elemento en formato de imagen sobre el que aplicar el algoritmo de restauración de imagen, y así obtener la imagen restaurada, If , que se está buscando. A continuación se van a describir los algoritmos de restauración de imagen que van a ser aplicados. 3.5. Aplicación de los algoritmos de restauración En esta etapa se va a aplicar el algoritmo de image inpainting sobre la imagen Ih0 obtenida en la etapa anterior. Como se mencionó anteriormente, una vez revisada la literatura sobre los algoritmos de restauranción de imágenes, se decidió comprobar el funcionamiento del método incluyendo dos tipos de algoritmos de restauración, cada uno perteneciente a una de las categorías enumeradas. En concreto, se planteó la aplicación de un método basado en la difusión de información: el desarrollado por Criminisi et al. [?]; y otro método basado en la información estadística: el desarrollado por Roth y Black [?]. En ambos se observó y comprobó la bondad de los resultados que producían al utilizarlos con fotografías, y por eso se decidió aplicarles en el método propuesto. A continuación se describirá brevemente la base teórica de estos algoritmos para, seguidamente, explicar el modo de integración de esos algoritmos en el método que se pretende veri…car en este capítulo. 62 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE3.5. HUECOS APLICACIÓN DE LOS ALGORITMOS DE RESTAURACIÓN (a) (b) (c) Figura 3.9: (a) Imagen original; (b) Imagen con la máscara de selección aplicada, con la que se señala qué parte se desea eliminar; (c) Imagen resultante tras la aplicación del algoritmo de restauración propuesto por Criminisi et al. en [?]. Algoritmo de restauración de la imagen basado en el muestreo Este método, descrito en [?], combina las técnicas de síntesis de textura que utilizan muestreo y las técnicas de difusión de imagen para calcular el rellenado de huecos en la imagen. Para este …n, el algoritmo comienza con la introducción por parte del usuario de la máscara de selección. Esta máscara indica qué zonas de la imagen han de ser restauradas. El usuario también tiene que especi…car el ancho de la ventana que se utilizará para el muestreo. Aunque en general este parámetro suele …jarse en un valor que funciona bien en la mayoría de los casos. Durante su ejecución, el algoritmo va rellenando, desde los bordes hacia el interior, los huecos seleccionados. Este rellenado lo realiza estudiando la textura y la estructura de la imagen, tomando muestras y propagando la información de textura y estructura hacia el interior de la imagen. Hay que resaltar que es muy importante el orden en que se realiza el rellenado de los pixeles de la imagen. Esto es debido a que se trata de un algoritmo iterativo que va teniendo en cuenta el valor del pixel que se calculó en la iteración anterior. El método que emplean es el llamado piel de cebolla, que va rellenando anillos del hueco de forma concéntrica hacia el interior. En la 3.9 puede observarse un ejemplo del funcionamiento de este algoritmo con una imagen en la que se ha querido eliminar uno de los elementos que aparecen. Algoritmo de restauración basado en el Producto de Expertos Esta técnica, desarrollada por Roth y Black [?], explota las ideas de la codi…cación dispersa de imágenes (sparse image coding) que consigue representar parches de la imagen como la 63 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE3.5. HUECOS APLICACIÓN DE LOS ALGORITMOS DE RESTAURACIÓN combinación lineal de …ltros aprendidos para el aprendizaje del comportamiento estadístico de las imágenes, utilizando los Campos de Markov (MRF- Markov Random Fields). El método empleado se denomina Campo de Expertos y modela la probabilidad de una imagen en términos de un campo aleatorio con cliques (parches con determinadas relaciones de vecindad) solapados, cuyos potenciales son representados como un Producto de Expertos [?]. La función del Producto de Expertos es modelar distribuciones de probabilidad de elevadas dimensiones (parches de la imagen) a partir del producto de varias distribuciones de expertos, donde cada experto trabaja en un subespacio de baja dimensión, sencillo de modelar. En concreto, al aplicar un …ltro lineal a un parche de imagen se produce el subespacio de una dimensión que se modelará. Por tanto, la densidad de probabilidad del parche de imagen puede ser de…nido como el producto de las distribuciones que describen los …ltros lineales. Para modelar la probabilidad de la imagen completa, se emplea el Campo de Markov V (x ) que representa la probabilidad de la imagen como una distribución de Gibbs p = z1 e k k , donde x es una imagen y Vk (xk ) es la función potencial para el clique xk . Considerando un Campo de Markov homogéneo, todo los potenciales Vk son los mismos para todos los cliques, Vk (xk ) = V (xk ). Para de…nir la función V , los potenciales del Campo de Markov son representados como el Producto de Expertos para todos los cliques. Consecuentemente, la probabilidad de la imagen puede ser modelada en términos del producto de las distribuciones de …ltros lineales. Todos los parámetros en este modelo son aprendidos a partir de un conjunto de imágenes, maximizando su probabilidad, es decir, maximizando la probabilidad para los modelos del Producto de Experto y del Campo de Expertos. El algoritmo propaga la información utilizando el Campo de Expertos dentro del conjunto de puntos pertenecientes a la vecindad de los pixeles que se desean rellenar. La propagación se realiza de forma iterativa, teniendo en cuenta el modelo de probabilidad de la imagen (modelo de Gibbs). Como puede observarse en la 3.10 llama la atención la e…cacia del algoritmo en la restauración de las imágenes. Este modelo ha sido entrenado utilizando 2000 regiones de imágenes que se han extraído de la base de datos para segmentación de Berkeley Segmentación (escenas naturales, personas, edi…cios, etc) [?]. En la Tabla 3.1 se muestra un grupo de imágenes pertenecientes a esa base de datos. Aplicación del algoritmo de restauración a la imagen de rango En general este tipo de algoritmos no hace una selección automática de los píxeles sobre las que se efectuará el relleno. Sólamente actuarán sobre los que les vengan marcados a la entrada. Por tanto, para la aplicación de estos algoritmos habrá que introducir tanto la imagen de rango, Ih0 , como una máscara de selección de los píxeles a rellenar, Qh . Esta máscara es una imagen binaria, del mismo tamaño que la imagen de rango, (n; m) = (w=q h=q)(pixels), y en las que aparecen activos los píxeles sobre los que se pretenda realizar el relleno, como se muestra en la …gura 3.11. 64 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE3.5. HUECOS APLICACIÓN DE LOS ALGORITMOS DE RESTAURACIÓN (a) (b) (c) (d) Figura 3.10: (a) Fotografía antigua deteriorada; (b) Restauración de la fotografía antigua mediante la aplicación del algoritmo propuesto en [?]; (c) Imagen original con un texto sobrepuesto que desea eliminarse; (d) Imagen con el texto eliminado tras la aplicación del algoritmo de [?]. Tabla 3.1: Selección de un subconjunto de imágenes del banco de imágenes de Berckley utilizado para el entrenamiento del algoritmo propuesto por Roth et al [?] 65 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO 3.6. TRANSFORMACIÓN DE HUECOS DE 2D A 3D. TRIANGULACIÓN DE HUECOS Figura 3.11: Ejemplo de Máscara de selección 3.6. Transformación de 2D a 3D. Triangulación de huecos Para completar la reparación de la malla, es necesario transformar los datos que se han obtenido en la etapa anterior a 3D. Solamente será necesario aplicar esa transformación a los datos nuevos que se han generado tras la aplicación del algoritmo de restauración, es decir, sobre los huecos rellenos. La selección de estos píxeles en la imagen restaurada es inmediata ya que se obtienen directamente al aplicarle la máscara de selección, tal y como se muestra en la …gura 3.12. La transformación de 2D a 3D se traduce en la obtención de la coordenada 3D que se corresponde con esos píxeles rellenos. En el proceso de creación de la imagen de rango se decía que cada píxel almacenaba la distancia a la que se encontraba el punto 3D de la malla cuya proyección ortogonal sobre el plano de proyección, incidía sobre la celda correspondiente a dicho píxel. Por tanto, el valor que almacene cada píxel rellenado, indica la distancia a la que se encuentra el punto 3D con respecto al plano imagen, y, en el caso de vistas parciales, se correspondía con la coordenada z. Por lo tanto, una vez aplicado el relleno, se obtienen directamente las coordenadas z de los puntos que formarán el relleno 3D. Las coordenadas x e y vendrán de…nidas por la posición que tenga ese píxel dentro del plano imagen. De esta forma, si la imagen de rango representaba valores entre una (xmin ; ymin ) y una (xmax ; ymax ), y se eligió una resolución de q píxeles por milímetro, dado un pixel (r; s) que almacena el valor r, la correspondiente coordenada 3D para ese pixel será: (x; y; z) = xm n + s q; ymax r q; r fesc ; r = f1; 2; :::; ng; s = f1; 2; :::; mg (3.7) donde fesc es el factor de escala que se aplicó en la Ecuación 3.6 para acercar los valores de la imagen de rango al nivel de cero en Z (al plano XY ). Hay que señalar que en la ecuación 66 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO 3.6. TRANSFORMACIÓN DE HUECOS DE 2D A 3D. TRIANGULACIÓN DE HUECOS Figura 3.12: Obtención de los píxeles rellenos de la imagen restaurada mediante la aplicación de la máscara. anterior se ha considerado que las coordenadas de los píxeles vienen de…nidas por la …la r y columna s que ocupan en la matriz imagen. Es por ello que la coordenada x depende de la segunda coordenada del plano imagen, s, y la coordenada y de la primera, r. En la …gura 3.13 puede verse la relación entre las coordenadas del plano imagen y las coordenadas 3D. Una vez calculadas todas las coordenadas se dispone de una nube de puntos 3D, Ri , correspondientes a los i huecos de la malla que han sido rellenados. Ahora es el momento de de…nir las super…cies rellanadas mediante la triangulación de esas nubes de puntos. A estos nodos se le añadirán, para calcular la triangulación, los puntos que conforman el borde de los huecos, BHi . Aunque estos puntos pertenecen a la malla inicial, Mh , sirven como delimitadores de cada una de las zonas rellenas. A su vez, tendrán la función de servir como eje de unión o cosido entre la malla inicial con huecos,Mh , y las mallas de relleno, Hi . En la …gura 3.14(b) se puede apreciar esta diferenciación: en rojo se representan los puntos de los huecos (los devueltos por los algoritmos de reparación) y en azul, los puntos del borde de los huecos (…gura 3.14(a)). En la sección ?? del capítulo anterior se veía la diferencia entre una nube de puntos estructurada y una no estructurada. Pues bien, en el problema que nos ocupa se observa claramente que los huecos rellenos en la imagen se traducen, al aplicar la ecuación 3.7 en una nube de puntos estructurada, cuyos puntos mantienen la relación de vecindad que les venía de…nida según la posición relativa que ocupaban sus correpondientes píxeles en la imagen. Por tanto, la triangulación de los puntos generados en el relleno,Ri , se obtiene de forma inmediata a partir de las relaciones de vecindad que se extraen de la imagen de rango restaurada (…gura 3.15). Esta triangulación, que se denominará T1i , da lugar a i porciones de malla H1i , correspondientes a los i huecos que se han rellenado, y que no están conectadas con la malla inicial Mh . Por ello, buscando esa fusión entre ambas mallas, se hace necesario 67 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO 3.6. TRANSFORMACIÓN DE HUECOS DE 2D A 3D. TRIANGULACIÓN DE HUECOS Figura 3.13: Correspondencias entre las coordenadas 3D y las coordenadas del plano imagen. (a) (b) Figura 3.14: Puntos que se van a triangular (los de los huecos –en rojo- junto con los del borde de los mismo –en azul-): (a) Puntos del borde de los huecos; (b) Puntos que se van a triangular. 68 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO 3.6. TRANSFORMACIÓN DE HUECOS DE 2D A 3D. TRIANGULACIÓN DE HUECOS Figura 3.15: Relacion de vecindad entre puntos / relación de vecindad entre pixeles. Nube de puntos estructurada calcular otra triangulación T2i entre los bordes de esas porciones de malla, denominados B1i , y los bordes BHi de los huecos de Mh . Tal y como fue de…nido el proceso de generación de la imagen de rango en la sección 3.4, se …jaba un ancho de píxel óptimo para evitar una degeneración en la representación de la super…cie 3D. También se decía que las pérdidas en el proceso tendían a ser nulas cuanto más uniformidad presentase la malla 3D. Dado que no puede asegurarse una uniformidad total, es evidente que siempre se producirá una pérdida de datos en la creación de la imagen de rango. Es decir, no todos los puntos 3D de la malla vendrán representados únivocamente en la imagen de rango. Por tanto, esta a…rmación también será aplicable a los puntos que forman los bordes de los huecos BHi . Es por eso que la triangulación que una los bordes de las porciones rellenas con los bordes de hueco, no puede obtenerse, de forma inmediata, a partir de la imagen de rango, como se explicaba en el párrafo anterior. El cálculo de esta triangulación, T2i , entre los bordes de las mallas, B1i , y los bordes de huecos, BHi , se llevará a cabo en el espacio 3D, con la nube de puntos B1i [ BHi , como puede observarse en la …gura 3.16. El método de triangulación elegido ha sido el que se propone en [?]. Este método, que está basado en la triangulación de Delaunay ([?]) extendida a 2.5 D, utiliza un triángulo inicial como semilla del proceso y a partir de él se va extendiendo la triangulación a toda la nube de puntos. La principal ventaja de este método es la rapidez de cálculo en grandes nubes de puntos ya que aplican las ideas de [?] de cálculo adaptativo de punto ‡otante. La triangulación …nal de la nube de puntos Ri [ BHi se obtiene como la unión T1i [ T2i y da lugar las porciones de malla Hi . Debido al método de triangulación empleado y ante la diversa complejidad que pueden presentar los bordes de huecos, han de procesarse las mallas Hi resultantes para detectar y corregir los posibles errores. Concretamente, en [?] se menciona que pueden generarse los siguientes tipos de errores: Vértices que no constituyen una variedad bidimensional (vértices non-manifold). 69 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL 3.7.RELLENADO INTEGRACIÓN DE HUECOS DE LOS HUECOS TRIANGULADOS CON LA MALLA INICIAL Figura 3.16: Esquema de las triangulaciones boundary 1 U boundary 2 Huecos en la triangulación. Aristas que no constituyen una variedad bidimensional (aristas non-manifold). Puntos, aristas y triángulos exteriores al contorno de limitado por BHi . Triángulos duplicados. Triángulos con orientación diferente. Una vez concluída la triangulación y aplicado el proceso de corrección de errores se tiene un conjunto de i mallas de relleno Hi . En la …gura 3.17 aparecen las mallas de relleno correspondientes a la aplicación del método sobre la malla que aparece en la …gura 3.14. Es el momento ahora de continuar con la siguiente etapa del proceso en la que se integrarán estas mallas Hi con la malla inicial Mh . 3.7. Integración de los huecos triangulados con la malla inicial La última etapa del método de relleno desarrollado es la obtención de una malla M 0 ya restaurada, con los i huecos rellenados. Como ya se mencionó en la etapa anterior, se realizó una triangulación de la nube de puntos formada por la unión entre los puntos generados en el relleno Ri y los bordes de los huecos BHi , para así conseguir una continuidad tras la unión de las mallas Mh y Hi . Como producto resultante, tras la aplicación del método de relleno, se van a generar dos tipos de mallas: 1. Las mallas Hi que ya fueron generadas en la etapa anterior y que representan las zonas que se han generado mediante el algoritmo de relleno. 70 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO Figura 3.17: Huecos una vez realizada la fase de triangulación. 2. La malla M 0 ; resultado de la unión Mh [ Hi , que constituye la malla restaurada, con los huecos rellenos. El primer tipo de mallas es interesante para tener la posibilidad de discernir, en todo momento, entre las partes de los resultados obtenidos mediante digitalización y las que han sido generadas arti…cialmente mediante el algoritmo. El segundo tipo de mallas constituye el producto …nal del algoritmo, una malla restaurada sin huecos que era lo que se perseguía con la aplicación de este método. Además esta malla será de utilidad para la validación del método desarrollado, ya que podrá compararse con la malla digitalizada inicial, sin huecos generados. Sin embargo, como inconveniente, esta malla no permite diferenciar entre la malla con huecos y las zonas regeneradas arti…cialmente. En la …gura 3.18 se representan de dos formas los resultados obtenidos tras realizar la fusión. 3.8. Validación del método de relleno propuesto Como ya se adelantó al inicio de este capítulo para demostrar la validez del método se planteó la utilización de vistas parciales, por la facilidad que ofrecen para la transformación y adaptación de los datos 3D al algoritmo de restauración de imágenes. Además, se estableció que para la experimentación se crearía una base de datos de vistas parciales sin huecos, a las que se les generarían huecos arti…cialmente de tamaño y forma diversos. El hecho de proceder así, en lugar de utilizar vistas que, tras el proceso de digitalización, presentasen huecos reales era por la posibilidad de contar con una base de comparación a la hora de comprobar la validez del método. Por consiguiente, el disponer de una vista completa, sin huecos, MI , permite contar con un elemento para la comparación con el resultado M 0 y para la decisión sobre la validez y robustez del método de relleno que se ha aplicado.Es decir, podría decirse que MI sería la solución ideal(ground truth) que todo algoritmo de 71 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO Figura 3.18: Malla …nal reconstruida, con los huecos coloreados en rojos para observar la reconstrucción relleno de huecos debe perseguir y , por tanto, se trata de evaluar cuánto se han alejado cada uno de los resultados de la solución ideal. Por otra parte, se planteó el estudio de las diferencias en los resultados que el método ofrecía utilizando diferentes algoritmos de restauración de imágenes, mencionados anteriormente en la sección 3.5. De esta forma, se aplicó el método de relleno sobre la base de datos de j vistas parciales, usando los algoritmos de [?] y [?], con la consiguiente obtención de 2j mallas restauradas. En lo que sigue, se denominará Algoritmo 1 al propuesto en [?] y Algoritmo 2 al de [?] y, por lo tanto, las mallas resultantes se denotarán por M10 y M20 . Además, para someter a un juicio más riguroso a ese método, también se aplicó a las j mallas Mh un proceso de relleno mediante el software comercial Rapidform, que se denominará Algoritmo 3, obteniendo así otra malla restaurada M30 . De esta manera se establecieron las comparaciones entre la malla original sin huecos MI y las 3j mallas rellenadas M10 , M20 y M30 . Para poder llevar a cabo la comparación han de de…nirse qué parámetros son de utilidad para computar las diferencias entre los métodos de relleno aplicados. Un parámetro que surge intuitivamente al intentar evaluar esas diferencias es la distancia entre la solución ideal MI y las soluciones ofrecidas por cada uno de los métodos. Así pues el problema se reduce al cálculo de la distancia, d(a; b) entre dos mallas triangulares a y b, siendo a la malla inicial MI y b las diferentes soluciones obtenidas M10 , M20 y M30 . Para calcular esta distancia puede eliminarse, para simpli…car, la triangulación de la malla, y puede considerarse, como una buena aproximación, el cálculo de las distancias entre las nubes de puntos que conforman las distintas mallas. Así pues, esto puede expresarse como: d(MI ; MX0 ) d(fm ; gn ) = m n d(fk ; gn ) 72 8k = 1; 2; ::m (3.8) CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO siendo X cualquiera de los métodos de relleno: 1, 2 y S; fm los m vértices de la nube de puntos de la malla MI ; gn los n vértices de la nube de puntos de la malla MX0 . Lo que expresa la ecuación 3.8 es que para obtener el vector de distancias d(MI ; MX0 ) se toma un punto de fk de fm , se calculan las distancias de fk a todos los puntos de gn y el mínimo de esas distancias es el que se almacena en la primera posición k del vector d(MI ; MX0 ). De esta forma, se completa el cálculo de dicho vector procediendo así para todos los puntos de fm . Es evidente que solo existirán diferencias entre esas mallas en las zonas correspondientes a los huecos, ya que, como se explicó en el punto anterior, el resultado …nal del método se obtenía mediante la integración de la malla Mh y las mallas relleno Hi . Es por esto que, en las zonas de la malla que no existen huecos, son totalmente coincidentes con la malla inicial MI . Esto es también aplicable a las soluciones obtenidas mediante el software comercial, ya que, si bien no es conocido el algoritmo que se emplea, se considera que no son modi…cadas las zonas sin huecos. Teniendo en cuenta cómo se iban almacenando las mallas rellenadas, en las que a continuación de los datos ya existentes se añadían las zonas rellenas, todo esto puede formularse como sigue: 9k1 2 f1; 2; :::; ng = d(MI ; MX0 ) = d(fm ; gn0 ) 8n0 > k1 (3.9) en donde con k1 se denota el índice de la nubes de puntos gn a partir del que se almacenan los puntos que sólo se corresponden con los huecos. De aquí surge otra expresión evidente, que redunda en la misma idea: d(MI ; MX0 ) = d(fm ; gn00 ) = 0 8n00 k1 (3.10) 0 De esta forma, el problema real consiste en al cálculo de la distancia d(MI ; MhX ) entre 0 0 0 la solución ideal MI y las mallas correspondientes a los huecos rellenos Mh1 , Mh2 y Mh3 . Para obtener el valor de esta distancias, y, con el …n de evitar un cálculo en bruto de las mismas, computacionalmente muy costoso, se utilizó la representación Kd-tree que supone una aceleración considerable de los cálculos. El Kd-tree es una estructura de datos para la partición del espacio que organiza los puntos en un espacio euclídeo de k dimensiones. Los Kd-trees son un caso especial de los árboles BSP que fueron explicados en la sección 2.3 del capítulo 2.Un Kd-tree emplea sólo planos perpendiculares a uno de los ejes del sistema de coordenadas. Además, todos los nodos contenidos en él, desde el nodo raíz hasta los nodos hoja o nodos terminales, almacenan un punto, con lo que cada plano contiene a uno de los puntos del Kd-tree. El uso de este tipo de estructuras pueden acelerar enormemente el trabajo con nubes de puntos, de tal forma que, permiten la búsqueda de todos los puntos contenidos en un rango de coordenadas en un tiempo del orden O(sqrt(p) + k), donde p es el número de puntos del árbol y k el número de puntos que cumplen la condición de búsqueda. Así mismo, la búsqueda del vecino más próximo puede ser llevaba a cabo en un tiempo del orden O(log(p)). En la …gura 3.19 se muestra grá…camente la representación mediante Kd-tree. Así, si se representa la malla inicial MI mediante esta representación, se obtiene la estructura KI . A partir de ahí, para determinar las distancias entre las mallas habría que calcular las distancias siguientes: 0 d(MI ; MX0 ) = d(KI ; MhX ) = d(KI ; gn0 ) siendo X uno de los diferentes métodos de relleno 1, 2 o 3. 73 8n0 > k1 (3.11) CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO Figura 3.19: Kd-tree, distancias entre dos mallas triangulares Una vez …jada la herramienta de cálculo, hay que determinar qué información puede servir para evaluar los resultados. En primer lugar, se obtuvo para cada una de las 3j vistas parciales un mapa de distancias que constituye un método para evaluar visualmente los resultados. El mapa de distancias consiste en una representación visual en 3D de las distancias que han sido calculadas. En concreto, se representan las vistas parcialesMX0 con una textura que representa, en una escala de color, las distancias entre ambas mallas. Lógicamente en las zonas en las que no hay huecos se observará un color continuo equivalente al valor cero. Las variaciones de color aparecerán en las zonas correspondientes a los huecos. También es preciso puntualizar que es necesario utilizar una escala de color absoluta válida para la comparación entre todos los mapas de distancias, por lo que, habrá que cálcular un máximo y un mínimo para todos los valores de distancias obtenidos en las 3j vistas parciales. Estos valores se incluyen en la Tabla 6.3 que aparece en el CAPITULO / ANEXO XXX. En éste también se muestran todos los mapas de distancias calculados tabulados en la Tabla 6.4, en función del algoritmo de relleno empleado: Roth, Criminisi y Software comercial. Otra información que puede utilizarse para evaluar los resultados es la distancia media dm obtenida para cada una de las 3j vistas parciales. Respecto a este parámetro, resulta interesante hacer una separación entre la distancia media global para una vista dada y las distancias medias para cada uno de los huecos rellenos en esa vista, de…nidas según las siguientes ecuaciones: dm = dmh = G P (d(MI ; MX0 )i ) Gh P 0 (d(MI ; MXh )i ) i=1 i=1 G Gh 74 (3.12) (3.13) CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO siendo G el número de puntos que forma la nube de puntos gn correspondiente a la malla 0 de relleno MX0 . MXh es una de las submallas que sirven de relleno del agujero h y Gh el número de puntos que la forman. En las Tabla 3.2 y Tabla 4 pueden observarse los valores obtenidos para el cálculo de la distancia media por malla y la distancia media por huecos y malla, respectivamente, para cada uno de las j vistas parciales y en función de cada algoritmo de restauración de imágenes empleado. En dichas tablas anteriores se representa en rojo y negrita el valor de distancia más pequeño de los tres algoritmos de rellenado, es decir, el mejor resultado tanto por hueco como por vista parcial completa. Tabla 3.2: Distancia media por malla en función del algoritmo de image inpainting Malla DISTANCIA MEDIA POR MALLA (mm) Algoritmo 1 Algoritmo 2 Algoritmo 3 malla 1 0,9347 1,5342 1,1498 malla 2 0,6284 0,8035 0,6564 malla 3 0,7742 4,8585 0,722 malla 4 0,4127 0,9938 0,4575 malla 5 0,64 0,9855 0,6949 malla 6 0,7153 2,2741 0,8207 malla 7 0,9653 1,698 0,8808 malla 8 0,7045 2,1069 0,8516 malla 9 0,8029 2,7879 1,0892 malla 10 0,6166 2,6012 0,7571 malla 11 0,7113 0,959 0,7526 malla 12 0,5521 2,6701 0,4256 malla 13 0,5159 0,8566 0,4512 malla 14 0,483 1,0492 0,5755 malla 15 0,3536 0,5818 0,3897 malla 16 0,5307 1,3913 0,5927 malla 17 0,8501 3,6414 0,6008 malla 18 0,4349 1,486 0,4885 malla 19 0,9262 2,0049 1,2902 malla 20 0,587 4,461 0,6276 75 Malla ares bebé bunny 76 cerdo cosa dinosaurio enano …gura leo Algoritmo de relleno 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Distancia media por hueco (mm) Hueco 1 Hueco 2 Hueco 3 Hueco 4 Hueco 5 Hueco 6 1,2262 0,7529 0,8573 0,9281 2,2269 1,3113 1,1138 1,4716 1,458 1,1763 0,9095 0,9448 0,4196 0,4051 0,7308 0,7983 0,3412 0,6529 0,5704 0,4941 0,6869 0,8458 0,6619 0,6126 0,6335 0,3963 0,8838 0,4351 0,5595 0,5247 0,6389 0,6457 0,7324 0,9475 8,9338 6,6358 4,379 2,9937 1,3008 0,7846 0,0004 0,0004 0,4683 0,3747 0,402 0,4233 0,3271 0,8663 1,59 1,4141 1,6301 0,5754 0,3678 0,1083 0,5435 0,4648 0,7465 0,8153 0,4408 0,3502 1,2448 0,7626 0,3391 0,3431 0,4022 0,9042 1,1524 0,619 0,6412 7,7129 1,4696 1,1281 0,7657 0,8603 0,7804 0,6633 0,8607 0,45 1,5533 1,7232 1,641 0,9106 2,2002 0,6497 0,947 0,9855 0,6993 0,5701 0,6258 0,729 1,199 0,6454 2,3092 1,8261 2,4179 1,5772 2,2386 1,1336 1,3025 0,5801 0,7846 0,6852 0,7505 0,8267 2,776 2,7932 0,9793 1,2959 Distancia media Mallas (mm) 0,9347 1,5342 1,1498 0,4521 0,6019 0,5226 0,7742 4,8585 0,722 0,4127 0,9938 0,4575 0,64 0,9855 0,6949 0,7153 2,2741 0,8207 0,9653 1,698 0,8808 0,7045 2,1069 0,8516 0,8029 2,7879 1,0892 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO Tabla 3.3: Distancia media por malla en función del algoritmo de image inpainting marciano máscara nenuco patito 77 pato peonza peque perrito tetris trice 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 0,744 1,395 0,5068 0,529 0,9143 0,8618 0,7209 3,5419 0,2688 0,3945 1,2165 0,4885 0,4577 0,9486 0,7713 0,3795 1,0805 0,426 0,4039 1,6651 0,7146 0,6815 3,841 0,9152 0,2577 0,3182 0,4591 0,9606 1,8191 0,9732 0,7055 3,8784 1,3566 0,7444 1,3707 0,7331 0,6256 2,5458 0,3481 0,6463 0,6751 0,4802 0,7119 2,0427 0,5886 0,3679 0,5272 0,3927 0,5381 0,7862 0,4403 0,8764 2,1126 0,1131 0,3277 2,2414 0,3966 0,8021 2,3503 1,5952 0,477 2,7064 0,4005 0,5595 1,0659 0,7224 0,3034 2,103 0,4377 0,3061 0,9206 0,3598 0,377 0,5849 0,4577 0,3077 0,5008 0,2023 0,6484 1,9116 0,7208 1,0715 6,3709 0,7648 0,4572 0,5497 0,553 1,0084 2,0009 1,3063 0,789 0,8113 0,6965 0,4191 0,6706 0,5309 0,5281 0,6627 0,4304 0,5783 0,6337 0,5333 0,3328 0,3902 0,4292 0,7907 1,0603 0,3333 0,6166 2,6012 0,7571 0,7113 0,959 0,7526 0,5521 2,6701 0,4256 0,5159 0,8566 0,4512 0,483 1,0492 0,5755 0,3536 0,5818 0,3897 0,5307 1,3913 0,5927 0,8501 3,6414 0,6008 0,4349 1,486 0,4885 0,9262 2,0049 1,2902 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO Tabla 3.3: (continuación) 0,5629 0,7208 0,5364 0,6389 9,5727 0,7715 0,5296 1,2174 0,5006 vaca 1 2 3 Tabla 3.3: (continuación) 0,587 4,461 0,6276 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO 78 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO Figura 3.20: Comparativa de los algoritmos teniendo en cuenta la distancia media por hueco. Una forma de resumir los resultados de forma grá…ca es mediante la representación en grá…co de tarta, que se muestra en las …guras 3.20 y 3.21, en las que se puede ver claramente con qué algoritmo se obtienen mejores resultados por hueco y por malla completa (menor distancia media por hueco y malla): Con el algoritmo 1, el de Roth y Black, se consiguen las menores distancias medias por hueco en un 57 % de los casos y menores distancias medias por malla en un 75 % de los casos. Con el algoritmo 3, el software comercial de tratamiento de mallas y huecos, en un 40 % de los casos analizados se obtienen menores distancias medias por hueco y en un 25 %, menores distancias medias por malla completa. Y por último, con el algoritmo 2, el Criminisi y otros autores, sólo en el 3 % de los casos se consiguen menores distancias medias por hueco. Sin embargo, si se tiene en cuenta la distancia media por malla completa, este algoritmo nunca obtiene menores distancias que los otros dos. Por tanto, a la vista de estos resultados experimentales, el algoritmo más e…ciente para el rellenado de huecos en mallas tridimensionales es el Algoritmo 1, que como se dijo, está basado en el método de restauración de [?]. A continuación se incluyen una serie de grá…cos de barras en los que se puede comparar la distancia media por malla en función del algoritmo de rellenado (3.22) y la distancia media por hueco para cada una de las mallas analizadas (Tabla 3.4). 79 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO Figura 3.21: Comparativa de los algoritmos teniendo en cuenta la distancia media por malla. Figura 3.22: Representación de la distancia media por malla para los tres algoritmos. 80 Tabla 3.4: Representación de la distancia media por hueco en cada malla CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO 81 Tabla 3.4: (continuación) CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO 82 Tabla 3.4: (continuación) CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO 83 Tabla 3.4: (continuación) CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO 84 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO En el ANEXO /CAPITULO pueden visualizarse las vistas parciales que han sido empleadas y los huecos que se les han generado en la Tabla 7.6. También pueden comprobarse los resultados de estos tres algoritmos sobre cada una de las vistas parciales empleadas en la Tabla 6.2. Por último, se representan grá…camente en las …guras 3.22 y 3.4, las distancias medias para cada vista y por cada hueco, respectivamente, obtenidas para las j vistas parciales utilizadas. Por ejemplo la tabla ?? recoge algunas de las mallas reconstruidas. A partir de las conclusiones obtenidas de las …guras 3.20 y 3.21, las mallas reconstruidas con el Algoritmo 2 van a presentar una mayor desviación con respecto a la original en la mayoría de los huecos, con respecto a los Algoritmos 1 y 3. Por tanto, se decidió descartarlo como posible algoritmo de rellenado antes de dar un paso más en la comparación de los resultados. Seguidamente, y tras eliminar al Algoritmo 2, se estableció una nueva comparación entre las mallas restauradas mediante los otros dos Algoritmos, el que se basa en el método de Roth y los generados por el Sofware comercial (1 y 3 ). Así, para establecer un nuevo punto de vista en la comparación de resultados, se de…ne un ratio de éxito como el ratio entre el número de huecos rellenados satisfactoriamente y el número total de huecos. La tasa que presenta el método propuesto era del 56 %, mientras que el software comercial presenta un 41,33 %. Para obtener información completa y poder comprobar la robustez del algoritmo, se establece otra nueva comparación basada en las áreas de los agujeros. Para cada una de las mallas se ha determinado las áreas de los huecos y la razón entre este área y el área total de la malla. A esta lista de áreas y proporciones se le ha asociado una tercera columna con las distancias medias (errores) medidas en cada hueco. Seguidamente, se han ordenado estas listas de forma creciente con el área. De esta manera es más fácil averiguar qué método trabaja mejor, o lo que es lo mismo, tiene menor error, a medida que el área del agujero es mayor. Para un un hueco dado, si un error de uno de los algoritmos es más pequeño que el otro, se incrementa un contador de éxitos. Por lo tanto, se genera una lista acumulativa. La …gura 3.23 (a) representa la tasa de éxito con respecto al número total de huecos, frente a las áreas de los agujeros. A la vista de esta grá…ca, es inmediato concluir que el método propuesto produce mejores resultados que el comercial. Además, en lugar de las áreas absolutas de los agujeros, se ha calculado el porcentaje del area para cada hueco en relación al área total de la malla. De esta manera, se ha establecido una nueva con…rmación para comprobar la validez de la conclusión anterior. Como puede verse en la …gura 3.23 (b), el método de relleno que se pretende validar ofrece una ventaja signi…cativa con respecto al software comercial, teniendo en cuenta este parámetro. Lo que se puede deducir, al observar la …gura 3.23, es que hay un valor particular del área del agujero a partir del cual la tasa de éxito del software comercial nunca supera al método propuesto. Esto da una idea de la robustez del algoritmo propuesto para el rellenado de huecos. Para concluir, decir que el método desarrollado ha sido aplicado también en varias mallas de esculturas de la colección del Museo Nacional de Arte Romano de Mérida, que han sido digitalizadas en el transcurso de los trabajos de investigación. En la …gura 3.24 pueden verse algunos ejemplos de estas mallas. 85 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO Figura 3.23: Representación de la tasa de éxito frente a (a) el área total de los agujeros y (b) el área percentual. La línea continua es para el método propuesto, y la línea de puntos para el algoritmo comercial. 86 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.8. VALIDACIÓN DEL MÉTODO DE RELLENO PROPUESTO Figura 3.24: Mallas (a) originales y (b) restauradas, digitalizadas de la colección del Museo Nacional de Arte Romano de Mérida. 87 CAPÍTULO 3. VERIFICACIÓN DE LOS ALGORITMOS DE IMAGE INPAINTING EN EL RELLENADO DE HUECOS 3.9. RESUMEN 3.9. Resumen En este capítulo se ha presentado un método para el rellenado de huecos en mallas 3D. Para esto es necesario, en primer lugar, generar una imagen 2D como entrada del algoritmo de restauración de imágenes. Debido a la in‡uencia de la resolución de la rejilla (pixels) en la pérdida de datos cuando los datos 3D son proyectados, se ha determinado la resolución óptima para minimizar esa pérdida. Para probar la efectividad del método se ha aplicado sobre vistas parciales a las que se le han generado huecos arti…ciales. Se han establecido dos comparaciones para estudiar las diferencias entre los diferentes métodos: la distancia entre las mallas originales y reparadas (por malla completa y por zona reparada) y la efectividad con respecto al área del hueco. Dos conclusiones importantes se pueden obtener. La primera es que el método propuesto ofrece errores más pequeños al utilizar el algoritmo de Roth, que en los otros casos. La segunda es que se ha probado que este es también más adecuada para rellenar huecos de cualquier tamaño. Por tanto, se ha demostrado que se trata de un método de rellenado de huecos robusto. 3.10. Resultados experimentales En este capítulo se incluyen los resultados obtenidos aplicando los tres algoritmos de image inpainting para el rellenado de huecos en veinte mallas tridimensionales. Estos resultados se re…eren a la distancia media por cada uno de los huecos arti…ciales de cada malla y a la distancia media por malla, que se obtienen comparando la malla original con la malla reconstruida de la forma que se ha explicado en la sección anterior. 88 Capítulo 4 De…nición de un método general para el rellenado de huecos en mallas 3D 4.1. Introducción En el capítulo anterior se proponía la validación del método desarrollado mediante su aplicación en vistas parciales de baja resolución y a las que se les habían generado huecos arti…ciales. Tras la observación de los resultados y su comparación con otros métodos de relleno, se concluyó que la técnica propuesta ofrecía buenos resultados, en huecos de diversos tamaños, formas y curvaturas. Como ya se mencionó en el capítulo 2, el problema de los huecos se presentaba durante la reconstrucción de modelos 3D de objetos completos. Se decía también que es un problema que no tiene una solución trivial y que sea genérica para cualquier tipo de hueco y super…cie que se pueda presentar. Es por ello que se plantea en este capítulo, la extensión del método propuesto a la resolución del problema en objetos completos. Estos objetos presentan huecos que se han generado durante las distintas fases de reconstrucción de los mismos, tal y como se detallaba en el capítulo 2. A pesar de mantener las premisas del método que se desarrolló para su aplicación en vistas parciales, las particularidades del problema en objetos completos, hace que se tengan que replantear las etapas del proceso. De esta forma, en el capítulo que nos ocupa se estudiará la nueva situación y se planteará la de…nición de un método general para el rellenado de huecos en mallas de objetos completos. A continuación se generaran una serie de resultados experimentales sobre mallas obtenidas tanto de la digitalización mediante sensores de rango, como de repositorios de mallas disponibles en Internet. Seguidamente se establecerán unos métodos de medida que sirvan para analizar los resultados que se generen. Por tanto, la división del capítulo se hará como sigue: en primer lugar, en la sección 4.2, se presentará el esquema de funcionamiento básico del método, enumerando las etapas que lo componen. En las secciones sucesivas, desde la sección a la, se detallarán cada una de las etapas. Seguidamente se presentarán algunos de los resultados experimentales obtenidos y, …nalmente se expondrán las conclusiones. 89 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS 4.2. DESCRIPCIÓN EN MALLAS 3D GENERAL DEL MÉTODO PARA MALLAS COMPLETAS 4.2. Descripción general del método para mallas completas En comparación con la situación descrita en el capítulo anterior, la idea de base del método es la misma para ambos tipos de entrada del proceso para vistas parciales y para mallas completas. Pero en las últimas, se añaden más factores a tener en cuenta en el problema a resolver. A lo largo del capítulo anterior se han ido adelantando algunas diferencias entre ambos tipos durante el estudio de las diversas etapas. En este capítulo se va a replantear el método de relleno presentado para vistas parciales, añadiéndole las pertinentes modi…caciones para que sea aplicable en objetos completos y estudiando las peculiaridades del nuevo tipo de entrada del proceso. Por tanto, el método de relleno aplicado a objetos completos, puede ser esquematizado en los siguientes pasos (representados en la …gura 4.1): 1. Identi…cación de los hi (i = 1; 2; :::; k; :::; m) huecos en la malla total MT . 2. Selección del hueco hk . 3. Selección de la porción de malla M en el entorno del hueco hi . i MT , que es la porción de malla que se encuentra 4. Transformación 3D a 2D para obtener la imagen de rango, Ihi , asociada a la malla con huecos M i MT . 5. Aplicación del algoritmo de image inpainting. La imagen reconstruida se denotará por Ifi . 6. Transformación 2D a 3D y fusión de los datos de relleno con la malla con agujeros. La malla obtenida, que se denota como Mfi , se fusionará con MT para la obtención de la malla …nal sin huecos MT0 . 7. Repitir el proceso desde 2, para el siguiente valor de i. Ahora se usará MT0 . Se observa a primera vista que, con respecto a la aplicación del método en vistas parciales, se han incluido tres nuevas etapas (sección 3.3). La primera, la identi…cación de huecos, también se llevaba a cabo en la situación anterior, aunque, ya que se generaban arti…cialmente sobre vistas parciales, los huecos a rellenar no presentaban una gran complejidad y su identi…cación, dada la regularidad de las vistas parciales, era relativamente sencilla. Cuando se trata de aplicar la técnica en objetos completos reales, los huecos se presentan en un lugar y con unas características desconocidas, por lo que se ha trasladado a este capítulo el tratamiento del proceso de identi…cación de huecos. Otra de las etapas que se añaden es la que ocupa el segundo lugar. Dado que los datos de entrada van a ser objetos completos, no puede hacerse una transformación a 2D de todo los puntos que los forman. Por lo que habrá que extraer una porción de la malla adecuada para realizar dicha transformación y obtener una imagen de rango para cada hueco. Por último, también se ha incluido como nueva etapa, aunque no conlleva en sí un proceso, la enumerada en último lugar. Con esta etapa se hace referencia a otra diferencia que surge al utilizar objetos completos. En el capítulo anterior, al tratar con vistas parciales, se realizaba una única vez la secuencia de etapas que se proponía. Es decir, se generaba una única imagen 90 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS 4.2. DESCRIPCIÓN EN MALLAS 3D GENERAL DEL MÉTODO PARA MALLAS COMPLETAS Figura 4.1: Etapas del método de relleno de huecos desarrollado de rango de toda la vista parcial, sobre la que se iban rellenando los diferentes huecos. Al …nal, se aplicaba la transformación inversa a 3D, obteniendo una única vista parcial reconstruida, con los huecos rellenos. En el caso que nos ocupa, no es posible una única ejecución del algoritmo dado que, como ya se ha mencionado, es imposible obtener una única proyección o imagen de rango de todo el objeto. Así, habrá que ir repitiendo el proceso para cada una de las porciones de malla extraídas para el relleno de cada hueco. Antes de comenzar a describir cada una de estas etapas, es necesario recalcar que el método propuesto ha sido desarrollado para ser aplicado en mallas triangulares. A estas mallas se les exigen ciertas características básicas, que son impuestas por el propio funcionamiento del método. Estas exigencias son las siguientes: La malla ha de ser una variedad bidimensional: cada arista es compartida como máximo entre dos triángulos. Esta es una de las exigencias habituales de la mayoría de algoritmos que trabajen con mallas triangulares, ya que se trata de un error en la representación de la malla que hay que evitar. El tamaño de los triángulos ha de ser aproximadamente constante para toda la malla. Para obtener la imagen de rango, la malla se proyecta sobre un plano o rejilla de proyección la cual no es más que una cuadrícula totalmente regular, por lo que interesa que la proyección de los puntos se distribuya de forma regular sobre la cuadrícula para evitar las pérdidas que se comentarán en la sección 4.5. A pesar de estas exigencias, no se restringe en ningún momento el ámbito de aplicación del método de relleno, ni le restan generalidad, ya que cualquier malla puede ser procesada, antes de aplicarle el método de relleno, para que cumpla con tales exigencias. Este procesado previo no signi…ca una modi…cación signi…cativa de la super…cie representada por la malla. A continuación se explicarán detalladamente cada una de las etapas de la técnica de relleno que se ha propuesto. 91 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.3. IDENTIFICACIÓN DE LOS HUECOS 4.3. Identi…cación de los huecos La primera etapa del método de relleno es la búsqueda de los huecos que han de ser rellenados y, más concretamente, la determinación de los bordes de esos huecos. Antes de adentrarse en el algoritmo de identi…cación de huecos, es necesario recordar en qué se basaba el método de representación de objetos 3D mediante malla triangular. En la sección 2.3 anterior del capítulo 2, se explicaban diversas características de las mallas triangulares. Concretamente, se detallaban las propiedades que cumplían las variedades bidimensionales cerradas, que son el tipo de mallas que se pretenden obtener al aplicar el algoritmo de relleno de huecos. El problema es que, la particularidad que presentan las mallas a la entrada del algoritmo es que tienen huecos. Este hecho se traduce en que ya no son de aplicación todas las expresiones que aparecían en dicha sección, o al menos en toda la extensión de la malla. Concretamente, con la aparición de los huecos ya no se cumplen las expresiones (i) y (ii), las cuales habría que cambiarlas por: i’) Conectividad de los vértices: todos los vértices de la malla están conectados con al menos otros dos vértices vecinos, o lo que es lo mismo, tienen al menos dos aristas incidentes: 8vi 2 V; 9AS A 8ah 2 AS ; vi 2 ah ^ card(AS ) 2 ii’) Pertenencia de aristas a triángulos: dado que existen hueco siempre existirá un subconjunto de aristas que sólo pertezcan a un único triángulo: 9AS A 8ah 2AS ^ 8ti 2 (T -T S ); ti \ tj 2 f?g () ah T S ^ tj 2T S La razón de este cambio es porque en las zonas de los huecos ha habido una ‘rotura’ de esa red de triángulos con lo cual ahora existirán aristas, las del borde de los huecos, que sólo pertenecen a uno de ellos, lo que también dará lugar a vértices con un grado 2. De esta manera, para identi…car los huecos en una malla se procederá como sigue. Dada una malla triangular con huecos, MT ; se tienen los siguientes elementos que la de…nen: - Nube de puntos que la forman P= fp1 ; :::; pn g con pi 2 R3 . - 3-Tupla de entidades {V, A, T }, siendo V una lista de índices fv1 ; :::; vn g que hace referencia a elementos de la nube de puntos P; A es la lista de aristas fa1 ; :::; ak g en la que cada elemento ai se representa por una pareja de índices < u; w > que indican las posiciones que ocupan en V los vértices que la forman; T es la lista de triángulos o caras que componen la super…cie, ft1 ; :::; tm g; en la que cada elemento ti se representa por un grupo de tres índices < r; s; t >, donde r, s y t son índices que indican la posición en que se encuentrán en V los vértices que lo componen. Para facilitar la representación se ordena la lista de puntos P de forma que los indices de V sea una secuencia ordenada que vaya desde 1 hasta el número total de vértices, n. Por otra parte, resulta evidente que existe reduncia en la información asociada a la malla, ya que a partir de la lista de aristas A puede construirse fácilmente la de triángulos T y viceversa. A continuación, habrá que buscar las aristas de la malla que de…nen los bordes de los huecos, es decir, las que sólamente sean adyacentes a un único triángulo. Para ello, se seguirán las siguientes etapas: 1. Se aplica un criterio de ordenación en los triángulos, de tal forma que se genera T 0 , en donde cada elemento < r; s; t > se ordena de forma creciente, donde r < s < t. 2. A partir de T 0 , se extrae la lista de aristas A0 de tal manera que cada elemento de T 0 , < r; s; t >; da lugar a tres elementos , < r; s >, < s; t > y < r; t >. Con esto resulta una lista de aristas en la que, a diferencia de A, existirá repetición de elementos. 92 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.3. IDENTIFICACIÓN DE LOS HUECOS 3. Para facilitar la búsqueda, se aplica la siguiente función de hash a A0 : (4.1) ' = ( + ) =# p donde, si se representa cada arista por < u; w >, = w u, = u w y # = (u+w)= w. Por tanto, tras aplicar esa función se obtiene una nueva lista A0' , en la que ahora cada arista viene de…nida por su parámetro '. 4. Se construye un vector c' de la misma dimensión que A0' y que almacena en cada posición c' (j), el número de veces que está repetido el elemento A0' (j) en A0' . 5. Si se toman los elementos de c' que valgan 1, se tendrán las aristas que sólamente aparecen una vez en la lista, o lo que es lo mismo, las que sólamente están compartidas por un único triángulo. A partir de ahí, se construye la lista de aristas que son bordes de huecos, Ab , que se correspondería con: (4.2) Ab = A0' (k) c' (k) = 1 6. Se procede a la búsqueda de los posibles caminos cerrados que se forman con las aristas contenidas en Ab . Para tal …n, se comienza creando el primer borde de hueco seleccionando una primera arista de Ab : (4.3) Bi = Ab (1) = f< v1 ; v2 >g 7. Se elimina la arista de de Ab la arista que se ha añadido a Bi . Se toma v1 como primer vértice del borde de hueco. 8. Seguidamente se busca en Ab , la arista en donde aparece v2 , la cual es eliminada de Ab , y añadida a B1 , quedando: (4.4) Bi = f< v1 ; v2 >; < v2 ; v3 >g 9. Volver a 8 pero ahora buscando v3 y así sucesivamente hasta que se obtenga una arista que contenga también al primer vértice del borde v1 . En tal situación, se habrá obtenido el primer borde de hueco Bi . 10. Si aun quedan elementos en Ab , se continuan extrayendo de la misma forma más bordes de hueco, hasta vaciar la lista Ab . De esta forma se extraerán los bordes de hueco Bn , que tendrán la forma: Bn = f< v1 ; v2 >; < v2 ; v3 >; : : : ; < vk ; vk+1 >; : : : ; < vP 1 ; vP >; < vP ; v1 >g (4.5) en donde cada borde tendrá un numéro P de aristas, diferente para cada hueco. 11. A partir de los distintos Bn se de…ne el conjunto de bordes de huecos de la malla como: Bc = fB1 ; B2 ; :::; Bn g (4.6) Una vez determinado este conjunto, se procederá al relleno de los huecos, de en uno en uno, de forma iterativa, de tal manera que para acometer el rellenado del hueco i, se dispondrá de la malla con i 1 huecos ya rellenados. En la …gura 4.2 puede observarse un ejemplo de identi…cación de tres huecos en una malla. 93 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.4. SELECCIÓN DE LA PORCIÓN DE MALLA Figura 4.2: Etapa inicial de identi…cación de los hi (i = 1; :::; m) huecos en la malla total MT . Por consiguiente, una vez …nalizada esta etapa de identi…cación de huecos, se elegirá un Bk Bc y se continuará con la siguiente etapa del proceso, la selección de la porción de malla, que será explicada a continuación. 4.4. Selección de la porción de malla Como ya se ha mencionado, para proceder al rellenado de un hueco es necesario obtener una imagen de rango de la zona en donde aparezca el hueco. La extensión de esta zona tendrá que ser lo su…cientemente grande con respecto al tamaño del hueco para que la información que aporte sea representativa para que el algoritmo de restauración opere de forma correcta. La elección de la extensión de esa porción de malla que resulte más adecuada será abordada posteriormente. En primer lugar, se va a describir cómo se realiza la extracción de dicha porción. Una vez identi…cados los bordes de los huecos Bc en la etapa anterior, se selecciona uno de los bordes Bk . A partir de ahí se procede según las siguientes etapas: Si el borde Bk está compuesto por un conjunto de g aristas ABk , de ahí puede extraerse el conjunto de g vértices vBk que se forma como sigue: Bk = f< v1 ; v2 >; < v2 ; v3 >; : : : ; < vg 1 ; vg >; < vg ; v1 >g; vBk = fv1 ; v2 ; v3 ; :::; vg g (4.7) A partir de vBk y T , puede extraerse un subconjunto de triángulos que contengan uno o dos vértices de vBk . Este subconjunto conforma un anillo de triángulos R1 del que se dice que tiene grado de vecindad uno con Bk ya que los vértices que lo forman tienen, como máximo, un grado de vecindad uno con los vértices vBk . Este anillo R1 consiste en una porción de malla con dos bordes, uno interior que coincide con Bk y otro exterior Be1 . De igual forma, puede calcularse el anillo R2 utilizando este último borde exterior Be1 , y así, obtenerse una porción de malla con borde interior Be1 y borde exterior Be2 . En este caso, se dice que R2 tiene un grado de vecindad dos con Bk . De forma general, aplicando el proceso veces se obtendría el anillo R con borde interior Be( 1) y borde exterior Be y con grado de vecindad , pues sus vértices tienen, como máximo, un grado de vecindad con los vértices vBk ..De esta manera, a partir de todos esos anillos, se extrae la porción de malla M correspondiente al borde de hueco Bk , que puede expresarse como: [ M = Ri (4.8) i=1 94 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO Diremos que esta porción de malla tiene un grado de vecindad con respecto a Bk que coincide con el mayor grado de vecindad de los anillos que la componen. M cuenta con dos bordes, uno interior que coincide con Bk y otro exterior Be . El valor que se elija del parámetro va a depender de las características de la malla. Así, si tiene una malla con baja resolución (triángulos muy grandes), bastará con un grado de vecindad pequeño para abarcar una extensión considerable del objeto. Sin embargo, si la resolución es muy elevada se necesitará un valor mucho mayor para obtener una porción representativa de la malla M . En la …gura 4.3 se observa el proceso de selección de una porción de malla con grado de vecindad = 6. En la …gura 4.4 se representan las diferentes porciones de malla extraídas para cada uno de los huecos mostrados en la …gura 4.2. 4.5. Generación de la imagen de rango En esta etapa se lleva a cabo la transformación de los datos 3D a 2D, mediante la generación de una imagen de rango, Ih , de la porción de malla que se ha seleccionado. Al igual que en el capítulo anterior, se hace necesaria la búsqueda de un plano de referencia óptimo sobre el que proyectar los nodos de la malla, proyección que generará la imagen de rango. Para la obtención del plano de referencia se habrán de seguir los mismos pasos que en el capítulo anterior, con el …n de …jar el valor de las siguientes parámetros: 1. Plano de proyección sobre el que proyectar. 2. Resolución de la imagen de rango. Cuando se trabajaba con vistas parciales, dado que eran obtenidas directamente mediante digitalización del objeto con un escaner, se decía que la vista parcial venía de…nida en un sistema de referencia ligado al escaner, con el plano XY coincidente con el plano imagen del sensor y el eje Z perpendicular a dicho plano imagen. Así, la orientación del plano de referencia se escogía paralela al plano XY de referencia. Esto facilitaba enormemente la la generación de la imagen de rango ya que reducía el problema al cálculo de la resolución de la imagen de rango óptima. En el caso que nos ocupa, se añade la complicación de tener que buscar un plano de referencia adecuado para cada uno de los huecos, del mismo objeto, que se desee rellenar, como se observa en la …gura 4.5. A continuación se detallará cómo se determinan cada uno de los parámetros mencionados anteriormente: plano de proyección óptimo y resolución de la imagen de rango. 4.5.1. Plano de proyección sobre el que proyectar En este punto lo que se persigue es la determinación de la orientación, posición y tamaño que ha de tener el plano de proyección con respecto a la super…cie 3D. Es evidente que el plano de proyección que se elija tendrá in‡uencia en la capacidad de representación que tenga la imagen con respecto a los datos 3D. En la …gura 4.6 (a) se puede observar una elección errónea del plano de proyección ya que coinciden las proyecciones de dos puntos 3D en un mismo punto de plano, lo que da lugar a una función bidimensional multivaluada. Sin embargo, en la …gura 4.6 (b) el plano de proyección elegido no da lugar a situaciones como la anterior. 95 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO Figura 4.3: Procedimiento de selección de la porción de malla mediante la obtención de los anillos Ri , a partir del borde de hueco Bk 96 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO Figura 4.4: Selección de las porciones de malla para cada uno de los huecos que aparecen en la …gura 1: (a) Hueco 1; (b) Hueco 2; (c) Hueco 3. Se han utilizado distintos valores de en cada caso: = 7; = 5; = 11, respectivamente. Figura 4.5: Selección de diferentes planos de referencia o de proyección para cada uno de los huecos que se van a rellenar. 97 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO Figura 4.6: Elección del plano de proyección para hacer la transformación 3D a 2D: (a) elección errónea; (b) elección idónea [Elección del plano de proyección para hacer la transformación 3D a 2D: (a) elección errónea; (b) elección idónea.] En el proceso de generación de la imagen de rango, la región de mayor interés es el propio hueco que ha de ser rellenado, ya que será el elemento de la imagen sobre el que actúa el algoritmo de restauración de imágenes. Por ello, se tendrá que elegir una orientación según la cual el hueco, tras efectuar la proyección sobre el plano, quede representado de la mejor forma posible. Pueden establecerse diversos criterios para la elección idónea de esa orientación, y de entre ellos se han elegido tres, por su buen funcionamiento en el proceso de relleno. Estos criterios son: Orientación basada en la asociación de normales al hueco. Según este criterio, el plano de referencia estará de…nido por un vector normal que es paralelo al vector asociado a los triángulos del borde de hueco. Así, para calcularlo, dado un borde de hueco Bk , se buscan los q triángulos que componen el anillo R1 , con grado de vecindad 1, que son los que se muestran en la …gura 4.8(a). Cada uno de estos triángulos tendrá asociado un vector normal unitario ! ni : El vector normal asociado al borde de hueco, ! Nk , o lo que es lo mismo, la normal que se utilizará para determinar el plano de proyección, puede obtenerse como sigue: Xq ! ! nj NS = (4.9) j=1 ! Nk = ! NS ! NS (4.10) es decir, se calcula como la suma normalizada de los vectores normales a los triángulos que componen R1 (…gura 4.8(b)). 98 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO (a) (b) (c) Figura 4.7: (a), Anillo de triángulos que pertenecen al borde del hueco; (b) Normal al hueco obtenida como la media de las normales a las caras que son forman el borde de hueco; (c) Proyección del borde de hueco según la dirección de la normal al hueco. Un ejemplo de bordes de hueco y su proyección sobre el plano de proyección, que se denotará por , se muestra en la …gura.4.8(c) Con el …n de proyectar los vértices del borde de hueco sobre , se les aplica a ambos, vértices y plano, un cambio de sistema de referencia a 0 , de tal manera que el plano XY 0 sea paralelo al plano : Orientación basada en la mejor aproximación de un planos a los vértices del borde de hueco Un método para obtener el plano que mejor se adapta a una nube de puntos es aplicarle el análisis de las componentes principales (ACP ). Este análisis construye una transformación lineal que escoge un nuevo sistema de coordenadas para la nube de puntos original en el cual la varianza de mayor tamaño de la nube es capturada en el primer eje (llamado el Primer Componente Principal o ACP Eje1), la segunda varianza más grande es el segundo eje (llamado el Segundo Componente Principal o ACP Eje2), y así sucesivamente. El plano que contiene a ambos ejes 1 y 2, es el que mejor se adapta a la nube de puntos. Este plano es otro de los posibles planos que pueden utilizarse como referencia para la obtención de la imagen de rango. Para calcularlo, en primer lugar, se calculan las coordenadas de la nube de puntos con respecto a un sistema de coordenadas 0 cuyos ejes X 0 , Y 0 y Z 0 son paralelos a los ejes X, Y y Z iniciales. A continuación se realiza un análisis de las componentes principales en el nuevo sistema de referencia, de donde se obtienen el P CAEje1 y P CAEje2. La orientación del 99 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO (a) (b) (c) Figura 4.8: Three sub…gures. plano de referencia se obtendrá mediante el cálculo del vector normal a ambos ejes, que no es más que el producto vectorial de sendos vectores unitarios de cada eje. La dirección de la primera componente principal, P C1, pasa por el centroide (0; 0; 0) y representa una línea de mínimos cuadrados que marca la tendencia dominante en los datos. La dirección del segundo componente principal, P C2, pasa por el centro de gravedad también, es ortogonal a P C1, y representa también una tendencia en los datos menos dominante, que es independiente de la tendencia capturada por el P C1. Orientación basada en el área máxima El funcionamiento del método se basa en la aplicación de un algoritmo de restauración sobre la zona de la imagen en que se proyecta el hueco. Por ello, cabe pensar que será más conveniente …jar un plano sobre el que la proyección del hueco sea lo más representativa posible del hueco real sobre la malla, lo cual puede ser traducido en que la proyección ha de tener un área máxima. Por tanto, según este criterio de elección del plano de referencia, la mejor orientación es aquella en la que la proyección del borde del hueco Bk da lugar a un polígono Pk en el plano, cuya área sea máxima (…gura 4.9). Para resolver este problema se de…ne un nuevo sistema de referencia 0 (X 0 Y 0 Z 0 ) ligado al plano de referencia , cuyos ejes X 0 e Y 0 estén contenidos en el mismo y cuyo eje Z 0 sea perpendicular a ambos, apuntando en dirección hacia el objeto. Seguidamente se plantea un problema de maximización, que buscará que 0 o, lo que es lo mismo, tenga una orientación tal, que el área del polígono Pk sea máxima (…gura 4.9). 100 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO Figura 4.9: Cálculo de la orientación de ligado al plano de referencia, que haga que el Área de Pk, Ak, sea máxima Por tanto, se plantenta el problema de maximización siguiente: max[APk ( 0 )] sujeto a : xb0 = 1 xb0 ? yb0 ? zb0 yb0 (4.11) (4.12) = 1 donde APk ( 0 ) es el área del polígono Pk contenido en el plano X 0 Y 0 del sistema de referencia 0 ; y ib0 , jb0 y kb0 son los vectores unitarios de los ejes X 0 , Y 0 y Z 0 , respectivamente. Para la resolución del problema, se le estima un valor inicial de la solución igual a las componentes principales de los vértices vBk , calculadas según se explica en el criterio de orientación anterior. Con ello se facilita la consecución del valor máximo en un menor número de iteraciones. En la …gura 4.10 puede observarse un ejemplo de aplicación del algoritmo de maximización de área en el borde del hueco 1 de la malla mostrada en la …gura 4.2. Posición del plano de proyección Una vez obtenida la orientación del plano habría que aplicar una transformación T a la porción de malla M i para obtener sus coordenadas desde el sistema de coordenadas 0 (X 0 Y 0 Z 0 ), solidario al plano. De esta forma, dadas las coordenadas de un punto de la malla (x1 ; y1 ; z1 ) desde T , sus nuevas coordenadas (x2 ; y2 ; z2 ) desde el sistema de referencia 0 se obtendrían mediante la siguiente ecuación: 101 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO Figura 4.10: En (a) se muestra la representación 3D a la izquierda y la proyección sobre el plano de referencia inicial, del hueco 1. En (b) se muestra la representación 3D a la izquierda y la proyección sobre el plano de referencia que se ha obtenido tras aplicar el algoritmo de maximización del area. 0 1 x2 B y2 C B C=T @ z2 A 1 0 1 0 x1 B y1 C B B C=B @ z1 A B @ 1 1 0 1 ib0x jbx0 kbx0 tx x1 C C ib0y jby0 kby0 ty C B B y1 C C ib0z jbz0 kbz0 tz A @ z1 A 1 0 0 0 1 (4.13) De esta transformación T queda aun por …jar la traslación que hay que aplicar a los puntos de la porción de malla M i . Como se mencionó en el anterior capítulo, interesa que el plano de proyección no se encuentre a una distancia grande de la nube de puntos que va a proyectarse sobre él, ya que esto produciría que se almacenasen valores muy altos en cada píxel. La consecuencia inmediata que produciría esta situación es que el algoritmo de restauración necesite más iteraciones para alcanzar una solución óptima. Por tanto, ha de …jarse una posición del plano cercana a la malla M i . El criterio que se aplica para posicionar el plano toma como punto de referencia el centroide cT de la malla total MT , que se obtiene como sigue: cTx cTy cTz = PK xi PK yi PK zi i=1 i=1 i=1 K K K (4.14) siendo K el número de puntos que forman la nube PT MT . Seguidamente, dada la porción de malla M i , se calculan las distancias del centroide cT a todos los puntos de la nube P i M i como: q d(cT ; P i ) = (x i cT x )2 + (y i cT y )2 + (z i cT z )2 (4.15) 102 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO A continuación se determinan los valores máximos y minimos de esas distancias calculadas, max(d(cT ; P i )) y m n(d(cT ; P i )), respectivamente. Se va a …jar la posición del plano a una distancia max(d(cT ; P i )) o ' m n(d(cT ; P i )) del centroide cT , dependiendo si se desea situar ligeramente al exterior o al interior de la malla MT , respectivamente. El valor de será mayor que la unidad y se elige normalmente en el intervalo (1, 1’5). En cambio ' será menor a la unidad y dentro del intervalo (0’5, 1). De esta manera, se establece que la posición del plano sea tal que contenga al punto e(ex ; ey ; ez ). Este punto se trata del punto de intersección entre la recta que une los centroides cT y c y la esfera de radio max(d(cT ; P i )), centrada en cT . La recta vendrá dada por la ecuación: x cT y x cT z x cT x = = c x cT x c y cT y c z cT z (4.16) y la esfera se de…ne mediante la siguiente ecuación: cT x )2 + (y (x cT y )2 + (z cT z ) 2 = r 2 (4.17) en donde el radio r, como se dijo anteriormente, puede …jarse en max(d(cT ; P i )) o ' m n(d(cT ; P i )). Para acotar, se utiliza la siguiente ecuación en lugar de la anterior, para que se elija la solución de la intersección que esté más próxima al centroide de la porción de malla c : cT ! c cT!e = (c cT z ) = r d (cT ; c ) (4.18) ! ! la cual viene a decir que los vectores cT c y cT e, además de ser paralelos debido a cómo se han defnidico, también tienen la misma dirección. Por tanto, tomando las ecuaciones 4.16 y 4.18, se obtienen las coordenadas del punto e como: ex ey ez x = cT x ) (ex cT x )+(c r d(cT ;c ) (c c c! k T x 2 cT x ) k y cT y ) (ey + cT x cT y )+(c r d(cT ;c ) (c c c! k T y 2 k z cT y ) cT z ) (ez + cT y r d(cT ;c ) (c c c! k T z 2 k cT z ) + cT z (4.19) Consiguientemente, la matriz de transformación que …nalmente se utilizará tendrá como componente de traslación el vector ex ey ez , lo que da lugar a que las nuevas coordenadas se obtengan aplicando la siguiente ecuación: 1 0 1 0 1 0 b0 b0 b0 ix jx kx ex x1 x2 C B C B y2 C B 0 0 0 b b b iy jy ky ey C B y1 C B C=B (4.20) C @ z2 A B @ ib0z jbz0 kbz0 ez A @ z1 A 1 1 0 0 0 1 En la …gura se muestra un ejemplo de determinación de la posición del plano de referencia : Tamaño de la imagen de rango Con respecto al tamaño de la imagen de rango, éste viene determinado por el tamaño de la porción de malla que se ha de proyectar. A partir de esta nueva representación se determina el tamaño de la imagen de rango. Así, si la porción de malla M i está formada por C coordenadas, cuyos valores máximos y mínimos 103 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO Figura 4.11: Posicion del plano de referencia con respecto a la porción de malla. en X 0 y en Y 0 son xmax , ymax y xmin , ymin , respectivamente, el tamaño que representa la imagen es de w h, en donde: w = xmax h = ymax xmin ymin (4.21) (4.22) Este tamaño se de…ne de igual manera que como se de…nía para vistas parciales en la sección 3.4 del capítulo 3, ya que puede asimilarse la porción de malla obtenida a las vistas parciales que se empleaban en tal capítulo. 4.5.2. Resolución de la imagen de rango Una vez que se ha determinado la orientación, posición y el tamaño del plano de proyección, el siguiente paso es la de…nición de la resolución de la imagen Ihi en píxeles. La elección del ancho de celda de la rejilla sobre la que proyectar los puntos de M i se hace de forma idéntica a cómo se hacía para vistas parciales. De esta forma, se ha de buscar una anchura de la rejilla óptima q(mm=pixels), y con ella se tendrá que la resolución de la imagen es 1=q(pixels=mm) y su tamaño es (n; m) = (w=q h=q)(pixels), como se deducía en el capítulo anterior. En el caso de vistas parciales, ya se determinó la importancia que tiene en esta etapa que la malla presente una distribución más o menos uniforme. En cualquier caso, siempre puede estudiarse tal uniformidad antes de comenzar el proceso de rellenado y, en situaciones de distribución no uniforme, aplicar un algoritmo de remallado. Para determinar el ancho óptimo q, se aplican los estudios realizados con las vistas parciales. Se ha de recordar pues, que se de…nía el valor de q proporcional a la media de las longitudes de las aristas, dm : q= 104 dm (4.23) CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO Para el cálculo de dm podría plantearse en un primer lugar la conveniencia de realizarlo al comienzo del proceso para la malla global MT , para evitar así la repetición del proceso de medidas de longitudes de arista en cada porción de malla. Sin embargo, esta opción puede dar lugar a que la imagen de rango se ajuste correctamente a las características de la malla M i , dado que uno puede garantizarse una distribución perfectamente uniforme a lo largo de la malla global. Por tanto, para conseguir un mejor ajuste, se calcula la media de las longitudes de las aristas, dmi , para cada cada una de las porciones de malla, para otorgar más permisividad a los requisitos de uniformidad de la malla. Por consiguiente, se va a calcular una anchura de rejilla óptima, qi , para cada hueco a rellenar, o también, un valor de resolución, 1=qi , para cada hueco hi . En cuanto al valor de , dada la similitud entre las vistas parciales y las porciones de malla de la situación actual, por haberse escaneado ambas con el mismo equipo, se tendrá en cuenta toda la experimentación realizada con dichas vistas y se aceptarán los resultados empíricos y conclusiones que se obtuvieron en el capítulo 3. Otro parámetro, que también fue tratado en el capítulo anterior, y que resulta igualmente aplicable en el actual es el factor de escala fe . Anteriormente se explicó que, a la hora de …jar la posición del plano de referencia, se busca que la distancia entre y porción de malla sea pequeña, mediante la limitación de los valores de y ' dentro de determinados intervalos. Aun introduciendo estas limitaciones, también va a aplicarse un factor de escala, feh , en los valores de distancias del plano a los puntos de M i , para lograr, si cabe, un mayor acercamiento, más re…nado, entre ambos y, por tanto, un menor número de iteraciones necesarias del algoritmo de relleno para conseguir un valor …nal adecuado. De esta forma, también se obtendrá la misma relación que se obtenía en el capítulo anterior: Ih0 = Ih feh (4.24) Además, si bien los valores de y ' se …jaban de forma global para toda la malla MT , la determinación de feh dependerá de la máxima variación que se dé en los valores de la coordenada Z 0 en cada porción de malla M i . Siguiendo con el proceso, tras haber obtenido la imagen de rango, Ih0 , se dispone de una representación de la porción del objeto 3D en formato de imagen al que se va a aplicar el algoritmo de restauración de imagen, para así obtener la imagen restaurada, If , que se está buscando. A continuación se van a describir los algoritmos de restauración de imagen que van a ser aplicados. Interpolación de la imagen de rango En el proceso de generación de la imagen de rango, también ocurrirá lo mismo que con las vistas parciales, que, al no contar generalmente con mallas con distribución totalmente uniforme, la imagen presentará las pérdidas en algunos píxeles. Estas pérdidas son debidas a un tamaño grande de algunos triángulos con respecto al ancho de celda, lo que se traduce en que puntos de esos triángulos se proyecten en puntos que no son vecinos en la imagen. Por tanto, aparecen en la imagen algunos píxeles vacíos lo que representa una pérdida de continuidad en la imagen en donde sí la hay en la super…cie proyectada. Además, hay que añadir una diferencia al trabajar con porciones de malla con respecto al caso más simple de las vistas parciales. En esta situación y tal y como ha sido explicado el proceso de formación de la imagen de rango, es posible que se añadan más pérdidas de información en la imagen de rango, debido a la orientación del plano de referencia. Esto es, puede ocurrir que debido a una elevada curvatura en algunas zonas de la mallla (por ej. una 105 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.5. GENERACIÓN DE LA IMAGEN DE RANGO Figura 4.12: Aparición de pérdidas en la imagen de rango debidas a la orientación del plano de referencia con respecto a la malla. concavidad o hendidura de cierta profundidad), sea imposible obtener una continuidad en la imagen de rango para una posición y orientación determinados del plano de referencia. En la …gura 4.12 se re‡ejan el tipo de pérdidas que se ha mencionado. Una vez detectadas en la imagen todas las pérdidas, se procederá a la interpolación de esas zonas de la misma forma que se explicó en el capítulo anterior, para restituir esa información temporalmente, y así tener más información disponible para el algoritmo de restauración. Hay que señalar que si bien con vistas parciales, el proceso de rellenado se aplicaba de golpe sobre todos los huecos que presentaban, o lo que es lo mismo sobre todos los huecos de la imagen de rango, con las porciones de malla no se va a proceder de la misma forma. Como ya se ha explicado, al inicio del proceso de relleno se buscan y detectan todos los huecos de MT , y es para cada uno de los huecos para los que se extrae la porción de malla circundante. Por tanto, dada una porción de malla M i se tiene un único objetivo de rellenar el hueco hi . Sin embargo, dada la complejidad que puede darse en la digitalización de objetos reales, es posible que en determinadas zonas aparezca más de un hueco en una misma zona de la malla. Por tanto, ante tal situación es probable que, si la distancia entre ambos es pequeña, esos huecos aparezcan en la misma porción de malla M i , extraída para uno de ellos. Dado que en el proceso de generación de la imagen de rango solamente se tiene identi…cado sobre la imagen el hueco hi correspondiente a esa porción de malla, el otro u otros huecos capturados en la imagen, van a ser representados como zonas vacías en la misma. Si, debido a la complejidad de la malla y orientación del plano de referencia, el hueco que no es el objetivo, hi+1 , es representado como una zona vacía pequeña, el algoritmo de interpolación lo detecterá como una de las zonas de pérdidas y procederá a su rellenado temporal. Si, por el contrario, el hueco se proyecta dando lugar a una zona vacía de tamaño considerable, esta no será interpolada y producirá una merma en la cantidad de información que tomará de la imagen el algoritmo de restauración. Esta situación puede producir un relleno de peor calidad del hueco hi . A 106 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN4.6. MALLAS APLICACIÓN 3D DE LOS ALGORITMOS DE IMAGE INPAINTING Figura 4.13: Aparición de más de un hueco en la imagen de rango de uno de ellos pesar de este inconveniente, dada la naturaleza iterativa del proceso de relleno de la malla global MT , cuando en un futuro paso de iteración se acometa el rellenado del otro hueco hi+1 , el escenario que se presente será algo más ventajoso. Si la correspondiente malla M i+1 contiene la zona donde se localizaba hi , al haberse rellenado ya ese hueco, ahora no se tendrá el problema anterior. Aunque podría cuestionarse la validez de la información que aporte la información restaurada de hi en el relleno de hi+1 , es más favorable esta situación para añadir más información, aunque aproximada, a la imagen que se le pasa al algoritmo de restauración. El caso que se ha explicado viene representado en la …gura. 4.6. Aplicación de los algoritmos de image inpainting En esta etapa se va a aplicar el algoritmo de image inpainting sobre la imagen I_{h}’ obtenida en la etapa anterior. Como se mencionó anteriormente, una vez revisada la literatura sobre los algoritmos de restauranción de imágenes, se decidió comprobar el funcionamiento del método incluyendo dos tipos de algoritmos de restauración, cada uno perteneciente a una de las categorías enumeradas. En concreto, se planteó la aplicación de un método basado en la difusión de información: el desarrollado por Criminisi et al. ; y otro método basado en la información estadística: el desarrollado por Roth y Black . En ambos se observó y comprobó la bondad de los resultados que producían al utilizarlos con fotografías, y por eso se decidió aplicarles en el método propuesto. A continuación se describirá brevemente la base teórica de estos algoritmos para, seguidamente, explicar el modo de integración de esos algoritmos en el método que se pretende veri…car en este capítulo. Algoritmo de restauración de la imagen basado en el muestreo Este método, descrito en , combina las técnicas de síntesis de textura que utilizan muestreo y las técnicas de difusión de imagen para calcular el rellenado de huecos en la imagen. 107 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN4.6. MALLAS APLICACIÓN 3D DE LOS ALGORITMOS DE IMAGE INPAINTING Para este …n, el algoritmo comienza con la introducción por parte del usuario de la máscara de selección. Esta máscara indica qué zonas de la imagen han de ser restauradas. El usuario también tiene que especi…car el ancho de la ventana que se utilizará para el muestreo. Aunque en general este parámetro suele …jarse en un valor que funciona bien en la mayoría de los casos. Durante su ejecución, el algoritmo va rellenando, desde los bordes hacia el interior, los huecos seleccionados. Este rellenado lo realiza estudiando la textura y la estructura de la imagen, tomando muestras y propagando la información de textura y estructura hacia el interior de la imagen. Hay que resaltar que es muy importante el orden en que se realiza el rellenado de los pixeles de la imagen. Esto es debido a que se trata de un algoritmo iterativo que va teniendo en cuenta el valor del pixel que se calculó en la iteración anterior. El método que emplean es el llamado piel de cebolla, que va rellenando anillos del hueco de forma concéntrica hacia el interior. En la puede observarse un ejemplo del funcionamiento de este algoritmo con una imagen en la que se ha querido eliminar uno de los elementos que aparecen. [ejemplo_criminisi.tif] [Ejemplos de reparación de imágenes con el algoritmo propuesto por Criminisi et al. en Algoritmo de restauración basado en el Producto de Expertos Esta técnica, desarrollada por , explota las ideas de la codi…cación de imágenes dispersa (sparse image coding) que consigue representar parches de la imagen como la combinación lineal de …ltros aprendidos para el aprendizaje del comportamiento estadístico de las imágenes, utilizando los Campos de Markov (MRF- Markov Random Fields). El método empleado se denomina Campo de Expertos y modela la probabilidad de una imagen en términos de un campo aleatorio con cliques (parches con determinadas relaciones de vecindad) solapados, cuyos potenciales son representados como un Producto de Expertos . La función del Producto de Expertos es modelar distribuciones de probabilidad de elevadas dimensiones (parches de la imagen) a partir del producto de varias distribuciones de expertos, donde cada experto trabaja en un subespacio de baja dimensión, sencillo de modelar. En concreto, al aplicar un …ltro lineal a un parche de imagen se produce el subespacio de una dimensión que se modelará. Por tanto, la densidad de probabilidad del parche de imagen puede ser de…nido como el producto de las distribuciones que describen los …ltros lineales. Para modelar la probabilidad de la imagen completa, se emplea el Campo de Markov que modela la probabilidad de la imagen como una distribución de Gibbs p=(1/z)e^{^{ V_{k}(x_{k})}}, donde x es una imagen y V_{k}(x_{k}) es la función potencial para el clique x_{k}. Considerando un Campo de Markov homogéneo, todo los potenciales V_{k} son los mismos para todos los cliques, V_{k}(x_{k})=V(x_{k}). Para de…nir la función V, los potenciales del Campo de Markov son representados como el Producto de Expertos para todos los cliques. Consecuentemente, la probabilidad de la imagen puede ser modelada en términos del producto de las distribuciones de …ltros lineales. Todos los parámetros en este modelo son aprendidos a partir de un conjunto de imágenes, maximizando su probabilidad, es decir, maximizando la probabilidad para los modelos del Producto de Experto y del Campo de Expertos. El algoritmo propaga la información utilizando el Campo de Expertos dentro del conjunto de puntos pertenecientes a la vecindad de los pixeles que se desean rellenar. La propagación se realiza de forma iterativa, teniendo en cuenta el modelo de probabilidad de la imagen 108 CAPÍTULO 4.7. INTEGRACIÓN 4. DEFINICIÓN DEDE LOS UN RESULTADOS. MÉTODO GENERAL TRANSFORMACIÓN PARA EL RELLENADO DE 2D A 3D. DE HUECOS EN MALLAS 3D TRIANGULACIÓN DE HUECOS Figura 4.14: Representación de la imágenes de rango extraídas de las porciones de malla M i (a la izquierda ) y de las imágenes de rango obtenidas tras la aplicación del algoritmo de restauración, para los huecos 1, 2 y 3 en a, b y c, respectivamente. (modelo de Gibbs). Como puede observarse en la llama la atención la e…cacia del algoritmo en la restauración de las imágenes. Este modelo ha sido entrenado utilizando 2000 regiones de imágenes que se han extraído de la base de datos para segmentación de Berkeley Segmentación (escenas naturales, personas, edi…cios, etc). En la Tabla se muestra un grupo de imágenes pertenecientes a esa base de datos. [ejemplo_roth.tif] [Ejemplos de reparación de imágenes con este algoritmo: (a) y (c) imágenes originales (dañada y con texto, respectivamente); (b) y (d) imágenes reparadas] [plot] Aplicación del algoritmo de restauración a la imagen de rango En general este tipo de algoritmos no hace una selección automática de los píxeles sobre las que se efectuará el relleno. Solamente actuarán sobre los que les vengan marcados a la entrada. Por tanto, para la aplicación de estos algoritmos habrá que introducir tanto la imagen de rango, Ih’, como una máscara de selección de los píxeles a rellenar, Qh. Esta máscara es una imagen binaria, del mismo tamaño que la imagen de rango,(n; m) = (w=q h=q)(pixels), y en las que aparecen activos los píxeles sobre los que se pretenda realizar el relleno, como se muestra en la …gura ejemplo de mascara de seleccion. [ejemplo de mascara de seleccion] [Ejemplo de Máscara de selección] 4.7. Integración de los resultados. Transformación de 2D a 3D. Triangulación de huecos De igual forma que se procedía en el capítulo anterior, la última etapa del proceso de relleno es la transformación de los datos que se han obtenido en la etapa anterior a 3D y su 109 CAPÍTULO 4.7. INTEGRACIÓN 4. DEFINICIÓN DEDE LOS UN RESULTADOS. MÉTODO GENERAL TRANSFORMACIÓN PARA EL RELLENADO DE 2D A 3D. DE HUECOS EN MALLAS 3D TRIANGULACIÓN DE HUECOS integración en la malla global MT . Evidentemente la transformación se aplica solamente a los datos nuevos que se han generado tras la aplicación del algoritmo de restauración, es decir, sobre los huecos rellenos, sin incluir en este grupo a los píxeles que han sido rellenados por el algoritmo de interpolación de la imagen de rango. Para seleccionar estos píxeles rellenos se aplica la máscara de selección a la imagen que resulta tras la restauración, como ya fue explicado en el relleno de vistas parciales. De la misma manera, se realiza de forma idéntica la obtención de la coordenada 3D que se corresponde con esos píxeles rellenos. En este caso, teniendo en cuenta la ecuación 4.20, y el tamaño de la imagen de…nido en la ecuación ??, dado un píxel (r; s) que almacena el valor , la coordenada 3D, (xf ; yf ; zf ), que correspondería a ese píxel es: 1 0 xf B yf C B B C=B @ zf A B @ 1 0 1 ib0x jbx0 kbx0 ex C ib0y jby0 kby0 ey C C ib0z jbz0 kbz0 ez A 0 0 0 1 1 0 1 xm n + s q Bymax r q C B C ; @ A f ek r = f1; 2; :::; ng; s = f1; 2; :::; mg 1 (4.25) donde fek es el factor de escala que se aplicó en la ecuación 4.24 para acercar los valores de la imagen de rango al nivel de cero en Z 0 (al plano X 0 Y 0 ). Como ya se mencionó, este acercamiento ya se realizaba en mayor medida cuando se calculaba el vector de traslación (ex ; ey ; ez ), por lo que, por término general, el factor de escala será de menos intensidad que el que se aplicaba en el capítulo anterior, es decir, muy próximo a la unidad. Además, en este caso este factor va depender más del proceso de selección del plano de referencia, siendo, por tanto especí…co para cada iteración del proceso de relleno (o para cada porción de malla seleccionada). En el capítulo anterior solo dependía del proceso de adquisición de la vista parcial, ya que las coordenadas del plano de referencia venían …jadas por la elección que se hiciese de la colocación del escáner 3D. Hay que señalar, de nuevo, que en la ecuación 4.25, se considera que las coordenadas de los píxeles vienen de…nidas por la …la r y columna s que ocupan en la matriz imagen. Es por esto que que la coordenada x depende de la segunda coordenada del plano imagen, s, y la coordenada y de la primera, r. Tras haber obtenido todas las coordenadas de los píxeles rellenos, se dispone de una nube de puntos 3D, Ri , correspondiente al hueco hi de la malla que ha sido rellenado. A continuación, es necesario de…nir las super…cies rellanadas mediante la triangulación de esas nubes de puntos. Este proceso se llevará a cabo de la misma forma que la explicada para vistas parciales. La única diferencia que hay que recordar es que en el proceso de relleno explicado en el capítulo anterior, éste se aplicaba simultáneamente sobre todos los huecos de la vista parcial. Por consiguiente, la nube de puntos que se obtenía tras la transformación de 2D a 3D, contenía puntos de los diferentes huecos rellenos, por lo que había que dividir la triangulación en grupos de puntos correspondientes a cada hueco, que estaba delimitado por su correspondiente borde de hueco. En el caso estudiado en este capítulo, sólo se va a rellenar un único hueco en cada triangulación, con lo que supone una simpli…cación del problema detallado en el anterior capítulo. Para calcular la triangulación también va a incluirse en la nube de puntos, los puntos que forman el borde del hueco Bhi , que servirá como delimitadores de la porción de malla rellena. Además, también tendrán la función de servir como eje de unión o cosido entre la malla inicial con huecos, MT , y la malla de relleno. En cuanto a la integración de la malla rellena, la tupla que caracteriza a la porción de 110 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.8. RESULTADOS EXPERIMENTALES malla rellena correspondiente al hueco hi , {V i ,Ai ,T i }, se adjuntará a continuación de la tupla de la malla global MT , con lo que se obtendrá la tupla: VT Vi ; AT Ai ; TT Ti (4.26) La nueva malla global MT0 será la que se utilice en la siguiente iteración del proceso para proceder al relleno del hueco siguiente hi+1 , por lo que la malla globla del proceso es diferente en cada iteración, pues va siendo poco a poco restaurada. En cualquier caso, resulta de especial interés mantener siempre identi…cadas cuáles eran las partes de la malla originales, y cuáles han sido generadas arti…cialmente en el proceso de restauración. Por ello, conviene asociar al proceso total la llamada matriz de restauraciones M , que tiene tres columnas y tantas …las como huecos se procesen. En las tres columnas se almacenan los cardinales de los conjuntos de vértices, aristas y triángulos que van añadiéndose en cada iteración del proceso, respectivamente. Con ello se tendrá la siguiente matríz de restauraciones: 3 2 card (V T ) card (AT ) card (T T ) 6 card (V 1 ) card (A1 ) card (T 1 ) 7 7 6 6 card (V 2 ) card (A2 ) card (T 2 ) 7 (4.27) M =6 7 7 6 .. .. .. 5 4 . . . card (V m ) card (Am ) card (T m ) En la …gura 4.15 se muestra un ejemplo de triangulación e integración de tres huecos (a), (b) y (c), de la malla que se mostraba en la …gura 4.2. 4.8. Resultados experimentales 4.9. Conclusiones En este trabajo se ha presentado un método para el rellenado de huecos en mallas 3D. Para esto es necesario, en primer lugar, generar una imagen 2D como entrada del algoritmo de restauración. Debido a la in‡uencia de la resolución de la rejilla (pixels) en la pérdida de datos cuando los datos 3D son proyectados, se ha determinado la resolución óptima para minimizar esa pérdida. Se han establecido dos comparaciones para estudiar las diferencias entre los diferentes métodos: la distancia entre las mallas originales y reparadas (por malla completa y por zona reparada) y la efectividad con respecto al área del hueco. Dos conclusiones importantes se pueden obtener. La primera es que el método propuesto ofrece errores más pequeños al utilizar el algoritmo de Roth, que en los otros casos. La segunda es que se ha probado que este es también más adecuada para rellenar huecos de cualquier tamaño. Por tanto, se ha demostrado que se trata de un método de rellenado de huecos robusto. En el futuro se pretende desarrollar trabajos centrados en el uso de información geométrica y de textura, como datos de apoyo para el algoritmo de rellenado de huecos. Por otra parte, el método ha sido probado solamente con vistas parciales aunque se está trabajando en la variación de la proyección de Mh de forma que se pueda aplicar a mallas completas. Lineas de trabajo futuras 111 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.9. CONCLUSIONES Figura 4.15: Integración de las zonas que se han rellenado aplicando el algoritmo de restauración en la malla total MT de la …gura 4.2. Huecos 1, 2 y 3 en (a), (b) y (c), respectivamente. 112 CAPÍTULO 4. DEFINICIÓN DE UN MÉTODO GENERAL PARA EL RELLENADO DE HUECOS EN MALLAS 3D 4.9. CONCLUSIONES En este campo se han hecho pruebas de un nuevo parámetro en el método del cálculo del campo de distancias para reducir si cabe aún más los tiempos de computo. La idea es de de…nir un parámetro que mide las diferencias que hay en la distancia calculada al moverse de un nivel a otro del árbol. De tal forma que, si la diferencia al bajar de nivel, se hace muy pequeña, se pararía el recorrido del árbol en ese nivel y se …jaría como distancia la última calculada. Por otra parte, se pretende probar los algoritmos de restauración de imágenes sobre las secciones que se obtienen del campo distancias. Con esto pretende demostrar la validez del método de rellanado de huecos para este tipo de representación. Por último, se …ja como objetivo la creación de modelos para usarlos en el reconocimiento y localización 3D, a partir de las mallas restauradas, haciendo uso mixto de la geometría y textura. Para ello se combinarán ideas de los modelos existentes que hacen uso bien de la geometría del objeto o bien de su textura. 113 Capítulo 5 Conclusiones En esta tesis se ha presentado un método para el relleno de huecos en mallas 3D. La idea novedosa que se proponía era la utilización de técnicas de restauración de fotografías, aplicadas sobre datos 2D en la resolución de un problema que se presentaba en objetos 3D. En primer lugar se ha tratado de validar el método propuesto mediante su aplicación sobre una base de datos de vistas parciales. Una de las claves del método consiste en una transformación de los datos 3D en 2D para así poder aplicar esas ténicas de restauración de imágenes. Por tanto se ha procedido a generar una representación 2D de la malla que se quería rellenar, mediante la proyectacción de los puntos 3D sobre un plano de referencia, lo que genera la correspondiente imagen de rango. Se ha comprobado la in‡uencia que tiene en el proceso la etapa de generación de la imagen de rango y, en concreto, la elección de un ancho óptimo de la rejilla que constituye el plano de proyección y que determina el contenido de los píxeles de la imagen de rango que se genera. Por ello se ha hecho necesario la realización de un análisis experimental para determinar cuál es el ancho óptimo que se ha de …jar. De entre diversas técnicas de restauración de fotografías se han elegido dos que se han considerado que ofrecían unos resultados muy buenos en su aplicación sobre diversos tipos de restauración. A partir de ahí se han generado resultados, de vistas parciales con huecos, rellenados aplicando sendas técnicas. Además para tener otra fuente de comparación se ha utilizado un software comercial para el relleno de huecos. Para el análisis de todos los resultados se han establecido dos comparaciones para estudiar las diferencias entre los diferentes métodos: la distancia entre las mallas originales y reparadas (por malla completa y por zona reparada) y la efectividad con respecto al área del hueco. A partir de las mismas se han extraído dos importantes conclusiones. La primera es que el método propuesto ofrece errores más pequeños al utilizar el algoritmo de Roth, que en los otros casos. La segunda es que se ha probado que este es también más adecuada para rellenar huecos de cualquier tamaño. Por tanto, se ha demostrado que se trata de un método de rellenado de huecos robusto. Para su aplicación en mallas completas, se han estudiado las particularidades que se presentaban en tales condiciones. En primer lugar las condiciones de la malla de partida son diferentes. Mientras que las vistas parciales no son apenas tratadas tras su digitalización, la malla de los objetos completos son el resultado de la aplicación de las diferentes de etapas que componen el proceso de reconstrucción de objetos completos. Por tanto, la regularidad de las mallas en el primer caso es mucho mayor en el segundo, con los consiguientes procesos de remallado que ello requiere. 114 CAPÍTULO 5. CONCLUSIONES 5.1. LINEAS DE TRABAJO FUTURAS Además, por la misma razón, se hace necesario un análisis de los diferentes tipos de errores que pueden presentar las mallas de objetos completos. Se han establecido los mecanismos de corrección de dichos errores con el …n de garantizar un determinado nivel de calidad en la representación de la malla triangular y así poder aplicar los métodos de relleno sin apenas fuentes de error. Una de las principales diferencias a la hora de trabajar con vistas parciales y objetos completos, es en la etapa de elección de plano de referencia que se utilizará para generar la imagen de rango. Si bien en el caso de vistas parciales, el plano de referencia no requiere de ningún cálculo previo ya que viene determinado por la posición del escaner cuando se digitalizó el objeto, en objetos completos esto genera un nuevo problema a resolver. Para ello, se han estudiado diversos métodos de elección del plano de referencia idóneo. En concreto se ha optado por un método que se basa en el cálculo de la orientación de tal plano que dé lugar a una proyección de área máxima del polígono genera el borde de hueco (contorno cerrado). Esto pone de relevancia otra diferencia importante, si en vistas parciales se utilizaba un único plano para rellenar todos los huecos, en objetos completos habrá que calcular el plano óptimo para cada uno de los huecos que se presenten. De esto último también puede extraerse otra diferencia más, en vistas parciales se genera una única imagen de rango, el relleno de los diversos huecos durante la etapa de restauración de imagen se hace de una vez, y por tanto, una vez trianguladas las correspondientes nubes de puntos de relleno, la integración se hace también a la vez, para todos los huecos rellenos. Sin embargo, en objetos completos, se genera una única imagen de rango para cada uno de los huecos y, por tanto, el proceso de restauración de la imagen de rango da lugar al relleno de un único hueco y, aun más, tras la triangulación de la nube de puntos, la integración de la malla rellena con la malla total se realiza por separado para cada uno de los huecos. Tras el análisis del problema sobre objetos completos, también se ha diseñado un método de interpolación de la imagen de rango, para evitar el uso de imágenes de rango con un gran porcentaje de errores en su generación. Dada la diversidad de tipos de huecos que pueden presentarse, con gran variación en el tamaño, curvatura y complejidad de los mismos, se ha efectuado un análisis para acotar los límites en que el comportamiento del método desarrollado ofrece buenos resultados y de esta manera determinar cuáles son las limitaciones que se han encontrado en su aplicación. Para el análisis de los resultados se han calculado las curvaturas de las mallas rellenas y se ha observado la continuidad que presenta la super…cie en las zonas rellenas y zonas de unión entre la malla de partida y las zonas restauradas. Además para cada experimentación se ha calculado el área del hueco relleno y los tiempos de relleno, con el …n de tener una base que sirva de referencia para su comparación con otros métodos de relleno existentes. 5.1. Lineas de trabajo futuras Una vez concluidos los trabajos que se propusieron una vez que surgió la idea de esta tesis, se estudió la posibilidad de extender su aplicación en otros casos particulares del relleno en 3D. En concreto, se comenzó, y se continua actualmente, con la adaptación del/de los algoritmo/s para trabajar con datos generados por sensores de larga distancia. El problema surge cuando se planteó un proyecto para la obtención de mapas actualizados reales de interiores de edi…cios, tras la digitalización de los mismo. En ese proceso se obtenían lógicamente huecos en las paredes, suelos y techos digitalizados. En este caso el origen de los huecos es debido a causas diversas tales como: oclusión de los elementos (paredes, techos y suelos) 115 CAPÍTULO 5. CONCLUSIONES 5.1. LINEAS DE TRABAJO FUTURAS debido al mobiliario, falta de datos debido a una mala estrategia de escaneado, brillos o super…cies oscuras, etc. Para esta situación particular, se plantea el estudio de los siguientes aspectos: Filtrado y adaptación del método para este tipo de datos. Estudio de los resultados según el tamaño de los huecos. Adaptación del algoritmo para el rellenado de casos particulares tales como: cenefas, marcos, etc. Por otra parte, se ha estado investigando el algoritmo de restauración de imágenes empleado. Como ya se explicó, el funcionamiento se basa en el aprendizaje de patrones de respuesta a …ltros de diversas porciones de imágen extraídas al azar de un banco de imágenes naturales. Se ha estado desarrollando una aplicación para el entrenamiento de este algoritmo utilizando cualquier fuente de imágenes. La idea en la que se pretende trabajar en un futuro próximo es en la realización de un banco de imágenes de rango obtenidas de diversos objetos reales y a partir de ahí, llevar a cabo el entrenamiento del algoritmo con ese nuevo banco de imágenes. A continuación se realizará un estudio de los resultados que ofrece el método propuesto en esta tesis, pero con ese nuevo entrenamiento aplicado. 116 Capítulo 6 Anexo I 117 N Malla 1 118 2 Generación de huecos arti…ciales Malla original Malla con huecos generados Huecos numerados CAPÍTULO 6. ANEXO I Tabla 6.1: Generación de huecos arti…ciales en 20 vistas parciales de la base de datos 3 119 4 5 CAPÍTULO 6. ANEXO I Tabla 6.1: (continuación) 6 120 7 8 CAPÍTULO 6. ANEXO I Tabla 6.1: (continuación) 9 121 10 11 CAPÍTULO 6. ANEXO I Tabla 6.1: (continuación) 12 122 13 14 CAPÍTULO 6. ANEXO I Tabla 6.1: (continuación) 15 123 16 17 CAPÍTULO 6. ANEXO I Tabla 6.1: (continuación) 18 19 124 20 CAPÍTULO 6. ANEXO I Tabla 6.1: (continuación) N Malla 1 125 2 Comparación de mallas rellenas por algoritmo Algoritmo 1 Algoritmo 2 Algoritmo 3 CAPÍTULO 6. ANEXO I Tabla 6.2: Comparación de algunas mallas rellenas con cada uno de los tres algoritmos aplicados 3 126 4 5 CAPÍTULO 6. ANEXO I Tabla 6.2: (continuación) 6 127 7 8 CAPÍTULO 6. ANEXO I Tabla 6.2: (continuación) 9 128 10 11 CAPÍTULO 6. ANEXO I Tabla 6.2: (continuación) 12 129 13 CAPÍTULO 6. ANEXO I Tabla 6.2: (continuación) 14 130 15 CAPÍTULO 6. ANEXO I Tabla 6.2: (continuación) 16 131 17 18 CAPÍTULO 6. ANEXO I Tabla 6.2: (continuación) 19 20 CAPÍTULO 6. ANEXO I Tabla 6.2: (continuación) 132 CAPÍTULO 6. ANEXO I Tabla 6.3: Valor máximo y mínimo de la distancia entre nodos para los mapas de distancias DISTANCIA ENTRE NODOS (mm) Algoritmo 1 Algoritmo 2 Algoritmo 3 Valor máximo 4,097 33,092 4,761 Valor mínimo 0 0 0 133 N Malla 1 134 2 3 MAPAS DE DISTANCIAS DE LAS MALLAS RECONSTRUIDAS Algoritmo 1 Algoritmo 2 Algoritmo 3 CAPÍTULO 6. ANEXO I Tabla 6.4: Mapas de distancias entre las mallas originales y las mallas reconstruidas 4 135 5 6 CAPÍTULO 6. ANEXO I Tabla 6.4: (continuación) 7 136 8 9 CAPÍTULO 6. ANEXO I Tabla 6.4: (continuación) 10 137 11 12 CAPÍTULO 6. ANEXO I Tabla 6.4: (continuación) 13 138 14 15 CAPÍTULO 6. ANEXO I Tabla 6.4: (continuación) 16 139 17 18 CAPÍTULO 6. ANEXO I Tabla 6.4: (continuación) 19 140 20 CAPÍTULO 6. ANEXO I Tabla 6.4: (continuación) Capítulo 7 Anexo II 7.1. 7.1.1. El equipo de captura. Descripción especí…ca del sensor de rango empleado. En este proyecto el sensor de rango empleado para la obtención de las super…cies tridimensionales de objetos es el Digitalizador de No contacto Vivid 300 fabricado por la casa Minolta. En la Figura 7.1 se muestran imágenes de dicho sensor así como un diagrama de las dimensiones del mismo. El principio de medida de este digitalizador se basa en el empleo combinado de un emisor láser y un sensor CCD y la aplicación de técnicas de visión y triangulación a las imágenes adquiridas de la escena. Por tanto, no se requiere un contacto físico con la super…cie del objeto, solo es necesario colocar el objeto delante del escáner en un entorno de iluminación adecuada. En la Figura 7.2 se muestra un esquema detallado que ilustra el funcionamiento físico del sensor de rango. En esta se observa que el origen del sistema es un emisor láser que hace incidir un rayo de luz sobre una lente que produce la dispersión en un haz plano de luz. Este haz se re‡eja sobre un espejo giratorio (Galvano Mirror) que da lugar a un barrido del haz de luz sobre la super…cie del objeto. Este proceso es captado por el sensor CCD que dispone el escáner y, mediante la aplicación de los algoritmos de cálculo de triangulación, se obtendrán como resultado las distancias de los puntos de la super…cie al sensor. Sobra decir que todo este proceso para la adquisición de una instantánea tridimensional del objeto es transparente al usuario, que sólo ha de operar en la colocación relativa del objeto y del sensor, en la iluminación adecuada de la escena y en un sencillo manejo del software especí…co suministrado. Del modo de funcionamiento y estructura del escáner se deduce una ventaja que ofrece respecto a otros sensores del mercado: se trata de la portabilidad y movilidad del mismo que permite su utilización tanto en entornos cerrados como abiertos, así como la adquisición de grandes super…cies sin más que ir recorriendo las mismas con el sensor. La super…cie total se compondría a posteriori mediante las operaciones de registro suministradas en el software especí…co. En el caso de este proyecto, la utilización del escaner se reduce a un espacio cerrado con iluminación controlada y con posicionamiento y orientación del sensor mediante trípode. Resaltar como curiosidad, de la lista de características enumeradas, los tiempos de operación de la máquina, que como se han detallado son de 0.6 segundos para el tiempo de escaneo y de 2 segundos o menos para el tiempo de transferencia de la imagen al ordenador, 141 CAPÍTULO 7. ANEXO II 7.1. EL EQUIPO DE CAPTURA. Figura 7.1: Vista frontal y trasera y diagrama de medidas del sensor Vivid 300 de Minolta. 142 CAPÍTULO 7. ANEXO II 7.1. EL EQUIPO DE CAPTURA. Figura 7.2: Principio de medida del sensor de rango. 143 CAPÍTULO 7. ANEXO II 7.1. EL EQUIPO DE CAPTURA. tiempos que como se puede apreciar son bastante pequeños. Posteriormente se demostrará que estos tiempos resultarán insigni…cantes para el total de tiempo requerido para la obtención …nal de la malla del objeto, dado que la mayor parte de tiempo de dicho proceso la consumirán las operaciones de tratamiento de toda la información (mallas y texturas) aportada por el sensor de rango. Aunque también ha de resaltarse la importancia de una realización adecuada del escaneado, con una preparación adecuada del objeto y el entorno sobre el que se situará el mismo, debido a la incidencia que esto tiene sobre el tiempo total del proceso. Seguidamente se enumeran algunas de las características técnicas de los elementos básicos que constituyen el sensor de rango. Modelo VIVID 300/VI-300 Lente de recepción de la luz f = 12 mm Potencia del láser = 690 nm, Max. 7 mW(Class I o equivalente, controlado y emitido por el circuito de control interno y ópticas) Ángulo de propagación del haz Método de escaneo láser Horizontal: 23.7o ; Vertical: 0.1o Espejo Galvano Rango de distancia al objeto 0.55 a 1.2 m Campo de visión (cada lado del campo de visión xy) 185 a 395 mm Rango de distancias operativo (en z) Equivalente a cada lado del campo de visión (cuando la distancia de la imagen de entrada es 1.2m) Tiempo de escaneo 0.6 seg Tiempo de transferencia de datos de imagen al ordenador Condiciones de iluminación ambiente 500 lx o menos Controlador de imagen 3D data: CCD de (380000 elementos de imagen) Color data: CCD color de Datos de salida 1 2 2.0 seg o menos 1 2 pulgadas de transferencia de fotograma pulgada (380000 elementos de imagen) Datos 3D: 200 x 200 Datos de Color: 400 x 400 Formato de salida Datos 3D: Formato original (convertidos a datos 3D por la utilidad software VI-S1) Datos de color: RGB 24-bit Interfaz de salida SCSI II, monitor color NTSC Características eléctricas Fusible 100 a 240 V Type T2A 250 V 144 (50 a 60 Hz), 0.6 A (medido a 100 V ) CAPÍTULO 7.2. DESCRIPCIÓN 7. ANEXO II DE LOS ELEMENTOS Y CONFIGURACIÓN EMPLEADOS. Dimensiones Peso 165 (W) x 406 (H) x 320 (D) mm 8 kg Rango de temperaturas de operación menos, no condensación a 35 o C) 10 a 35 Rango de temperaturas de almacenamiento o menos, no condensación de 35 o C) o C (85 % de humedad relativa o -20 a 50 o C (85 % de humedad relativa A continuación seguirá una descripción detallada del resto de los elementos que conforman el equipo de trabajo así como de las conexiones y relaciones entre los mismos. 7.2. 7.2.1. Descripción de los elementos y con…guración empleados. El trípode y la cabeza de rotación Como soporte del escáner se dispone de un trípode profesional de aluminio modelo 475 del catálogo suministrado por la casa Manfrotto. Éste lleva adosada una cabeza de rotación, modelo 279 del catálogo Manfrotto, que facilitará enormemente las labores de colocación y orientación adecuadas del sensor según las necesidades impuestas por la escena a escanear. En la Figura 7.3 se muestra una imagen del trípode sin accesorios adicionales, que servirá básicamente para ajustar la posición del escáner con respecto a la escena a capturar. Las principales características de éste son las que a continuación se enumeran: Columna central de cremallera con bloqueo Patas de aluminio adonizado Sistema de apoyo telescópico de medio nivel Manivela de acción rápida para el bloque de los extensores de las patas Topes de goma en las patas con pinchos retráctil Anillo para instalación de correa de transporte adicional Altura máxima alcanzable: 188 cm Peso del trípode: 4,3 kg Peso máximo soportado: 12 kg Para controlar la orientación del escáner el trípode lleva adosado en la parte superior la cabeza de rotación o rótula que se muestra en la Figura 7.4. Ésta ofrece 3 ejes de rotación fácilmente ajustables manualmente, con la mejora añadida de incluir escalas graduadas y burbujas de nivel para cada eje que darán mayor precisión a la hora de …jar la orientación deseada. A continuación se enumeran algunas de las especi…caciones de esta cabeza de rotación Manfrotto MN229: Máxima capacidad de carga: 11,9 kg 145 CAPÍTULO 7.2. DESCRIPCIÓN 7. ANEXO II DE LOS ELEMENTOS Y CONFIGURACIÓN EMPLEADOS. Figura 7.3: Imagen del trípode Manfrotto 475 utilizado como soporte del escáner. Altura de la cabeza: 16 cm Giro: 360 o Inclinación: -25 +90 inclinación frontal, -90 +30 inclinación lateral Peso de la cabeza: 1,9 kg Es evidente que este elemento no es ni mucho menos imprescindible para la adquisición del tipo de objetos con que se ha trabajado en este proyecto pero hay que incidir en que facilita enormemente las labores de posicionamiento y orientación del escaner y que nos permite tomar instantáneas de la escena desde enfoques que sin el trípode no serían posibles. En la Figura 7.5 se muestra una imagen de cómo queda el conjunto montado: escáner, cabeza de rotación y trípode. 7.2.2. La mesa o tabla de rotación. El patrón de calibración. Como accesorio para el proceso de escaneado completo de un objeto, se dispone de una mesa de rotación, que se muestra en la Figura 7.6. Ésta consiste básicamente en un plato giratorio accionado por un motor paso a paso, que produce la rotación del objeto a intervalos de grados determinados, para así ir obteniendo vistas del objeto espaciadas uniformemente a lo largo de un giro de 360o . Esta mesa de rotación está fabricada con materiales metálicos robustos de un tono negro mate para, de esta manera, interferir lo menos posible en las condiciones de iluminación de la escena a escanear. El plato giratorio tiene un diámetro de 20 cm lo que da una idea del tamaño de objetos que podrán colocarse sobre la misma. La mesa de rotación habrá de conectarse por un lado a la red eléctrica para alimentar el motor y los circuitos auxiliares y por otro lado al controlador del plato giratorio de la casa ISEL (Figura 7.7). Este es un elemento que traduce recibe las órdenes del ordenador a través de una conexión por puerto serie y va generando las señales para el giro del plato. 146 CAPÍTULO 7.2. DESCRIPCIÓN 7. ANEXO II DE LOS ELEMENTOS Y CONFIGURACIÓN EMPLEADOS. Figura 7.4: Imagen de la cabeza de rotación Manfrotto 279 utilizada para la orientación del escáner. Figura 7.5: Imagen del conjunto formado por trípode, la cabeza de rotación y el escáner. 147 CAPÍTULO 7.2. DESCRIPCIÓN 7. ANEXO II DE LOS ELEMENTOS Y CONFIGURACIÓN EMPLEADOS. Figura 7.6: Imagen de la mesa de rotación situada en el entorno de captura con iluminación controlada Figura 7.7: Controlador de la mesa de rotación de la marca ISEL 148 CAPÍTULO 7.2. DESCRIPCIÓN 7. ANEXO II DE LOS ELEMENTOS Y CONFIGURACIÓN EMPLEADOS. Figura 7.8: Imagen del patrón de calibración centrado sobre el plato giratorio Es evidente que este accesorio presenta la limitación de sólo poder trabajar con objetos de un cierto tamaño y peso. Las piezas con que se trabaja en este proyecto tienen unas dimensiones y peso que en ningún caso se aproximan a los límites máximos que soportan los elementos del plato giratorio. El manejo del plato se hará desde el software especí…co proporcionado con el escáner mediante un controlador especí…co que también es suministrado con el software. Desde el programa hay accesible una opción para realizar el escaneado utilizando la mesa de rotación. El usuario deberá introducir el ángulo entre vistas que desea, y el software procederá a ir controlando la rotación del plato y a ir mostrando los resultados para cada instantánea de escáner. Un paso imprescindible una vez …nalizado el giro completo del objeto, es la colocación del patrón de calibración, una vez que es solicitada por el software. Este patrón, que se muestra en la Figura 7.8, consiste básicamente en un elemento fabricado en plástico que está formado por dos planos opacos de color blanco que forman un ángulo entre sí de 120 o . En la zona convexa de la unión entre los dos planos hay una franja de 5 cm de espesor de color negro. La función de este patrón no es otra que señalar al software la situación del eje de rotación del plato, situación que es diferente cada vez que cambia la posición y orientación relativas del escáner y mesa de rotación. Por tanto, el usuario tendrá que, una vez concluida la rotación completa del objeto y tras ser solicitado por el software, colocar el patrón de calibración de forma que la recta de intersección entre los dos planos coincida aproximadamente con el eje de rotación del plato. Para ello, este plato dispone de unas guías en las que encajar los pivotes salientes que tiene el patrón en su base de apoyo. 7.2.3. La iluminación de la escena. El ajuste de la iluminación de la escena es un paso importante en el proceso de escaneado de un objeto. Una mala iluminación puede dar lugar a un aumento en el tiempo de conformación de la malla completa así como a una pérdida de calidad tanto en las mallas como en las texturas resultantes. Para el caso concreto de este proyecto se han utilizado como accesorios de iluminación dos ‡exos articulados de luz blanca y de no muy elevada potencia luminosa, que pueden observarse en la Figura 7.9. El entorno donde se sitúan los objetos que se desean escanear se ha preparado en tonos oscuros con dos …nalidades principalmente: la 149 CAPÍTULO 7.2. DESCRIPCIÓN 7. ANEXO II DE LOS ELEMENTOS Y CONFIGURACIÓN EMPLEADOS. Figura 7.9: Flexos utilizados para el control de iluminación de la escena. Figura 7.10: Entorno de captura con iluminación controlada primera, conseguir controlar mejor la iluminación del objeto y la segunda, facilitar las labores de registro y mezcla posterior de las texturas de cada vista. También antes se mencionó que la super…cie de la mesa de rotación era de color negro por los mismos motivos que se han señalado. En la Figura 7.10 se muestra una imagen del entorno con iluminación controlada donde se situarán los objetos para la adquisición de super…cies. A pesar de esta iluminación cuidada que se ha procurado, realmente el sensor de rango con que estamos trabajando no presenta excesivos problemas en la adquisición de super…cies bajo condiciones de iluminación pobres, sobre todo en relación con otros sensores que sí presentan una gran sensibilidad ante este parámetro. Aunque, como se ha dicho anteriormente, sí es verdad que un control de estas condiciones da lugar a una mayor calidad para cada vista del objeto, tanto en las mallas como en las texturas resultantes y, de igual manera, a una reducción del tiempo total necesario para completar la malla de un objeto. Un parámetro de las super…cies de los objetos que está muy relacionado con la iluminación de la escena es el brillo que presentan. Así, una super…cie excesivamente brillante dará 150 CAPÍTULO 7.2. DESCRIPCIÓN 7. ANEXO II DE LOS ELEMENTOS Y CONFIGURACIÓN EMPLEADOS. problemas en el proceso de escaneado, ya que el haz de láser re‡ejado por ella será menos visible por el sensor CCD. Esto es debido a que se produce una saturación lumínica en las zonas especulares de la super…cie. Este problema da lugar a que las mallas resultantes del proceso de adquisición presenten huecos o agujeros en esas zonas donde se producía un mayor re‡ejo de la luz. Por tanto, se ha de procurar elegir objetos cuya super…cie no tenga excesivo brillo. Aun así, si fuese necesario escanear un objeto con tales características super…ciales, que plantease di…cultades en la adquisición de su super…cie, por los problemas anteriormente comentados, se puede optar por la aplicación de una pintura mate a la super…cie del objeto. Esta opción ha sido llevada a cabo con algunos objetos de la base de datos y se le ha aplicado una capa de pintura acrílica de color crema mate. Tras este tratamiento de la super…cie se hace patente una mejora sustancial en los resultados de adquisición de super…cie, y se consigue, por tanto, una reducción de tiempo total del proceso. Es evidente que el gran inconveniente que presenta esta opción es la pérdida de la textura real del objeto que es ocultada por la capa de pintura. Como antes se mencionó, la iluminación de la escena in‡uye enormemente en la calidad de la textura que se obtendrá tras la adquisición. Esto viene limitado lógicamente por las características físicas de la cámara del escáner que fueron enumeradas. En ésta se observaba el parámetro Condiciones de iluminación ambiente que presentaba un valor de 500 lx o menos. Por tanto, habrá que …jar las condiciones de iluminación de forma que no sean demasiado pobres, y den lugar a texturas con elevado ruido, ni excesivamente elevadas, dando lugar a zonas de saturación lumínica en la textura. Se perseguirá pues que resulte una textura rica en información del color real del objeto. 7.2.4. El monitor de video. Este es un elemento que, aunque no es imprescindible en el proceso de escaneado, facilita enormemente las labores de posicionamiento y orientación relativas del escáner y de la escena. En el caso concreto de este proyecto el monitor elegido es un Sony PVM-14L1, como el mostrado en la Figura 7.11, cuyas características principales se enumeran en la Tabla 2. Este monitor dispone de una entrada de video NTSC que es el formato de salida de video del sensor Minolta. Se ha optado por un monitor en color que se utilizará como apoyo para las siguientes funciones: posicionamiento y orientación del escáner y la escena; control de la iluminación, colocación del patrón de calibración. Como se puede apreciar en la tabla de características, el monitor dispone de 2 líneas de entrada video, de las que lógicamente solo ocuparemos una. De igual manera ofrece multitud de controles con…gurables para ajustar los parámetros de la imagen en los niveles deseados. En la Figura 7.12 se muestran dos imágenes del monitor, donde se pueden apreciar los controles accesibles en el frontal y las salidas disponibles en la parte trasera del mismo. A pesar de la ayuda que nos proporciona este elemento, es necesario resaltar un inconveniente que presenta y que habrá que tener en cuenta en la utilización habitual del mismo. Este inconveniente no es otro que la discrepancia entre la imagen mostrada por el monitor y la imagen sobre la que se aplica el proceso de triangulación, que es la que es visible desde el software especí…co del escáner. En la Figura 7.13, se muestra un ejemplo de tal discrepancia, que pone de mani…esto el margen de error a tener en cuenta al utilizar el monitor de video como guía para las funciones antes mencionadas. Pese a este ligero inconveniente, se ha resaltar el gran apoyo que nos brinda el monitor y la consiguiente reducción de tiempo a que da lugar el empleo del mismo. 151 CAPÍTULO 7.2. DESCRIPCIÓN 7. ANEXO II DE LOS ELEMENTOS Y CONFIGURACIÓN EMPLEADOS. Figura 7.11: Monitor de video Sony PVM-14L1 utilizado para visualizar la señal de video del escaner Figura 7.12: Controles accesibles en el frontal del monitor y conexiones de entrada y salida disponibles en la parte trasera del mismo 152 CAPÍTULO 7.2. DESCRIPCIÓN 7. ANEXO II DE LOS ELEMENTOS Y CONFIGURACIÓN EMPLEADOS. Figura 7.13: (a). Imagen captada por la cámara del escáner que es mostrada en el monitor de video;(b). Imagen a la que realmente se le aplica el proceso de triangulación 7.2.5. El ordenador. Hardware. Este es el elemento principal del equipo de escaneado, desde el que se llevan a cabo las operaciones de control del escáner, del plato giratorio, tratamiento de mallas y texturas,... Todo esto se realiza por medio de un software especí…co suministrado por el fabricante del sensor. En el ordenador es necesario instalar una tarjeta SCSI para la comunicación con el escáner. Se ha elegido que esta interconexión se lleve a cabo mediante SCSI debido al elevado ‡ujo de información entre el ordenador y el sensor que debe ser capaz de gestionar. Por otra parte, el plato giratorio se comunica con el ordenador mediante un puerto de comunicaciones serie. A diferencia del caso anterior, la comunicación entre estos dos elementos no conlleva el trasiego de una gran cantidad de información por lo que bastará con la velocidad que nos ofrece la comunicación serie. En cuanto a las características del hardware sobra decir que, para las tareas que debe realizar el ordenador en todo el proceso, se requiere elevada potencia de cálculo así como elevada cantidad de memoria y gran capacidad de almacenamiento, debido al gran volumen de datos que se ha de gestionar. En el caso concreto de este proyecto el equipo empleado es un Pentium IV 2 GHz,1 GB RAM, 40 GB HDD, tarjeta grá…ca ATI Radeon 9600 Pro 256 MB DDR; se muestra una imagen del mismo en la Figura 7.14. Interconexiones entre elementos. Como resumen se muestra en la Figura 21 un esquema general de relaciones entre los diferentes elementos que componen el sistema. De esta forma se observa que el elemento central de control es el ordenador. A éste se conecta el escaner, por medio de un enlace SCSI, y la mesa de rotación con su correspondiente controlador, que lo hacen por medio de un enlace RS-232. Por otra lado se puede establecer una conexión lógica entre el ordenador y el software especí…co. Por su parte, el escaner estaría conectado con una conexión física a la cabeza de rotación que a su vez tiene una conexión física con el trípode. 153 CAPÍTULO 7. ANEXO II 7.3. ESTUDIO DEL BRILLO DEL OBJETO Figura 7.14: Ordenador que se ha utilizado para el sistema de adquisición de super…cies Por último quedaría una conexión básica a la red eléctrica de los siguientes elementos: escaner, mesa de rotación con su controlador y ordenador. 7.3. Estudio del brillo del objeto Otro aspecto importante a tener en cuenta antes de acometer la fase de adquisición será la cantidad de brillo que presente la super…cie del objeto. Si la super…cie del objeto es totalmente mate, en general, no habrá ningún problema en cuanto a la adquisición de la escena ante cualquier con…guración de la iluminación. En cambio, en cuanto presente una mínima cantidad de brillo habrá que comprobar la incidencia que éste tenga en la fase de adquisición y la problemática a que puede dar lugar su presencia para las distintas vistas. Para ello se efectuarán diversas pruebas de escaneado de diversas vistas haciendo las pertinentes variaciones de las condiciones de iluminación. Se estudiarán por tanto las con…guraciones de la iluminación de la escena que sean más idóneas para la adquisición de la super…cie, es decir, aquellas en las que las pérdidas de información ocasionadas por el brillo sean mínimas. Por estas pérdidas se entienden las discontinuidades en la malla o agujeros que se presentan en las zonas donde se alcanza una gran intensidad de brillo. De igual manera, se notarán los efectos negativos en la textura, que presentará zonas de saturación de luz en los puntos de máximo brillo, lo cual se traduce en la pérdida de la textura en dichas zonas. En el caso de super…cies con un grado muy elevado de brillo, que presenten grandes problemas en la fase de adquisición, se estudiará la posibilidad de aplicar una capa de pintura mate que elimine los brillos de la super…cie. Con esto se tiene solucionado el problema ocasionado por el excesivo brillo pero da lugar lógicamente a una pérdida de la textura del objeto. Una solución a este inconveniente sería la reconstrucción manual de la textura por medio de fotografías del objeto, tomadas antes de la aplicación de la capa de pintura. Se trataría de un proceso manual y poco exacto que dependería de la pericia del usuario con el trabajo de mezclado de las fotografías. En la Figura 32 se muestra un ejemplo en el que se observa la in‡uencia que el brillo tiene en el proceso de adquisición. De igual manera se muestra en la Figura 33 las diferencias que resultan al adquirir un objeto antes y después de la aplicación de una capa de pintura. 154 CAPÍTULO 7. ANEXO II 7.3. ESTUDIO DEL BRILLO DEL OBJETO Figura 7.15: Esquema general que muestra las interconexiones entre los elementos que componen el sistema 155 7.4. ESTUDIO DE LA TEXTURA. PROBLEMAS OCASIONADOS POR LOS TONOS CAPÍTULO 7. ANEXO II OSCUROS. 7.4. Estudio de la textura. Problemas ocasionados por los tonos oscuros. Otro problema que se puede presentar en el proceso de escaneado viene derivado de los tonos que presente la textura del objeto. Como se explicó en el punto 1.2 del Capítulo I, el sensor de rango obtiene las profundidades de la escena a partir de visión del haz de láser recorriendo la super…cie del objeto, pues bien, para el caso de super…cies con zonas de tonos muy oscuros el escáner presenta problemas en la adquisición. Estos problemas serán mayores lógicamente cuanto mayor sea la extensión de la zona oscura respecto a la super…cie total del objeto. En las Figuras 34, 35 y 36 se pueden observar algunos ejemplos de captura de objetos con zonas negras de varios tamaños. De ellas también se deduce que el efecto negativo de tener una tonalidad oscura puede sumarse al de presentar un brillo excesivo, con el consiguiente empeoramiento de la calidad de la malla resultante. En cualquier caso habría que hacer las pertinentes pruebas de adquisición y decidir entre diversas opciones posibles: proceder al escaneado del objeto, si las zonas oscuras tienen un tamaño pequeño, reconstruyendo posteriormente mediante el software los agujeros a que darían lugar en la malla; aplicar una capa de pintura para eliminar esas zonas oscuras, con la consiguiente pérdida de la textura del objeto; en caso extremo, desechar el objeto para el escaneado. 7.5. Detección y eliminación de puntos y caras erróneas. Un aspecto muy importante a tener en cuenta tanto en el tratamiento de la malla como en la …nalización de la misma, es la detección y eliminación de los puntos y las caras erróneas. Esta tarea convendrá realizarla cada cierto tiempo tanto si los errores son evidentes como si no. Una de las herramientas más susceptible de generar datos de super…cie erróneos es la de rellenado de huecos de forma automática. Por lo que una vez ejecutada habrá que testear si se han producido errores. Si se da el caso de que los errores son repetitivos para un mismo hueco habrá que estudiar la aplicación de otro método de rellenado o la edición de los bordes de la malla en tal hueco. 7.5.1. Tipos de corrección de errores aplicados:. Find Abnormal Faces: Realiza una búsqueda de caras que cumplen una serie de características que se consideran anormales. Una vez ejecutada aparece un cuadro de diálogo como el de la Figura 112 en el que se selecciona qué tipo de caras anormales se desea seleccionar de entre los siguientes: Non-manifold faces: Este tipo de anormalidad se re…ere a la situación en que las caras no están “bien repartidas”. Éstas pueden causar muchos errores en varios cálculos propios del proceso de tratamiento, que son muy signi…cativos en el registro de mallas. Geométricamente se trata de la situación en que varias caras comparten 3 o más aristas como puede verse en la Figura 7.16 donde las caras ( V1 V2 V4 ), ( V2 V4 V3 ) y ( V2 V4 V5 ) comparten la arista ( V2 V4 ). Redundant faces: Esta anormalidad se produce desde el punto de vista de los vértices. Exceptuando los vértices del borde de malla, un vértice debe tener un número idéntico 156 CAPÍTULO 7.5. 7. ANEXO DETECCIÓN II Y ELIMINACIÓN DE PUNTOS Y CARAS ERRÓNEAS. Figura 7.16: Ejemplo de caras con topología Non-manifold. de caras y aristas incidentes. Si existe una cara que viole tal regla se considera una cara redundante. Un ejemplo de esta situación se muestra en la Figura 7.17 donde la cara (V1 V2 V3) es redundante. Crossing faces: Cuando dos aristas que comparten un vértice intersectan entre sí se da una situación geométricamente incorrecta que puede causar muchos errores de cálculo. Este tipo de caras se denominan caras cruzadas y se puede ver un ejemplo de las mismas en la Figura 7.18 en donde la arista (V2 V3) de la cara (V1 V2 V3) está cruzada con la arista (V1 V4). Unstable faces: En este caso se realiza una comprobación de las caras que no comparten todas sus aristas con otra cara, es decir que de alguna manera son bordes de la malla. De esta forma pueden darse dos tipos de fallos: Normales erróneas: en el que un grupo de caras presentan una normal diferente a la del entorno donde se ubican. En la Figura 7.19 se muestra un ejemplo de este tipo de fallos. Twisted Faces o caras giradas: en el que se generan un grupo de caras giradas en una especie de espiral, como el ejemplo de la Figura 7.20. 7.5.2. Operaciones a realizar para corrección de la malla: Clean Non-manifold Faces: Borrado de las caras “mal repartidas” que han sido explicadas en el apartado anterior. Clean Crossing Faces: Borrado de caras cruzadas explicadas en el apartado anterior. Find Self Intersection: Borrado de autointersecciones de la malla. En esta situación, de la que se muestra en ejemplo en la Figura 7.21, dos caras que no son adyacentes intersectan entre ellas. 157 CAPÍTULO 7.5. 7. ANEXO DETECCIÓN II Y ELIMINACIÓN DE PUNTOS Y CARAS ERRÓNEAS. Figura 7.17: Ejemplo en donde la cara (V1 V2 V3) es una cara redundante. Figura 7.18: Ejemplo de caras cruzada en donde la arista (V2 V3) de la cara (V1 V2 V3) está cruzada con la arista (V1 V4) Figura 7.19: Ejemplo de caras inestables en la modalidad de normales erróneas 158 CAPÍTULO 7.5. 7. ANEXO DETECCIÓN II Y ELIMINACIÓN DE PUNTOS Y CARAS ERRÓNEAS. Figura 7.20: Ejemplo de caras inestables en la modalidad de caras giradas Figura 7.21: Ejemplo de dos caras que intersectan entre sí. 159 CAPÍTULO 7.5. 7. ANEXO DETECCIÓN II Y ELIMINACIÓN DE PUNTOS Y CARAS ERRÓNEAS. Figura 7.22: Ejemplo de “folded faces”, es decir, caras adyacentes que comparten una arista y con un ángulo entre ellas muy pequeño. Delete Spikes: Este comando busca caras que crean un pico en la super…cie y permite al usuario seleccionarla o eliminarlas. Fix Bad Normals: Lleva a cabo la reparación de normales invertidas. Al ejecutarlo se presentan dos opciones excluyentes: Topología consistente: Se marca en el caso de que la malla no tenga caras “mal repartidas” o caras non-manifold. Geometría consistente: Se marca esta opción si la malla presenta problemas topológicos. En este caso se asume que la malla debe estar cerrada. Delete Singularities: Este comando lleva a cabo la eliminación de singularidades de la malla, tales como: Vertices with no face: vértices sueltos que no corresponden a ninguna cara. Coincident Vertices: vértices coincidentes. Folded faces: aquellas caras que comparten una arista y que el ángulo entre ellas es muy pequeño. En la Figura 7.22 se muestra un ejemplo de este tipo de caras. Faces on boundary: caras que tienen 2 ó 3, según se marque, aristas de borde. Small clusters: grupos de caras interconectadas a través de un vértice que tienen un número de caras marcado por el cuadro de texto. Zero area faces: caras cuyo área es inferior al valor marcado en el cuadro de texto. Blank group: grupos sin ninguna cara. Blank shell: mallas sin ningún vértice. Sew Boundary (Cosido de bordes): En ocasiones los vértices se posicionan formando una línea estrecha como en un agujero. Mediante este comando se proyectan los vértices de borde sobre la arista de borde más cercana y se añade al borde. En el cuadro de texto que se abre se introducirá la tolerancia que se le permite a la distancia proyectada que se ha explicado. En la Figura 7.23 se muestra el estado antes y después de ejecutar el cosido de bordes. 160 CAPÍTULO 7. ANEXO II 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA Figura 7.23: Figura 123.- (a) y (b) Estado anterior y posterior, respectivamente, al cosido de bordes. 7.6. Estudio de la ocupación óptima 161 Estudio de la ocupacion optima CAPÍTULO 7. ANEXO II Tabla 7.1: Estudio de la ocupacion optima 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA 162 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA Tabla 7.1: (continuacion) CAPÍTULO 7. ANEXO II 163 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA Tabla 7.1: (continuacion) CAPÍTULO 7. ANEXO II 164 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA Tabla 7.1: (continuacion) CAPÍTULO 7. ANEXO II 165 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA Tabla 7.1: (continuacion) CAPÍTULO 7. ANEXO II 166 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA Tabla 7.1: (continuacion) CAPÍTULO 7. ANEXO II 167 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA Tabla 7.1: (continuacion) CAPÍTULO 7. ANEXO II 168 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA Tabla 7.1: (continuacion) CAPÍTULO 7. ANEXO II 169 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA Tabla 7.1: (continuacion) CAPÍTULO 7. ANEXO II 170 7.6. ESTUDIO DE LA OCUPACIÓN ÓPTIMA Tabla 7.1: (continuacion) CAPÍTULO 7. ANEXO II 171 CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN 7.7. Generación de la imagen de rango sin rasterización 172 Generacion de huecos arti…ciales 173 CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN Tabla 7.2: Generacion de la imagen de rango sin rasterizacion Tabla 7.2: (continuacion) CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN 174 Tabla 7.2: (continuacion) CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN 175 Tabla 7.2: (continuacion) CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN 176 Tabla 7.2: (continuacion) CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN 177 Tabla 7.2: (continuacion) CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN 178 Tabla 7.2: (continuacion) CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN 179 Tabla 7.2: (continuacion) CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN 180 Tabla 7.2: (continuacion) CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN 181 Tabla 7.2: (continuacion) CAPÍTULO 7.7.7.ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO SIN RASTERIZACIÓN 182 CAPÍTULO 7.8. 7. ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO CON RASTERIZACIÓN 7.8. Generación de la imagen de rango con rasterización 183 Generación de huecos arti…ciales 184 CAPÍTULO 7.8. 7. ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO CON RASTERIZACIÓN Tabla 7.3: Generación de la imagen de rango con rasterización Tabla 7.3: (continuación) CAPÍTULO 7.8. 7. ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO CON RASTERIZACIÓN 185 Tabla 7.3: (continuación) CAPÍTULO 7.8. 7. ANEXO GENERACIÓN II DE LA IMAGEN DE RANGO CON RASTERIZACIÓN 186 CAPÍTULO 7. ANEXO II 7.9. 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA Extensión de la porción de malla 187 Generación de huecos arti…ciales CAPÍTULO 7. ANEXO II Tabla 7.4: Extensión de la porción de malla 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA 188 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA Tabla 7.4: (continuación) CAPÍTULO 7. ANEXO II 189 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA Tabla 7.4: (continuación) CAPÍTULO 7. ANEXO II 190 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA Tabla 7.4: (continuación) CAPÍTULO 7. ANEXO II 191 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA Tabla 7.4: (continuación) CAPÍTULO 7. ANEXO II 192 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA Tabla 7.4: (continuación) CAPÍTULO 7. ANEXO II 193 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA Tabla 7.4: (continuación) CAPÍTULO 7. ANEXO II 194 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA Tabla 7.4: (continuación) CAPÍTULO 7. ANEXO II 195 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA Tabla 7.4: (continuación) CAPÍTULO 7. ANEXO II 196 7.9. EXTENSIÓN DE LA PORCIÓN DE MALLA Tabla 7.4: (continuación) CAPÍTULO 7. ANEXO II 197 CAPÍTULO 7.7.10. ANEXO RESULTADOS II EXPERIMENTALES PARA MALLAS COMPLETAS 7.10. Resultados experimentales para mallas completas 198 Generación de huecos arti…ciales 199 CAPÍTULO 7.7.10. ANEXO RESULTADOS II EXPERIMENTALES PARA MALLAS COMPLETAS Tabla 7.5: Resultados experimentales para mallas completas Tabla 7.5: (continuación) CAPÍTULO 7.7.10. ANEXO RESULTADOS II EXPERIMENTALES PARA MALLAS COMPLETAS 200 CAPÍTULO7.11. 7. ANEXO ESTUDIO II DE LA CURVATURA ANTES Y DESPUÉS DEL RELLENO 7.11. Estudio de la curvatura antes y después del relleno 201 Generación de huecos arti…ciales 202 CAPÍTULO7.11. 7. ANEXO ESTUDIO II DE LA CURVATURA ANTES Y DESPUÉS DEL RELLENO Tabla 7.6: Estudio de la curvatura antes y después del relleno Tabla 7.6: (continuación) CAPÍTULO7.11. 7. ANEXO ESTUDIO II DE LA CURVATURA ANTES Y DESPUÉS DEL RELLENO 203 Tabla 7.6: (continuación) CAPÍTULO7.11. 7. ANEXO ESTUDIO II DE LA CURVATURA ANTES Y DESPUÉS DEL RELLENO 204 Tabla 7.6: (continuación) CAPÍTULO7.11. 7. ANEXO ESTUDIO II DE LA CURVATURA ANTES Y DESPUÉS DEL RELLENO 205 Tabla 7.6: (continuación) CAPÍTULO7.11. 7. ANEXO ESTUDIO II DE LA CURVATURA ANTES Y DESPUÉS DEL RELLENO 206 Capítulo 8 Referencias 207 Bibliografía [Ame98] N. Amenta, M. Bern y M. Kamvysselis. A new Voronoi-based surface reconstruction algorithm. En: Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH’98), pp. 415–421, Nueva York, EEUU, 1998. [Baj95] C.L. Bajaj, F. Bernardini y G. Xu. Automatic reconstruction of surfaces and scalar …elds from 3D scans. En: Proceedings of the 22nd Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH’95), pp. 109–118, Nueva York, EEUU, 1995. [Ber99] F. Bernardini, J. Mittleman, H. Rushmeier, C. Silva y G. Taubin. The ballpivoting algorithm for surface reconstruction. IEEE Transactions on Visualization and Computer Graphics, 5(4):349–359, 1999. [Bes90] P.J. Besl. The free-form surface matching problem. Machine Vision for ThreeDimensional Scenes, pp. 25–71, 1990. [Bes92] P.J. Besl y N.D. McKay. A method for registration of 3-D shapes. IEEE Transactions on Pattern Analysis and Machine Intelligence, 14(2):239–256, 1992. [Bli82] J.F. Blinn. A generalization of algebraic surface drawing. ACM Transactions on Graphics, 1(3):235–256, 1982. [Blo97] J. Bloomenthal. Introduction to Implicit Surfaces. Morgan Kaufmann Publishers Inc., San Francisco, CA, EEUU, 1997. [Bot06] M. Botsch, M. Pauly, C. Rossl, S. Bischo¤ y L. Kobbelt. Geometric modeling based on triangle meshes. En: Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH’06), Nueva York, EEUU, 2006. [Bra06] J. Branch, F. Prieto y P. Boulanger. A hole-…lling algorithm for triangular meshes using local radial basis function. En: Proceedings of the 15th International Meshing Roundtable, pp. 411–431, Alabama, EEUU, 2006. [Bre05] T.P. Breckon y R.B. Fisher. Non-parametric 3D surface completion. En: Proceedings of the 5th International Conference on 3-D Digital Imaging and Modeling (3DIM’05), pp. 573–580, Washington, EEUU, 2005. [Bru07] A. Brunton, S. Wuhrer y C. Shu. Image-based model completion. En: Proceedings of the 6th International Conference on 3-D Digital Imaging and Modeling (3DIM’07), pp. 305–311, Washington, EEUU, 2007. 208 BIBLIOGRAFÍA BIBLIOGRAFÍA [Bru09] A. Brunton, S. Wuhrer, C. Shu, P. Bose y E.D. Demaine. Filling holes in triangular meshes by curve unfolding. En: Proceedings of the 2009 IEEE International Conference on Shape Modeling and Applications (SMI’09), pp. 66–72, 2009. [Cam01] R.J. Campbell y P.J. Flynn. A survey of free-form object representation and recognition techniques. Journal of Computer Vision and Image Understanding, 81(2):166–210, 2001. [Can88] J.F. Canny. The complexity of robot motion planning. MIT Press, Cambridge, Inglaterra, 1988. [Can02] P. Cano y J.C. Torres. Representation of polyhedral objects using sp-octrees. Journal of WSCG, 10:95–101, 2002. [Car01] J.C. Carr, R.K. Beatson, J.B. Cherrie, T.J. Mitchell, W.R. Fright, B.C. McCallum y T.R. Evans. Reconstruction and representation of 3D objects with radial basis functions. En: Proceedings of the 18th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH’01), pp. 67-–76, 2001. [Cas02] U. Castellani, S. Livatino y R.B. Fisher. Improving environment modelling by edge occlusion surface completion. En: Proceedings of the International Symposium on 3D Data Processing Visualization and Transmission, 2002. [Cor07] N.D. Cornea, D. Silver y P. Min. Curve-skeleton properties, applications, and algorithms. IEEE Transactions on Visualization and Computer Graphics, 13(3):530–548, 2007. [Cur96] B.L. Curless y M. Levoy. A volumetric method for building complex models from range images. En: Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH’96), pp. 303–312, Nueva York, EEUU, 1996. [Cur97] B.L. Curless. New methods for surface reconstruction from range images. Technical report, Stanford University, Stanford, EEUU, 1997. [Dav01] J. Davis, S.R. Marschner, M. Garr y M. Levoy. Filling holes in complex surfaces using volumetric di¤usion. En: Proceedings of the 1st International Symposium on 3D Data Processing, Visualization, and Transmission, pp. 428–438, 2001. [Del02] F. Dell’acqua y R.B. Fisher. Reconstruction of planar surfaces behind occlusions in range images. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24:569–575, 2002. [Dey01] T.K. Dey, J. Giesen y J. Hudson. Delaunay based shape reconstruction from large data. En: Proceedings of the IEEE 2001 Symposium on Parallel and Large-data Visualization and Graphics (PVG’01), pp. 19–27, Piscataway, EEUU, 2001. [Din01] H.Q. Dinh y G. Turk. Reconstructing surfaces using anisotropic basis functions. En: Proceedings of the 2001 International Conference on Computer Vision (ICCV’01), pp. 606–613, 2001. [Ede94] H. Edelsbrunner and E.P. Mücke. Three-dimensional alpha shapes. ACM Transactions on Graphics, 13(1):43–72, 1994. 209 BIBLIOGRAFÍA BIBLIOGRAFÍA [Efr99] A. Efros, A.A. Efros y T.K. Leung. Texture synthesis by non-parametric sampling. En: Proceedings of the 2001 International Conference on Computer Vision (ICCV’01), pp. 1033–1038, 1999. [Guo06] T.-Q. Guo, J.-J. Li, J.-G. Weng y Y.-T. Zhuang. Filling holes in complex surfaces using oriented voxel di¤usion. En: Proceedings of the 5th International Conference on Machine Learning and Cybernetics, 2006. [He06] X.J. He y Y.H. Chen. A haptics-guided hole-…lling system based on triangular mesh. Journal of Computer-Aided Design and Applications, 3(6):711–718, 2006. [Igl02] A. Iglesias, A. Gálvez, J. Puig-Pey y F. Gutiérrez. Métodos computacionales para interrogación de super…cies NURBS. Aplicaciones en la industria del automóvil. Métodos Numéricos en Ingeniería y Ciencias Aplicadas, 2:1055–1064, 2002. [Ju09] T. Ju. Fixing geometric errors on polygonal models: a survey. Journal of Computer Science Technology, 24(1):19–29, 2009. [Jun05] Y. Jun. A piecewise hole …lling algorithm in reverse engineering. Journal of Computer-Aided Design, 37(2):263–270, 2005. [Ker04] D. Keren. Topologically faithful …tting of simple closed curves. IEEE Transactions on Pattern Analysis and Machine Intelligence, 26:118–123, 2004. [Kob98] L. Kobbelt, S. Campagna, J. Vorsatz y H.-P. Seidel. Interactive multi-resolution modeling on arbitrary meshes. En: Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH’98), pp. 105–114, Nueva York, EEUU, 1998. [Kum07] A. Kumar, A.M. Shih, Y. Ito, D.H. Ross y B.K. Soni. A hole-…lling algorithm using non-uniform rational B-splines. En: Proceedings of the 16th International Meshing Roundtable, pp. 169–182, 2007. [Lan81] P. Lancaster y K. Salkauskas. Surfaces generated by moving least squares methods. Mathematics of Computation, 37(155):141–158, 1981. [Lev76] J. Levin. A parametric algorithm for drawing pictures of solid objects composed of quadric surfaces. Communication of the ACM, 19(10):555–563, 1976. [Li08] G. Li, X. Ye y Sanyuan Zhang. An algorithm for …lling complex holes in reverse engineering. Engineering with Computers, 24(2):119–125, 2008. [Li10] Z. Li, D.S. Meek y D.J. Walton. Polynomial blending in a mesh hole-…lling application. Journal of Computer-Aided Design, 42(4):340–349, 2010. [Mar07] R. Marchand, J.Y. Lu, K. Kabin y R. Rankin. Unstructured meshes and …nite elements in space plasma modelling: Principles and applications. Advanced Methods for Space Simulations, pp. 111–143, 2007. [Noc00] J.Ñocedal y S.J. Wright. Numerical Optimization. Springer, 2000. [Noo03] F.S. Nooruddin y G. Turk. Simpli…cation and repair of polygonal models using volumetric techniques. IEEE Transactions on Visualization and Computer Graphics, 9(2):191–205, 2003. 210 BIBLIOGRAFÍA BIBLIOGRAFÍA [Pan10] N. Pantuwong y M. Sugimoto. Skeleton-growing: a vector-…eld-based 3D curveskeleton extraction algorithm. En: Proceedings of the 37th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH’10), Nueva York, EEUU, 2010. [Pav07] G. Pavlidis, A. Koutsoudis, F. Arnaoutoglou, V. Tsioukas y C. Chamzas. Methods for 3D digitization of cultural heritage. Journal of Cultural Heritage, 8(1):93– 98, 2007. [Pod05] J. Podolak y S. Rusinkiewicz. Atomic volumes for mesh completion. En: Proceedings of the 3rd Eurographics Symposium on Geometry Processing (SGP’05), Aire-la-Ville, Suiza, 2005. [Req80] A.A.G. Requicha. Representations for rigid solids: Theory, methods, and systems. ACM Computing Surveys, 12:437–464, 1980. [Rog01] D.F. Rogers. An introduction to NURBS: with historical perspective. Morgan Kaufmann Publishers Inc., San Francisco, CA, EEUU, 2001. [Ros99] J.R. Rossignac y A.A.G. Requicha. Solid modeling, 1999. [Sag08] R. Sagawa y K. Ikeuchi. Hole …lling of a 3D model by ‡ipping signs of a signed distance …eld in adaptive resolution. IEEE Transactions on Pattern Analysis and Machine Intelligence, 30(4):686–699, 2008. [Sam88] H. Samet y R.E. Webber. Hierarchical data structures and algorithms for computer graphics. Part I. IEEE Computer Graphics and Applications, 8:48–68, 1988. [Sev09] R. Sevilla. NURBS-Enhanced Finite Element Method. Tesis Doctoral, Universidad Politécnica de Catalunya, 2009. [Sha04] A. Sharf, M. Alexa y D. Cohen-Or. Context-based surface completion. ACM Transactions on Graphics, 23(3):878–887, 2004. [Sor04] O. Sorkine y D. Cohen-Or. Least-squares meshes. En: Proceedings of the 2004 International Conference on Shape Modeling Applications (SMI’04), pp. 191–199, 2004. [Stu01] F. Stulp y R. Fisher. Reconstruction of surfaces behind occlusions in range images. En: Proceedings of the 3rd International Conference on 3-D Digital Imaging and Modeling (3DIM’01), pp. 232–239, 2001. [Tau96] G. Taubin y R. Ronfard. Implicit simplicial models for adaptive curve reconstruction. IEEE Transactions on Pattern Analysis and Machine Intelligence, 18:321–325, 1996. [Tur01] G. Turk, H.Q. Dinh, J.F. O’Brien y G. Yngve. Implicit surfaces that interpolate. En: Proceedings of the 2001 International Conference on Shape Modeling and Applications (SMI’01), pp. 62–71, 2001. [Vas06] L. Vása. Methods for dynamic mesh size reduction. Tesis Doctoral, República Checa, 2006. 211 BIBLIOGRAFÍA BIBLIOGRAFÍA [Ver75] K.J. Versprille. Computer-aided design applications of the rational B-spline approximation form. Tesis Doctoral, Syracuse, NY, EEUU, 1975. [Wan07] J. Wang y M.M. Oliveira. Filling holes on locally smooth surfaces reconstructed from point clouds. Image and Vision Computing, 25(1):103–113, 2007. [Wu08] X.J. Wu, M.Y. Wang y B. Han. An automatic hole-…lling algorithm for polygon meshes. Journal of Computer-Aided Design and Applications, 5(6):889–899, 2008. [Zha07] W. Zhao, S. Gao y H. Lin. A robust hole-…lling algorithm for triangular mesh. The Visual Computer, 23(12):987–997, 2007. 212