Un second test pour notre system

Comprendre le comportement humain

Dans cet article, nous présentons un autre aspect de notre système visuel. Lors du premier test de perception visuelle de Three Cup Monte Test, nous avons démontré les capacités du logiciel à suivre des objets et à comprendre leurs mouvements et leur interaction dans le monde extérieur. Cette nouvelle démonstration fera passer notre système au niveau supérieur : la compréhension de la posture et du mouvement humains. À cette fin, nous montrons notre système qui suit un squelette humain à travers des poses de yoga en temps réel, en se basant sur des principes de physique. Notre ambition est de faire en sorte qu’un robot comprenne les interactions humaines dans son environnement pour s’adapter et prendre ses propres décisions en conséquence. Cette démonstration et la première nous ont permis de tester notre système dans différents environnements. Ces deux démonstrations mettent en évidence notre objectif de créer un système générique. Ce système devrait nous permettre de résoudre des problèmes issus d’un large éventail de domaines et faciliter les développements spécifiques pour de nouveaux problèmes. Une partie de notre implémentation sera publiée en 2021.

L’estimation de pose

Lorsque nous développons un système d’IA, notre objectif est souvent de le rendre capable soit de reproduire une tâche avec la même précision qu’un humain, soit d’assister un humain dans la réalisation d’une tâche complexe. Dans les deux cas, nous espérons construire un système doté d’un certain bon sens. Par sens commun, nous entendons le raisonnement sur sa tâche et, plus généralement, sur le monde ou l’environnement si l’IA est intégrée à un robot. Or, le monde tel que nous le connaissons est principalement conçu par des humains, pour des humains. Par conséquent, pour faire évoluer le bon sens dans ce monde humain, une IA doit comprendre comment les humains interagissent avec le monde. Les robots doivent également être capables de reproduire certaines actions humaines pour interagir avec leur environnement. Cette nécessité nous conduit aux problèmes d’estimation de la posture des humains présents dans une scène visuelle (estimation de la pose humaine) et de leur mouvement (suivi de la pose humaine).

L’estimation de la pose humaine est un problème de vision par ordinateur de longue date qui a suscité beaucoup d’attention au cours de la dernière décennie. En effet, la résolution de ce problème aurait de nombreuses applications importantes : dans le domaine de la santé (par exemple, la détection des personnes qui tombent), l’interaction « libre à distance » dans la domotique, les jeux, l’analyse des sports, la sécurité, les assistants IA pour le sport et la danse, etc. En fait, chaque application de l’IA à un domaine impliquant une activité humaine peut générer de multiples cas d’utilisation nécessitant l’estimation et/ou le suivi de la pose humaine.

Application avec le Yoga

Lors du développement de notre module de pose humaine, nous voulions vraiment le tester sur un cas d’utilisation intéressant, et nous avons finalement choisi le yoga. Cette application est particulièrement intéressante car elle est directement liée aux applications de santé à venir, telles que les assistants d’IA pour le sport. De plus, le yoga est un sport qui implique toutes les articulations et tous les membres du corps dans une grande diversité de poses. Il s’agit d’un cas d’utilisation parfaitement stimulant qui nous oblige à respecter des contraintes que nous aurions pu ignorer autrement : la nécessité d’estimer un squelette 3D en unités du monde réel (mètres) qui soit stable dans le temps (pour avoir un mouvement physiquement plausible). Travailler sur cette première application est également un excellent moyen d’identifier les sources d’erreurs récurrentes et de rendre notre système plus robuste. Maintenant que nous avons présenté le cas d’utilisation, présentons les fonctionnalités de notre nouveau module.

Caractéristiques

Il est nécessaire de reconnaître les actions humaines pour comprendre l’interaction entre l’homme et son environnement. Ces actions sont définies par le mouvement des parties rigides d’un corps humain : les membres. Comme nous avons besoin d’une représentation utilisable dans un réseau de neurones artificiels, la pose humaine est généralement définie par un ensemble de points clés : les articulations aux extrémités de chaque membre. Cette représentation définit un squelette lorsque nous connectons les points clés qui appartiennent à un membre commun.

A Une première approche pour obtenir des informations sur les humains dans l’environnement d’un robot consiste à analyser chaque image prise par une caméra placée sur le robot. Avec notre module d’estimation de la pose humaine, nous pouvons estimer la pose 2D de chaque personne dans la scène. Cette pose 2D fournit des informations sur les points clés de l’image (quels pixels correspondent à une articulation du corps).

Cette approche peut être satisfaisante dans certaines applications, par exemple pour une reconnaissance basique des gestes. Mais de nombreux cas d’utilisation nécessitent des informations sur le squelette 3D en unités métriques réelles (mètres) dans un espace 3D, ce qui est cohérent avec le monde réel. Par exemple, un robot se déplaçant dans un environnement. Nous avons donc inclus un module d’estimation de pose 3D.

L’objectif final étant de comprendre le mouvement humain, nous voulons analyser l’évolution de la pose humaine dans le temps. Bien qu’une photo suffise pour obtenir une pose humaine statique, nous pouvons faire beaucoup mieux à partir d’une vidéo (ou d’une séquence d’images) et suivre l’évolution de la pose. C’est pourquoi nous avons ajouté une fonction permettant de suivre le squelette 3D pendant qu’il se déplace. Cela nous permet de faire de meilleures prédictions sur les poses futures en fonction des observations passées. Le suivi rend également l’estimation robuste à la présence de données bruyantes et aux défaillances des capteurs (absence de détection ou fausse détection) à certains moments.

L’estimation du squelette est généralement un moyen vers un objectif plus utilitaire : reconnaître une action ou une intention, vérifier que la personne a une position correcte, etc. Avoir un squelette 3D robuste et physiquement plausible est très utile pour ces applications car nous pouvons alors extraire certaines caractéristiques physiques importantes : angle des articulations, alignement des points clés, angles d’un membre par rapport au sol détecté. Nous avons codé l’extraction de ces caractéristiques physiques et les avons intégrées dans notre module de pose humaine.

D’un squelette 2D à des caractéristiques 3D utiles, le développement de ces caractéristiques a été facilité par la réutilisation de modules précédemment développés à partir de notre système visuel générique : estimation de la profondeur, détection d’objets et d’éléments, flux optique.

Application concrète

Avec l’aide de notre nouveau module de pose humaine, il est plus facile que jamais de débloquer de nouveaux cas d’utilisation de l’IA impliquant des humains.

Les systèmes d’IA qui assistent les humains dans leurs activités prendront de meilleures décisions sur la base d’une description plus détaillée des actions humaines.

L’applications dans le domaine de la santé et du sport, Comme les assistants IA de yoga/entraînement, nos fonctionnalités aident le praticien à effectuer un mouvement sûr et correct et à suivre ses progrès, en vérifiant par exemple que l’angle d’une articulation ne la met pas en danger et que les parties du corps sont correctement alignées lorsque cela est nécessaire.

Dans un entrepôt de logistic, un robot sera capable de naviguer plus efficacement et en toute sécurité en présence d’humains. Cela peut être fait en utilisant le squelette 3D pour comprendre l’orientation d’un humain dans l’espace, car l’orientation est un indicateur important de la direction de son mouvement futur. Les futures trajectoires probables peuvent être prédites en produisant des estimations précises des vecteurs de vitesse 3D, exprimés en m/s.

Les humains seront en mesure de communiquer avec les systèmes d’IA d’une manière nouvelle et significative.

Dans la domotique, L’interaction avec le système sans télécommande deviendra très intuitive. Le squelette 3D précis et stable aide à reconnaître les commandes. Par exemple, l’alignement permet à l’utilisateur de pointer un candidat intelligent et d’interagir avec lui. La reconnaissance des gestes sera utile pour environnement non-structuré où les humains, comme les travailleurs, communiqueront visuellement, de loin, avec le système. En robotique, nous serons capables d’apprendre aux robots comment reproduire des gestes humains complexes, en effectuant les gestes devant eux, ils seront suivis et traduits en un squelette 3D. À long terme, la capacité de suivre un squelette 3D sera une pierre angulaire pour l’émergence de sens commun dans les systèmes d’IA. En effet, il est nécessaire de comprendre comment les humains interagissent avec le monde et modifient son état en raison de leurs actions.

Détails techniques

Estimation de pose 2D

La tâche d’estimation de pose humaine la plus courante est l’estimation de pose 2D. Étant donné une image RVB, nous voulons trouver chaque personne, et pour chaque personne, estimer la position de ses articulations (point clé) et de son membre.

Une difficulté importante dans les images comportant plusieurs personnes est la présence de plusieurs points clés du même type (par exemple, « cheville gauche »). Nous devons nous assurer que chaque point clé est associé à la bonne personne.

Dans notre application, nous avons déjà accès à la sortie du modèle de détection sémantique. Cette détection sémantique nous donne une liste de personnes avec leur boîte de délimitation (bbox) et leur masque de niveau pixel. Ces données nous permettent d’associer facilement les points clés à la bonne personne. Ces données sont peu coûteuses à obtenir car : le modèle de détection est performant en temps réel, et son calcul est déjà nécessaire pour suivre d’autres objets. Par conséquent, le coût de son utilisation pour l’estimation de la pose humaine est très faible.

De la 2D à la 3D

Lorsqu’une forme 3D (dans notre cas, un squelette humain) est projetée sur une image 2D, de nombreuses informations sur sa géométrie sont perdues. Ceci est une source importante d’ambiguïté lors de la reconstruction d’un squelette 3D à partir d’une image 2D. En effet, la même image 2D peut correspondre à plusieurs positions 3D différentes et critiques. Cela peut conduire à de grandes erreurs dans l’estimation de l’orientation d’une personne.

L’IMPORTANCE DE LA 3D POUR MESURER LES ANGLES

Au début de l’animation, la vue 2D pourrait être suffisante pour mesurer l’angle de l’épaule (180°). Mais lorsque le bras pointe dans notre direction, une mesure 2D resterait par erreur grande (~180°), alors que l’angle réel est de 90°, comme le montre la vue 3D.

Notre système repose sur l’utilisation d’une caméra stéréo, c’est-à-dire de deux caméras alignées sur un axe horizontal. À partir de cette entrée stéréo, notre modèle d’estimation de la profondeur nous permet de d’établir avec précision la projection du squelette 2D dans le monde 3D. Comme pour le modèle de détection précédent, l’estimation de la profondeur est calculée en temps réel et est déjà utilisée dans d’autres tâches, comme le suivi d’objets. Par conséquent, l’utilisation de cette entrée pour l’estimation du squelette 3D est bon marché, avec une faible surcharge.

Un avantage significatif de notre approche stéréo est que le squelette 3D est estimé en unités métriques réelles (mètres) dans un espace 3D cohérent avec le monde réel.

Tracking du squelette 3D en temps réel

Notre système facilite le suivi car nous pouvons utiliser la sortie du modèle de flux optique pour estimer le mouvement des objets entre deux images successives. Le flux est déjà calculé en temps réel pour le suivi d’objets (voir notre démonstration précédente) et peut donc être réutilisé comme entrée pour notre algorithme de suivi de squelettes 3D.

Newsletter

Avec cette démonstration, nous avons proposé une nouvelle approche du suivi de squelette en 3D. Ce qui la rend unique, c’est qu’elle peut suivre les squelettes de plusieurs personnes en temps réel et dans leur environnement 3D, grâce à notre approche de stéréovision.

Ce module d’estimation de la pose humaine est intégré dans notre système visuel générique, réalisant un large panel d’autres tâches visuelles. Ce système permet de combiner efficacement les fonctionnalités de différents modules – estimation de la profondeur, détection d’objets (boîtes englobantes et masques), flux optique, suivi d’objets, estimation de la pose humaine et suivi – pour résoudre des tâches visuelles complexes en temps réel. Cette conception modulaire nous aidera également à créer efficacement de nombreuses nouvelles fonctionnalités à l’avenir. Nous allons bientôt publier notre SDK et vous permettre de le tester sur vos propres cas d’utilisation. N’hésitez pas à nous contacter pour plus d’informations sur notre système.


More articles

Le test Three Cup Monte

Chez Visual Behavior, nous avons créé un nouveau test de perception visuelle basé sur le jeu populaire « Three Cup Monte » pour tester les capacités des robots à comprendre le monde. Parfois difficile même pour les humains, cette tâche met également les machines au défi de comprendre …..

Voir l'article