FR 3153450 A1 20250328 FR 2310224 A 20230926 La présente invention concerne un procédé de comparaison de suites de mouvement effectuées par deux personnes. Des séquences d’images correspondant aux suites de mouvement sont alignées temporellement. Plusieurs types de décalages entre les images sont calculés et utilisés pour établir un score d’exécution de mouvement indiquant un degré de similitude en les deux suites de mouvements effectuées. L’invention concerne également un dispositif permettant de mettre en œuvre le procédé et comprenant notamment des dispositifs de capture d’images permettant d’enregistrer les séquences d’images ainsi qu’un module de calcul informatique permettant d’exécuter certaines étapes du procédé. Procédé de comparaison de mouvement La présente invention concerne un procédé de comparaison de mouvement ainsi qu’un dispositif adapté pour la mise en œuvre de ce procédé. Etat de la technique Bien que les algorithmes d’analyse et de comparaison de mouvements sur la base d’enregistrements vidéos soient désormais largement répandus, notamment dans le monde du jeu vidéo, la plupart ne permet de comparer un mouvement effectué par deux personnes différentes qu’en fonction d’un nombre très restreint de paramètres. En effet, dans de nombreuses disciplines sportives, plusieurs autres facteurs doivent pouvoir être pris en compte afin que la comparaison soit pertinente relativement à la discipline considérée. Dans le domaine de la danse par exemple, des facteurs tels que le retard ou l’avance du danseur par rapport au tempo de la musique peuvent se révéler tout aussi importants que la position des membres. Afin que la comparaison puisse être utilisée pour l’amélioration de la technique du danseur, par exemple dans le cas où l’une des deux personnes est un professeur et l’autre est un élève, un maximum de ces facteurs doivent pouvoir être pris en compte lors de la comparaison d’un mouvement de l’élève par rapport au mouvement du professeur. Le document US9358456 décrit notamment une méthode de comparaison de mouvements entre deux joueurs, consistant à afficher des instructions au premier joueur afin qu’il crée et réalise un mouvement de danse, enregistrer le mouvement de danse du premier joueur, générer une représentation sous la forme d’une icône du premier joueur effectuant son mouvement de danse et afficher cette icône au second joueur afin qu’il réalise également ce mouvement de danse, enregistrer le mouvement de danse du second joueur et comparer les deux mouvements de danse. Cette méthode est ainsi limitée à la comparaison des positions d’un membre du premier joueur par rapport à un membre du second joueur. Bref résumé de l’invention Un but de la présente invention est de proposer un procédé de comparaison de mouvement exempt des limitations connues dans l’art antérieur. Un autre but de l’invention est de proposer un procédé de comparaison de mouvement permettant de prendre en compte plusieurs facteurs pertinents pour la comparaison. Un autre but de l’invention est de proposer un procédé de comparaison de mouvement permettant de détailler la comparaison sur des zones particulières du corps. Selon l’invention, ces buts sont atteints notamment au moyen d’un procédé de comparaison de mouvement comprenant les étapes de : récupération d’une séquence modèle d’images, chaque image représentant un individu modèle effectuant une suite modèle de mouvements ; production, au moyen d’un module de calcul informatique tel qu’un ordinateur un téléphone portable/smartphone, ou tout autre dispositif muni d’un calculateur, d’une squelettisation modèle comprenant, pour au moins trois images de la séquence modèle d’images, au moins une position d’articulation modèle d’au moins une articulation de l’individu modèle représentée sur chacune des au moins trois images, un indice modèle correspondant à la position de l’image dans la séquence modèle et un temps modèle associé à l’image ; récupération d’une séquence utilisateur d’images, chaque image représentant un utilisateur effectuant une suite utilisateur de mouvements ; production, au moyen d’un dispositif informatique tel qu’un ordinateur un téléphone portable/smartphone, ou tout autre dispositif muni d’un calculateur, d’une squelettisation utilisateur comprenant, pour au moins trois images de la séquence utilisateur d’images, au moins une position d’articulation utilisateur d’au moins une articulation de l’utilisateur représentée sur chacune des au moins trois images, un indice utilisateur correspondant à la position de l’image dans la séquence utilisateur, et un temps utilisateur associé à l’image ; association à chacune des au moins trois images de la séquence modèle et l’au moins une articulation de l’individu modèle représentée sur l’image, au moins une image de la séquence utilisateur en appliquant un algorithme de déformation (encore appelé recalage) temporelle dynamique basé sur la différence entre une position d’articulation modèle et une position d’articulation utilisateur ; pour chacune des au moins trois images de la séquence modèle et l’au moins une articulation de l’individu modèle représentée sur l’image, sélection d’au moins une image référence de l’au moins une image associée maximisant une différence entre l’indice modèle et l’indice utilisateur ; pour au moins une image de la séquence modèle et pour au moins une articulation de l’individu modèle représentée sur l’image, calcul d’un décalage entre l’image et l’image de référence correspondante; calcul d’un score d’exécution de mouvement de l’utilisateur sur la base d’au moins un décalage, le score correspondant à une similitude entre la suite modèle de mouvement et la suite utilisateur de mouvements. L’étape de production peut comprendre la production d’un fichier modèle de squelettisation comprenant, pour chaque image de la séquence modèle d’images, une position d’articulation modèle pour chaque articulation de l’individu modèle représentée sur l’image, un indice modèle correspondant à la position de l’image dans la séquence modèle et un temps modèle associé à l’image. L’étape de récupération peut comprendre la récupération d’une séquence utilisateur d’images, chaque image représentant un utilisateur effectuant une suite utilisateur de mouvements . L’étape de production peut comprendre la production d’un fichier utilisateur de squelettisation comprenant, pour chaque image de la séquence utilisateur d’images, une position d’articulation utilisateur pour chaque articulation de l’utilisateur représentée sur l’image, un indice utilisateur correspondant à la position de l’image dans la séquence utilisateur, et un temps utilisateur associé à l’image. L’étape d’association peut comprendre l’association à chaque image de la séquence modèle et pour chaque articulation de l’individu modèle représentée sur l’image, un ensemble d’images de la séquence utilisateur en appliquant un algorithme de déformation temporelle dynamique basé sur la différence entre la position d’articulation modèle et la position d’articulation utilisateur. L’étape de sélection peut comprendre, pour chaque image de la séquence modèle et pour chaque articulation de l’individu modèle représentée sur l’image, la sélection d’une image référence de l’ensemble d’images maximisant une différence entre l’indice modèle et l’indice utilisateur. L’étape de calcul peut comprendre, pour chaque image de la séquence modèle et pour chaque articulation de l’individu modèle représentée sur l’image, le calcul d’un décalage entre l’image et l’image de référence correspondante . L’étape de récupération de la séquence modèle d’images peut comprendre : l’enregistrement de la séquence modèle d’images à l’aide d’un premier dispositif de capture d’images ; et/ou dans lequel l’étape de récupération de la séquence utilisateur d’images comprend l’enregistrement de la séquence utilisateur d’images à l’aide d’un second dispositif de capture d’images. Un décalage peut être un décalage temporel déterminé lors d’une étape comprenant : pour les au moins trois images de la séquence modèle et pour l’au moins une articulation de l’individu modèle représentée sur l’image, calcul du décalage temporel sur la base du temps modèle et du temps utilisateur de l’image référence associée à l’image de la séquence modèle, le score d’exécution de mouvement étant calculé sur la base des décalages temporels. Un décalage peut être un décalage spatial déterminé lors d’une étape comprenant : Pour les au moins trois images de la séquence modèle d’images et pour l’au moins une articulation de l’individu modèle représentée sur l’image, calculer le décalage spatial entre la position modèle et la position utilisateur, le score d’exécution de mouvement étant calculé sur la base des décalages spatiaux. Un décalage peut être un décalage de vitesse déterminé lors d’une étape comprenant : pour les au moins trois images de la séquence modèle d’images et pour l’au moins une articulation de l’individu modèle représentée sur l’image, calculer un décalage de vitesse entre une vitesse d’articulation de l’individu modèle et une vitesse d’articulation de l’utilisateur, le score d’exécution de mouvement étant calculé sur la base des décalages de vitesses. Un décalage peut être un décalage d’accélération déterminé lors d’une étape comprenant : pour les au moins trois images de la séquence modèle d’images et pour l’au moins une articulation de l’individu modèle représentée sur l’image, calculer un décalage d’accélération entre une accélération d’articulation de l’individu modèle et une accélération d’articulation de l’utilisateur, le score d’exécution de mouvement étant calculé sur la base des décalages d’accélérations. Les décalages spatiaux , de vitesse et d’accélération peuvent être calculés pour chaque image de la séquence modèle et pour chaque articulation de l’individu modèle. Les décalages spatiaux , de vitesse et d’accélération peuvent être calculés entre les données brutes des squelettisations modèle et utilisateur, mais peuvent également être calculée entre des transformations mathématiques de ces données, telle que des filtres passe-bas, passe-haut ou passe-bande, des moyennes glissantes, ou tout autre filtre. L’étape de calcul du score d’exécution peut comprendre des sous-étapes de : pour au moins une articulation de l’individu modèle, calculer un score d’exécution d’articulation sur la base des décalages temporels, spatiaux, de vitesses et/ou d’accélérations ; calculer le score d’exécution sur la base du score d’exécution d’articulation. Le score d’exécution peut être une moyenne pondérée de scores d’exécution d’articulation d’une pluralité d’articulations de l’individu modèle. Une pondération de la moyenne pondérée peut être effectuée en fonction d’un type de mouvement, d’une difficulté de mouvement et/ou d’un niveau de l’utilisateur. Un décalage peut être un décalage de torsion déterminé lors d’une étape comprenant : pour chaque image de la séquence modèle d’images, déterminer : un angle de torsion modèle d’une portion de corps de l’individu modèle représentée sur l’image ; et un angle de torsion utilisateur d’une portion de corps de l’utilisateur représentée sur l’image ; calculer un décalage de torsion sur la base de l’angle de torsion modèle et de l’angle de torsion utilisateur ; le score d’exécution de mouvement étant calculé en outre sur la base des décalages de torsion. L’angle de torsion modèle peut être formé par une droite passant par des points du fichier modèle squelettisation représentant des hanches de l’individu modèle et une droite de référence correspondant à une droite horizontale d’un référentiel terrestre, et dans lequel l’angle de torsion utilisateur est formé par une droite passant par des points du fichier utilisateur de squelettisation représentant des hanches de l’utilisateur et la droite de référence. L’angle de torsion modèle peut être formé par une droite passant par des points du fichier modèle de squelettisation représentant des hanches de l’individu modèle et une droite passant par des points du fichier de squelettisation représentant des épaules de l’individu modèle, et dans lequel l’angle de torsion utilisateur est formé par une droite passant par des points du fichier utilisateur de squelettisation représentant des hanches de l’utilisateur et une droite passant par des points du fichier utilisateur de squelettisation représentant des épaules de l’utilisateur. L’angle de torsion modèle peut être formé par une droite passant par des points du fichier modèle de squelettisation représentant des épaules de l’individu modèle et une droite passant par les points du fichier modèle de squelettisation représentant le milieu du segment joignant des oreilles et un nez de l’individu modèle, et dans lequel l’angle de torsion utilisateur est formé par une droite passant par des points du fichier utilisateur de squelettisation représentant des épaules de l’utilisateur et une droite passant par les points du fichier utilisateur de squelettisation représentant le milieu du segment joignant des oreilles et un nez de l’utilisateur. L’angle de torsion modèle peut être formé par une droite passant par des points du fichier modèle de squelettisation représentant un pouce et un auriculaire de l’individu modèle et une droite passant par des points du fichier de squelettisation représentant un coude et un poignet de l’individu modèle, et dans lequel l’angle de torsion utilisateur est formé par une droite passant par des points du fichier utilisateur de squelettisation représentant un pouce et un auriculaire de l’utilisateur et une droite passant par des points du fichier utilisateur de squelettisation représentant un coude et un poignet de l’utilisateur. L’angle de torsion modèle peut être formé par une droite passant par des points du fichier modèle de squelettisation représentant un talon et un gros orteil de l’individu modèle et une droite passant par des points du fichier de squelettisation représentant des hanches de l’individu modèle, et dans lequel l’angle de torsion utilisateur est formé par une droite passant par des points du fichier utilisateur de squelettisation représentant un talon et un gros orteil de l’utilisateur et une droite passant par des points du fichier utilisateur de squelettisation représentant des hanches de l’utilisateur. Un décalage peut être un décalage de flexion déterminé lors d’une étape comprenant : pour chaque image de la séquence modèle d’images, déterminer : un angle de flexion modèle d’une portion de corps de l’individu modèle représentée sur l’image ; et un angle de flexion utilisateur d’une portion de corps de l’utilisateur représentée sur l’image ; calculer un décalage de flexion sur la base de l’angle de flexion modèle et de l’angle de flexion utilisateur ; le score d’exécution de mouvement étant calculé en outre sur la base des décalages de flexion. L’angle de flexion modèle peut être obtenu en calculant l’angle formé par une droite passant par des points du fichier modèle de squelettisation représentant des épaules de l’individu modèle et une droite passant par des points du fichier de squelettisation représentant des hanches de l’individu modèle, dans un plan contenant les points correspondant aux hanches de l’individu modèle et au milieu du segment joignant les épaules de l’individu modèle, et dans lequel l’angle de flexion utilisateur est obtenu en calculant l’angle formé par une droite passant par des points du fichier utilisateur de squelettisation représentant des épaules de l’utilisateur et une droite passant par des points du fichier utilisateur de squelettisation représentant des hanches de l’utilisateur, dans un plan contenant les points correspondant aux hanches de l’utilisateur et au milieu du segment joignant les épaules de l’utilisateur. L’angle de flexion modèle peut être obtenu en calculant l’angle formé par une droite passant par des points du fichier modèle de squelettisation représentant des épaules de l’individu modèle et une droite orthogonale au plan contenant des points du fichier modèle de squelettisation correspondant à des oreilles à un nez de l’individu modèle, dans un plan contenant les points correspondant aux épaules de l’individu modèle et au milieu du segment joignant des points correspondant aux oreilles de l’individu modèle, et dans lequel l’angle de flexion utilisateur est obtenu en calculant l’angle formé par une droite passant par des points du fichier utilisateur de squelettisation représentant des épaules de l’utilisateur et une droite orthogonale au plan contenant des points du fichier utilisateur de squelettisation correspondant à des oreilles à un nez de l’utilisateur, dans un plan contenant les points correspondant aux épaules de l’utilisateur et au milieu du segment joignant des points correspondant aux oreilles de l’utilisateur. L’angle de flexion modèle peut être obtenu en calculant l’angle formé par une droite passant par des points du fichier modèle de squelettisation représentant le milieu du segment joignant des épaules de l’individu modèle et le milieu du segment joignant des hanches de l’individu modèle, et une droite orthogonale au plan formé par des points du fichier modèle de squelettisation représentant des oreilles et un nez de l’individu modèle, dans un plan orthogonal à la droite passant des points du fichier modèle de squelettisation représentant les épaules de l’individu modèle, et dans lequel l’angle de flexion utilisateur est obtenu en calculant l’angle formé par une droite passant par des points du fichier utilisateur de squelettisation représentant le milieu du segment joignant des épaules de l’utilisateur et le milieu du segment joignant des hanches de l’utilisateur, et une droite orthogonale au plan formé par des points du fichier utilisateur de squelettisation représentant des oreilles et un nez de l’utilisateur, dans un plan orthogonal à la droite passant des points du fichier utilisateur de squelettisation représentant les épaules de l’utilisateur. Les décalages de torsion peuvent être calculés entre les données brutes des squelettisations modèle et utilisateur, mais peuvent également être calculée entre des transformations mathématiques de ces données, telle que des filtres passe-bas, passe-haut ou passe-bande, des moyennes glissantes, ou tout autre filtre. Ces buts sont également atteints au moyen d’un dispositif de comparaison de mouvement comprenant : un premier dispositif de capture d’images configuré pour capturer une séquence modèle d’images d’un individu modèle effectuant une suite modèle de mouvements ; un second dispositif de capture d’images configuré pour capturer une séquence utilisateur d’images d’un utilisateur effectuant une suite utilisateur de mouvements ; et un module de calcul informatique permettant de mettre en œuvre le procédé décrit ci-dessus. Le premier et le second dispositif peuvent être le même dispositif ou deux dispositif distincts. Brève description des figures Des exemples de mise en œuvre de l’invention sont indiqués dans la description illustrée par les figures annexées dans lesquelles : La FIG. 1 illustre un alignement de séquence d’images à l’aide d’un algorithme de déformation temporelle dynamique. La FIG. 2 illustre la détermination d’un angle de torsion de buste. La FIG. 3 illustre la détermination d’un angle de torsion de tête. La FIG. 4 illustre la détermination d’un angle de torsion de bras. La FIG. 5 illustre la détermination d’un angle de torsion de jambe. La FIG. 6 illustre la détermination d’un angle de flexion de buste. La FIG. 7 illustre la détermination d’un angle de flexion latérale de tête. La FIG. 8 illustre la détermination d’un angle de flexion avant-arrière (hochement) de tête. Exemple(s) de mode de réalisation de l’inventionBrève description des figures Le procédé de la présente invention vise à comparer un mouvement ou une suite de mouvements d’un individu modèle (ou leader), typiquement un professeur ou une personne de référence à un mouvement ou une suite de mouvements d’un utilisateur (ou follower), typiquement un élève ou une personne désireuse d’améliorer la réalisation du mouvement. Le procédé est adapté pour de nombreux sports ou activités basées sur une technique de mouvement dans lesquels la progression d’un pratiquant est basée au moins en partie sur l’acquisition de certains mouvements ou séquences de mouvement. Par exemple, le perfectionnement ou l’apprentissage des mouvements de danse, d’arts martiaux, mais également de certains sports tels que le golf, le skateboard ou le patinage artistique ou la gymnastique, dans lesquels l’importance de la posture ou du rythme est prépondérante et essentiellement basée sur la reproduction (et donc l’adéquation) avec certains mouvements. On notera aussi un intérêt comparable pour l’apprentissage et le perfectionnement des mouvements lors d’activités industrielles de manutention et manipulation pour augmenter la sécurité, le bien-être et l’efficacité des collaborateurs. Dans le contexte de la présente invention, les caractéristiques, attributs, grandeurs, etc., associés à l’individu modèle (respectivement à l’utilisateur) sont désignées par l’expression « modèle » (respectivement « utilisateur »), e.g. un « mouvement modèle » (respectivement un « mouvement utilisateur »), une image modèle (respectivement une « image utilisateur »), une position modèle (respectivement une « position utilisateur »), etc. Certaines occurrences des termes « modèle » et « utilisateur » pourront être omises lorsque le contexte est suffisamment clair afin de simplifier la lecture du présent texte. La première étape du procédé comprend la récupération d’une séquence modèle d’images, chaque image représentant l’individu modèle effectuant une suite modèle de mouvements. Une séquence d’images désigne typiquement un enregistrement vidéo comprenant plusieurs images arrangées chronologiquement. La séquence d’images peut également être issue d’un montage, par exemple afin d’y faire figurer une suite de mouvements particuliers. Selon un mode de réalisation, la récupération d’une séquence modèle d’images implique le chargement ou le téléchargement d’un fichier numérique vidéo. Ce fichier peut être stocké sur un serveur dédié ou sur la mémoire d’un dispositif de l’individu modèle tel qu’un smartphone, une tablette, un ordinateur, etc. Alternativement ou complémentairement, la récupération de la séquence modèle d’images peut également comprendre l’enregistrement à proprement parler de la séquence. Selon un mode de réalisation, l’individu modèle s’enregistre à l’aide d’un dispositif de capture d’images (caméra, smartphone, tablette, etc.) et transmet l’enregistrement à un serveur dédié. Sur la base de cette séquence modèle d’images, un fichier de squelettisation comprenant pour chaque image de la séquence, une position d’articulation modèle pour chaque articulation de l’individu modèle représentée sur l’image, un indice modèle correspondant à la position de l’image dans la séquence modèle et un temps modèle associé à l’image, est produit. De nombreux formats de fichier peuvent être utilisés pour le fichier de squelettisation comme par exemple les formats « Comma Separated Value » .csv, « pickle » .pkl ou .pickle, « parquet » .parquet, « feather » .fea ou .feather, « Avro », texte “.txt”, « ORC » ou être stocké dans une base de données sous un autre format. Le fichier peut être stocké dans une base de données. Le fichier de squelettisation est réalisé par un algorithme de squelettisation permettant d’enregistrer la position en trois dimensions d’articulations de l’individu modèle représentées sur chaque image de la séquence. La squelettisation peut être effectuée à partir d’images représentant les articulations en 2D ou 3D. En plus de la position des articulations, un indice modèle désignant la position de l’image au sein de la séquence est associé à chaque image. Comme détaillé ci-après, la possibilité de pouvoir ordonner les images de la séquence est essentielle à la mise en œuvre du procédé. Finalement, un temps modèle associé à l’image correspondant à l’intervalle de temps écoulé depuis la première image de la séquence modèle est également inclus pour chaque image dans le fichier de squelettisation. Des étapes de récupération d’une séquence d’images et de production d’un fichier de squelettisation sont également réalisées pour l’utilisateur. Plus particulièrement, le procédé comprend une étape incluant la récupération d’une séquence utilisateur d’images, chaque image représentant l’utilisateur effectuant une suite utilisateur de mouvements. La suite utilisateur de mouvements correspondant typiquement à une suite modèle de mouvements à laquelle l’utilisateur souhaite comparer la sienne. Comme dans le cas de l’individu modèle, la récupération de la séquence utilisateur d’images peut inclure le chargement ou téléchargement d’un fichier numérique vidéo. Ce fichier peut être stocké sur un serveur dédié ou sur la mémoire d’un dispositif de l’utilisateur tel qu’un smartphone, une tablette, un ordinateur, etc. Alternativement ou complémentairement, la récupération de la séquence utilisateur d’images peut également comprendre l’enregistrement à proprement parler de la séquence. Selon un mode de réalisation, l’utilisateur s’enregistre à l’aide d’un dispositif de capture d’images (caméra, smartphone, tablette, etc.) et transmet l’enregistrement à un serveur dédié. Un fichier utilisateur de squelettisation de la séquence utilisateur est ensuite produit, le fichier comprenant pour chaque image de la séquence, une position d’articulation utilisateur pour chaque articulation de l’utilisateur représentée sur l’image, un indice utilisateur correspondant à la position de l’image dans la séquence utilisateur et un temps utilisateur associé à l’image, est produit. Les considérations ci-avant concernant le format du fichier modèle de squelettisation et l’algorithme de squelettisation sont applicables également applicables au format du fichier utilisateur de squelettisation et à l’algorithme de squelettisation. Les deux fichiers de squelettisation peuvent ensuite faire l’objet d’une comparaison en commençant par une étape comprenant l’association à chaque image de la séquence modèle et pour chaque articulation de l’individu modèle représentée sur l’image, un ensemble d’images de la séquence utilisateur en appliquant un algorithme de déformation ou recalage temporelle dynamique (« Dynamic Time Warping » ou DTW) basé sur la différence entre la position d’articulation modèle et la position d’articulation utilisateur. Les algorithmes de déformation temporelle dynamique visent à permettre la comparaison de deux séries temporelles malgré de possibles variations de vitesse entre les séries. Selon un mode de réalisation illustré sur la FIG. 1 , cet algorithme passe par la création d’une matrice avec en abscisse les positions d’une articulation modèle, et en ordonnée, les positions de l’articulation utilisateur correspondante. L’intérieur de la matrice est constitué des distances entre chaque point des suites de positions avec tous les points de l’autre échantillon. La distance entre les points est une formule basée sur la distance euclidienne combinée à la distance par rapport à la diagonale. A titre d’illustration non limitative, si nous posons L, la suite des positions de l’épaule de l’individu modèle, image après image jusqu’à une image finale « m » et F , la suite des positions de l’épaule de l’utilisateur, image après image, jusqu’à l’image finale « n » : et si nous posons également la distance euclidienne (e.g. mesurée en mètres) entre l’épaule de l’individu modèle sur l’image j et celle de l’utilisateur à l’image j, nous écrivons alors la distance à inscrire dans la matrice entre l’épaule du leader au frame j et celle du follower au frame j : . Le but étant de trouver un chemin pour aller du point en haut à gauche de la matrice jusqu’en bas à droite en minimisant la somme de toutes les cases par lesquelles nous sommes passées. En indiquant par W le chemin constitué de toutes les cases : , alors, tous les chemins respectant : la monotonicité : toutes les cases du chemin progressent toujours soit vers le bas, soit vers la droite, soit les deux la continuité : les cases doivent se toucher, soit par hauteur, soit par la larguer, soit par le coin. La frontière : il commence en haut à gauche et finit en bas à droite. sont éligibles. L’algorithme original consiste à calculer tous les chemins éligibles et ne prendre que celui qui minimise la somme des cases w, ce chemin donne la concordance entre les points de l’échantillon. Le calcul de tous les chemins peut très vite s’avérer très gourmand en temps et en puissance de calcul. Il convient donc d’optimiser la recherche de la diagonale pour accélérer le travail. Pour cela, il est avantageux d’utiliser le principe de « diviser pour mieux régner » : l’addition du calcul sur des petites structures composant la grande structure demande souvent moins de temps qu’un seul sur une grande structure. Cette optimisation consiste en une division en deux la matrice de poids et d’appliquer le même algorithme de façon récursive sur les deux matrices supérieures gauche et inférieure droite. La première séparation divise la matrice en deux parts égales dans le sens de la largeur. Puis sur la colonne de séparation, il trouve, autour du point central, le minimum. Ce point minimum ne devra pas être écarté de plus de l’"écart permis de décalage", c’est à dire, l’écart temporel que nous estimons maximum entre le mouvement de l’individu modèle et celui de l’utilisateur. Ce point minimum sépare donc la matrice en quatre L’algorithme est alors appliqué sur la matrice en haut à gauche ainsi que sur celle en bas à droite qui seront également divisées en quatre selon le même processus et ainsi de suite jusqu’à arriver à une matrice dont soit la largeur soit la hauteur est inférieure ou égale à 2. Les chemins sont alors trouvés dans cette matrice. En la parcourant dans son sens le plus long, nous calculons le poids de chaque chemin qui respecte les règles classiques des chemins du DTW : la monotonicité : toutes les cases du chemin progressent toujours soit vers le bas, soit vers la droite, soit les deux la continuité : les cases doivent se toucher, soit par hauteur, soit par la largeur, soit par le coin. La frontière : il commence en haut à gauche et finit en bas à droite Le chemin de poids minimal est retenu pour cette matrice et sera concaténé aux chemins des autres matrices. Des variantes et/ou optimisations de cet algorithme de déformation temporelle dynamique peuvent être considérée par la personne du métier sans sortir du cadre de la présente invention. Cette étape permet donc d’associer à chaque image de la séquence modèle, un ensemble (pouvant ne contenir qu’une image dans certains cas) d’images de la séquence utilisateur qui minimise la différence (c’est-à-dire l’erreur) de position de l’articulation utilisateur par rapport à la position de l’articulation modèle. L’association peut être réalisée en utilisant les indices modèles et utilisateurs associés à chaque image des séquences modèles et utilisateurs. En effet, il est ainsi possible d’attribuer facilement à un indice modèle un ou plusieurs indices utilisateurs afin d’associer les images correspondantes. Cette étape est illustrée sur le graphique de gauche de la FIG. 1 dans lequel : certaines images modèles sont associées à une seule image utilisateur ; certaines images modèles sont associées à plusieurs images utilisateur ; certaines images utilisateur sont associées à plusieurs images modèle. plus précisément en retard sur les images correspondant aux indices modèles 4 et 5, puis en avance sur les images correspondant aux indices modèles 7 à 10). Le procédé comprend ensuite une étape incluant l’association à chaque image de la séquence modèle et pour chaque articulation de l’individu modèle, d’une unique image référence utilisateur parmi les images de l’ensemble déterminé lors de l’étape précédente. Cette association est réalisée en maximisant une différence entre l’indice modèle et l’indice utilisateur. Cela signifie, que parmi toutes les images de la séquence utilisateur de l’ensemble associé à une image de la séquence modèle, une image référence est sélectionnée sur la base d’une comparaison des indices utilisateurs des images de l’ensemble avec l’indice modèle de l’image de la séquence modèle. L’image référence est sélectionnée en ne gardant que l’image de l’ensemble dont la différence de l’indice utilisateur avec l’indice modèle est la plus grande. En d’autres termes l’image référence sélectionnée correspond à l’image de l’ensemble sur laquelle l’utilisateur est le plus en avance ou le plus en retard par rapport à l’individu modèle, au moins en ce qui concerne l’articulation en question. Si pour une image de la séquence modèle, l’utilisateur a commencé en avance et finit en retard, si le retard était plus grand que l’avance, c’est l’image correspondant au retard qui est sélectionnée, si c’est l’inverse, c’est l’image correspondant à l’avance qui sera gardée. Une nouvelle liste coordonnée est donc créée en ne gardant que la maximisation des écarts entre les images de la séquence modèle et les images de la séquence utilisateur. Cette association d’une et une seule image utilisateur à chaque image modèle permet ensuite de calculer des décalages qui serviront de base à la comparaison entre les deux suites de mouvements. Plusieurs types de décalages peuvent être ainsi déterminés afin de comparer les deux séquences d’images en fonctions de plusieurs paramètres. Comme détaillé ci-après, le décalage peut être, pour chaque articulation, temporel, spatial, de vitesse, d’accélération, de torsion, de flexion, etc. Les articulations peuvent également être regroupées en membres ou portions de corps (e.g. bras, jambes, buste et tête, hanches et épaules, etc.) de sorte que des décalages peuvent être calculés par membre ou portion de corps. Finalement, le procédé comprend le calcul d’un score d’exécution de mouvement en tenant compte des décalages déterminés précédemment. Ce score correspond à une similitude entre la suite modèle de mouvement et la suite utilisateur de mouvements. De nombreux types de scores peuvent être calculés en fonction des données à dispositions ainsi qu’en fonction des intérêts ou d’instructions données par l’individu modèle, l’utilisateur ou encore un programme automatique d’apprentissage, etc. De plus, comme les décalages sont déterminés image par image ainsi qu’articulation par articulation, le score d’exécution peut également porter sur une sous-séquence particulière d’images, sur une articulation particulière, sur un groupement d’articulations (e.g. un membre, tout le squelette, etc.), sur une agrégation ou une moyenne de plusieurs scores intermédiaires avec possiblement des pondérations introduites en fonction de facteurs prédéterminés. Selon un mode de réalisation, une ou plusieurs étapes du procédé sont adaptées pour être réalisées consécutivement via une API ou une application mobile. Typiquement, l’application peut récupérer la séquence modèle en proposant à l’individu modèle de charger un enregistrement vidéo sur un serveur dédié ou directement de réaliser un enregistrement vidéo via une caméra intégrée sur un dispositif (smartphone, tablette, ordinateur muni d’une webcam, etc), puis exécuter un programme permettant la création du fichier de squelettisation correspondant. L’application stocke ensuite l’enregistrement vidéo et le fichier de squelettisation sur le serveur. Un utilisateur de l’application peut ensuite sélectionner l’enregistrement mis à disposition par l’application et se voir proposer de s’enregistrer durant la réalisation de sa séquence utilisateur de mouvement. L’application exécute ensuite un programme de comparaison des séquences modèle et utilisateur tel que décrit ci-dessus de manière à générer un score d’exécution et à l’afficher à l’utilisateur sur son dispositif (smartphone, tablette, ordinateur, etc.) afin que l’utilisateur puisse constater le niveau de similarité de sa séquence de mouvement avec celle de l’individu modèle. Des conseils d’améliorations basés sur le score d’exécution peuvent par exemple être également proposés par l’application ainsi que des suggestions d’autres enregistrements (e.g. des cours plus ou moins avancés, des enregistrements correspondants à des centres d’intérêt de l’utilisateur, etc.). Comme évoqué plus haut, plusieurs types de décalages sont possibles par image modèle et par articulation. Selon un mode de réalisation, un décalage temporel est déterminé pour chaque articulation entre les images de la séquence modèle et leurs images de référence associées. Ce décalage temporel est calculé grâce au temps modèle et au temps utilisateur associés à chaque image des deux séquences dans leur fichier de squelettisation respectifs. Un décalage temporel, par exemple en millisecondes, peut ainsi être calculé en effectuant la différence des deux temps modèle et utilisateur. Le décalage temporel peut donc correspondre au retard ou à l’avance de la position d’une articulation de l’utilisateur représentée sur l’image référence par rapport à l’articulation de l’individu modèle représentée sur l’image. Dans le cas où les mouvements doivent être effectués en rythme par rapport à une musique par exemple, la connaissance du tempo de la musique peut permettre a la mesure du décalage d’être exprimé en pourcentage de bpm (bit par minute). Une moyenne (pour avoir la tendance globale entre retard et avance) et une moyenne en valeur absolue (donc un retard et une avance ne s’annulent pas) par image de la séquence modèle peuvent être calculées pour chaque articulation. L’intérêt des deux types de moyennes est que la moyenne globale peut indiquer une valeur proche du zéro : l’utilisateur est globalement dans les temps, alors qu’il peut avoir de gros retards à certains moments et de grosses avances à d’autres. Cette disparité peut ainsi être indiquée par une moyenne en valeur absolue. Une grande différence entre la moyenne et la moyenne absolue indique donc cette disparité. A contrario, l’utilisateur pourrait présenter un retard systématique, la moyenne et la moyenne en valeur absolue seraient dont relativement proches. Par articulation, une moyenne et une moyenne en valeur absolue peuvent également être calculées sur toutes les images de la séquence modèle. Le score d’exécution peut ainsi être calculé en moyennant en valeur absolue tous les décalages temporels sur toutes les images de la séquence modèle et sur toutes les articulations, optionnellement en prenant en compte une éventuelle pondération par image et/ou par articulation. Dans les cas où le score d’exécution est uniquement déterminé sur la base de décalages temporels, le score d’exécution peut par exemple être exprimé en millisecondes (ou en secondes). Le score d’exécution peut également être donné en pourcentage. La valeur du score d’exécution, par exemple en millisecondes, peut alors être rapportée, en fonction des données disponibles : à une valeur connue du tempo d’une musique sur laquelle la séquence de mouvement doit être réalisée. Cette valeur peut, par exemple être récupérée sur un site de partage de musique, calculée à la volée par un algorithme ou indiquée par l’individu modèle, à la durée globale de la séquence d’images modèle, à l’écart maximum autorisé lors de la détermination d’un chemin au cours de l’algorithme de déformation temporelle dynamique comme expliqué ci-dessus. Des exemples concrets de décalages temporels et de scores d’exécution calculés sur la base de ces décalages sont donnés ci-dessous. Par image de la séquence modèle et par articulation, le décalage temporel peut être : positif pour une avance, négatif pour un retard en millisecondes ; positif pour une avance, négatif pour un retard en pourcentage ; Par image de la séquence modèle et pour tout le squelette, le décalage temporel peut être : moyen donnant la tendance entre avance et retard pondérée selon l’importance de l’articulation en millisecondes ; en moyenne absolue pour que les retard et avance ne s’annulent pas, cette moyenne suit également la pondération fixée par la chorégraphie donnée en millisecondes ; moyen donnant la tendance entre avance et retard pondérée selon l’importance de l’articulation en pourcentage ; en moyenne absolue pour que les retard et avance ne s’annulent pas, cette moyenne suit également la pondération fixée par la chorégraphie donnée en pourcentage. Pour toute la séquence modèle et par articulation, le décalage temporel peut être : positif pour une avance, négatif pour un retard en millisecondes ; positif pour une avance, négatif pour un retard en pourcentage ; Pour toute la séquence modèle et pour tout le squelette, le décalage temporel peut être : moyen donnant la tendance entre avance et retard pondérée selon l’importance de l’articulation en millisecondes ; en moyenne absolue pour que les retards et avances ne s’annulent pas, cette moyenne peut suivre éventuellement une pondération fixée par une chorégraphie. Pour chaque couple image modèle – image référence il est donc possible de calculer un décalage temporel. Cependant il est également avantageux de calculer un écart de position. En effet, il se pourrait que l’utilisateur soit en retard, avec un geste conforme à celui de l’individu modèle, mais il est également possible que l’utilisateur soit dans les temps avec un geste non conforme. Ainsi, selon un mode de réalisation, un décalage spatial est calculé pour chaque image de la séquence modèle d’images et pour chaque articulation de l’individu modèle représentée sur l’image. Ce décalage spatial correspond à la distance entre la position modèle et la position utilisateur d’une articulation. Le score d’exécution de mouvement peut ainsi être calculé sur la base de ces décalages spatiaux. Pour chaque image de la séquence modèle et pour chaque articulation, un décalage spatial correspondant à une erreur en positionnement est calculée. Il s’agit d’une distance euclidienne en mètre ainsi que d’un vecteur directeur indiquant la direction de l’erreur. Pour chaque image de la séquence modèle une moyenne est calculée sur toutes les articulations, optionnellement en tenant compte d’une pondération par articulation, par type de décalage, etc. Les distances euclidiennes étant non signées, il n’y a pas besoin de calcul de moyenne en valeur absolue. Pour la séquence d’images modèle en entier, une moyenne peut être donnée pour chaque articulation. Une moyenne globale peut être également être donnée en fonction d’une pondération par type de décalage. Une version de toutes ces distances peut également être calculée en pourcentages. Dans ce cas, les distances peuvent être ramenées : sur un mètre ; à la distance de l’articulation par rapport au centre de la hanche (c’est-à-dire par rapport à un point du fichier de squelettisation correspondant à une hanche) ; à la distance maximale entre, pour chaque articulation, le point le plus proche des hanches et celui le plus éloigné. Par exemple, pour la main, le point le plus proche présente une distance proche de 0, le plus éloigné des hanches présente à peu près 1m20 (lorsque le bras est tendu vers le haut, la distance maximale de référence est alors 1m20. Pour la tête, la distance minimale avoisine les 50 cm (le dos courbé pour ramener la tête vers le ventre) à 80 cm, la tête étirée vers le haut, l’écart de distance maximal est donc de 0.3m. Des exemples concrets de décalages spatiaux et de scores d’exécution calculés sur la base de ces décalages sont donnés ci-dessous. Par image de la séquence modèle et par articulation, le décalage spatial peut comprendre : la distance euclidienne en mètre ; la distance en pourcentage ; le vecteur directeur de l’erreur ; Par image de la séquence modèle et pour le squelette en entier, le décalage spatial peut comprendre : une moyenne pondérée sur toutes les articulations des distances en mètres ; une moyenne pondérée sur toutes les articulations des distances en pourcentage ; la somme de tous les vecteurs directeurs et sa version normalisée ; Pour toute la séquence d’images modèle et par articulation, le décalage spatial peut comprendre : une moyenne des distances euclidiennes en mètre ; une moyenne des distances en pourcentage sur toutes les images ; une somme de tous les vecteurs directeurs et sa version normalisée ; Pour toute la séquence d’images modèle et pour tout le squelette le décalage spatial peut comprendre : une moyenne pondérée sur toutes les articulations et toutes les images de la séquence modèle des distances en mètres ; une moyenne pondérée sur toutes les articulations et toutes les images de la séquence modèle des distances en pourcentage ; une somme de tous les vecteurs directeurs et sa version normalisée. Selon un mode de réalisation, un décalage de vitesse est calculé pour chaque image de la séquence modèle d’images et pour chaque articulation de l’individu modèle représentée sur l’image. Le score d’exécution de mouvement peut ainsi être calculé sur la base de ces décalages de vitesses. Deux versions de différences de vitesses peuvent être calculées : la distance euclidienne pour une même articulation entre deux images de la séquence modèle divisée par le temps entre les deux images correspondantes. un vecteur vitesse, composé de la différence vectorielle entre la position de l’articulation de l’individu modèle et celle de l’utilisateur divisée par la différence de temps entre les images successives. Ce calcul permet également d’avoir la direction de la vitesse. Pour la vitesse basée sur la différence de distance euclidienne, par image et par articulation, une différence signée peut être calculée en m/s, c’est la différence de vitesse proprement dite, sans prise en compte de son orientation. Pour la vitesse basée sur la différence vectorielle de vitesse, le vecteur directeur peut être calculé, ainsi que la magnitude de la différence vectorielle, en m/s, donc la différence de vitesse orientée. Par image de la séquence modèle, une somme des vecteurs directeurs, une moyenne de la magnitude du vecteur de différence de vitesse pondérée ainsi que la moyenne et une moyenne en valeur absolue de la différence des vitesses absolues pondérée peuvent être calculées. La somme des vecteurs directeurs permettra de savoir si tout le corps se déplace de façon erronée dans le même sens, la moyenne de la magnitude permet d’avoir l’erreur de vitesse incluant l’erreur d’orientation de celle-ci, la moyenne de la vitesse absolue indique si, globalement, la vitesse est plus rapide ou plus lente, la moyenne en valeur absolue de la vitesse absolue permet de voir si la répartition est homogène. Pour la vidéo et par articulation la moyenne sur toutes les images de la séquence modèle est proposée pour la vitesse euclidienne, la magnitude du vecteur de différences de vitesse ainsi que la somme du vecteur unitaire de l’erreur de vitesse. Ces différences pourront également être exprimées en pourcentage, ramenées à la vitesse maximale par articulation de la séquence modèle. Des exemples concrets de décalages de vitesse et de scores d’exécution calculés sur la base de ces décalages sont donnés ci-dessous. Par image de la séquence modèle et par articulation, le décalage de vitesse peut comprendre : une différence de vitesse euclidienne en m/s ; une différence de vitesse euclidienne en pourcentage ; une magnitude du vecteur de différence vitesse en m/s ; une magnitude du vecteur de différence de vitesse en pourcentage ; un vecteur directeur du décalage (c’est-à-dire de l’erreur) ; Par image de la séquence modèle et pour le squelette en entier, le décalage de vitesse peut comprendre : une moyenne pondérée sur toutes les articulations des différences de vitesses euclidiennes en m/s ; une moyenne pondérée sur toutes les articulations des différences de vitesses euclidiennes en pourcentage ; une moyenne pondérée sur toutes les articulations de la magnitude du vecteur de différence de vitesse en m/s ; une moyenne pondérée sur toutes les articulations de la magnitude du vecteur de différence de vitesse en pourcentage ; la somme de tous les vecteurs directeurs et sa version normalisée ; Pour toute la séquence d’images modèle et par articulation, le décalage de vitesse peut comprendre : une moyenne sur toutes les images des différences de vitesses euclidiennes en m/s ; une moyenne sur toutes les images des différences de vitesses euclidiennes en pourcentage ; une moyenne sur toutes les images de la magnitude du vecteur de différence de vitesses en m/s ; une moyenne sur toutes les images de la magnitude du vecteur de différence de vitesses en pourcentage ; la somme de tous les vecteurs directeurs et sa version normalisée ; Pour toute la séquence d’images modèle et pour tout le squelette le décalage de vitesse peut comprendre : une moyenne pondérée sur toutes les articulations et toutes les images des vitesses euclidiennes en m/s ; une moyenne pondérée sur toutes les articulations et toutes les images des différences de vitesses euclidiennes en pourcentage ; une moyenne pondérée sur toutes les articulations et toutes les images de la magnitude du vecteur de différence de vitesses en m/s ; une moyenne pondérée sur toutes les articulations et toutes les images de la magnitude du vecteur de différence de vitesses en pourcentage ; la somme de tous les vecteurs directeurs et sa version normalisée. Selon un mode de réalisation, un décalage d’accélération est calculé pour chaque image de la séquence modèle d’images et pour chaque articulation de l’individu modèle représentée sur l’image. Le score d’exécution de mouvement peut ainsi être calculé sur la base de ces décalages d’accélération. Deux versions de différences des accélérations sont calculées : la vitesse euclidienne pour une même articulation entre deux images de la séquence d’images modèle divisée par le temps entre les deux images correspondantes. le vecteur accélération, composé de la différence vectorielle entre la vitesse vectorielle de l’articulation de l’individu modèle et celle de l’utilisateur divisée par la différence de temps entre les images successives. Ce calcul permet également d’avoir la direction de l’accélération. Pour l’accélération euclidienne basée sur la différence de vitesse euclidienne, par image et par articulation, une différence signée peut être calculée en m/s2, c’est la différence d’accélération proprement dite, sans prise en compte de son orientation. Pour la vitesse basée sur la différence vectorielle d’accélération, le vecteur directeur peut être calculé, ainsi que la magnitude de la différence vectorielle, en m/s2 donc la différence d’accélération orientée. Par image, une somme des vecteurs directeurs, une moyenne de la magnitude du vecteur de différence d’accélération pondérée ainsi que la moyenne et une moyenne en valeur absolue de la différence des accélérations absolues pondérée peuvent être calculées et prises en compte pour calculer le décalage d’accélération. La somme des vecteurs directeurs permettra de savoir si tout le corps accélère de façon erronée dans le même sens, la moyenne de la magnitude permet d’avoir l’erreur d’accélération incluant l’erreur d’orientation de celle-ci, la moyenne de l’accélération absolue indique si, globalement, celle-ci est plus grande ou plus petite, la moyenne en valeur absolue de l’accélération absolue permet de voir si la répartition est homogène. Pour toute la séquence d’images modèle et par articulation la moyenne sur toutes les images est proposée pour l’accélération euclidienne, la magnitude du vecteur de différences d’accélération ainsi que la somme du vecteur unitaire de l’erreur d’accélération. Ces différences pourront être exprimées en pourcentage, ramenées à l’accélération maximale par articulation de la séquence modèle. Des exemples concrets de décalages d’accélération et de scores d’exécution calculés sur la base de ces décalages sont donnés ci-dessous. Par image de la séquence modèle et par articulation, le décalage d’accélération peut comprendre : une différence d’accélération euclidienne en m/s² ; une différence d’accélération euclidienne en pourcentage ; une magnitude du vecteur de différence d’accélération en m/s² ; une magnitude du vecteur de différence d’accélération en pourcentage ; un vecteur directeur de l’erreur ; Par image de la séquence modèle et pour le squelette en entier, le décalage d’accélération peut comprendre : une moyenne pondérée sur toutes les articulations des accélérations euclidiennes en m/s² ; une moyenne pondérée sur toutes les articulations des différences des accélérations euclidiennes en pourcentage ; une moyenne pondérée sur toutes les articulations de la magnitude du vecteur de différence d’accélération en m/s² : une moyenne pondérée sur toutes les articulations de la magnitude du vecteur de différence d’accélération en pourcentage ; une somme de tous les vecteurs directeurs et sa version normalisée. Pour toute la séquence d’images modèle et par articulation, le décalage d’accélération peut comprendre : une moyenne sur toutes les images des différences d’accélérations euclidiennes en m/s² ; une moyenne sur toutes les images des différences d’accélération euclidiennes en pourcentage ; une moyenne sur toutes les images de la magnitude du vecteur de différence d’accélération en m/s² ; une moyenne sur toutes les images de la magnitude du vecteur de différence d’accélération en pourcentage ; la somme de tous les vecteurs directeurs et sa version normalisée. Pour toute la séquence d’images modèle et pour tout le squelette le décalage d’accélération peut comprendre : une moyenne pondérée sur toutes les articulations et toutes les images des différences d’accélérations ; une moyenne pondérée sur toutes les articulations et toutes les images des différences d’accélérations euclidiennes en pourcentage ; une moyenne pondérée sur toutes les articulations et toutes les images de la magnitude du vecteur de différence d’accélérations en m/s² ; une moyenne pondérée sur toutes les articulations et toutes les images de la magnitude du vecteur de différence d’accélérations en pourcentage ; la somme de tous les vecteurs directeurs et sa version normalisée. En plus des décalages temporels, spatiaux, de vitesse et d’accélération, des décalages de posture (torsion, flexion, etc.) peuvent également être calculés et pris en compte dans le score d’exécution de mouvement. Un décalage de torsion est déterminé sur la base de différences d’angles entre une position de l’individu modèle et une position de l’utilisateur. Ainsi, un décalage de torsion peut être calculé pour chaque image de la séquence d’images modèle en déterminant un angle de torsion modèle d’une portion de corps de l’individu modèle représentée sur l’image et un angle de torsion utilisateur d’une portion de corps de l’utilisateur représentée sur l’image et correspondant à la portion de corps de l’individu modèle. Le calcul du décalage de torsion est ensuite basé sur la différence entre l’angle de torsion modèle et de l’angle de torsion utilisateur. Le score d’exécution du mouvement peut ensuite inclure un décalage de torsion. Selon un mode de réalisation, l’angle de torsion correspond à une orientation générale du corps. L’angle de torsion modèle (resp. utilisateur) est un angle d’orientation de l’individu modèle (resp. de l’utilisateur) par rapport à une droite horizontale fixée, par exemple un axe d’un référentiel terrestre. Les angles de torsion modèle et utilisateur sont comparés donner une différence angulaire en degré [°] ou en radian [rad]. Ils sont également proposés en pourcentage ramené sur 360° : soit sur 360° soit à l’amplitude maximale de l’orientation générale de l’individu modèle durant la séquence d’images modèle. La vitesse angulaire de l’orientation (autrement dit la vitesse de rotation lors d’un tour) de l’individu modèle et de l’utilisateur sont calculées en faisant la différence des angles de torsion divisée par la différence de temps entre les deux images correspondantes. La différence de vitesse angulaire est donnée en degrés par seconde [°/s] ou radians par seconde [rad/s]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à la vitesse de torsion maximale de l’individu modèle au cours de la séquence modèle. L’accélération angulaire d’orientation de l’individu modèle et de l’utilisateur est calculée en faisant la différence des vitesses angulaires d’orientation divisée par la différence de temps entre les deux images. La différence d’accélération angulaire est donnée en degrés par seconde au carré [°/s²] ou radians par seconde au carré [rand/s²]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à l’accélération de tour maximale de l’individu modèle au cours de la séquence modèle. Selon un mode de réalisation illustré sur la FIG. 2 , l’angle de torsion correspond à une torsion du buste de l’individu modèle et de l’utilisateur. L’angle de torsion modèle (resp. utilisateur) est typiquement l’angle entre la projection sur un plan horizontal (c’est-à-dire sur le sol) d’une droite d1 passant par des points du fichier modèle (resp. utilisateur) de squelettisation représentant des hanches de l’individu modèle (resp. de l’utilisateur) et la projection sur un plan horizontal d’une droite d2 passant par des points du fichier modèle (resp. utilisateur) de squelettisation représentant des épaules de l’individu modèle (resp. de l’utilisateur). Les angles de torsion modèle et utilisateur sont comparés pour donner une différence angulaire en degré [°] ou en radian [rad]. Ils peuvent également être calculés en pourcentage ramenés : soit à l’angle maximum de torsion du buste ; soit à l’angle maximum de torsion de l’individu modèle durant la séquence modèle. La vitesse angulaire de l’individu modèle et de l’utilisateur est déterminée en calculant la différence des angles de torsion modèle et utilisateur divisée par la différence de temps entre les deux images correspondantes. La différence de vitesse angulaire est donnée en degrés par seconde [°/s] ou radians par seconde [rand/s]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à la vitesse de torsion maximale de l’individu modèle durant la séquence modèle. L’accélération angulaire de torsion de l’individu modèle et de l’utilisateur est calculée en faisant la différence des vitesses angulaires de torsion divisée par la différence de temps entre les deux images. La différence d’accélération angulaire est donnée en degrés par seconde au carré [°/s²] ou radians par seconde au carré [rad/s²]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à l’accélération de torsion maximale de l’individu modèle durant la séquence modèle. Selon un mode de réalisation, l’angle de torsion correspond à une torsion de la tête de l’individu modèle et de l’utilisateur. La torsion de la tête est typiquement mesurée par rapport aux épaules. Comme illustré sur la FIG. 3 , l’angle de torsion modèle (resp. utilisateur) est l’angle entre : une droite d3 passant par les points du fichier modèle (resp. utilisateur) de squelettisation représentant le milieu du segment joignant les deux oreilles et le nez de l’individu modèle (resp. de l’utilisateur), et une droite d4 passant par des points du fichier modèle (resp. utilisateur) de squelettisation représentant des épaules de l’individu modèle (resp. de l’utilisateur) ; ces deux droites étant projetées dans un plan orthogonal à une droite d5 passant par le milieu du segment joignant les épaules et le milieu du segment joignant les oreilles. Les angles de torsion de l’individu modèle et de l’utilisateur sont comparés pour donner une différence angulaire en degrés [°] ou en radians [rad]. Ils sont également proposés en pourcentage ramenés : soit à l’angle maximum de torsion de tête ; soit à l’angle maximum de torsion de tête de l’individu modèle durant la séquence modèle. La vitesse angulaire de l’individu modèle et de l’utilisateur est calculée en faisant la différence des angles de torsion divisée par la différence de temps entre les deux images correspondantes. La différence de vitesse angulaire est donnée en degrés par seconde [°/s] ou radians par seconde [rad/s]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à la vitesse de torsion maximale de l’individu modèle durant la séquence modèle. L’accélération angulaire de torsion de l’individu modèle et de l’utilisateur est calculée en faisant la différence des vitesses angulaires de torsion divisée par la différence de temps entre les deux images correspondantes. La différence d’accélération angulaire est donnée en degrés par seconde au carré [°/s²] ou radians par seconde au carré [rad/s²]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à l’accélération de torsion maximale de l’individu modèle durant la séquence modèle. Selon un mode de réalisation, l’angle de torsion correspond à une torsion de bras de l’individu modèle et de l’utilisateur. La torsion de bras est typiquement mesurée par à une droite invariante lorsque le bras entre en torsion. Comme illustré sur la FIG. 4 , l’angle de torsion modèle (resp. utilisateur) est l’angle entre : une droite d6 passant par des points du fichier modèle (resp. utilisateur) de squelettisation représentant un pouce et un auriculaire de l’individu modèle (resp. de l’utilisateur) ; et une droite d7 passant par des points du fichier modèle (resp. utilisateur) de squelettisation représentant une hanche et un poignet de l’individu modèle (resp. de l’utilisateur). Les angles de torsion (de bras) de l’individu modèle et de l’utilisateur sont comparés pour donner une différence angulaire en degrés [°] ou en radians [rad]. Ils sont également proposés en pourcentage ramenés : soit à l’angle maximum de torsion de bras soit à l’angle maximum de torsion de bras de l’individu modèle durant la séquence modèle. La vitesse angulaire de l’individu modèle et de l’utilisateur est calculée en faisant la différence des angles de torsion divisée par la différence de temps entre les deux images correspondantes. La différence de vitesse angulaire est donnée en degrés par seconde [°/s] ou radians par seconde [rand/s]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à la vitesse de torsion maximale de l’individu modèle durant la séquence modèle. L’accélération angulaire de torsion de l’individu modèle et de l’utilisateur est calculée en faisant la différence des vitesses angulaires de torsion divisée par la différence de temps entre les deux images correspondantes. La différence d’accélération angulaire est donnée en degrés par seconde au carré [°/s²] ou radians par seconde au carré [rad/s²]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à l’accélération de torsion maximale de l’individu modèle durant la séquence modèle. Selon un mode de réalisation, l’angle de torsion correspond à une torsion de jambe de l’individu modèle et de l’utilisateur. La torsion de jambe est typiquement mesurée par à une droite invariante lorsque la jambe entre en torsion. Comme illustré sur la FIG. 5 , l’angle de torsion modèle (resp. utilisateur) est l’angle entre : une droite d8 passant par des points du fichier modèle (resp. utilisateur) de squelettisation représentant un talon et un gros orteil de l’individu modèle (resp. de l’utilisateur) ; et une droite d9 passant par des points du fichier modèle (resp. utilisateur) de squelettisation représentant les deux hanches de l’individu modèle (resp. de l’utilisateur), ces deux droites étant projetées dans un plan horizontal (c’est-à-dire parallèle au sol ou perpendiculaire à l’axe vertical dans un référentiel terrestre standard). Les angles de torsion (de jambe) de l’individu modèle et de l’utilisateur sont comparés pour donner une différence angulaire en degrés [°] ou en radians [rad]. Ils sont également proposés en pourcentage ramenés : soit à l’angle maximum de torsion de jambe soit à l’angle maximum de torsion de jambe de l’individu modèle durant la séquence modèle. La vitesse angulaire de l’individu modèle et de l’utilisateur est calculée en faisant la différence des angles de torsion divisée par la différence de temps entre les deux images correspondantes. La différence de vitesse angulaire est donnée en degrés par seconde [°/s] ou radians par seconde [rad/s]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à la vitesse de torsion maximale de l’individu modèle durant la séquence modèle. L’accélération angulaire de torsion de l’individu modèle et de l’utilisateur est calculée en faisant la différence des vitesses angulaires de torsion divisée par la différence de temps entre les deux images correspondantes. La différence d’accélération angulaire est donnée en degrés par seconde au carré [°/s²] ou radians par seconde au carré [rad/s²]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à l’accélération de torsion maximale de l’individu modèle durant la séquence modèle. En plus des décalages de torsion, des décalages de flexion entre une partie du corps de l’individu modèle et la partie du corps correspondante de l’utilisateur peuvent être calculés et pris en compte dans le score d’exécution de mouvement. Ainsi, un décalage de flexion peut être calculé pour chaque image de la séquence d’images modèle en déterminant un angle de flexion modèle d’une portion de corps de l’individu modèle représentée sur l’image et un angle de flexion utilisateur d’une portion de corps de l’utilisateur représentée sur l’image et correspondant à la portion de corps de l’individu modèle. Le calcul du décalage de flexion est ensuite basé la différence entre l’angle de flexion modèle et de l’angle de flexion utilisateur. Selon un mode de réalisation illustré sur la FIG. 6 , l’angle de flexion modèle (resp. utilisateur) correspondant à un angle de flexion de buste. L’angle de flexion modèle (resp. utilisateur) est l’angle entre : une droite d10 passant par des points du fichier modèle (resp. utilisateur) de squelettisation représentant des épaules de l’individu modèle (resp. de l’utilisateur) ; et une droite d11 passant par des points du fichier de squelettisation modèle (resp. utilisateur) représentant des hanches de l’individu modèle (resp. de l’utilisateur), ces droites étant projetées dans le plan p1 contenant les points correspondant aux deux hanches et au milieu du segment joignant les épaules de l’individu modèle (resp. de l’utilisateur). Les angles de flexion (du buste) de l’individu modèle et de l’utilisateur sont comparés pour donner une différence angulaire en degré [°] ou en radian [rad]. Ils sont également proposés en pourcentage ramenés : soit à l’angle maximum de torsion du buste soit à l’angle maximum de torsion de l’individu modèle durant la séquence d’images modèle. La vitesse angulaire de l’individu modèle et de l’utilisateur est calculée en faisant la différence des angles de flexion divisée par la différence de temps entre les deux images correspondantes. La différence de vitesse angulaire est donnée en degrés par seconde [°/s] ou radians par seconde [rad/s]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à la vitesse maximale de l’individu modèle durant la séquence d’images modèle. L’accélération angulaire de flexion de l’individu modèle et de l’utilisateur est calculée en faisant la différence des vitesses angulaires de flexion divisée par la différence de temps entre les deux images correspondantes. La différence d’accélération angulaire est donnée en degrés par seconde au carré [°/s²] ou radians par seconde au carré [rad/s²]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à l’accélération de flexion maximale de l’individu modèle durant la séquence d’images modèle. En ce qui concerne la tête, deux types de décalage de flexion peuvent également être calculés. Le premier correspondant à une flexion latérale de la tête, et le second correspondant à des hochements de tête, c’est-à-dire une flexion avant-arrière de la tête. Selon un mode de réalisation illustré sur la FIG. 7 , l’angle de flexion modèle (resp. utilisateur) correspond à un angle de flexion latérale de la tête. L’angle de flexion modèle (resp. utilisateur) est l’angle entre : une droite d12 passant par des points du fichier modèle (resp. utilisateur) de squelettisation représentant les épaules de l’individu modèle (resp. de l’utilisateur) ; et une droite d13 orthogonale au plan contenant les points du fichier de squelettisation modèle (resp. utilisateur) représentant les oreilles et le nez de l’individu modèle (resp. de l’utilisateur), ces droites étant projetées dans le plan p2 contenant les points correspondant aux deux épaules et au milieu du segment joignant les oreilles de l’individu modèle (resp. de l’utilisateur). Les angles de flexion de la tête de l’individu modèle et de l’utilisateur sont comparés pour donner une différence angulaire en degrés [°] ou en radians [rad]. Ils sont également proposés en pourcentage ramenés : soit à l’angle maximum de flexion de la tête ; soit à l’angle maximum de flexion de l’individu modèle durant la séquence d’images modèle. La vitesse angulaire de l’individu modèle et de l’utilisateur est calculée en faisant la différence des angles de flexion de tête divisée par la différence de temps entre les deux images correspondantes. La différence de vitesse angulaire est donnée en degrés par seconde [°/s] ou radians par seconde [rad/s]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à la vitesse maximale de l’individu modèle durant la séquence d’images modèle. L’accélération angulaire de flexion de tête de l’individu modèle et de l’utilisateur est calculée en faisant la différence des vitesses angulaires de flexion de tête divisée par la différence de temps entre les deux images correspondantes. La différence d’accélération angulaire est donnée en degrés par seconde au carré [°/s²] ou radians par seconde au carré [rad/s²]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à l’accélération de flexion de tête maximale de l’individu modèle durant la séquence d’images modèle. Selon un mode de réalisation illustré sur la FIG. 8 , l’angle de flexion modèle (resp. utilisateur) correspond à un angle de flexion avant-arrière de la tête, c’est-à-dire un angle de hochement de tête. L’angle de flexion modèle (resp. utilisateur) est alors l’angle entre : une droite d14 passant par des points du fichier modèle (resp. utilisateur) de squelettisation représentant le milieu du segment joignant les épaules de l’individu modèle (resp. de l’utilisateur) et le milieu du segment joignant les hanches de l’individu modèle (resp. de l’utilisateur) ; et une droite d15 orthogonale au plan contenant les points du fichier modèle (resp. utilisateur) de squelettisation représentant les oreilles et le nez de l’individu modèle (resp. de l’utilisateur), Ces droites étant projetées dans le plan orthogonal à la droite passant par les épaules de l’individu modèle (resp. de l’utilisateur) et contenant le point milieu du segment joignant les épaules de l’individu modèle (resp. de l’utilisateur. Les angles de flexion de la tête de l’individu modèle et de l’utilisateur sont comparés pour donner une différence angulaire en degrés [°] ou en radians [rad]. Ils sont également proposés en pourcentage ramenés : soit à l’angle maximum de flexion de la tête (de hochement) ; soit à l’angle maximum de flexion (de hochement) de l’individu modèle durant la séquence d’images modèle. La vitesse angulaire de l’individu modèle et de l’utilisateur est calculée en faisant la différence des angles de flexion de tête divisée par la différence de temps entre les deux images correspondantes. La différence de vitesse angulaire est donnée en degrés par seconde [°/s] ou radians par seconde [rad/s]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à la vitesse maximale de l’individu modèle durant la séquence d’images modèle. L’accélération angulaire de flexion de tête de l’individu modèle et de l’utilisateur est calculée en faisant la différence des vitesses angulaires de flexion de tête divisée par la différence de temps entre les deux images correspondantes. La différence d’accélération angulaire est donnée en degrés par seconde au carré [°/s²] ou radians par seconde au carré [rad/s²]. Ils peuvent également être donnés en pourcentage, dans ce cas, ils sont ramenés à l’accélération de flexion de tête maximale de l’individu modèle durant la séquence d’images modèle. Le score d’exécution peut tenir compte d’un ou plusieurs décalages de types différents, par image, par séquence d’images modèle totale, par articulation, par groupe d’articulations ou encore par squelette. Ainsi, les exemples cités ci-dessus peuvent être pris indépendamment ou en combinaison lors de la création du score d’exécution. Le calcul du score d’exécution peut ainsi par exemple inclure des calculs intermédiaires de scores d’exécution d’articulation. Chaque score d’exécution d’articulation dépend d’au moins un type de décalage (temporel, spatial, de vitesse, d’accélération, de torsion, de flexion, etc.). Les scores d’exécution d’articulation peuvent ensuite être agrégés de manière à constituer le score d’exécution de mouvement. En particulier, des pondérations peuvent être introduites en fonction de paramètres particuliers. Ces paramètres peuvent être par exemple définis en amont par l’individu modèle, par l’utilisateur, dans le cadre d’un programme d’apprentissage d’une suite de mouvement ou d’une discipline, etc. Ces paramètres permettent notamment d’accentuer ou de diminuer l’importance de certains décalages ou de certaines articulations ou portions de corps. Selon un mode de réalisation, le score d’exécution est pondéré entre les articulations. Les poids de la pondération dépendent de paramètres tels que par exemple le type de mouvement/sport/arts, la difficulté du mouvement et/ou des choix pédagogiques de l’individu modèle. Une pondération par type de mouvement peut être déterminée pour les genres connus de mouvement par un panel de spécialistes indiquant quelles sont les articulations les plus importantes pour leurs disciplines. Par exemple, les spécialistes de danse indienne pourraient indiquer que les positions des doigts ont une grande pondération, qui serait pratiquement nulle pour de la course à pied, ou même un autre style de danse comme le hip-hop. A contrario, ces derniers types de mouvements auraient une pondération plus importante sur les jambes. Il y aurait donc un poids par articulation, appliqué lorsque l’individu modèle choisit le type de mouvement manuellement ou lorsqu’un logiciel (comme une IA) détecte le type de mouvement. Lorsque le genre n’est pas connu ou pas renseigné, les poids sont tous égaux par défaut. Au sein d’un même type de mouvement, il peut y avoir des mouvements pour débutant, avancé ou expert. Ou les mêmes mouvements avec une attente débutante, avancée ou experte. Dans ce cas, par type de mouvement, le panel d’expert désignera une répartition des pondérations selon les articulations. Par exemple, en danse latine, les débutants se concentrent au début sur leurs pas et le positionnement de leurs pieds, les avancés ajoutent les bras, les experts, les mouvements de cage thoracique. La pondération de toutes ces articulations évoluera de la même manière. Lorsqu’un individu modèle souhaite proposer une séquence de mouvement se concentrant sur un point particulier ou technique de sa discipline, il peut attribuer une pondération particulière aux membres qu’il propose de travailler. Par exemple, un professeur de danse traditionnelle chinoise peut souhaiter faire trois vidéos : la première se concentrant sur les pieds et les jambes, la deuxième sur les bras, la troisième mixant les deux précédentes. Dans ce cas l’individu modèle fixera une pondération supérieure sur les jambes et presque nulle sur les bas pour la première vidéo, une pondération inverse pour la deuxième vidéo et une pondération plus proche de son genre de mouvement pour la troisième. Un individu modèle peut également choisir de faire toutes ses vidéos sur sa spécialité technique, il choisira alors une pondération de base pour toutes ses vidéos. Alternativement ou complémentairement, la pondération peut aussi dépendre du type de décalage. A titre d’exemple, sur une chorégraphie de claquette, la pondération du temps serait plus importante, sur des disciplines d’art martial, la position serait la plus importante. Pour des genres connus de mouvement, un panel de spécialistes peut indiquer quelles sont les composantes temporelles les plus importantes dans leur discipline. Pour des genres non connus, une pondération générique sera proposée. Selon un mode de réalisation, une pondération est adaptée en fonction de la difficulté de mouvement. Ainsi, pour un utilisateur débutant, le score d’exécution peut donner plus d’importance au décalage de position et minimiser l’importance des autres décalages. Pour un utilisateur avancé, les décalages de vitesse (la répartition de la vitesse) peuvent constituer une part importante du score d’exécution, alors que pour un utilisateur expert, les décalages d’accélération seront prépondérants dans le calcul du score d’exécution. Selon un mode de réalisation, une pondération est adaptée en fonction d’un type de séquence ou de l’individu modèle. Une séquence d’images expliquant le principe d’un tour en danse classique aurait tout intérêt d’augmenter l’importance des décalages d’orientation, de la vitesse d’orientation, voire de l’accélération du tour pour les experts. De même, un individu modèle ne présentant que des séquences d’images sur un point technique spécifique pourrait souhaiter qu’une pondération particulière pertinente pour le point technique en question soit appliquée sur toutes ses séquences. Comme mentionné plus haut, le calcul du score d’exécution peut être effectué à partir de scores d’exécution intermédiaires (par exemple de scores d’exécution d’articulation). Afin que ces scores puissent être agrégés, il est avantageux de les exprimer en pourcentage d’erreur afin de pouvoir mélanger les différentes erreurs selon leurs unités de mesure. Les moyennes d’erreur (en temps, position, vitesse, accélération) pondérées sur les articulations se font selon la méthode explicitée ci-avant pour les membres et pour le squelette. Les combinaisons d’erreurs entre la vitesse et l’accélération le temps et la position les torsions et orientations temps, position, vitesse, accélération, torsion et orientation peuvent être effectuées selon l’une des pondérations décrites plus haut. Un score d’exécution peut ainsi être donné en pourcentage, il est équivalent à 100 % s’il n’y a aucune erreur et égal à où pi est la pondération associée à l’erreur ei. A titre d’exemples concrets, les scores d’exécution suivants peuvent être calculés (par image de la séquence modèle ou pour la séquence modèle entière, par articulation, par membre et pour le squelette entier). Par image de la séquence d’images modèle : Par articulation : Score de décalage temporel, score de position, score de vitesses, score d’accélération, score de torsion/flexion pour les membres concernés, score de vitesse torsion/flexion pour les membres concernés, score d’accélération torsion/flexion pour les membres concernés, score combiné vitesse accélération, score combiné temps/ position/ torsion, score combiné global Par membre : Score de décalage temporel sur toutes les articulations du membre pondérées, score de position sur toutes les articulations du membre pondérées, score de vitesses sur toutes les articulations du membre pondérées, score d’accélération sur toutes les articulations du membre pondérées, score de torsion/flexion pour les membres concernés sur toutes les articulations du membre pondérées, score de vitesse torsion/flexion pour les membres concernés sur toutes les articulations du membre pondérées, score d’accélération torsion/flexion pour les membres concernés sur toutes les articulations du membre pondérées, score combiné vitesse accélération sur toutes les articulations du membre pondérées, score combiné temps/position/torsion sur toutes les articulations du membre pondérées, score combiné global sur toutes les articulations du membre pondérées Pour le squelette : Score de décalage temporel sur toutes les articulations pondérées, score de position sur toutes les articulations pondérées, score de vitesses sur toutes les articulations pondérées, score d’accélération sur toutes les articulations pondérées, score d’orientation, score de vitesse de tour, score d’accélération de tour, score de torsion/flexion pour les membres concernés sur toutes les articulations pondérées, score de vitesse torsion/flexion pour les membres concernés sur toutes les articulations pondérées, score d’accélération torsion/flexion pour les membres concernés sur toutes les articulations pondérées, score combiné vitesse accélération sur toutes du membre pondérées, score combiné temps/position/torsion sur toutes les articulations pondérées, score combiné global sur toutes les articulations pondérées. Pour la séquence modèle en entier : Par articulation : Score de décalage temporel, score de position, score de vitesses, score d’accélération, score de torsion/flexion pour les membres concernés, score de vitesse torsion/flexion pour les membres concernés, score d’accélération torsion/flexion pour les membres concernés, score combiné vitesse accélération, score combiné temps/ position/ torsion, score combiné global. Par membre : Score de décalage temporel sur toutes les articulations du membre pondérées, score de position sur toutes les articulations du membre pondérées, score de vitesses sur toutes les articulations du membre pondérées, score d’accélération sur toutes les articulations du membre pondérées, score de torsion/flexion pour les membres concernés sur toutes les articulations du membre pondérées, score de vitesse torsion/flexion pour les membres concernés sur toutes les articulations du membre pondérées, score d’accélération torsion/flexion pour les membres concernés sur toutes les articulations du membre pondérées, score combiné vitesse accélération sur toutes les articulations du membre pondérées, score combiné temps/position/torsion sur toutes les articulations du membre pondérées, score combiné global sur toutes les articulations du membre pondérées. Pour le squelette : Score de décalage temporel sur toutes les articulations pondérées, score de position sur toutes les articulations pondérées, score de vitesses sur toutes les articulations pondérées, score d’accélération sur toutes les articulations pondérées, score d’orientation, score de vitesse de tour, score d’accélération de tour, score de torsion/flexion pour les membres concernés sur toutes les articulations pondérées, score de vitesse torsion/flexion pour les membres concernés sur toutes les articulations pondérées, score d’accélération torsion/flexion pour les membres concernés sur toutes les articulations pondérées, score combiné vitesse accélération sur toutes les articulations du membre pondérées, score combiné temps/position/torsion sur toutes les articulations pondérées, score combiné global sur toutes les articulations pondérées. La présente invention concerne également un dispositif de comparaison de mouvement comprenant un dispositif de capture d’images configuré pour capturer une séquence modèle d’images d’un individu modèle effectuant une suite modèle de mouvements, un dispositif de capture d’images configuré pour capturer une séquence utilisateur d’images d’un utilisateur effectuant une suite utilisateur de mouvements, et un module de calcul informatique permettant de mettre en œuvre le procédé décrit ci-dessus. Comme mentionné plus haut, le premier et le second dispositif de capture d’images peuvent comprendre un smartphone, une tablette, un ordinateur muni d’une webcam, une caméra etc. Procédé de comparaison de mouvement comprenant les étapes de : a) récupération d’une séquence modèle d’images, chaque image représentant un individu modèle effectuant une suite modèle de mouvements ; b) production, au moyen d’un module de calcul informatique d’une squelettisation modèle comprenant, b1) pour au moins trois images de la séquence modèle d’images, au moins une position d’articulation modèle d’au moins une articulation de l’individu modèle représentée sur chacune des au moins trois images, b2) un indice modèle correspondant à la position de l’image dans la séquence modèle et b3) un temps modèle associé à l’image ; c) récupération d’une séquence utilisateur d’images, chaque image représentant un utilisateur effectuant une suite utilisateur de mouvements ; d) production, au moyen d’un dispositif informatique d’une squelettisation utilisateur comprenant, d1) pour au moins trois images de la séquence utilisateur d’images, au moins une position d’articulation utilisateur d’au moins une articulation de l’utilisateur représentée sur chacune des au moins trois images, d2) un indice utilisateur correspondant à la position de l’image dans la séquence utilisateur, d3) et un temps utilisateur associé à l’image ; e) association à chacune des au moins trois images de la séquence modèle et l’au moins une articulation de l’individu modèle représentée sur l’image, au moins une image de la séquence utilisateur en appliquant un algorithme de déformation temporelle dynamique basé sur la différence entre une position d’articulation modèle et une position d’articulation utilisateur ; f) pour chacune des au moins trois images de la séquence modèle et l’au moins une articulation de l’individu modèle représentée sur l’image, sélection d’au moins une image référence de l’au moins une image associée maximisant une différence entre l’indice modèle et l’indice utilisateur ; g) pour au moins une image de la séquence modèle et pour au moins une articulation de l’individu modèle représentée sur l’image, calcul d’un décalage entre l’image et l’image de référence correspondante; h) calcul d’un score d’exécution de mouvement de l’utilisateur sur la base d’au moins un décalage, le score correspondant à une similitude entre la suite modèle de mouvement et la suite utilisateur de mouvements. Procédé selon la revendication 1, dans lequel l’étape de récupération la séquence modèle d’images comprend : l'enregistrement de la séquence modèle d’images à l’aide d’un dispositif de capture d’images ; et/ou dans lequel l’étape de récupération de la séquence utilisateur d’images comprend l’enregistrement de la séquence utilisateur d’images à l’aide d’un dispositif de capture d’images. Procédé selon l’une des revendications 1 à 2, un décalage étant un décalage temporel déterminé lors d’une étape comprenant : pour les au moins trois images de la séquence modèle et pour l’au moins une articulation de l’individu modèle représentée sur l’image, calcul du décalage temporel sur la base du temps modèle et du temps utilisateur de l’image référence associée à l’image de la séquence modèle, le score d’exécution de mouvement étant calculé sur la base des décalages temporels. Procédé selon l’une des revendications 1 à 3, un décalage étant un décalage spatial déterminé lors d’une étape comprenant : pour les au moins trois images de la séquence modèle d’images et pour l’au moins une articulation de l’individu modèle représentée sur l’image, calcul du décalage spatial entre la position modèle et la position utilisateur, le score d’exécution de mouvement étant calculé sur la base des décalages spatiaux. Procédé selon l’une des revendications 1 à 4, un décalage étant un décalage de vitesse déterminé lors d’une étape comprenant : pour les moins trois images de la séquence modèle d’images et pour l’au moins une articulation de l’individu modèle représentée sur l’image, calculer un décalage de vitesse entre une vitesse d’articulation de l’individu modèle et une vitesse d’articulation de l’utilisateur, le score d’exécution de mouvement étant calculé en outre sur la base des décalages de vitesses. Procédé selon l’une des revendications 1 à 5, un décalage étant un décalage d’accélération déterminé lors d’une étape comprenant : pour l’au moins une image de la séquence modèle d’images et pour l’au moins une articulation de l’individu modèle représentée sur l’image, calculer un décalage d’accélération entre une accélération d’articulation de l’individu modèle et une accélération d’articulation de l’utilisateur, le score d’exécution de mouvement étant calculé en outre sur la base des décalages d’accélérations. Procédé selon l’une des revendications 1 à 6, dans lequel l’étape de calcul du score d’exécution comprend des sous-étapes de : pour au moins une articulation de l’individu modèle, calculer un score d’exécution d’articulation sur la base des décalages temporels, spatiaux, de vitesses et/ou d’accélérations ; calculer le score d’exécution sur la base du score d’exécution d’articulation. Procédé selon la revendication 7, dans lequel le score d’exécution est une moyenne pondérée de scores d’exécution d’articulation d’une pluralité d’articulations de l’individu modèle. Procédé selon la revendication 8, dans lequel une pondération de la moyenne pondérée est effectuée en fonction d’un type de mouvement, d’une difficulté de mouvement et/ou d’un niveau de l’utilisateur. Procédé selon l’une des revendications 1 à 9, un décalage étant un décalage de torsion déterminé lors d’une étape comprenant : pour chaque image de la séquence modèle d’images, déterminer : un angle de torsion modèle d’une portion de corps de l’individu modèle représentée sur l’image ; et un angle de torsion utilisateur d’une portion de corps de l’utilisateur représentée sur l’image ; calculer un décalage de torsion sur la base de l’angle de torsion modèle et de l’angle de torsion utilisateur ; le score d’exécution de mouvement étant calculé en outre sur la base des décalages de torsion. Procédé selon la revendication 10, dans lequel l’angle de torsion modèle est formé par une droite passant par des points du fichier modèle squelettisation représentant des hanches de l’individu modèle et une droite de référence correspondant à une droite horizontale d’un référentiel terrestre, et dans lequel l’angle de torsion utilisateur est formé par une droite passant par des points du fichier utilisateur de squelettisation représentant des hanches de l’utilisateur et la droite de référence. Procédé selon la revendication 10, dans lequel l’angle de torsion modèle est formé par une droite (d1) passant par des points du fichier modèle de squelettisation représentant des hanches de l’individu modèle et une droite (d2) passant par des points du fichier de squelettisation représentant des épaules de l’individu modèle, et dans lequel l’angle de torsion utilisateur est formé par une droite passant par des points du fichier utilisateur de squelettisation représentant des hanches de l’utilisateur et une droite passant par des points du fichier utilisateur de squelettisation représentant des épaules de l’utilisateur. Procédé selon la revendication 10, dans lequel l’angle de torsion modèle est formé par une droite (d4) passant par des points du fichier modèle de squelettisation représentant des épaules de l’individu modèle et une droite (d3) passant par les points du fichier modèle de squelettisation représentant le milieu du segment joignant des oreilles et un nez de l’individu modèle, et dans lequel l’angle de torsion utilisateur est formé par une droite passant par des points du fichier utilisateur de squelettisation représentant des épaules de l’utilisateur et une droite passant par les points du fichier utilisateur de squelettisation représentant le milieu du segment joignant des oreilles et un nez de l’utilisateur. Procédé selon la revendication 10, dans lequel l’angle de torsion modèle est formé par une droite (d6) passant par des points du fichier modèle de squelettisation représentant un pouce et un auriculaire de l’individu modèle et une droite (d7) passant par des points du fichier de squelettisation représentant une hanche et un poignet de l’individu modèle, et dans lequel l’angle de torsion utilisateur est formé par une droite passant par des points du fichier utilisateur de squelettisation représentant un pouce et un auriculaire de l’utilisateur et une droite passant par des points du fichier utilisateur de squelettisation représentant une hanche et un poignet de l’utilisateur. Procédé selon la revendication 10, dans lequel l’angle de torsion modèle est formé par une droite (d8) passant par des points du fichier modèle de squelettisation représentant un talon et un gros orteil de l’individu modèle et une droite (d9) passant par des points du fichier de squelettisation représentant des hanches de l’individu modèle, et dans lequel l’angle de torsion utilisateur est formé par une droite passant par des points du fichier utilisateur de squelettisation représentant un talon et un gros orteil de l’utilisateur et une droite passant par des points du fichier utilisateur de squelettisation représentant des hanches de l’utilisateur. Procédé selon l’une des revendications 1 à 15, un décalage étant un décalage de flexion déterminé lors d’une étape comprenant : pour chaque image de la séquence modèle d’images, déterminer : un angle de flexion modèle d’une portion de corps de l’individu modèle représentée sur l’image ; et un angle de flexion utilisateur d’une portion de corps de l’utilisateur représentée sur l’image ; calculer un décalage de flexion sur la base de l’angle de flexion modèle et de l’angle de flexion utilisateur ; Le score d’exécution de mouvement étant calculé en outre sur la base des décalages de flexion. Procédé selon la revendication 16, dans lequel l’angle de flexion modèle est obtenu en calculant l’angle formé par une droite (d10) passant par des points du fichier modèle de squelettisation représentant des épaules de l’individu modèle et une droite (d11) passant par des points du fichier de squelettisation représentant des hanches de l’individu modèle, dans un plan (p1) contenant les points correspondant aux hanches de l’individu modèle et au milieu du segment joignant les épaules de l’individu modèle, et dans lequel l’angle de flexion utilisateur est obtenu en calculant l’angle formé par une droite passant par des points du fichier utilisateur de squelettisation représentant des épaules de l’utilisateur et une droite passant par des points du fichier utilisateur de squelettisation représentant des hanches de l’utilisateur, dans un plan contenant les points correspondant aux hanches de l’utilisateur et au milieu du segment joignant les épaules de l’utilisateur. Procédé selon la revendication 16, dans lequel l’angle de flexion modèle est obtenu en calculant l’angle formé par une droite (d12) passant par des points du fichier modèle de squelettisation représentant des épaules de l’individu modèle et une droite (d13) orthogonale au plan contenant des points du fichier modèle de squelettisation correspondant à des oreilles à un nez de l’individu modèle, dans un plan (p2) contenant les points correspondant aux épaules de l’individu modèle et au milieu du segment joignant des points correspondant aux oreilles de l’individu modèle, et dans lequel l’angle de flexion utilisateur est obtenu en calculant l’angle formé par une droite passant par des points du fichier utilisateur de squelettisation représentant des épaules de l’utilisateur et une droite orthogonale au plan contenant des points du fichier utilisateur de squelettisation correspondant à des oreilles à un nez de l’utilisateur, dans un plan contenant les points correspondant aux épaules de l’utilisateur et au milieu du segment joignant des points correspondant aux oreilles de l’utilisateur. Procédé selon la revendication 16, dans lequel l’angle de flexion modèle est obtenu en calculant l’angle formé par une droite (d14) passant par des points du fichier modèle de squelettisation représentant le milieu du segment joignant des épaules de l’individu modèle et le milieu du segment joignant des hanches de l’individu modèle, et une droite (d15) orthogonale au plan formé par des points du fichier modèle de squelettisation représentant des oreilles et un nez de l’individu modèle, dans un plan orthogonal à la droite passant des points du fichier modèle de squelettisation représentant les épaules de l’individu modèle, et dans lequel l’angle de flexion utilisateur est obtenu en calculant l’angle formé par une droite passant par des points du fichier utilisateur de squelettisation représentant le milieu du segment joignant des épaules de l’utilisateur et le milieu du segment joignant des hanches de l’utilisateur, et une droite orthogonale au plan formé par des points du fichier utilisateur de squelettisation représentant des oreilles et un nez de l’utilisateur, dans un plan orthogonal à la droite passant des points du fichier utilisateur de squelettisation représentant les épaules de l’utilisateur. Dispositif de comparaison de mouvement comprenant : un dispositif de capture d’images configuré pour capturer une séquence modèle d’images d’un individu modèle effectuant une suite modèle de mouvements ; un dispositif de capture d’images configuré pour capturer une séquence utilisateur d’images d’un utilisateur effectuant une suite utilisateur de mouvements : un module de calcul informatique permettant de mettre en œuvre le procédé selon les revendications 1 à 19.