Utilisation de RNN (LSTM) pour le système de reconnaissance des gestes


10

J'essaie de construire un système de reconnaissance des gestes pour classer les gestes ASL (American Sign Language) , donc mon entrée est censée être une séquence d'images provenant d'une caméra ou d'un fichier vidéo, puis elle détecte la séquence et la mappe à sa correspondance cours (dormir, aider, manger, courir, etc.)

Le problème est que j'ai déjà construit un système similaire mais pour les images statiques (aucun mouvement inclus), il était utile pour traduire des alphabets uniquement dans lesquels la construction d'un CNN était une tâche simple, car la main ne bouge pas tellement et la la structure de l'ensemble de données était également gérable car j'utilisais des keras et je prévoyais peut-être toujours de le faire (chaque dossier contenait un ensemble d'images pour un signe particulier et le nom du dossier est le nom de classe de ce signe ex: A, B, C , ..)

Ma question ici, comment puis-je organiser mon ensemble de données pour pouvoir le saisir dans un RNN en keras et quelles fonctions dois-je utiliser pour entraîner efficacement mon modèle et tous les paramètres nécessaires, certaines personnes ont suggéré d'utiliser la classe TimeDistributed mais je ne le fais pas avoir une idée claire sur la façon de l'utiliser en ma faveur et prendre en compte la forme d'entrée de chaque couche du réseau.

considérant également que mon ensemble de données serait composé d'images, j'aurai probablement besoin d'une couche convolutionnelle, comment serait-il possible de combiner la couche conv dans la couche LSTM (je veux dire en termes de code).

Par exemple, j'imagine que mon ensemble de données ressemble à ceci

structure de l'ensemble de données

Le dossier nommé 'Run' contient 3 dossiers 1, 2 et 3, chaque dossier correspond à son cadre dans la séquence

entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici

Donc Run_1 contiendra un ensemble d'images pour la première image, Run_2 pour la deuxième image et Run_3 pour la troisième, l'objectif de mon modèle est d'être formé avec cette séquence pour sortir le mot Run .


Quel ensemble de données utilisez-vous pour l'ASL?
Sam Johnson

Désolé mais nous avons enregistré notre propre ensemble de données et n'avons pas réussi à le publier, ce n'était pas tant que ça et n'a pas donné la précision attendue.
Anasovich

C'est certainement faisable et ne ressemble pas à trop de codage supplémentaire de l'article mentionné ci-dessous, mais je ne parle pas d'expérience car ce n'est pas une architecture que j'ai utilisée auparavant. J'espère que cet article vous orientera dans la bonne direction: machinelearningmastery.com/cnn-long-short-term-memory-networks
Ollie Graham

Réponses:


2

D'après ma compréhension, cela semble se résumer à un problème de classification multi-classes (chaque ensemble / séquence de gestes de la main correspondant finalement à un mot / symbole). Une architecture RNN / LSTM / GRU est un excellent point de départ, mais sera coûteux en calcul et plutôt lent à former. Cependant, si vous en avez absolument besoin, cela dépend de la structure de vos données et de la possibilité de traiter vos images comme un ensemble plutôt que comme une séquence.

Voici quelques idées potentielles:

  1. Commencez par configurer une couche CNN pour chaque dossier "RUN_ *", avec dropoutet / ou flatteningentre chaque couche.

  2. Commencez par configurer un seul vecteur long représentant toutes les étapes de la séquence, puis ajoutez quelques couches de CNN, également avec dropoutet / ou flattening.

Cela prendra un peu d'exploration et de réglage de votre côté pour voir ce qui fonctionne le mieux, et vous devrez choisir avec les mesures d'évaluation que vous souhaitez optimiser (par exemple, précision / rappel)

La raison pour laquelle je suggère un CNN est que, dans certains cas, les CNN peuvent fournir des performances similaires à un modèle récurrent, mais à une fraction du coût. Malheureusement, il est difficile de dire avec peu ou pas d'informations sur vos données.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.