lunes, 9 de mayo de 2011

MANUAL PARA HACER DE UNA CÁMARA FOTOGRÁFICA, UN ESCANER 3D

A continuación voy a redactar un pequeño manual muy sencillo, para hacer de una cámara de fotos convencional, un escaner 3d.
Como ya dije, existen otras maneras de llevar a cabo estas tareas, siempre muy útiles para dibujantes y arqueólogos, pero vamos a empezar por una muy sencilla, aunque no la más efectiva ni la que mejores resultados nos dará.
El objetivo será, conseguir una nube de puntos coloreada que podamos triangular y con ella crear una malla del objeto en cuestión.
Para ellos simplemente necesitaremos:
1. Nuestra cámara fotográfica. /No hace falta que sea profesional, aunque ya os diré como utilizar una que se pueda configurar manualmente para conseguir resultados más óptimos con otro tipo de programas).
2. Tres programitas, completamente libres que no nos costarán ni un duro y que yo os diré donde descargar.

Bién empezamos.

Lo primero que debemos hacer son las fotografías. Para ello utilizaremos nuestra camara (no profesional) haciendo las correspondientes fotos alrededor del objeto que queramos representar en 3 dimensiones. Debe de existir un solape entre las fotografías contiguas. A mayor número de fotos, mayor definición tendrá el modelos y que será mayor el número de puntos.
 El método sería el siguiente:


El siguiente paso será, la inserción de las fotografías en el programa. Este programa es un programa gratuito que nos podemos descarga de su página web, se llama photosynth. Solo necesitamos una cuneta de correo de hotmail para una vez descargado el programa, poder subir las fotografias a la página.
Photosynth es una aplicación de  Live Labs y la Universidad de Washington que analiza fotografías digitales y genera un modelo tridimensional de las fotos y una nube de punto de un objeto fotografiadas. Pattern recognition components compare porciones de imágenes para crear puntos, que luego se comparan para convertir la imagen en un modelo. Los usuarios son capaces de ver y generar sus propios modelos usando una herramienta de software disponible para descarga en el sitio Web de Photosynth.






El resultado será una nube de puntos, cuya densidad dependerá del número de fotografias y del solape entre ellas.
Con solape quiero referirme a que, parte de lo que aparezca en una fotografía, tiene que aparecer en la contigua.

Ahora lo que necesitamos es un programita para poder bajarnos esa nube de puntos:
Lo podemos descargar de esta página: 

El siguiente paso sería, copiar el enlace de la página de photosynth:

Y pegarlo en el programa synthexport que ya hemos descargado.


Donde pone Step 2, seleccionaremos el recuadro donde pone Point cluds y donde nos dice el formato en el que queremos guardarlos, elegiremos PLY (ASCCI). Le damos a exportar, y nos dirá donde lo queremos guardar.
Pues ya tenemos el fichero de puntos descargado. Ahora hay que procesarlo.
Para ello necesitaremos otro programita, totalmente libre y gratuito. Este es: 
MESHLAB


MeshLab es un código abierto, portátil y extensible para el sistema de procesamiento y edición de mallas triangulares no estructuradas 3D.
El sistema está destinado a ayudar a la transformación de los modelos típicos no estructurados no tan pequeñas que surgen en la digitalización en 3D, proporcionando un conjunto de herramientas para la edición, la limpieza, la curación, la inspección, la representación y la conversión de este tipo de mallas.

El resultado, después de haber limpiado los puntos sobrantes y de procesar el resto es es:


Este sería el resultado final. Esto se puede exportar a una gran cantidad de formatos: CAPA, STL, OFF, OBJ, 3DS, Collada, VRML, DXF, GTS, U3D, IDTF, X3D, con los que posteriormente podremos tratar el resultado.






Si a alguien no le ha queda clara alguna parte del proceso, puede preguntar cuanto quiera.
Un saludo.


10 comentarios:

  1. Fantastico escrito, llevo tiempo rompiedome los cuernos con el tema y aqui lo tenias fantasticamente escrito... tengo un par de dudas:
    1 ofrece garantias fotogrametricas para ser utilizada posteriormente tomando medidas posteriormente. 2. como pegas la imagen a la malla para darle el efecto realistico?
    un saludo y enhorabuena

    ResponderEliminar
    Respuestas
    1. Me alegra que te guste toni. En respuesta a tu pregunta: el resultado es escalable y de precision milimetrica. Con respecto a la textura, debes triangular la mube de puntos y despues pegar el color de la nube en la malla resultante. Si no sabes hacerlo, he hecho un pequeño tutorial para que podais hacerlo. Es muy básico, pero para empezar, servirá.
      Los valores son subjetivos y dependerán mucho del ruido y de la calidad de vuestras fotos. Debeis probar con diferentes valores. Por ejemplo (9-8-1-1).
      El enlace para bajaros el tutorial es el siguiente:

      http://depositfiles.com/files/9tt0rfv6d

      En mi ultimo post he dejado um enlace para que os bajeis un nuevo sofware muy bueno. Echale un vistazo.
      Un saludo y perdón por tardar en responderte, estoy buscando curro y eso me lleva tiempo.

      Eliminar
  2. Hola, y enhorabuena por el Blog! (ya está entre mis favoritos). Me uno al anterior comentario, por favor, podrías explicar mejor como limpiar los puntos y pegar la imagen en la malla en Meshlab?. Querría también preguntarte, en photosynth hay una opción que permite una visión "overhead". Hasta que punto se podría utilizar el resultado para elaborar una planimetría de un sector de una excavación?.

    Un saludo!!!

    ResponderEliminar
    Respuestas
    1. Qué tal Alberto, muchas gracias por tu interés en mi blog. Con respecto a tu petición sobre meshlab, te dejo un enlace que he preparado para ti y para Toni, espero que os sirva, es muy básico pero seguro que los resultado os animan a seguir experimentando. Como a Toni te digo que pruebes también con los valores (9-8-1-1)y que le eche un vistazo a mi ultimo post, he colgado un enlace para que os descargéis un programa que está bastante bién para conseguir nubes de puntos de gran calidad.
      El enlace para descargarte el manual de meshlab puedes cogerlo de la repuesta al compañero Alberto.

      Con respecto a lo de la visión "overhead", perdoname pero no tengo ni idea de lo que es, si fueras tan amable de explicármelo, quizás yo pudiera también aprender cosillas de vosotros.

      Con respecto a si se podría utilizar el resultado para elaborar una planimetría arqueológica, la respuesta es sí. Pueden generarse orto-imágenes georeferenciadas que (posteriormente y habiendo tomado antes al menos 3 coordenadas topográficas) se pueden insertar en programas cad mediante una alineación 3d de las mismas para su posterior vectorización.
      Hasta ahora, y por lo menos en mi caso, lo que hago es digitalizar fotografías cenitales a las que se les ha corregido previamente la distorsion mediante la toma de cuatro puntos topograficos mediante la utilización de un programa especifico para ello. Posteriormente el proceso es el mismo, dibujar sobre la foto insertada en cad sobre las coordenadas topograficas.
      Hoy es posible realizar un modelo 3d y generar orto-imágenes para posteriormente vectorizarlas.
      El proceso es algo laborioso y quizás haga pronto un manual sobre ello pero de momento estoy centrado en la busqueda de trabajo.
      Espero haberte servido de ayuda. Ayudame tu con lo de la visión "overhead" que estoy pegao. Un saludo.

      Eliminar
  3. Hola Groma, muchas gracias por aclarar todas nuestras dudas. Al respecto de "overhead", me refiero a una de las opciones que te sale en la página web de photosynth. Una vez volcado el material a través del software descargado, cuando entras en tu cuenta para ver tu proyecto una de las opciones para ver la nube de puntos es la que me preguntas.

    Lo interesante, es que una vez creada la nube de puntos en 3D, esta visión "overhead" rota la imagen hasta dejarla en formato cenital. Por lo que el resultado sería una vez montada la imagen sobre los puntos una planimetría digital y cenital de los elementos que hemos fotografiado, que podría ser desde una zona de excavación hasta elementos más concretos como tumbas, o particulares, etc.

    Los únicos problemas que le veo a Photosynth, son por una parte, que está disponible únicamente en ambiente Windows (y dependes siempre de Internet, si estás en una excavación es muy posible que no puedas utilizarlo), no como ocurre con Meshlab que también funciona en OS X. Por otra parte, el tiempo empleado para cargar las fotografías es muchísimo. El otro día, me tardó en cargar 3 imágenes (con ADSL 10 MG) más de dos horas. Creo sin embargo, que he encontrado otro software símil (opensource), aunque aun no he probado su efectividad:
    http://insight3d.sourceforge.net/

    Sobre el proceso para digitalizar y corregir fotografías cenitales estoy my interesado, ¿podrías por favor indicarme cual es el programa que utilizas, así como el proceso que realizas?.

    En mi caso utilizo el software (opensource) de la Universidad de Venecia, aunque es muy complicado y busco algo mucho más intuitivo y rápido:
    http://circe.iuav.it/labfot/software/soft_rdf.html

    Un saludo

    ResponderEliminar
  4. Hola , gracias por tu blog. ¿ Es con esta técnica como se ha hecho la opción 3D del programa Maps de Apple conocido como Flyover con el que puedes recorrer a vuelo de pájaro ciudades como Madrid, Nueva York... Con un realismo impresionante.?
    Gracias de nuevo y un saludo, Manuel

    ResponderEliminar
  5. Gracias por el magnifico tutorial, estoy intentando hacer a partir de fotografias mallas de caras y creo que esta solución me puede interesar, pero me he encontrado con el problemilla que no puedo instalar el synthexport.
    ¿Alguien le ha pasado lo mismo y sabe cual es la solución?

    Gracias

    ResponderEliminar
  6. Hola, Muchas felicidades por tu blog, igual que Alberto también agregué el blog en los favoritos, el proceso que describes se entiende muy bien y eso se agradece, sólo tengo un par de dudas y por eso acudo a tu ayuda:

    - ¿cómo lograste sobreponer una escala gráfica y qué programa utilizaste para ello?

    - ¿existe alguna forma de sobre poner una fotografía como elemento base detrás de la nube de puntos?

    Felicidades por tu aporte y gracias por tu ayuda.

    ResponderEliminar
  7. Excelente, quiza un poco tarde pero no quiero quitar la oportunidad de agradecer.

    :3

    ResponderEliminar
  8. hola, muchas gracias por compartir este conocimiento, voy a intentarlo, igual queria descargar el tuto que tienes por deposfiles, pero ya no se encuentra, muchas gracias de nuevo

    ResponderEliminar