Projet post-WIMP (2012-13) Gestes de la main pour le contrôle "aveugle" et à distance d'un téléphone mobileLionel CHARAIX, Céline MICHAUD, Matthieu PAUL, Vincent PEREZ, Amy-Félicy RAMAHAY MANDIMBY ![]() Pour le projet de Post-WIMP, nous avons réalisé un produit de contrôle aveugle et à distance d'un téléphone mobile à l'aide de gestes de la main. L'objectif est de pouvoir utiliser son téléphone sans avoir besoin ni de le voir, ni de le toucher. Description du Produit et MotivationsIl est parfois utile de pouvoir utiliser son téléphone portable dans le froid ou au ski, mais il est difficile de sortir son téléphone mobile de sa poche et de l'utiliser avec des gants ou dans des conditions météorologiques peu agréables. Avec le produit que nous décrivons dans ce rapport, nous souhaitons fournir aux utilisateurs un moyen de naviguer dans leur téléphone portable, et d'effectuer certaines actions (telles que téléphoner et écouter de la musique), sans voir ni toucher leur téléphone. Ce prototype procure donc la possibilité d'utiliser son téléphone sans avoir à le sortir de sa poche ou de son sac. Des retours audio permettent à l'utilisateur de se repérer dans les menus de son téléphone mobile. Pour permettre l'utilisation d'un tel dispositif, nous avons besoin d'un téléphone mobile, d'un kit mains-libres et d'un gant 5DT Data Glove Ultra doté de capteurs et donc capable de détecter les mouvements des doigts. On pourrait penser qu'il est déjà possible de contrôler son téléphone "à distance" sans avoir à sortir son téléphone de sa poche comme le fait Siri sur les derniers iPhone qui permettent le contrôle vocal. Mais l'intérêt de notre dispositif est aussi de pouvoir contrôler le téléphone de manière discrète et sans besoin d'émettre un son. SpécificationsPour réaliser notre prototype, et au vu des difficultés d'interfaçage entre le gant 5DT Data Glove Ultra et un téléphone portable, nous avons choisi d'implémenter un logiciel comportant une interface graphique représentant les actions possibles d'un téléphone mobile. Mais normalement, l'utilisateur n'a pas besoin de regarder un écran, le téléphone peut très bien rester dans sa poche. On a alors un retour audio, ce qui rend l'utilisation d'un système d'écoute indispensable. Les actions sont plus limitées que celles d'un smartphone actuel mais représentent au mieux les actions les plus utilisées. Le logiciel permet l'exploitation des données recueillies par le gant, la reconnaissance du geste en cour et le retour des actions sur l'interface graphique. Le matériel utilisé est donc :
Un certains nombre de gestes et d'actions ont été choisis pour pouvoir communiquer avec le téléphone. Nous avons repris certains gestes des interactions tactiles actuelles et avons essayé de trouver les gestes les plus intuitifs possibles pour les actions moins courantes (aller dans le répertoire, jouer/stopper une musique...). L'utilisateur a donc la possibilité d'utiliser son mobile avec les gestes décrits ci-dessous, chacun étant associé à une action particulière selon la situation :
Remarque : deux gestes différents peuvent avoir la même signification (par exemple le défilement avec un seul doigt et le défilement avec deux doigts) car il nous a semblé important que l'utilisateur puisse avoir le "choix" du geste suivant ce qu'il trouve le plus intuitif ou le plus facile. Si notre logiciel en vient à s'améliorer, nous pourrions penser à faire un défilement "lent" avec le geste "défilement à un seul doigt", un défilement plus "rapide" avec le geste "défilement à deux doigts". ImplémentationL'implémentation du logiciel de reconnaissance de geste et de communication gant/téléphone a été divisée en trois étapes :
Récupération des données fournies par le gantLa librairie fournie avec le gant 5DT Data Glove Ultra, permet de récupérer les données du gant, à savoir les angles des phalanges des doigts par rapport à la paume de la main, l'angle de pliure d'un doigt (autre que le pouce), et l'écartement entre chaque doigt. Le gant possède donc quatorze capteurs qui envoient les données à une fréquence de 150Hz. Exploitation des données, et reconnaissance du gesteNotre algorithme de reconnaissance des gestes se base principalement sur l'algorithme appelé "Dynamic Time Warping" (DTW). Ce formalisme est généralement utilisé lorsque l'on a besoin de mesurer la similarité de séquences ayant des rapidités différentes. Etant donné que les utilisateurs effectuent les gestes à des vitesses variables, le DTW nous a paru bien adapté au problème. La première étape consiste à réaliser un apprentissage pour chaque geste, c'est à dire que des utilisateurs réalisent plusieurs fois chaque geste afin de produire des données de référence qui vont être utilisées par l'algorithme. Ensuite, au cours de la reconnaissance, on acquiert à chaque instant les signaux émis par le gant, et on leur applique l'algorithme DTW qui, à l'aide des données de référence, renvoie le geste le plus probable d'avoir été effectué. Si aucun geste n'est suffisamment probable à un instant t, on considère que l'utilisateur est en position de repos. Nous avons utilisé l'implémentation du DTW fournie en libre distribution par Nick Gillian, chercheur au MIT s'étant penché sur ces problèmes de reconnaissance. Implémentation du simulateur de téléphoneL'interface joue le rôle du téléphone. Chaque geste de la main crée une action sur l'interface. Par exemple, un geste permet l'ouverture du répertoire, un autre la boîte vocale, un autre l'appel à un ami...etc. Voici une description rapide des actions possibles :
![]() Problèmes non résolusCertains problèmes subsistent lors de la reconnaissance des gestes. Tout d'abord, l'utilisation des données récupérées lors de l'apprentissage s'avère un peu plus compliquée que prévu, en particulier la détermination de seuils de tolérance pour décider si oui ou non on peut considérer qu'un geste donné a été reconnu parmi les éléments de la base d'apprentissage. Le fait est que la détermination de ces seuils dépend à la fois du geste considéré et de la personne qui a enregistré les données ayant servi à l'apprentissage. En pratique, ces seuils doivent idéalement être déterminés pour chaque groupe de gestes, et pour chaque utilisateur. Nous n'avons pas pu déterminer des seuils complètement satisfaisants, nous avons donc des problèmes pour trouver un bon compromis entre un nombre de reconnaissances erronées élevé et une importante difficulté à reconnaître le moindre geste. Certains gestes sont par ailleurs très difficiles voire impossibles à distinguer des autres, à l'instar du geste Raccrocher qui n'est quasiment jamais reconnu. Bien que l'envoi des ordres à l'interface soit fonctionnel, le problème de reconnaissance induit un deuxième problème: la segmentation de l'envoi des ordres en temps réel en fonction des reconnaissances effectuées. A l'heure actuelle, de nombreux ordres sont envoyés alors qu'ils sont erronés ce qui rend l'utilisation de l'interface via le gant difficile. Nous avons tenté de faire cette segmentation sans trouver de solution réellement satisfaisante au regard des résultats obtenus. Nous pensons néanmoins que la résolution du problème de reconnaissance pourrait rendre la résolution du problème de segmentation plus simple. Résultats et ÉvaluationTout le processus d'apprentissage et de reconnaissance a été implémenté et est pleinement fonctionnel. L'interface est complète et le lien avec le module de reconnaissance a été fait. L'apprentissage a été effectué grâce aux données des gestes des membres de l'équipe et de personnes extérieures au projet. Elle a abouti à la création de fichiers qui contiennent les données nécessaires à l'apprentissage. Un utilisateur peu donc tester la reconnaissance des gestes sans effectuer la phase d'apprentissage. Par contre, l'apprentissage et la reconnaissance donnent des résultats hétérogènes selon les personnes. Bien que les deux problèmes décris précédemment soient handicapants pour l'utilisation pratique du prototype, les résultats obtenus sont plus qu'encourageants. Pour un nombre important d'échantillons pour l'apprentissage, nous avons pu affiner la reconnaissance de manière significative. Par ailleurs, une personne effectuant seule l'apprentissage et testant la reconnaissance, obtiens des résultats concluants. La visualisation en temps réel des prédictions effectuées montre que les gestes sont, pour la plupart, correctement reconnus et au bon moment. Cela prouve que des seuils correctement affinés et un apprentissage correctement effectué pourrait permettre d'obtenir un prototype pleinement utilisable. D'un point de vue plus pratique, en utilisant le gant, la majorité des personnes ont trouvé qu'il était plus difficile de bouger les doigts avec le gant que sans gant, celui-ci gênant les mouvements. De plus, il est parfois compliqué pour les utilisateurs de faire certains gestes alors que ces mêmes gestes sont facile à faire pour d'autres, suivant la souplesse des doigts de chacun. Pour régler en partie ce problème, certaines commandes sont faisable avec plusieurs gestes différents. Améliorations possiblesConcernant l'interface, nous pourrions rajouter quelques fonctionnalités à notre prototype, comme par exemple la suppression d'un message dans la boîte vocale, ou encore la composition d'un numéro de téléphone quelconque. On pourrait également rajouter une option "numéros préférés" qui permettrait d'appeler rapidement (en un ou deux gestes) un contact enregistré dans une liste des numéros favoris. Il faudrait alors penser à utiliser d'autres gestes.
De plus, notre produit actuel ne contient qu'un petit nombre de contacts dans le répertoire, un faible nombre de musiques et de messages vocaux. Il faudrait donc penser à des gestes pour rendre plus rapide le défilement dans le répertoire et dans le lecteur de musiques. Concernant la partie traitement des données, plusieurs pistes d'améliorations sont envisageables.
ConclusionNotre prototype n'est pas tout à fait opérationnel mais est en bonne voie. La reconnaissance de geste est en cours de recherche (tâtonnements sur certains aspects). Nous aurions aimé créer un programme qui puisse reconnaître parfaitement les gestes et qui permettrait un contrôle absolu du téléphone mais nous avons conscience de la difficulté de cette tâche. Nous voulions aussi en faire plus mais, par manque de temps, nous n'avons pas pu atteindre nos objectifs. Nous pensons qu'il y a un réel avenir dans le contrôle de machine via des gestes du corps. De plus, de nouvelles formes de détection des gestes de la main sont en cours de création. Par exemple, il existe un projet visant à remplacer le gant par un simple bracelet, ce qui rendrait le système plus portatif. Notre projet pourrait alors être repris et amélioré afin de contrôler le téléphone grâce à des accessoires via Bluetooth beaucoup moins encombrants. Ce projet est bien sûr généralisable à d'autres appareils comme les ordinateurs ou autres. Le contrôle d'appareils via des gestes du corps pourrait être le futur moyen d'interaction avec les machines. |