Vía Sketchfab Tutorial Meshroom para principinantes, de Yann Lanthony


Vía Sketchfab Tutorial Meshroom para principinantes, de Yann Lanthony

Fuente y traducción:





https://sketchfab.com/blogs/community/tutorial-meshroom-for-beginners/




https://translate.google.es/translate?hl=es&sl=auto&tl=es&u=https%3A%2F%2Fsketchfab.com%2Fblogs%2Fcommunity%2Ftutorial-meshroom-for-beginners%2F








Tutorial: Meshroom para principiantes De regreso a la visión general
Tutoriales 8 marzo 2019

Introducción

AliceVision y Meshroom son el resultado de una gran colaboración europea entre socios industriales y académicos:
Universidad Técnica Checa (CTU) en Praga, República Checa
IMAGINE de la Universidad Paris Est, LIGM Gaspard-Monge, Francia
Institut National Polytechnique de Toulouse (INPT) , Francia
Mikros Image , empresa de postproducción en París, Francia
Simula Research Laboratory AS en Oslo, Noruega

Mikros Image es una compañía de posproducción que realiza efectos visuales para cine y comerciales, así como películas de animación. El vínculo entre el mundo real y el virtual está en el corazón de la creación de efectos visuales realistas con un fuerte impacto emocional. Es por eso que hemos comenzado a desarrollar esta línea de 3D Computer Vision de código abierto con la profunda experiencia de múltiples laboratorios de investigación europeos. Puede encontrar información más detallada en el sitio web del proyecto .

Para celebrar el nuevo lanzamiento de Meshroom 2019.1 , nos complace compartir con ustedes un tutorial introductorio en el blog de Sketchfab.
Gol

En este tutorial, explicaremos cómo usar Meshroom para crear automáticamente modelos 3D a partir de un conjunto de fotografías. Después de especificar los requisitos del sistema y la instalación, comenzaremos con algunos consejos sobre adquisición de imágenes para fotogrametría. Luego daremos una descripción general de la interfaz de usuario de Meshroom y cubriremos los conceptos básicos creando un proyecto e iniciando el proceso de reconstrucción 3D. Después de eso, veremos cómo la malla resultante se puede procesar posteriormente directamente dentro de Meshroom mediante la aplicación de una operación de diezmado automático, y continuaremos para aprender cómo volver a texturizar una malla modificada. Resumiremos mostrando cómo usar todo esto para trabajar iterativamente en Meshroom.

Finalmente, le daremos algunos consejos sobre cómo cargar sus modelos 3D en Sketchfab y concluiremos con enlaces útiles para obtener más información.
Paso 0 - Requisitos del sistema e instalación

Las versiones de software de Meshroom son paquetes portátiles autónomos. Se cargan en la página GitHub del proyecto . Para usar Meshroom en su computadora, simplemente descargue la versión adecuada para su sistema operativo (Windows y Linux son compatibles), extraiga el archivo e inicie el ejecutable de Meshroom.

Con respecto al hardware, se requiere una GPU Nvidia (con capacidad de cómputo de al menos 2.0) para la generación de mallas densas de alta calidad. Se recomiendan 32 GB de RAM para la malla, pero puede ajustar los parámetros si no cumple con este requisito.

Meshroom se publica en código abierto bajo la licencia permisiva MPLv2 , consulte Meshroom COPYING para obtener más información.
Paso 1 - Adquisición de imágenes

La calidad de disparo es la parte más importante y desafiante del proceso. Tiene impactos dramáticos en la calidad de la malla final.

El disparo siempre es un compromiso para adaptarse a los objetivos y limitaciones del proyecto: tamaño de la escena, propiedades del material, calidad de las texturas, tiempo de disparo, cantidad de luz, luz u objetos variables, calidad y configuración del dispositivo de la cámara.



El objetivo principal es tener imágenes nítidas sin desenfoque de movimiento y sin desenfoque de profundidad. Por lo tanto, debe usar trípodes o una velocidad de obturación rápida para evitar el desenfoque de movimiento, reducir la apertura (número f alto) para tener una gran profundidad de campo y reducir el ISO para minimizar el ruido.
Paso 2: concepto de Meshroom y descripción general de la interfaz de usuario

Meshroom ha sido concebido para abordar dos casos de uso principales:
Obtenga fácilmente un modelo 3D a partir de múltiples imágenes con una mínima acción del usuario.
Proporcione a los usuarios avanzados (por ejemplo: artistas gráficos expertos, investigadores) una solución que se puede modificar para satisfacer sus necesidades creativas y / o técnicas.

Por esta razón, Meshroom se basa en un sistema nodal que expone todos los pasos de la tubería de fotogrametría como nodos con parámetros. La interfaz de alto nivel anterior permite a cualquiera usar Meshroom sin la necesidad de modificar nada.





Interfaz de usuario de Meshroom
Paso 3 - Flujo de trabajo básico

Para este primer paso, solo usaremos la interfaz de usuario de alto nivel. Guardemos este nuevo proyecto en nuestro disco usando "Archivo> Guardar como ...".


Todos los datos calculados por Meshroom terminarán en una carpeta "MeshroomCache" junto a este archivo de proyecto. Tenga en cuenta que los proyectos son portátiles: puede mover el archivo ".mg" y su carpeta "MeshroomCache" después. La ubicación de la memoria caché se indica en la barra de estado, en la parte inferior de la ventana.

A continuación, importamos imágenes en este proyecto simplemente dejándolas en el área "Imágenes", en el lado izquierdo. Meshroom analiza sus metadatos y establece la escena.




Meshroom se basa en una base de datos de sensores de cámara para determinar los parámetros internos de la cámara y agruparlos. Si a sus imágenes les faltan metadatos y / o fueron tomadas con un dispositivo desconocido para Meshroom, se mostrará una advertencia explícita que explica el problema. En todos los casos, el proceso continuará pero los resultados podrían degradarse.

Una vez hecho esto, podemos presionar el botón "Inicio" y esperar a que termine el cálculo. La barra de progreso coloreada ayuda a seguir el progreso de cada paso del proceso:
verde: ha sido calculado
naranja: se está calculando
azul: se envía para el cálculo
rojo: está en error
Paso 4 - Visualiza y exporta los resultados

Se puede ver que la tubería de fotogrametría genérica tiene dos pasos principales:
SfM: Estructura desde el movimiento (reconstrucción dispersa)
Infiere la estructura rígida de la escena (puntos 3D) con la pose (posición y orientación) y la calibración interna de todas las cámaras.
El resultado es un conjunto de cámaras calibradas con una nube de puntos dispersa (en formato de archivo Alembic).
MVS: MultiView-Stereo (reconstrucción densa)
Utiliza las cámaras calibradas de Structure-from-Motion para generar una superficie geométrica densa.
El resultado final es una malla texturizada (en formato de archivo OBJ con los correspondientes archivos MTL y textura).

Tan pronto como el resultado de la "Estructura desde el movimiento" está disponible, Meshroom lo carga automáticamente. En este punto, podemos ver qué cámaras se han reconstruido con éxito en el panel "Imágenes" (con un icono de cámara verde) y visualizar la estructura 3D de la escena. También podemos elegir una imagen en el panel "Imágenes" para ver la cámara correspondiente en el visor 3D y viceversa.





La selección de imágenes se sincroniza entre los paneles "Imágenes" y "Visor 3D".

Las interacciones del visor 3D son en su mayoría similares a las de Sketchfab:
Haga clic y mueva para girar alrededor del centro de la vista
Haga doble clic en la geometría (nube de puntos o malla) para definir el centro de la vista
alternativa: Ctrl + Click
Clic del mouse medio para desplazarse
alternativa: Shift + Click
Rueda arriba / abajo para acercar / alejar
alternativa: Alt + clic derecho y mover hacia la izquierda / derecha


Buda - Estructura de movimiento de AliceVision en Sketchfab

Una vez que se ha calculado toda la tubería, un botón "Cargar modelo" en la parte inferior del Visor 3D le permite cargar y visualizar la malla 3D texturizada.





Visualice y acceda a archivos multimedia en disco desde el visor 3D

No hay paso de exportación al final del proceso: los archivos resultantes ya están disponibles en el disco. Puede hacer clic derecho en un medio y seleccionar "Abrir carpeta que contiene" para recuperarlos. Al hacerlo en "Texturizado", tenemos acceso a la carpeta que contiene el OBJ y los archivos de textura.


Buda - Canalización predeterminada por AliceVision en Sketchfab
Paso 5 - Postprocesamiento: simplificación de malla

Veamos ahora cómo se puede usar el sistema nodal para agregar un nuevo proceso a esta tubería predeterminada. El objetivo de este paso será crear una versión low-poly de nuestro modelo utilizando la reducción automática de malla.

Pasemos al "Editor de gráficos" y haga clic derecho en el espacio vacío para abrir el menú de creación de nodos. A partir de ahí, seleccionamos "MeshDecimate": esto crea un nuevo nodo en el gráfico. Ahora, necesitamos darle la malla de alta poli como entrada. Creemos una conexión haciendo clic y arrastrando desde MeshFiltering.output a MeshDecimate.input. Ahora podemos seleccionar el nodo MeshDecimate y ajustar los parámetros para satisfacer nuestras necesidades, por ejemplo, estableciendo un conteo máximo de vértices en 100,000. Para iniciar el cálculo, presione el botón principal "Inicio" o haga clic derecho en un nodo específico y seleccione "Calcular".





Cree un nodo MeshDecimate, conéctelo, ajuste los parámetros e inicie el cálculo


Por defecto, el gráfico se convertirá en solo lectura tan pronto como se inicie un cálculo para evitar cualquier modificación que pueda comprometer los procesos planificados.

Cada nodo que produce medios 3D (nube de puntos o malla) se puede visualizar en el visor 3D simplemente haciendo doble clic en él. Hagamos eso una vez que se haya calculado el nodo MeshDecimate.
Haga doble clic en un nodo para visualizarlo en el visor 3D. Si el resultado aún no se calcula, se cargará automáticamente una vez que esté disponible.
Ctrl + clic en la palanca de visibilidad de un medio para mostrar solo este medio
alternativa desde Graph Editor: Ctrl + DoubleClick en un nodo


Paso 6 - Retexturizar después de la retopología

Hacer una variación de la malla original de alta poli es solo el primer paso para crear un modelo 3D a medida. Ahora, veamos cómo podemos rediseñar esta geometría.

Volvamos al editor de gráficos y hagamos las siguientes operaciones:
Haga clic derecho en el nodo Texturizado> Duplicar
Haga clic derecho en la conexión MeshFiltering.output ⇒ Texturing2.inputMesh> Eliminar
Cree una conexión de MeshDecimate.output a Texturing2.inputMesh

Al hacerlo, configuramos un proceso de texturización que utilizará el resultado de la reducción como geometría de entrada. Ahora podemos ajustar los parámetros de Texturizado si es necesario, y comenzar el cálculo.





Retexture la malla diezmada usando un segundo nodo Texturizado


Buda - Diezma de vértices de 100K por AliceVision en Sketchfab

Retopología externa y UVs personalizadas.

Esta configuración también se puede usar para reproyectar texturas en una malla que se ha modificado fuera de Meshroom (por ejemplo: retopología / desenvolver). La única restricción es permanecer en el mismo espacio 3D que la reconstrucción original y, por lo tanto, no cambiar la escala ni la orientación.

Luego, en lugar de conectarlo a MeshDecimate.output, escribiríamos directamente la ruta de archivo de nuestra malla en el parámetro Texturing2.inputMesh desde el editor de atributos del nodo. Si esta malla ya tiene coordenadas UV, se utilizarán. De lo contrario, generará nuevos UV basados ​​en el "Método de desenvoltura" elegido.





La textura también acepta la ruta a mallas externas
Paso 7 - Malla de borrador de SfM

El MVS consiste en crear mapas de profundidad para cada cámara, fusionándolos y utilizando esta gran cantidad de información para crear una superficie. La generación de esos mapas de profundidad es, en este momento, la parte más intensiva de cómputo de la tubería y requiere una GPU habilitada para CUDA. Ahora explicaremos cómo generar una malla rápida y aproximada directamente desde la salida SfM, para obtener una vista previa rápida del modelo 3D. Para hacer eso, usaremos el sistema nodal una vez más.

Volvamos a la canalización predeterminada y realicemos las siguientes operaciones:
Haga clic con el botón derecho en DepthMap> Duplicar nodos desde aquí (icono " >> ") para crear una rama en el gráfico y mantener disponible el resultado anterior.
alternativa: Alt + clic en el nodo
Seleccione y elimine ( Click derecho > Eliminar nodo o Supr ) DepthMap y DepthMapFilter
Conecte PrepareDenseScene.input ⇒ Meshing.input
Conecte PrepareDenseScene.output ⇒ Texturing.inputImages





Malla de borrador desde la configuración de StructureFromMotion

Con este acceso directo, el Mallado utiliza directamente los puntos 3D del SfM, que omiten los pasos intensivos en cómputo y aceleran drásticamente el cálculo del final de la tubería. Esto también proporciona una solución para obtener una malla de borrador sin una GPU Nvidia.

La desventaja es que esta técnica solo funcionará en conjuntos de datos altamente texturizados que pueden producir suficientes puntos en la nube de puntos dispersos. En todos los casos, no alcanzará el nivel de calidad y precisión de la tubería predeterminada, pero puede ser muy útil para producir una vista previa durante la adquisición o para obtener las mediciones en 3D antes del modelado fotográfico.


Buda - Draft Meshing de SfM por AliceVision en Sketchfab
Paso 8 - Trabajando iterativamente

Ahora resumiremos explicando cómo lo que hemos aprendido hasta ahora se puede utilizar para trabajar de forma iterativa y obtener los mejores resultados de sus conjuntos de datos.

1. Computación y análisis de estructura desde el movimiento primero

Esta es la mejor manera de verificar si es probable que la reconstrucción sea exitosa antes de comenzar el resto del proceso ( clic derecho > Calcular en el nodo StructureFromMotion). El número de cámaras reconstruidas y el aspecto / densidad de la nube de puntos dispersos son buenos indicadores para eso. Varias estrategias pueden ayudar a mejorar los resultados en esta etapa temprana de la tubería:
Extraiga más puntos clave de las imágenes de entrada configurando "Descriptor de descripción" en "alto" en el nodo FeatureExtraction (o incluso "ultra" para pequeños conjuntos de datos).
Extraiga varios tipos de puntos clave marcando "akaze" en "Tipo de descriptor" en los nodos FeatureExtraction, FeatureMatching y StructureFromMotion.

2. Usando el borrador de malla de SfM para ajustar los parámetros

La malla de la salida SfM también puede ayudar a configurar los parámetros del proceso de malla estándar, al proporcionar una vista previa rápida de la reconstrucción densa. Veamos este ejemplo:



Con los parámetros predeterminados, podemos previsualizar desde Meshing2 que el área reconstruida incluye algunas partes del entorno que realmente no queremos. Al aumentar el parámetro "Ángulo mínimo de observaciones para la estimación del espacio SfM", estamos excluyendo puntos que no son compatibles con una restricción de ángulo fuerte ( Meshing3 ). Esto da como resultado un área más estrecha sin elementos de fondo al final del proceso ( Meshing4 vs Meshing predeterminado).

3. Experimente con parámetros, cree variantes y compare resultados

Una de las principales ventajas del sistema nodal es la capacidad de crear variaciones en la tubería y compararlas. En lugar de cambiar un parámetro en un nodo que ya se ha calculado e invalidarlo, podemos duplicarlo (o toda la rama), trabajar en esta copia y comparar las variaciones para mantener la mejor versión.

Además de lo que ya hemos cubierto en este tutorial, los parámetros más útiles para impulsar la precisión y el rendimiento de cada paso se detallan en el Wiki de Meshroom .
Paso 9: sube los resultados en Sketchfab

Meshroom aún no proporciona una herramienta de exportación a Sketchfab, pero los resultados están en formatos de archivo estándar y pueden cargarse fácilmente mediante la interfaz web de Sketchfab. Nuestro flujo de trabajo consiste principalmente en estos pasos:
Diezmar la malla dentro de Meshroom para reducir la cantidad de polígonos
Limpie esta malla en un software externo, si es necesario (para eliminar elementos de fondo, por ejemplo)
Retexture la malla limpiada
Subir modelo y texturas a Sketchfab

Puede ver algunos escaneos 3D de la comunidad aquí y en nuestra página de Sketchfab .

¡No olvide etiquetar sus modelos con "alicevision" y "meshroom" si desea que veamos su trabajo!
Conclusión

¡Ahora tiene todas las claves para experimentar con la fotogrametría usted mismo, crear recursos 3D con Meshroom y cargarlos en Sketchfab!

Para ir aún más lejos, aquí hay una lista de wikis, videos tutoriales y artículos de la comunidad:
Wiki Meshroom
Documentación de AliceVision Photogrammetry Pipeline
Tutorial de Meshroom por CG Geek
Meshroom e impresión 3D por Prusa Research
Escaneo de objetos pequeños usando una caja de luz por el Dr. Peter Falkingham
Matchmove con Meshroom de Mario Cazares

Meshroom es un desarrollo colaborativo activo, y nos encantaría recibir sus comentarios.

Si encuentra algún error, los errores se pueden informar directamente en GitHub (requiere una cuenta de GitHub). Para informes efectivos, proporcione información detallada. Se puede acceder al registro completo de cada tarea desde el Editor de nodos y puede contener suficiente información para identificar el problema.

También nos complacerá ayudarlo en casos de uso específicos o preguntas relacionadas con el flujo de trabajo de nuestro grupo público de Google .








Sobre el Autor



Yann Lanthony

Ingeniero de software @ Mikros, trabajando en Meshroom / AliceVision.







Texto original en inglés:


By increasing the “Min Observations Angle For SfM Space Estimation” parameter, we are excluding points that are not supported by a strong angle constraint ( Meshing3 ).


Proponer una traducción mejor

Comentarios

dinesh kumR ha dicho que…
great info thank you !
Online traing