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. Usted envía el paquete de trabajos de Gaussian Splatting pipeline desde el sitio web a su granja de Deadline .ply Cuando finalice el trabajo, podrá ver el resultado en cualquier visor de Gaussian Splatting, como en el sitio web. SuperSplat
La canalización ejecuta una única tarea que:
-
Extrae fotogramas de vídeo con FFmpeg
en el sitio web de FFmpeg. -
Se soluciona Structure-from-Motion con COLMAP
en el sitio web de COLMAP y GLOMAP en el sitio web, guardando el modelo estenopeico y las imágenes GitHub sin distorsiones. -
Entrena Gaussian Splatting con el splatfacto de NerF Studio en el sitio web de Nerfstudio, con Splatfacto in the Wild
en el sitio web de Nerfstudio o con el ejemplo de la biblioteca gsplat de simple_trainer.py en el sitio web de gsplat, 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, completa los siguientes pasos:
-
Siga las instrucciones de ejemplo de CloudFormation plantillas para granjas de
CUDA que aparecen en el GitHub sitio web 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 que aparecen en el sitio GitHub web para crear un paquete conda de NerF Studio en el canal Amazon S3 de su granja de CUDA. Para obtener más información, consulte NerF Studio en el sitio web de Nerfstudio.
nota
Si solo necesitas el entrenador predeterminado NERFSTUDIO (splatfacto), no necesitas 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 repositorio deadline-cloud-samples en el GitHub sitio web, 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.
-
Seleccione 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 que aparece 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 SuperSplat editor
en el SuperSplat sitio web y arrastre el archivo desde el explorador de archivos de su sistema operativo a 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 del .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. Las siguientes instrucciones están documentadas en el archivo README de
-
Ejecute el trabajo en cualquier lugar con la CLI de Open Job Description del
sitio GitHub web, 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 del ejemplo de progresión del desarrollo del trabajo que aparece en el
sitio web. GitHub Se pueden ejecutar pasos independientes en diferentes flotas, como una CPU-only flota para la extracción de fotogramas y una flota de GPU para el entrenamiento. -
Divida la canalización en varios trabajos con una estructura diferente. Por ejemplo, un trabajo para resolverlo Structure-from-Motion una vez y otro para probar de forma iterativa diferentes variaciones de los parámetros de entrenamiento del Gaussian Splatting.
Recursos relacionados
Los siguientes recursos proporcionan información adicional:
-
Ejemplo de código fuente
en el GitHub sitio web -
CloudFormation Plantilla de granja CUDA
en el sitio web GitHub -
Receta
del paquete NerF Studio conda en el sitio web GitHub -
Abra plantillas de descripción de trabajo (OpenJD) para Deadline Cloud