Le besoin

Comme nous sommes en train de préparer la toute première version de Microsoft Build (disponible en ligne uniquement), nous avons créé une série de courtes vidéos : the Innovation Bites. Comme beaucoup de spécialistes du marketing actuellement, nous rencontrons des difficultés pour concilier ce que nous souhaitions créer et ce que les intervenants peuvent vraiment réaliser lorsqu’ils travaillent de chez eux.

L’idée

Nous nous sommes inspirés des approches du cache en arrière-plan d’Adobe Research et de l’Université de Washington (UW). Nous avons voulu développer ces idées avec notre capteur Kinect Azure pour que chacun puisse utiliser facilement un fond vert lorsqu’il enregistre de chez lui.

La solution

Nous avons développé une expérience frontale simple pour les intervenants pour qu’ils puissent s’enregistrer avec 2 capteurs Kinect Azure en même temps, plus des diapositives, et un backend qui prend les approches d’UW et d’Adobe Research et ajoute les capacités de profondeur du capteur Kinect Azure pour améliorer la précision du cache en arrière-plan et automatiser le téléchargement des fichiers.

Détails techniques de Virtual Stage

Ce projet se compose de 2 éléments différents :

1. Application frontale

Le présentateur utilise l’application pour s’enregistrer. Il peut enregistrer 3 fichiers vidéo à partir d’un seul enregistrement : jusqu’à deux vidéos à partir de capteurs Kinect Azure et un fichier séparé pour les diapositives du présentateur avec du son, pour faciliter la post-production.

L’application permet au présentateur de vérifier plusieurs enregistrements et de conserver les meilleurs avant de les envoyer au processus d’arrière-plan pour générer l’écran vert virtuel.

Nous avons également inclus dans l’application frontale un assistant facile pour permettre à l’utilisateur d’enregistrer l’arrière-plan sans lui, afin de pouvoir régler le premier plan et la valeur alpha du processus de cache. Cela facilite le processus pour l’équipe de post-production afin de garantir les meilleurs résultats possibles dans un scénario de collaboration à distance.

2. Processus de console back-end

Une fois que l’utilisateur a fourni les fichiers vidéo, nous devons créer l’écran vert virtuel pour modifier le logiciel de notre choix. Le résultat de ce processus est la vidéo avec seulement le présentateur (le reste est un écran vert virtuel).

Ce processus exploite l’approche de l’équipe de l’Université de Washington ; nous avons ajouté des améliorations pour pouvoir utiliser l’enregistrement de profondeur du capteur Kinect Azure pour supprimer l’arrière-plan de manière plus précise.

L’un des principaux défis que nous avons essayé de résoudre dans notre mise en œuvre est le suivant : l’ensemble de données utilisé pour la formation (ensemble de données Adobe Composition-1k) ne contenait que des images du haut du corps, or nous voulions capturer nos présentateurs en entier. Cette restriction signifie non seulement que les jambes ne sont pas prises en compte correctement par le modèle en raison de l’absence de données d’entraînement, mais aussi que la sortie réseau neuronal est un cadre de limitation, idéal pour les images du haut du corps mais pas pour le corps en entier.

Pour résoudre le problème lié au cadre de limitation, nous avons scindé l’image en deux. Pourtant, cela ne résout pas encore le manque de précision lorsqu’il s’agit de reconnaître les jambes. C’est là que les fonctionnalités d’Azure Kinect sont entrées en jeu.

L’approche UW propose 2 étapes : tout d’abord, extraire l’arrière-plan en fonction de l’apprentissage contrôlé ; et ensuite, affiner la sortie de manière non contrôlée par le biais d’un réseau GAN. La première étape s’effectue par un réseau profond qui estime le premier plan et la valeur alpha à partir de l’entrée composée de l’image d’origine, de la photo d’arrière-plan et d’une segmentation légère calculée automatiquement de la personne dans l’image.

En combinant cette approche avec l’API Azure Kinect, nous pouvons remplacer la segmentation légère calculée automatiquement de la personne dans l’image par une silhouette plus précise capturée avec notre capteur. Par conséquent, nous saisissons dans ce premier modèle les informations relatives aux capteurs (à la fois les signaux infrarouges et les silhouettes, ainsi que la vidéo sans traitement), et l’arrière-plan sans l’intervenant (capturé à partir de l’application frontale par l’utilisateur), ce qui nous donne une estimation plus précise et une estimation alpha comme résultat. Nous avons également affiné un réseau GAN non supervisé pour améliorer encore plus les résultats.

Comment pouvez-vous utiliser ce projet pour vos propres événements/vidéos ?

  • Du côté du créateur/de l’intervenant, vous aurez besoin de 1 ou 2 capteurs Azure Kinect (plus les configurations matérielles et logicielles applicables telles qu’elles sont répertoriées).
  • Accédez à GitHub où vous trouverez le code source de l’application frontale et du côté serveur, ainsi que du manuel de l’utilisateur pour l’application utilisateur.
  • Nous continuerons à mettre à jour ce projet pour fournir des modèles ARM pour déployer facilement le backend sur Azure, ainsi que pour améliorer les commentaires et la documentation.

Ressources :

Projets liés à Virtual Stage

Parcourir plus de projets

Explorez les possibilités de l’IA

Tirez parti de l’intelligence artificielle pour votre entreprise dès aujourd’hui.