viernes, 1 de agosto de 2014

Tutorial escanear en 3D

Este tutorial explica el método para escanear un objeto en 3D con una cámara reflex:

Para hacer el escáner ver este tutorial.

COMO SACAR LAS FOTOS:

Hay que sacar varias órbitas alrededor del objeto a diferentes alturas. Cuantas mas fotos se saquen, mas calidad tendrá el objeto final, un buen ejemplo de número de fotos es 3 órbitas de 24 fotos a diferentes alturas utilizando el mismo objetivo de la cámara y sin cambiar el zoom. Esto facilita la fase de autocalibrado.

Es importante que todo el objeto esté enfocado y el croma bien iluminado, imágenes borrosas y un dataset con imágenes que no tengan cierta continuidad no son recomendables. El verde de fondo ha de estar iluminado por separado y el elemento a escanear tener su propia luz frontal, con el mínimo de sombras posible:

https://www.youtube.com/watch?v=ErY9MYCpA4E

De fondo se coloca una verde a modo de croma, para poder obtener un mejor perfilado del objeto en las fotos.



PROCESADO DE LAS FOTOS

Para eliminar el croma de la secuencia de fotos utilizamos este tutorial.

GENERAR GEOMETRÍA

Para generar la geometría he usado el programa 3DF Zephyr, que analiza cada imagen y encuentra relaciones entre las imágenes para colocarlas alineadas para formar una imagen completa del objeto 3D.

Paso 1 – Creando un proyecto

Para crear un proyecto, clicar “Workflow” (1) y luego “New Project” (2). Aparecerá el “Project Wizard” (3) que te guiará en el proceso de importar las fotos.


La siguiente ventana es la pagina de selección de fotos. Aprieta en el símbolo "mas" (4). y busca el directorio donde están localizadas tus fotos. También puedes hacer drag and drop.


Ahora puedes apretar el botón "next" (5), que te llevará a la siguiente ventana, que es en la que se asignan los parámetros de calibración de las fotos.

Para continuar, en el “Project Wizard” clica en “Next” en la esquina de abajo a la derecha.

Paso 2 – Alinear cámaras y generar nube suave de puntos.


a) Keypoint density: Más no significa mejor.

- Disminuir cuando:
tengas muchas fotos o necesites procesado rápido.
- Aumentar cuando:
Tengas pocas fotos o las fotos estén muy desalineadas.

b) Matching Type: Acurate.

c) Matching stage depth: Dejarlo en automático.

d) Reprojection error tolerance: 

- Disminuir cuando:
La reconstrucción tiene huecos.
- Aumentar cuando:
No todas las cámaras han sido orientadas.

e) Bundle adjustment:

Local: Evita puntos redundantes. Opción por defecto y recomendada.

Local and restrained: Si se tiene una cantidad enorme de fotos es bueno usa esta opción.

Full: Esta opción solo debe usarse cuando se necesite mucha precisión, consume muchisimos recursos y pocas veces mejora la calidad del resultado final.

Photo Ordering:  MUY IMPORTANTE nunca activar las opciones secuencial ni circular, o el programa quedará inservible. Repito: dejar la opción Unordered SIEMPRE!

Le damos a "run" y se pondrá a procesar.


Este es un ejemplo del resultado de muchísimas fotos generando una nube suave de puntos:



Paso 3 – Moverse alrededor.

Puedes navegar por la escena en el modo orbita: manten apretado el boton izquierdo y arrastra el cursor por la pantalla el cursor por la pantalla (7). Para hacer zoom, mantén el shift izquierdo y mueve el ratón adelante y atrás.


Puedes cambiar el modo de vista de órbita a visión libre con la opción "enable/disable orbit style". (8) Este modo utiliza el modo clásico de los FPS con las teclas WASD. Con Q y E te mueves arriba y abajo.
También puedes moverte rápido a una posción de cámara con el botón derecho en una cámara y clic con el botón izquierdo del ratón en "move here".

Paso 4 - Generación de la nube densa de puntos.

Ahora que las cámaras están alineadas, podemos extraer la nube densa de puntos de nuestro modelo 3D.
Menú “Workflow” (1) elige "Dense Point Cloud Generation" y aparecerá el “Dense point cloude Generation Wizard". clica “Next”.

Number of Cameras: Subirlo cuando tengas muchas fotos.
Resolution: Es la resolución de las fotos. Si dejas 100% utilizará toda la resolución pero tardará más.
Noise filtering: Primero hacer una prueba por defecto y bajar este parámetro  si al terminar faltan partes. Subir si al terminar hay demasiado ruido.


Discretization level: Bajar si hay ruido al final. Subir para tener mas precisión y calidad.

Para mi test voy a probar esta configuración:


Clicamos "next".

Clica "Run" para que Zephyr empiece la extracción de puntos densa. Apretar "Finish". (Esto puede tardar muchisimo si tenemos muchas fotos):


Paso 5 – Creación de la geometría.

Simplemente clica en "Create a triangulated mesh from a dense point cloud" y saldrá el "mesh generation wizard". Clicamos “Next” y veremos la siguente ventana:


Seleccionamos el nivel de "Poligon count":


Y el Smoothness:


Empezamos la creación de la malla, clicando en "Run", hasta que salga el diálogo “Mesh Creation Successful”, entonces clica “Finish”. En este paso es recomendable utilizar al menos la opción "very high", porque no tarda demasiado. Si clicamos en "huge", si que tarda un poco más y además no sé si merece la pena la espera.


Así es como queda con la misma configuración con 3 circulos a diferentes alturas de 36 fotos cada uno con las opciones estandar con cada opción:


Paso 6 – Exportar la malla final.


Para exportar la malla final simplemente clica en “Export Menu” (10) y entonces “Export Mesh” (11): aparecerá la ventana “Mesh Export Window” (12).

Exporta en algún formato que te vaya bien, por ejemplo .obj

Fuente:
http://www.3dflow.net/3df-zephyr-parmeters-tuning-guide/

No hay comentarios:

Publicar un comentario