miércoles, 6 de junio de 2012

kinect 360. Escaner 3d al alcance de todos.


Ahora si tienes una consola Xbox 360 con su correspondiente sensor Kinect, tienes un tesoro. Este sensor que en cualquier centro comercial o tienda de informática puede comprarse por unos 100 euros, hace las veces de escaner 3D. Aunque hay que indagar aún mucho en su utilización, queremos haceros partícipes de la primera prueba un poco más seria que hemos llevado acabo utilizando este sensor.

Para esta primera prueba hemos querido escanear un elemento arquitectónico, en este caso, la portada principal de la ermita de Ntra. Sra. de la Antigua en Mérida (Badajoz).

                                            Sólido                                                   Fotografía

                                                            Modelo Texturizado
                            

¿Qué es Kinect 360?

Kinect para Xbox 360, es un controlador de juego desarrollado por Microsoft  para  la videoconsola Xbox 360   para PC a través de Windows 7 y Windows 8.
Kinect permite a los usuarios controlar e interactuar con la consola sin necesidad de tener contacto físico con un controlador de videojuegos tradicional, mediante una interfaz natural de usuario que reconoce gestos, comandos de voz y objetos e imágenes.


Aunque hay que seguir explorando en su utilización y funciones, sí que podemos decir que es capaz de realizar un escaneo tridimensional totalmente métrico mediante la configuración previa de sus parámetros.

                                                               Calibración

Aunque no es nueva la utilización de este sensor para la captura de modelos 3D, nosotros en nuestro afán de búsqueda de nuevos sistemas de documentación gráfica de bajo coste, hemos querido poner en práctica la utilización de este sistema para la captura de modelos en el ámbito arqueológico y arquitectónico. Para ello se hace necesario la utilización de un ordenador portátil además del Kinect y una planificación previa del modelo a capturar.
Nube de puntos


                      Malla triangulada                                                               
El resultado obtenido depende de la utilización de un software u otro ya que algunos de ellos sí que generan el color del punto, sin embargo la densidad es menor. Otros en cambio generan una nube densa y  precisa,  pero carecen del (rgb) que utilizaremos para fabricar la textura.



Queremos aprovechar este post para integrar un pequeño manual de generación de texturas a partir del (rgb) o color del punto, debido a que ha habido gente que se ha interesado por este tema.
Nosotros en este caso, hemos optado por el software que genera mayor calidad, aunque sin color, así aprovecharemos para mostraros cómo se proyecta una textura sobre una malla 3d.

GENERACIÓN DE TEXTURAS EN MESHLAB

 Importar y limpiar la nube de puntos. Ahora activamos las capas y nos aparecerá nuestro fichero.



Generar una base adicional mallada que envvuelva nuestra nube de puntos.



Generar la malla. Te aparecerá la nube original y otra secundaria que a la derecha en la edición de capas se llamará poisson mesh.

Ahora habrá que volver a limpiar la malla de puntos sobrantes.

Encima del texto de la nueva capa pisson mesh, de damos a duplicate y la duplicamos para posteriormente pegarle el color de la nube de puntos original. Pinchamos en el ojillo de la capa poissomesh para desactivarla y tener solo las dos que nos interesan ahora.

Pinchamos sobre el texto de la copia y se nos sombrea en amarillo el lateral. Ahora viene el siguiente paso que es la transferencia de color:



Ya tenemos  la malla creada. Si queremos, podemos aplicar filtros que nos muestran  las subrutinas  del programa. Muy útil.
Lo demás es trabajar  con los distintos valores que nos da el programa  para lograr el resultado  más óptimo.



Bién, después de este manual y prosiguiendo con el tema, como hemos dicho anteriormente, hemos utilizado un software que no genera color en el punto con lo cual, hemos tenido que proyectar la textura sobre la malla.
Para ello y aunque existen diversos programas para este fin, hemos utilizado Zbrush para pintar la textura directamente sobre el objeto. 

Hemos tenido que utilizar tres fotografías que recubrieran la mayor parte del objeto, cada una de las cuales, tomadas desde diferentes perspectivas.





El paso siguiente consiste en su proyección sobre el modelo y en su aplicación como pintura.

                                                                              Inserción
Encuadre
Proyección de pintura



El resultado final, es un modelo totalmente mallado y texturizado dispuesto para su divulgación e integración web.

Más abajo dejo un enlace para que podáis ver el resultado final On-line.

Integración web del modelo tridimensional.
http://groma20portadaiglesia.site90.com/

21 comentarios:

  1. Me fascina el trabajo que están haciendo Sergi. Felicidades

    ResponderEliminar
  2. Tengo varias preguntas compañero:
    1) ¿Como conecto mi Kinect a un ordenador?
    2) ¿ Hace falta un adaptador usb?
    3) ¿Qué tipo de software se utilizaria?

    Muchisimas gracias, me seria muy util saber como se realizan este tipo de cosas con la Kinect.
    Magnifico Post.
    Un saludo.

    ResponderEliminar
  3. Cable:
    AC Power Supply USB Cable EU adaptador Para Xbox 360 Kinect Sensor
    a mi me venia en su caja. Precio, 10 Euros.
    http://www.ebay.es/itm/AC-Power-Supply-USB-Cable-EU-adaptador-Xbox-360-Kinect-Sensor-/251064767190?pt=LH_DefaultDomain_186&hash=item3a74a052d6#ht_1854wt_905

    Software a utilizar:
    - Skanect
    - Brekel Kinect
    - RGB Demo
    - Matherix 3Difi
    - Reconstructme

    ResponderEliminar
    Respuestas
    1. HOLA GROMA

      Estoy trabajando con el Kinect, actualmente tengo la profundidades de mi objeto pero quiero generar mi nube de puntos, no se que valores de x y debo dar para que genere mi nube.

      Eliminar
  4. Buenas tardes. Y ante todo un saludo.
    Pienso que debería haber más gente con esta capacidad de innovar en este país que tenemos. Enhorabuena.
    Soy un aficionado en el Zbrush,.., y me preguntaba si con estos software´s que propones y el kinect XBOX 360 se puede hacer lo que pones. Y si se pueden hacer también en "muñecos" de 360 º, supongo que pasando el "kinect" alrededor, y si no se pierde mucha información.
    Lo decía porque estaba pensando en comprarme un scan 3D, pero después de ver ésto, me parece que no.
    Por cierto, me recomiendas ésto de kinect XBOX, o mejor un buen "scan 3D", Y si es la 2ª opción, cuál me recomendarías. Aunque la verdad, me gustaría mucho que me dijeras que con el kinect XBOX no tiene nada que envidiarle a los "scans 3D". Por cierto,tengo Windows 7 64, ¿no tendré problemas con estos softwares que comentas, incluso con el kinect ...¿??

    Un saludo , ..., y de nuevo, ... , enhorabuena.

    ResponderEliminar
    Respuestas
    1. Hola Juan Carlos, encantado de conocerte. Perdona que haya tardado en contestarte pero he estado ausente unos días.
      Te doy las gracias por los ánimos pero, tal y como van las cosas, en este pais no nos va quedando otra más que emigrar ya que las ganas de trabajar y de innovar no bastan, por lo menos en mi caso.
      Con respecto a tu pregunta, solo decirte que el Kinect 360 se puede utilizar como escaner de mano, eso sí, tienes que tener buen pulso pero el ahorro es considerable. La única pega es que hay que texturizar aparte.
      Me ha llamado la atención en tu pregunta, la parte de si se pueden hacer "muñecos". Claro que se puede, pero dependiendo del objeto en cuestión pueden utilizarse otros métodos. Si me das un ejemplo de qué es lo que quieres digitalizar, puedo aconsejarte algún tipo de software específico o simplemente, utilizar Kinect. Yo para objetos pequeños en 360º usaría otra cosa.
      Especificame un poco y trataré de ayudarte.
      Un saludo Juan Carlos.

      Eliminar
  5. Hola,

    Muchas gracias por el manual, me has dado muchas ideas.

    Tengo muchas dudas, pero una que no mencionas es que software usan para hacer el mapeado de puntos sin color. Porque yo al usar el skanect, me da rgb.
    Otra duda es la escala que usan para la foto necesaria para usar en Zbrush para texturizar, respecto al archivo .ply que se crea (suponiendo que usen skanect).

    Por último, no he usado Reconstructme, pero por los manuales que he visto, puedes hacer estructuras 3D completas y si no se añade el rgb, se ven perfectas, no sería mejor usar este software. Pero claro, ¿cómo se texturiza en color, usando tb zbrush?.

    Un saludo, y muchas gracias.

    ResponderEliminar
  6. El mapeado de puntos sin color está hecho como ves en el ejemplo, con Z-brush mediante la utilización del spotsight, mirate algunos tutoriales en youtube, te dejo uno aquí.
    http://www.youtube.com/watch?v=062jPkInTEk
    Si has generado la nube de puntos en color y quieres ver que tal queda utilizando el rgb del punto para crear la textura, he dejado un tutorial en el último post de este blog de Meshlab para hacerlo. Espero que te sirva y perdón por haber tardado en responder.
    un saludo.

    ResponderEliminar
  7. Hola, ante todo me presento. Me llamo Joan, soy topografo y me ha encantado tu web. Ademas de topografo (de profesion) soy paleontologo de aficion.

    Quisiera preguntarte como has creado la visualizacion para WEB, ha sido con 3DSom? sabes si esta disponible en alguna pagina

    muchas gracias y animo con el blog, te lo estas currando

    ResponderEliminar
    Respuestas
    1. Hola Joan, encantado de conocerte.
      Si, esta visualización está hecha con 3dsom aunque tambien utilizo el motor de videojuego para exportar los modelos a html, es igual aunque hay que currarselo un poco más.
      Con respecto a lo del programa, mandame tu email y te lo envio en un wetransfer.
      Un saludo Joan.

      Eliminar
  8. Muchas gracias, te dejo mi mail: jgp@flash10.net

    ResponderEliminar
  9. Hola Groma, en una busqueda rutinaria encontre tu pagina y veo por los comentarios que somos muchos los interesados por este tipo de escaneado low cost. Quizás podríamos generar un foro o algo similar para ir añadiendo ideas y sugerencias y así avanzar más rápido. Espero que ahora que microsoft acaba de liberar nuevos datos sobre el escaner de la kinect los programadores avancen más rápido y con mayor calidad. Voy a ponerme con el zbrush a ver si consigo aplicar la textura a un modelo, aunque no se despreciarian algunos consejos por tu parte acerca del procedimiento :-). Salu2
    Peter

    ResponderEliminar
  10. Hola Groma , Esta muy interesante tu trabajo felicitaciones.
    A ver si me ayudas a ver la luz . Estoy interesado en escanear objetos para luego producir códigos G para CNC, entonces mi pregunta es; Si me sirve el kinect o no y si me sirviera, que programas puedo usar para el escaneo y tratamiento de la imagen para luego formatearlos a cualquiera de estos STL,DIN ISO,DXF (programas CAM).Ojala haya sido claro ,de antemano te lo agradezco.

    Saludos Luis Cavanela.

    ResponderEliminar
  11. Hola Groma, me gustaría escanear objetos pequeños, de unos 30 cm. Me da igual el color, sólo los necesito en stl.
    Me serviría el kinect? que Software debo utilizar?

    un saludo.

    ResponderEliminar
  12. Hola
    Tengo algunas dudas, la primera quiero generar la nube de puntos, ya tengo la profundidades de mi objeto, pero como se los valores correctos de x, y.

    ResponderEliminar
  13. Hola, Me parece un inmenso aporte lo que haz dejado en esta pagina. Tengo una inquietud. Las herramientas y tecnicas aqui descritas, se pueden usar para recrear, por ejemplo una simulacion 3d para una edificacion antigua, donde la persona puede ver desde distintos angulos la contruccion antigua.?

    ResponderEliminar
    Respuestas
    1. Claro que se puede pero para ello, hay que utilizar motores de videojuego.
      Pasate por nuestra página de Facebook y le echas un vistazo.
      Gracias Nicolás.
      https://www.facebook.com/Groma20

      Eliminar
  14. Hola Groma, enhorabuena por el articulo, me intereasa esta posible aplicacion kinect + software pero para escanear objetos pequeños 5 - 20 cms ... seria esto posible ?? te agradeceria un poco de luz en el asunto ...

    Gracias !!

    Saludos.

    ResponderEliminar
  15. Hola queria preguntarles, que software puedo utilizar para crear nube puntos con el kinect en windows??

    Gracias

    ResponderEliminar
  16. Acabo de ver tu pagina y la técnica se parece mucho a las que se ocupan en topografía, por lo mismo quería saber si has hecho pruebas o si sabes como se comporta en grandes superficies (300 metros de base) y en condiciones de mucha luz y polucion, y si el software de captura permite georeferenciar el mapeo.
    Saludos desde chile

    ResponderEliminar
    Respuestas
    1. Actualmente no utilizo este sistema, prefiero la fotogrametria sfm, pero sí, los modelos puen ser georeferenciados con un minimo de 3 coordenadas topograficas. Visita nuestra web: www.groma20.com
      Saludos.

      Eliminar