GIF-4105 - Projet final: à vous de jouer!

Effet Vertigo

Qu'est-ce que l'effet Vertigo?


L'effet vertigo est un effet spécial généralement réalisé directement par la caméra. L'effet donne l'impression que la profondeur de la scène change, tout en gardant une partie de la scène fixe. Pour arriver à ce résultat, il faut reculer la caméra tout en zoomant sur le sujet (ou vice-versa), ce qui donne l'impression qu'il ne change pas de taille. L'objet reste alors fixe, mais l'angle de vision (FOV) devient plus petit.
Exemple de l'effet dans le film Jaws (1975)


Caméra vidéo et lentille zoom

On veut essayer de reproduire l'effet. On prends alors un trépied sur roulettes et une caméra zoom pour produire le vidéo suivant:
Le résultat n'est pas très impressionnant. Le problème majeur est qu'il est très difficile de bien ajuster le zoom tout en opérant la caméra. On doit alors tenter une autre méthode.

Série de photos

L'autre méthode pour produire l'effet est de prendre une série de photos tout en reculant et en prenant bien le temps de réaligner l'objet dans l'image. Pour ce faire, on utilise ici de la gommette sur l'écran de la caméra. En plein millieu de la prise de photos, il est même possible de changer de lentille pour avoir un plus grand zoom. Voici le premier résultat, joué à 15 images par secondes:

On a un léger problème ici. Puisque la méthode de la gommette n'est pas vraiment assez précise, le sujet bouge beaucoup dans l'image. Pour le deuxième résultat, on a simplement réaligné les images à la main:

La méthode fonctionne bien somme toute. Cependant, non seulement on a besoin d'une bonne caméra, de très bonnes lentilles zoom et d'un trépied, mais le temps pour créer la vidéo est énorme. On parle ici d'une vidéo de 2 secondes, soit 30 images (15 img/s), où il faut déplacer une caméra et l'aligner, ce qui prends une minute ou deux par image. Ensuite, il faut réaligner à la main, ce qui prends une autre minute ou deux par image. Grosso-modo, on parle d'une heure de travail pour une seule vidéo de 2 secondes.

Zoom automatique

Il est possible de recréer le résultat en utilisant un zoom digital. Cela rends possible l'utilisation d'une caméra de cellulaire ordinaire, en prenant un vidéo d'un objet tout en s'éloignant de celui-ci. Pour cela, il faut créer un algorithme permettant de "tracker" l'objet, de trouver sa transformation dans la vidéo par rapport à la premiere image et d'appliquer la transformation inverse.

Puisque la transformation est rigide, il est nécessaire de tracker 2 points sur l'objet désiré. On demande alors deux points à l'utilisateur pour démarrer. Pour suivre la positions des deux points, on utilise une technique de template matching. Cette technique consiste à prendre une fenêtre autour du point d'intéret dans la première frame et de la glisser dans la une fenêtre de recherche dans la frame suivante. On trouve alors le "glissement" le plus "ressemblant" comme déplacement du point. Pour ce faire, la correlation croisée simple a été essayée car elle produit des résultats rapidement et car elle peut être accélérée en utilisant l'approche de calcul par la transformée de Fourier. L'algorithme est alors en temps O(nlogn). Les résultats n'étaient pas très satisfaisant, alors on rajoute un facteur de normalisation sur les valeurs basée sur l'intensité des pixels se chevauchants. Cette normalisation est décrite dans l'article Fast Template Matching de J. P. Lewis (1995). Le tracking est alors plutôt satisfaisant, et à partir des deux points trackés, ont obtient le résultat suivant.

On voir que le résultat n'est pas très satisfaisant. Il arrive que le bruit dans le traking donnent un résultat assez pauvre. On peut régler ce problème en utilisant plusieurs points de tracking, en trouvant la transformation entre chacune des paires de points et en faisant la médiane pour éviter que des mauvais trackings n'influencent trop le résultat. En bonus, on peut utiliser l'algorithme RANSAC en calcultant la transformation qui minimise l'erreur avec les autres points et en réajustant ceux-ci en cours de route, ce qui évite la dérive. Le résultat est le suivant:

On a utilisé 12 trackers ici.

Beaucoup mieux! Voici plusieurs autres résultats:

On a utilisé 16 trackers ici.

On a utilisé 6 trackers ici.

On a utilisé 5 trackers ici.

On a utilisé 11 trackers ici. Effet intéressant puisqu'on a décidé de bouger le caméra de gauche à droite, créant ainsi un mouvement dans le fond.

Comparaison avec la version "in-camera"

On remarque que l'effet automatique est assez bon somme toute. Il aurait été difficile de faire le dernier effet (la bouteille avec le fond qui bouge) avec une caméra directement. Aussi, elle nécessite beaucoup moins de travail et d'équipement. Cependant, la version automatique nécessite un objet relativement plat, qui ne bouge pas trop et qui contient des "features" interessantes à tracker. Aussi, la pluspart des résultats sont tournés en 4K originalement. Avec une caméra HD, on aurait une bonne perte de résolution.

Améliorations possibles