• Aucun résultat trouvé

3.3 Reconnaissance d’actions

3.3.5 Classification au fil de l’eau et anticipée

Les résultats présentés précédemment ainsi que les différents travaux de l’état de l’art ont montré que les capteurs RGB-D (pour les trois couleurs et la profondeur) pouvaient être efficaces pour reconnaître des actions. Nous avons également montré qu’il était possible de classifier efficacement des actions même lorsque la personne n’était pas précisément en face de la caméra.

Dans des applications qui se veulent de fonctionner en temps réel, il est important de détecter au plus vite et au mieux l’action en cours. Ainsi, il peut être pénalisant d’analyser des séquences complètes avant de pouvoir classifier (comme le requièrent les travaux précédents). Dans les travaux faits avec Sid Ahmed Walid Talha en Master, nous avons étudié cette piste afin de permettre de classifier plus vite et au fil de l’eau les différentes actions.

Pour cela, il était important de travailler sur un descripteur original, calculable sur chacune des images au fur et à mesure de leur arrivée. Ce descripteur a été présenté précédemment, dans la section 3.3.2.2.

3.3.5.1 Système proposé : classification avec des HMMs

La figure 3.10 présente l’architecture générale du système proposé pour reconnaître les actions. Cette architecture générale comprend deux blocs. Le premier, apprentissage hors-ligne, permet d’extraire les informations du squelette, de faire un pré-traitement pour diminuer le bruit présent dans ces données, d’extraire le descripteur Body-part Directional Velocity puis d’entraîner des classifieurs basés sur des HMMs pour chacune des actions présente dans l’ensemble de données. Une fois ces modèles construits, la partie reconnaissance en temps-réel va se charger d’analyser le flux des données squelette arrivant de la Kinect.

Comme expliqué dans la partie concernant l’extraction d’information de ce chapitre, nous calculons un descripteur que nous avons appelé « Body-part Directional Velocity » et qui est adapté à une classification en ligne, car ne nécessitant que la connaissance de l’image en cours et de l’image et de la position précédente pour fonctionner. Par la suite, des Modèles de Markov Cachés (HMMs) avec des distributions des états de sortie modélisés par des Mixtures de Gaussiennes (GMMs) sont utilisés pour la classification (illustré par la figure 3.11).

FI G U R E3.11 – Illustration du processus de classification mis en place

Pour rappel, un modèle de Markov Caché (RA B I N E Ret JU A N G,1986) est un modèle statistique utilisé pour décrire

l’évolution de variables observables. Ces modèles sont principalement mis en œuvre pour travailler sur des séquences de données temporelles telles que la parole, le geste ou la reconnaissance d’activité. Les HMM sont basés sur deux processus stochastiques. Le premier est le processus des données observables, qui représente les mesures acquises. Le second est un processus modélisant ce qui n’est pas observable (caché) et qui peut être indirectement déduit en analysant la suite des données observées. Dans ce travail, nous avons choisi d’apprendre un HMM pour chaque action a à reconnaître.

La décision sera prise en utilisant le maximum de vraisemblance, celle-ci étant calculée grâce à l’algorithme Forward.

3.3.5.2 Résultats expérimentaux

Les résultats de ces travaux vont être présentés en deux parties. Après avoir rapidement présenté les deux ensembles de données utilisés (des bancs de tests de références), les premiers résultats vont comparer la méthode de classification (et notamment le nouveau descripteur) avec l’état de l’art, avant de présenter des résultats sur la « vitesse » (au sens précocité) de classification de l’algorithme.

3.3.5.2.1 Bancs de tests utilisés

Le premier ensemble de données utilisé, MSRAction3D, est le plus utilisé en reconnaissance d’actions. Il contient les données de profondeur et les données de squelettes et a été collecté par Microsoft Research. Il contient 20 actions différentes (dont le nom est laissé en anglais par clarté et cohérence avec la littérature) : high arm wave, horizontal arm wave, hammer, hand catch, forward punch, high throw, draw x, draw tick, draw circle, hand clap, two hand wave, side-boxing, bend, forward kick, side kick, jogging, tennis swing, tennis serve, golf swing, pick up and throw. Chacune de ces actions est faite par 10 personnes et répétée deux ou trois fois. Au total, l’ensemble contient 567 séquences. Comme discuté par W. LIet al. (2010) et afin de réalisé une comparaison avec l’état de l’art qui ait du sens, la subdivision en

trois sous ensembles de données a été conservée : AS1, AS2, AS3 comme montré par le tableau 3.9. L’apprentissage et le test sur les différents sous-ensembles sont faits séparément, les résultats sont ensuite additionnés pour avoir des données sur la base complète. Comme fait par W. LIet al. (2010), la moitié des sujets sont retenus dans une partie apprentissage et l’autre moitié dans la partie test, faisant ainsi une validation croisée relative au sujet.

Le second ensemble de données, Florence3D, a été, comme son nom l’indique, créé par l’université de Florence. Il contient également les séquences avec les données de profondeur ainsi que les données de squelettes. 9 actions différentes sont proposées : arm wave, drink from a bottle, answer phone, clap, tight lace, sit down, stand up, read watch, bow. Chaque action est réalisée 2 ou 3 fois par 10 sujets pour un total de 215 séquences. Nous avons, dans ce cas, suivi le protocole expérimental de SE I D E N A R Iet al. (2013) avec une validation croisée par sujets retenant à chaque tour un

VE N K A T A R A M A Net al. (2013) 77,50 63,10 87,00 75,90 C. CH E Net al. (2016) 96,20 83,20 92,00 90,50 MI R A N D Aet al. (2014) 96,00 57,10 97,30 83,50 CH A A R A O U Iet al. (2014) 91,59 90,83 97,28 93,23 VE M U L A P A L L Iet al. (2014) 95,29 83,87 98,22 92,46 DUet al. (2015) 93,33 94,64 95,50 94,49 CI P P I T E L L Iet al. (2016) 79,50 71,90 92,30 81,50 Z. LI Uet al. (2016) 86,79 76,11 89,29 84,07 Notre algorithme 91,40 91,07 96,23 92,90

TA B L E3.10 – Résultats (précision) de notre algorithme sur MSRAction3D en comparaison à différentes méthodes de la

littérature

sujet pour le test et le reste pour l’entraînement.

3.3.5.2.2 Reconnaissance d’actions humaines avec les HMMs et le descripteur BDV

Nous avons testé notre algorithme suivant le protocole décrit ci-dessus sur les deux ensembles de données. Les résultats sur le premier ensemble, MSRAction3D, sont donnés dans le tableau 3.10. Dans ce tableau, la précision de reconnaissance est comparée entre notre algorithme et différentes méthodes de la littérature, en utilisant bien sûr le même protocole de test. Les résultats montrent que notre méthode permet d’atteindre 92,9% de bonne classification, allant au-delà de quasiment tous les résultats de la littérature sur le sujet. La figure 3.12 présente en plus la matrice de confusion dans le cas des trois sous-ensembles de données. Nous y voyons que la plupart des actions sont bien reconnues. Des confusions « plus importantes » (mais restant raisonnables) se retrouvent sur des actions très similaires. Par exemple, dans le sous-ensemble AS2, « Hand Catch » n’est bien reconnue que dans la moitié des cas. On peut noter pour cette action des confusions, dans une séquence sur quatre, avec les actions « draw X » et « High arm wave ». Pour expliquer ceci, nous pouvons remarquer que l’action « Hand Catch » est caractérisée principalement lors de la partie « catching ». Comme dans ce cas nous ne travaillons qu’avec les données de squelette, ce moment est mal caractérisé, car le squelette n’a qu’un segment pour représenter chacune des mains. Ainsi, cette information manquante donne des résultats moins bons sur cette action.

Pour continuer cette validation, nous l’avons également lancée sur un second ensemble de données, Florence3D, sur lequel nous avons également comparé nos résultats avec l’état de l’art. Le tableau 3.11 résume cette analyse.

Algorithme Précision (% ) SE I D E N A R Iet al. (2013) 82,00 AN I R U D Het al. (2015) 89,67 DE V A N N Eet al. (2015) 87,04 CI P P I T E L L Iet al. (2016) 76,10 VE M U L A P A L L Iet al. (2014) 90,88 Notre algorithme 90,32

FI G U R E3.12 – Matrices de confusion sur la base MSRAction3D

FI G U R E3.13 – Matrice de confusion de notre algorithme sur la base Florence3D

Comme précédemment, nous notons que notre algorithme donne quasiment les meilleurs résultats ((VE M U L A P A L L I

et al.,2014) reste premier avec une légère avance sur notre algorithme). La matrice de confusion est donnée par la figure 3.13. Nous y voyons que les classes (5, 6, 7, 9) sont parfaitement reconnues alors que les classes 2 et 3 (Drink contre Phone Call), incluant toutes deux l’utilisation d’un objet, sont confondues plus fréquemment.

3.3.5.2.3 Vers une reconnaissance anticipée d’actions

Les résultats précédents ont montré l’efficacité du nouvel attribut proposé, le descripteur BDV. Afin que nous puissions reconnaître les activités au fil de l’eau et le plus tôt possible, le descripteur est généré image par image en calculant les positions et angles de chaque segments du squelette et leurs évolutions. La classification se fait ensuite dans la foulée. Pour valider cette approche d’un point de vue reconnaissance précoce d’actions, nous proposons donc un nouveau protocole expérimental sur les données que nous avions précédemment.

La figure 3.14 montre la valeur de la vraisemblance pour chaque HMM au fur et à mesure de l’exécution de l’action dans le cas de l’action « Side kick ». Dans ce cas, nous remarquons que, à partir de 20% de la séquence totale, la vraisemblance de la bonne action est supérieure à celle des autres HMMs et que ceci ne change pas d’ici à la fin de l’action. Dans cet exemple, nous sommes donc capables de reconnaître très rapidement l’action en cours. Nous pouvons également

FI G U R E3.15 – Boîtes à moustache indiquant la vitesse de convergence de la décision (pour obtenir une classification

stable) sur les trois sous-ensembles de MSRAction3D

Nous voyons donc avec ces résultats que nous sommes capables de converger assez rapidement vers une solution en grande majorité et que, en prenant une petite sécurité sur la plus grande moyenne, nous pouvons avoir une reconnaissance rapide de l’action pour améliorer l’expérience utilisateur dans nos applications.