Allgemeine Einführung
GenXD ist ein Open-Source-Projekt, das von der National University of Singapore (NUS) und dem Microsoft-Team entwickelt wurde. Es konzentriert sich auf die Generierung beliebiger 3D- und 4D-Szenen und löst die Herausforderungen der 3D- und 4D-Generierung in der realen Welt, die auf unzureichende Daten und komplexes Modelldesign zurückzuführen sind. GenXD stellt den ersten quelloffenen 4D-Datensatz, CamVid-30K, zur Verfügung, der Kamerapositions- und Bewegungsinformationen aus mehr als 30.000 Videos enthält. Die Benutzer können damit Videos oder konsistente 3D-Ansichten erzeugen, die mit der Kamerabewegung übereinstimmen. Das Projekt wurde vom ICLR 2025 im Januar 2025 angenommen und wird auf GitHub von Forschern und Entwicklern aufmerksam verfolgt.
Funktionsliste
- Generieren Sie beliebige 3D-Szenen und unterstützen Sie die konsistente Ausgabe von 3D-Ansichten aus verschiedenen Blickwinkeln.
- Erzeugen Sie 4D-Bewegungsszenen, um Videos zu erstellen, die sich im Laufe der Zeit verändern.
- Zerlegen Sie Kamera- und Objektbewegungen, um einen natürlichen Fluss der generierten Inhalte zu gewährleisten.
- Der CamVid-30K-Datensatz ist zur Unterstützung dynamischer 3D- und 4D-Missionsstudien verfügbar.
- Unterstützt mehrere bedingte Eingaben (z. B. Bilder oder eine kleine Anzahl von Ansichten) zur flexiblen Anpassung der generierten Ergebnisse.
- Konvertieren Sie 3D-Ansichten in bearbeitbare digitale Assets.
- Integriertes Multiview-Zeitmodul zur Optimierung der 3D- und 4D-Datenfusion.
Hilfe verwenden
GenXD ist ein Open-Source-Framework für die Forschung. Um es zu verwenden, müssen die Benutzer die Umgebung lokal erstellen. Im Folgenden finden Sie eine ausführliche Installations- und Betriebsanleitung, die den Benutzern einen schnellen Einstieg ermöglicht.
Einbauverfahren
GenXD erfordert die Unterstützung einer Programmierumgebung und ist für Benutzer mit einigen technischen Grundlagen geeignet. Die Installationsschritte sind wie folgt:
- Vorbereiten der Basisumgebung
- Stellen Sie sicher, dass Python 3.10 oder höher auf Ihrem Computer installiert ist.
- Installieren Sie Git, um den Code herunterzuladen. Führen Sie es im Terminal aus:
git clone https://github.com/HeliosZhao/GenXD.git
- Rufen Sie den Projektkatalog auf:
cd GenXD
- Installation von Kernabhängigkeiten
- Installieren Sie PyTorch (empfohlene Version 2.1.2 mit CUDA-Unterstützung). Starten Sie es:
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
- Installieren Sie weitere Abhängigkeiten (z.B. diffusers 0.30.3). Ausführen:
pip install -r requirements.txt
- für den Fall, dass
requirements.txt
Nicht vorhanden, siehe die offiziellen Anweisungen zur Installation von NumPy, OpenCV und anderen Bibliotheken.
- Installieren Sie PyTorch (empfohlene Version 2.1.2 mit CUDA-Unterstützung). Starten Sie es:
- Herunterladen des vortrainierten Modells
- Laden Sie das Modell von Hugging Face herunter:
pip install -U "huggingface_hub[cli]" huggingface-cli download Yuyang-z/genxd --local-dir ./genxd-model
- Legen Sie die Modelldateien in das Projektverzeichnis unter dem
genxd-model
Mappe.
- Laden Sie das Modell von Hugging Face herunter:
- Datensatz herunterladen
- Der CamVid-30K-Datensatz steht unter Hugging Face zum Download bereit:
- Der VIPSeg-Teilsatz und der OpenVid-Teilsatz sind unter https://huggingface.co/datasets/Yuyang-z/CamVid-30K verfügbar.
- WebVid-10M Subset ist aufgrund von Beschränkungen nicht verfügbar, Sie müssen es sich selbst besorgen.
- Herunterladen und entpacken nach
data/camvid-30k
Mappe.
- Der CamVid-30K-Datensatz steht unter Hugging Face zum Download bereit:
- Überprüfung der Umgebung
- Stellen Sie sicher, dass Sie einen NVIDIA-Grafikprozessor verwenden:
python -c "import torch; print(torch.cuda.is_available())"
Ausfuhren
True
Zeigt eine normale Umgebung an.
- Stellen Sie sicher, dass Sie einen NVIDIA-Grafikprozessor verwenden:
Verwendung der Hauptfunktionen
GenXD unterstützt eine Vielzahl von Generierungsaufgaben, und im Folgenden wird beschrieben, wie man sie durchführt.
1. die Bilder anpassen, um 3D-Szenen zu erzeugen
- Vorbereiten auf den Eintritt: Platzieren Sie ein Bild (im PNG- oder JPG-Format) im Feld
example-images
Mappe. - Einstellen des Kameramodus: Unterstützung
forward
(Vorwärts) undorbit
(Surround) zwei Modi. - Befehl ausführen::
DATA_ROOT="example-images"
OUTPUT_DIR="outputs/example-images"
accelerate launch --main_process_port 1223 inference.py
diffusion.pretrain_unet="./genxd-model"
diffusion.output_dir="$OUTPUT_DIR"
+evaluator.data_name="static_cam_single"
+evaluator.data_root="$DATA_ROOT"
+evaluator.camera_info.mode="forward"
+evaluator.camera_info.elevation=0.
+evaluator.camera_info.azimuth_range=[-30,30]
+evaluator.focal=1.0938
+evaluator.camera_info.radius=2.0
- Ergebnisse AnsichtDie erzeugte 3D-Multiview-Ansicht wird in der Datei
outputs/example-images
Die erste Möglichkeit ist, die Datei mit einem Programm wie Blender zu öffnen.
2. beispiellose 3D-Szenenerzeugung
- Daten vorbereitenLaden Sie den ReconFusion-Datensatz herunter (https://huggingface.co/datasets/Yuyang-z/reconfusion-torch) und extrahieren Sie ihn in das Verzeichnis
data/reconfusion-torch/re10k
. - Schritt 1: Erzeugen von Kameraspuren::
python tools/pose_traj_generate.py -d data/reconfusion-torch/re10k -o outputs/pose_dataset --save_data_pose -sx 0.2 0.4 -0.2 -0.4 -sz 0.2 0.4 -0.2 -0.4 -n 18
- Schritt 2: Ansichten generieren::
accelerate launch --main_process_port 1224 inference.py
diffusion.pretrain_unet="./genxd-model"
diffusion.output_dir="outputs/re10k-group"
+evaluator.data_name="reconfgroup"
+evaluator.data_root="data/reconfusion-torch/re10k"
+evaluator.pose_dir="outputs/pose_dataset/re10k"
+evaluator.num_context_views=3
+evaluator.n_views=3
+evaluator.save_target_only=True
+evaluator.pad_to_square=True
- Ergebnisse Ansicht: Die erzeugte 3D-Ansicht wird in der
outputs/re10k-group
.
3. die Erzeugung von dynamischen 4D-Szenen
- Daten vorbereitenCamVid-30K: Verwenden Sie das Video im CamVid-30K-Datensatz und fügen Sie es in den
data/camvid-30k
. - Befehl ausführenSie müssen die Parameter an die jeweilige Aufgabe anpassen. Beispiele für Befehle finden Sie in der GitHub-Aktualisierung.
- Ergebnisse AnsichtDas erzeugte Video wird im angegebenen Ausgabeverzeichnis gespeichert.
Featured Function Bedienung
Zerlegung von Kamera- und Objektbewegungen
- GenXD verwendet ein Multiview-Zeitmodul, um Kamera- und Objektbewegung zu trennen.
- laufendes Beispiel::
python motion_decompose.py --input data/camvid-30k/sample_video --output outputs/motion_data
- verwenden.Die erzeugten Bewegungsdaten können zur Anpassung der 4D-Szene verwendet werden.
Verwendung des CamVid-30K-Datensatzes
- DatenstrukturEntpackt enthält es Bilder und COLMAP-Dateien (z.B.
cameras.bin
). - Daten laden: Einsetzen
data/camvid-30k
führen Sie das Testskript aus:
python test_dataset.py --dataset data/camvid-30k
caveat
- Der GPU-Speicher muss 16 GB oder mehr betragen, und die Erstellung von 4D-Aufgaben dauert sehr lange.
- Prüfen Sie die letzte Code-Aktualisierung für die offizielle Version des vortrainierten Modells vom 26. März 2025.
- Bei Fragen wenden Sie sich bitte an .
Anwendungsszenario
- Forschungsexperiment
- Die Forscher nutzten GenXD, um 3D- und 4D-Generierungsalgorithmen zu testen und die neuen Modelle zu validieren.
- Erstellung virtueller Inhalte
- Schöpfer erzeugen dynamische Szenen zur Verwendung in Animations- oder Virtual-Reality-Projekten.
- Bildung und Ausbildung
- Die Studenten lernen Computer Vision und generative Techniken anhand des CamVid-30K-Datensatzes.
QA
- Ist GenXD kostenlos?
- Ja, es ist ein Open-Source-Projekt unter der Apache-2.0-Lizenz.
- Brauche ich eine Internetverbindung, um es zu benutzen?
- Nicht erforderlich, lokal installiert und betriebsbereit.
- Sind die generierten Ergebnisse echt?
- Das Modell ist nicht völlig realistisch und dient nur zu Forschungszwecken.