Keying-Verfahren

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Keying-Verfahren dienen zur Trennung und Maskierung unterschiedlicher Bildbereiche. Das klassische Verfahren ist das Einsetzen einer Person in ein Hintergrundvideo mit Hilfe des Blue-Box Verfahrens. Mit Hilfe von Bildverarbeitungsfunktionen wie der Differenzbildoperation, Binarisierung und Filterung sowie der Maskierung können ähnliche Funktionalitäten erzielt werden, ohne das bei der Aufnahme ein spezieller Hintergrund vorhanden sein muss.


Keying-Verfahren

In diesem Artikel wird ein Verfahren vorgestellt, das ähnlich wie das Blue-Box-Verfahren eine Person vom Hintergrund unterscheiden und somit trennen kann, jedoch ohne einen einheitlichen blauen Hintergund zu verwenden. Vielmehr soll die Aufnahmesituation nur wenigen Beschränkungen unterliegen. Folgend soll das ausgekeyte Bild in eine andere Aufnahme integriert werden, wobei hier die logischen Zusammenhänge eine untergeordnete Rolle spielen sollen.

Die Realisierung erfolgte in EyesWeb (Version 3.3.0).

Programmablauf

Die Abbildung zeigt den EyesWeb-Patch (Programmablauf) keying-patch_dv.eyw, der dieses Verfahren realisieren kann.

Keying1.jpg

Als Eingabemedium wurde eine Mini-DV-Kamera verwendet. Natürlich lässt sich auch ein auf der Festplatte gespeicherter Film im avi- oder mpeg-Format als Quelle verwenden (siehe EyesWeb-Patch (Programmablauf) keying-patch_file.eyw).

Keying2.jpg

Das DV-Signal wird als erstes in ein schwarz/weiß-Video umgewandelt(1). Experimente mit verschiedenen Aufnahmesituationen haben gezeigt, dass die nachfolgende Differenzbildoperation so weniger störanfällig war.

Das zentrale Element in diesem Teil des Patches ist die Differenzbildoperation, zu finden in Eyesweb unter "Imaging>Operations>BackgroundSubtraktion" (2). Als erstes wird das Videosignal dupliziert. Ein Signal mündet direkt in den Differenzblock, das andere durchläuft vor Einmündung noch einen weiteren Block. Hier wird durch Betätigen des Buttons der aktuelle Frame des Videos abgespeichert und an den Differenzblock übergeben. Der Diffenrenzblock zieht nun vom Videobild dieses Frame ab und zeigt somit nur die Änderungen im Videobild.


Wichtige Grundanforderungen

Personen oder Objekte, die freigestellt werden sollen, dürfen nicht im Hintergrundbild enthalten sein. Diese Regel ist natürlich abhängig vom definierten Ziel, denn die Nichtbeachtung führt durchaus zu interessanten Bildeffekten.

Eine weiteres Kriterium für eine gelungene Freistellung einer Person ist die Beeinflussung der Umgebung durch deren Bewegungen. Durchläuft die Person beispielsweise einen Lichtkegel, wirft sie einen Schatten auf andere Objekte, die als Änderung erkannt werden und somit auch im vom Differenzblock generiertem Videosignal enthalten sind. Die zweite Grundanforderung sagt somit aus, dass freizustellende Personen oder Objekte durch ihre Bewegungen ihre Umgebung nicht bzw. nur unwesentlich beeinflussen und verändern dürfen.


Speicherung des Hintergrunds

Um die Speicherung des Hintergrunds zu starten, muss der Button "Hintergrund festlegen" gedrückt werden. Dies kann auch umgangen werden, wenn im Eventmodus der Schaltfläche auf "PatchStart" umgestellt wird. Dies hat jedoch den Nachteil, dass der erste Frame nach Start des Patches sofort als Hintergrundbild gespeichert wird. Bei Eingabemedien mit Latenzen empfiehlt sich daher der gewählte Eventmodus "MouseClick".

Im Differenzblock kann der "Operation type" eingestellt werden. Dieser Typ gibt an, welche Operation mit dem Hintergrundbild und dem Videobild durchgeführt werden soll. Am deutlichsten erkennbar wurden Bildänderungen mit der Operation "Substract absolute". Das generierte Videobild stellt dann genau genommen die Bildänderung nicht in Form der Videoinformation dar, sondern in Form der absolut subtraktiven Mischung von Hintergrundbild und Video. Hieraus lässt sich die letzte Grundanforderung bestimmen: freizustellende Personen oder Objekte lassen sich umso besser erkennen, je stärker die Grauwertänderung zum Hintergrund ist.

Daten

Als Beispiel füer ein Video, das als Hintergund verwendet werden kann, ist die Datei hintergrund.mpg im internen Bereich abgelegt. Die Datei vordergrund.mpg kann beim EyesWeb-Patch keying-patch_file.eyw als Input verwendet werden.