of 9

Analyse de trajectoires pour la synthèse d un mouvement de marche

0 views
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Share
Description
Analyse de trajectoires pour la synthèse d un mouvement de marche Alexandru Robert Ciprian Guduvan, Vincent Charvillat, Géraldine Morin To cite this version: Alexandru Robert Ciprian Guduvan, Vincent Charvillat,
Transcript
Analyse de trajectoires pour la synthèse d un mouvement de marche Alexandru Robert Ciprian Guduvan, Vincent Charvillat, Géraldine Morin To cite this version: Alexandru Robert Ciprian Guduvan, Vincent Charvillat, Géraldine Morin. Analyse de trajectoires pour la synthèse d un mouvement de marche. ORASIS 09 - Congrès des jeunes chercheurs en vision par ordinateur, 2009, Trégastel, France, France. inria HAL Id: inria Submitted on 16 Jul 2009 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d enseignement et de recherche français ou étrangers, des laboratoires publics ou privés. Analyse de trajectoires pour la synthèse d un mouvement de marche Trajectory analysis for synthetizing walking animation Alexandru-Robert-Ciprian Guduvan 1 Vincent Charvillat 1 Géraldine Morin 1 1 IRIT - Université de Toulouse 2 rue Camichel, F Toulouse FIG. 1 Analyse des trajectoires de doigts pour paramétrer un modèle d animation 3D et la synthèse du mouvement associé. Résumé Cet article présente l animation d un modèle de personnage contrôlé par des paramètres issus de l analyse de mouvement de doigts préalablement colorés dans une vidéo. L intérêt de cette approche est la facilité de la mise en oeuvre, et la faible complexité des algorithmes proposés. Pour le traitement de la vidéo, une analyse colorimétrique des trames isole des régions de couleur. Les données manquantes sont reconstruites et des trajectoires lisses correspondant au mouvement continu des doigts sont déduites. Les paramètres de mouvement sont estimés et utilisés pour définir le mouvement d un personnage 3D. Mots Clef Analyse de vidéo, synthèse de mouvement, trajectoires. Abstract This article presents the animation of a character model controlled by parameters extracted from the analysis of the movement of fingers in a video. The interest of this approach is its ease of implementation and the limited complexity of the algorithms. For the video-processing a colorimetric analysis of each frame isolates regions of different colors. Missing data is reconstructed and smooth trajectories corresponding to the continuous motion of the fingers are deduced. We infer the parameters for the bipedal movement and use them to define the walk of a 3D character. Keywords Video analysis, motion synthesis, trajectories. 1 Introduction La détection des gestes dans un fichier vidéo, l analyse des caractéristiques du geste, puis l utilisation des paramètres déterminés (par exemple : la forme du geste, la vitesse) pour la synthèse d un mouvement de marche 3D, représentent un domaine d actualité qui a des applications dans l industrie cinématographique et celle des jeux informatiques. Une première approche utilise des systèmes de motion capture [AJ05], que l on retrouve notamment dans l industrie cinématographique, un personnage 3D reproduit exactement les données capturées par le système. Tournier et al. [TWC 08], d une part, et Arikan [Ari06], d autre part, proposent deux méthodes pour compresser les données acquises par la capture de mouvement. La difficulté principale de cette approche repose sur le matériel lourd utilisé, donc nous proposons une alternative en faisant appel à l analyse de séquences vidéo. Deux approches de génération de mouvement sont proposées : la première consiste à utiliser les trajectoires trouvées directement pour l animation d un personnage (comme dans [BH07]). La deuxième approche utilise des caractéristiques essentielles du geste pour paramétrer un modèle d animation. Ce modèle est basé sur le principe du pendule simple pour simuler le mouvement des articulations les unes par rapport aux autres. Sa simplicité par rapport aux modèles classiques, qui proviennent d une analyse physique du mouvement humain [BC89], le rend idéal pour des applications en temps réel. Par rapport aux travaux précédents, cet article propose l analyse ainsi que la synthèse du mouvement afin de créer un système complet de reconnaissance de gestes, leur analyse et la production de l animation correspondante. Les résultats montrent que la méthode trajectographique est précise et que le modèle d animation est d une part une bonne approximation du mouvement naturel et d autre part facile à contrôler par un nombre réduit de paramètres. Dans la suite, la section 2 présente le traitement de la vidéo comprenant la gestuelle par analyse chromatique (détermination des régions de couleur comme dans [GH96]). En section 3, nous construisons les trajectoires des centres des régions identifiées en utilisant des courbes de Bézier de degré variable. Ensuite nous utilisons un modèle de personnage 3D paramétré par les caractéristiques de la gestuelle afin de produire un mouvement de synthèse. 2 Analyse de la vidéo et éléments de trajectographie 2.1 Format des données d entrée La reconnaissance du mouvement dans un fichier vidéo comprend l analyse de chacune de ses trames au niveau des pixels (cf. figure 7 où nous décrivons l algorithme utilisé). Pour identifier chaque geste de la main, les doigts dans la vidéo ont été préalablement séparés (segmentés) en régions de couleur (cf. figure 2). Pour simplifier l acquisition des données il est possible d utiliser un gant avec la même construction [GH96] ou d utiliser une méthode de détection de la peau [VSA03]. La séparation des doigts en régions facilite la reconnaissance du geste. Dans une première approche nous considérons les régions des doigts et nous leur faisons correspondre les régions de la jambe d un personnage virtuel qui va suivre le mouvement exact des doigts. Pour faciliter le processus d identification des régions de couleur et de leur centre, la vidéo subit un prétraitement. La première étape représente l application d un filtre Gaussien à chaque trame de la vidéo, pour éliminer le bruit et homogénéiser les zones de couleur. Nous avons choisi d utiliser les composantes RGB pour permettre un traitement direct sur les composantes RGB des trames. Ceci permet de restreindre le nombre de calculs afin de garder un aspect temps réel. Il aurait été possible d envisager l utilisation d autres espaces de couleurs (comme dans [TC92] ou encore [TLF95]). Dans la plupart des vidéos les variations de couleurs sont dues aux conditions dynamiques de la capture, aux variations de l éclairage ou aux ombres. Nous utilisons la représentation normalisée des couleurs. Si dans une trame un pixel a dans l espace RGB les composantes (R,G,B), alors après la normalisation elles seront : ( (R n,g n,b n R ) = R + G + B, G R + G + B, B ). (2) R + G + B Tenant compte du fait qu une des nouvelles composantes peut être déduite de la propriété : R n + G n + B n = 1, seules deux composantes suffisent. FIG. 3 Masque de séparation pour une trame (identification des régions de couleur). FIG. 2 Trame dans la vidéo. Dans la suite du papier une vidéo V est considérée comme un ensemble de D trames ordonnées : V = {T n n N,n D} (1) où T n représente la n-ième trame de la vidéo. 2.2 Prétraitement de la vidéo et analyse chromatique Pour une trame donnée T i, nous nous sommes intéressés à la détection des régions de couleur de la main. A partir de ces positions, nous pourrons identifier le geste et déterminer ses caractéristiques. Des informations supplémentaires sur les couleurs à reconnaître sont données en entrée : le nombre de couleurs, leur codage RGB et le nombre de régions de chaque couleur. En mode d apprentissage supervisé, on sélectionne un nombre significatif de trames uniformément distribuées dans la vidéo et l utilisateur peut identifier les régions de couleur (dans notre cas : rouge, verte, bleu et jaune). Nous calculons ensuite la moyenne de chacune des couleurs, que l on utilise pour identifier les régions dans la vidéo, en comparant la différence entre la couleur de chaque pixel et les couleurs moyennes à un certain seuil, comme proposé dans [OKS80]. Ce procédé nous offre pour chacune des couleurs un masque qui montre la zone qu elle occupe dans la trame (cf. figure 3). Le centre d une région est défini comme le point moyen des pixels de sa couleur dans le masque. Dans le cas où une certaine couleur ne se retrouve pas dans le masque, on l ignore et la position du centre de la région correspondante sera approximée par une moyenne des valeurs des k plus proches voisins (cf. sous-section 2.4). Après l application des principes décrits ci dessus, pour chaque région, nous disposons d un ensemble de paires (x n,y n ) indiquant la position du centre de la région dans chacune des trames T n (cf. figure 4). FIG. 5 Les centres des régions après le remplissage. FIG. 4 Centres des régions de couleurs identifiées après le traitement complet de la vidéo. Des données sont manquantes, en particulier à cause de problémes d occultation. 2.3 Détermination robuste des régions La détection des régions et donc le calcul de leurs centres peut manquer de précision. Ceci peut être dû à la mauvaise détection des couleurs (par exemple, si les couleurs sont proches). Deux techniques permettent d améliorer ces calculs. La première utilise l élimination des points isolés. Les points isolés sont éliminés, considérant qu ils font partie d une mauvaise détection des couleurs. La deuxième méthode consiste à imposer une limite sur la vitesse des gestes. Si dans deux trames successives (correspondant à deux instants consécutifs), la position d un centre varie trop, la position dans la deuxième trame est ignorée. C est à dire, si dans une trame T i, on identifie correctement le centre de la région jaune en haut puis, dans la trame T i+1, à cause d une mauvaise détection de la couleur de la peau, le centre se déplace vers le poignet, la distance entre les deux centres peut être trop importante, auquel cas la donnée aberrante est éliminée. 2.4 Remplissage de l ensemble des données Parfois des régions de couleur sont complètement ou partiellement occultées (quand elles sortent de l écran ou qu elles sont cachées par un autre objet). Dans ce cas, par l élimination des données erronées, on obtient un ensemble incomplet de centres. Pour éliminer le risque d obtenir des centres approximés faux, et régulariser les variations, des nouvelles données sont insérées. Les positions manquantes sont estimées par la méthode des k plus proches voisins. Pour une région dans une trame T i, on suppose que la détection du centre a échoué. On remplit alors la valeur de son centre C i avec la moyenne des valeurs des k plus proches centres bien détectés. Cette méthode tiendra compte des données déjà insérées pour le remplissage des données manquantes suivantes. Ceci assure un aspect continu tout en évitant les redondances. En effet plusieurs centres non-détectés sont approximés avec des valeurs différentes. Cette étape est nécessaire car l estimation des paramètres des courbes de Bézier ménée ultérieurement est sensible aux endroits où la densité des points d apprentissage n est pas suffisante (comme dans l ensemble de données brutes). Sans cette étape de remplissage des données, l approximation des trajectoires par des courbes de Bézier donne des résultats inutilisables : la courbe approximante oscille fortement dans les zones où les données manquent. 2.5 Approximation des trajectoires Pour tracer une approximation des trajectoires suivies par chacune des régions de couleur, nous utilisons un modèle polynomial, sous forme de courbes de Bézier. Arikan utilise ce même modèle pour compresser des bases de données issues de la capture de mouvement [Ari06]. Notre but est de lisser les trajectoires brutes (éliminer leurs variations locales) afin d offrir au mouvement un aspect régulier. Une courbe de Bézier de degré d avec l ensemble P des d + 1 points de contrôle est décrite de la manière suivante : B(t,P) = d i=0 PC i b i,d (t) (3) ou PC i P est le ième point de contrôle et b i,d le ième polynôme de la base de Bernstein de degré d, qui s écrit : ( ) d b i,d (t) = t i (1 t) d i. (4) i Chaque centre C i d une région a deux composantes (x i,y i ) qui définissent sa position dans la trame T i. On considère l ensemble C = {(i,(x i,y i )) i = 1..D}. On calcule par régression la courbe de Bézier qui est la meilleure approximation de ces données, au sens des moindres carrés, c est à dire, qui minimise le critère : B(i,P) (x i,y i ) 2. (5) i Pour avoir une valeur précise de la qualité de l approximation et de sa capacité de généralisation, on procède de la manière suivante : comme cet ensemble est de grande taille, il est séparé en un ensemble d apprentissage et un ensemble de test (éventuellement de la même taille, tenant compte des indices pairs et impairs par exemple, ou d un autre ensemble d indices I) : C app = {(i,(x i,y i )) i I}, C test = {(i,(x i,y i )) i / I}. L ensemble d apprentissage est utilisé pour déterminer des courbes de Bézier de divers degrés (d) ou, plus spécifiquement, leurs paramètres : les points de contrôle(pc i,i = 1..d + 1). Pour chaque degré entre d min et d max, on calcule l ensemble des points de contrôle solution du problème d estimation suivant : Pˆ d = argmin N (x i,y i ) B(i,P d ) 2,N = card(i). (6) i I P c 1 Parmi les courbes de divers degrés, on choisit celle qui a la meilleure capacité de généralisation, c est-à-dire celle qui obtient la valeur la plus basse de l erreur de généralisation pour l ensemble de test (la distance entre les valeurs de l ensemble de test et celles prédites) : FIG. 7 Schéma des procédures proposées pour l analyse des trames. Err gen = 1 M i/ I x i B(i,P d ) 2,M = D N (7) On notera que le degré retenu n est pas toujours le plus élevé, mais celui qui permet la meilleure adaptation de la courbe aux données. Les courbes de Bézier obtenues offrent un ensemble de données : C pred avec les coordonnées des centres prédites des régions de couleur pour chaque trame (cf. figure 6). Ces trajectoires sont ensuite utilisées pour induire un mouvement (première approche) ou paramétrer le mouvement d un personnage (deuxième approche) (cf. figure 8). FIG. 8 Schéma des procédures proposées pour la synthèse du mouvement du personnage. FIG. 6 La première approche : influence directe du personnage par le geste à l aide des courbes de Bézier. 3 Modèle d animation 3.1 Construction du personnage Les éléments constitutifs du personnage sont (cf. figure 9) : 1 Elément_T ête, 1 Elément_Cou, 1 Elément_Bassin, 2 Elément_Coude, 2 Elément_Main, 2 Elément_Genou, 2 Elément_Cheville. Dans ce modèle il n y a pas d éléments correspondant aux épaules et les hanches. Ces deux composantes ana- tomiques sont modélisées à partir de l Elément_Cou et l Elément_Bassin respectivement, grâce à leur alignement. Le principe du pendule double Chacun des éléments mentionnés effectue le même mouvement paramétré différemment (modèle du pendule simple [Moj03]) par rapport à l élément le plus proche qui l influence, comme dans le schéma (cf. figure 10). La somme de ces mouvements impose au personnage un mouvement selon le modèle d un ensemble de pendules doubles. FIG. 9 Le modèle utilise pour le personnage 3D. Le mouvement des éléments du personnage se fait dans des plans parallèles au plan XOY, en gardant les composantes Z constantes dans le temps. Le personnage avance / recule dans la direction de l axe OX. 3.2 Animation directe du personnage On utilise directement les trajectoires reconstruites pour animer un personnage dont les jambes suivent les centres des régions de couleur. Les bras ont été animés de façon cohérente par rapport au mouvement des jambes : le bras gauche suit le mouvement de la jambe droite et le bras droit suit le mouvement de la jambe gauche -par symétrie par rapport à l axe OY pour rendre l animation la plus naturelle possible. 3.3 Modèle de mouvement paramétré L élément principal du personnage est l Elément_Bassin par rapport auquel les positions de tous les autres éléments sont calculées. Les composantes : Elément_Bassin, Elément_Cou et Elément_T ête modifient leur composante X dans le cas du mouvement dans la scène (en temps fini) ou restent constantes dans le cas du mouvement infini. Pour simuler un mouvement naturel du personnage et garder les contraintes imposées par son squelette (longueur constante des composantes : bras, jambes) le mouvement a été produit comme la somme des changements des positions des composantes les unes par rapport aux autres selon le modèle suivant : l Elément_Main change sa position tenant compte de la position de l Elément_Coude qui à son tour est influencé par la position de l Elément_Cou, similairement l Elément_Cheville change sa position tenant compte de la position de l Elément_Genou qui à son tour est influencé par la position de l Elément_Bassin. FIG. 10 Principe du pendule simple . Par exemple : l Elément_Main effectue un mouvement pendule simple par rapport à l Elément_Coude qui à son tour effectue le même genre de mouvement par rapport à l Elément_Cou. Donc l Elément_Main et l Elément_Coude ensemble suivent un mouvement de pendule double par rapport à l Elément_Cou. Le mouvement type pendule simple est caractérisé par trois paramètres : Angle_Min : l angle minimal fait par le segment qui joint les deux éléments du pendule avec l horizontale pendant le mouvement, Angle_Max : l angle maximal fait par le segment qui joint les deux éléments du pendule avec l horizontale pendant le mouvement, Période : l intervalle de temps pendant lequel le pendule partant d une de ses positions extrêmes (Angle_Min ou Angle_Max) passe par l autre position extrême et finalement arrive dans son état initial. Pour simplifier : dans le système d un pendule simple, un Elément_1 effectue un mouvement par rapport à un Elément_2 qui représente le parcourt d un arc de cercle centré dans la position de l Elément_2, avec un rayon égal à la distance euclidienne entre les deux éléments (R). Le cercle sera parcouru entre Angle_Min et Angle_Max, donc l arc aura Angles = (Angle_Max Angle_Min) degrés. Ce parcours sera fait pendant l intervalle Période 2 dans un sens puis dans l autre sens pendant la même durée. Les équations qui gèrent le mouvement pendule simple dans le temps sont : Elément_1 = [ Elément_2(1) + R cos ( Angle_Min + Angles t ), Elément_2(2) + R sin ( Angle_Min + Angles t ), Elément_2(3) ] 3.4 Paramètres de contrôle Pour animer le personnage, nous utiliserons trois paramètres : Vitesse, Période et Saut. Le premier est un réel qui prend des valeurs dans l intervalle [0, 1] et le troisième un booléen qui prend la valeur 1 quand le personnage doit effectuer un saut. La valeur du paramètre Période est déduite en analysant les courbes de Bézier. Nous observons que le mouvement des jambes est périodique dans le temps (cf. figure 11). De plus, des informations sur cette périodicité peuvent être déduites facilement en regardant l ensemble des centres des régions prédits sur l axe OY. La tangente à une courbe de Bézier s exprime simplement car sa dérivée est une courbe de Bézier de degré d 1 dont les points de contrôle sont les différences des points de contrôle successifs (voir par exemple [Far01]) : B d 1 (t,p) = i=0 (PC i+1 PC i )b i,d 1 (t). (8) Les valeurs de la Période au cours du temps sont données par la détection des endroits ou l ordonnée de la tangente change de signe. Pour cela, il est nécessaire que l ordonnée des différences des points de contrôle change de signe. En utilisant cette Période déduite du mouvement, et qui est corrélée avec la Vitesse, nous obtenons un mouvement très naturel du personnage 3D. Angle_Min a une variation inversement proportionnelle à celle de Vitesse (quand la vitesse augmente le personnage fait des pas en avant plus longs), Angle_Max a une variation directement proport
Related Search
Advertisements
Related Docs
View more...
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks