UP2You verwandelt verstreute Fotos in ein 3D-Menschmodell ohne Fine-Tuning
Wenn Sie schon einmal versucht haben, einen 3D-Avatar aus Fotos zu erstellen, kennen Sie wahrscheinlich die Hauptanforderungen der meisten Pipelines: perfekte Beleuchtung, statische Pose und Aufnahmen aus allen Richtungen in einer Sitzung. Ein Schritt nach links, unterschiedliche Beleuchtung oder ein unscharfer Hintergrund – und neuronale Netze wie NeRF oder Gaussian Splatting erzeugen eine Menge von Artefakten.
Ich bin kürzlich auf ein frisches UP2You-Repository gestoßen, das von den Autoren für die ICLR 2026-Konferenz vorbereitet wurde. Das Projekt löst dieses unangenehme Problem. Es nimmt eine gewöhnliche Sammlung von Fotos aus dem Smartphone-Speicher, bei der eine Person an verschiedenen Tagen, unter unterschiedlicher Beleuchtung und aus verschiedenen Winkeln aufgenommen wurde, und rekonstruiert schnell ein fertiges 3D-Mesh. Ohne zeitaufwändiges Fine-Tuning für eine bestimmte Person.
Was ist die Hauptschwierigkeit bei solchen Rekonstruktionen
Wenn wir Echtwelt-Bilder (uneingeschränkte Fotos) an Algorithmen übergeben, bricht die Mathematik klassischer 3D-Rekonstruktionsmethoden zusammen. In einer Aufnahme scheint die Sonne von links, in einer anderen eine Glühbirne von oben. Im dritten Bild ist der Hintergrund durch Bokeh unscharf und die Pose hat sich völlig verändert.
Die meisten bestehenden Lösungen erfordern ein Fine-Tuning der Gewichte für eine bestimmte Person (Per-Scene-Optimierung). Dies dauert von zehn Minuten bis zu mehreren Stunden auf einer leistungsfähigen GPU.
Die Autoren von UP2You konzentrierten sich auf die Tuning-freie Kategorie. Das Modell wird im Voraus auf großen Datensätzen von 3D-Scans trainiert und lernt, Körpergeometrie und Texturen zu verallgemeinern, wobei Umgebungsrauschen und Beleuchtungsinkonsistenzen herausgefiltert werden. Sie geben einen Ordner mit heterogenen Fotos als Eingabe und erhalten innerhalb weniger Minuten ein Mesh als Ausgabe.
Wie der Projekt-Stack organisiert ist
Im Inneren basiert die Architektur auf einer Kombination aus generativen Diffusionsmodellen und 3D-Geometriebibliotheken.
- Humane Segmentierung. Das Projekt verwendet BiRefNet als Standardwerkzeug. Dies ist ein separates Modell für hochpräzises Ausschneiden einer menschlichen Silhouette aus einem komplexen Hintergrund.
- Generative Grundlage. Das Projekt basiert auf Stable Diffusion 2.1-Basisgewichten in Kombination mit Multi-View-Adaptern, wobei Ideen aus den Projekten MV-Adapter, PuzzleAvatar und PSHuman übernommen werden. Diffusion hilft, die in den Fotos unsichtbaren Bereiche zu vervollständigen und das Gesamtbild der Figur anzupassen.
- Geometrie-Engine. Für die Arbeit mit Meshes und 3D-Darstellungen verwendeten die Autoren Kaolin von NVIDIA und PyTorch3D.
Das Repository enthält sofort ein Skript inference_low_gpu.py, sodass Sie die Generierung sogar auf Consumer-GPUs mit relativ wenig VRAM ausführen können.
Installation und Ausführung
Die Pipeline ist streng bei Bibliotheksversionen, daher ist es am besten, die Installation strikt nach den Anweisungen über Conda durchzuführen.
Klonen Sie zunächst das Projekt und erstellen Sie eine virtuelle Umgebung mit Python 3.10:
git clone https://github.com/zcai0612/UP2You.git
cd UP2You
conda create -n up2you python=3.10 -y
conda activate up2you
Installieren Sie dann PyTorch 2.4.1 mit CUDA 11.8-Unterstützung und dem Kaolin-Modul:
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu118
pip install kaolin==0.17.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.4.1_cu118.html
pip install -r requirements.txt
Für den Build von PyTorch3D empfehlen die Autoren, ein vorkompiliertes Archiv zu verwenden:
conda install -y libffi==3.3
wget https://anaconda.org/pytorch3d/pytorch3d/0.7.8/download/linux-64/pytorch3d-0.7.8-py310_cu118_pyt241.tar.bz2
conda install pytorch3d-0.7.8-py310_cu118_pyt241.tar.bz2
Modellgewichte werden über die CLI von Hugging Face heruntergeladen:
hf download Co2y/UP2You --local-dir ./src
mv ./src/human_models ./
mv ./src/pretrained_models ./
rm -rf ./src
Wenn die Umgebung bereit ist, legen Sie einfach die Fotos in den Ordner examples und rufen Sie die Inferenz auf:
python inference_low_gpu.py \
--base_model_path Manojb/stable-diffusion-2-1-base \
--segment_model_name ZhengPeng7/BiRefNet \
--data_dir examples \
--output_dir outputs
Oder führen Sie einfach das Bash-Skript bash run.sh aus.
Worauf Sie achten sollten
Das Projekt ist noch frisch, es hat etwa 380 Sterne auf GitHub und eine benutzerdefinierte Lizenz. Die Dokumentation im Repository ist knapp, ohne eine detaillierte Beschreibung des Eingabedatenformats, aber der Inferenzcode ist leicht zu lesen.
Wenn Sie experimentieren möchten, denken Sie an die Segmentierungsqualität. Wenn BiRefNet den Hintergrund schlecht vom Vordergrund trennt (z. B. verschmilzt die Person mit der Wand oder es befinden sich andere Personen auf dem Foto), wirkt sich dies direkt auf das endgültige Mesh aus. Es ist besser, Fotos auszuwählen, bei denen die Person ganzkörperig oder zumindest von der Hüfte aufwärts sichtbar ist.
Für wen ist es nützlich
Das Projekt ist einen Blick wert für Spieleentwickler und 3D-Künstler, die ein schnelles Entwurfsmesh einer echten Person für дальнейшую Rigging und Sculpting benötigen. Das Repository wird auch für ML-Ingenieure interessant sein, die sich mit 3D-Avatar-Generierung und Multi-View-Diffusionspipelines beschäftigen. Der Code bietet noch keinen vollständigen Ersatz für Studio-Photogrammetrie, aber als Methode, um in wenigen Minuten ein erkennbares 3D-Bild aus gewöhnlichen Fotos zusammenzustellen, funktioniert es hervorragend.
Ähnliche Projekte