Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/06874.jsonl.gz/798

David Hasler, EPFL-DE-Laboratoire de commmunications audio-visuelles, e-mail: <email-pii>
Ne vous est-il pas déjà arrivé, lors d'un voyage à l'étranger, de traverser des contrées magnifiques et de vouloir les immortaliser sur une magnifique photo?! Quelle frustration cependant, lorsqu'on rentre au pays et montre les images des vacances à nos amis: la photo n'arrive souvent pas à restituer l'impression du moment. Une des raisons à ce phénomène -mais évidemment pas la seule- est que la photo ne contient pas tout le paysage visible à l'oeil nu. Techniquement, l'angle de vue de notre oeil est nettement supérieur à celui de l'appareil photo, ce qui nous force à choisir un élément particulier de la scène. Pour palier à cet inconvénient, il est possible de prendre une multitude de photos du même endroit, puis de les recoller pour ne former qu'une seule grande image. Ceux d'entre vous qui l'avez tenté ont sans doute remarqué qu'il s'agit là d'une tâche laborieuse. Ce que nous exposons dans cet article est une méthode qui effectue le collage des photos automatiquement. Evidemment, il faudra avoir scanné les images auparavant, et disposer d'une bonne imprimante pour pouvoir profiter du résultat.
Le problème est le suivant: on dispose de 2 images (voir fig. 1); on remarque qu'il y a une partie de recouvrement entre les images, sans quoi la méthode ne marcherait pas.

|image 1||image 2|
Rappelons qu'une image peut être représentée par une matrice dont les éléments représentent l'intensité de chaque point de l'image (pour une image en noir et blanc). Par exemple, si un point est blanc sur l'image, il sera représenté par la valeur 100 dans la matrice, s'il est noir il aura la valeur -100, s'il est gris il sera égal à 0, et ainsi de suite.
Dans l'exemple des deux images ci-dessus, le mouvement peut être représenté par une translation. Supposons que cette translation soit connue. Pour vérifier son exactitude, on bouge l'image 1 sur l'image 2, et fait une comparaison point par point: on soustrait les éléments des deux matrices correspondant aux images. Idéalement, on devrait obtenir zéro à chaque soustraction. En pratique, à cause des perturbations introduites par le dispositif d'acquisition (film, développement, scanner, etc.) leur différence n'est pas nulle (voir fig. 2).
On introduit alors un critère - appelé fonction objective - qui nous permet de déterminer si l'hypothèse de mouvement est satisfaisante. S'il n'y a pas d'objets qui se sont déplacés dans les images, on choisira généralement la moyenne du carré de la différence de chaque point des images. Bref, pour savoir si on a déplacé les images correctement, on choisit de les déplacer un peu différemment, et la fonction objective devrait augmenter. Le problème se résume ainsi à trouver le déplacement qui donnera le minimum de la fonction objective.
Que faire maintenant si on ne connaît pas le déplacement a priori? Eh bien on va tout simplement supposer qu'on le connaît à peu près. Puis, on va le modifier légèrement afin de faire décroître la fonction objective et ainsi de suite jusqu'à l'obtention du mouvement correct.

|fig. 2a: image 1 de la figure 1 à laquelle on a appliqué un mouvement et un filtrage||fig. 2b: image 2 de la fig. 1, filtrée|

|fig. 2c: différence des images (a) et (b). On constate que la différence dans la zone de recouvrement n'est pas tout à fait nulle (i.e grise et uniforme). Ce phénomène est dû au bruit d'acquisition||fig 2d: résultat de l'estimation|
Le problème peut être vu d'une manière totalement différente:
Oublions un instant ce qui a été écrit jusqu'à présent et supposons que nous sommes à la montagne. Supposons également que le but de la journée soit de trouver le point le plus bas du massif montagneux. Pas de chance, il fait un temps maussade et le brouillard ne permet pas de voir à plus de 2 mètres. Une stratégie possible pour atteindre un point de basse altitude consiste à suivre la pente vers le bas. Malheureusement, on procédant ainsi, le risque est de se retrouver au fond d'une vallée d'altitude.
Pour en revenir au problème des photos, on peut considérer la fonction objective comme étant l'altitude du massif montagneux. Notre position (longitude, latitude) représente le déplacement (translation verticale, translation horizontale) nécessaire à superposer l'image 2 sur l'image 1. Le problème qui consiste à trouver le minimum de la fonction objective est similaire à celui qui trouve l'endroit le plus bas du massif montagneux. La méthode qui consiste à suivre la pente est une approche adoptée par les algorithmes dits de descente de gradient. Ces méthodes souffrent du risque d'aboutir dans un minimum local ou, de façon analogue, dans le fond d'une vallée d'altitude. Pour que cette méthode fonctionne, il faut soit partir d'un bon endroit, c'est-à-dire disposer d'une assez bonne estimation de départ du mouvement, soit supprimer les minimums locaux, ce qui reviendrait à lisser le terrain pour ne plus rester coincé au fond des vallées. Cette dernière technique est utilisée par les méthodes multi-résolution, c.à.d. des méthodes qui estiment d'abord le mouvement sur une version floue de l'image et contenant moins de pixels que l'originale, pour ensuite disposer d'un meilleur point de départ pour l'estimation de l'image finale.
Pour savoir comment glisser l'image 2 sur l'image 1, il faut disposer d'un modèle de mouvement.
Le plus simple est le modèle bi-dimensonnel. On ne fait que reproduire l'action de recoller les images avec des ciseaux et de la colle. En réalité, ce modèle suppose que les images proviennent de la photographie d'un grand poster collé sur un mur plat, et que l'appareil photo s'est déplacé parallèlement à ce mur. Ce modèle est surtout approprié pour reconstruire une grande image numérisée avec un petit scanner en plusieurs fois.
Le modèle le plus courant est le modèle rotationnel. On suppose que le photographe prend ses photos en tournant l'appareil, mais ne se déplace pas. Contrairement à ce qu'on pourrait penser, une rotation de l'appareil n'occasionne pas une simple translation au niveau de l'image (voir fig. 3).

|fig 3a: modèle translationnel appliqué à une rotation||fig. 3b: modèle projectif appliqué à une rotation. Les images sont superposées en transparence. On constate que le modèle translationnel est peu adapté pour restituer une image prise en effectuant une rotation avec l'appareil photo. Sur cette image on peut apercevoir le phénomène de parallaxe: la lampe qui se trouve en bas de l'image apparaît double.|
>On introduit souvent les changements de focale (zooms) dans les modèles ci-dessus.
Le modèle le plus général est le déplacement libre dans l'espace. La grande difficulté liée à ce modèle est l'apparition du phénomène de parallaxe: si un objet est près du photographe, il se déplacera plus rapidement dans son champ de vision qu'un objet éloigné. Ce phénomène occasionne des difficultés majeures lors de la reconstruction de l'image finale, et fera l'objet de recherches plus approfondies.
Le procédé qui consiste à construire un panorama constitué d'objets se trouvant loin du photographe avec un appareil de bonne qualité dont on connaît les caractéristiques ne pose pas de problèmes majeurs, si ce n'est pour égaliser les couleurs entre les différentes photos. Par contre, dès qu'il faut estimer une longueur focale, corriger les aberrations de l'optique de l'objectif, ou lors d'apparition d'objets mobiles dans la scène, le problème d'estimation se complique considérablement. Ces problèmes peuvent être classés en deux catégories: ceux qui ont trait aux caractéristiques de l'appareil photo, et ceux qui concernent la scène photographiée.
Lors d'une rotation de l'appareil, il est important de connaître la longueur focale de l'objectif. Sur la fig. 4a, on peut voir une image recollée sans estimation de longueur focale, celle-ci étant supposée être égale à 90mm. Sur la fig. 4b, la même image avec estimation de la longueur focale, dont le résultat a donné 70mm. On constate une certaine amélioration sur la fig. 4b: la discontinuité de la trace de l'avion dans le ciel a disparu.

|fig. 4a||fig. 4b|
Dès qu'un objet a bougé entre la prise des différentes images, les méthodes d'estimation utilisant le critère des moindres carrés ne donnent plus satisfaction. En effet, ce dernier critère est approprié lors de perturbations de type gaussiennes (c.à.d. causées par une multitude d'événements indépendants et de même nature), alors qu'un objet mobile n'entre pas dans cette catégorie. Pour estimer le mouvement dominant dans l'image, il faut alors utiliser un estimateur robuste, par exemple un estimateur moindre médian (la fonction objective est alors la médiane du carré de l'erreur entre les pixels). La fig. 5 compare le résultat d'une estimation robuste avec une estimation des moindres carrés.

|fig. 5a: illustration de la sensibilité de la méthode aux objets mobiles- Estimation des moindres carrés. On voit le même skieur à deux instants différents. La méthode n'a pas réussi à aligner la porte correctement.||fig. 5b: estimation robuste. La porte n'apparaît plus double.|
Représentation du résultat
Lorsque tous les paramètres de mouvement ont été identifiés, l'image finale peut être synthétisée sous plusieurs formes. Dans le cadre d'un panorama, on aura tendance à projeter les images sur un cylindre (ou une sphère). Si on veut simuler un appareil à très grand angle, on aura tendance à faire une projection sur un plan (c.f. fig 6). L'avantage de ce dernier est qu'il conserve les lignes droites. La représentation finale peut également être conservée dans l'ordinateur pour être visualisée en réalité virtuelle.

|fig. 6a: projection d'un paysage sur un plan||fig. 6b: projection du même paysage sur un cylindre|
Applications
La plus évidente des applications est la photographie de panoramas. Une autre est la création de données destinées à être regardées à l'aide d'un visualiseur, dont l'application principale serait le tourisme. Les techniques présentées ici peuvent aussi être appliquées à la vidéo, comme l'illustre la fig. 7. Ce dernier exemple montre qu'il est tout à fait possible d'agrandir l'angle de vue de certaines séquences vidéo, ou de modifier leur cadrage.
fig. 7: scène reconstruite à partir d'une séquence vidéo. La double flèche montre la taille d'une image vidéo
|retour au sommaire du Flash informatique spécial été 98|
|retour à la page principale des Flash informatique|
|Vos commentaires|
|© FI-spécial été du 1er septembre 1998|