FR 3054061 A1 20180119 FR 1656738 A 20160713 1 PROCÉDÉ ET SYSTÈME POUR LA LOCALISATION ET LA RECONSTRUCTION EN TEMPS RÉEL DE LA POSTURE D'UN OBJET MOUVANT À L'AIDE DE CAPTEURS EMBARQUÉS DESCRIPTION DOMAINE TECHNIQUE Le domaine de l'invention est celui de la capture du mouvement d'un objet, et du transfert temps-réel de ce mouvement à une structure massique (poly-) articulée modélisant l'objet. L'invention trouve application à la capture du mouvement d'un corps humain via des capteurs disposés sur une personne, et à la représentation de ce mouvement via l'animation d'un avatar dans une simulation numérique. ÉTAT DE LA TECHNIQUE ANTÉRIEURE On cherche dans un certain nombre d'applications à représenter les mouvements d'une personne dans une simulation numérique. Dans la majorité des cas, la personne porte un ensemble de capteurs dont les données sont utilisées pour animer son avatar numérique dans la simulation. Les besoins principaux d'une capture du mouvement sont, d'une part, de localiser la personne dans l'environnement, et, d'autre part, d'estimer la posture complète de la personne. Pour répondre conjointement à ces deux besoins, il est aujourd'hui nécessaire d'instrumenter l'environnement. Des caméras sont par exemple placées dans l'environnement et observent la personne (ou des capteurs portés par celle-ci) pour détecter ses mouvements. L'instrumentation de l'environnement impose cependant plusieurs contraintes : elle est coûteuse en temps, elle limite la zone de capture, et elle est incompatible avec des environnements extérieurs ou a priori inconnus. C'est pourquoi l'utilisation de capteurs complètement embarqués sur la personne est un besoin récurrent. 3054061 2 Mais peu de solutions existent aujourd'hui pour répondre conjointement aux deux besoins précités au moyen de capteurs embarqués uniquement, sans instrumentation de l'environnement. On peut toutefois citer l'article de T. Shiratori et al. intitulé « Motion capture from body-mounted cameras », ACM Trans. Graph. 30, 4, Article 5 31 (July 2011) qui décrit une solution reposant sur plusieurs caméras placées sur le torse et les membres de la personne. Pour chaque caméra, un algorithme de Structure à partir du Mouvement (SfM pour « Structure from Motion ») est appliqué pour calculer les positions successives des caméras. Puis, une optimisation globale permet de retrouver la localisation et la posture de la personne au cours du temps. Cette optimisation globale consiste à 10 résoudre un ajustement de faisceaux avec des contraintes additionnelles liées au mouvement du squelette, par exemple la fluidité des mouvements. Cette solution présente cependant un certain nombre d'inconvénients : Elle est coûteuse en temps de calcul (plus de 10 heures de calcul d'après l'article). Elle est sensible à la qualité des images (ex : images floues liées au bougé, 15 occultation du capteur par une partie du corps, etc.). Elle est sensible à la dérive du facteur d'échelle, et des images de référence sont nécessaires pour résoudre ce problème Le flux de données à transférer est très volumineux. EXPOSÉ DE L'INVENTION 20 L'invention a pour objectif de proposer une technique de localisation et de reconstruction en temps réel de la posture d'un objet mouvant à l'aide de capteurs embarqués uniquement qui soit dénuée, au moins en partie, des inconvénients susmentionnés. A cet effet, l'invention propose un système de reproduction du 25 mouvement d'un objet par une structure articulée comprenant une pluralité de segments, qui comporte : des capteurs fixés, en utilisation, sur l'objet, une unité de traitement de mesures réalisées par les capteurs fixés sur l'objet, comprenant un module de détermination d'une commande à appliquer à la 3054061 3 structure articulée de sorte à la localiser dans un repère de référence en lui faisant adopter une posture reproduisant celle de l'objet, ledit module fournissant en sortie la localisation absolue de chacun des segments de la structure dans le repère de référence, ledit module exploitant la localisation absolue de chacun des 5 capteurs fixés sur l'objet dans le repère de référence. Les capteurs fixés, en utilisation, sur l'objet comprennent un capteur optique et des capteurs de mouvement relatifs et l'unité de traitement comporte en outre : un module de traitement d'images configuré pour déterminer une localisation absolue du capteur optique dans le repère de référence à partir d'une séquence 10 d'images acquises par le capteur optique, un module de détermination de localisation relative de chacun des capteurs de mouvement relatifs par rapport au capteur optique, à partir de mesures réalisées par les capteurs fixés sur l'objet, un module de détermination de localisation absolue de chacun des capteurs de 15 mouvement relatifs dans le repère de référence, à partir de la localisation absolue du capteur optique et de la localisation relative de chacun des capteurs de mouvement relatifs. BRÈVE DESCRIPTION DES DESSINS D'autres aspects, buts, avantages et caractéristiques de l'invention 20 apparaîtront mieux à la lecture de la description détaillée suivante de formes de réalisation préférées de celle-ci, donnée à titre d'exemple non limitatif, et faite en référence aux dessins annexés sur lesquels : la figure 1 représente un exemple de structure massique poly-articulée utilisée comme modèle physique (au sens des lois de la physique) d'un corps humain ; 25 la figure 2 est un schéma d'un système conforme à l'invention pour le suivi de mouvement d'un objet sur lequel des capteurs sont fixés ; la figure 3 illustre le calcul de la localisation du capteur optique par rapport au repère de référence ; 3054061 4 la figure 4 représente l'acquisition des données de mouvement des membres dans un repère courant associé au capteur optique ; la figure 5 est un schéma représentant les étapes d'un procédé conforme à l'invention. 5 EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS L'invention concerne la commande d'une structure massique articulée à partir de données représentatives du mouvement d'un objet. Des capteurs de mouvement sont fixés sur l'objet et l'on souhaite asservir la structure massique articulée pour qu'elle reproduise les mouvements de l'objet. 10 L'objet est typiquement un corps humain ou le corps d'un animal, voire une seule partie d'un tel corps. L'invention n'est toutefois pas limitée à ces exemples, et s'étend ainsi au suivi du mouvement de tout objet mouvant pouvant être représenté par une structure articulée. La structure massique articulée est composée de segments reliés par au 15 moins une articulation. Elle est utilisée comme modèle physique de l'objet dont on suit le mouvement. Il s'agit typiquement d'une structure poly-articulée. La structure massique articulée peut être un modèle numérique de l'objet. L'objectif peut alors être la représentation des mouvements de l'objet dans une simulation numérique, au moyen de l'animation de la structure massique articulée dans la 20 simulation numérique selon une commande déterminée par l'invention. La figure 1 donne un exemple de structure massique poly-articulée 10 pouvant être utilisée comme modèle physique du corps humain dans une mise en oeuvre de l'invention. La structure massique poly-articulée est composée de segments reliés par des articulations. Un segment désigne un objet rigide ou supposé rigide qui est défini par 25 une géométrie (c'est-à-dire par une forme volumique bien définie), une masse et une inertie. Une articulation désigne une liaison entre deux segments. Cette liaison définit la configuration relative que peut avoir un segment par rapport à un segment auquel il est lié. Une articulation est définie par un ou plusieurs degrés de libertés représentatifs notamment des caractéristiques de centres, d'axes ou de butées. 3054061 5 Dans l'exemple de la figure 1, la structure poly-articulée 10 est composée de vingt-et-un segments reliés par vingt articulations. Ainsi, à titre d'exemple, la main est modélisée par un premier segment 13 relié par une articulation 16 à un deuxième segment 12 correspondant à l'avant-bras. L'articulation 16 possède par exemple trois degrés de 5 liberté. Le segment 12 correspondant à l'avant-bras est relié par une articulation 15 à deux degrés de liberté au segment 11 correspondant au bras. Le segment 11 est quant à lui relié à la clavicule par une articulation 14 à trois degrés de libertés. Outre la définition de la structure articulée (les géométries de chaque segment, les masses et les inerties de chaque segment et les paramètres des articulations : 10 degrés de liberté, centre, axes, valeur des buttées), d'autres paramètres nécessaires à la mise en oeuvre du procédé selon l'invention peuvent comprendre : - La définition de la gravité (direction et norme du champ de pesanteur), dont l'effet (le poids) est représenté par des efforts extérieurs appliqués sur le centre de masse des segments de la structure articulée. 15 - La définition du sol. Cette définition de l'environnement comprend la géométrie du sol (reliefs, escaliers etc...), et un repère de référence attaché au sol. Elle permet notamment de détecter les collisions potentielles entre la structure articulée et l'environnement. - La définition du comportement en frottement de la structure articulée sur 20 l'environnement. Par exemple, si ce comportement est modélisé par une loi de Coulomb, le coefficient d'adhérence est donné. En référence maintenant à la figure 2, l'invention propose un système de reproduction du mouvement d'un objet par une structure articulée. Ce système exploite les données issues d'un ensemble de capteurs CO, C1-C4 fixés sur l'objet, et ne nécessite 25 pas d'instrumentation de l'environnement. Les capteurs fixés sur l'objet comprennent un élément central disposant d'un capteur optique, et des capteurs de mouvement relatifs. Le capteur optique et le module 22 décrit ci-après permettent de calculer la position/orientation de l'objet dans un repère de référence lié à l'environnement. Les mouvements de l'objet, typiquement les mouvements des membres d'une personne, sont obtenus au moyen des capteurs de 3054061 6 mouvement relatifs et du module 24 décrit ci-après grâce auxquels on peut disposer d'une localisation, en position et en orientation, dans un repère relatif à l'élément central. Dans l'exemple représenté sur la figure 2, les capteurs de mouvement relatifs sont au nombre de quatre, avec un capteur de mouvement relatif C1, C2 sur chaque 5 main de la personne et un capteur de mouvement relatif C3, C4 sur chaque pied de la personne. Le capteur optique CO est quant à lui placé sur la tête de la personne. Ce nombre de quatre capteurs de mouvement relatifs est donné à titre d'exemple uniquement, l'invention s'étendant à un nombre quelconque de capteurs de mouvements relatifs. Le capteur optique CO fournit une séquence d'images DO, tandis que les 10 capteurs de mouvement relatif fournissent des informations de mouvement Di dans un repère relatif au capteur optique, i.e. un repère courant correspondant à la position courante du capteur optique dans l'environnement. Ces données DO, Di sont fournies à une unité de traitement informatique 20. Cette unité 20 reçoit les mesures réalisées par les capteurs fixés sur l'objet, et est 15 configurée, au moyen de différents modules décrits ci-après, pour mettre en oeuvre des étapes à chaque pas de temps de calcul de la configuration à donner à la structure polyarticulée pour reproduire les mouvements de l'objet. L'unité de traitement 20 est notamment dotée d'un module 21 de détermination d'une commande à appliquer à la structure articulée pour qu'elle reproduise 20 le mouvement de l'objet. Cette commande vient plus précisément localiser la structure articulée dans un repère de référence 9î.a., par exemple un repère attaché au sol, en lui faisant adopter une posture reproduisant celle de l'objet. Le module 21 de détermination de la commande à appliquer à la structure articulée exploite pour ce faire la localisation absolue de chacun des capteurs fixés sur l'objet dans le repère de référence. 25 On adopte les notations suivantes : {Rsa, Na} désigne l'ensemble des orientations et positions des segments s de la structure articulée, exprimées dans le repère de référence 9î.a. Cet ensemble constitue les sorties du module 21 de détermination de la commande à appliquer à la structure articulée, à savoir la localisation et la posture complète de la 30 structure articulée dans le repère de référence 9î.a. 3054061 7 {R, e} désigne l'ensemble des orientations et positions des capteurs relatifs Ci (i=1...n) à des instants t, exprimées dans le repère de référence 9îa. Ces orientations et positions sont fournies au module 21 de détermination de la commande à appliquer à la structure articulée. 5 {Rg,pg} désigne l'ensemble des orientations et positions du repère courant 9î0 correspondant à la position courante, à des instants t de l'élément central dans l'environnement, exprimées dans le repère de référence 9îa. Ces orientations et positions, représentatives de la localisation de l'objet, sont fournies au module 21 de détermination de la commande à appliquer à la structure articulée. 10 Le module 21 de détermination de la commande à appliquer à la structure articulée prend en compte les localisations dans le repère de référence des capteurs CO, C1-Cn. Il est en outre capable, dans le cadre d'une simulation physique d'une structure articulée, de prendre en compte l'effet de la gravité, de détecter les collisions entre les géométries des segments de la structure articulée et la géométrie de 15 l'environnement et de résoudre les contacts en générant des efforts s'opposant aux pénétrations entre les segments de la structure articulée et l'environnement. A cet égard, les collisions entre les géométries des segments de la structure articulée et la géométrie de l'environnement sont détectées à chaque pas de temps pour une configuration de la structure donnée. Cette détection peut être basée sur 20 la détection de pénétration des géométries comme sur la détection de proximité selon un seuil donné. Les informations de collisions obtenues sont le point et la normale de chaque contact. Les informations de collision sont utilisées pour générer des efforts conduisant à empêcher les pénétrations entre les géométries des segments et celle de l'environnement. Une modélisation du frottement (par exemple par une loi de Coulomb) permet, de plus, de 25 simuler l'adhérence du segment sur l'environnement et contraindre le glissement. Les efforts résultants sont appelés efforts de contact. La géométrie de l'environnement peut être obtenue soit par une connaissance a priori de l'environnement, par exemple on fait l'hypothèse que le sol est plan, ou soit grâce à la cartographie de l'environnement fournie par le SLAM. 3054061 8 Le module 21 de détermination de la commande à appliquer à la structure articulée peut ainsi exploiter un moteur de simulation physique temps-réel, tel que le moteur XDE (pour « eXtended Dynamic Engine ») de la Demanderesse, qui permet de réaliser des simulations dans un environnement virtuel en venant affecter des 5 contraintes physiques à une structure articulée, détecter les collisions et gérer les contacts. Dans un mode de réalisation possible, l'élément central et les capteurs de mouvement relatifs C1-Cn comportent chacun des moyens de mesure des distances relatives entre ces derniers, par exemple un module Ultra Large Bande. Dans ce mode de réalisation, le module 21 de détermination de la commande à appliquer à la structure 10 articulée peut mettre en oeuvre un algorithme d'estimation (exploitant par exemple un filtre de Kalman). L'usage d'une méthode analytique, par exemple du type MDS (« Multi Dimentional Scaling »), permet de retrouver la posture initiale en fusionnant les mesures de distance fournies par l'élément central et les capteurs de mouvement relatifs C1-Cn et la connaissance a priori d'une posture de référence servant de posture d'initialisation. Une 15 fois initialisé, l'algorithme d'estimation fusionne les données de distance fournies par l'élément central et les capteurs de mouvement relatifs afin de déterminer la position des articulations en fonction du temps. Idéalement, l'usage de contraintes biomécaniques (connaissance a priori du modèle du corps humain, nombre de segments et leurs tailles qui peuvent être mesurées au cours de la phase d'initialisation) permet de rendre l'estimation 20 de la position des articulations plus robuste. La commande déterminée par le module 21 peut être utilisée afin de réaliser une analyse du mouvement. En effet, à partir de la connaissance du type de mouvement, des informations spécifiques peuvent être extraites pour des besoins applicatifs particuliers. Cette commande peut également être utilisée pour réaliser une 25 reconstruction complète du mouvement en vue de l'afficher sur un écran 30, par exemple celui d'un ordinateur ou d'un casque de réalité virtuelle. Le mouvement peut être modifié ou amplifié pour obtenir des effets désirés. Afin de permettre la fourniture, au module 21 de détermination de la commande à appliquer à la structure articulée, des localisations dans le repère de référence 30 des capteurs fixés sur l'objet CO, C1-Cn, l'unité de traitement 20 comprend un module de 3054061 9 traitement d'images 22 et un module de détermination de localisation relative 24 des capteurs de mouvements relatifs. Le module de traitement d'images 22 est configuré pour déterminer, en temps réel, une localisation absolue du capteur optique CO dans le repère de référence 5 9î.,, à partir d'une séquence d'images DO acquises par le capteur optique. Ce module fournit ainsi l'ensemble {Rg,pg} aux instants tt. Il peut notamment mettre en oeuvre un algorithme de type SLAM visuel (pour « Simultaneous Localization And Mapping » désignant la cartographie et localisation simultanées) ou SfM. Un tel algorithme permet de reconstruire de manière itérative une carte de primitives 3D (généralement des points) et 10 de localiser le capteur optique CO dans cette carte à partir du flux vidéo DO. Le repère de référence est alors fixé soit sur la première position du capteur soit sur la carte reconstruite. On a représenté sur la figure 3 le calcul de l'orientation et la position de l'élément central par rapport au repère de référence, avec Ki et Ki l'orientation et la position du repère courant 9î.c, par rapport au repère de référence 9î.a. à différents instants 15 successifs tt, tr et tr2. Le module de détermination de localisation relative 24 des capteurs de mouvement relatifs est quant à lui configuré pour déterminer, en temps réel, la localisation relative de chacun des capteurs de mouvements relatifs C1-Cn, à partir des mesures réalisées par les capteurs fixés sur l'objet. Ce module fournit ainsi l'ensemble {R?,p?} qui 20 désigne les orientations et positions des capteurs relatifs i (i=1...n) aux instants tck, exprimées dans le repère courant 9î.o. On a représenté sur la figure 4 l'acquisition des données de mouvement des membres dans le repère courant 9î.c, fixé sur l'élément central, avec R? et p° l'orientation et la position de chaque capteur de mouvement relatif i par rapport au repère 25 courant 9î.c, à différents instants successifs t ck tck+1 et tck+2. Dans un mode de réalisation possible, l'élément central doté du capteur optique peut être associé à des moyens permettant de compléter les mesures issues des capteurs fixés sur l'objet. C'est le cas notamment lorsque que ces mesures sont insuffisantes pour fournir une information de position des capteurs de mouvement relatifs 30 par rapport au capteur optique, par exemple parce qu'elles ne permettent que de 3054061 10 déterminer une distance relative. C'est le cas par exemple lorsque les capteurs de mouvement relatifs comprennent chacun un émetteur UWB (« Ultra Wide Band ») pour permettre le calcul d'une distance relative par rapport à un récepteur. Dans un tel cas de figure, l'élément central est doté non pas d'un récepteur UWB mais de trois récepteurs 5 UWB positionnés dans une configuration prédéterminée permettant chacun de récupérer la distance relative de chaque émetteur UWB. Le module de détermination de localisation relative 24 peut alors mettre en oeuvre une triangulation pour déterminer la position exacte de chaque capteur de mouvement par rapport au capteur optique. L'unité de traitement comporte en outre un module de détermination de 10 localisation absolue 23 de chacun des capteurs de mouvement relatifs dans le repère de référence. Ce module 23 exploite la localisation absolue du capteur optique {n,pg} et la localisation relative de chacun des capteurs de mouvement relatifs {RP,pP} par rapport au capteur optique pour effectuer un changement de repère et replacer chacune des positions et orientations des capteurs de mouvement relatifs calculées dans le repère courant à 15 chaque instant t dans le repère de référence. Ce module fournit ainsi les localisations absolues {eii, , }. Dans le cas où les deux entrées du module 23 n'arrivent pas de manière synchronisées (tck # tok ), une étape supplémentaire de synchronisation est effectuée par le module 23 pour obtenir des données synchronisées en sortie. Par exemple, si les sorties du module 24 (capteurs relatifs) arrivent à une fréquence F, et si les sorties du module 22 20 (capteur optique) arrivent à une fréquence F0 REVENDICATIONS1. Système de reproduction du mouvement d'un objet par une structure articulée comprenant une pluralité de segments, comprenant : des capteurs (CO, C1-C4) fixés, en utilisation, sur l'objet, une unité de traitement (20) de mesures réalisées par les capteurs (CO, C1-C4) fixés sur l'objet, comprenant un module (21) de détermination d'une commande à appliquer à la structure articulée de sorte à la localiser dans un repère de référence (9î.a) en lui faisant adopter une posture reproduisant celle de l'objet, ledit module fournissant en sortie la localisation absolue ({Rsa,p,a}) de chacun des segments de la structure dans le repère de référence, ledit module exploitant la localisation absolue ({n,pg},{e,i,,e}) de chacun des capteurs fixés sur l'objet dans le repère de référence, caractérisé en ce que les capteurs fixés, en utilisation, sur l'objet comprennent un capteur optique (CO) et des capteurs de mouvement relatifs (C1-C4) et en ce que l'unité de traitement (20) comporte en outre : un module de traitement d'images (22) configuré pour déterminer une localisation absolue ({n,pg}) du capteur optique (CO) dans le repère de référence à partir d'une séquence d'images (DO) acquises par le capteur optique, un module (24) de détermination de localisation relative ({K, je de chacun des capteurs de mouvement relatifs (C1-C4) par rapport au capteur optique, à partir de mesures réalisées par les capteurs fixés sur l'objet, un module (23) de détermination de localisation absolue ({Ki , el) de chacun des capteurs de mouvement relatifs (C1-C4) dans le repère de référence, à partir de la localisation absolue du capteur optique et de la localisation relative de chacun des capteurs de mouvement relatifs. 2. Système selon la revendication 1 dans lequel le capteur optique comprend un capteur stéréoscopique. 3054061 15 3. Système selon la revendication 1, dans lequel le capteur optique comprend un capteur RGB-D. 4. Système selon l'une des revendications 1 à 3, dans lequel chaque capteur de 5 mouvement relatif comprend une centrale inertielle et un émetteur Ultra-Large Bande, et dans lequel le capteur optique comprend trois récepteurs Ultra-Large Bande positionnés dans une configuration prédéterminée. 5. Procédé de reproduction du mouvement d'un objet par une structure articulée, 10 comprenant une étape de détermination (DET-CDE), à partir de la localisation absolue pgme, pn), dans un repère de référence, de capteurs fixés sur l'objet, d'une commande à appliquer à la structure articulée de sorte à la localiser dans le repère de référence en lui faisant adopter une posture reproduisant celle de l'objet, caractérisé en ce que, les capteurs fixés sur l'objet comprenant un capteur optique (CO) 15 et des capteurs de mouvement relatifs (C1-C4), il comporte en outre les étapes de : traitement (SLAM) d'une séquence d'images (DO) acquises par le capteur optique pour déterminer une localisation absolue ({n , pg}) du capteur optique (CO) dans le repère de référence, détermination de localisation relative (LOC-R, {RP,e) de chacun des capteurs de 20 mouvements relatifs (C1-Cn) par rapport au capteur optique, à partir de mesures réalisées par les capteurs fixés sur l'objet, détermination de localisation absolue (LOC-A, , el) de chacun des capteurs de mouvement relatifs (C1-C4) dans le repère de référence, à partir de la localisation absolue du capteur optique et de la localisation relative de chacun des capteurs de 25 mouvement relatifs. 6. Procédé selon la revendication 5, dans lequel l'étape de traitement (SLAM) de la séquence d'images acquises par le capteur optique comprend la mise en oeuvre d'un algorithme de cartographie et localisation simultanées. 3054061 16 7. Procédé selon l'une des revendications 5 et 6, dans lequel la structure articulée est un modèle numérique de l'objet et comprenant en outre une étape de représentation (DISP) des mouvements de l'objet dans une simulation numérique au 5 moyen de l'animation de la structure articulée dans la simulation numérique selon la commande déterminée. 8. Produit programme d'ordinateur comportant des instructions de code de programme pour l'exécution du procédé selon l'une des revendications 5 à 7 lorsque 10 ledit programme est exécuté sur un ordinateur.