

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
<a name="tutorial-gsplat-pipeline"></a>

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 ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/gsplat_pipeline) 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 ](https://github.com/playcanvas/supersplat)

La canalización ejecuta una única tarea que:

1. Extrae fotogramas de vídeo con la herramienta de procesamiento de vídeo [ FFmpeg. ](https://www.ffmpeg.org/)

1. Se soluciona Structure-from-Motion con [ COLMAP ](https://colmap.github.io/) y [ GLOMAP](https://github.com/colmap/glomap), guardando el modelo estenopeico y las imágenes sin distorsión.

1. Entrena Gaussian Splatting con splatfacto de [ NerF Studio](https://docs.nerf.studio/nerfology/methods/splat.html), [ Splatfacto in the Wild o el ejemplo de la biblioteca gsplat de [ simple\_trainer.py y guarda el resultado ](https://docs.gsplat.studio/main/examples/colmap.html) en el archivo que especifiques. ](https://docs.nerf.studio/nerfology/methods/splatw.html) `.ply`

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

[![AWS Videos](http://img.youtube.com/vi/VUZwa6IuNdg/0.jpg)](http://www.youtube.com/watch?v=VUZwa6IuNdg)


**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ón](#tutorial-gsplat-cost)En la sección se muestra cómo revisar esos costos.

## Descripción general de
<a name="tutorial-gsplat-overview"></a>

Para completar este tutorial, sigue estos pasos:

1. Cumplir los requisitos previos de .

1. Configura tu granja.

1. Captura un vídeo de un sujeto.

1. Envía el `gsplat_pipeline` trabajo.

1. Supervise el trabajo.

1. Descargue y visualice el archivo Gaussian `.ply` Splatting.

1. Eliminación de recursos.

## Requisitos previos
<a name="tutorial-gsplat-prerequisites"></a>

Antes de empezar, complete la siguiente configuración:

1. [Crea una AWS cuenta ](https://aws.amazon.com/resources/create-account/) si aún no tienes una.

## Configura tu granja
<a name="tutorial-gsplat-setup"></a>

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 ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/cuda_farm) CUDA para crear una granja de Deadline Cloud que tenga una flota de GPU CUDA y pueda crear paquetes de conda.

1. Siga las [ instrucciones de ejemplo del paquete conda de ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/nerfstudio) NerF Studio para crear un paquete conda de [ NerF Studio en el canal Amazon ](https://docs.nerf.studio/) 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
<a name="tutorial-gsplat-capture"></a>

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
<a name="tutorial-gsplat-submit"></a>

**Para enviar el trabajo de Gaussian Splatting**

1. Si no tienes una copia local del GitHub repositorio [ deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples), clónala o descárgala en formato ZIP: [https://github.com/aws-deadline/deadline-cloud-samples/archive/refs/heads/mainline.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
   ```

1. Desde el `job_bundles` directorio, ejecuta el siguiente comando:

   ```
   deadline bundle gui-submit gsplat_pipeline
   ```

1. 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**.

1. 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`

1. 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
<a name="tutorial-gsplat-monitor"></a>

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
<a name="tutorial-gsplat-view"></a>

**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.

1. Para ver el resultado en su navegador, abra el [ sitio web del ](https://superspl.at/editor) SuperSplat editor y arrastre el archivo desde el explorador de archivos de su sistema operativo hasta la SuperSplat página.

1. 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 ](https://github.com/playcanvas/supersplat/wiki) 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
<a name="tutorial-gsplat-cost"></a>

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
<a name="tutorial-gsplat-cleanup"></a>

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.

1. 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
<a name="tutorial-gsplat-next-steps"></a>

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 ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/gsplat_pipeline#this-sample-is-a-starting-point) en detalle las siguientes instrucciones:
+ Ejecute el trabajo en cualquier lugar con la CLI de [ Open Job Description](https://github.com/OpenJobDescription/openjd-cli), 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 ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/job_dev_progression) 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
<a name="tutorial-gsplat-related"></a>

Los siguientes recursos proporcionan información adicional:
+ [Ejemplo de código fuente en GitHub ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/gsplat_pipeline)
+ [Plantilla de granja CloudFormation CUDA ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/cuda_farm)
+ [Receta del paquete de conda de NerF Studio ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/nerfstudio)
+ [Entrada de blog sobre 3D Gaussian Splatting ](https://aws.amazon.com/blogs/spatial/3d-gaussian-splatting-performant-3d-scene-reconstruction-at-scale/)
+ [Abra plantillas de descripción de trabajo (OpenJD) para Deadline Cloud](build-job-bundle.md)