Eng Eng

DERG3D

Mettre en valeur la reconnaissance de gestes

Highlight the gesture recognition

Notre projet s’inscrit dans le cadre de notre seconde année au sein du département informatique de l’INSA de Rennes. Toujours dans le but de nous préparer au travail d’ingénieur, il a pour objectif de nous confronter à des problématiques aussi bien d’ordre technique que logistique en nous mettant au défi de mener à bien chaque étape du processus jusqu’à sa concrétisation.

La reconnaissance de gestes, de par les nombreuses portes qu’elle ouvre, est aujourd’hui un domaine de recherche très actif. C’est dans ce contexte qu’il nous a été chargé de démontrer et mettre en évidence les capacités d’un moteur de reconnaissance de gestes 3D à l’état de l’art mondial. Un moteur de reconnaissance gestuelle, souvent désigné par le terme de moteur, est un logiciel prenant en entrée les différentes positions d’un corps au cours du temps et donnant en sortie le nom d’un geste si celui-ci a été reconnu. Effectué dans les équipes de recherche IntuiDoc et MimeTIC du laboratoire de l’IRISA, le moteur est le fruit d’une thèse et fait déjà l’objet d’un TP dans la cadre du module AMRG proposé aux 5ème années du département.

Le projet est séparé en trois grandes parties:

  • La réalisation d’un démonstrateur visant un public formé de chercheurs
  • La réalisation d'un framework pédagogique dont l’objectif sera de servir de support pour le TP du module AMRG de 5ème année. Le framework prendra forme autour d’un jeu de plateformes qui est accompagné d’un sujet de TP. Ce jeu dépasse la portée du TP dans l’intérêt de présenter celui-ci comme un second démonstrateur du moteur.
  • Une partie transversale qui regroupe les fonctionnalités qui permettent de mettre en valeur le moteur de reconnaissance de geste 3D et le configurer à nos souhaits.

Our project is part of out second year in the IT department of INSA Rennes. Always in order to prepare us for our future engineer work, it's goal is to confront us with various tehnical problems as well as logistical problems by challenging us to carry out each step of the process to its realization.

The gesture recognition, through the many doors it opens, is now a very active research domain. It is in this context that we have been charged to demonstrate and highlight the capacities of a 3D gesture recognition engine at the worldwide state of the art. A gesture recognition engine, often called "engine", is a software which takes as an input different positions of a human body over time and gives as output the name of a gesture if the given gesture has been recognized. Accomplished in the research teams named IntuiDoc and MimeTIC of the research laboratories of IRISA, the engine is the fruit of a thesis and is already the subject of a practical work of AMRG module proposed to the 5th year of the department.

The project is divided into three main parts:

  • The realization of a demonstrator targeting the public formed of researchers
  • The realization of a educational framework of which the objective will be to support the practical work of AMRG module for the 5th year The framework will be a platformer accompanied by a prectical work subject. This game is beyond the scope of the practical work in the interest of presenting it as a second demonstrator of the engine.
  • A transversal part which regroups the features that let us highlight the 3D gesture recognition engine and configure it as we wish.

Le moteur de reconnaissance de gestes de l'IRISA

Le moteur de reconnaissance de gestes que nous allons utiliser dans ce projet est issu de travaux de recherche de l’équipe IntuiDoc et MimeTIC du laboratoire de l’IRISA et notamment d’une thèse soutenue par Said Yacine Boulahia le 11 juillet 2018.

Un moteur de reconnaissance de gestes utilise des concepts d’apprentissage automatique afin de pouvoir classifier un geste parmi d’autres. Afin d'apprendre un modèle, le logiciel (moteur), utilise une base de données d'exemples de gestes annotés (où chaque geste est associé à sa classe). Il s'agit de la phase d'apprentissage. La qualité du moteur est donc directement liée à la qualité des exemples.

Le moteur est capable d'apprendre sur peu d'exemples de gestes grâce aux caractéristiques que le moteur extrait (HIF3D) couplées au classifieur SVM. Afin de faire face à des variations intra/inter classes, le moteur utilise plusieurs classifieurs en parallèle. Tous ces classifieurs peuvent reconnaître l'ensemble des gestes, mais chacun est spécialiste d'un geste. Enfin, le moteur prend une décision en fonction des scores des différents classifieurs.

Le processus de décision

Nous pouvons distinguer deux types de scores, le classifieur spécialiste d'un geste « A » va donner un score pour chaque classe, mais on peut le considérer plus crédible pour la classe dont il est spécialiste. Par cette différentiation, le moteur dispose de deux seuils de décisions.

  • Un seuil fixé pour le score donné par le classifieur spécialiste du geste « A » pour un geste « A ».
  • Un seuil fixé pour les scores donnés pour un geste « A » par les classifieurs non spécialistes du geste « A ».
Le seuil « spécialiste » est appelé θ, le seuil non spécialiste est appelé Ψ. Le seuil Ψ est logiquement supérieur à θ (on accorde plus de crédibilité lorsque le score est donné pour un geste par son classifieur spécialiste).

Le processus de décision est illustré par la vidéo ci-dessous.

Gesture recognition engine of IRISA

The gesture recognition engine which we will use in this project is the result of a work of research teams named IntuiDoc and MimeTIC from IRISA's laboratory and, in particular, of a thesis done by Said Yacine Boulahiale on 11 July, 2018.

A gesture recognition software uses machine learning concepts in order to classify a geture among others. To learn a model, this software (the engine) uses a database with annotated samples in which a given gesture is associated with its class. This phase is called the learning phase. Afterwards it will use this model during the recognition phase in order to classify an unknown gesture from the database. Thus the quality of the engine is directly linked to the quality of the examples.

The decision process

We can distinguish two types of score, classifier which is specialized on gesture A will give a score for each class but we can consider it more credible for the class on which it's specialized. Via this differentiation, the engine disposes of two decision thresholds : One for the scores when the score is given for a gesture A by its specialized classifier, and another when a score is given to a gesture A by a classifier which is not specialized on the given gesture. The "specialist" threshold is called θ and the "non-specialist" threshold is called Ψ. Logically, threshold Ψ is superior to threshold θ (we give more crediblity when the score is given to a gesture by its specialized classifier).

The decision process is illustrated by the following video.

Framework pédagogique : Jeu de plateforme 2,5D

L’objectif de ce framework est de proposer aux étudiants du module AMRG de 5ème année un support de TP sous la forme d’un jeu. Ce nouveau TP a pour but de ressasser les points les plus importants du module à savoir l’apprentissage du moteur de jeu Unity3D, le fonctionnement du moteur de reconnaissance de gestes 3D et l’animation de modèles humanoïdes.

Educational framework : 2.5D platformer

Objective of this framework is to propose to students of the AMRG module a support for the practical work in form of a game. The goal of this new subject of the practical work is to highlight the most important points of the module namely the learning part of the Unity3D game engine, the operation of the 3D gesture recognition engine and the animation of humanoid models.

Démonstrateur de recherche : Simulation de sport de combat

Ce démonstrateur a pour objectif de mettre en valeur les capacités du moteur de reconnaissance de gestes. Celui-ci s'adresse à un public de chercheurs. La simulation de combat est un bon compromis pour prouver l'aptitude du moteur à reconnaître un ensemble de gestes. La détection des gestes est réalisé par une Kinect et l'utilisation d'un vidéo projecteur permet à l'utilisateur de s'immerger dans la démonstration.

Research demonstrator : Combat sport simulation

Objective of this demonstrator is to highlight the capacities of the gesture recognition engine. This demonstrator will be targeting a public formed of researchers. The combat simulation is a good way to prove the engine's ability to recognize a set of gestures. The gesture detection is done by a Kinect and the utilization of a video projector lets the user to immerse themselves into the demonstration.

Ensemble d'outils d'analyse et de paramètrage

Cet outillage permet aux étudiants comme aux développeurs de paramétrer en fonction des besoins les deux applications ci-dessus.
Parmi les différents outils développés pour ces applications on retrouve :

Set of analysis and parameterization tools

This set of tools let the students as well as the developpers to configure the following applications according to their needs.
We find among the different tools developped for these application :

Ajout de geste et visualisation d'un geste

  • La possibilité d'ajouter de nouveaux gestes dans la base de données du moteur afin d'enrichir la base de données
  • La possibilité de visualiser les gestes de la base de données du moteur, les trajectoires en 2D ou rejouer le geste en 3D, cela permet de s'assurer de la qualité des exemples

Addition of gesture and visualization of a gesture

  • Possibility to add a new gesture to engine's database in order to enrich it
  • Possibility to visualize the gestures of engine's database, their trajectories in 2D or replay the selected gesture in 3D. This allows to make sure that the quality of the examples is good enough.

Visualisation du processus de de décision

La visualisation d'histogrammes permettant de comprendre visuellement le processus de décision du moteur.

Visualization of the decision process

Visualization of histograms which allows to comprehend visually the decision process of the engine.

Evaluation des performances du moteur

La possibilité d'évaluer les performances du moteur.

Performance evaluation of the engine

Possibility to evaluate the engine's performance.

L'équipe

The team