SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/305241055
Détection, Suivi et Analyse du mouvement de la main dans une vidéo
Thesis · September 2006
CITATIONS
0
READS
307
1 author:
Some of the authors of this publication are also working on these related projects:
Hyperspectral Document Image Analysis View project
Object Tracking in Image Sequences for Surveillance Application View project
Khurram Khurshid
Institute of Space Technology
102 PUBLICATIONS   578 CITATIONS   
SEE PROFILE
All content following this page was uploaded by Khurram Khurshid on 03 February 2017.
The user has requested enhancement of the downloaded file.
UNIVERSITÉ RENE DESCARTES
UFR Mathématiques et Informatique
Rapport de Stage de DEA
Discipline: IPCC (Image)
2006
Détection, Suivi et Analyse
du mouvement de la main
dans une vidéo
par
Khurram KHURSHID
Encadrant
Mme Nicole Vincent
© (Khurram Khurshid) 2006
ii
La déclaration de l'auteur
J'affirme par la présente que je suis l'auteur unique de cette thèse.
J'autorise l'université Paris-5 pour prêter cette thèse à d'autres établissements ou individus
afin de la recherche savante.
Signature
J'autorise plus loin l'université Paris-5 pour reproduire cette thèse par la photo copiage ou par
d'autres moyens, au total ou en partie, sur demande d'autres établissements ou individus afin
de la recherche savante.
Signature
iii
Abstract
Ce rapport présente une méthode pour l'identification de geste en utilisant le flot-optique
pour l'analyse du mouvement de la main. La détection de la main et le suivi dans une
séquence vidéo est un domaine qui a beaucoup d'applications potentielles. Par exemple
l'identification de la langue des signes, l’identification et l'interprétation de geste dans une
vidéo conférence. Mais, l'application visée dans ce cas-ci est d'enlever certains gestes non
désirés dans une séquence vidéo.
Le travail est principalement divisé en trois étapes. La première étape est la détection de la
région de la main dans une image de la vidéo. Il est fait en employant la détection de couleur
de la peau, la détection de contour, et la détection de mouvement dans la vidéo. Ensuite, la
main doit être suivie dans le reste des images de la vidéo. La dernière étape est d'analyser son
mouvement et de classifier le mouvement qui doit être enlevé ou non. Le flot-optique est
employé pour cette analyse. La phase dominante est découverte, dans chaque frame, pour la
région de la main. Cette phase dominante est codée et analysée pour chaque frame. Le
mouvement est classifié sur la base de cette analyse de la phase dominante. Les résultats
obtenus en utilisant cette approche sont très bons.
iv
Remerciements
Je voudrais remercier ma responsable, Pr. Nicole VINCENT, pour m'avoir donné la
chance d'explorer une carrière de recherche dans le domaine du traitement d'image et
spécifiquement dans le champ de l'identification et reconnaissance du geste. Son appui
continuel, sa perspicacité technique, et son attachement à cette recherche ont rendu cette
occasion la plus agréable. Je voudrais également la remercier d'être très accessible et utile,
pour les conseils qu'elle a fournis pendant ce projet de recherche, et de prendre le temps
d'expliquer les aspects techniques et pratiques de l'identification du geste.
Merci aussi à tous les membres de l’équipe SIP qui m’ont apporté leurs conseils et leur
soutien. Un grand merci en particulier à Nicolas Lomenie, G. Erus, F. Shen, B. Dolez et I.
Siddiqi qui sont toujours là pour m’aider.
v
Sommaire
La déclaration de l'auteur......................................................................................................ii
Abstract...................................................................................................................................iii
Remerciements ....................................................................................................................... iv
Sommaire................................................................................................................................. v
Liste des figures.....................................................................................................................vii
Liste des Tableaux................................................................................................................viii
Chapitre 1 Introduction ......................................................................................................... 1
1.1 Vue d'ensemble ............................................................................................................... 1
1.2 État de l'art....................................................................................................................... 1
1.3 Mon travail...................................................................................................................... 2
1.3.1 Les différentes étapes ............................................................................................... 2
1.3.2 Base de données........................................................................................................ 4
Chapitre 2 Détection et suivi de la main............................................................................... 5
2.1 Détection de la main........................................................................................................ 5
2.1.1 Résidu du mouvement .............................................................................................. 6
2.1.2 La segmentation de la couleur de la peau................................................................. 7
2.1.3 Détection de contour................................................................................................. 9
2.1.4 Combinaison des images ........................................................................................ 10
2.1.5 Identification de la région....................................................................................... 12
2.2 Suivi de la main............................................................................................................. 13
2.2.1 Trajectory Justification Algorithm ......................................................................... 13
2.2.2 Localisation de la région......................................................................................... 14
Chapitre 3 Reconnaissance des gestes................................................................................. 15
3.1 Vue d'ensemble ............................................................................................................. 15
3.2 Choix des dispositifs ..................................................................................................... 15
3.3 Analyse du mouvement................................................................................................. 16
3.3.1 Flot-optique ............................................................................................................ 16
3.3.2 Distribution de la phase .......................................................................................... 17
vi
3.3.3 Codage de la phase dominante ............................................................................... 17
3.3.4 Classification de mouvement.................................................................................. 18
Chapitre 4 Implémentation et Résultats............................................................................. 20
Conclusion et Perspectives ................................................................................................... 23
Appendice A L'écoulement / Flot-Optique......................................................................... 25
A.1 Quelques méthodes pour déterminer l'écoulement optique.......................................... 25
A.2 Méthode de Horn et Schunck....................................................................................... 25
Appendice B Détecteur de bord de Sobel ........................................................................... 29
B.1 Comment cela fonctionne............................................................................................. 29
Appendice C Modèle de couleur de peau............................................................................ 32
vii
Liste des figures
1.1 : Les trois étapes principales du travail
2.1 : Les étapes de la détection de la main
2.2 : (a) l’image Fi (b) l’image Fi+1 (c) l'image de différence entre Fi et Fi+1
2.3 : (a) l’image Fi (b) l’image avec R > V > B (c) l’image avec la model de la peau
2.4 : (a) l’image Fi (b) Filtre de Sobel (c) Avec seuil
2.5 : (a) l’Image de mouvement (b) l’Image de peau (c) l’image de bord (d) l’image
de combinaison
2.6 : l’Image après identification de la plus grande région
3.1 : (a) Une boule en rotation (b) Ses vecteurs de mouvement
3.2 : (a) 8 quadrants pour distribution de la phase (b) Distribution de phase dans 8 quadrants
3.3 : Méthode de codage
3.4 : L’identification des frames du geste spécifique
4.1 : Comparaison des méthodes différentes
C.1 : Masques de convolution de Sobel
viii
Liste des Tableaux
Tab 4.1 : Comparaison des méthodes différentes
Tab 4.2 : Valeurs réelles et valeurs calculées de la début et la fin de la geste identifié en
chaque vidéo
1
Chapitre 1
Introduction
1.1 Vue d'ensemble
La détection de la main et le suivi dans une séquence vidéo est un domaine qui a
beaucoup d'applications potentielles. Par exemple l'identification de la langue des signes,
l’identification et l'interprétation de geste dans une vidéo conférence. Mais, l'application
visée dans ce cas-ci est d'enlever certains gestes non désirés de la séquence vidéo. Cependant
ce champ est étroitement lié à la détection et à l'identification de visage, ainsi beaucoup
d'approches peuvent également être employées ici.
1.2 État de l'art
Beaucoup de recherche a été faite dans ce domaine et la recherche est toujours active.
Différentes méthodes sont employées pour l'identification de geste. Par exemple, pour la
détection de la main, les méthodes comme la segmentation de couleur de peau, détection de
contour [2], et résidu de différence de mouvement [1], sont utilisées. La méthode de la
segmentation de peau a une limitation, le fond devrait être simple. La méthode de résidu de
différence de mouvement a une limitation, elle détectera n'importe quelle chose qui se
déplace le plus rapidement dans la vidéo [1]. Alors si la main ne se déplace pas, elle ne sera
pas détectée.
Pour le suivi de la main, les méthodes employées fréquemment sont le filtre de Kalman
[17], les filtres de particules et l'algorithme de condensation [6]. Ces méthodes se servent de
la « prediction-update framework ». Cependant, ces méthodes ont besoin d'initialisation
manuelle et aussi elles ne peuvent pas indiquer quand le suivi a perdu l'objet. Le suivi peut
être fait en utilisant l'algorithme de Lukas Kanade [12] mais il est « computationally » cher et
non approprié aux applications en temps réel [11]. Il y a d'autres méthodes de suivi comme
les traqueurs magnétiques [14,15] et de cheminement basés sur un gant mais ils ont besoin
d'un équipement spécialisé qui doit être porté.
Des modèles de Markov cachés (Hidden Markov Models) sont, la plupart du temps,
employés pour l'identification et le reconnaissance de geste [4]. Pour chaque geste, il y a un
modèle séparé. Cette approche est très utile dans les cas où la forme exacte de la main est
exigée [5]. Mais si la forme exacte n'est pas exigée, cette méthode est trop compliquée. Des
réseaux neuronaux sont également employés pour l'identification de geste. [16]
2
1.3 Mon travail
Mon travail est fondamentalement focalisé autour de l'analyse du mouvement de la main et
de l'identification d'un mouvement spécifique de la main dans une vidéo. Ces parties
spécifiques, dans la vidéo, sont identifiées et puis enlevées. Dans ce cas-ci, ce mouvement
spécifique est le grattement du visage avec la main. La méthode que je propose est robuste
même dans un fond complexe. J'ai employé des approches différentes et trouvé les méthodes
optimales pour ce travail. Le travail peut être divisé en 3 tâches
1.3.1 Les différentes étapes
Il y a trois taches principales. Celles-ci sont indiquées dans la figure suivante.
Fig1.1. Les trois étapes principales du travail
Détection
J'ai insisté sur la bonne détection de la main parce que si la détection de la main est bonne,
le suivi est plus facile. Ainsi à cette fin, j'ai employé une combinaison de méthodes
différentes. Tout d'abord, j'ai construit l'image de la différence de mouvement entre 2 frames
consécutives. Ici une hypothèse de base est que la main est l'objet qui se déplace le plus vite
dans la vidéo. Ainsi la région de la main sera plus marquée dans l'image et peut être
identifiée facilement.
Reconnaissance de geste
Détection de la main
Suivi de la main
3
Ensuite, j'ai considéré l'image des contours. Elle a été faite à l'aide du filtre de Sobel. J'ai
également essayé le filtre de Canny mais les résultats étaient les mêmes dans les deux cas.
Ainsi j'ai continué avec le filtre de Sobel.
Après, j'ai calculé l'image de couleur de peau. Pour cela j'ai employé un fait simple que
tous les Pixels de peau ont R > V > B, [2]. Mais cela ne donne pas de bons résultats. Ainsi
j'ai fait le modèle de couleur de la peau « skin color modeling » et les résultats étaient très
bons dans ce cas-ci.
Ensuite ayant les trois images binaires ci-dessus, j'effectue l'opération ET sur les 3 et
j'obtiens une image de combinaison. Sur cette image, j'effectue l'opération de dilatation et
puis j'identifie la plus grande région. Cette région est la main.
Suivi
Pour le suivi, j'ai employé l'Algorithme de JUSTIFICATION de TRAJECTOIRE
« Trajectory Justification Algorithm ». Des variations du centre de la main détectée plus tôt
sont notées. Une limite de suivi « tracking-limit » est placée au commencement et si la main
détectée dans la deuxième frame est hors de cette limite, le traqueur est restauré. La plus
grande région dans cette limite est identifiée encore dans la deuxième frame. Après cela, ET
de l'image de peau et de bord est exécuté et la main est localisée en utilisant le centre de la
plus grande région détectée.
Reconnaissance
La partie la plus importante de ce travail est l’identification du geste. Pour ça, certaines
caractéristiques de la main sont identifiées. Les paramètres que je garde sont : le centre de la
main, le tableau des normes des vecteurs de mouvement, l'histogramme des phases des
vecteurs de mouvement et la phase dominante.
Pour l'analyse de mouvement, le flot optique est calculé en utilisant l'algorithme de Horn et
Chunck. Les vecteurs de mouvement de la région de la main sont analysés. La distribution de
phase est calculée pour les 8 quadrants. La phase dominante est localisée et codé et alors elle
est tracée pour chaque frame. Le mouvement spécifique de la main est classifié en utilisant ce
graphique.
4
Les résultats obtenus en utilisant cette approche sont très bons. Ainsi elle peut être
employée, à l'avenir, pour identifier les différents types de gestes.
1.3.2 Base de données
La taille de la base de données pour l’apprentissage et aussi pour le test est également très
importante. Si les données sont bonnes, les résultats sont bons aussi. Pour ce projet, 4
personnes ont été employées dans les vidéos. Un bon appareil photo de haute résolution
n'était pas disponible, alors les vidéos ont été filmées dans une chambre en utilisant une
webcam normale. Pour chaque personne, 4 vidéos ont été filmées à la résolution de 320 x
240. Le débit des frames a été placé à 20 frames/sec. De ces 16 vidéos, 4 vidéos (1 vidéo de
chaque personne) sont employées dans l’apprentissage du modèle de couleur de la peau, et
dans l’apprentissage de l'analyse de mouvement de la main.
En outre, 4 autres vidéos d’une autre personne, d'un appareil photo différent et des
résolutions différentes ont été également employées pour le test.
5
Chapitre 2
Détection et suivi de la main
2.1 Détection de la main
Différentes méthodes sont employées pour la détection de la main, par exemple, les
méthodes de la segmentation de couleur de peau, de détection de contour, et de résidu de
différence de mouvement [1], sont utilisées. La méthode de la segmentation de peau a une
limitation, le fond devrait être simple. La méthode de résidu de différence de mouvement a
une limitation, elle détectera n'importe quelle chose qui se déplace le plus vite dans la vidéo.
Alors si la main ne se déplace pas, elle ne sera pas détectée.
J'ai insisté sur la bonne détection de la main parce que si la détection de la main est bonne,
le suivi est plus facile. Ainsi à cette fin, j'ai employé une combinaison des méthodes de
segmentation de couleur de peau, de détection de contour, et de résidu de différence de
mouvement. Ma méthode peut être décrite dans la figure2.
Fig2.1. Les étapes de la détection de la main
Image de la peauImage de la motion Image du bord
ET image
Région identification
6
Je trouve l'image de peau, l'image de bord et l'image de mouvement et puis fais ET
opération sur elles. Après, je fais marquer et trouve la plus grande région qui est la main.
2.1.1 Résidu du mouvement
Dans mon système, le mouvement de l'objet fournit des informations importantes et utiles
pour la localisation et l'extraction d'objets. Pour trouver l'information de mouvement, je
suppose que le geste d'entrée est mobile. Quand les objets se déplacent dans l'espace en
fonction du temps (un ordre d'image), le détecteur de mouvement peut suivre les objets
mobiles en examinant les changements locaux de niveau de gris. Soit Fi (x, y) la frame i de la
séquence et soient Di (x, y) les images de différence entre Fi (x, y) et l'image (i+1).
Di (x, y) = Fi (x, y) - Fi+1 (x, y) (1)
Où Fi (x, y) et Di (x, y) sont toutes des images 320×240, et Di (x, y) est transformée en une
image binaire définie comme suit
1, Fi (x, y) - Fi+1 (x, y) > seuil
Di (x, y) = (2)
0, sinon
Après avoir extrait la région mobile de l'objet, nous pouvons appliquer un seuillage sur la
différence d'images pour extraire la région mobile possible dans le fond complexe. Je
constate que les méthodes conventionnelles de « seuillage », ne sont pas appropriées au cas
de détection du mouvement. Au lieu de cela, j'emploie une technique simple de
« thresholding » pour extraire des régions mobiles.
Le seuil pour la détection de mouvement est déterminé comme Th=0.2μ, où le μ est la
moyenne lumineuse de l'image capturée Fi(x, y). J’ai choisi le facteur poids = 0.2 parce que
on n'a pas besoin d'image segmentée fortement précise. Alors 0.2 est suffi. Cette technique de
« thresholding » n'est pas très sensible à la vitesse du mouvement de la main.
7
(a) (b)
(c)
Fig2.2. (a) l’Image Fi (b) l’Image Fi+1 (c) l'image de différence entre Fi et Fi+1
2.1.2 La segmentation de la couleur de la peau
La peau peut être facilement détectée en employant l'information de couleur [2]. D'abord,
nous employons la contrainte que R > V > B, pour trouver les régions de couleur de peau qui
peuvent inclure un éventail de couleurs, telles que le rouge, le rose, le brun, et la couleur
orange. Par conséquent, on trouve beaucoup de régions autres que les régions de peau.
Cependant, ces régions de non-peau satisfont notre contrainte si nous ne disposons d'aucune
information de mouvement, par exemple une région dans la couleur orange ne sera pas mal
interprétée comme région de la main. Mais les résultats ne sont pas bons avec cette méthode.
8
(a) (b)
(c)
Fig2.3. (a) l’Image Fi (b) l’Image avec R > V > B (c) l’Image avec le modèle de la peau
La deuxième méthode que j'applique repose sur l'obtention d'un modèle de la couleur de la
peau. Pour obtenir le modèle, nous obtenons les points de peau de la vidéo de formation et
les analysons pour obtenir la valeur moyenne ‘m’. Nous obtenons également une matrice de
covariance et trouvons la distance de Mahalanobis de la valeur moyenne avec chaque Pixel
qui satisfont la condition de R > V > B.
Di = (xi-m)T COV -1 (xi-m)
9
Après l’apprentissage, nous obtenons également une valeur- seuil. Après avoir découvert les
distances, nous appliquons le seuil pour obtenir l'image de peau.
255 (peau), si Di < seuil
Pixel valeur =
0 (non-peau), sinon
Les détails et les valeurs réelles sont en Annexe C
2.1.3 Détection de contour
La détection de bord est appliquée pour séparer la région du bras de la région de la main. Il
est facile de constater qu'il y a moins de bords sur la région du bras que sur la région de la
paume. J'ai essayé avec le détecteur de Canny et également le détecteur de Sobel, et j’ai
constaté que les résultats étaient plus ou moins les mêmes. Alors finalement, j'ai employé le
détecteur de bord de Sobel parce que c’était calculatoirement moins cher. (Détail de filtre de
Sobel en Annexe B).
Comme nous ne sommes pas intéressé par les bords mêmes légers, ainsi nous appliquons
un seuil. Après apprentissage, nous avons constaté que le seuil était 200.
255, si valeur de pixel > seuil
Pixel valeur =
0, sinon
Des images sont montrées ci-dessous en fig 2.4
10
(a) (b)
(c)
Fig2.4. (a) l’Image Fi (b) Filtre de Sobel (c) Avec seuil
2.1.4 Combinaison des images
L'information de gestes de main se compose du mouvement, de la couleur de peau et du
dispositif de bord. Nous employons le `logique ET' pour combiner ces trois types
d'information
Ci(x,y) = Di(x,y) Si(x,y) Ei(x,y)
11
Là où le Di(x,y), le Si(x,y) et le Ei(x,y) indiquent le mouvement, la couleur de peau et les
images de bord. L'image combinée se compose d'une grande région dans le secteur de paume
et de quelques petites régions dans le secteur du bras. On peut séparer ces deux régions pour
assigner la région de la main.
(a) (b)
(c) (d)
Fig2.5. (a) Image de mouvement (b) Image de peau (c) Image de contour (d) Image de combinaison
12
2.1.5 Identification de la région
Une méthode simple pour l'identification de région est de marquer chaque région, dans
l’image de combinaison, avec un nombre entier unique. C'est le processus de marquage des
composantes connexes [2]. Après ce marquage, la plus grande étiquette de nombre entier
indique le nombre de régions. Les petites régions peuvent être traîtées comme du bruit et être
enlevées. Mais cette méthode est lente. Aussi j'ai employé la méthode de détection de
contours et d'affectation d'une étiquette couleur.
Pour trouver les composants connexes, nous dilatons l'image de combinaison. Ensuite,
nous trouvons les contours de chaque région. Nous assignons une couleur à chaque
composante. Pour finir, nous trouvons la région de couleur qui est la plus grande. Nous
trouvons le centre de gravité de cette région et puis dessinons une boîte englobante de largeur
et longueur fixées autour de ce centre. Cette région est la région de la main. (Fig 2.6)
Fig2.6. l’Image après identification de la plus grande région
Comme nous n'avons aucune limitation qui impose au fond d'être fixe et que nous
permettons à de petits objets de se déplaçer dans le fond, quelquefois, la main n'est pas la
plus grande région marquée. S'il y a un autre object de la couleur de la peau qui se déplace
plus rapidement, la détection peut échouer. Ainsi nous profitons de la contrainte de régularité
ou de persistance de mouvement et utilisons l'algorithme de justification de trajectoire pour
identifier finalement la région de la main. Les détails sont dans la section suivante.
13
2.2 Suivi de la main
Pour le suivi de la main, les méthodes employées fréquemment sont le filtre de Kalman
[17], les filtres de particules et l'algorithme de Condensation [6]. Ces méthodes se servent de
la « prediction-update framework ». Cependant, ces méthodes ont besoin d'initialisation
manuelle et aussi elles ne peuvent pas indiquer quand l'objet suivi est perdu. Le suivi peut
être fait en utilisant l'algorithme de Lukas Kanade [12] mais il est cher en temps de calcul et
non approprié aux applications en temps réel [11]. Il y a d'autres méthodes de suivi comme
les traqueurs magnétiques [14,15] et de cheminement basé sur un gant mais elles ont besoin
d'équipement spécialisé pour fonctionner.
Pour le suivi, nous avons employé l'Algorithme de JUSTIFICATION de TRAJECTOIRE
« Trajectory Justification Algorithm ». Les variations du centre de la main détectées plus tôt
sont notées. Une limite de déplacement est placée au commencement et si la main détectée
dans la deuxième frame est hors de cette limite, le suivi est abandonné. La plus grande
région, dans cette limite, est identifiée encore dans la deuxième frame. Après cela, l'image
conjonction des images de peau et de bord est calculée et la main est localisée en utilisant le
centre de la plus grande région détectée.
2.2.1 Trajectory Justification Algorithm
Fondé sur l'hypothèse que l'objet de la main se déplace sans à-coup entre les deux frames
consécutives, nous développons notre version de l’algorithme de JUSTIFICATION de
TRAJECTOIRE « trajectory justification algorithm ». Nous supposons que la main se
déplace à vitesse constante. Sur la frame courante Fi, nous obtenons le centre, Pci , de la main
extraite. Nous assumons une trajectoire douce/ lisse, ainsi la variation de Pci est dans un
certain éventail « TRACKER_LIMIT ». Dans notre cas, cette limite est fixée à 10 préciser
l'unité ?? après la formation. Si la main détectée dans la deuxième frame Fi+1 est hors de cette
limite, le suivi est abandonné. La plus grande région, dans cette limite du centre, est
identifiée encore dans la deuxième frame. C'est ensuite un processus de bouclage.
 Si Pci(x,y) – Pci+1(x,y) > TRACKER_LIMIT
 Alors, Trouver une autre composante dans la zone
 Et s'il n'y a aucune composante dans la limite,
 Maintenir Pci pour la frame Fi
14
Ainsi de cette façon, nous obtenons les centres de la main dans chaque frame. Nous les
gardons comme dispositifs.
2.2.2 Localisation de la région
Pour trouver une région plus précise de main, nous localisons la main. La position de la
main a été trouvée en employant l'information de mouvement, de peau et de bord. Parfois, les
endroits identifiés ne seront pas au centre de la vraie région de la main. C'est parce que
l'information extraite est située sur la frontière de l'objet mobile. Par conséquent une certaine
amélioration est nécessaire.
Pour ce processus, nous obtenons une image de combinaison des images de peau et de
contours.
Ai(x,y) = Si(x,y) Ei(x,y)
Maintenant près du centre déjà détecté, nous trouvons un nouveau centre des points de
frontière dans cette image de combinaison Ai. Puis, nous dessinons une boîte englobante de
largeur et longueur fixées autour de ce centre. Nous gardons ce nouveau centre comme
dispositif. Les résultats prouvent que ces méthodes fonctionnent vraiment bien pour le suivi
de la main.
Ainsi, après l'étape de détection et de suivi, nous avons une région de la main bien définie
dans chaque frame de la vidéo. Nous avons également, le centre de la main, en tant que
dispositif primaire. Maintenant nous faisons l'analyse du mouvement de cette région de la
main pour identifier le geste. L'analyse de mouvement est donnée en détail dans le prochain
chapitre.
15
Chapitre 3
Reconnaissance des gestes
3.1 Vue d'ensemble
Pour la reconnaissance des gestes, les modèles de Markov cachés (Hidden Markov Models)
sont, la plupart du temps, employés [2]. Pour chaque geste, il y a un modèle séparé. C'est très
utile dans les cas où la forme exacte de main est exigée [5]. Mais si la forme exacte n'est pas
exigée, cette méthode est trop compliquée. Des réseaux neuronaux sont également employés
pour l'identification de geste [16].
Dans ma méthode, certaines caractéristiques de la main sont identifiées. Les primitives que
nous gardons sont le centre de la main, le tableau des modules des vecteurs de mouvement,
l'histogramme des phases des vecteurs de mouvement et la phase dominante. Pour l'analyse
de mouvement, le flot optique est calculé en utilisant l'algorithme de Horn et Chunck.
(Détails en annexe A). Les vecteurs de mouvement de la région de la main sont analysés. La
distribution de phase est découverte pour les 8 quadrants. La phase dominante est localisée et
codée et puis elle est tracée pour chaque frame. Le mouvement spécifique de la main est
classifié en utilisant ce graphique.
3.2 Choix des dispositifs
Nous devons avoir quelques primitives qui représentent la main et son mouvement. Les
primitives que nous gardons sont :
 Le Centre de la main détectée
 Le tableau des modules des vecteurs de mouvement
 L’histogramme des phases des vecteurs de mouvement
 La phase dominante.
Nous avons déjà le centre de la main. Pour les autres caractéristiques, nous devons analyser
le mouvement de la main.
16
3.3 Analyse du mouvement
Dans la vidéo, la chose la plus importante est le mouvement de la main. Il y a translation de
la main, et il y a également mouvement souple des doigts. Ainsi nous devons estimer le
champ de mouvement entre deux frames consécutives. L'évaluation de mouvement est basée
sur les gradients espace temporels d'intensité de l'image, appelés l'écoulement optique ou
flot-optique.
3.3.1 Flot-optique
Le Flot-Optique ou écoulement optique est un concept pour estimer le mouvement des
objets dans une représentation visuelle. Typiquement le mouvement est représenté par des
vecteurs commençant ou se terminant aux Pixels dans l'image numérique. [8]
L'écoulement optique est utile dans l'identification de modèle, la vision par ordinateur, et
d'autres applications de traitement d'image. On le lie étroitement à l'évaluation de mouvement
et à la compensation de mouvement. Souvent l'écoulement optique de limite est employé
pour décrire un champ dense de mouvement avec des vecteurs à chaque Pixel, par opposition
à l'évaluation de mouvement ou à la compensation qui emploie des vecteurs pour des blocs
de Pixels, comme dans les méthodes visuelles de compression telles que le MPEG. Certains
considèrent employer l'écoulement optique pour les systèmes d'évitement de collision et
d'acquisition d'altitude pour les véhicules micro d'air.
(a) (b)
Fig. 3.1 : (a) Une boule en rotation (b) Ses vecteurs de mouvement
Le Flot-Optique est l'évaluation de mouvement basée sur les gradients espace temporels
d'intensité d'image. Il y a des différents algorithmes pour trouver le flot-optique, mais nous
avons employé l'algorithme de Horn et Chunck (Détails en annexe A).
Ensuite ayant le flot d'écoulement, nous étudions la distribution de phase de la région de la
main.
17
3.3.2 Distribution de la phase
Nous devons analyser la phase des vecteurs de mouvement, dans la région de la main. Pour
cela, nous analysons la distribution de la phase dans les 8 quadrants. Nous trouvons
l’histogramme des phases des vecteurs de mouvement pour chaque frame.
(a)
(b)
Fig. 3.2 : (a) 8 quadrants pour distribution de la phase (b) Distribution de phase dans 8 quadrants
3.3.3 Codage de la phase dominante
En raison de différents doigts se déplaçant, nous avons des vecteurs dans différentes
directions. Dans chaque frame, nous trouvons la phase dominante. Nous avons fait notre
propre système de codage pour la phase dominante. Nous codons le quart de cercle de la
phase dominante. Nous gardons ce code comme caractéristique de chaque frame. Ce code se
nomme identifiant de phase dominante.
18
Fig. 3.3 : Méthode de codage
Ce codage est basé sur l'analyse de mouvement du geste à reconnaître. Quand une
personne se gratte, les vecteurs de mouvement passent du 2ème et 3ème quart de cercle au
6ème et 7ème quart de cercle. Ainsi ce sont les centres d'intérêt principaux. Nous devons
trouver les frames dans lesquelles la phase dominante change rapidement du 2ème et 3ème
quart de cercle au 6ème et 7ème quart de cercle.
3.3.4 Classification de mouvement
Pour trouver la séquence des frames où la phase dominante change rapidement du 2ème et
3ème quadrant au 6ème et 7ème quadrant, nous faisons le graphique d'identification de la
phase dominante de chaque frame. (Fig. 3.4)
Dans ce graphique, nous recherchons les régions où il y a des variations soudaines de 2 a -
2. Nous avons une condition que cet intervalle de grattage doit être assez long pour que la
personne répète au moins deux fois un geste. Après l'expérimentation, nous avons découvert
qu'il y a au moins 8 – 10 frames de mouvement des doigts du haut vers le bas, pendant le
grattage. Ainsi nous recherchons la région où ce modèle du haut en bas est suivi au moins 4
fois (personne raye 2 fois). Cette région représente le geste que nous recherchons.
22
-2 -2
-1 -1
11
19
Fig. 3.4 : l’identification des frames du geste spécifique dans le graphique de la phase dominante
Pour vérifier que ce mouvement est à proximité du visage, nous obtenons les coordonnées
du visage en utilisant l'image de base de peau. La plus grande région est le visage. Quand ce
mouvement identifié de la main est devant le visage, alors nous devons supprimer de la vidéo
ce passage.
Nous obtenons le début et la fin de ce modèle du mouvement identifié. Les dates de début
et de fin sont indiquées. Nous enlevons les frames de la vidéo correspondantes et
reconstruisons une nouvelle vidéo qui est sans grattage. Il ya une soumission pour ce travail
[18].
temps
Phase Identifier
2
1
-1
-2
Région d’intérêt
20
Chapitre 4
Implémentation et Résultats
Dans les expériences, le sujet se tient en état normal d'éclairage, et a utilisé une main pour
faire des gestes de la main. Il n'y a aucune limitation sur la nature du fond. Nous pouvons
permettre quelques petits objets se déplaçant sur le fond qui ne seront pas extraits et ne seront
pas traités car une main est mobile. Le geste que nous cherchons à identifier est de se gratter
n'importe quelle partie du visage par la main.
Le geste de la main est exécuté 4 fois par 4 individus différents. Donc il y a 16 vidéos
différentes. Les vidéos ont été filmées dans une chambre en utilisant une webcam normale.
Les vidéos ont été filmées à la résolution de 320 x 240. Le débit des frame a été fixé à 20
frames/sec. De ces 16 vidéos, 4 sont employées pour l’apprentissage du modèle de couleur de
la peau, et dans l’apprentissage de l'analyse de mouvement de la main. Des valeurs actuelles
du modèle de couleur de peau sont indiquées en annexe C.
La programmation est faite en Visuel C++ en utilisant des librairies de OpenCV. La
machine utilisée pour les tests est équipée d'un Pentium IV processeur de 3.0 gigahertz et
1GO de RAM.
Le modèle obtenu pour chaque personne est un peu différent en raison de différentes tailles
de main, et aussi parce que chaque personne fait le geste d'une manière légèrement différente
et à une vitesse différente de la main. Pour rendre le système robuste, l'apprentissage a été
fait sur 4 vidéos, 1 de chaque personne. Les résultats obtenus après étaient très satisfaisants.
91.6% fois, le geste a été correctement identifié dans la vidéo. Ce pourcentage pour la
méthode de résidu [1] de mouvement est seulement 58.33%.
Les vidéos où le geste n'a pas été correctement identifié étaient celles où la personne n'a
pas fait le geste de manière correcte ou a fait le geste dans une durée très courte. Des résultats
globaux sont montrés dans la table 4.1.
21
Conditions Identification
correcte du
mouvement
Identification
partielle du
mouvement
Identification
incorrecte du
mouvement
Résultats
%
Méthode de
Motion Résidu [1]
4 3 5 58,33%
Notre méthode 9 2 1 91,67%
Sans modèle de
peau
6 4 2 75%
Tab 4.1 : Comparaison des différentes méthodes
Graphiquement, cela peut être montré comme :
0
1
2
3
4
5
6
7
8
9
Motion
Residue
Our
Method
Without
skin color
modeling
correct
partially correct
incorrect
0
1
2
3
4
5
6
7
8
9
Motion
Residue
Our
Method
Without
skin color
modeling
correct
partially correct
incorrect
Fig 4.1 : Comparaison des différentes méthodes
Nous pouvons voir que sans employer le modèle de la couleur de peau, les résultats se
dégradent. Cela prouve clairement que la méthode que nous avons employée pour la
détection et le suivi de la main a amélioré les résultats.
22
Les détails des numéros de frames calculés, où les gestes sont identifiés, par notre système
et leurs numéros réels sont donnés pour une vision complète dans les résultats. Des valeurs
réelles, de début et de fin du geste, sont découvertes par un logiciel « Jet Audio ».
Vidéos Début réel Début calculé Fin réel Fin calculée
1 121 126 205 203
2 53 57 95 94
3 79 77 139 133
4 66 67 120 118
5 110 113 175 169
6 47 51 119 123
7 99 101 163 162
8 65 63 103 97
9 117 115 171 166
10 88 105 120 125
11 78 96 118 123
12 69 - 99 -
Tab 4.2 : Valeurs réelles et valeurs calculées de début et de fin du geste identifié dans chaque
vidéo
Ce tableau prouve que la méthode fonctionne vraiment bien et elle trouve presque le début
exact et la fin exacte du geste.
23
Conclusion et Perspectives
Nous avons développé une méthode pour identifier un geste d'entrée en employant un
modèle basé sur l'analyse de mouvement de la main. La détection et le suivi de la main sont
faites par une combinaison des méthodes différentes pour les rendre plus robustes. Nous
avons appliqué le système pour identifier un seul geste. Il n'y a aucune limitation pour que le
fond soit fixé et non complexe. L'apprentissage a été fait sur un petit ensemble de données et
les résultats obtenus étaient tout à fait bons. Actuellement, il est seulement pour un geste
mais si nous ajoutons de nouveaux gestes au système, nous devons seulement recycler un
autre modèle pour le geste. C'est parce que le rapport entre le nouveau modèle et les modèles
originaux est indépendant.
Comme nous savons il y a toujours une certaine place pour l'amélioration, tellement il y a
quelques perspectives dans ce projet également. Encore plus de gestes peuvent toujours être
ajoutés. L'aspect du mouvement en 3D des deux mains peut également être ajouté. Il peut
également être augmenté pour quelques applications en temps réel. Donc il y a toujours des
choses à faire pour les gens qui veulent travailler dans ce domaine.
24
25
Appendice A
L'écoulement / Flot-Optique
Le flot optique est un concept pour estimer le mouvement des objets dans une représentation
visuelle. Typiquement le mouvement est représenté par des vecteurs commençant ou se
terminant aux Pixels dans l'image numérique. [8]
Le flot optique est utile dans l'identification de modèle, la vision par ordinateur, et d'autres
applications de traitement d'image. On le lie étroitement à l'évaluation de mouvement et à la
compensation de mouvement. Souvent l'écoulement optique de limite est employé pour
décrire un champ dense de mouvement avec des vecteurs à chaque Pixel, par opposition à
l'évaluation de mouvement ou à la compensation qui emploient des vecteurs pour des blocs
de Pixels, comme dans les méthodes visuelles de compression telles que le MPEG. Certains
considèrent employer l'écoulement optique pour les systèmes d'évitement de collision et
d'acquisition d'altitude pour les véhicules micro d'air.
A.1 Quelques méthodes pour déterminer l'écoulement optique
 Corrélation de phase (inverse de spectre normal de croix-puissance)
 Corrélation de bloc (somme des différences absolues, de corrélation croisée normale)
 Le gradient contraint a basé l'enregistrement
 Méthode de Lucas Kanade
 Méthode de Horn et Schunck
A.2 Méthode de Horn et Schunck
La méthode de Horn-Schunck d'estimation de flot optique est une méthode globale qui
présente une contrainte globale de la douceur pour résoudre le problème d'ouverture (voir la
méthode de Lucas Kanade pour davantage de description). [9]
Une fonction globale d'énergie doit être minimisée, cette fonction est donnée comme suit :
26
là où
sont les dérivés des valeurs d'intensité d'image le long des dimensions de x,
de y, de z et de t.
est le vecteur flot optique d'écoulement avec les composants Vx, Vy, Vz. Le α paramètre
est une constante de régularisation. De plus grandes valeurs de α mènent à un écoulement
plus régulier. Cette fonction peut être résolue en calculant les équations d'Euler-Lagrange
correspondant à la solution de l'équation ci-dessus. Celles-ci sont données comme suit :
où Δ dénote l'opérateur de Laplace de sorte que
.
Résolvant ces équations par la méthode de Gauss-Seidel pour les composantes d'écoulement
Vx, Vy, Vz on obtient un système itératif:
27
L'indice supérieur k+1 dénote la prochaine itération, qui doit être calculée et k est le dernier
résultat calculé. ΔVi peut être obtenu comme:
ΔVi = ∑ Vi(N(p)) − Vi(p)
N(p)
avec N (p) sont les six voisins du Pixel P.
Une exécution algorithmique alternative basée sur la méthode de Jacobi est donnée par :
où se rapporte à la moyenne de dans le voisinage de la position actuelle du Pixel.
Les avantages de l'algorithme de Horn-Schunck incluent qu'il apporte une densité des
vecteurs d'écoulement, c'est à dire l'information d'écoulement manquant dans les parties
intérieures d'objets homogènes est complétée à partir des frontières de mouvement. Du côté
négatif, cet algorithme est plus sensible au bruit que des méthodes locales.
28
29
Appendice B
Détecteur de bord de Sobel
L'opérateur de Sobel effectue une mesure spatiale de gradient sur une image et ainsi souligne
les régions du gradient spatial élevé qui correspondent aux bords. Typiquement il est
employé pour trouver la grandeur absolue approximative de gradient à chaque point dans une
image à fond gris d'entrée. [10]
B.1 Comment cela fonctionne
Dans la théorie au moins, l'opérateur se compose d'une paire de masques de la convolution
3×3 suivant les indications du schéma 1. Les masques s'obtiennent simplement par une
rotation de 90°à partir de l'autre. C'est très semblable à l'opérateur de Roberts.
Fig C.1 : Masques de convolution de Sobel
Ces masques sont conçus pour répondre au maximum aux bords fonctionnant verticalement
et horizontalement relativement à la grille de Pixels, un masque pour chacune des deux
orientations perpendiculaires. Les masques peuvent être appliqués séparément à l'image
d'entrée, pour produire des mesures séparées des composantes de gradient dans chaque
orientation (notés Gx et Gy). Celles-ci peuvent alors être combinées ensemble pour trouver la
norme du gradient en chaque point et l'orientation de ce gradient. La grandeur de gradient est
indiquée par:
30
Bien que typiquement, une grandeur approximative soit calculée :
ce qui est beaucoup plus rapide à calculer.
L'angle de l'orientation du bord (relativement à la grille de Pixels) provoquant le gradient
spatial est donné par :
Dans ce cas-ci, l'orientation 0 est prise pour signifier que la direction du contraste maximum
de noir au blanc fonctionne de gauche à droite sur l'image, et d'autres angles sont dans le sens
contraire des aiguilles d'une montre.
Souvent, cette grandeur absolue est le seul rendement que l'utilisateur voit --- les deux
composantes du gradient sont commodément calculées et ajoutées dans un balayage de
l'image d'entrée en utilisant l'opérateur de pseudo-convolution représenté ici :
En utilisant ce masque la grandeur approximative est indiquée par :
G = ( P1 + 2 x P2 + P3) – ( P7 + 2 x P8 + P9) + (P3 + 2 x P6 + P9) – (P1 + 2 x P4 + P7)
31
32
Appendice C
Modèle de couleur de peau
Des points de peau sont sélectionnés manuellement et la valeur moyenne ainsi que la
matrice inverse de covariance sont calculées. Par apprentissage sur les données disponibles,
j'ai obtenu les valeurs suivantes.
Moyen (m) = 191.8 153.38 138.6
0.025331 -0.042978 0.017446
COV -1 = -0.042978 0.090875 -0.049811
0.017446 -0.049811 0.035333
Ensuite, la distance de Mahalanobis est calculée comme:
Di = (xi-m)T COV -1 (xi-m)
L'apprentissage a prouvé que le seuil pour la couleur de la peau est 3.
255 (peau), Si Di < 3
Pixel valeur =
0 (non-peau), sinon
33
34
Bibliography
[1] Quan Yuan, Stan Sclaroff, Vassilis Athitsos, Automatic 2D hand tracking in video
sequences, IEEE workshop on applications of computer vision, 2005
[2] Feng-Sheng Chen, Chih-Ming Fu, Chung-Lin Huang, Hand gesture recognition using a
real-time tracking method and hidden Markov models, Image and Video Computing,
21(8):745--758, August 2003
[3] Mathias Kolsch, Matthew Turk, Fast 2D hand tracking with Flocks of Features and
Multi-Cue Integration, Conference on Computer Vision and Pattern Recognition Workshop
(CVPRW'04) Volume 10, 2004
[4] Gerhard Rigoll, Andreas Kosmala, Stephan Eickeler, High performance real time
gesture recognition using hidden Markov models, Workshop 1997 : 69-80: 6: EE
[5] Jie Yang, Yangshen Xu, Hidden Markov Model for Gesture Recognition, CMU-RI-TR-
94-10, 1995
[6] Wikipedia, Condensation Algorithm,
http://en.wikipedia.org/wiki/Condensation_algorithm
[7] Konstantinos G. Derpanis, The Gaussian Pyramid, Feb 2005
[8] Wikipedia, Flow Optic, http://en.wikipedia.org/wiki/Optical_flow
[9] Wikipedia, Horn and Shunck Algorithm,
http://en.wikipedia.org/wiki/Horn_Schunck_Method
[10] Tutorial, Sobel Edge detector, http://www.cee.hw.ac.uk/hipr/html/sobel.html
35
[11] C. Tomasi, J. Shi, Good features to track, CVPR, 1994
[12] C. Tomasi, T. Kanade, Detection and tracking of Point features, CMU-CS-91-132,
April 1991
[13] D. Gotz, A. Sud, Estimation of Pose and structure from un-calibrated image
sequences, Comp 256 Final Report, 2001
[14] T. Baudel, M. Baudouin-Lafon, Charade, Remote control of objects using free hand
gestures, Communications of the ACM, 36(7):28-35, July 1993
[15] D.J. Sturman, D. Zeltzer, A survey of glove based input, IEEE Computer Graphics and
Applications, 14 (1), 30-39, 1994
[16] C. L. Huang, W. Y. Huang, Sign Language Recognition using model based tracking
and 3D Hopfield neural network, MVA(10) , 1998, pp. 292-307
[17] R. E. Kalman, A new approach to linear filtering and prediction problems, Trans. of
the ASME-J of basic engineering, Vol 82, series D, pp 35-45, 1960
[18] K. Khurshid, N. Vincent, Removal of unwanted Hand Gestures using Motion
Analysis, 7th Int'l workshop on Pattern Recognition in Information Systems (PRIS), June
2007, Portugal
View publication statsView publication stats

Contenu connexe

Similaire à Hand detectiontrackingandrecognition

Conception et réalisation d’un polysomnographe à base d’une carte Arduino
Conception et réalisation d’un polysomnographe à base d’une carte ArduinoConception et réalisation d’un polysomnographe à base d’une carte Arduino
Conception et réalisation d’un polysomnographe à base d’une carte ArduinoYacine Triki
 
réalisation d'un montage photogrammétrie
réalisation d'un montage photogrammétrieréalisation d'un montage photogrammétrie
réalisation d'un montage photogrammétrieyaakoub aouf
 
Simulation de la dynamique spatiale et du piégeage d’insectes : Cas du vecte...
Simulation de la dynamique spatiale  et du piégeage d’insectes : Cas du vecte...Simulation de la dynamique spatiale  et du piégeage d’insectes : Cas du vecte...
Simulation de la dynamique spatiale et du piégeage d’insectes : Cas du vecte...Olivier Sadiot, PMP, ITIL Expert
 
Méthode d'observation photographique
Méthode d'observation photographiqueMéthode d'observation photographique
Méthode d'observation photographiqueSouad Azizi
 
Rapport projet UniceBot
Rapport projet UniceBotRapport projet UniceBot
Rapport projet UniceBottheoopparadigm
 
Magister kharroubi larbi
Magister kharroubi larbiMagister kharroubi larbi
Magister kharroubi larbilarbi Aziz
 
Mon Projet Fin d'étude: Conception et développement d'une application de géol...
Mon Projet Fin d'étude: Conception et développement d'une application de géol...Mon Projet Fin d'étude: Conception et développement d'une application de géol...
Mon Projet Fin d'étude: Conception et développement d'une application de géol...rim elaire
 
Eric pignon dessin_assiste_ordinateur_paysage
Eric pignon dessin_assiste_ordinateur_paysageEric pignon dessin_assiste_ordinateur_paysage
Eric pignon dessin_assiste_ordinateur_paysagezahir66
 

Similaire à Hand detectiontrackingandrecognition (13)

Conception et réalisation d’un polysomnographe à base d’une carte Arduino
Conception et réalisation d’un polysomnographe à base d’une carte ArduinoConception et réalisation d’un polysomnographe à base d’une carte Arduino
Conception et réalisation d’un polysomnographe à base d’une carte Arduino
 
72574
7257472574
72574
 
réalisation d'un montage photogrammétrie
réalisation d'un montage photogrammétrieréalisation d'un montage photogrammétrie
réalisation d'un montage photogrammétrie
 
Enseigner avec la 3D
Enseigner avec la 3DEnseigner avec la 3D
Enseigner avec la 3D
 
Simulation de la dynamique spatiale et du piégeage d’insectes : Cas du vecte...
Simulation de la dynamique spatiale  et du piégeage d’insectes : Cas du vecte...Simulation de la dynamique spatiale  et du piégeage d’insectes : Cas du vecte...
Simulation de la dynamique spatiale et du piégeage d’insectes : Cas du vecte...
 
Méthode d'observation photographique
Méthode d'observation photographiqueMéthode d'observation photographique
Méthode d'observation photographique
 
Rapport projet UniceBot
Rapport projet UniceBotRapport projet UniceBot
Rapport projet UniceBot
 
Magister kharroubi larbi
Magister kharroubi larbiMagister kharroubi larbi
Magister kharroubi larbi
 
Mon Projet Fin d'étude: Conception et développement d'une application de géol...
Mon Projet Fin d'étude: Conception et développement d'une application de géol...Mon Projet Fin d'étude: Conception et développement d'une application de géol...
Mon Projet Fin d'étude: Conception et développement d'une application de géol...
 
Memoire_final
Memoire_finalMemoire_final
Memoire_final
 
Badis these
Badis theseBadis these
Badis these
 
Eric pignon dessin_assiste_ordinateur_paysage
Eric pignon dessin_assiste_ordinateur_paysageEric pignon dessin_assiste_ordinateur_paysage
Eric pignon dessin_assiste_ordinateur_paysage
 
20101126 - Colin Lalouette - Apprentissages et couplages dans l’entreprise co...
20101126 - Colin Lalouette - Apprentissages et couplages dans l’entreprise co...20101126 - Colin Lalouette - Apprentissages et couplages dans l’entreprise co...
20101126 - Colin Lalouette - Apprentissages et couplages dans l’entreprise co...
 

Hand detectiontrackingandrecognition

  • 1. See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/305241055 Détection, Suivi et Analyse du mouvement de la main dans une vidéo Thesis · September 2006 CITATIONS 0 READS 307 1 author: Some of the authors of this publication are also working on these related projects: Hyperspectral Document Image Analysis View project Object Tracking in Image Sequences for Surveillance Application View project Khurram Khurshid Institute of Space Technology 102 PUBLICATIONS   578 CITATIONS    SEE PROFILE All content following this page was uploaded by Khurram Khurshid on 03 February 2017. The user has requested enhancement of the downloaded file.
  • 2. UNIVERSITÉ RENE DESCARTES UFR Mathématiques et Informatique Rapport de Stage de DEA Discipline: IPCC (Image) 2006 Détection, Suivi et Analyse du mouvement de la main dans une vidéo par Khurram KHURSHID Encadrant Mme Nicole Vincent © (Khurram Khurshid) 2006
  • 3. ii La déclaration de l'auteur J'affirme par la présente que je suis l'auteur unique de cette thèse. J'autorise l'université Paris-5 pour prêter cette thèse à d'autres établissements ou individus afin de la recherche savante. Signature J'autorise plus loin l'université Paris-5 pour reproduire cette thèse par la photo copiage ou par d'autres moyens, au total ou en partie, sur demande d'autres établissements ou individus afin de la recherche savante. Signature
  • 4. iii Abstract Ce rapport présente une méthode pour l'identification de geste en utilisant le flot-optique pour l'analyse du mouvement de la main. La détection de la main et le suivi dans une séquence vidéo est un domaine qui a beaucoup d'applications potentielles. Par exemple l'identification de la langue des signes, l’identification et l'interprétation de geste dans une vidéo conférence. Mais, l'application visée dans ce cas-ci est d'enlever certains gestes non désirés dans une séquence vidéo. Le travail est principalement divisé en trois étapes. La première étape est la détection de la région de la main dans une image de la vidéo. Il est fait en employant la détection de couleur de la peau, la détection de contour, et la détection de mouvement dans la vidéo. Ensuite, la main doit être suivie dans le reste des images de la vidéo. La dernière étape est d'analyser son mouvement et de classifier le mouvement qui doit être enlevé ou non. Le flot-optique est employé pour cette analyse. La phase dominante est découverte, dans chaque frame, pour la région de la main. Cette phase dominante est codée et analysée pour chaque frame. Le mouvement est classifié sur la base de cette analyse de la phase dominante. Les résultats obtenus en utilisant cette approche sont très bons.
  • 5. iv Remerciements Je voudrais remercier ma responsable, Pr. Nicole VINCENT, pour m'avoir donné la chance d'explorer une carrière de recherche dans le domaine du traitement d'image et spécifiquement dans le champ de l'identification et reconnaissance du geste. Son appui continuel, sa perspicacité technique, et son attachement à cette recherche ont rendu cette occasion la plus agréable. Je voudrais également la remercier d'être très accessible et utile, pour les conseils qu'elle a fournis pendant ce projet de recherche, et de prendre le temps d'expliquer les aspects techniques et pratiques de l'identification du geste. Merci aussi à tous les membres de l’équipe SIP qui m’ont apporté leurs conseils et leur soutien. Un grand merci en particulier à Nicolas Lomenie, G. Erus, F. Shen, B. Dolez et I. Siddiqi qui sont toujours là pour m’aider.
  • 6. v Sommaire La déclaration de l'auteur......................................................................................................ii Abstract...................................................................................................................................iii Remerciements ....................................................................................................................... iv Sommaire................................................................................................................................. v Liste des figures.....................................................................................................................vii Liste des Tableaux................................................................................................................viii Chapitre 1 Introduction ......................................................................................................... 1 1.1 Vue d'ensemble ............................................................................................................... 1 1.2 État de l'art....................................................................................................................... 1 1.3 Mon travail...................................................................................................................... 2 1.3.1 Les différentes étapes ............................................................................................... 2 1.3.2 Base de données........................................................................................................ 4 Chapitre 2 Détection et suivi de la main............................................................................... 5 2.1 Détection de la main........................................................................................................ 5 2.1.1 Résidu du mouvement .............................................................................................. 6 2.1.2 La segmentation de la couleur de la peau................................................................. 7 2.1.3 Détection de contour................................................................................................. 9 2.1.4 Combinaison des images ........................................................................................ 10 2.1.5 Identification de la région....................................................................................... 12 2.2 Suivi de la main............................................................................................................. 13 2.2.1 Trajectory Justification Algorithm ......................................................................... 13 2.2.2 Localisation de la région......................................................................................... 14 Chapitre 3 Reconnaissance des gestes................................................................................. 15 3.1 Vue d'ensemble ............................................................................................................. 15 3.2 Choix des dispositifs ..................................................................................................... 15 3.3 Analyse du mouvement................................................................................................. 16 3.3.1 Flot-optique ............................................................................................................ 16 3.3.2 Distribution de la phase .......................................................................................... 17
  • 7. vi 3.3.3 Codage de la phase dominante ............................................................................... 17 3.3.4 Classification de mouvement.................................................................................. 18 Chapitre 4 Implémentation et Résultats............................................................................. 20 Conclusion et Perspectives ................................................................................................... 23 Appendice A L'écoulement / Flot-Optique......................................................................... 25 A.1 Quelques méthodes pour déterminer l'écoulement optique.......................................... 25 A.2 Méthode de Horn et Schunck....................................................................................... 25 Appendice B Détecteur de bord de Sobel ........................................................................... 29 B.1 Comment cela fonctionne............................................................................................. 29 Appendice C Modèle de couleur de peau............................................................................ 32
  • 8. vii Liste des figures 1.1 : Les trois étapes principales du travail 2.1 : Les étapes de la détection de la main 2.2 : (a) l’image Fi (b) l’image Fi+1 (c) l'image de différence entre Fi et Fi+1 2.3 : (a) l’image Fi (b) l’image avec R > V > B (c) l’image avec la model de la peau 2.4 : (a) l’image Fi (b) Filtre de Sobel (c) Avec seuil 2.5 : (a) l’Image de mouvement (b) l’Image de peau (c) l’image de bord (d) l’image de combinaison 2.6 : l’Image après identification de la plus grande région 3.1 : (a) Une boule en rotation (b) Ses vecteurs de mouvement 3.2 : (a) 8 quadrants pour distribution de la phase (b) Distribution de phase dans 8 quadrants 3.3 : Méthode de codage 3.4 : L’identification des frames du geste spécifique 4.1 : Comparaison des méthodes différentes C.1 : Masques de convolution de Sobel
  • 9. viii Liste des Tableaux Tab 4.1 : Comparaison des méthodes différentes Tab 4.2 : Valeurs réelles et valeurs calculées de la début et la fin de la geste identifié en chaque vidéo
  • 10. 1 Chapitre 1 Introduction 1.1 Vue d'ensemble La détection de la main et le suivi dans une séquence vidéo est un domaine qui a beaucoup d'applications potentielles. Par exemple l'identification de la langue des signes, l’identification et l'interprétation de geste dans une vidéo conférence. Mais, l'application visée dans ce cas-ci est d'enlever certains gestes non désirés de la séquence vidéo. Cependant ce champ est étroitement lié à la détection et à l'identification de visage, ainsi beaucoup d'approches peuvent également être employées ici. 1.2 État de l'art Beaucoup de recherche a été faite dans ce domaine et la recherche est toujours active. Différentes méthodes sont employées pour l'identification de geste. Par exemple, pour la détection de la main, les méthodes comme la segmentation de couleur de peau, détection de contour [2], et résidu de différence de mouvement [1], sont utilisées. La méthode de la segmentation de peau a une limitation, le fond devrait être simple. La méthode de résidu de différence de mouvement a une limitation, elle détectera n'importe quelle chose qui se déplace le plus rapidement dans la vidéo [1]. Alors si la main ne se déplace pas, elle ne sera pas détectée. Pour le suivi de la main, les méthodes employées fréquemment sont le filtre de Kalman [17], les filtres de particules et l'algorithme de condensation [6]. Ces méthodes se servent de la « prediction-update framework ». Cependant, ces méthodes ont besoin d'initialisation manuelle et aussi elles ne peuvent pas indiquer quand le suivi a perdu l'objet. Le suivi peut être fait en utilisant l'algorithme de Lukas Kanade [12] mais il est « computationally » cher et non approprié aux applications en temps réel [11]. Il y a d'autres méthodes de suivi comme les traqueurs magnétiques [14,15] et de cheminement basés sur un gant mais ils ont besoin d'un équipement spécialisé qui doit être porté. Des modèles de Markov cachés (Hidden Markov Models) sont, la plupart du temps, employés pour l'identification et le reconnaissance de geste [4]. Pour chaque geste, il y a un modèle séparé. Cette approche est très utile dans les cas où la forme exacte de la main est exigée [5]. Mais si la forme exacte n'est pas exigée, cette méthode est trop compliquée. Des réseaux neuronaux sont également employés pour l'identification de geste. [16]
  • 11. 2 1.3 Mon travail Mon travail est fondamentalement focalisé autour de l'analyse du mouvement de la main et de l'identification d'un mouvement spécifique de la main dans une vidéo. Ces parties spécifiques, dans la vidéo, sont identifiées et puis enlevées. Dans ce cas-ci, ce mouvement spécifique est le grattement du visage avec la main. La méthode que je propose est robuste même dans un fond complexe. J'ai employé des approches différentes et trouvé les méthodes optimales pour ce travail. Le travail peut être divisé en 3 tâches 1.3.1 Les différentes étapes Il y a trois taches principales. Celles-ci sont indiquées dans la figure suivante. Fig1.1. Les trois étapes principales du travail Détection J'ai insisté sur la bonne détection de la main parce que si la détection de la main est bonne, le suivi est plus facile. Ainsi à cette fin, j'ai employé une combinaison de méthodes différentes. Tout d'abord, j'ai construit l'image de la différence de mouvement entre 2 frames consécutives. Ici une hypothèse de base est que la main est l'objet qui se déplace le plus vite dans la vidéo. Ainsi la région de la main sera plus marquée dans l'image et peut être identifiée facilement. Reconnaissance de geste Détection de la main Suivi de la main
  • 12. 3 Ensuite, j'ai considéré l'image des contours. Elle a été faite à l'aide du filtre de Sobel. J'ai également essayé le filtre de Canny mais les résultats étaient les mêmes dans les deux cas. Ainsi j'ai continué avec le filtre de Sobel. Après, j'ai calculé l'image de couleur de peau. Pour cela j'ai employé un fait simple que tous les Pixels de peau ont R > V > B, [2]. Mais cela ne donne pas de bons résultats. Ainsi j'ai fait le modèle de couleur de la peau « skin color modeling » et les résultats étaient très bons dans ce cas-ci. Ensuite ayant les trois images binaires ci-dessus, j'effectue l'opération ET sur les 3 et j'obtiens une image de combinaison. Sur cette image, j'effectue l'opération de dilatation et puis j'identifie la plus grande région. Cette région est la main. Suivi Pour le suivi, j'ai employé l'Algorithme de JUSTIFICATION de TRAJECTOIRE « Trajectory Justification Algorithm ». Des variations du centre de la main détectée plus tôt sont notées. Une limite de suivi « tracking-limit » est placée au commencement et si la main détectée dans la deuxième frame est hors de cette limite, le traqueur est restauré. La plus grande région dans cette limite est identifiée encore dans la deuxième frame. Après cela, ET de l'image de peau et de bord est exécuté et la main est localisée en utilisant le centre de la plus grande région détectée. Reconnaissance La partie la plus importante de ce travail est l’identification du geste. Pour ça, certaines caractéristiques de la main sont identifiées. Les paramètres que je garde sont : le centre de la main, le tableau des normes des vecteurs de mouvement, l'histogramme des phases des vecteurs de mouvement et la phase dominante. Pour l'analyse de mouvement, le flot optique est calculé en utilisant l'algorithme de Horn et Chunck. Les vecteurs de mouvement de la région de la main sont analysés. La distribution de phase est calculée pour les 8 quadrants. La phase dominante est localisée et codé et alors elle est tracée pour chaque frame. Le mouvement spécifique de la main est classifié en utilisant ce graphique.
  • 13. 4 Les résultats obtenus en utilisant cette approche sont très bons. Ainsi elle peut être employée, à l'avenir, pour identifier les différents types de gestes. 1.3.2 Base de données La taille de la base de données pour l’apprentissage et aussi pour le test est également très importante. Si les données sont bonnes, les résultats sont bons aussi. Pour ce projet, 4 personnes ont été employées dans les vidéos. Un bon appareil photo de haute résolution n'était pas disponible, alors les vidéos ont été filmées dans une chambre en utilisant une webcam normale. Pour chaque personne, 4 vidéos ont été filmées à la résolution de 320 x 240. Le débit des frames a été placé à 20 frames/sec. De ces 16 vidéos, 4 vidéos (1 vidéo de chaque personne) sont employées dans l’apprentissage du modèle de couleur de la peau, et dans l’apprentissage de l'analyse de mouvement de la main. En outre, 4 autres vidéos d’une autre personne, d'un appareil photo différent et des résolutions différentes ont été également employées pour le test.
  • 14. 5 Chapitre 2 Détection et suivi de la main 2.1 Détection de la main Différentes méthodes sont employées pour la détection de la main, par exemple, les méthodes de la segmentation de couleur de peau, de détection de contour, et de résidu de différence de mouvement [1], sont utilisées. La méthode de la segmentation de peau a une limitation, le fond devrait être simple. La méthode de résidu de différence de mouvement a une limitation, elle détectera n'importe quelle chose qui se déplace le plus vite dans la vidéo. Alors si la main ne se déplace pas, elle ne sera pas détectée. J'ai insisté sur la bonne détection de la main parce que si la détection de la main est bonne, le suivi est plus facile. Ainsi à cette fin, j'ai employé une combinaison des méthodes de segmentation de couleur de peau, de détection de contour, et de résidu de différence de mouvement. Ma méthode peut être décrite dans la figure2. Fig2.1. Les étapes de la détection de la main Image de la peauImage de la motion Image du bord ET image Région identification
  • 15. 6 Je trouve l'image de peau, l'image de bord et l'image de mouvement et puis fais ET opération sur elles. Après, je fais marquer et trouve la plus grande région qui est la main. 2.1.1 Résidu du mouvement Dans mon système, le mouvement de l'objet fournit des informations importantes et utiles pour la localisation et l'extraction d'objets. Pour trouver l'information de mouvement, je suppose que le geste d'entrée est mobile. Quand les objets se déplacent dans l'espace en fonction du temps (un ordre d'image), le détecteur de mouvement peut suivre les objets mobiles en examinant les changements locaux de niveau de gris. Soit Fi (x, y) la frame i de la séquence et soient Di (x, y) les images de différence entre Fi (x, y) et l'image (i+1). Di (x, y) = Fi (x, y) - Fi+1 (x, y) (1) Où Fi (x, y) et Di (x, y) sont toutes des images 320×240, et Di (x, y) est transformée en une image binaire définie comme suit 1, Fi (x, y) - Fi+1 (x, y) > seuil Di (x, y) = (2) 0, sinon Après avoir extrait la région mobile de l'objet, nous pouvons appliquer un seuillage sur la différence d'images pour extraire la région mobile possible dans le fond complexe. Je constate que les méthodes conventionnelles de « seuillage », ne sont pas appropriées au cas de détection du mouvement. Au lieu de cela, j'emploie une technique simple de « thresholding » pour extraire des régions mobiles. Le seuil pour la détection de mouvement est déterminé comme Th=0.2μ, où le μ est la moyenne lumineuse de l'image capturée Fi(x, y). J’ai choisi le facteur poids = 0.2 parce que on n'a pas besoin d'image segmentée fortement précise. Alors 0.2 est suffi. Cette technique de « thresholding » n'est pas très sensible à la vitesse du mouvement de la main.
  • 16. 7 (a) (b) (c) Fig2.2. (a) l’Image Fi (b) l’Image Fi+1 (c) l'image de différence entre Fi et Fi+1 2.1.2 La segmentation de la couleur de la peau La peau peut être facilement détectée en employant l'information de couleur [2]. D'abord, nous employons la contrainte que R > V > B, pour trouver les régions de couleur de peau qui peuvent inclure un éventail de couleurs, telles que le rouge, le rose, le brun, et la couleur orange. Par conséquent, on trouve beaucoup de régions autres que les régions de peau. Cependant, ces régions de non-peau satisfont notre contrainte si nous ne disposons d'aucune information de mouvement, par exemple une région dans la couleur orange ne sera pas mal interprétée comme région de la main. Mais les résultats ne sont pas bons avec cette méthode.
  • 17. 8 (a) (b) (c) Fig2.3. (a) l’Image Fi (b) l’Image avec R > V > B (c) l’Image avec le modèle de la peau La deuxième méthode que j'applique repose sur l'obtention d'un modèle de la couleur de la peau. Pour obtenir le modèle, nous obtenons les points de peau de la vidéo de formation et les analysons pour obtenir la valeur moyenne ‘m’. Nous obtenons également une matrice de covariance et trouvons la distance de Mahalanobis de la valeur moyenne avec chaque Pixel qui satisfont la condition de R > V > B. Di = (xi-m)T COV -1 (xi-m)
  • 18. 9 Après l’apprentissage, nous obtenons également une valeur- seuil. Après avoir découvert les distances, nous appliquons le seuil pour obtenir l'image de peau. 255 (peau), si Di < seuil Pixel valeur = 0 (non-peau), sinon Les détails et les valeurs réelles sont en Annexe C 2.1.3 Détection de contour La détection de bord est appliquée pour séparer la région du bras de la région de la main. Il est facile de constater qu'il y a moins de bords sur la région du bras que sur la région de la paume. J'ai essayé avec le détecteur de Canny et également le détecteur de Sobel, et j’ai constaté que les résultats étaient plus ou moins les mêmes. Alors finalement, j'ai employé le détecteur de bord de Sobel parce que c’était calculatoirement moins cher. (Détail de filtre de Sobel en Annexe B). Comme nous ne sommes pas intéressé par les bords mêmes légers, ainsi nous appliquons un seuil. Après apprentissage, nous avons constaté que le seuil était 200. 255, si valeur de pixel > seuil Pixel valeur = 0, sinon Des images sont montrées ci-dessous en fig 2.4
  • 19. 10 (a) (b) (c) Fig2.4. (a) l’Image Fi (b) Filtre de Sobel (c) Avec seuil 2.1.4 Combinaison des images L'information de gestes de main se compose du mouvement, de la couleur de peau et du dispositif de bord. Nous employons le `logique ET' pour combiner ces trois types d'information Ci(x,y) = Di(x,y) Si(x,y) Ei(x,y)
  • 20. 11 Là où le Di(x,y), le Si(x,y) et le Ei(x,y) indiquent le mouvement, la couleur de peau et les images de bord. L'image combinée se compose d'une grande région dans le secteur de paume et de quelques petites régions dans le secteur du bras. On peut séparer ces deux régions pour assigner la région de la main. (a) (b) (c) (d) Fig2.5. (a) Image de mouvement (b) Image de peau (c) Image de contour (d) Image de combinaison
  • 21. 12 2.1.5 Identification de la région Une méthode simple pour l'identification de région est de marquer chaque région, dans l’image de combinaison, avec un nombre entier unique. C'est le processus de marquage des composantes connexes [2]. Après ce marquage, la plus grande étiquette de nombre entier indique le nombre de régions. Les petites régions peuvent être traîtées comme du bruit et être enlevées. Mais cette méthode est lente. Aussi j'ai employé la méthode de détection de contours et d'affectation d'une étiquette couleur. Pour trouver les composants connexes, nous dilatons l'image de combinaison. Ensuite, nous trouvons les contours de chaque région. Nous assignons une couleur à chaque composante. Pour finir, nous trouvons la région de couleur qui est la plus grande. Nous trouvons le centre de gravité de cette région et puis dessinons une boîte englobante de largeur et longueur fixées autour de ce centre. Cette région est la région de la main. (Fig 2.6) Fig2.6. l’Image après identification de la plus grande région Comme nous n'avons aucune limitation qui impose au fond d'être fixe et que nous permettons à de petits objets de se déplaçer dans le fond, quelquefois, la main n'est pas la plus grande région marquée. S'il y a un autre object de la couleur de la peau qui se déplace plus rapidement, la détection peut échouer. Ainsi nous profitons de la contrainte de régularité ou de persistance de mouvement et utilisons l'algorithme de justification de trajectoire pour identifier finalement la région de la main. Les détails sont dans la section suivante.
  • 22. 13 2.2 Suivi de la main Pour le suivi de la main, les méthodes employées fréquemment sont le filtre de Kalman [17], les filtres de particules et l'algorithme de Condensation [6]. Ces méthodes se servent de la « prediction-update framework ». Cependant, ces méthodes ont besoin d'initialisation manuelle et aussi elles ne peuvent pas indiquer quand l'objet suivi est perdu. Le suivi peut être fait en utilisant l'algorithme de Lukas Kanade [12] mais il est cher en temps de calcul et non approprié aux applications en temps réel [11]. Il y a d'autres méthodes de suivi comme les traqueurs magnétiques [14,15] et de cheminement basé sur un gant mais elles ont besoin d'équipement spécialisé pour fonctionner. Pour le suivi, nous avons employé l'Algorithme de JUSTIFICATION de TRAJECTOIRE « Trajectory Justification Algorithm ». Les variations du centre de la main détectées plus tôt sont notées. Une limite de déplacement est placée au commencement et si la main détectée dans la deuxième frame est hors de cette limite, le suivi est abandonné. La plus grande région, dans cette limite, est identifiée encore dans la deuxième frame. Après cela, l'image conjonction des images de peau et de bord est calculée et la main est localisée en utilisant le centre de la plus grande région détectée. 2.2.1 Trajectory Justification Algorithm Fondé sur l'hypothèse que l'objet de la main se déplace sans à-coup entre les deux frames consécutives, nous développons notre version de l’algorithme de JUSTIFICATION de TRAJECTOIRE « trajectory justification algorithm ». Nous supposons que la main se déplace à vitesse constante. Sur la frame courante Fi, nous obtenons le centre, Pci , de la main extraite. Nous assumons une trajectoire douce/ lisse, ainsi la variation de Pci est dans un certain éventail « TRACKER_LIMIT ». Dans notre cas, cette limite est fixée à 10 préciser l'unité ?? après la formation. Si la main détectée dans la deuxième frame Fi+1 est hors de cette limite, le suivi est abandonné. La plus grande région, dans cette limite du centre, est identifiée encore dans la deuxième frame. C'est ensuite un processus de bouclage.  Si Pci(x,y) – Pci+1(x,y) > TRACKER_LIMIT  Alors, Trouver une autre composante dans la zone  Et s'il n'y a aucune composante dans la limite,  Maintenir Pci pour la frame Fi
  • 23. 14 Ainsi de cette façon, nous obtenons les centres de la main dans chaque frame. Nous les gardons comme dispositifs. 2.2.2 Localisation de la région Pour trouver une région plus précise de main, nous localisons la main. La position de la main a été trouvée en employant l'information de mouvement, de peau et de bord. Parfois, les endroits identifiés ne seront pas au centre de la vraie région de la main. C'est parce que l'information extraite est située sur la frontière de l'objet mobile. Par conséquent une certaine amélioration est nécessaire. Pour ce processus, nous obtenons une image de combinaison des images de peau et de contours. Ai(x,y) = Si(x,y) Ei(x,y) Maintenant près du centre déjà détecté, nous trouvons un nouveau centre des points de frontière dans cette image de combinaison Ai. Puis, nous dessinons une boîte englobante de largeur et longueur fixées autour de ce centre. Nous gardons ce nouveau centre comme dispositif. Les résultats prouvent que ces méthodes fonctionnent vraiment bien pour le suivi de la main. Ainsi, après l'étape de détection et de suivi, nous avons une région de la main bien définie dans chaque frame de la vidéo. Nous avons également, le centre de la main, en tant que dispositif primaire. Maintenant nous faisons l'analyse du mouvement de cette région de la main pour identifier le geste. L'analyse de mouvement est donnée en détail dans le prochain chapitre.
  • 24. 15 Chapitre 3 Reconnaissance des gestes 3.1 Vue d'ensemble Pour la reconnaissance des gestes, les modèles de Markov cachés (Hidden Markov Models) sont, la plupart du temps, employés [2]. Pour chaque geste, il y a un modèle séparé. C'est très utile dans les cas où la forme exacte de main est exigée [5]. Mais si la forme exacte n'est pas exigée, cette méthode est trop compliquée. Des réseaux neuronaux sont également employés pour l'identification de geste [16]. Dans ma méthode, certaines caractéristiques de la main sont identifiées. Les primitives que nous gardons sont le centre de la main, le tableau des modules des vecteurs de mouvement, l'histogramme des phases des vecteurs de mouvement et la phase dominante. Pour l'analyse de mouvement, le flot optique est calculé en utilisant l'algorithme de Horn et Chunck. (Détails en annexe A). Les vecteurs de mouvement de la région de la main sont analysés. La distribution de phase est découverte pour les 8 quadrants. La phase dominante est localisée et codée et puis elle est tracée pour chaque frame. Le mouvement spécifique de la main est classifié en utilisant ce graphique. 3.2 Choix des dispositifs Nous devons avoir quelques primitives qui représentent la main et son mouvement. Les primitives que nous gardons sont :  Le Centre de la main détectée  Le tableau des modules des vecteurs de mouvement  L’histogramme des phases des vecteurs de mouvement  La phase dominante. Nous avons déjà le centre de la main. Pour les autres caractéristiques, nous devons analyser le mouvement de la main.
  • 25. 16 3.3 Analyse du mouvement Dans la vidéo, la chose la plus importante est le mouvement de la main. Il y a translation de la main, et il y a également mouvement souple des doigts. Ainsi nous devons estimer le champ de mouvement entre deux frames consécutives. L'évaluation de mouvement est basée sur les gradients espace temporels d'intensité de l'image, appelés l'écoulement optique ou flot-optique. 3.3.1 Flot-optique Le Flot-Optique ou écoulement optique est un concept pour estimer le mouvement des objets dans une représentation visuelle. Typiquement le mouvement est représenté par des vecteurs commençant ou se terminant aux Pixels dans l'image numérique. [8] L'écoulement optique est utile dans l'identification de modèle, la vision par ordinateur, et d'autres applications de traitement d'image. On le lie étroitement à l'évaluation de mouvement et à la compensation de mouvement. Souvent l'écoulement optique de limite est employé pour décrire un champ dense de mouvement avec des vecteurs à chaque Pixel, par opposition à l'évaluation de mouvement ou à la compensation qui emploie des vecteurs pour des blocs de Pixels, comme dans les méthodes visuelles de compression telles que le MPEG. Certains considèrent employer l'écoulement optique pour les systèmes d'évitement de collision et d'acquisition d'altitude pour les véhicules micro d'air. (a) (b) Fig. 3.1 : (a) Une boule en rotation (b) Ses vecteurs de mouvement Le Flot-Optique est l'évaluation de mouvement basée sur les gradients espace temporels d'intensité d'image. Il y a des différents algorithmes pour trouver le flot-optique, mais nous avons employé l'algorithme de Horn et Chunck (Détails en annexe A). Ensuite ayant le flot d'écoulement, nous étudions la distribution de phase de la région de la main.
  • 26. 17 3.3.2 Distribution de la phase Nous devons analyser la phase des vecteurs de mouvement, dans la région de la main. Pour cela, nous analysons la distribution de la phase dans les 8 quadrants. Nous trouvons l’histogramme des phases des vecteurs de mouvement pour chaque frame. (a) (b) Fig. 3.2 : (a) 8 quadrants pour distribution de la phase (b) Distribution de phase dans 8 quadrants 3.3.3 Codage de la phase dominante En raison de différents doigts se déplaçant, nous avons des vecteurs dans différentes directions. Dans chaque frame, nous trouvons la phase dominante. Nous avons fait notre propre système de codage pour la phase dominante. Nous codons le quart de cercle de la phase dominante. Nous gardons ce code comme caractéristique de chaque frame. Ce code se nomme identifiant de phase dominante.
  • 27. 18 Fig. 3.3 : Méthode de codage Ce codage est basé sur l'analyse de mouvement du geste à reconnaître. Quand une personne se gratte, les vecteurs de mouvement passent du 2ème et 3ème quart de cercle au 6ème et 7ème quart de cercle. Ainsi ce sont les centres d'intérêt principaux. Nous devons trouver les frames dans lesquelles la phase dominante change rapidement du 2ème et 3ème quart de cercle au 6ème et 7ème quart de cercle. 3.3.4 Classification de mouvement Pour trouver la séquence des frames où la phase dominante change rapidement du 2ème et 3ème quadrant au 6ème et 7ème quadrant, nous faisons le graphique d'identification de la phase dominante de chaque frame. (Fig. 3.4) Dans ce graphique, nous recherchons les régions où il y a des variations soudaines de 2 a - 2. Nous avons une condition que cet intervalle de grattage doit être assez long pour que la personne répète au moins deux fois un geste. Après l'expérimentation, nous avons découvert qu'il y a au moins 8 – 10 frames de mouvement des doigts du haut vers le bas, pendant le grattage. Ainsi nous recherchons la région où ce modèle du haut en bas est suivi au moins 4 fois (personne raye 2 fois). Cette région représente le geste que nous recherchons. 22 -2 -2 -1 -1 11
  • 28. 19 Fig. 3.4 : l’identification des frames du geste spécifique dans le graphique de la phase dominante Pour vérifier que ce mouvement est à proximité du visage, nous obtenons les coordonnées du visage en utilisant l'image de base de peau. La plus grande région est le visage. Quand ce mouvement identifié de la main est devant le visage, alors nous devons supprimer de la vidéo ce passage. Nous obtenons le début et la fin de ce modèle du mouvement identifié. Les dates de début et de fin sont indiquées. Nous enlevons les frames de la vidéo correspondantes et reconstruisons une nouvelle vidéo qui est sans grattage. Il ya une soumission pour ce travail [18]. temps Phase Identifier 2 1 -1 -2 Région d’intérêt
  • 29. 20 Chapitre 4 Implémentation et Résultats Dans les expériences, le sujet se tient en état normal d'éclairage, et a utilisé une main pour faire des gestes de la main. Il n'y a aucune limitation sur la nature du fond. Nous pouvons permettre quelques petits objets se déplaçant sur le fond qui ne seront pas extraits et ne seront pas traités car une main est mobile. Le geste que nous cherchons à identifier est de se gratter n'importe quelle partie du visage par la main. Le geste de la main est exécuté 4 fois par 4 individus différents. Donc il y a 16 vidéos différentes. Les vidéos ont été filmées dans une chambre en utilisant une webcam normale. Les vidéos ont été filmées à la résolution de 320 x 240. Le débit des frame a été fixé à 20 frames/sec. De ces 16 vidéos, 4 sont employées pour l’apprentissage du modèle de couleur de la peau, et dans l’apprentissage de l'analyse de mouvement de la main. Des valeurs actuelles du modèle de couleur de peau sont indiquées en annexe C. La programmation est faite en Visuel C++ en utilisant des librairies de OpenCV. La machine utilisée pour les tests est équipée d'un Pentium IV processeur de 3.0 gigahertz et 1GO de RAM. Le modèle obtenu pour chaque personne est un peu différent en raison de différentes tailles de main, et aussi parce que chaque personne fait le geste d'une manière légèrement différente et à une vitesse différente de la main. Pour rendre le système robuste, l'apprentissage a été fait sur 4 vidéos, 1 de chaque personne. Les résultats obtenus après étaient très satisfaisants. 91.6% fois, le geste a été correctement identifié dans la vidéo. Ce pourcentage pour la méthode de résidu [1] de mouvement est seulement 58.33%. Les vidéos où le geste n'a pas été correctement identifié étaient celles où la personne n'a pas fait le geste de manière correcte ou a fait le geste dans une durée très courte. Des résultats globaux sont montrés dans la table 4.1.
  • 30. 21 Conditions Identification correcte du mouvement Identification partielle du mouvement Identification incorrecte du mouvement Résultats % Méthode de Motion Résidu [1] 4 3 5 58,33% Notre méthode 9 2 1 91,67% Sans modèle de peau 6 4 2 75% Tab 4.1 : Comparaison des différentes méthodes Graphiquement, cela peut être montré comme : 0 1 2 3 4 5 6 7 8 9 Motion Residue Our Method Without skin color modeling correct partially correct incorrect 0 1 2 3 4 5 6 7 8 9 Motion Residue Our Method Without skin color modeling correct partially correct incorrect Fig 4.1 : Comparaison des différentes méthodes Nous pouvons voir que sans employer le modèle de la couleur de peau, les résultats se dégradent. Cela prouve clairement que la méthode que nous avons employée pour la détection et le suivi de la main a amélioré les résultats.
  • 31. 22 Les détails des numéros de frames calculés, où les gestes sont identifiés, par notre système et leurs numéros réels sont donnés pour une vision complète dans les résultats. Des valeurs réelles, de début et de fin du geste, sont découvertes par un logiciel « Jet Audio ». Vidéos Début réel Début calculé Fin réel Fin calculée 1 121 126 205 203 2 53 57 95 94 3 79 77 139 133 4 66 67 120 118 5 110 113 175 169 6 47 51 119 123 7 99 101 163 162 8 65 63 103 97 9 117 115 171 166 10 88 105 120 125 11 78 96 118 123 12 69 - 99 - Tab 4.2 : Valeurs réelles et valeurs calculées de début et de fin du geste identifié dans chaque vidéo Ce tableau prouve que la méthode fonctionne vraiment bien et elle trouve presque le début exact et la fin exacte du geste.
  • 32. 23 Conclusion et Perspectives Nous avons développé une méthode pour identifier un geste d'entrée en employant un modèle basé sur l'analyse de mouvement de la main. La détection et le suivi de la main sont faites par une combinaison des méthodes différentes pour les rendre plus robustes. Nous avons appliqué le système pour identifier un seul geste. Il n'y a aucune limitation pour que le fond soit fixé et non complexe. L'apprentissage a été fait sur un petit ensemble de données et les résultats obtenus étaient tout à fait bons. Actuellement, il est seulement pour un geste mais si nous ajoutons de nouveaux gestes au système, nous devons seulement recycler un autre modèle pour le geste. C'est parce que le rapport entre le nouveau modèle et les modèles originaux est indépendant. Comme nous savons il y a toujours une certaine place pour l'amélioration, tellement il y a quelques perspectives dans ce projet également. Encore plus de gestes peuvent toujours être ajoutés. L'aspect du mouvement en 3D des deux mains peut également être ajouté. Il peut également être augmenté pour quelques applications en temps réel. Donc il y a toujours des choses à faire pour les gens qui veulent travailler dans ce domaine.
  • 33. 24
  • 34. 25 Appendice A L'écoulement / Flot-Optique Le flot optique est un concept pour estimer le mouvement des objets dans une représentation visuelle. Typiquement le mouvement est représenté par des vecteurs commençant ou se terminant aux Pixels dans l'image numérique. [8] Le flot optique est utile dans l'identification de modèle, la vision par ordinateur, et d'autres applications de traitement d'image. On le lie étroitement à l'évaluation de mouvement et à la compensation de mouvement. Souvent l'écoulement optique de limite est employé pour décrire un champ dense de mouvement avec des vecteurs à chaque Pixel, par opposition à l'évaluation de mouvement ou à la compensation qui emploient des vecteurs pour des blocs de Pixels, comme dans les méthodes visuelles de compression telles que le MPEG. Certains considèrent employer l'écoulement optique pour les systèmes d'évitement de collision et d'acquisition d'altitude pour les véhicules micro d'air. A.1 Quelques méthodes pour déterminer l'écoulement optique  Corrélation de phase (inverse de spectre normal de croix-puissance)  Corrélation de bloc (somme des différences absolues, de corrélation croisée normale)  Le gradient contraint a basé l'enregistrement  Méthode de Lucas Kanade  Méthode de Horn et Schunck A.2 Méthode de Horn et Schunck La méthode de Horn-Schunck d'estimation de flot optique est une méthode globale qui présente une contrainte globale de la douceur pour résoudre le problème d'ouverture (voir la méthode de Lucas Kanade pour davantage de description). [9] Une fonction globale d'énergie doit être minimisée, cette fonction est donnée comme suit :
  • 35. 26 là où sont les dérivés des valeurs d'intensité d'image le long des dimensions de x, de y, de z et de t. est le vecteur flot optique d'écoulement avec les composants Vx, Vy, Vz. Le α paramètre est une constante de régularisation. De plus grandes valeurs de α mènent à un écoulement plus régulier. Cette fonction peut être résolue en calculant les équations d'Euler-Lagrange correspondant à la solution de l'équation ci-dessus. Celles-ci sont données comme suit : où Δ dénote l'opérateur de Laplace de sorte que . Résolvant ces équations par la méthode de Gauss-Seidel pour les composantes d'écoulement Vx, Vy, Vz on obtient un système itératif:
  • 36. 27 L'indice supérieur k+1 dénote la prochaine itération, qui doit être calculée et k est le dernier résultat calculé. ΔVi peut être obtenu comme: ΔVi = ∑ Vi(N(p)) − Vi(p) N(p) avec N (p) sont les six voisins du Pixel P. Une exécution algorithmique alternative basée sur la méthode de Jacobi est donnée par : où se rapporte à la moyenne de dans le voisinage de la position actuelle du Pixel. Les avantages de l'algorithme de Horn-Schunck incluent qu'il apporte une densité des vecteurs d'écoulement, c'est à dire l'information d'écoulement manquant dans les parties intérieures d'objets homogènes est complétée à partir des frontières de mouvement. Du côté négatif, cet algorithme est plus sensible au bruit que des méthodes locales.
  • 37. 28
  • 38. 29 Appendice B Détecteur de bord de Sobel L'opérateur de Sobel effectue une mesure spatiale de gradient sur une image et ainsi souligne les régions du gradient spatial élevé qui correspondent aux bords. Typiquement il est employé pour trouver la grandeur absolue approximative de gradient à chaque point dans une image à fond gris d'entrée. [10] B.1 Comment cela fonctionne Dans la théorie au moins, l'opérateur se compose d'une paire de masques de la convolution 3×3 suivant les indications du schéma 1. Les masques s'obtiennent simplement par une rotation de 90°à partir de l'autre. C'est très semblable à l'opérateur de Roberts. Fig C.1 : Masques de convolution de Sobel Ces masques sont conçus pour répondre au maximum aux bords fonctionnant verticalement et horizontalement relativement à la grille de Pixels, un masque pour chacune des deux orientations perpendiculaires. Les masques peuvent être appliqués séparément à l'image d'entrée, pour produire des mesures séparées des composantes de gradient dans chaque orientation (notés Gx et Gy). Celles-ci peuvent alors être combinées ensemble pour trouver la norme du gradient en chaque point et l'orientation de ce gradient. La grandeur de gradient est indiquée par:
  • 39. 30 Bien que typiquement, une grandeur approximative soit calculée : ce qui est beaucoup plus rapide à calculer. L'angle de l'orientation du bord (relativement à la grille de Pixels) provoquant le gradient spatial est donné par : Dans ce cas-ci, l'orientation 0 est prise pour signifier que la direction du contraste maximum de noir au blanc fonctionne de gauche à droite sur l'image, et d'autres angles sont dans le sens contraire des aiguilles d'une montre. Souvent, cette grandeur absolue est le seul rendement que l'utilisateur voit --- les deux composantes du gradient sont commodément calculées et ajoutées dans un balayage de l'image d'entrée en utilisant l'opérateur de pseudo-convolution représenté ici : En utilisant ce masque la grandeur approximative est indiquée par : G = ( P1 + 2 x P2 + P3) – ( P7 + 2 x P8 + P9) + (P3 + 2 x P6 + P9) – (P1 + 2 x P4 + P7)
  • 40. 31
  • 41. 32 Appendice C Modèle de couleur de peau Des points de peau sont sélectionnés manuellement et la valeur moyenne ainsi que la matrice inverse de covariance sont calculées. Par apprentissage sur les données disponibles, j'ai obtenu les valeurs suivantes. Moyen (m) = 191.8 153.38 138.6 0.025331 -0.042978 0.017446 COV -1 = -0.042978 0.090875 -0.049811 0.017446 -0.049811 0.035333 Ensuite, la distance de Mahalanobis est calculée comme: Di = (xi-m)T COV -1 (xi-m) L'apprentissage a prouvé que le seuil pour la couleur de la peau est 3. 255 (peau), Si Di < 3 Pixel valeur = 0 (non-peau), sinon
  • 42. 33
  • 43. 34 Bibliography [1] Quan Yuan, Stan Sclaroff, Vassilis Athitsos, Automatic 2D hand tracking in video sequences, IEEE workshop on applications of computer vision, 2005 [2] Feng-Sheng Chen, Chih-Ming Fu, Chung-Lin Huang, Hand gesture recognition using a real-time tracking method and hidden Markov models, Image and Video Computing, 21(8):745--758, August 2003 [3] Mathias Kolsch, Matthew Turk, Fast 2D hand tracking with Flocks of Features and Multi-Cue Integration, Conference on Computer Vision and Pattern Recognition Workshop (CVPRW'04) Volume 10, 2004 [4] Gerhard Rigoll, Andreas Kosmala, Stephan Eickeler, High performance real time gesture recognition using hidden Markov models, Workshop 1997 : 69-80: 6: EE [5] Jie Yang, Yangshen Xu, Hidden Markov Model for Gesture Recognition, CMU-RI-TR- 94-10, 1995 [6] Wikipedia, Condensation Algorithm, http://en.wikipedia.org/wiki/Condensation_algorithm [7] Konstantinos G. Derpanis, The Gaussian Pyramid, Feb 2005 [8] Wikipedia, Flow Optic, http://en.wikipedia.org/wiki/Optical_flow [9] Wikipedia, Horn and Shunck Algorithm, http://en.wikipedia.org/wiki/Horn_Schunck_Method [10] Tutorial, Sobel Edge detector, http://www.cee.hw.ac.uk/hipr/html/sobel.html
  • 44. 35 [11] C. Tomasi, J. Shi, Good features to track, CVPR, 1994 [12] C. Tomasi, T. Kanade, Detection and tracking of Point features, CMU-CS-91-132, April 1991 [13] D. Gotz, A. Sud, Estimation of Pose and structure from un-calibrated image sequences, Comp 256 Final Report, 2001 [14] T. Baudel, M. Baudouin-Lafon, Charade, Remote control of objects using free hand gestures, Communications of the ACM, 36(7):28-35, July 1993 [15] D.J. Sturman, D. Zeltzer, A survey of glove based input, IEEE Computer Graphics and Applications, 14 (1), 30-39, 1994 [16] C. L. Huang, W. Y. Huang, Sign Language Recognition using model based tracking and 3D Hopfield neural network, MVA(10) , 1998, pp. 292-307 [17] R. E. Kalman, A new approach to linear filtering and prediction problems, Trans. of the ASME-J of basic engineering, Vol 82, series D, pp 35-45, 1960 [18] K. Khurshid, N. Vincent, Removal of unwanted Hand Gestures using Motion Analysis, 7th Int'l workshop on Pattern Recognition in Information Systems (PRIS), June 2007, Portugal View publication statsView publication stats