Die Notwendigkeit

Während wir die allererste Version der nur online verfügbaren Microsoft Build vorbereiteten, haben wir eine Reihe von kurzen Videos erstellt: die Innovation Bites. Wie viele Marketingmitarbeiter bemühen wir uns in der heutigen Zeit um ein Gleichgewicht zwischen dem, was wir schaffen wollen, und dem, was die Beteiligten tatsächlich erreichen können, wenn sie von zuhause aus arbeiten.

Die Idee

Wir ließen uns von Hintergrundgestaltungs-Ansätzen von Adobe Research und der University of Washington (UW) inspirieren. Wir wollten diese Ideen mit unserem Azure Kinect Sensor entwickeln, damit jeder bei Aufnahmen von zuhause aus problemlos einen Green-Screen-Hintergrund verwenden kann.

Die Lösung

Wir haben eine einfaches Front-End entwickelt, mit der sich Sprecher gleichzeitig mit bis zu zwei Kinect Azure-Sensoren und dazu noch einer Folienpräsentation aufnehmen können. Zudem gibt es ein Back-End, das die Konzepte der UW und von Adobe Research aufgreift und die Tiefenschärfe des Azure Kinect Sensors ergänzt, um die Genauigkeit der Hintergrundgestaltung zu verbessern und das Hochladen von Dateien zu automatisieren.

Technische Details zu Virtual Stage

Dieses Projekt besteht aus zwei verschiedenen Komponenten:

1. Die Front-End-App

Der Moderator nimmt sich selbst mit der Anwendung auf. Er kann drei Videodateien in einem Take aufzeichnen: bis zu zwei Videos von Azure Kinect Sensoren und eine separate Datei für die Präsentationsfolien, mit Ton für eine einfache Nachbearbeitung.

Die Anwendung ermöglicht es dem Moderator, mehrere Aufnahmen zu prüfen und die besten auszuwählen, bevor sie an den Back-End-Prozess geschickt werden, um den virtuellen Green Screen zu erzeugen.

Außerdem haben wir in die Front-End-App einen einfachen Assistenten eingebaut, der es dem Benutzer ermöglicht, den Hintergrund separat zu speichern, sodass Vordergrund und Alpha-Wert für die Gestaltung des Hintergrunds eingestellt werden können. In einem Remote-Szenario erleichtert dies die Nachbearbeitung durch die Kollegen, um die bestmöglichen Ergebnisse zu erzielen.

2. Der Back-End-Prozess

Sobald der Benutzer die Videodateien zur Verfügung stellt, müssen wir den virtuellen Green Screen erstellen, damit wir die Bearbeitung mit unserer Software vornehmen können. Als Ergebnis erhalten wir das Video, das nur den Moderator zeigt (der Rest ist ein virtueller Green Screen).

Dieses Verfahren nutzt den Ansatz des Teams der University of Washington. Wir haben einige Verbesserungen hinzugefügt, sodass wir die Tiefeninformartionen des Azure Kinect Sensors nutzen können. Dadurch wird der Hintergrund präziser entfernt.

Eine der wesentlichen Herausforderungen unserer Implementierung bestand darin, dass der für das Training verwendete Datensatz (Adobe Composition-1k-Datensatz) nur Bilder des Oberkörpers enthielt und wir unsere Vortragenden möglichst vollständig erfassen wollten. Diese Einschränkung bedeutet nicht nur, dass die Beine aufgrund fehlender Trainingsdaten vom Modell nicht richtig verarbeitet werden, sondern auch, dass das die Ausgabe des neuronalen Netzes ein quadratischer Rahmen ist: ideal für Oberkörperaufnahmen, aber nicht für den ganzen Körper.

Um das Problem mit dem Begrenzungsrahmen zu lösen, haben wir das Bild in zwei Teile geteilt. Dies löst jedoch immer noch nicht den Mangel an Präzision bei der Beinerkennung. Hierbei hat uns Azure Kinect geholfen.

Der UW-Ansatz sieht zwei Schritte vor: erstens die Extraktion des Hintergrundes auf der Grundlage des kontrollierten Lernens und zweitens die unkontrollierte Verfeinerung des Outputs über ein GAN-Netzwerk. Der erste Schritt wird durch ein weitverzweigtes neuronales Netz durchgeführt. Es schätzt den Vordergrund und den Alphawert aus der Eingabe ab: bestehend aus dem Originalbild, dem Hintergrundfoto und einer automatisch berechneten Weichzeichnung der Person im Bild.

Durch die Kombination dieses Ansatzes mit dem Azure Kinect API können wir die automatisch berechnete Weichzeichnung der Person im Bild durch eine genauere Silhouette ersetzen, die mit unserem Sensor erfasst wird. Wir geben also in dieses erste Modell die Sensorinformationen (Infrarotsignale, Silhouetten und das Originalvideo ohne Bearbeitung) und den Hintergrund ohne den Moderator (vom Benutzer über die Front-End-App aufgenommen) ein. Damit erhalten wir einen präzisen Vordergrund und eine akkurate Alphaschätzung. Wir verfeinern das Ganze noch durch ein unabhängiges GAN, um die Ergebnisse weiter zu verbessern.

Wie können Sie dieses Projekt für Ihre eigenen Veranstaltungen/Videos nutzen?

  • Als Sprecher/Inhaltsersteller benötigen Sie einen oder zwei Azure Kinect Sensoren (und die entsprechende Hardware/Software, im Folgenden aufgelistet).
  • Auf GitHub finden Sie den Quellcode für die Front-End-App und die Serveranwendung sowie eine Anleitung für die Benutzer-App.
  • Wir werden dieses Projekt auch weiterhin aktualisieren und ARM-Vorlagen zur Verfügung zu stellen, mit denen das Back-End auf Azure bereitgestellt werden kann. Zudem überarbeiten wir die Hinweise und die Dokumentation.

Ressourcen:

Projekte im Umfeld von Virtual Stage

Weitere Projekte durchsuchen