In dieser Episode der grundlegenden Drehteller-Photogrammetrie-Reihe sehen wir uns an, wie man in Blender den grünen Hintergrund und Color Spill aus Fotografien entfernt.



Videotranskript

Hallo zusammen! In dieser Episode der grundlegenden Drehteller-Photogrammetrie-Reihe sehen wir uns an, wie man in Blender den grünen Hintergrund und Color Spill aus Fotografien entfernt.

Die am Ende dieses Prozesses erzeugten Bilder sind PNG-Dateien mit Transparenz, die von Meshroom verwendet werden können, sodass sich die Software während der Feature-Extraction-Phase gewissermaßen nur auf das eigentliche Objekt konzentriert.

Dieses Tutorial wurde mit Blender 4.3 aufgezeichnet, aber die verwendeten Compositing-Nodes sind bereits seit mehreren früheren Versionen der Software verfügbar und werden voraussichtlich auch in zukünftigen Versionen weiterhin vorhanden sein.

Die gesamte Arbeit findet im Compositor Editor statt, daher wird nicht einmal eine virtuelle Kamera innerhalb der Szene benötigt. Tatsächlich kann ich auch den Render Layers Node löschen, der standardmäßig in neuen Compositing-Setups vorhanden ist.

Zuerst muss ich das Ausgabeformat des Projekts mit den Auflösungswerten der Fotografien festlegen, die in meinem Fall 4000 und 3000 für die X- beziehungsweise Y-Auflösung betragen.

Im Output-Tab des Properties Editor muss ich außerdem das Ausgabeformat auf PNG mit RGBA, also mit Transparenz, sowie einen niedrigen Kompressionswert einstellen.

Innerhalb dieses Tabs muss ich auch den Speicherpfad festlegen, unter dem die verarbeiteten Dateien gespeichert werden.

Als letzten vorbereitenden Schritt, bevor ich die Bilder in das Projekt lade, muss ich einen End-Frame-Wert festlegen, der der Anzahl der zu verarbeitenden Bilder entspricht. In meinem Fall sind das 146.

Was die Bilder betrifft, erkennt Blender die Bildsequenz im Ordner automatisch, sofern die Bilder fortlaufend nummeriert sind.

In einer Windows-Umgebung gibt es eine sehr einfache Möglichkeit, diese Nummerierung zu erzeugen. Markieren Sie alle Dateien im Ordner mit den Originalfotografien. Klicken Sie mit der rechten Maustaste auf die erste Datei und wählen Sie die Option Umbenennen. Geben Sie anschließend einen Namen ein und drücken Sie die Eingabetaste. Wie Sie sehen, fügt Windows automatisch einen fortlaufenden numerischen Suffix zu allen Dateinamen im Ordner hinzu.

Jetzt kann ich die erste Datei in den Compositor Editor von Blender ziehen und den Node-Typ auf Image Sequence ändern.

Innerhalb des Nodes trage ich im Feld Frames die Anzahl der zu verarbeitenden Dateien ein. Dieser Wert sollte mit dem zuvor im End-Feld der Timeline eingetragenen Wert übereinstimmen.

Ich verbinde den Image-Ausgang des Bild-Nodes mit dem Viewer Node, damit ich das Bild im Backdrop des Compositor Editor sehen kann.

Beim Fotografieren habe ich mein Smartphone gelegentlich gedreht, weshalb einige Bilder auf dem Kopf stehen. Dieses Problem lässt sich leicht mit einem Rotate Node beheben, dessen Degrees-Wert animiert werden kann, sodass der Node nur dann verwendet wird, wenn er tatsächlich benötigt wird. Für Meshroom stellen diese Drehungen jedoch kein Problem dar, daher ist es nicht zwingend notwendig, sie bereits in diesem Schritt zu korrigieren.

Ich füge dem Setup einen Color Key Node und einen Color Spill Node hinzu.

Die Backdrop-Vorschau ist hilfreich, um einen Grünton aus dem Bild für den Color Key Node auszuwählen. Ich klicke auf die Standardfarbe im Feld Key Color des Color Key Node, aktiviere anschließend die Pipette und wähle einen grünen Punkt im Foto aus.

Nun verbinde ich den Image-Ausgang des Bild-Nodes mit dem Image-Eingang des Color Key Node.

Der Matte-Ausgang des Color Key Node sollte mit dem Alpha-Eingang sowohl des Viewer Node als auch des Composite Node verbunden werden, da er die Transparenzmaske der Bilder repräsentiert.

Der Image-Ausgang des Color Key Node wird hingegen mit einem Color Spill Node verbunden, der dazu dient, grüne Reflexionen auf Objekten zu entfernen, die vor einem grünen Hintergrund fotografiert wurden. Der Ausgang des Color Spill Node wird anschließend mit den Image-Eingängen des Composite Node und des Viewer Node verbunden.

In unserem Fall wird der Despill Channel des Nodes natürlich auf Grün gesetzt. Der Algorithmus sollte je nach Qualität des Ergebnisses zwischen Simple und Average gewählt werden, wobei das Resultat im Backdrop überprüft werden kann.

An diesem Punkt kann ich beginnen, die Toleranzwerte für die Kanäle Hue, Saturation und Value im Color Key Node anzupassen. Diese Toleranzen bestimmen, wie stark die Farbe eines Pixels in diesen drei Informationskanälen von der im Feld Key Color festgelegten Farbe abweichen darf.

Das Interessante an dieser Arbeitsweise in Blender ist, dass die Node-Werte animiert werden können. Das bedeutet, dass ich Werte festlegen kann, die für das erste Bild gut funktionieren, sie so lange beibehalte, wie sie wirksam sind, und sie anschließend anpasse, wenn sie für ein bestimmtes Bild nicht mehr geeignet sind.

Seien Sie dabei jedoch vorsichtig: Wenn Sie feststellen, dass die eingestellten Werte für ein anderes Bild nicht mehr gut funktionieren, müssen Sie zunächst zum vorherigen Frame zurückkehren und dort Keyframes setzen, um die bis zu diesem Zeitpunkt funktionierenden Werte festzuhalten. Danach können Sie zum nächsten Frame wechseln, die Werte an die neuen Anforderungen anpassen und die neuen Werte mit weiteren Keyframes speichern. Dieser Schritt, vor der Änderung einen Keyframe im vorherigen Frame zu setzen, ist notwendig, da Blender sonst Interpolationen zwischen den Frames erzeugt, was sich negativ auf die Masken auswirken kann.

Generell empfiehlt es sich, für den Hue-Parameter niedrige Werte zu verwenden, da sonst die Gefahr besteht, andere Farben auszuschließen, die eigentlich erhalten bleiben sollten. Es ist besser, eine Grundfarbe mit geringer Hue-Toleranz beizubehalten und stattdessen die beiden anderen Parameter anzupassen. In den meisten Fällen führt die ungleichmäßige Beleuchtung des Greenscreens zu Helligkeitsschwankungen, verändert jedoch den Farbton kaum.

Beim Anpassen der Werte sollten Sie das eigentliche Objekt stets im Auge behalten. Obwohl wir alle unerwünschten Bereiche entfernen möchten, ist dies nicht immer vollständig möglich, und es kann passieren, dass versehentlich Teile des benötigten Objekts entfernt werden.

Um komplexere Bereiche zu beseitigen, können Sie einen oder mehrere Box Mask Nodes verwenden und diese in Reihe an den Matte-Ausgang des Color Key Node anschließen. Es gibt im Compositor zwar weitere Maskierungswerkzeuge, aber ein oder zwei Box Mask Nodes sind für unsere Zwecke mehr als ausreichend.

Diese Nodes erzeugen rechteckige Masken, die mithilfe von Parametern für Position, Größe und Rotation auf der Eingabemaske platziert und gedreht werden können. Die Masken verfügen über verschiedene Anwendungsmodi. Für unsere Zwecke verwende ich den Modus Subtract. Beachten Sie jedoch, dass die betroffenen Bereiche dadurch schwarz statt transparent werden.

Um dieses Problem zu lösen, fügen Sie einfach einen Set Alpha Node vor den Image-Eingängen des Composite Node und des Viewer Node ein. Zunächst trenne ich die Alpha-Verbindungen von Composite und Viewer. Anschließend verbinde ich den Image-Ausgang des Color Spill Node mit dem Image-Eingang des neuen Set Alpha Node. Schließlich verbinde ich den Alpha-Eingang des Set Alpha Node mit dem Ausgang des letzten Box Mask Node im Setup.

Jetzt springe ich direkt zum Endergebnis des Compositing-Setups, um zu zeigen, dass es im Wesentlichen aus einer Kombination von Keyframes besteht, sowohl für die Toleranzwerte des Color Key Node als auch für die Positions- und Größenwerte der verwendeten Masken.

Auch die Positions- und Größenparameter der Masken können animiert werden. Dadurch lassen sich die Masken nur dann in den Arbeitsbereich einblenden, wenn sie tatsächlich benötigt werden, wodurch vermieden wird, dass sie in anderen Frames das Objekt von Interesse verdecken.

Dieselbe Warnung, die für das Setzen von Keyframes bei den Werten des Color Key Node gilt, trifft auch hier zu: Es ist entscheidend, vor Änderungen an einem Frame Keyframes zu setzen, um fehlerhafte Interpolationen der Maskenpositionen über die gesamte Animation hinweg zu vermeiden.

Dieser Prozess des Analysierens und Anpassens der Color-Key-Werte sowie der Masken kann etwas Zeit in Anspruch nehmen, spart jedoch später deutlich mehr Zeit, wenn Meshroom diese bereinigten Bilder statt der Originalaufnahmen verarbeitet.

Es ist allerdings kein großes Problem, wenn sich nicht jedes einzelne unerwünschte Element entfernen lässt, da Meshroom kleinere Artefakte ohnehin als Rauschen interpretiert und automatisch ignoriert. Je mehr wir in dieser Phase optimieren können, desto besser, aber man sollte die Sache nicht unnötig kompliziert machen.

Nachdem ich die Qualität des Color Keying und der Masken über mehrere Frames hinweg überprüft habe, kann ich schließlich mit dem Rendern der Sequenz beginnen und die Bilder erzeugen, die anschließend in Meshroom importiert werden. Dieser Renderprozess dauert nicht lange, da lediglich externe Bilder verarbeitet werden und keine vollständige 3D-Szene gerendert wird. Die erzeugten Bilder sind dieselben, die auch im kostenlosen Paket enthalten sind, sodass Sie die Schritte aus den kommenden Tutorials selbst nachvollziehen können. Das war's für diese Episode! Bis zum nächsten Mal!

Tutorials durchsuchen

Geben Sie eine Suchphrase oder mehrere durch Kommas getrennte Schlüsselwörter ein.

3D-Modelle, Tutorials und Ressourcen zur Computergrafik von Francesco Milanese. Nutzungslizenzen für die 3D-Modelle können über die auf den jeweiligen Seiten verlinkten externen Shops zu den jeweils geltenden Lizenzbedingungen erworben werden. Francesco Milanese — Italienische Umsatzsteuernummer (Partita IVA): 06321250877. Kontakt: info@francescomilanese.com


ERWEITERTE DATENSCHUTZ- UND COOKIE-VERWENDUNGSRICHTLINIEN