Verwischen Sie den Hintergrund in Google Meet with ML im Browser

Videokonferenzen werden in der Arbeit und im Privatleben der Menschen immer wichtiger. Je besser der Prozess in Bezug auf Videoverarbeitung und Datenschutz organisiert ist, desto weniger wird die Aufmerksamkeit einer Person von der Konferenz selbst abgelenkt. Im Rahmen dieser Herausforderung haben wir kürzlich in Google Meet Filter zum Ersetzen von Unschärfe und Hintergrund entwickelt .... Sie verwenden maschinelles Lernen (ML), um Teilnehmer unabhängig von ihrer Umgebung besser zu unterscheiden. Während für andere Lösungen die Installation zusätzlicher Software erforderlich ist, basieren die Meet-Funktionen auf fortschrittlichen Web ML-Technologien, die mit MediaPipe erstellt wurden und direkt in Ihrem Browser ausgeführt werden. Es sind keine zusätzlichen Schritte erforderlich. Eines der Hauptziele bei der Entwicklung dieser Funktionen war die Bereitstellung einer Echtzeit-Browserleistung auf fast allen modernen Geräten. Dies wurde durch die Kombination effizienter ML-Modelle auf dem Gerät, WebGL- basiertes Rendering und ML- Rendering auf dem Webstack mit XNNPACK und TFLite erreicht .





Verwischen und ersetzen Sie den Hintergrund basierend auf MediaPipe



Ein Überblick über unsere Web ML-Lösung



Die neuen Funktionen von Meet basieren auf MediaPipe , der Open Source-Streaming-Plattform von Google. Andere ML-Lösungen basieren auf diesem Framework, z. B. die Verfolgung der Hand- , Iris- und Körperposition in Echtzeit.



Die Hauptanforderung jeder Mobiltechnologie besteht darin, eine hohe Leistung zu erzielen. Um dies zu tun, die MediaPipe Web - Pipeline nutzt den Low-Level - Binärformat Webassembly.Speziell für Webbrowser entwickelt, um komplexe Computeraufgaben zu beschleunigen. Zur Laufzeit übersetzt der Browser WebAssembly-Anweisungen in Maschinencode, der viel schneller als herkömmliches JavaScript ausgeführt wird. Darüber hinaus hat Chrome 84 kürzlich die SIMD- Unterstützung für WebAssembly implementiert , bei der jede Anweisung mehrere Datenpunkte verarbeitet, wodurch sich die Leistung mehr als verdoppelt.



Unsere Lösung verarbeitet zunächst jedes Videobild, wobei der Benutzer vom Hintergrund getrennt wird (weitere Informationen zum Segmentierungsmodell finden Sie unten), und verwendet die ML-Ausgabe, um eine Maske mit niedriger Auflösung zu berechnen. Bei Bedarf verfeinern wir die Maske weiter, um sie an den Bildrändern auszurichten. Die Maske wird dann verwendet, um die Videoausgabe durch zu rendernWebGL2 und der Hintergrund werden unscharf oder ersetzt.





WebML-Pipeline: Alle Rechenoperationen werden in C ++ / OpenGL implementiert und im Browser über WebAssembly ausgeführt.



In der aktuellen Version wird die Berechnung auf der CPU des Clients mit dem geringsten Stromverbrauch und der größten Geräteabdeckung durchgeführt. Um eine hohe Leistung in Echtzeit zu erzielen, haben wir mithilfe der XNNPACK-Bibliothek effiziente ML-Modelle entwickelt, um die Berechnung zu beschleunigen. Es ist die erste Videoausgabe-Engine, die speziell für die neue WebAssembly SIMD-Spezifikation entwickelt wurde. Durch die Beschleunigung von XNNPACK und SIMD arbeitet das Segmentierungsmodell in Echtzeit im Internet.



Mit der flexiblen Konfiguration von MediaPipe passt die Hintergrundunschärfe- / Ersetzungslösung ihre Verarbeitung an die Funktionen des Geräts an. Auf High-End-Geräten wird eine vollständige Pipeline ausgeführt, um die höchste visuelle Qualität zu gewährleisten, während auf Low-End-Geräten auf leichte ML-Rechenmodelle umgeschaltet wird, ohne dass die Maske angegeben wird.



Segmentierungsmodell



ML-Modelle auf dem Gerät sollten für eine schnelle Berechnung, einen geringen Stromverbrauch und eine geringe Größe ultraleicht sein. Bei Modellen im Browser wirkt sich die Eingabeauflösung stark auf die Anzahl der Gleitkommaoperationen (FLOPS) aus, die zur Verarbeitung jedes Frames erforderlich sind, und sollte daher ebenfalls klein sein. Bevor wir das Bild dem Modell zuführen, reduzieren wir es. Das Wiederherstellen der genauesten Maske aus einem Bild mit niedriger Auflösung erschwert das Modelldesign.



Das allgemeine Segmentierungsnetzwerk hat eine symmetrische Codierungs- / Decodierungsstruktur. Decoderschichten (hellgrün) sind symmetrisch zu Codiererschichten (hellblau). Insbesondere Kanal Aufmerksamkeit(kanalweise Aufmerksamkeit) mit globalem Durchschnittspooling wird sowohl in Encoder- als auch in Decoderblöcken verwendet, wodurch die CPU entlastet wird.





Die Architektur des Modells mit dem MobileNetV3- Encoder (hellblau) und dem symmetrischen Decoder (hellgrün)



Für den Encoder haben wir das MobileNetV3-kleine neuronale Netzwerk modifiziert , dessen Design automatisch durch die Suche nach der Netzwerkarchitektur entworfen wurde , um die beste Leistung auf schwacher Hardware zu erzielen. Um die Größe des Modells zu halbieren, haben wir es mit float16-Quantisierung nach TFLite exportiert, was zu einem geringen Genauigkeitsverlust führte, ohne jedoch die Qualität spürbar zu beeinträchtigen. Das resultierende Modell hat 193.000 Parameter und die Größe beträgt nur 400 KB.



Rendering-Effekte



Nach der Segmentierung verwenden wir OpenGL-Shader für Videoverarbeitungs- und Rendering-Effekte. Die Herausforderung besteht darin, ohne Artefakte effizient zu rendern. In der Verfeinerungsphase glättet der bilaterale Gelenkfilter die Maske mit niedriger Auflösung.





Unterdrückung von Rendering-Artefakten. Links: Ein gemeinsamer zweiseitiger Filter glättet die Segmentierungsmaske. Mitte: Separate Filter entfernen Geisterbilder. Rechts: Ändern Sie den Hintergrund durch eine Light-Wrapper-



Shader-Unschärfe, die den Effekt von Bokeh simuliert. Die Einstellleistung für Unschärfe in jedem Pixel ist proportional zu den Werten der Segmentierungsmaske, wie z. B. die Punktstreuungin der Optik. Pixel werden mit dem Punktradius gewichtet, damit Vordergrundpixel nicht in den Hintergrund übergehen. Wir haben gewichtete Unschärfe- Split-Filter anstelle der beliebten Gaußschen Pyramide implementiert, um Halo-Artefakte um Menschen herum zu entfernen. Aus Gründen der Leistung wird die Unschärfe bei niedriger Auflösung ausgeführt - und mit der ursprünglichen Auflösung mit dem Eingaberahmen gemischt.





Beispiele



für Hintergrundunschärfe Beim Ersetzen des Hintergrunds wird eine als Light Wrap bezeichnete Technik verwendet.(leichte Umhüllung) zum Überlagern segmentierter Gesichter auf einem benutzerdefinierten Hintergrund. Durch die leichte Umhüllung werden die Kanten der Segmentierung weicher, sodass das Hintergrundlicht auf die Vordergrundelemente fällt und die Komposition realistischer wird. Es hilft auch, Halo-Artefakte zu minimieren, wenn zwischen Vordergrund und Hintergrund ein starker Kontrast besteht.





Beispiele für Hintergrundersatz



Performance



Um die Leistung auf verschiedenen Geräten zu optimieren, bieten wir Modelloptionen mit mehreren Eingabebildgrößen (z. B. 256 x 144 und 160 x 96 in der aktuellen Version), wobei automatisch die beste Option entsprechend den verfügbaren Hardwareressourcen ausgewählt wird.



Wir haben die Inferenzgeschwindigkeit des Modells und die End-to-End-Pipeline auf zwei gängigen Geräten bewertet: dem MacBook Pro 2018 mit einem 2,2-GHz-Intel Core i7-Prozessor mit 6 Kernen und dem Acer Chromebook 11 mit einem Intel Celeron N3060-Prozessor. Für 720p-Eingaben kann das MacBook Pro ein Modell mit höherer Qualität mit 120 fps und eine Pass-Through-Pipeline mit 70 fps ausführen, während auf einem Chromebook das Modell mit 62 fps mit einem Modell mit geringerer Qualität und einer Pass-Through-Pipeline ausgeführt wird 33 FPS.



 Modell 

 FLOPS 

 Gerät 

 Modellausgabe 

 Förderer 

 256 x 144 

 64 Millionen 

 MacBook Pro 18 

 8,3 ms (120 FPS) 

 14,3 ms (70 FPS) 

 160 x 96 

 27 Millionen 

 Acer Chromebook 11 

 16,1 ms (62 FPS) 

 30 ms (33 FPS) 

Ausgaberatenmodell und Durchgangsförderer auf High-Laptops (MacBook Pro) und Low-Grade-



Modellen (Chromebook) Um die Genauigkeit des verwendeten Modells zu quantifizieren, werden gängige Metriken verwendet: Koeffizient Zhakar (Schnittpunkt über Vereinigung, IOU ) und ein Grenz - F-Maß ( Grenz - F-Score) ... Beide Modelle bieten eine gute Leistung, insbesondere in einem so leichten Netzwerk:



  Modell  

  IOU  

  Grenz-  

  F-Maß  


  256 x 144  

  93,58%  

  0,9024  

  160 x 96  

  90,79%  

  0,8542  



Wir haben auch eine Segmentierungskarte des Modells öffentlich zugänglich gemacht , in der die Spezifikationen für die Bewertung aufgeführt sind. Schätzungen umfassen Bilder aus 17 geografischen Unterregionen der Welt, die nach Hautfarbe und Geschlecht kommentiert sind. Die Analyse ergab, dass das Modell über verschiedene Regionen, Hauttöne und Geschlechter hinweg konstant hohe Ergebnisse mit geringfügigen Abweichungen bei den IOU-Werten aufweist.



Fazit



Daher haben wir in Google Meet eine neue browserbasierte ML-Lösung zum Verwischen und Ersetzen von Hintergründen eingeführt. Dank dieser Lösung zeigen ML-Modelle und OpenGL-Shader eine effiziente Leistung im Internet. Die entwickelten Funktionen bieten Echtzeitleistung bei geringem Stromverbrauch, selbst bei Geräten mit geringem Stromverbrauch.



All Articles