Die Szenensprache: Szenen mit Programmen, Wörtern und Einbettungen darstellen
arXiv | Projektseite
Downcodes sind nicht verfügbar
Dieses Repository implementiert die Szenensprache, die im Artikel „The Scene Language: Representing Scenes with Programs, Words, and Embeddings“ vorgestellt wird. Es ermöglicht die textbedingte und bildbedingte Generierung von 3D-Szenen.
Installation
Umfeld
`Bash
conda create --name sclg python=3.11
Conda aktiviert sclg
pip install mitsuba
Wenn ein Segmentierungsfehler auftritt, benötigen Sie möglicherweise bestimmte Mitsuba-Versionen
z. B. pip install --force-reinstall mitsuba==3.5.1 unter MacOS
pip install unidecode Pillow anthropic transforms3d astor ipdb scipy jaxtyping imageio
Erforderlich für den Minecraft-Renderer
pip install spacy
python -m spacy herunterladen encoreweb_md
pip install --force-reinstall numpy==1.26.4 # um mit transforms3d kompatibel zu sein
Git-Klon https://github.com/zzyunzhi/scene-Language.git
CD-Szenensprache
pip install -e .
`
Sprachmodell-API
1. Holen Sie sich Ihren API-Schlüssel: Besorgen Sie sich Ihren Anthropic-API-Schlüssel gemäß der offiziellen Dokumentation.
2. Schlüssel zu engine/key.py hinzufügen:
`Python
ANTHROPICAPIKEY = 'YOURANTHROPICAPI_KEY'
OPENAIAPIKEY = 'YOUROPENAIAPIKEY' # optional, erforderlich für LLMPROVIDER='gpt'
`
3. Sprachmodelle wechseln (optional): Sie können zu verschiedenen Sprachmodellen wechseln, indem Sie die LLM_PROVIDER-Einstellung in engine/constants.py ändern. Die Standardeinstellung ist Claude 3.5 Sonnet.
Textbedingte 3D-Generierung
Renderer: Mitsuba
`Bash
python scripts/run.py --tasks „ein Schachbrett mit einem vollständigen Satz Schachfiguren“
`
Renderings werden unter ${PROJROOT}/scripts/outputs/run${timestep}${uuid}/${scenename}${uuid}/${sampleindex}/renderings/*.gif gespeichert.
Beispielergebnisse: Rohausgaben
Renderer: Minecraft
`Bash
ENGINE_MODE=minecraft python scripts/run.py --tasks „ein detaillierter zylindrischer mittelalterlicher Turm“
`
Generierte Szenen werden als JSON-Dateien in ${PROJROOT}/scripts/outputs/run${timestep}${uuid}/${scenename}${uuid}/${sampleindex}/renderings/*.json gespeichert.
Visualisierung:
1. Führen Sie den folgenden Befehl aus:
`Bash
Python viewers/minecraft/run.py
`
2. Öffnen Sie http://127.0.0.1:5001 in Ihrem Browser.
3. Ziehen Sie generierte JSON-Dateien auf die Webseite.
Beispielergebnisse: Rohausgaben
Bildbedingte 3D-Generierung
`Bash
python scripts/run.py --tasks ./resources/examples/* --cond image --temperature 0.8
`
Codebasisdetails
In der folgenden Tabelle sind die in diesem Repository definierten Hilfsfunktionen aufgeführt, abgestimmt auf Ausdrücke, die in der domänenspezifischen Sprache (DSL) definiert sind (Tabellen 2 und 5 des Dokuments):
| Funktion | DSL-Ausdruck |
|-----------------|----------------|
| ... | ... |
| ... | ... |
Codebasis-Verbesserungen
Die aktuelle Codebasis bietet die folgenden Funktionen:
1. Textbedingte Generierung: Generieren Sie 3D-Szenen basierend auf Textbeschreibungen.
2. Bildbedingte Generierung: Generieren Sie 3D-Szenen basierend auf Eingabebildern.
Zukünftige Updates:
Unterstützung für zusätzliche Aufgaben und Renderer wird in zukünftigen Updates hinzugefügt.
Beiträge
Wenn Sie Funktionswünsche oder Vorschläge haben oder Ihre Ergebnisse teilen möchten, können Sie gerne eine Pull-Anfrage einreichen oder uns per E-Mail kontaktieren.
Zitat
`
@article{zhang2024sceneLanguage,
title={Die Szenensprache: Szenen mit Programmen, Wörtern und Einbettungen darstellen},
Autor={Yunzhi Zhang und Zizhang Li und Matt Zhou und Shangzhe Wu und Jiajun Wu},
Jahr={2024},
journal={arXiv preprint arXiv:2410.16770},
}
`
Lizenz: Apache-2.0