A Simple 3D Scanner Based On Passive Vision for Geometry Reconstruction

7
Abstract— Acquire spatial information of a 3D model is very useful in many applications in the computer science field. A device broadly used as acquisition hardware of models is the 3D scanner. With a 3D scanner is possible to obtain the geometric structure based on points and triangles of a model, and use it on several computing applications. According the hardware and algorithms employed, the scanners can be classified as passive and active vision. The passive vision scanners are lower cost devices which require geometrics algorithms to obtain a 3D reconstruction. In this paper, we present a design and implementation of a simple 3D scanner of lower cost based on passive vision. The scanner consists in the design of hardware and algorithms where two webcam are placed on a controlled environment. Several experiments demonstrate excellent results on the geometric reconstruction of the scanned objects. Keywords— 3D scanner, geometry reconstruction, passive vision, webcams, computer vision. I. INTRODUCCIÓN CTUALMENTE, en el área de computación gráfica es de suma importancia contar con información precisa y ajustada a la realidad para poder ser desplegada en el computador. Con dicha información, el objetivo es generar modelos de estudio muy parecidos a la realidad con fines recreativos, culturales, sociales, entre otros. Una forma de capturar esta información es a través de la utilización de escáneres 3D. Un escáner 3D es un dispositivo que permite captar objetos de la realidad e introducirlos al computador como una representación digital de un modelo tridimensional. En el área de la medicina, empleando un escáner es posible realizar estudios para el diagnóstico de enfermedades, en la reconstrucción de miembros del cuerpo así como de prótesis dentales. En el área del entretenimiento, un escáner 3D permite la creación de películas y juegos de video con mayor realismo. En el campo industrial, es posible capturar y modelar diversas piezas mecánicas. Al realizar el escaneado de un objeto es posible conocer su estructura y características físicas. Estos aspectos pueden ser modificados por diversas aplicaciones para obtener nuevas versiones del objeto en cuestión. Existen diversos escáneres en el mercado, tanto comerciales como no-comerciales, que se pueden dividir en dos grandes grupos: de contacto y sin contacto. Los primeros, recorren con una punta/sensor todo el objeto (contacto físico) A. Narváez, Universidad Central de Venezuela, Caracas, Venezuela, [email protected] E. Ramírez, Universidad Central de Venezuela, Caracas, Venezuela, [email protected] y así obtienen las muestras de la superficie. Son dispositivos muy precisos pero requieren una cantidad de tiempo considerable durante el proceso de adquisición. Un ejemplo significativo y de bajo costo es el escáner desarrollado por Philippe Hurbain [1] denominado Lego NXT 3D. Por otro lado, los escáneres sin contacto miden las dimensiones del objeto sin ningún tipo de contacto con el mismo. Su principal ventaja es la velocidad de adquisición de datos. En estos, existen dos tipos: de visión pasiva y activa. La principal diferencia radica en que los escáneres de visión activa requieren de una luz específica para determinar las coordenadas tridimensionales (e.g. un haz de luz láser) y en algunos casos cierto hardware especializado. Los escáneres de visión pasiva no requieren ningún tipo de luz adicional, y suelen ser de bajo costo ya que en la mayoría de los casos no requiere de dispositivos especializados. El trabajo presentado por Pan et al. [2] en el año 2009, muestra un escáner denominado ProForma de visión pasiva de bajo costo empleando una webcam. Igualmente, el software comercial 3D SOMPro [3] permite reconstruir la geometría 3D de un objeto capturando diversas fotografías con una sola cámara. Un tipo de escáner de visión pasiva, es el escáner estereoscópico artificial [4] el cual emplea dos cámaras separadas horizontalmente que miran a una misma escena y, al analizar la diferencia entre ambas cámaras, es posible determinar la distancia de cada punto de la imagen. La visión estereoscópica artificial utiliza como referencia el modelo estereoscópico biológico [5]. En estos sistemas el desplazamiento relativo de los ojos permite obtener la profundidad de los objetos mediante un proceso de triangulación a partir de las dos imágenes generadas por el mismo objeto de la escena 3D en cada ojo. Esto es posible ya que al estar los ojos desplazados entre sí, hace que las imágenes de los objetos en ellos se muestren desplazadas según la distancia de los objetos a los ojos. En este trabajo se presenta el diseño e implementación de un escáner de visión pasiva de bajo costo para la reconstrucción de geometría de un objeto 3D. Dicho escáner se presenta como un prototipo que contempla tanto el hardware como el software, donde se capturan diferentes imágenes en visión estereoscópica artificial de un objeto utilizando dos cámaras web convencionales conectadas a un computador. Con las imágenes se genera la reconstrucción geométrica 3D de un objeto, empleando diversos algoritmos de geometría computacional. Este trabajo se organiza de la siguiente forma: en la Sección II será presentado en detalle el proceso completo del escáner 3D propuesto. La Sección III presentará los A. Narváez and E. Ramírez A Simple 3D Scanner Based On Passive Vision for Geometry Reconstruction A IEEE LATIN AMERICA TRANSACTIONS, VOL. 10, NO. 5, SEPTEMBER 2012 2125

Transcript of A Simple 3D Scanner Based On Passive Vision for Geometry Reconstruction

Abstract— Acquire spatial information of a 3D model is very useful in many applications in the computer science field. A device broadly used as acquisition hardware of models is the 3D scanner. With a 3D scanner is possible to obtain the geometric structure based on points and triangles of a model, and use it on several computing applications. According the hardware and algorithms employed, the scanners can be classified as passive and active vision. The passive vision scanners are lower cost devices which require geometrics algorithms to obtain a 3D reconstruction. In this paper, we present a design and implementation of a simple 3D scanner of lower cost based on passive vision. The scanner consists in the design of hardware and algorithms where two webcam are placed on a controlled environment. Several experiments demonstrate excellent results on the geometric reconstruction of the scanned objects.

Keywords— 3D scanner, geometry reconstruction, passive vision, webcams, computer vision.

I. INTRODUCCIÓN

CTUALMENTE, en el área de computación gráfica es de suma importancia contar con información precisa y

ajustada a la realidad para poder ser desplegada en el computador. Con dicha información, el objetivo es generar modelos de estudio muy parecidos a la realidad con fines recreativos, culturales, sociales, entre otros. Una forma de capturar esta información es a través de la utilización de escáneres 3D. Un escáner 3D es un dispositivo que permite captar objetos de la realidad e introducirlos al computador como una representación digital de un modelo tridimensional.

En el área de la medicina, empleando un escáner es posible realizar estudios para el diagnóstico de enfermedades, en la reconstrucción de miembros del cuerpo así como de prótesis dentales. En el área del entretenimiento, un escáner 3D permite la creación de películas y juegos de video con mayor realismo. En el campo industrial, es posible capturar y modelar diversas piezas mecánicas. Al realizar el escaneado de un objeto es posible conocer su estructura y características físicas. Estos aspectos pueden ser modificados por diversas aplicaciones para obtener nuevas versiones del objeto en cuestión.

Existen diversos escáneres en el mercado, tanto comerciales como no-comerciales, que se pueden dividir en dos grandes grupos: de contacto y sin contacto. Los primeros, recorren con una punta/sensor todo el objeto (contacto físico)

A. Narváez, Universidad Central de Venezuela, Caracas, Venezuela,

[email protected] E. Ramírez, Universidad Central de Venezuela, Caracas, Venezuela,

[email protected]

y así obtienen las muestras de la superficie. Son dispositivos muy precisos pero requieren una cantidad de tiempo considerable durante el proceso de adquisición. Un ejemplo significativo y de bajo costo es el escáner desarrollado por Philippe Hurbain [1] denominado Lego NXT 3D.

Por otro lado, los escáneres sin contacto miden las dimensiones del objeto sin ningún tipo de contacto con el mismo. Su principal ventaja es la velocidad de adquisición de datos. En estos, existen dos tipos: de visión pasiva y activa. La principal diferencia radica en que los escáneres de visión activa requieren de una luz específica para determinar las coordenadas tridimensionales (e.g. un haz de luz láser) y en algunos casos cierto hardware especializado. Los escáneres de visión pasiva no requieren ningún tipo de luz adicional, y suelen ser de bajo costo ya que en la mayoría de los casos no requiere de dispositivos especializados. El trabajo presentado por Pan et al. [2] en el año 2009, muestra un escáner denominado ProForma de visión pasiva de bajo costo empleando una webcam. Igualmente, el software comercial 3D SOMPro [3] permite reconstruir la geometría 3D de un objeto capturando diversas fotografías con una sola cámara.

Un tipo de escáner de visión pasiva, es el escáner estereoscópico artificial [4] el cual emplea dos cámaras separadas horizontalmente que miran a una misma escena y, al analizar la diferencia entre ambas cámaras, es posible determinar la distancia de cada punto de la imagen.

La visión estereoscópica artificial utiliza como referencia el modelo estereoscópico biológico [5]. En estos sistemas el desplazamiento relativo de los ojos permite obtener la profundidad de los objetos mediante un proceso de triangulación a partir de las dos imágenes generadas por el mismo objeto de la escena 3D en cada ojo. Esto es posible ya que al estar los ojos desplazados entre sí, hace que las imágenes de los objetos en ellos se muestren desplazadas según la distancia de los objetos a los ojos.

En este trabajo se presenta el diseño e implementación de un escáner de visión pasiva de bajo costo para la reconstrucción de geometría de un objeto 3D. Dicho escáner se presenta como un prototipo que contempla tanto el hardware como el software, donde se capturan diferentes imágenes en visión estereoscópica artificial de un objeto utilizando dos cámaras web convencionales conectadas a un computador. Con las imágenes se genera la reconstrucción geométrica 3D de un objeto, empleando diversos algoritmos de geometría computacional.

Este trabajo se organiza de la siguiente forma: en la Sección II será presentado en detalle el proceso completo del escáner 3D propuesto. La Sección III presentará los

A. Narváez and E. Ramírez

A Simple 3D Scanner Based On Passive Vision for Geometry Reconstruction

A

IEEE LATIN AMERICA TRANSACTIONS, VOL. 10, NO. 5, SEPTEMBER 2012 2125

experimentos realizados así como los resultados obtenidos. Finalmente, la Sección IV presenta las consideraciones finales.

II. DESARROLLO DEL ESCÁNER 3D

El escáner 3D propuesto se diseñó bajo una plataforma de hardware y software. La plataforma de hardware creada consta de un par de cámaras web conectadas al computador vía USB y una caja de madera pintada con un color uniforme con una superficie giratoria circular en su interior, donde se coloca el objeto a escanear. La Fig. 1 muestra el diseño de hardware del escáner 3D.

Figura 1. Diseño de hardware del escáner 3D.

Las cámaras web se encuentran separadas a una distancia de d centímetros. Es importante que se disponga de una fuente de luz constante y uniforme en el momento de la adquisición. El centro c de la superficie giratoria dentro la caja es donde se coloca el objeto. Esta superficie tiene un diámetro de 22 cm y debe coincidir con el centro de la distancia que existe entre las cámaras. La caja tiene unas dimensiones de 30 cm x 30 cm x 30 cm y está pintada de un color fucsia de manera uniforme. La selección de dicho color es para evitar la confusión fondo-objeto debido a que no es un color muy común. Con respecto a las cámaras web, éstas fueron colocadas sobre una plataforma para que alcanzaran la misma altura del objeto a escanear. En la Fig. 2 se puede observar la configuración del escáner para realizar el proceso de escaneo. El objeto se ubica aproximadamente a 48 cm del centro de las cámaras, las cuales se encuentran separadas 6 cm entre sí.

Figura 2. Configuración empleada para las webcams y el objeto a escanear.

En cuanto a la plataforma de software, la Fig. 3 muestra el algoritmo de reconstrucción del objeto 3D como un diagrama de flujo. Primeramente se selecciona el dispositivo a utilizar, es decir, las webcams. El modelo y características de éstas pueden variar, para nuestro escáner utilizamos dos Logitech Quickcam Pro 9000®. Luego, se procede a calibrar las

cámaras para obtener un sistema de coordenadas de referencia donde residirá el objeto. Posteriormente, se coloca el objeto a escanear sobre la superficie giratoria y se capturan 2 fotos (cámara derecha e izquierda) a fin de obtener la visión estereoscópica artificial. La superficie giratoria de la caja permite rotar el objeto sobre su centro y así lograr capturar nuevas fotos desde otro ángulo. Este proceso se realiza hasta haber completado 360° grados con rotaciones de x grados para cada instante. Finalmente se procede a aplicar el proceso de reconstrucción 3D y con ello se crea un archivo en formato OFF (Object Format File) para su uso posterior.

Figura 3. Diagrama de flujo de nuestro escáner propuesto.

El algoritmo está desarrollado bajo C++ y utiliza la librería OpenGL® para despliegue de gráficos tridimensionales. Las ventanas de la interfaz de usuario están desarrolladas bajo el framework QT® y la manipulación de las imágenes se realiza con la librería OpenCV®.

A continuación se explicará en detalle las etapas de Calibración y Reconstrucción 3D del diagrama de la Fig. 3.

A. Calibración

El proceso de calibración consiste en la obtención de los parámetros del modelo de la cámara. En este trabajo, se utiliza el método desarrollado por Zhang [6] quien propone una técnica de calibración basada en la observación de un patrón 2D tipo tablero de ajedrez. Dicho método consiste en adquirir el patrón desde diversas posiciones y orientaciones. Mientras mayor cantidad de cuadros tenga el patrón de calibración, más preciso será el resultado pero será más costoso computacionalmente que si tuviese menos cuadros. En el proceso de calibración se distinguen básicamente dos tipos de parámetros [7]: intrínsecos, relacionados con la óptica de la cámara y, los extrínsecos relacionados con su orientación.

2126 IEEE LATIN AMERICA TRANSACTIONS, VOL. 10, NO. 5, SEPTEMBER 2012

Con las imágenes del patrón de calibración en diferentes orientaciones, se determina la matriz de homografía la cual relaciona las posiciones de puntos de referencia en el patrón y las posiciones de los puntos correspondientes proyectados en las imágenes. Como se describe en Zhang [6], el plano del patrón se toma como el plano Z = 0 en el sistema de coordenadas de la escena y como puntos de referencia se utilizan las esquinas de los cuadros. Al utilizar la propiedad de que una matriz de rotación es ortogonal, se determinan los parámetros intrínsecos a partir del conjunto de homografías y luego, para cada orientación del patrón, se determinan los parámetros extrínsecos.

Entonces, el proceso de captura consiste inicialmente en indicar la cantidad de cuadros horizontales y verticales del tablero. Seguidamente, el usuario debe realizar diversas capturas del patrón de calibración ubicado en la caja de escaneo bajo la configuración antes mencionada. La Fig. 4 muestra un ejemplo de 13 tomas realizadas desde diferentes posiciones y orientaciones para el proceso de calibración.

Figura 4. Diversas tomas del patrón de calibración variando su posición y orientación con respecto a las webcams.

En ocasiones, las rotaciones efectuadas por el usuario no siempre son las más adecuadas y la adquisición del patrón de calibración debe ser repetido. Es importante destacar que este proceso se efectúa solamente una vez para una posición de las cámaras. En la Fig. 5 se observa un ejemplo del resultado exitoso y fallido del proceso de calibración en el patrón. Se considera un proceso exitoso cuando todos los puntos dentro del patrón son encontrados (intersecciones cuadro/cuadro).

Figura 5. (Izquierda) Calibración del patrón de forma exitosa; (Derecha) Calibración del patrón de forma fallida.

Como se mencionó anteriormente, una vez obtenido los valores intrínsecos y extrínsecos de las cámaras se procede a la toma del objeto e ir aplicando rotaciones sucesivas de la superficie giratoria (donde yace el objeto) para el proceso de reconstrucción 3D. A continuación se explica dicho proceso con mayor detalle.

B. Reconstrucción 3D

La reconstrucción 3D consiste en un proceso iterativo que recibe como entrada un par de imágenes (izquierda y derecha), y arroja como salida un conjunto de triángulos que representan el objeto escaneado. Luego de calibrar las cámaras correctamente, se procede a ubicar los puntos característicos de las imágenes obtenidas en cada toma. Con dichos puntos, el objetivo es encontrar un punto p en la imagen derecha que tenga su correspondiente punto p’ en la imagen izquierda que sean la representación en R2 de un punto p* en el objeto. Posteriormente se realiza la transformación de las coordenadas de p y p’ que residen en R2 hacia el espacio R3, obteniendo así 2 nubes de puntos. Ambos conjuntos de puntos deben residir en un mismo sistema de coordenadas y para ello se realiza una alineación de éstas en un sistema de referencia en común. Finalmente, se procede a obtener la información de conectividad de los puntos para formar triángulos y obtener la reconstrucción del objeto 3D.

Para obtener los puntos característicos de las imágenes, primero se ejecuta el algoritmo desarrollado por Canny [8] para la detección de bordes y así centrarse exclusivamente en las altas frecuencias de la imagen. Luego, el algoritmo propuesto por Harris y Stephens [9] es aplicado para obtener los puntos característicos más significativos que representan los detalles que definen la estructura del objeto escaneado. En la Fig. 6 se pueden observar los puntos característicos para un par de imágenes de un objeto escaneado.

Figura 6. Obtención de los puntos característicos de las imágenes derecha e izquierda de un objeto escaneado.

Nótese que es importante establecer una correspondencia uno a uno entre los puntos existentes de las imágenes y así crear una nube de puntos 3D. Para ello se empleó el algoritmo de correspondencia Lucas y Kanade piramidal [10] que ubica los puntos comunes en las imágenes basado en los cambios de intensidad entre una secuencia de imágenes.

Una vez obtenida la correspondencia entre un par de imágenes, es posible calcular la coordenada Z (profundidad) de cada punto para ubicarlo en un espacio tridimensional. Esto se logra mediante un procedimiento denominado triangulación lineal. En la Fig. 7 se observa un ejemplo del proceso de triangulación lineal donde se observan dos imágenes distintas del punto w. El objetivo es encontrar las coordenadas X,Y,Z de w teniendo las proyecciones xD y xI

NARVÁEZ AND RAMÍREZ : A SIMPLE 3D SCANNER BASED ON PASSIVE 2127

dadas por las dos cámaras paralelas OD y OI. Para ello se debe determinar los dos rayos que unen a cada correspondencia con el foco de la cámara y encontrar el punto cuya distancia a las rectas sea la mínima.

Figura 7. Geometría de dos cámaras OI y OD en estéreo con ejes paralelos desde una perspectiva superior.

Utilizando la triangulación es posible reconstruir un punto aplicando una reformulación de las proyecciones xI = PIX y xD = PDX a un sistema de ecuaciones lineales sobre-determinadas homogéneas de la forma AX=0 y de esta forma resolverlo con una factorización SVD (Singular Value Descomposition). La técnica SVD es ampliamente utilizada en el campo de visión artificial [11].

Dada que la adquisición de imágenes se realizó desde una sola dirección, se hace necesario realizar un proceso de alineación de las muestras que están referenciadas a la posición de la cámara mediante transformaciones geométricas. Esto es debido a que cada una se encuentra en su propio sistema de coordenadas. Para obtener una nube de puntos general del objeto, las imágenes deben ser trasladadas a un mismo sistema de coordenadas. Este proceso se conoce como registro de imágenes de rango [12].

En el registro de imágenes, dada una superficie M de la cual se realizan N capturas Fi desde diferentes posiciones donde cada una corresponde a una imagen de rango, se deben encontrar N transformaciones geométricas Ti que acoplen las imágenes de rango Fi para que se puedan expresar en un mismo sistema de coordenadas S(x,y,z) y así poder construir un modelo digital del objeto. En este trabajo, se empleó el algoritmo desarrollado por Besl y McKay [13] llamado ICP (Iterative Closest Point), el cual presenta una forma estructurada e iterativa de encontrar la transformación geométrica óptima para alinear una muestra de una superficie P, con otra superficie X que debe contener a P. En este trabajo, el algoritmo de ICP busca alinear la nube de puntos del momento t con la nube de puntos del momento t-1, ya que ésta se encuentra en el sistema de coordenadas correcto. El tiempo t representa un instante de captura luego de haber aplicado una rotación del objeto dentro de la superficie giratoria en la caja. La Fig. 8 muestra el resultado de aplicar el algoritmo de ICP.

Figura 8. Alineación con el algoritmo ICP de un conjunto de puntos (rojo) en otro conjunto de puntos (verde) a un mismo sistema de coordenadas.

En la Fig. 8 se observan dos nubes de puntos (verde y rojo) correspondiente a una nube de puntos en un sistema de coordenadas correcto (tiempo t-1) y a una nueva nube de puntos adquirida (tiempo t).

El proceso de registro debe aplicarse a todas los pares de imágenes obtenidos en cada rotación del objeto. Así, se obtiene una nube de puntos 3D que contiene la información geométrica del objeto escaneado. El paso siguiente es realizar un proceso de triangulación para obtener una información de conectividad de dichos puntos. La triangulación fue realizada empleando el algoritmo de Delaunay [14], el cual genera una malla no estructurada dado un conjunto de puntos. En la Fig. 9 se puede observar un ejemplo de la triangulación con el algoritmo de Delaunay al ser aplicada al escaneo de un simple modelo que representa a un cubo.

Figura 9. Ejemplo de reconstrucción de una malla no estructurada con la triangulación de Delaunay para un cubo escaneado.

El mallado obtenido se almacena en el formato de archivo de texto plano OFF el cual contiene la información de los vértices y su conectividad para formar triángulos.

En la siguiente Sección se muestran los experimentos y los resultados obtenidos con el escáner 3D de visión pasiva desarrollado.

III. EXPERIMENTACIÓN Y RESULTADOS.

En esta Sección se muestran los resultados obtenidos de las pruebas realizadas al escáner 3D de visión pasiva propuesto. En las pruebas se consideraron los siguientes aspectos:

- La PC empleada para las pruebas contaba con 1GB de memoria RAM y un procesador Pentium IV de 2.20 GHz.

- El patrón de calibración tipo tablero de ajedrez consta de una resolución de 7 x 8 cuadros.

- Las dimensiones del objeto a escanear tienen como dimensión máxima 15 cm x 15 cm x 15 cm.

- La resolución de las imágenes capturadas por las webcams es de 640 x 480 píxeles.

- La superficie giratoria de la caja es rotada 10 grados para cada toma, es decir, se realiza la captura de 72 imágenes en

2128 IEEE LATIN AMERICA TRANSACTIONS, VOL. 10, NO. 5, SEPTEMBER 2012

total (2 imágenes por webcam multiplicado por 36 rotaciones distintas).

- Los objetos escaneados preferiblemente deben poseer algún tipo de textura para poder encontrar sus puntos característicos de forma eficaz, empleando la detección de bordes. Objetos completamente lisos requieren de una mejor iluminación ambiental para ser escaneados correctamente.

Basado en los aspectos mencionados anteriormente, se realizaron una serie de pruebas para evaluar el rendimiento, eficiencia y precisión del escáner. Para ello se consideró escanear los objetos mostrados en la Fig. 10, donde se observa un cubo de cartón pintado con marcadores de colores, un cubo forrado con una tela de estampado y un recipiente de cerámica con forma de conejo.

Figura 10. Modelos de prueba escaneados con el sistema propuesto.

Es importante destacar que los modelos seleccionados, se encuentran en el ambiente controlado generado por la caja construida (ver Fig. 2). Para comprobar la eficacia de este ambiente controlado, se realizó una prueba con respecto a la adquisición del modelo sin emplear dicho ambiente. En la Fig. 11 se observa el resultado bajo un ambiente libre y el ambiente controlado construido.

Figura 11. Adquisición de puntos característicos en un ambiente libre (Izquierda) y un ambiente controlado (Derecha).

En la Fig. 11 se puede observar como los puntos adquiridos no pertenecen únicamente al objeto que se desea escanear, puesto que, al estar en un ambiente libre se presenta ruido al momento de la toma que interfiere con el objeto.

Una prueba posterior consistió en variar el número de imágenes utilizadas para la calibración del sistema. Para ello se definió una distancia focal entre las cámaras de 3.7 mm con una distancia de su sensor es de 4.5 mm de ancho y 3.4 mm de alto. El experimento se realizó utilizando 4, 8 y 13 fotografías, tomando en cuenta que a medida que se incrementa el número de imágenes el tiempo de adquisición y procesamiento es mayor.

Los resultados obtenidos arrojaron que se requieren al menos 13 fotografías para conseguir una buena calibración y

con ello mejores resultados en el proceso de reconstrucción 3D. Con un número inferior, se obtienen valores erróneos en la detección de los puntos característicos (puntos fuera del objeto escaneado). Al mismo tiempo, los valores intrínsecos calculados no coinciden con los extrínsecos que se conocen a priori de las cámaras empleadas.

También como parte del ajuste en la colocación del ambiente para realizar el escaneo, se utilizó diversos escenarios con distintos valores en la distancia entre las cámaras (Cámara-Cámara) y su distancia con respecto a la base de la superficie giratoria (Cámaras-Base). La Tabla I muestra las pruebas realizadas y el número de puntos generados en la reconstrucción para el modelo 1 mostrado en la Fig. 10.

TABLA I VARIACIÓN EN LA COLOCACIÓN DEL HARDWARE UTILIZADO.

Prueba Cámara-Cámara Cámaras-Base # de Puntos

1 5 cm 15 cm 1971 2 5 cm 30 cm 1945 3 5 cm 48 cm 1926 4 6 cm 15 cm 2591 5 6 cm 30 cm 2100 6 6 cm 48 cm 1941

Nótese la influencia en la cantidad de puntos característicos

del objeto que se obtiene. A medida que se incrementa la distancia entre las cámaras la cantidad de puntos aumenta, a pesar de ser solo 1 cm entre las pruebas 1, 2, 3 con respecto a las pruebas 4, 5, 6. Por otro lado, al aumentar la distancia entre las cámaras y la base, la cantidad de puntos disminuye ya que se tiene una imagen de menor resolución en píxeles.

Las seis pruebas mostradas en la Tabla I también fueron realizadas para el modelo 2 y modelo 3. Como resultados, se obtuvo una mayor cantidad de puntos (superior a 2350 puntos) para el modelo 3. Esto se debe a la diferencia entre un objeto liso, como el cubo (modelo 2), y un objeto con relieve y textura bien definida como el recipiente con forma de conejo (modelo 3). Es importante obtener con una buena cantidad de puntos característicos para lograr un resultado adecuado y lo más parecido a la realidad; pero cuando la cantidad de puntos es muy grande tienden a aparecer puntos redundantes y los resultados obtenidos distan mucho de lo esperado. Por ello, que se obtuvo mejores resultados con una menor cantidad de puntos característicos y con una mayor distancia entre las cámaras y la base (6 cm y 48 cm respectivamente).

Otro experimento fue realizado con el objetivo de analizar los resultados visuales obtenidos y compararlos con los modelos originales, así como determinar el número de vértices y triángulos creados. En la Tabla II se puede observar el número de vértices y triángulos generados al escanear los 3 modelos descritos en la Fig. 10.

TABLA II NÚMERO DE PUNTOS Y TRIÁNGULOS OBTENIDOS EN EL ESCANEO.

Model

o # de Puntos # de Triángulos

1 110 216 2 232 324 3 611 1921

NARVÁEZ AND RAMÍREZ : A SIMPLE 3D SCANNER BASED ON PASSIVE 2129

De la misma forma, la Fig. 12 muestra los resultados

visuales obtenidos para cada una de las muestras. Se puede observar la ausencia de ciertos polígonos en las esquinas del cubo del modelo 1. Esto se debe a la falta de puntos característicos en los bordes del cubo del modelo 1, el cual representa a un objeto liso. Para el caso del modelo 2, se obtuvo una mayor cantidad de puntos y con características visuales muy similares al modelo 1 pero con mayor definición de los bordes. El modelo 3 muestra el recipiente de cerámica del conejo, se puede observar que se obtuvo la forma del modelo incluyendo el relieve existente en la parte frontal. Se puede notar ambas orejas de manera clara. Un aspecto importante es que el modelo es completamente cerrado, como el caso del modelo 1 y 2 y esto se debe a que no se está considerando una vista superior del objeto escaneado (con lo cual se pudiera determinar el hueco).

Figura 11. De izquierda a derecha, se muestra el resultado al escanear el modelo 1, 2 y 3 respectivamente.

Empleando vértices y triángulos, para un modelo complejo, no resulta sencillo determinar la similitud exacta con el modelo original sino solamente basado en la forma del mismo. Una posible solución es realizar una correspondencia de la textura del modelo en el resultado obtenido; pero para ello se debe realizar un proceso de asignación de coordenadas de textura a los vértices del objeto.

Actualmente, el proceso de calibración y adquisición de las tomas con las webcams es un proceso manual. Debido a ello, el tiempo de ejecución de las mismas puede variar de acuerdo a la experticia por parte del usuario. En los experimentos realizados, el proceso de calibración toma entre 3 y 5 min. El proceso de captura de las 72 imágenes toma entre 10 y 15 minutos aproximadamente dado que rotar el objeto colocado sobre la superficie giratoria es un proceso manual.

IV. CONCLUSIONES.

En este trabajo se presenta un escáner 3D basado en visión pasiva de bajo costo que emplea dos webcams separadas por una distancia horizontal bajo un ambiente controlado simulando el sistema estereoscópico biológico.

El módulo de calibración es capaz de calcular la matriz de proyección de cualquier dispositivo de captura logrando que la aplicación sea independiente del dispositivo a utilizar. En este trabajo se emplearon webcams comerciales con una resolución máxima de 640 x 480 píxeles.

El proceso de escaneo está estrechamente vinculado con el ambiente donde se realiza y con la etapa de calibración del sistema. Sin un ambiente controlado, el ruido generado afectará drásticamente el desarrollo del proceso. Un ambiente

uniforme permite solo enfocarse en el objeto destaque en cuestión y por lo tanto, los puntos característicos obtenidos sean correctos.

Se pueden emplear objetos de color constante y textura uniforme, así como objetos con colores diversos y diferentes relieves ya que la correspondencia entre las imágenes se basa en la tonalidad del color. Un ejemplo particular se observó al realizar el proceso sobre el modelo 3: pequeñas variaciones en la iluminación (directa o indirecta) sobre el objeto generan diversos resultados visuales y en número de puntos obtenidos.

Al mismo tiempo, si las cámaras se encuentran más cerca del objeto la diferencia que habrá entre la imagen de una cámara y otra será mayor, por lo que la superficie del objeto que tendrán en común será menor y con ello se presentarán problemas de oclusión y de cálculos erróneos en la generación de la coordenada de profundidad. La combinación ideal se obtuvo al colocar las cámaras con una separación de 6 cm entre ellas, y 48 cm entre éstas y la base del objeto en la caja.

Para obtener un resultado final que asemeje el objeto original en su totalidad, se sugiere realizar un proceso de captura de las texturas del modelo y posteriormente una asignación de las coordenadas de textura para su posterior proceso de texture mapping. Igualmente, puede resultar un beneficio sustituir las webcams por un solo dispositivo como el Kinect [15] de Microsoft™.

REFERENCIAS [1] http://philohome.com/scan3d/scan3d.htm [2] Q. Pan, G. Reitmayr and T. Drummond, “ProFORMA: Probabilistic

Feature-based On-line Rapid Model Acquisition”, in Proc. of 20th British Machine Vision Conference, 2009.

[3] http://www.3dsom.com/ [4] J. Vicedo and J. Linares, “Escaneado de objetos tridimensionales en el

ITI”, Actualidad TIC, no. 14, pp.5-7, 2008. [5] G. Pajares and J. De La Cruz, Visión por Computador: Imágenes

digitales y aplicaciones, Ra-Ma, 2001. [6] Z. Zhang, “A Flexible New Technique for Camera Calibration”, IEEE

Trans. On Pattern Analysis and Machine Intelligence, vol. 22, no. 11, pp. 1330-1334, 2000.

[7] P. Vera and J. Salas, “Cálculo de la Incertidumbre en la Medición de los Parámetros de un Péndulo de Foucault”, Computación y Sistemas, vol. 11, no. 4, pp. 357-369, 2008.

[8] J. Canny, “A Computational Approach to Edge Detection”, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 8, no. 6, pp. 679-698, 1986.

[9] C. Harris and M. Stephens, “A Combined Corner and Edge Detector”, in Proc. of 4th Alvey Vision Conference, pp. 147-151, 1988.

[10] J-Y. Bouguet, “Pyramidal Implementation of the Lucas Kanade Feature Tracker”, Intel Corporation, Microprocessor Research Labs, 2000.

[11] M. Ortega, J. Bravo and J. Ruiz, Informática Industrial, Ediciones de la Universidad de Castilla-La Mancha, pp. 205-212, 1997.

[12] J.B. Gómez, “Muestreo de Imágenes de Rango en el Espacio de Variación de la Orientación”, Revista Colombiana De Computación, vol. 7, no. 2, pp. 83-94, 2007.

[13] P.J. Besl and N.D. McKay, “A Method for Registration of 3-D Shapes”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 14, no. 2, pp. 239-256, 1992.

[14] M.I. Shamos and D. Hoey, “Closest-point problems”, in Proc. of 16th Annual Symposium on Foundations of Computer Science, pp. 151-162, 1975.

[15] http://www.microsoft.com/en-us/kinectforwindows/

Astrid Narváez born in Caracas, Venezuela on the 8th January, 1987. She received the Bachelor degree in Computer Science from Universidad Central de Venezuela - UCV, Caracas, Venezuela, in 2010. Currently is focuses on the digital

2130 IEEE LATIN AMERICA TRANSACTIONS, VOL. 10, NO. 5, SEPTEMBER 2012

image processing and game development area in the Computer Graphics Center at Universidad Central de Venezuela.

Esmitt Ramírez J. born in Lima, Perú on the 27th October, 1981. He received the Bachelor degree in Computer Science in 2005 and, the Magister Scientiarum in 2011 from Universidad Central de Venezuela - UCV, Caracas, Venezuela. Currently is an assistant professor at UCV and member of the Computer Graphics Center. His mainly researches are focused on digital image processing, GPU computing and illumination

algorithms.

NARVÁEZ AND RAMÍREZ : A SIMPLE 3D SCANNER BASED ON PASSIVE 2131