Le est une technique utilisée dans le domaine des effets visuels et liée à la capture de mouvement. Ce terme est employé pour faire référence aux différentes techniques permettant d'extraire les informations de mouvement depuis une séquence vidéo, et plus particulièrement les mouvements de caméra. Il est également connu sous le nom de .

Dans cet article, fait référence au fait d'extraire l'information de mouvement depuis une unique séquence vidéo. L'utilisation de caméras supplémentaires, de capteurs de mouvement, d'une caméra de type motion control, ou d'un autre dispositif sont possibles en tant que supplément, mais non nécessaires.

La technique de match moving est principalement utilisée pour tracker le mouvement d'une caméra pendant une prise, de sorte que ce mouvement puisse être reproduit à l'identique sur une caméra virtuelle dans un programme informatique. Ainsi, lorsque les scènes réelles et virtuelles seront fusionnées (opération appelée compositing), elles donneront l'impression d'avoir été filmées du même point de vue.

Deux types de techniques Il y a deux types de techniques de :

Les programmes de tel que Adobe After Effects, Autodesk Combustion et Shake, peuvent appliquer une technique de bidimensionnel. Cette fonction est capable d'effectuer des translations d'objets dans l'espace image et d'ajouter des effets tels que du blur afin de masquer les erreurs de trajectoires entre deux objets en mouvements. Cette technique est suffisante pour créer une impression de vraisemblance dans le cas où il n'y a pas de changement important des paramètres de la caméra. Par exemple, un panneau publicitaire placé en arrière-plan d'une séquence vidéo peut être facilement traqué en dimension deux, puis remplacé par une image contenue en mémoire ;

Les outils de match moving tridimensionnel peuvent extrapoler les informations tridimensionnelles à partir de photographies bidimensionnelles. Parmi les logiciels capables d'effectuer un match moving tridimensionnel on peut citer : DaVinci Resolve (logiciel connu pour sa colorimétrie) 3DEqualizer Adobe After Effects (depuis la version CS6), Blender (Depuis la version 2.61), Icarus (freeware, toujours utilisé malgré un arrêt du développement), Cinema 4D (depuis la version R16), Mocha Pro, Maya Live (Module de Maya Unlimited), Meshroom d'Alicevision, (application de photogrammétrie gratuite et open-source) NukeX (The Foundry), PixelFarm PFTrack (réincarnation commerciale d'Icarus), Realviz MatchMover, Ssontech SynthEyes, Sciene.D.Visions 3DEqualizer (qui a gagné une récompense académique pour accomplissement technique), Voodoo (logiciel gratuit), VooCAT (logiciel commercial, réincarnation commerciale de Voodoo).

Ces programmes permettent aux utilisateurs de déduire les mouvements de caméra ainsi que d'autres mouvements relatifs à partir d'un métrage quelconque. Les informations de tracking peuvent alors être transférées sur un logiciel d'infographie et d'animation 3D tel que Blender, 3D Studio Max, Lightwave ou Maya afin d'être utilisées pour animer des caméras virtuelles et des objets en images de synthèse.

Le premier, et l'un des meilleurs exemple où la technique de match moving a été utilisée est le film Jurassic Park. Les réalisateurs ont placé des balles de tennis colorées dans la scène comme marqueurs. Ils ont ensuite utilisé ces marqueurs pour traquer le mouvement de la caméra durant les différentes scènes. Ceci a permis à de nombreux objets virtuels, tels que les dinosaures en images de synthèse, d'être ajoutés à des scènes ayant des mouvements de caméra complexes voire des caméras-épaule. Les balles de tennis ont été par la suite peintes numériquement afin de les exclure du montage final.

Le est un outil reconnu dans le milieu des effets spéciaux.

Fonctionnement Le processus de match moving peut être séparé en deux parties.

La première étape consiste à identifier et à tracker (c'est-à-dire « pister ») des cibles. Une cible est un point spécifique de l'image qu'un algorithme de tracking peut suivre sur plusieurs images. Le choix de ces cibles dépend de l'algorithme de tracking, mais ce sont souvent des endroits particulièrement lumineux ou sombres, des arêtes ou des coins. L'important est que chaque cible représente un point spécifique de la surface d'un objet réel. Lorsqu'elle est suivie, une cible devient une suite de coordonnées bidimensionnelles représentant la position de la cible à travers la séquence d'image. Cette suite est appelée track. Une fois que ces tracks ont été calculées, elles peuvent soit être utilisées immédiatement pour faire du match moving 2D, soit être utilisées pour calculer les informations 3D.

Calibrage

La seconde étape consiste à réaliser un calcul pour obtenir le mouvement en 3D. Le but est de déduire le mouvement de la caméra en résolvant une projection inverse des chemins 2D pour la position de la caméra. Ce processus est appelé calibrage.

Ainsi, quand un point de la surface d'un objet tridimensionnel est photographié, sa position dans l'image 2D peut être calculée par une fonction de type projection 3D. On peut considérer qu'une caméra est une abstraction qui contient tous les paramètres nécessaire à la modélisation d'une caméra dans un univers réel ou virtuel. Ainsi, une caméra est un vecteur qui contient comme éléments : la position de la caméra, son orientation, sa focale, et d'autres paramètres possibles qui définissent comment la caméra focalise la lumière sur la pellicule. La manière dont est construit ce vecteur importe peu tant qu'il existe une fonction de projection P compatible.

La fonction de projection P prend comme entrée un vecteur de caméra (noté ) et un autre vecteur représentant la position d'un point 3D dans l'espace (noté ), et retourne un point 2D qui est le projeté du point 3D sur un plan dit image et situé devant la caméra (noté ) On a alors l'expression suivante :

= P(, )

La fonction de projection transforme un point 3D notamment en supprimant la composante de profondeur. Sans connaitre la profondeur, une projection inverse peut seulement retourner un ensemble de points 3D solutions. Cet ensemble est une droite partant du centre optique de la caméra et passant par le point 2D projeté. On peut exprimer la projection inverse par :

∈ P'(, )

ou

:P(, ) =

Supposons que nous soyons dans le cas où les cibles que nous sommes en train de traquer sont sur la surface d'un objet rigide, par exemple un bâtiment. Comme nous savons que le point réel restera au même endroit dans l'espace (sauf si le bâtiment se déforme) d'une image sur l'autre, on peut contraindre ce point à être constant quand bien même on ne connait pas sa position. Donc :

i = j

où les indices i et j sont des numéros arbitraires d'images de la scène que nous sommes en train d'analyser. Cela nous permet d'affirmer que :

P'(i, i) ∩ P'(j, j) ≠ {}

Du fait que la valeur i a été déterminée pour toutes les images où la cible a été traquée par le programme, on peut résoudre la projection inverse entre deux images tant que P'(i, i) ∩ P'(j, j) est un ensemble restreint. L'ensemble des vecteurs possible qui sont solutions de l'équation aux instants i et j (noté Cij).

Cij = {(i,j):P'(i, i) ∩ P'(j, j) ≠ {})

Il y a donc un ensemble de paires de vecteurs caméra Cij pour lesquels l'intersection de la projection inverse de deux points i et j est non vide, de préférence petit, et est centré autour du point théoriquement stationnaire .

En d'autres termes, imaginez un point noir flottant dans un espace blanc et une caméra. Pour chaque position de l'espace où on place la caméra, il y a un ensemble de paramètres correspondants (orientation, focale, etc) qui vont photographier ce point exactement de la même manière. Comme C a un nombre de membres infinis, un seul point est insuffisant pour déterminer la position actuelle de la caméra.

En augmentant le nombre de points ciblés, on peut restreindre l'ensemble des positions possibles pour la caméra. Par exemple, si on dispose d'un ensemble de points i,0, …, i,n} et j,0, …, j,n} i et j étant toujours des indices d'image et n est un indice représentant chacune des cibles. On peut alors obtenir un ensemble de paires de vecteur-caméra {Ci,j,0, …, Ci,j,n}.

De cette manière, on restreint l'ensemble des paramètres possibles de caméra. L'ensemble des paramètres possibles qui conviennent à la caméra, F, est l'intersection de tous les ensembles :

F = Ci,j,0 ∩ … ∩ Ci,j,n

Plus petit est cet ensemble, plus il est facile d'approcher le vecteur-caméra solution. Cependant en pratique, des erreurs introduites par la phase de suivi imposent une approche statistique pour déterminer la solution, des algorithmes d'optimisation sont souvent utilisés. Malheureusement, il y a tellement de paramètres dans un vecteur-caméra que lorsque chacun de ces paramètres est indépendant des autres, on peut être incapable de restreindre F à une unique possibilité peu importe le nombre de points que l'on essaie de suivre. Plus le nombre de paramètres que l'on peut restreindre lors d'une prise est grand (notamment la focale), plus il est facile de déterminer la solution.

On appelle phase de résolution 3D le traitement consistant à restreindre le nombre de solutions possibles du mouvement de la caméra afin d'atteindre une seule possibilité qui conviennent à la phase de compositing.

Projection du nuage de points Une fois que la position de la caméra a été déterminée pour chaque image, il devient alors possible d'estimer la position de chaque cible dans l'espace réel par projection inverse. L'ensemble de points résultant est souvent nommé nuage de points du fait de son apparence nébuleuse. Comme le nuage de points révèle souvent une partie de la forme de la scène 3D, il peut être utilisé comme référence pour placer des objets en image de synthèse ou, à l'aide d'un programme de reconstruction, créer une version virtuelle de la scène réelle.

Détermination du plan représentant le sol La caméra et le nuage de point nécessitent d'être orientés dans l'espace. Ainsi, une fois le calibrage terminé, il est nécessaire de définir le plan représentant le sol. Normalement, il y a un plan unitaire qui détermine l'échelle, l'orientation et l'origine de l'espace projeté. Certains programmes essaient de le faire automatiquement ; cependant, le plus souvent, c'est l'utilisateur qui définit ce plan. Comme de la modification de ce plan ne résulte qu'une simple transformation sur tous les points, la position d'un tel plan n'est vraiment qu'une question de convention.

Reconstruction La reconstruction est le processus interactif qui consiste à recréer un objet photographié en utilisant les données de tracking. Cette technique est liée à la photogrammétrie. Dans ce cas particulier, il s'agit d'utiliser le logiciel de match moving dans le but de reconstruire la scène depuis une prise adéquate.

Un programme de reconstruction peut créer des objets tridimensionnels représentants les vrais objets de la scène photographiée. En utilisant les données du nuage de points et l'estimation de l'utilisateur, le programme peut créer un objet virtuel et extraire une texture depuis la vidéo qui sera projetée sur l'objet virtuel comme texture surfacique.

En pratique

Rappel : le tracking (ou traçage) est un système logiciel qui permet de suivre un déplacement. Le plus connu est le tracking vidéo (utilisé notamment dans les films ou les jeux vidéo).

Le tracking vidéo

Le tracking vidéo permet de recréer les mouvements d'une caméra réelle sur une caméra virtuelle. Le système sert soit à intégrer une personne réelle tournée sur un fond bleu ou vert dans un décor virtuel, soit à intégrer un personnage virtuel dans un décor réel tourné avec une caméra qui bouge.

Pour arriver à un bon tracking, il faut suivre quelques étapes qui commencent sur le lieu de tournage.

Sur le tournage