RECONNAISSANCE DE GESTES

Maher MKHININI
Encadrement : Patrick HORAIN
Directrice de thèse : Bernadette DORIZZI
Telecom SudParis

L’objectif de ce travail est de permettre au robot d’interpréter, dans le flux vidéo des caméras, des gestes utilisés par une personne souhaitant interagir avec le robot. Il s’agit donc de gestes de communication, faits généralement en direction du robot pour lui donner un ordre. Un corpus de séquences vidéos a été acquis dans le HomeLab de l’Institut de la Vision pour permettre l’apprentissage de ces gestes (voir Scénario d'utilisation).

Gestes à reconnaître

Le flux vidéo acquis par le robot doit être analysé pour reconnaître des gestes de communication et de commande tels que :

« Bonjour » : mouvement de l’avant bras de droite à gauche dans un plan frontal.

« Oui » : mouvement de la tête de haut en bas.

« Non » : mouvement de la tête de droite à gauche, ou un mouvement de l’avant bras de droite à gauche avec bras tendu.

« Approche » ou « avance » : mouvement de l’avant bras d’avant en arrière dans un plan sagittal.

« Va-t'en » : mouvement de l’avant bras d’arrière en avant dans un plan sagittal.

« Désignation » : attitude bras tendu.

« Stop » : attitude main ouverte dans un plan frontal avec bras tendu.


    • juliette-gestes-stop
    • Quelques images extraites du corpus vidéo de personnes effectuant le geste « Stop »


Pour entraîner et valider nos algorithmes de vision artificielle, nous avons constitué un corpus de 168 vidéos présentant tous ces gestes. Douze acteurs ont effectué chaque geste trois fois et dans deux conditions d’éclairage différentes. Le corpus a été acquis au moyen du capteur de vision du robot, à l’IDV, avec la participation de personnes malvoyantes, dans un appartement conçu et équipé pour des malvoyants et reflétant les conditions réelles de la vie quotidienne (couleurs, meubles, luminosité…).

 

Reconnaissance de gestes par des mouvements apparents :

Le capteur intelligent de BVS intègre des fonctions d’analyse du flux vidéo en temps réel utiles pour la reconnaissance de la direction des régions en mouvement. Notamment, le calcul de la vélocité (flux optique) fournit à chaque instant la vitesse et la direction des pixels dans l’image. Le flux de gradient d’image fournit les contours des objets et leurs directions. Ces données, agrégées sous forme d’histogrammes locaux, peuvent être exploitées pour détecter et suivre les parties du corps et reconnaître des gestes (mains, bras et tête).

Le mouvement apparent permet une classification simple des gestes (par exemple la direction de mouvement de la main), mais ne garantit pas que l'objet suivi soit un membre de la personne. Une zone en mouvement peut être la main, la tête ou même le corps entier. Pour cette raison nous devrons savoir la nature de la région en mouvement. Nous proposons donc de détecter et suivre les membres supérieurs de la personne.

 

juliette-classification-gestes

Classification de gestes en fonction du sens de mouvement fourni par le capteur BIPcam de BVS




DETECTION DES PERSONNES

Pour détecter les personnes dans les images, nous avons mis en œuvre une détection par histogramme de gradients orientés (HOG) (Dalal & Triggs, 2005) qui est la méthode de référence de l’état de l’art et qui disponible dans la bibliothèque OpenCV (OpenCV, 2011).

Cette version repose sur un apprentissage à partir d’une base d’image en extérieur qui ne correspond pas aux conditions de notre projet, au domicile des personnes mal voyantes. Pour cette raison, nous avons constaté beaucoup de fausses détections dues de la présence d’objets dont la forme ressemble au corps humain. Nous avons donc construit une nouvelle base d’apprentissage qui contient principalement des images d’intérieur, ce qui permet de réduire le nombre de fausses détections.

Pour des calculs rapides, nous avons utilisé la version de l’algorithme fonctionnant sur GPU qui est disponible dans la bibliothèque OPENCV 2.3 (OpenCV, 2011). La fréquence de calcul dépasse les 9 images par seconde sur une carte NVIDIA GeForce GTX 480, qui pourrait être disponible dans le cas d’un calcul déporté sur un serveur distant.


juliette-detection-personne

Détection de personne par HOG


Détection des membres :

Nous recherchons le bras dans les zones de mouvement apparent qui peuvent être fournies par le capteur BVS. Dans ces zones, nous détectons la main et l’avant-bras d'une part et l’épaule d'autre part en utilisant des histogrammes de gradients orientés (HOG).

La localisation des extrémités du bras dans l’image permettra ensuite de retrouver la trajectoire 3D de la main par recalage d’un modèle de bras 3D articulé, par une méthode rapide développée antérieurement d’énumération des attitudes 3D qui correspondent aux projections dans l'image de la main, du coude et de l’épaule. Les ambiguïtés dues à la projection 3D sur 2D seront gérés par filtrage particulaire avec heuristiques.


juliette-detection-epaule

Exemple de détection de l'épaule et de la main sur une image du corpus.