El lenguaje de escena: representación de escenas con programas, palabras e incrustaciones
arXiv | Página del proyecto
Códigos descendentes
Este repositorio implementa el lenguaje de escena presentado en el artículo "El lenguaje de escena: representación de escenas con programas, palabras e incrustaciones". Permite la generación de escenas 3D condicionadas por texto e imagen.
Instalación
Ambiente
`golpear
conda crear --nombre sclg python=3.11
conda activar sclg
instalar pip mitsuba
Si te encuentras con un error de segmentación, es posible que necesites versiones específicas de mitsuba.
por ejemplo, pip install --force-reinstall mitsuba==3.5.1 en MacOS
pip instalar unidecode Almohada transformaciones antrópicas 3d astor ipdb scipy jaxtyping imageio
requerido para el renderizador de Minecraft
instalación de pip espacial
python -m descarga espacial encoreweb_md
pip install --force-reinstall numpy==1.26.4 # para ser compatible con transforms3d
clon de git https://github.com/zzyunzhi/scene-language.git
cd escena-lenguaje
instalación de pip -e.
`
API de modelo de lenguaje
1. Obtenga su clave API: Obtenga su clave API Anthropic siguiendo la documentación oficial.
2. Agregue la clave a motor/key.py:
`pitón
ANTHROPICAPIKEY = 'TUANTHROPICAPI_KEY'
OPENAIAPIKEY = 'YOUROPENAIAPIKEY' # opcional, requerido para LLMPROVIDER='gpt'
`
3. Cambiar modelos de idioma (opcional): puede cambiar a diferentes modelos de idioma modificando la configuración LLM_PROVIDER en motor/constants.py. El valor predeterminado es Claude 3.5 Sonnet.
Generación 3D condicionada por texto
Render: Mitsuba
`golpear
python scripts/run.py --tasks "un tablero de ajedrez con un juego completo de piezas"
`
Las renderizaciones se guardarán en ${PROJROOT}/scripts/outputs/run${timestep}${uuid}/${scenename}${uuid}/${sampleindex}/renderings/*.gif.
Resultados de ejemplo: resultados sin procesar
Renderizador: Minecraft
`golpear
ENGINE_MODE=minecraft python scripts/run.py --tasks "una torre medieval cilíndrica detallada"
`
Las escenas generadas se guardan como archivos JSON en ${PROJROOT}/scripts/outputs/run${timestep}${uuid}/${scenename}${uuid}/${sampleindex}/renderings/*.json.
Visualización:
1. Ejecute el siguiente comando:
`golpear
visores de Python/minecraft/run.py
`
2. Abra http://127.0.0.1:5001 en su navegador.
3. Arrastre los archivos JSON generados a la página web.
Resultados de ejemplo: resultados sin procesar
Generación 3D condicionada por imágenes
`golpear
scripts de python/run.py --tasks ./resources/examples/* --cond image --temperature 0.8
`
Detalles de la base de código
La siguiente tabla enumera las funciones auxiliares definidas en este repositorio, alineadas con expresiones definidas en el lenguaje específico del dominio (DSL) (Tablas 2 y 5 del documento):
| Función | Expresión DSL |
|-----------------|----------------|
| ... | ... |
| ... | ... |
Mejoras en la base de código
El código base actual ofrece las siguientes características:
1. Generación condicionada por texto: genere escenas 3D basadas en descripciones textuales.
2. Generación condicionada por imágenes: genere escenas 3D basadas en imágenes de entrada.
Actualizaciones futuras:
En futuras actualizaciones se agregará soporte para tareas y renderizadores adicionales.
Contribuciones
No dude en enviar una solicitud de extracción o contactarnos por correo electrónico si tiene alguna solicitud de función, sugerencia o si desea compartir sus resultados.
Citación
`
@artículo{zhang2024scenelanguage,
title={El lenguaje de escena: representación de escenas con programas, palabras e incrustaciones},
autor = {Yunzhi Zhang y Zizhang Li y Matt Zhou y Shangzhe Wu y Jiajun Wu},
año={2024},
diario={arXiv preimpresión arXiv:2410.16770},
}
`
Licencia: Apache-2.0