Ordinateurs

Faire fonctionner la reconnaissance gestuelle : leçons de Microsoft Kinect et Leap – High-teK.ca

Ce site peut gagner des commissions d’affiliation à partir des liens sur cette page. Conditions d’utilisation.

Lorsque David Holz, CTO de Mouvement de saut, m’a d’abord dit de ne pas trop me concentrer sur le matériel de l’entreprise car la vraie magie était dans le logiciel, je ne le croyais qu’à moitié. Après avoir écouté Alisson Sol, responsable du développement de Microsoft Kinect, faire un travail magistral chez Build pour décrire exactement ce qui s’est passé dans l’évolution de la reconnaissance gestuelle de Kinect depuis la première version, j’étais convaincu.

La reconnaissance des gestes est tout au sujet du logiciel. Bien qu’un matériel compétent soit une exigence, il n’a pas besoin d’être bouleversant. Un démontage du saut – révélant trois prêts à l’emploi LED et deux caméras bon marché – l’ont prouvé. Ce qui est crucial, c’est que beaucoup de temps et d’efforts soient investis dans le dur labeur d’obtenir des algorithmes logiciels pour comprendre avec précision ce qu’ils voient. Le processus de Microsoft pour développer son outil de reconnaissance d’adhérence et de libération pour Kinect pour Windows est une excellente étude de cas sur le fonctionnement exact de ce processus.

Apprentissage automatique : faire en sorte que votre ordinateur fasse la programmation

Pendant des décennies, l’informatique s’est principalement concentrée sur la manière de conserver les ressources informatiques grâce à des algorithmes intelligents et pré-construits. À certains égards, l’apprentissage automatique renverse ce processus. Avec le coût incroyablement bas des cycles CPU et GPU, il est désormais pratique de jeter de grandes quantités de données sur l’ordinateur et de le laisser régler les choses. Le processus est beaucoup plus compliqué que cela, et bien le faire est une sorte d’art, mais les résultats sont parfaitement adaptés à différents types de reconnaissance, y compris ceux pour les gestes.

Psssssst :  Windows 10 accusé de la baisse continue des expéditions de systèmes et des dépenses informatiques stables - High-teK.ca

Maquette de produit Leap Motion détenue par l'inventeur David Holz.  Photo par Annie Cardinal.Avant de pouvoir configurer votre ordinateur pour apprendre, vous devez collecter de nombreuses données de qualité. Dans le cas de Kinect, les données sont de nombreux gigaoctets de vidéos de carte de profondeur de dizaines de sujets effectuant tous les types de gestes. De plus, ces segments vidéo doivent être étiquetés à la main pour indiquer à quel moment les sujets ont effectué chaque geste. Le processus est essentiellement un gros morceau de collecte de données scientifiques à l’ancienne. Les données étiquetées par l’homme sont appelées la «vérité terrain» – essentiellement l’étalon-or par rapport auquel le reconnaisseur sera mesuré.

Vous devez également vous assurer que vous résolvez le bon problème. Les équipes précédentes travaillant sur le système de reconnaissance des poignées chez Microsoft s’étaient concentrées sur la tentative de décider si les mains étaient ouvertes et fermées, et se sont retrouvées bloquées. Le groupe de Sol a adopté l’approche consistant à rechercher directement les gestes de préhension et de relâchement – ce qui était vraiment ce qu’ils avaient besoin de savoir pour mettre en œuvre une interface utilisateur basée sur la préhension.

Transformer les données en fonctionnalités

Une fois que vous avez un grand ensemble de données étiquetées, l’étape suivante consiste à décider quels attributs – appelés caractéristiques – des données sont importants pour prendre la décision de reconnaissance. C’est autant un art qu’une science, et vous risquez de vous tromper au moins une fois. Les fonctionnalités que vous décidez d’utiliser doivent également être relativement faciles à calculer. L’équipe Kinect pour Windows s’est donné 2 ms pour reconnaître les prises et les relâchements, par exemple.

Psssssst :  Windows Patch Tuesday : Duqu et BEAST parmi les mises à jour critiques - High-teK.ca

Sol démontrant l'utilisation de l'image de profondeur infrarouge pour isoler le sujet même en cas de faible éclairage

Dans le cas du geste de préhension, l’équipe a initialement utilisé le nombre de pixels éloignés du centre de la main (qui est signalé par le sous-système de suivi du squelette) comme caractéristique principale pour alimenter son algorithme d’apprentissage automatique. Malheureusement et de manière inattendue, la position de la main signalée n’était pas suffisamment stable pour que la fonction soit très précise. L’équipe a donc dû développer un algorithme de stabilisation de la main prenant en compte diverses positions et mouvements de la main lors de la reconnaissance des gestes.

Cette approche a donné un résultat assez médiocre, alors l’équipe a cherché d’autres moyens de passer au crible les données. Ils ont décidé d’utiliser la différence d’image à image dans la carte de profondeur à chaque pixel pour signaler la prise ou la libération. Essentiellement, chaque pixel «voterait» pour savoir s’il pensait qu’un geste se produisait, selon qu’il était plus éloigné ou plus proche du Kinect que le cadre précédent.

Page suivante: Laisser votre sortie écrire le code

Bouton retour en haut de la page