Difuminar el fondo en Google Meet con ML en el navegador

La videoconferencia es cada vez más importante en el trabajo y la vida personal de las personas. Cuanto mejor esté organizado el proceso en términos de procesamiento de video y privacidad, menos distraerá la atención de una persona de la conferencia en sí. Como parte de este desafío, recientemente desarrollamos filtros de reemplazo de fondo y desenfoque en Google Meet.... Utilizan el aprendizaje automático (ML) para distinguir mejor a los participantes independientemente de su entorno. Mientras que otras soluciones requieren la instalación de software adicional, las funciones de Meet se basan en tecnologías avanzadas de ML web creadas con MediaPipe y se ejecutan directamente en su navegador; no se requieren pasos adicionales. Uno de los objetivos clave en el desarrollo de estas funciones fue proporcionar rendimiento del navegador en tiempo real en casi todos los dispositivos modernos, lo que logramos combinando modelos ML eficientes en el dispositivo, renderizado basado en WebGL y renderizado ML en la pila web usando XNNPACK y TFLite .





Desenfocar y reemplazar el fondo según MediaPipe



Una descripción general de nuestra solución Web ML



Las nuevas funciones de Meet funcionan con MediaPipe , la plataforma de transmisión de código abierto de Google. Otras soluciones de aprendizaje automático se basan en este marco, como el seguimiento de la posición de la mano , el iris y el cuerpo en tiempo real.



El principal requisito de cualquier tecnología móvil es lograr un alto rendimiento. Para hacer esto, la canalización web de MediaPipe usa el formato binario de bajo nivel WebAssembly.diseñado específicamente para navegadores web para acelerar tareas informáticas complejas. En tiempo de ejecución, el navegador traduce las instrucciones de WebAssembly a código de máquina que se ejecuta mucho más rápido que el JavaScript tradicional. Además, Chrome 84 implementó recientemente la compatibilidad con WebAssembly SIMD , donde cada instrucción procesa múltiples puntos de datos, lo que duplica el rendimiento.



Nuestra solución primero procesa cada fotograma de video, separando al usuario del fondo (ver más abajo para más información sobre el modelo de segmentación), usando la salida ML para calcular una máscara de baja resolución. Si es necesario, refinamos aún más la máscara para alinearla con los bordes de la imagen. La máscara se usa luego para renderizar la salida de video a través deWebGL2 y el fondo están borrosos o reemplazados.





Canalización de WebML: todas las operaciones computacionales se implementan en C ++ / OpenGL y se realizan en el navegador a través de WebAssembly



En la versión actual, el cálculo se realiza en la CPU del cliente con el menor consumo de energía y la cobertura de dispositivos más amplia. Para lograr un alto rendimiento en tiempo real, hemos desarrollado modelos ML eficientes utilizando la biblioteca XNNPACK para acelerar el cálculo. Es el primer motor de salida de video diseñado específicamente para la nueva especificación SIMD de WebAssembly. Al acelerar XNNPACK y SIMD, el modelo de segmentación funciona en tiempo real en Internet.



Gracias a la configuración flexible de MediaPipe, la solución de desenfoque / reemplazo de fondo adapta su procesamiento en función de las capacidades del dispositivo. En dispositivos de gama alta, ejecuta una canalización completa para garantizar la más alta calidad visual, mientras que en dispositivos de gama baja cambia a modelos computacionales de aprendizaje automático ligeros sin especificar la máscara.



Modelo de segmentación



Los modelos ML en el dispositivo deben ser ultraligeros para una computación rápida, un bajo consumo de energía y un tamaño reducido. Para los modelos en el navegador, la resolución de entrada afecta en gran medida el número de operaciones de punto flotante (FLOPS) necesarias para procesar cada fotograma y, por lo tanto, también debe ser pequeña. Antes de alimentar la imagen al modelo, la reducimos. Recuperar la máscara más precisa de una imagen de baja resolución complica el diseño del modelo.



La red de segmentación general tiene una estructura de codificación / decodificación simétrica. Las capas del decodificador (verde claro) son simétricas a las capas del codificador (azul claro). En particular, canalizar la atención(atención por canal) con agrupación promedio global se utiliza tanto en bloques de codificador como de decodificador, lo que reduce la carga en la CPU.





La arquitectura del modelo con el codificador MobileNetV3 (azul claro) y el decodificador simétrico (verde claro)



Para el codificador, modificamos la red neuronal pequeña MobileNetV3 , cuyo diseño se diseñó automáticamente buscando la arquitectura de red para lograr el mejor rendimiento en hardware débil. Para reducir a la mitad el tamaño del modelo, lo exportamos a TFLite con cuantificación float16, lo que resultó en una pequeña pérdida de precisión, pero sin un impacto notable en la calidad. El modelo resultante tiene 193 mil parámetros y el tamaño es de solo 400 KB.



Efectos de renderizado



Después de la segmentación, usamos sombreadores OpenGL para el procesamiento de video y efectos de renderizado. El desafío es renderizar de manera eficiente sin artefactos. En el paso de refinamiento, el filtro de articulación bilateral suaviza la máscara de baja resolución.





Supresión de artefactos de renderizado. Izquierda: un filtro conjunto de dos caras suaviza la máscara de segmentación. Medio: los filtros separados eliminan los artefactos fantasma. Derecha: cambia el fondo con un



sombreador de envoltura de luz, el desenfoque simula el efecto del bokeh , la potencia de ajuste del desenfoque en cada píxel es proporcional a los valores de la máscara de segmentación, como la dispersión del puntoen óptica. Los píxeles se ponderan según el radio del punto para que los píxeles de primer plano no se mezclen con el fondo. Implementamos filtros divididos de desenfoque ponderado en lugar de la popular pirámide gaussiana, ya que eliminan los artefactos de halo alrededor de los humanos. Para el rendimiento, el desenfoque se realiza a baja resolución y se combina con el fotograma de entrada en su resolución original.





Ejemplos de desenfoque de fondo



Al reemplazar el fondo, se utiliza una técnica conocida como envoltura ligera.(envoltura ligera) para superponer caras segmentadas sobre un fondo personalizado. La envoltura ligera ayuda a suavizar los bordes de la segmentación, permitiendo que la luz de fondo brille sobre los elementos del primer plano, haciendo que la composición sea más realista. También ayuda a minimizar los artefactos de halo cuando hay mucho contraste entre el primer plano y el fondo.





Ejemplos de reemplazo de fondo



Actuación



Para optimizar el rendimiento en diferentes dispositivos, proporcionamos opciones de modelo con múltiples tamaños de imagen de entrada (por ejemplo, 256x144 y 160x96 en la versión actual), eligiendo automáticamente la mejor opción según los recursos de hardware disponibles.



Evaluamos la velocidad de inferencia del modelo y la canalización de un extremo a otro en dos dispositivos populares: el MacBook Pro 2018 con un procesador Intel Core i7 de 6 núcleos a 2,2 GHz y el Acer Chromebook 11 con un procesador Intel Celeron N3060. Para una entrada de 720p, la MacBook Pro puede ejecutar un modelo de mayor calidad a 120 fps y una canalización de paso a 70 fps, mientras que en una Chromebook el modelo funciona a 62 fps con un modelo de menor calidad y una canalización de paso produce 33 FPS.



 Modelo 

 FLOPS 

 Dispositivo 

 Salida del modelo 

 Transportador 

 256 x 144 

 64 millones 

 MacBook Pro 18 

 8,3 ms (120 FPS) 

 14,3 ms (70 FPS) 

 160 x 96 

 27 millones 

 Acer Chromebook 11 

 16,1 ms (62 FPS) 

 30 ms (33 FPS) 

Modelo de tasa de salida y una cinta transportadora en computadoras portátiles altas (MacBook Pro) y de baja calidad (Chromebook)



Para cuantificar la precisión del modelo se utilizó la métrica popular: coeficiente Zhakar (intersección sobre unión, IOU ) y una medida F de límite (puntaje F de límite) ... Ambos modelos funcionan bien, especialmente en una red tan ligera:



  Modelo  

  Pagaré  



  Medida F de     límite  


  256 x 144  

  93,58%  

  0.9024  

  160 x 96  

  90,79%  

  0.8542  



También hemos puesto a disposición del público un mapa de segmentación del modelo , detallando las especificaciones para la evaluación. Las estimaciones incluyen imágenes de 17 subregiones geográficas del mundo, anotadas por tono de piel y género. El análisis mostró que el modelo demuestra resultados consistentemente altos en diferentes regiones, tonos de piel y géneros, con ligeras desviaciones en los puntajes de IOU.



Conclusión



Por lo tanto, presentamos una nueva solución basada en navegador ML para difuminar y reemplazar fondos en Google Meet. Gracias a esta solución, los modelos ML y los sombreadores OpenGL muestran un rendimiento eficiente en Internet. Las funciones desarrolladas proporcionan rendimiento en tiempo real con bajo consumo de energía, incluso en dispositivos de bajo consumo.



All Articles