reconstrucción de modelos sólidos 3d a partir de vistas

Anuncio
RECONSTRUCCIÓN DE MODELOS SÓLIDOS 3D A PARTIR DE
VISTAS ORTOGRÁFICAS 2D UTILIZANDO TÉCNICAS DE
COMBINACIÓN DE CUERPOS ELEMENTALES.
Autores: Gomis Martí; José María; Company Calleja, Pedro Pablo. (1)
Universidad Politécnica de Valencia. (2)
Area de conocimiento: Expresión Gráfica en la Ingeniería
E.T.S.I.Industriales. Universidad Politécnica de Valencia. Camí de Vera s/nº.
46071 Valencia. España.
Tfn.: 34-963877514 Fax.: 34-963877179 E-mail: [email protected]
RESUMEN
La descripción de objetos tridimensionales en un plano, utilizando proyecciones bidimensionales, se remonta a
más de dos mil años. El problema contrario de cómo reconstruir automáticamente la estructura geométrica y
topológica de un objeto tridimensional a partir de sus proyecciones, empezó a atraer la atención sólo a finales de
los 60, motivado por el desarrollo de los ordenadores digitales. En efecto, la revolución que supuso la aparición
de las herramientas de Diseño Asistido por Ordenador (CAD), aun no se ha podido completar, debido a que gran
cantidad de información de las oficinas de ingeniería (“Know-how”) sigue estando almacenada en complejos
planos de ingeniería, inaccesible para los ordenadores. Por ello, conseguir que los ordenadores puedan “leer”
planos de ingeniería es un reto pendiente. La importancia de éste problema es doble, porque los dibujos de
ingeniería son la forma estándar de comunicación entre los departamentos de diseño y fabricación, por lo que
incorporar a los ordenadores a esa comunicación puede ser muy beneficioso para mejorar el proceso de
diseño/fabricación.
La presente comunicación trata sobre la implementación de un algoritmo eficiente para la reconstrucción del
modelo tridimensional de cuerpos poliédricos a partir de sus proyecciones ortográficas de planta, alzado y perfil
dadas mediante líneas continuas o discontinuas. Dicho algoritmo reduce eficazmente el posible número de
objetos ambiguos y puede reconocer todos los sólidos correctos correspondientes a las proyecciones dadas.
Palabras Claves: Reconstrucción 3D, Modelos Sólidos, Proyecciones Ortográficas.
Area Temática: Ingeniería Gráfica, Informática Gráfica.
(1) Universitat Jaume I, Departamento de Tecnología, E-12071, Castellón. [email protected].
(2) Este trabajo cuenta con el apoyo del Gobierno Autónomo Valenciano (Generalitat Valenciana) dentro del
Programa Tecnológico para la Investigación y Desarrollo (Proyecto GV-TI-04-39), titulado “Reconstrucción de
objetos 3D a partir de sus representaciones 2D”).
1. ESTADO DEL ARTE
Los primeros estudios sobre la reconstrucción geométrica tridimensional se pueden encontrar resumidos en unas
pocas referencias [1-8]. El libro de Sugihara [1] es la referencia más completa a la historia inicial de la
interpretación automática de dibujos técnicos. Najendra y Gujar [2] publicaron un resumen de varios artículos
que trataban la reconstrucción de objetos tridimensionales a partir de sus vistas 2D. Wang y Grinstein [3]
completaron el trabajo, realizando una taxonomía de la reconstrucción de objetos 3D a partir de dibujos lineales
de proyección bidimensional. La referencia a Yan y otros [4] se debe a que estos autores completaron y
sistematizaron uno de los métodos más desarrollados y efectivos hasta la fecha, para reconstrucción de poliedros
a partir de vistas múltiples. Por último, las referencias [5-7] trazan los orígenes del prometedor método de
reconstrucción por optimización de regularidades, mientras que la referencia [8] recoge la visión de los autores
sobre el estado del arte de la reconstrucción.
1.1. Análisis de los métodos de reconstrucción a partir de vistas múltiples
Los modelos obtenidos tras el proceso de reconstrucción son generalmente de tipo “Geometría Constructiva de
Sólidos” (CSG) o “Representación de Fronteras” (BRep). Actualmente, la mayor parte de los trabajos de
reconstrucción totalmente automática usan BRep, mientras que las representaciones CSG son más habituales en
los procesos de reconstrucción guiada.
En efecto, se han llevado a cabo distintos intentos para obtener modelos CSG a partir de vistas múltiples. Todos
los métodos de este tipo tienen en común que asumen que el objeto 3D puede ser construido a partir de cierto
conjunto de primitivas combinadas siguiendo una cierta jerarquía. Los métodos difieren en las estrategias que
proponen para “extraer” dichas primitivas de las vistas de partida. Pero, hasta la fecha, en todos ellos se requiere
mucha participación del usuario. Por tanto, se trata de métodos de construcción asistida, más que de
reconstrucción automática.
Respecto a los métodos orientados hacia la consecución de un modelo BRep, tal como hemos indicado arriba, el
trabajo de Yan y otros [4], contiene una completa y detallada descripción del método de reconstrucción de
poliedros más efectivo hasta la fecha. Dicho método sigue la secuencia de pasos que resumimos a continuación:
1.
2.
3.
4.
Generación de vértices “candidatos”, a partir de los nodos 2D.
Generación de aristas “candidatas”, a partir de los vértices candidatos y los segmentos lineales de partida.
Construcción de caras, a partir de las aristas. (Primero se construyen los “bucles de cara”, candidatos a
describir caras en el modelo 3D, y después se filtran dichos bucles).
Formación del modelo BRep, a partir de los bucles de cara.
La secuencia descrita resume con bastante aproximación la mayoría de los métodos basados en “ensamblar” una
representación BRep del objeto a partir de una colección de elementos geométricos, los cuales deben
identificarse previamente en las figuras de partida. Las diferentes propuestas se centran en aumentar la
efectividad de los algoritmos y en tratar los casos patológicos.
1.2. Antecedentes de los autores en este campo.
Los primeros pasos dados por los autores de esta comunicación en el campo de la reconstrucción tridimensional
se dirigieron hacia la restitución de un sistema de coordenadas tridimensional a partir de su proyección
axonométrica oblicua. Dicho trabajo, resuelto mediante el empleo de la programación simbólica y de un método
numérico, sugirió la vía de la utilización de las axonometrías oblicuas en los trabajos que se efectuaron
posteriormente. Los resultados de este trabajo fueron presentados en el VII Congreso de Ingeniería Gráfica
celebrado en Vigo en junio de 1995 [9].
A partir de aquí el planteamiento general de reconstrucción se dividió en dos vías: el método que utiliza vistas
múltiples ortográficas y el método que realiza la reconstrucción a partir de una única vista. Ambas vías se
enfocaron a partir de la utilización de axonometrías oblicuas. En la primera, se usó como elemento auxiliar para
la determinación de la topología de los objetos, utilizando para ello un método derivado del Teorema de Pohlke.
En la segunda, se utilizó como dato de partida para el algoritmo de reconstrucción.
Respecto al trabajo realizado hasta la fecha en la reconstrucción a partir de vistas múltiples ortográficas, los
primeros resultados se materializaron en la obtención de un algoritmo que permite la generación automática de
axonometrías oblicuas a partir de las tres vistas diédricas de un objeto poliédrico. Dichos resultados fueron
presentados en la Reunión Internacional de Expresión Gráfica en la Ingeniería y en la Arquitectura EGRAF 96
celebrada en Camagüey (Cuba) en Diciembre de 1996 [10]. Posteriormente dicho algoritmo fue complementado
con otro que permite reconstruir dicho objeto en tres dimensiones. Una versión básica, ya operativa de dicho
algoritmo fue presentada en el I Seminario Italo-Español de Diseño de máquinas celebrado en Nápoles en Junio
de 1996. Los resultados definitivos fueron presentados en el XII Congreso Nacional de Ingeniería Mecánica
celebrado en Bilbao en febrero de 1997 [11].
En la actualidad los autores de esta comunicación trabajan siguiendo las líneas básicas planteadas por Wesley y
Markowsky [12] y continuadas por Yan y otros [4].
2. NUESTRO ALGORITMO DE RECONSTRUCCIÓN.
La finalidad del algoritmo que presentamos es la reconstrucción automática del modelo tridimensional “BRep”
de un cuerpo poliédrico a partir de sus proyecciones ortográficas de planta, alzado y perfil.
Según lo apuntado al final del apartado anterior el esquema de reconstrucción seguido está basado en los trabajos
de Wesley y Markowsky [12] y Yan y otros [4]. El esquema utilizado se puede resumir en un primer paso para
generar el modelo alámbrico y un segundo paso para generar el modelo BRep. A su vez, generar el modelo
alámbrico es una tarea compleja que consiste en generar vértices 3D a partir de proyecciones 2D y generar
aristas 3D a partir de vértices 3D. Por su parte, generar el modelo BRep requiere obtener caras 3D a partir de
aristas 3D, agrupar las caras 3D para formar cuerpos elementales 3D, y después agrupar cuerpos elementales 3D,
para formar los objetos que se correspondan con las proyecciones 2D dadas.
El algoritmo, después de tratar los datos de entrada, utiliza toda la información disponible, tal como las líneas
continuas o discontinuas en las proyecciones (datos de entrada), para reducir la cantidad de caras y cuerpos
potencialmente computables. Resuelve el modelo alámbrico correctamente. Determina eficazmente todas las
caras del poliedro, sean éstas cóncavas o convexas. Además, las ambigüedades causadas por el hecho de que
varios objetos puedan tener el mismo conjunto de proyecciones dado por los datos de entrada, son tenidas en
cuenta de manera que el algoritmo puede reconocer todos los sólidos correctos de un conjunto de proyecciones
dado. En la figura 1 se da el diagrama de flujo de la estructura del algoritmo:
Entrada:
datos de proyección
Generación de caras
Preproceso
de datos 2D
Obtención de vértices
y aristas de corte
Construcción del
modelo alámbrico3D
Generación de
cuerpos elementales
Generación de planos
Combinación de
cuerpos elementales.
Verificación final
Análisis de la
información de las
lineas discontinuas
Figura 1
Una breve descripción de todos los pasos de este algoritmo de reconstrucción 3D es la siguiente:
I.
Preproceso de datos. En este paso se realiza un análisis de los datos de entrada. Se ha de tener en cuenta
que la información de los datos de entrada es información en dos dimensiones, por lo que en el caso de que
algunas aristas del objeto compartan planos proyectantes con relación a alguna de las vistas, pueden originarse
solapes entre las proyecciones correspondientes, dando lugar a secuencias de vértices alineados que desvirtúen la
relación biunívoca que debe existir entre las aristas y sus proyecciones. La estrategia adoptada para resolver
estos posibles problemas ha sido obtener todas las combinaciones que se puedan generar a partir de conjunto de
vértices (mas de dos) alineados de una vista, e incluirlas en la lista de aristas de esa vista. Las aristas que se
generen y que resulten inútiles para generar el objeto 3D se eliminaran en los siguientes apartados.
II.
Construcción del modelo alámbrico. En este paso, a partir de toda la información generada por el
anterior, información de vértices y aristas en 2D de cada proyección, el algoritmo genera modelo alámbrico. Para
cada vista se establecen 5 casos de aristas: aristas con proyecciones paralelas a los ejes X, Y, Z, aristas
proyectantes respecto a alguno de los planos diédricos (con proyecciones según un punto) y aristas con
proyecciones no paralelas a ningún eje. A partir de aquí, un árbol de decisión permite obtener los vértices 3D de
las aristas 3D que generan las proyecciones diédricas de partida. Un sencillo planteamiento desde la geometría
analítica permite obtener las ecuaciones de las aristas determinadas y seguidamente la representación del modelo
alámbrico.
III.
Generación de planos. A partir del modelo alámbrico, se construyen todos los posibles planos que se
pueden generar con las aristas del objeto 3D. Este paso consta de varios pasos: búsqueda de aristas adyacentes a
un vértice, obtención de los planos determinadas por éstas, cálculo del vector normal al plano, eliminación de
planos duplicados, búsqueda de aristas pertenecientes a dichos planos y verificación de los gráficos planos.
IV.
Análisis de la información de líneas discontinuas. Aquí, para cada arista 2D discontinua, se comprueba si
la arista 3D generada a partir de ella, tiene un plano que la oculta desde el punto de vista de la proyección,
eliminando las aristas 3D que no se oculten detrás de un plano.
V.
Generación de caras. En este paso se generan todas las caras que forman parte del objeto alámbrico 3D
obtenido en pasos anteriores. En primer lugar se generan todos los bucles básicos que pueden formarse, mediante
aristas 3D contenidas en un mismo plano. A continuación, se estudian las relaciones de inclusión entre todos los
bucles básicos coplanarios. Aquí el criterio utilizado exige identificar previamente el carácter cóncavo o convexo
de los bucles básicos a examinar. La identificación del carácter cóncavo o convexo de los bucles se realiza a
partir de la información 2D recogida en alguna de las proyecciones del mismo. En el caso de que el posible bucle
básico “exterior” sea cóncavo, éste se descompone en tantos bucles como sean necesarios hasta que todos ellos
sean convexos. A partir de aquí un bucle básico será “interior” a otro si la totalidad de sus vértices esta incluido
en este ultimo (en el caso de ser éste convexo) o en alguno de los del conjunto de bucles convexos fruto de la
descomposición de este último (en el caso de ser éste cóncavo). La inclusión de vértices dentro de polígonos se
determina comparando el sentido de los vectores resultado de diferentes productos vectoriales en los que
intervienen la totalidad de los vectores formados por el vértice analizar junto a los vértices del polígono
“exterior”. Este método, que constituye la principal aportación de los autores, permite determinar todo tipo de
caras susceptibles de conformar un poliedro, incluidos los no eulerianos. Poliedros, muy presentes en los
diferentes objetos usados en ingeniería y arquitectura.
VI.
Obtención de vértices y aristas de corte. En este paso se examinan todas las caras, cóncavas y convexas,
generadas en el paso anterior para obtener los vértices o aristas de corte entre cada dos caras. Dichas
intersecciones pueden producirse según aristas de ambas caras (caso mas frecuente, cuyo resultado se ignora),
nuevas aristas con sus vértices situados en aristas de las dos caras examinadas (en cuyo caso hay que añadir esta
nueva arista junto con sus vértices, así como descomponer las caras examinadas), o bien según una arista con sus
vértices no contenidos en aristas de las dos caras examinadas (en cuyo caso la cara que contiene estos “nuevos”
vértices es patológica y es eliminada).
VII. Generación cuerpos elementales. En este paso, a partir de las caras, se generan todos los cuerpos u
objetos simples y cerrados que se puedan generar. Es decir, se generan bucles de cuerpos a partir de caras. Los
bucles de cuerpos pueden entenderse como subobjetos que no tienen puntos interiores comunes, pudiendo
compartir vértices, aristas o caras. Este apartado, en el que tienen un papel relevante las aristas comunes entre
caras y los vectores normales a las mismas, consta de tres subapartados. En ellos sucesivamente: se forman los
bucles de cuerpos, se verifican el carácter cerrado de los mismos, y se localizan los posibles bucles interiores a
otros bucles exteriores. Los segundos son eliminados y se quedan exclusivamente los bucles de cuerpos
interiores.
VIII. Combinación de cuerpos elementales y verificación final. En este paso, en primer lugar, a partir de los
cuerpos elementales, se obtiene todas las posibles combinaciones de estos cuerpos. A continuación, se obtienen
las proyecciones, en alzado, planta y perfil, de todas ellas. Finalmente, se realiza la verificación final, en la que
se comparan los vértices y aristas obtenidas con los datos de partida. Unicamente las combinaciones de cuerpos
elementales que superen esta verificación son admitidos como correctos, pudiéndose obtener una o varias
soluciones.
El modelo obtenido es completo, porque sirve para representar sin pérdida de información y de manera
inequívoca la estructura topológica y la forma geométrica de cualquier poliedro tridimensional.
Para la implementación del algoritmo descrito se ha utilizado el lenguaje de programación C++. En concreto, se
ha utilizado el compilador de Borland C++ versión 4.5. El lenguaje C++ se ha elegido por ser el más común
como lenguaje de programación de propósito general, y por ser también apropiado para el tratamiento de
información gráfica. Aunque se ha realizado una aplicación totalmente independiente, también se ha valorado al
elegir el C++ la posibilidad de convertir en el futuro esta aplicación en un módulo de reconstrucción de
diferentes aplicaciones CAD comerciales. Por la misma razón (independencia y simplicidad) se ha utilizado el
entorno de desarrollo WINDOWS, por ser el más habitual en nuestro contexto. Por lo dicho, queda claro que en
esta primera versión se ha buscado una implementación sencilla, por lo que todos los aspectos que tienen
relación con las prestaciones del algoritmo (tiempos de cálculo, requerimientos de memoria, etc.) no se han
considerado como requisitos. Aunque sí se pretende mejorar estas prestaciones en las siguientes versiones.
Empezando por los problemas de almacenamiento de memoria, que han obligado a limitar el tamaño máximo de
las figuras a tratar en esta primera versión.
3. EJEMPLO
Como ejemplo para ilustrar las posibilidades de reconstrucción del algoritmo desarrollado, en la figura 2 se
muestran los datos de partida de un objeto poliédrico no euleriano. Dichos datos de partida son el alzado, planta
y perfil izquierdo del objeto. Por su parte, la figura 3 muestra el modelo alámbrico 3D del objeto obtenido.
Figura 2
Figura 3
En la figura 4 se pueden ver ilustrada la fase de detección de algunas de las caras generada por el algoritmo.
Figura 4
En la figura 5 se pueden observar los cuerpos elementales generados por el algoritmo.
Figura 5
Finalmente, la figura 6 muestra el proceso de verificación de una de las combinaciones de cuerpos elementales
(se comprueba que sus proyecciones principales coincidan con los datos), y la figura 7 permite observar el
modelo BRep de la solución obtenida.
Figura 6
Figura 7
4. CONCLUSIONES
En este trabajo, se ha presentado un algoritmo para la reconstrucción de modelos sólidos BRep, de cuerpos
poliédricos 3D a partir de sus vistas planas principales (alzado, planta y perfil). Con relación a otros trabajos,
este algoritmo mejora la determinación de las caras cóncavas, así como el cálculo de la inclusión y otros análisis
entre bucles de caras que sean cóncavos. El algoritmo detecta todas las soluciones, en los casos de soluciones
múltiples. El algoritmo utiliza la información de las líneas discontinuas para eliminar otros casos patológicos.
Actualmente el trabajo de los autores se centra en la optimización del procedimiento de verificación a fin de
mejorar el tiempo de ejecución. También esta previsto introducir la posibilidad de la utilización de diferentes
formatos gráficos de intercambio para los datos de entrada (como por ejemplo DXF e IGES). Por último, en
próximas versiones, se prevé mejorar las prestaciones del algoritmo, por ejemplo utilizando un esquema de
memoria dinámica para el almacenamiento de todas las variables, eliminándose así limitaciones de tamaño
máximo de los objetos a reconstruir.
5. REFERENCIAS
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
Sugihara K. Machine interpretation of Line Drawings. MIT Press, 1986.
Nagendra I.V. and Gujar U.G.. "3-D Objects From 2-D Orthographic Views – A Survey". Computers &
Graphics. Vol 12, No. 1, 1988. pp. 111-114.
Wang W. and Grinstein G. "A Survey of 3D Solid Reconstruction from 2D Projection Line Drawings".
Computer Graphics Forum. Vol. 12, No 2, 1993, pp. 137-158.
Yan Q.W., Philip Chen C.L. and Tang Z. "Efficient algoritm for the reconstruction of 3D objects from
orthographic projections". Computer Aided Design. Vol. 26, No 9, 1994, pp. 699-717.
Marill, T. "emulating the Human Interpretation of Line-Drawings as Three-Dimensional Objects".
International Journal of Computer Vision. Vol. 6, No. 2, 1991, pp. 147-161.
Leclerc, Y. and Fischler M. "An Optimization-Based Approach to the Interpretation of Single Line
Drawings as 3D Wire Frames". Internat. Journal of Computer Vision. Vol. 9, No. 2, 1992, pp. 113-136.
Lipson H. and Shpitalni M. "Optimization-Based Reconstruction of a 3D Object from a Single Freehand
Line Drawing". Computer Aided Design. Vol. 28, No. 8, 1996, pp. 651-663.
Gomis J.M. y Company P. "Reconstrucción geométrica tridimensional". Anales de Ingeniería Gráfica,
No. 2, pp 26-34, 1996.
Gomis J.M. y Company P. "Restitución de un sistema de coordenadas tridimensional a partir de su
proyección axonométrica oblicua" Actas del VII Cong. Inter. Ing. Gráfica. Tomo 1, .pp. 357-372, (1995).
Gomis J.M., Leiceaga X. y Vejarano J. " Generación Automática de Axonometrías Oblicuas a partir de
sus vistas Ortográficas" Encuentro EGRAF 96, (1997).
Gomis J.M., Company P. y Contero M. " Reconstrucción de modelos poliédricos a partir de sus vistas
normalizadas" Anales de Ingeniería Mecánica.Año 11, Volumen 1. pp. 383-391, (1997).
Wesley M.A. and Markowsky G. " Fleshing Out Projections," IBM Journal of Research and
Development, vol. 25 No. 6, (Nov 1981).
Descargar