Inicio rápido
Más información
Funciones admitidas
¡Es tan simple como conectar y usar con nerfstudio!
Nerfstudio proporciona una API simple que permite un proceso simplificado de extremo a extremo para crear, entrenar y probar NeRF. La biblioteca admite una implementación más interpretable de NeRF al modularizar cada componente. Con NeRF más modulares, esperamos crear una experiencia más fácil de usar al explorar la tecnología.
Este es un repositorio amigable para los contribuyentes con el objetivo de construir una comunidad donde los usuarios puedan aprovechar más fácilmente las contribuciones de los demás. Nerfstudio se lanzó inicialmente como un proyecto de código abierto por estudiantes de Berkeley en el laboratorio KAIR de Berkeley AI Research (BAIR) en octubre de 2022 como parte de un proyecto de investigación (artículo). Actualmente lo desarrollan estudiantes de Berkeley y contribuyentes de la comunidad.
Estamos comprometidos a brindar recursos de aprendizaje para ayudarlo a comprender los conceptos básicos (si recién está comenzando) y mantenerse actualizado (si es un veterano experimentado) en todo lo relacionado con NeRF. Como investigadores, sabemos lo difícil que es incorporarse a esta tecnología de próxima generación. ¡Estamos aquí para ayudarte con tutoriales, documentación y más!
¿Tiene solicitudes de funciones? ¿Quieres agregar tu nuevo modelo NeRF? ¿Tiene un nuevo conjunto de datos? ¡Agradecemos las contribuciones! No dude en comunicarse con el equipo de nerfstudio si tiene alguna pregunta a través de Discord.
¿Tiene comentarios? Nos encantaría que completaras nuestro Formulario de comentarios de Nerfstudio si deseas contarnos quién eres, por qué estás interesado en Nerfstudio o brindarnos algún comentario.
Esperamos que nerfstudio le permita construir más rápido. aprender juntos? y contribuir a nuestra comunidad NeRF?.
Los patrocinadores de este trabajo incluyen Luma AI y BAIR commons.
El inicio rápido lo ayudará a comenzar con el NeRF básico predeterminado entrenado en la escena clásica de Blender Lego. Para cambios más complejos (por ejemplo, ejecutar con sus propios datos/configurar un nuevo gráfico NeRF), consulte nuestras referencias.
Debe tener una tarjeta de video NVIDIA con CUDA instalada en el sistema. Esta biblioteca ha sido probada con la versión 11.8 de CUDA. Puede encontrar más información sobre la instalación de CUDA aquí
Nerfstudio requiere python >= 3.8
. Recomendamos utilizar conda para gestionar dependencias. Asegúrese de instalar Conda antes de continuar.
conda crear --nombre nerfstudio -y python=3.8 conda activar nerfstudio instalación de pip --actualizar pip
Instale PyTorch con CUDA (este repositorio ha sido probado con CUDA 11.7 y CUDA 11.8) y tiny-cuda-nn. Se requiere cuda-toolkit
para construir tiny-cuda-nn
.
Para CUDA 11.8:
pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118 conda install -c "nvidia/label/cuda-11.8.0" kit de herramientas cuda pip instalar ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
Consulte Dependencias en la documentación de instalación para obtener más información.
Opción fácil:
instalar pip nerfstudio
O si quieres lo último y lo mejor:
clon de git https://github.com/nerfstudio-project/nerfstudio.gitcd nerfstudio instalación de pip --actualizar herramientas de configuración de pip instalación de pip -e.
O si desea omitir todos los pasos de instalación y comenzar a usar nerfstudio directamente, use la imagen de la ventana acoplable:
Consulte Instalación: utilizar la imagen de la ventana acoplable .
A continuación se entrenará un modelo nerfacto , nuestro modelo recomendado para escenas del mundo real.
# Descargar algunos datos de prueba:ns-download-data nerfstudio --capture-name=poster# Entrenar modelns-train nerfacto --data data/nerfstudio/poster
Si todo funciona, deberías ver un progreso del entrenamiento como el siguiente:
Navegar hasta el enlace al final de la terminal cargará el visor web. Si está ejecutando en una máquina remota, deberá reenviar el puerto websocket (el valor predeterminado es 7007).
Es posible cargar un modelo previamente entrenado ejecutando
ns-train nerfacto --data data/nerfstudio/poster --load-dir {salidas/.../nerfstudio_models}
Dado un punto de control del modelo previamente entrenado, puede iniciar el visor ejecutando
ns-viewer --load-config {salidas/.../config.yml}
Una vez que tengas un modelo NeRF, puedes renderizar un vídeo o exportar una nube de puntos.
Primero debemos crear un camino para que lo siga la cámara. Esto se puede hacer en el visor en la pestaña "RENDERAR". Oriente su vista 3D hacia la ubicación donde desea que comience el video, luego presione "AGREGAR CÁMARA". Esto establecerá el primer fotograma clave de la cámara. Continúe hacia nuevos puntos de vista agregando cámaras adicionales para crear la ruta de la cámara. Proporcionamos otros parámetros para refinar aún más la trayectoria de su cámara. Una vez satisfecho, presione "RENDER", que mostrará un modal que contiene el comando necesario para renderizar el video. Elimine el trabajo de entrenamiento (o cree una nueva terminal si tiene mucha computación) y ejecute el comando para generar el video.
Otras opciones de exportación de video están disponibles, obtenga más información ejecutando
ns-render --ayuda
Si bien los modelos NeRF no están diseñados para generar nubes de puntos, aún es posible. Navegue a la pestaña "EXPORTAR" en el visor 3D y seleccione "NUBE DE PUNTOS". Si se selecciona la opción de recorte, todo lo que esté en el cuadrado amarillo se exportará a una nube de puntos. Modifique la configuración como desee y luego ejecute el comando en la parte inferior del panel en su línea de comando.
Alternativamente, puede utilizar la CLI sin el visor. Conozca las opciones de exportación ejecutando
ns-export nube de puntos --ayuda
Usar un conjunto de datos existente es excelente, ¡pero probablemente quieras usar tus propios datos! Admitimos varios métodos para utilizar sus propios datos. Antes de poder usarlo en nerfstudio, se deben determinar la ubicación y las orientaciones de la cámara y luego convertirlas a nuestro formato usando ns-process-data
. Para ello utilizamos herramientas externas; las instrucciones y la información se pueden encontrar en la documentación.
Datos | Dispositivo de captura | Requisitos | Velocidad ns-process-data |
---|---|---|---|
Imágenes | Cualquier | COLMAP | |
Video | Cualquier | COLMAP | |
Datos 360 | Cualquier | COLMAP | |
policam | IOS con LiDAR | Aplicación Polycam | |
Grabar 3D | IOS con LiDAR | Aplicación Record3D | |
metaforma | Cualquier | metaforma | |
ODM | Cualquier | ODM | |
Aria | gafas aria | Proyecto Aria | |
Costumbre | Cualquier | Poses de cámara |
Proporcionamos otros modelos además de nerfacto, por ejemplo, si desea entrenar el modelo nerf original, use el siguiente comando
ns-train vainilla-nerf --data DATA_PATH
Para obtener una lista completa de los modelos incluidos, ejecute ns-train --help
.
Cada modelo contiene muchos parámetros que se pueden cambiar, demasiados para enumerarlos aquí. Utilice el comando --help
para ver la lista completa de opciones de configuración.
ns-train nerfacto --ayuda
Admitimos cuatro métodos diferentes para realizar un seguimiento del progreso del entrenamiento, utilizando el visor tensorboard, Weights and Biases y Comet. Puede especificar qué visualizador usar agregando --vis {viewer, tensorboard, wandb, comet viewer+wandb, viewer+tensorboard, viewer+comet}
al comando de entrenamiento. El uso simultáneo del visor junto con el wandb o el tensorboard puede causar problemas de tartamudeo durante los pasos de evaluación. El visor solo funciona con métodos que son rápidos (es decir, nerfacto, instant-ngp), para métodos más lentos como NeRF, use otros registradores.
Y eso es todo para empezar con los conceptos básicos de nerfstudio.
Si está interesado en obtener más información sobre cómo crear sus propios canales, desarrollar con el visor, ejecutar pruebas comparativas y más, consulte algunos de los enlaces rápidos a continuación o visite nuestra documentación directamente.
Sección | Descripción |
---|---|
Documentación | Documentación API completa y tutoriales |
Espectador | Página de inicio de nuestro visor web |
Educativo | |
Descripciones de modelos | Descripción de todos los modelos soportados por nerfstudio y explicaciones de los componentes. |
Descripciones de componentes | Cuadernos interactivos que explican módulos notables/usados comúnmente en varios modelos. |
Tutoriales | |
Empezando | Una guía más detallada sobre cómo empezar a utilizar nerfstudio desde la instalación hasta la contribución. |
Usando el visor | Un vídeo de demostración rápida sobre cómo navegar por el visor. |
Usando Record3D | Vídeo de demostración sobre cómo ejecutar nerfstudio sin usar COLMAP. |
Para desarrolladores | |
Creando tuberías | Aprenda a crear fácilmente nuevos canales de renderizado neuronal mediante el uso o implementación de nuevos módulos. |
Creando conjuntos de datos | ¿Tiene un nuevo conjunto de datos? Aprenda a ejecutarlo con nerfstudio. |
Contribuyendo | Tutorial sobre cómo puedes empezar a contribuir ahora. |
Discordia | Únase a nuestra comunidad para discutir más. ¡Nos encantaría saber de usted! |
Gorjeo | Síganos en Twitter @nerfstudioteam para ver actualizaciones y anuncios interesantes. |
Formulario de comentarios | ¡Agradecemos cualquier comentario! Esta es nuestra oportunidad de saber para qué estáis usando Nerfstudio. |
Proporcionamos las siguientes estructuras de soporte para facilitarle la vida al comenzar a usar NeRF.
Si está buscando una función que actualmente no es compatible, ¡no dude en comunicarse con el equipo de Nerfstudio en Discord!
Visualizador basado en web que le permite:
Visualiza el entrenamiento en tiempo real + interactúa con la escena
Cree y renderice escenas con trayectorias de cámara personalizadas
Ver diferentes tipos de salida
¡Y más!
Soporte para múltiples interfaces de registro (Tensorboard, Wandb), creación de perfiles de código y otras herramientas de depuración integradas
Scripts de evaluación comparativa fáciles de usar en el conjunto de datos de Blender
Soporte completo de canalización (con Colmap, Polycam o Record3D) para pasar de un video en su teléfono a una representación 3D completa.
Sistema de configuración fácil de usar
Desarrollado por Brent Yi
Biblioteca para acelerar renderizados NeRF
Desarrollado por Ruilong Li
Puede encontrar un artículo escrito del marco en arXiv.
Si utiliza esta biblioteca o encuentra la documentación útil para su investigación, considere citar:
@inproceedings{nerfstudio, title = {Nerfstudio: A Modular Framework for Neural Radiance Field Development}, author = { Tancik, Matthew and Weber, Ethan and Ng, Evonne and Li, Ruilong and Yi, Brent and Kerr, Justin and Wang, Terrance and Kristoffersen, Alexander and Austin, Jake and Salahi, Kamyar and Ahuja, Abhik and McAllister, David and Kanazawa, Angjoo }, year = 2023, booktitle = {ACM SIGGRAPH 2023 Conference Proceedings}, series = {SIGGRAPH '23} }