file:///media/disk-1/Mes%20Documents/Mes%20tutoriaux/tutobanni%C3%A8re.png

Tracking et Integration 3d (Blender & Voodoo)
Partie I (Première Aproche)

Informations principales:

Auteur original:
Corentin Charron (Mr.Yann)
Contact:
Mail: cc [AROBASE] mr [TIRET] yann [POINT] org
Jabber: mr [POINT] yann [AROBASE] jabber [POINT] fr
GTalk: corentin [POINT] charron [AROBASE] gmail [POINT] com
ICQ: 368 924 016
Blog: http://www.mr-yann.org
Galerie: http://www.mr-yann.org/portfolio ET http://mr-yann.deviantart.com
Site de tutoriaux: http://www.mr-yann.org/tutoriaux
Communautés: www.grafikcreation.com (modérateur)
Date de création: Jeudi 26 juin 2008
Date de dernière révision: Vendredi 27 juin 2008
Logiciels utilisés: Blender, Voodoo et Avidemux (facultatif)
Version du logiciel:
Informations pratiques:

Niveau requis: Les connaissances de base sont nécéssaires, ainsi que la compréhension des principes de base. Les fonctionnalités avancées qui seront utilisées dans ce tutoriel seront décrites et expliquées.

Objectif du tutoriel: Savoir utiliser de manière basique le logiciel de tracking Voodoo et integrer un script généré par Voodoo dans une scène Blender.

Résultat optimal du tutoriel:


Tutoriel Tracking I from MrYann on Vimeo.

Objectif didactique:
Description du tutoriel: Ce tutoriel vise à comprendre les principes de bases en ce qui concerne le tracking vidéo. Il permet d'assimiler l'utilisation de voodoo ainsi que d'aborder le séquenceur de Blender, qui propose d'utiliser Blender dans le domaine de la vidéo. La technique du tracking fait partie de l'étape de post-production appellée Compositing, qui consiste en l'ajout d'effet spéciaux, l'équilibrage des vidéos... Ce tutoriel démontre en un certain sens les utilisations multiples qui peuvent être faites de Blender.

Commentaire: Ce tutoriel est indépendant, mais il est le prélude à un long tutoriel sur Voodoo, exclusivement, ainsi que l'integration d'objet 3d dans Blender de manière plus avancée, qui nous permetra d'integrer des paramètres comme l'ombre de l'objet, son mouvement, les reflets... Bref, ce tutoriel laisse entrevoir une utilisation extrement poussée du tracking, de niveau semi-professionne.

License:

Non que je tienne à l'immense notoriété que ces tutoriaux me confèrent (hum hum), mais j'aime que mon travail soit respecté, donc je partage tout mes tutoriaux selon les conditions suivantes (celles de la licence Creative Common):
Plus de détails sur la license utilisée
Creative Commons License


Plan du tutoriel:
  1. Préliminaire
  2. Premier traitement de la vidéo (Blender)
  3. Tracking (Voodoo)
  4. Integration 3d (Blender)
  5. Traitement final

1)Préliminaire

Qu'est ce que le tracking ?

Le tracking, c'est une methode de traitement vidéo qui vise à déterminer les mouvements opérés par une caméra, à partir d'une vidéo. Le tracking, c'est un "principe" (donc rien de concret) de traitement vidéo, pour lequel il existe plusieurs logiciels spécialisés. A partir d'une vidéo réelle, ils vont déterminer le cheminement d'un point (déterminé par sa couleur, son environnement et pleins d'autres facteurs) image par image. Pour rappel, une vidéo contient généralement 25 images par secondes (abregé 25fps = 25 frames par secondes/"frames per seconds"). Mais dans le cinéma numérique, c'est du 29.7fps, et la plupart des Appareils Photo Numérique propose un format de 15fps pour leur mode vidéo.
Bref, le logiciel de tracking doit "tracker" une multitude de points (choisis automatiquement ou non), mais malgré cette explication volontairement simplifiée, les logiciels de tracking emploient des algorithmes très élaborés, ce qui implique, incidement, un temps de calcul très long.
Une fois que le logiciel de tracking a calculé le deplacement d'un certain nombre de points, il synthétise les résultats obtenus pour déduire le déplacement de la caméra au travers de la scène. Ces données peuvent alors être exportées dans des logiciels de 3d qui vont permettre de recréer sur une caméra virtuelle le même cheminement que la caméra d'origine.
Bref, pour ceux qui n'avaient pas encore compris, cela permet d'integrer un objet 3d dans un scène réelle, de manière réaliste.
Dans ce tutoriel, nous integrerons une Suzanne, mascotte et cobaye de Blender. Comme ce tutoriel vise à n'aborder que les points essentiels, nous n'aborderons pas ici le texturing de l'objet, ainsi que l'eclairage...
Mais trève de théorie, appliquons !

Dans un premier temps, il va nous falloir obtenir certaines informations sur la vidéo sur laquelle nous allons effectuer le tracking. C'est pour moi l'occasion de vous présenter un logiciel dont il ne faudra plus vous separer si vous manipulez régulierement des fichiers vidéos: Avidemux.
J'en profite pour préciser que je réalise ce tutoriel sous Linux (Debian), et donc que le logiciel utilisé ci-après, Avidemux, n'est disponible que sur plateformes Linux. Pour les windowsiens, je ne puis que vous conseiller de vous renseigner sur Virtualdub, lui aussi couteau-suisse de la vidéo, mais encore mieux, vous pouvez visiter ce site!

Une fois Avidemux installé puis lancé, allez dans Fichier > Ouvrir une vidéo (ou ctrl+O) et sélectionnez la vidéo sur laquelle nous allons effectuer le tracking.

Avertessement concernant la vidéo utilisée:

Nous allons aborder l'utilisation minimale de Voodoo. Ainsi, sans configurer soit-même un certain nombre de paramètre, les options par défaut ne permettent qu'un tracking sur une vidéo sur pied, effectuant une rotation. La vidéo utilisée ne doit donc pas être filmé sans pied, à la main. Il faut une vidéo contenant des opérations de deplacement/rotation stable ! Mais la vitesse de rotation et de déplacement peut-être variable à souhait, du moment que la stabilité et la netteté reste correcte.
Si vous faites vos premiers pas hesitants dans le domaine du tracking, peut-être serait-il plus sage d'utiliser ma vidéo, disponible ici:
Vidéo 21.7 Mo (tar.bz2)
Vidéo 22.0 Mo (zip)

Cette étape consiste donc à récupérer d'une manière ou d'une autre (ici avec Avidemux) des informations sur la vidéo pour configurer correctement Blender.

Image Tutoriel

Une fois la vidéo ouverte, allez dans Fichier > Propriétés (info) de la vidéo (Alt+Entrée)
Notez/retenez la taille de l'image (ici 640x480), le ratio, qui est généralement 1:1 mais cela peut varier dans le cas de caméras exotiques ou professionnelles, le nombre de frames par secondes (FPS, ici 15,000 fps), le compte image, qui indique le nombre total d'image contenues dans la vidéo, qui correspond bien sûr à fps*durée totale (en seconde).
Le reste ne nous intéresse pas.

Image Tutoriel

2)Premier traitement de la vidéo (Blender)

Voila: plus besoin d'Avidemux maintenant !
Ouvrez Blender, puis changez immédiatement le window type du cadre principal (en "3d View" par defaut) par "Video Sequence Editor".

Image Tutoriel

Maintenant, faites [ESPACE] > Movie ou Add > Movie.
Allez chercher la séquence vidéo dont nous avons besoin.
Une fois celle-ci importée, Blender vous permet de la placer directement dans la timeline. Pour être précis, maintenez la touche Shift appuyée pour aimanter la séquence vidéo sur le curseur (barre verte), qui normalement est sur la frame 1. Validez en cliquant simplement.

Image Tutoriel

Maintenant, nous allons faire un rendu de la vidéo. Pourquoi ? Vous êtes en droit de vous poser la question... Et bien parce que Voodoo, notre logiciel de Tracking ne nous permet de ne travailler que une séquence d'image et non directement sur une vidéo. Il nous faut donc convertir notre vidéo en suite d'image: 1 image = 1 frame. Or Blender nous permet de faire ceci (d'autres logiciels le peuvent aussi, comme l'excellent EKD).
Dans le panneau de Rendu (F10) modifiez les apramètres suivants:
N'oubliez pas de preciser le dossier dans lequel les 450 images vont être generée: c'est dans l'onglet Output, la valeur par défaut (pour linux) est /tmp/.
Image Tutoriel

Lancez maintenant le rendu: il est très rapide.

Image Tutoriel

Voila, vérifiez-le, mais normalement, vous avez désormais 450 images (dans mon cas) numérotées sur 4 chiffres.

Image Tutoriel

3)Tracking (Voodoo)
Bien, maintenant, entrons dans le vif du sujet: Voodoo.
Lancez-le.
Pour les linuxiens, je vous conseille de le lancer depuis un terminal: ça vous rassurera dans quelques instants, quand vous penserez que plus rien ne se passe alors que vous pourrez voir une intense activité dans le terminal.
Malgré une interface austère et dépouillée, c'est un logiciel très puissant. Explorez-le un petit peu pour découvrir où se cachent toutes les options... (qui ferront l'objet d'un tutoriel entier).

Image Tutoriel

Nous allons maintenant charger notre séquence d'image.

File > Load > Sequence

cliquez sur Browse, puis allez dans le dossier où sont stockées les images. Selectionnez en une puis validez.
Voodoo devrait automatiquement remplir les champs de la fenêtre.
Vous remarquerez deux types de mouvements: Rotation et  Free Move. Si votre vidéo n'est constituée que de rotations sur un même axe, laissez Rotation. Mais si il y a des déplacements, choisissez Free Move. Ce dernier choix vous amenera à effectuer une étape suplémentaire dans le tracking qui peut durer jusqu'à 4 heures. A bon entendeur.

Image Tutoriel

Validez votre choix, puis lancez le tracking ! Oui, c'est tout ! En bas à droite de la fenêtre principale, cliquez sur Track, et c'est partie !


Image Tutoriel

Durant le tracking, vous remarquez l'apparition de points (représentés par des croix) en apparence placés arbitrairement.

Image Tutoriel

A la fin du tracking, plutôt court (varie celon votre ordinateur, bien sûr), Voodoo vous réveille brusquement en affichant la fenêtre suivante:

Image Tutoriel

Elle explique qu'un affinement est nécessaire du fait de la probabilité d'erreurs residuelle. Si votre vidéo n'est qu'une simple rotation, et que la qualité est correcte (peu de grain, bon eclairage, nuances des couleurs correctes, ...) alors vous pouvez refuser. Sachez que ma vidéo est un très mauvais exemple de vidéo dite correcte: beaucoup de grain, couleurs peu variés, netteté des contours et des surfaces absente et eclairage feutré: bref, tous ces facteurs handicapent le réalisme et la précision du tracking. Toutefois, si votre vidéo contient des deplacements, même stables, alors acceptez l'affinement des données.
Si vous acceptez, cela dure en moyenne 3 ou 4 heures, cela dépend bien sûr de votre vidéo !
Dans tout les cas, lorsque le tracking est fini (avec affinement ou non), il faut sauver les données de manière à ce qu'elles soient lisibles par Blender.
Et comme vous le savez peut-être, le grand copain de Blender, c'est Python. C'est donc dans ce langage que nous allons générer le script:

File > Save > Blender Python Script

Image Tutoriel

Après avoir validé, la fenêtre qui suit apparait.
Veillez bien a cocher "Export all". L'intérêt de cette option est que si vous travaillez sur une machine lente, vous pouvez réduire la lourdeur du script. A l'inverse, si vous faites un tracking complexe comprenant énormement de points, il est possible qu'un ordinateur de bureau ne puisse supporter tout les points de contrôles.
Vous verrez d'ailleurs très bientôt à quoi correspondent ces points: ils sont en fait la représentation de chaque point de tracking, ce qui permet de perfectionner l'integration en ayant des données dans l'espace.

Image Tutoriel

Bien, c'en est maintenant fini de Voodoo.

4)Integration 3d (Blender)

Réouvrez Blender.
Sélectionnez tout (A), puis supprimez (X), et validez la supression. Il faut que la scène soit entièrement vide (non obligatoire, mais c'est plus simple dans un premier temps).

Image Tutoriel

Changez, de la même manière que tout à l'heure, le type du cadre principal pour "Text Editor".

Image Tutoriel

Bien, maintenant, allez dans File > Open (Alt+O)
Selectionnez alors le script python que vous avez enregistré avec Voodoo

Image Tutoriel

Maintenant, appliquez le script que vous venez de charger:

File > Run Python Script (Alt+P)

Image Tutoriel

Retournez à présent dans la "3d View". Pour une meilleur utilisation de Blender, nous allons optimiser l'espace de travail.
Scindez à présent la vue principale en deux, en positionnant la souris sur la séparation des cadres, puis en appuyant sur le bouton central de la souris. Cliquez alors sur "Split Area".
Dans la vue 3d de gauche, positionnez-vous en vue de dessus (Numpad 7 ou View > Front). Sur la vue de droite, positionnez-vous en vue caméra (Numpad 0 ou View > Camera).
Séparez verticalement (donc en cliquant sur une séparation horizontale) la vue de gauche. Maintenant, attribuez au cadre le plus à gauche comme window type: "Outliner".
Enfin, séparez horizontalement la vue centrale et choisisez pour le cadre du bas nouvellement créé le window type "Timeline". Réajustez la surface des cadres de manière correcte.

Image Tutoriel

Maintenant, pour mieux nous rendre compte des effets du tracking, nous allons mettre notre vidéo en fond de vue.
Pour cela, dans la vue de droite:

View > Background image

Cliquez sur Use background Image, puis naviguez jusqu'à notre fichier vidéo.
Faites Alt+A (lancement de l'animation), vous observez que la caméra bouge, mais pas le fond.
Pour remedier à cela, il faut cliquer sur Auto Refresh. Profitez-en pour réduire la valeur du Blend, soit la transparence de la vidéo.
Refaites Alt+A: magie !

Image Tutoriel

Voici donc, de manière plus claire, à quoi devrait ressembler votre espace de travail:

Image Tutoriel

Bien, maintenant que c'est fait, je vais quand même vous expliquer ce que l'execution du script à changé dans notre scène...
L'execution du script a créé plusieurs choses. Elle a avant tout créé un mesh, composé de plusieurs centaines, voire milliers de points, invisibles au rendu... Ces points correspondent aux points de tracking que nous avons vu tout à l'heure dans Voodoo, souvenez-vous, les croix vertes... Concrètement, cela sert à modéliser de manière précise la scène réelle, pour disposer de repères à la bonne echelle. Nous ne nous en servirons pas ici, mais cela permet par exemple de recréer les obstacles (meubles, murs, sols, ...) pour rendre l'interaction avec l'objet incrusté plus réaliste. Nous avons aussi une nouvelle caméra. Comme vous avez pu le constater, elle se déplace de manière coordonnée avec la scène, c'est le résultat du tracking.

Bien, nous allons maintenant mettre très rapidement Suzanne en scène, l'objectif principal du tutoriel étant atteint.
Positionnez-vous en vue de dessus, placez le curseur de la même manière que moi dans la capture suivante. Cette méthode est loin d'être la plus rigoureuse, mais nous sommes dans le cas de l'integration d'un seul objet, donc il n'est pas très gênant de proceder ainsi.

[ESPACE] Add > Mesh > Monkey

Maintemant, il va falloir créer l'illusion d'un bonne intégration spaciale: pour cela, ajoutez le widget de rotation en plus du widget de deplacement, et choisissez comme mode de transformation "Normal" au lieu de "Global". Maintenant, bidouillez (c'est ça qui n'est pas très rigoureux ^^) de manière à ce que Suzanne soit positionnée à peu près comme dans la partie droite de la capture suivante.

Image Tutoriel

Bien, suzanne est maintenant positionnée, nous allons maintenant créer très simplement une ambiance lumineuse à peu près crédible.
Allez dans le panneau Object (F9), puis selectionnez "Smooth", "Auto Smooth". Ajoutez aussi un modifier "Subsurf" et modifiez la valeur de Render Levels en la passant à 3.

Image Tutoriel

Maintenant, rendez-vous dans le panneau des Materiaux (F5). Cliquez dabord sur "Add New", puis:
Modifiez la couleur grise vers un marron clair.
Dans l'onglet "Ramps", qui par défaut est situé dans le même cadre que "Material", cliquez sur "Show Col Ramp", puis Activez "Colorband": donnez à la barre située à gauche une couleur blanche et une transparence (A) de zéro, et à la barre située à droite, une couleur blanche et un transparence d'environ 0.3 (ici 0.317).
Choisissez aussi comme valeur d'Input "Normal" et comme Method: "Mix".
Enfin, baissez la valeur de Specularité à zéro.

Image Tutoriel

Voila, c'est fini pour Suzanne. Maintenant, pour un minimum de crédibilité, il faudrai qu'il y ai une ombre sur le sol en dessous de Suzanne, il faut donc ajouter une surface:

[ESPACE] Add > Mesh > Plane

En vous plaçant du point de vue de la caméra, bidouillez (encore) de manière à ce que Suzanne soit "posée" sur le sol et que celui-ci semble être confondu avec le sol de la vidéo. Pour moi, ça donne ceci:

Image Tutoriel

Bien, maintenant, allez dans le panneau des materiaux (F5) de notre sol, cliquez sur Add New, et ne modifiez qu'un seul paramètre: Activez "OnlyShadow" dans l'onglet "Shaders", vous vous doutez d'après le nom que cette option permet de ne generer que de l'ombre: aucune couleur, aucun reflet, seulement les ombres.

Image Tutoriel

Maintenant, comme le sol gêne la vue 3d, nous allons le cacher (sans pour autant annuler son efficience): sélectionnez-le puis pressez "H". il disparait. Pour information: pour le faire réapparaitre, cherchez son nom dans l'Outliner, puis cliquez sur l'oeil désormais clos pour le rendre à nouveau visible.

Image Tutoriel

Maintenant, préoccupons-nous de l'eclairage, même s'il est basique. Positionnez-vous en vue de dessus (Numpad 7 ou View > Front), puis:

[ESPACE] Add > Lamp > Area

Repositionnez-vous en vue Caméra (Numpad 0 ou View > Camera), puis elevez la lampe vers le haut, en tâchant de la decalr legerment vers le fond, à gauche. Avec les widgets de Rotation, veillez à préserver l'orientation de l'area en direction de Suzanne (en vous aidant du tracé en pointillé).

Image Tutoriel

Maintant, via le panneau des Materiaux (F5), reglons les paramètres de cette lampe:
Elargissez son étendue à 4.00, donnez-lui une couleur légèrement orangée (assez proche de blanc quand même): cela dépend bien sûr de l'ambiance de votre scène. Cliquez sur "Ray Shadow" et montez le sample (niveau de finesse de l'ombre, en gros) à 6. Enfin, activez "Only shadow", c'est à dire que outre leur ombre, cette Area n'interagit pas avec les objets de la scène.

Image Tutoriel

Maintenant, nous allons activer l'outil d'ilumination globale: l'Ambient Occlusion. Pour cela, direction le panneau World Buttons du panneau Material (F5). Dans l'onglet Amb Occ, activez le bouton Ambient Occlusion.

Image Tutoriel

Toujours dans les paramètres de l'occlusion ambiente, changez "Raytrace" pour "Approximate", cela accelère le rendu (note: c'est une nouveauté de la 2.46).

Image Tutoriel

5)Traitement final

Bien, maintenant, nous avons terminé notre bricolage pour l'eclairage. Vous pouvez lancer un rendu pour voir ce que ça donne. Vous vous rendez compte que la vidéo n'apparait pas au rendu, c'est normal: il va falloir utiliser le séquenceur pour opérer la superposition. Nous allons donc avant tout amenager l'espace de travail pour cela, changez le type des deux vues centrales de "3D View" pour "Video Sequence Editor".
Dans le Sequenceur, il y a une liste déroulante nommée "Image Preview": choisissez "Image Preview":

file:///media/disk/Mes%20Documents/Mes%20tutoriaux/En%20Cours/Voodoo/Images/Capture-1.png

Petit avertissement: Nous avons donc créé un espace de montage basique. Pour ceux qui ne connaissent pas, nous allons superposer des pistes (vidéos, audio, des scènes, ...) auxquelles nous pouvons ajouter des effets, ceux-là nous permettrons d'ailleurs de superposer la vidéo de la scène réelle, et la scène 3d que nous venons de terminer. C'est au sujet de cette dernière que je dois vous avertir: la zone à gauche, nommée "Image Preview" calcule instantanément le résultat de la table de montage par rapport à l'endroit où on se trouve dans la timeline, représenté par la barre verte. Or par la suite, pour allons importer la scène que nous venons de réaliser, la zone d'aperçu calculera donc la scène 3d pour la superposer ensuite à la vidéo: cette opération est très longue et peu handicaper très fortement la fluidité d'utilisation de Blender.
Je vous conseille donc fortement de "désactiver" cette zone de preview en re-passant par exemple en mode "3d View". Vous pouvez toujours essayer de faire avec l'image preview, mais dans ce cas, vous risquer de "paniquer" car l'image n'apparait que lorsque le rendu et le calcul du montage est terminé (une frame seulement, celle où vous vous situez), vous ne pouvez pas apprecier la progression du rendu, faites alors "ECHAP" dans la zone de l'"Image Preview" si cela s'éternise...


Bien, nous allons d'abord importe la vidéo de la scène réelle. Avant cela, positionnez-vous sur la frame 1 (en deplaçant la barre de position ou en tapant 1 dans le champs correspondant dans la Buttom Window. Ensuite, pour l'import, deux choix:
Le navigateur interne de Blender s'ouvre alors, allez dans le dossier où se trouve la vidéo, selectionnez-la et validez.
Dès que vous avez validez, vous êtes en mode de deplacement de la sequence, positionnez-la donc à la frame 1 en pressant la touche CTRL pour activer l'aimentation sur la barre de position.
Image Tutoriel

Bien, maintenant, par dessus, nous allons ajouter notre scène 3d. c'est là que je vous conseille de desactiver l'"Image Preview".

Add > Scene

Dans ce cas, vous n'avez qu'une scène, qui s'appelle Scene 001 (si vous ne l'avez pas renomée), choisissez donc celle-ci.
De la même manière qu'avant, positionnez-la sur la frame 1, sur la piste cituée au dessus de la vidéo. Si vous ré-affichez l'"Image Preview" et que vous attendez la fin du rendu, vous vous appercez qu'il n'y a pas de superposition, le fond st noir, on n'y voit pas la vidéo. C'est normal, Blender rempli l'Alpha (transparence) par du noir. il faut utiliser l'un des effets du sequenceur pour y remedier.

Image Tutoriel

Selectionnez alors les deux séquences succesivement, les raccourcis étants les mêmes que pour les opération de selection dans la 3d View: Clique-droit sur celui du dessus, maintenez SHIFT appuyé, puis sselectionez le second.
Puis l(une des deux options suivantes:
Comme pour les précedents ajouts, l'effet est en mode de déplacement. Comme il dépend des deux pistes précédentes, sa position horizontale est calquée sur celle des deux autres pistes, donc vous ne pouvez le deplacer que sur la verticale. Placez-le n'importe où, ça n'a pas d'importance.
Image Tutoriel

Voila, vous pouvez maintenant ouvrir à nouveau l'"Image Preview" et attendre le rendu: les deux pistes sont correctement superposées.

Image Tutoriel

Désormais, vous pouvez lancer le rendu en veillant aux paramètres suivants:
Nous avons trouvé tous ces paramètres au début du tutoriel. Enfin, choisissez comme format d'export un format vidéo, ici AVI Raw (très lourd). Lancez le rendu, et ensuite, c'est terminé !
Image Tutoriel


Nous avons en fai surtout vu le fonctionnement approximative du tracking dans son ensemble. Je rédige plusieurs tutoriaux visant à decouvrir en profondeur les nuances et autres utilisations du tracking, avec Voodoo et Blender, ceci n'était donc qu'un mise en bouche !
Vous notez probablement que le résultat n'est pas parfait, c'est "normal": j'ai choisis de faire ce tutorial uniquement pour que vous découvriez la chaine complète, dans de prochains tutoriaux, nous affinerons les réglages de Voodoo et de Blender.

Tutoriaux - Mr.Yann by Mr.Yann est mis à disposition selon les termes de la licence Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 2.0 France.
Les autorisations au-delà du champ de cette licence peuvent être obtenues à http://www.mr-yann.org/tutoriaux.
Plus de détails sur la license utilisée

Creative Commons License