
Als wir alle begannen, unsere Arbeits- und Kommunikationsweise zu ändern, mussten die meisten von uns Online-Kommunikationstools wie Zoom, Skype, Microsoft Teams, Jitsi oder BigBlueButton verwenden. Die Teilnahme an einer Videokonferenz im Büro ist nicht dasselbe wie die Teilnahme an einer Videokonferenz von zu Hause aus, da wir vielleicht private Gegenstände haben, die wir anderen nicht zeigen möchten. Dabei kann es sich um Familienfotos oder persönliche Gegenstände handeln, oder auch nur darum, dass der Raum ein wenig unordentlich ist und wir nicht möchten, dass man das sieht.
Einführung von virtuellen Hintergründen
Die meisten der oben genannten Videokonferenzplattformen bieten einen „virtuellen Hintergrund“ oder eine „Blur“-Funktion. Diese Funktion ermöglicht es den Nutzern, ihren Hintergrund zu ändern, ohne dass ein Greenscreen erforderlich ist. Um dies zu erreichen, werden Algorithmen des maschinellen Lernens eingesetzt, um Menschen vom Hintergrund zu unterscheiden.
Bei LionGate verwenden wir BigBlueButton für unsere Online-Lehrplattform „vicole“, und leider fehlte BigBlueButton die Funktion des virtuellen Hintergrunds, die sowohl von unseren Kunden als auch von anderen Nutzern stark nachgefragt wurde. Daher haben wir angeboten, das Projekt zu unterstützen und die Funktion selbst zu entwickeln. Außerdem trugen wir zu dem Projekt bei, indem wir einen Open-Source-Beitrag leisteten, den jeder nutzen kann, sobald er/sie dem Projekt hinzugefügt wurde.
Die ersten Schritte und das Verständnis der Technologie
Nachdem wir uns bereit erklärt hatten, die Funktion für BigBlueButton bereitzustellen, mussten wir herausfinden, welche Schritte notwendig waren. Als Open-Source- und webbasierte Plattform haben wir uns zunächst Jitsi und deren Implementierung der Funktion angeschaut. Der Quellcode zeigte, dass sie von einem anderen Open-Source-Projekt eines Github-Benutzers namens „Volcomix“ inspiriert wurden. Dies war entscheidend für unser Verständnis, da Volcomix die Schritte gut dokumentiert und mit einer funktionierenden Demo unterstützt hatte.
Wir folgten den Schritten von Volcomix und Jitsi und verwendeten das Google Meet Segmentation Model, das Anfang Januar unter der Apache-Lizenz Version 2 veröffentlicht wurde. Das Modell wurde nur als TFLite-Datei bereitgestellt, sodass wir es in Web Assembly einbinden mussten. Danach wurde die Funktion an die Verfahren von BigBlueButton angepasst.
Anpassen des Features an BigBlueButton
Der Web-Client von BigBlueButton verwendet React und Meteor. Es musste ein Meteor-Web-Handler erstellt werden, um die Web-Assembly-Dateien zu laden, wenn sie vom Benutzer angefordert werden. Nach dem Laden des Modells wird der Videostream des Benutzers entweder durch ein vom Benutzer gewähltes Hintergrundbild oder durch einen Unschärfeeffekt ersetzt und an ein HTML-Canvas-Element übergeben. Das MediaStream-Objekt wird dann verwendet, um den Stream in der WebRTC RTCPeerConnection zu ersetzen, sodass alle Teilnehmer den virtuellen Hintergrund sehen können, ohne dass es zu Leistungseinbußen auf den Endgeräten kommt.
Schlussbemerkungen
Obwohl die Funktion bereits funktioniert, wird sie weiter verfeinert. Ein großartiger Aspekt von Open-Source-Projekten ist, dass jeder Probleme identifizieren und zum Projekt beitragen kann. Dies war für uns eine tolle Gelegenheit, einem Projekt etwas zurückzugeben, das wir selbst gerne nutzen. Eine Live-Demonstration finden Sie auf www.vicole.de.