View a markdown version of this page

Entrena el Gaussian Splatting en 3D a partir de tu propio vídeo - Deadline Cloud

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Entrena el Gaussian Splatting en 3D a partir de tu propio vídeo

En este tutorial aprenderás cómo entrenar tu propia nube de puntos de salpicaduras gaussianas en 3D a partir de un vídeo que hayas capturado. Envías el paquete de trabajos de Gaussian Splatting Pipeline a tu granja de Deadline Cloud. GitHub El trabajo toma un archivo de vídeo como entrada y produce un archivo Gaussian Splatting como salida. .ply Cuando finalice el trabajo, podrá ver el resultado en cualquier visor de Gaussian Splatting, como. SuperSplat

La canalización ejecuta una única tarea que:

  1. Extrae fotogramas de vídeo con la herramienta de procesamiento de vídeo FFmpeg.

  2. Se soluciona Structure-from-Motion con COLMAP y GLOMAP, guardando el modelo estenopeico y las imágenes sin distorsión.

  3. Entrena Gaussian Splatting con splatfacto de NerF Studio, Splatfacto in the Wild o el ejemplo de la biblioteca gsplat de simple_trainer.py y guarda el resultado en el archivo que especifiques. .ply

En el siguiente vídeo se muestra el flujo de trabajo del proceso de Gaussian Splatting en Deadline Cloud.

Tiempo estimado: unas horas, incluida la configuración de la granja. Según el vídeo de entrada y la configuración que seleccione, el trabajo en sí puede terminar en 10 minutos o tardar horas.

La ejecución de este tutorial implica gastos para las instancias de trabajo de la GPU que procesan el trabajo. Comprenda el costo de sus trabajos de capacitaciónEn la sección se muestra cómo revisar esos costos.

Descripción general de

Para completar este tutorial, sigue estos pasos:

  1. Cumplir los requisitos previos de .

  2. Configura tu granja.

  3. Captura un vídeo de un sujeto.

  4. Envía el gsplat_pipeline trabajo.

  5. Supervise el trabajo.

  6. Descargue y visualice el archivo Gaussian .ply Splatting.

  7. Eliminación de recursos.

Requisitos previos

Antes de empezar, complete la siguiente configuración:

  1. Crea una AWS cuenta si aún no tienes una.

Configura tu granja

Necesitas una granja de Deadline Cloud con una flota de GPU CUDA para ejecutar el trabajo de Gaussian Splatting. Para configurar una, sigue estos pasos:

  1. Siga las instrucciones de la CloudFormation plantilla de ejemplo para granjas de CUDA para crear una granja de Deadline Cloud que tenga una flota de GPU CUDA y pueda crear paquetes de conda.

  2. Siga las instrucciones de ejemplo del paquete conda de NerF Studio para crear un paquete conda de NerF Studio en el canal Amazon S3 de su granja de CUDA.

nota

Si solo necesita el entrenador predeterminado NERFSTUDIO (simple), no necesita implementar la CloudFormation plantilla de granja de CUDA ni crear el paquete conda personalizado de NerF Studio. Los requisitos mínimos son una granja de Deadline Cloud con una flota de GPU, un entorno de colas que conda-forge incluya los canales de conda y los paquetes de conda. ffmpeg colmap glomap nerfstudio cuda Las opciones GSPLAT_SIMPLE_TRAINER y NERFSTUDIO_SPLATFACTOW trainer dependen de los comandos que solo están disponibles en el paquete conda personalizado de NerF Studio.

Captura un vídeo de un sujeto

Puedes usar una cámara con capacidad de vídeo, como la de tu smartphone, para capturar un vídeo de un sujeto y aplicarlo al método Gaussiano Splatting. Ten en cuenta los siguientes consejos:

  • Usa un campo de visión amplio, como un nivel de zoom de 0,5 en la aplicación de cámara. Con un campo de visión más amplio, es común usar más objetos entre los pares Structure-from-Motion de imágenes.

  • Desactiva la estabilización de vídeo. Al desactivarlo, se preserva la óptica del objetivo idéntica en todos los fotogramas y se puede aumentar la calidad de las resoluciones.

  • Planifica el movimiento de la cámara en función del sujeto. Para capturar un objeto, como un banco o una bicicleta, orbita alrededor del sujeto varias veces a diferentes alturas y distancias. Para capturar el interior de una habitación, recorre el exterior de la habitación con la cámara mirando hacia adentro y repite el proceso a diferentes alturas de cámara. Para capturar espacios menos estructurados, como el terreno exterior, piensa en cómo incluir todo lo que quieras en tu Splatting gaussiano y en cómo capturarlo todo desde varios ángulos diferentes.

  • Captura el vídeo a cámara lenta y constante.

  • Sigue moviendo la cámara. Evite detenerse y realizar movimientos panorámicos desde un solo lugar.

Copie el vídeo que capturó con la cámara a su ordenador para enviarlo a la granja.

Envía el trabajo a gsplat_pipeline

Para enviar el trabajo de Gaussian Splatting
  1. Si no tienes una copia local del GitHub repositorio deadline-cloud-samples, clónala o descárgala en formato ZIP: https://github.com/aws-deadline/deadline-cloud-samples/archive/refs/heads/mainline.zip

    git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles
  2. Desde el job_bundles directorio, ejecuta el siguiente comando:

    deadline bundle gui-submit gsplat_pipeline
  3. Cambie a la pestaña de Job-specific configuración y seleccione las rutas tanto para el archivo de vídeo de entrada como para el archivo de pliegue de salida.

  4. Elija Enviar o personalice primero la configuración. Si el vídeo de entrada tiene una complejidad mayor, es posible que deba aumentar el valor del recuento aproximado de imágenes.

También puedes seleccionar qué entrenador de Gaussian Splatting usar y personalizar las opciones de la CLI para él. Por ejemplo, para usar el entrenador en cadena Markov de Montecarlo (MCMC) con la opción de cuadrícula bilateral para producir hasta 2 millones de salpicaduras, realice los siguientes cambios:

  1. Cambia el Gaussian Splatting Trainer de a. NERFSTUDIO GSPLAT_SIMPLE_TRAINER

  2. Modifica el texto de las opciones de GSplat Simple Trainer de --strategy.cap-max 1000000 --strategy.cap-max 2000000 a para obtener 2 millones de splats, y de a para activar la opción de --no-use-bilateral-grid cuadrícula bilateral. --use-bilateral-grid

nota

Si seleccionas una entrada de vídeo u opciones que requieren un uso de memoria superior al que ofrece la flota de CUDA, tendrás que actualizar la configuración mínima de la flota. Re-deploy su CloudFormation plantilla con los valores de los parámetros actualizados o edite la configuración desde la consola de Deadline Cloud.

Monitorizar el trabajo

Tras enviar el trabajo, puede supervisar su estado desde la tabla de trabajos de Deadline Cloud Monitor. Según el vídeo de entrada y la configuración que haya seleccionado, el trabajo puede terminar en 10 minutos o tardar horas.

Cuando el trabajo esté en ejecución, abra el menú contextual de la tarea y seleccione Ver registros para abrir la vista de registro. A medida que la canalización sigue sus pasos, actualiza el mensaje de estado visible en los detalles de la ejecución de la tarea.

Si se producen errores, el resultado del registro de esta vista le ayuda a localizar la causa. Entre las causas más comunes se incluyen quedarse sin memoria o no poder resolver las posturas de la cámara. La canalización puede fallar durante cualquiera de estos pasos: extracción de fotogramas en FFmpeg, Structure-from-Motion resolución de GLOMAP o entrenamiento con NerF Studio. Para resolver los errores, ajuste la infraestructura de la flota o utilice una resolución de imagen o un recuento de imágenes más bajos.

Descargue y visualice el archivo Gaussian Splatting .ply

Para descargar y ver el resultado
  1. Cuando el trabajo se complete correctamente, abra el menú contextual de la tarea completada en la tabla de tareas del monitor Deadline Cloud y seleccione Descargar el resultado. En función de la configuración, muestra el progreso de la descarga o presenta un comando de la CLI que puede utilizar para realizar la descarga. Deadline Cloud guarda el .ply archivo en la ubicación que seleccionó al enviar el trabajo.

  2. Para ver el resultado en su navegador, abra el sitio web del SuperSplat editor y arrastre el archivo desde el explorador de archivos de su sistema operativo hasta la SuperSplat página.

  3. Activa la opción Show/Hide Splats y, a continuación, gira y muévete por la escena para encontrar el sujeto de la captura.

Con SuperSplat, también puedes editar tus salpicaduras gaussianas. Por ejemplo, puede seleccionar una esfera, invertir la selección y eliminar las manchas que se encuentran fuera de ella para recortar la escena. La SuperSplat documentación explica cómo usar el editor, o puede importar el .ply archivo a la herramienta que prefiera.

Comprenda el costo de sus trabajos de capacitación

El monitor Deadline Cloud incluye una función de exploración de uso que calcula el coste de los trabajos que realizas y muestra cuánto cuesta cada formación. Si te sientes cómodo realizando las pruebas fuera de las horas punta, cuando las CUDA-capable instancias están disponibles con tasas de interrupción lo suficientemente bajas, una flota de CUDA puntual cuesta menos que una flota bajo demanda. El explorador de uso no muestra los costos fuera del tiempo de ejecución de las tareas, como el tiempo de inactividad de las instancias de los trabajadores o el almacenamiento en el bucket de Amazon S3.

Limpieza

Para evitar cargos continuos, borre los recursos que creó para este tutorial:

Para limpiar los recursos del tutorial
  1. Si implementó la CloudFormation plantilla de granja de CUDA, elimine la CloudFormation pila de la CloudFormation consola.

  2. Si usaste una granja existente y creaste una flota de GPU específicamente para este tutorial, detiene o elimina esa flota. Si usaste una flota compartida preexistente, déjala en su lugar.

Siguientes pasos

Puedes separar, editar y mezclar el paquete de gsplat_pipeline trabajos para adaptarlo a tus necesidades. Puedes personalizar tu propio proceso de reconstrucción en 3D o seguir los mismos patrones para ejecutar diferentes cargas de trabajo de CUDA en tu granja de CUDA de Deadline Cloud. El archivo README de ejemplo sigue en detalle las siguientes instrucciones:

  • Ejecute el trabajo en cualquier lugar con la CLI de Open Job Description, por ejemplo, localmente o en una instancia de Amazon EC2, en lugar de hacerlo en su granja.

  • Descomponga la única tarea de la canalización en varios pasos de la descripción del trabajo abierto conectados por dependencias, siguiendo el patrón que se muestra en el ejemplo de progresión del desarrollo del trabajo que aparece a continuación. GitHub Se pueden ejecutar pasos independientes en diferentes flotas, como una CPU-only flota para extraer fotogramas y una flota de GPU para entrenar.

  • Divida la canalización en varios trabajos con una estructura diferente. Por ejemplo, un trabajo para resolver una Structure-from-Motion vez y un segundo trabajo para probar de forma iterativa diferentes variaciones de los parámetros de entrenamiento de Gaussian Splatting.

Los siguientes recursos proporcionan información adicional: