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 .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:
-
Extrae fotogramas de vídeo con la herramienta de procesamiento de vídeo FFmpeg.
-
Se soluciona Structure-from-Motion con COLMAP
y GLOMAP , guardando el modelo estenopeico y las imágenes sin distorsión. -
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:
-
Cumplir los requisitos previos de .
-
Configura tu granja.
-
Captura un vídeo de un sujeto.
-
Envía el
gsplat_pipelinetrabajo. -
Supervise el trabajo.
-
Descargue y visualice el archivo Gaussian
.plySplatting. -
Eliminación de recursos.
Requisitos previos
Antes de empezar, complete la siguiente configuración:
-
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:
-
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. -
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
-
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 -
Desde el
job_bundlesdirectorio, ejecuta el siguiente comando:deadline bundle gui-submit gsplat_pipeline -
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.
-
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:
-
Cambia el Gaussian Splatting Trainer de a.
NERFSTUDIOGSPLAT_SIMPLE_TRAINER -
Modifica el texto de las opciones de GSplat Simple Trainer de
--strategy.cap-max 1000000--strategy.cap-max 2000000a para obtener 2 millones de splats, y de a para activar la opción de--no-use-bilateral-gridcuadrí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
-
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
.plyarchivo en la ubicación que seleccionó al enviar el trabajo. -
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. -
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 .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
-
Si implementó la CloudFormation plantilla de granja de CUDA, elimine la CloudFormation pila de la CloudFormation consola.
-
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
-
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.
Recursos relacionados
Los siguientes recursos proporcionan información adicional: