Kinect and SmartMirror without Bullshit

Le Kinect est un appareil fabriqué par Microsoft qui se compose entre autre d’une caméra 3D et d’un microphone array. Je travaille avec depuis 10 ans afin de fournir des yeux à SARAH et une capacité de reconnaissance vocale à plus de 8 mètres !

L’année dernière j’ai réussi à me procurer le dernier modèle de Microsoft : le Azure Kinect Developer Kit sur lequel je travaille depuis quelques mois sur des projets confidentiels ou mis en scène sur des salons.

On part de TRES loin avec ce device dérivé de la caméra d’Hololens, réécris de zéro, 10x plus cher, 10x plus gourmand en ressources avec un focus B2B. Mais l’on peut déjà faire des choses sympa !

Cut the bullshit

Précédemment je parlais des enjeux autour de la conception d’un miroir connecté. J’ai donc poursuivi l’idée avec un miroir géant qui pourrait servir de fenêtre virtuelle, assistant de fitness ou fitting room.

Lors du CES2020, plusieurs société dont HAIER proposaient un concept de fitting room. Avant de pouvoir choisir ses vêtements le dispositif impose la construction d’un avatar 3D.

Cette étape est indispensable pour fournir un feedback visuel bien en face de l’utilisateur. On retrouve aussi cette approche avec NEON les avatars de Samsung.

Et c’est justement le problème que doivent résoudre des solutions comme LA VITRE (vision conférence) ou Tempo, Tonal, The Mirror qui doivent afficher un retour de la « vrai vie » pour être pertinent.

Pour obtenir une vision de plein pied, Tempo a fait le choix d’installer le Kinect en dessous d’un petit écran. La caméra de La Vitre est disposée horizontalement d’un très grand écran.

J’ai testé de nombreuses positions sans réel succès. Plusieurs astuces sont possibles:

  • Utiliser un écran de plus petite taille
  • Placer un miroir excentré d’un côté pour forcer l’utilisateur à se centrer
  • Ne pas afficher le stream vidéo mais un avatar 3D ou une vidéo de coaching
  • Prendre beaucoup plus de recule (comme sur certains stands au CES)

Bref, c’est un gros enjeux d’UX qui de-bullshit les belles promesses marketing que l’on peut voir un peu partout.

Dans un prochain article je vous présenterais différents essais: Avatar 3D, Effet de parallaxe, Suppression de la profondeur.

Getting Started

Voici quelques conseils pour débuter :

Du côté code, il faut installer le Azure Kinect Sensor SDK, Kinect Body SDK, et patcher le firmware.

Attention ! Contrairement aux précédents Kinect, tous les calculs sont fait sur la machine. Il faut minimum un Core i7 et une GTX-1070 pour être capable de faire tourner le Body SDK.

Microsoft fournit de nombreux exemples de code, et est très à l’écoute des demandes de la communauté. Néanmoins, je suis partis sur un projets open-source qui encapsule proprement le SDK sur une stack ElectronJS !

Wouter Verweirder fournit de nombreux exemples de code pour afficher les différents stream (Couleur, Profondeur, Infrarouge, Body, …) dans un Canvas Web !

J’ai rajouter une petite surcouche en utilisant JIMP, FFMPEG, Python, etc … et c’est assez magique ! Pour le moment les points de complexités qu’il reste sont :

  • Le traitement des coordonnées du BodyFrame qu’il faut transformer d’un référentiel à un autre efficacement (typiquement sur un modèle 3D rigué).
  • Le traitement intelligent des frames (détourer le body proprement, reconnaître des objets, etc …) à 15FPS !

Bref, le SDK de Kinect fournit nativement a peu prêt tout ce que vous voyez dans cette vidéo marketing après c’est une question d’UX/UI et d’analyse des données.

EDIT: En position verticale, la précision du squelette n’est pas très bonne, … je vais enquêter …

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.