TP4: Assemblage de photos

Résumé

Ce travail a pour but d'implémenter un algorithme de génération de panoramas et d'appariement automatique, ainsi que de comparer la qualité des transformations entre la sélection manuelle et automatique d'appariements.

Partie 0: Réchauffement

Partie 1: Appariement manuel

Approche générale

L'image étant la plus similaire aux autres images de la série est choisie comme image centrale pour la construction du panorama. Dans le cas où chaque image de la série est similaire à l'image centrale, des appariements sont choisis entre chacune des images et l'image centrale pour construire le panorama. Sinon, on doit aussi déterminer des appariements entre certaines images de la série afin de pouvoir toutes les transformer vers le plan de l'image centrale (ex.: image 1 vers image 2 vers image centrale). Ensuite, les matrices d'homographie permettant de passer du plan des images de la série vers le plan de l'image centrale sont calculées par SVD (les points sont aussi normalisés) à partir des appariements points image <=> points image centrale. Enfin, les images sont transformées et puis intégrées (interp2 via inv(H)) au plan de l'image centrale. Lors de l'intégration des images à la mosaique, la valeur des pixels correspond à la valeur moyenne du pixel dans les deux images si l'image transformée est superposée à la mosaique en train d'être générée.

Résultats

Pour chaque série, les images transformées sont présentées et sont suivies par le panorama généré. Dans le cas des séries 2 et 3, les appariements entre les images originales et l'image centrale sont aussi présentés. Légende: Deux premières images = appariements entre image et image centrale; troisième image = image transformée.

Série 1

On peut quantifier les erreurs dans le panorama en regardant les zones qui sont floues. On remarque que l'alignement autour du lampadaire est imprécis et cause même une fracture dans le haut de ce dernier. Cette erreur peut s'expliquer par le manque d'appariements entre les images 2 et 3 sur le lampadaire (appariements non affichés ici). En effet, il n'y a qu'un seul appariement à la base du lampadaire. Le flou autour du sac à dos peut aussi s'expliquer par le manque d'appariements dans cette zone. Outre les erreurs d'alignement, on remarque aussi la présence d'arêtes verticales et horizontales dans le panorama, là où les images transformées se terminent. Étant donné que les valeurs des pixels dans l'image correspondent à la moyenne des pixels des images transformées (lorsqu'il y a superposition), les arêtes ne sont pas très bien camouflées. Pour diminuer le nombre d'arêtes, on peut imposer que les images se superposent à chacune sans faire de moyennage. On viendrait alors enlever les arrêtes dans le centre du panorama. Ces distorsions dans les panoramas sont d'ailleurs présentes pour tous les panoramas produits ici puisque la méthode du moyennage est employée. Malgré tout, on peut observer que le panorama est bien réussi, puisque les homographies ne créent pas de fortes erreurs d'alignement partout dans le panorama.

Série 2

La génération de ce panorama est très sensible à l'emplacement des appariements dans les images. Puisqu'il y a peu de zones d'intérêts faciles à identifier pour un humain (outre le bateau ou la grue), il a été difficile de bien choisir des appariements optimisant la qualité du panorama. On peut remarquer que dans la deuxième transformation, des appariements ont été sélectionnés sur la bordure en ciment, malgré qu'il existe peu de zones marquantes à cet endroit. Sans cet appariement, le panorama résultant a une fracture entre les deux bordures de ciment. Puisque l'homographie optimise la transformation pour les points qui lui sont fournis, il est donc primordial de choisir des appariements fiables, mais aussi variés et dans différentes régions des images. Dans l'ensemble, ce panorama est aussi bien réussi, malgré le faible nombre de zones d'intérêts dans la scène.

Série 3

Ici aussi, on remarque que le panorama est bien réussi. Cela dit, on note une forte erreur d'alignement dans le bas de l'image sur le bois. Puisqu'il n'y a pas d'appariement sur cette structure, il est donc normal que l'optimisation n'ait pas tenue compte de cette zone. Il aurait été d'ailleurs difficile d'en tenir compte, puis qu'il n'y a pas de zones d'intérêt importante sur le rebord dans la troisième image. La méthode d'appariement manuel a donc une limite importante quant à la précision des panoramas générés en fonction du nombre de points d'intérêts détectables par un humain.

Partie 2: Appariement automatique

Approche générale

L'approche pour la construction de panoramas est la même que celle présentée à la section précédente. Cependant, les appariements sont détectés automatiquement plutôt que d'être choisis à la main. Pour y arriver, l'algorithme utilise un détecteur de Harris pour trouver premièrement des points saillants dans les images. Ensuite, ces points sont seuillés afin de ne conserver que les maxima locaux. Des descripteurs sont ensuite construits à partir des points saillants résiduels selon l'article de Brown disponible dans l'énoncé du TP. Plutôt que d'utiliser des coefficients de DWT pour déterminer les plus proches voisins, la distance eucledienne des patches de 8x8 est utilisée. Finalement, les appariements issus de cet algorithme sont seuillés et seuls les plus certains sont conservés. La matrice d'homographie est quant à elle déterminée par RANSAC en choisissant 4 appariements parmi ceux restants.

Les paramètres suivants peuvent être modifiés dans l'algorithme: seuil d'erreur pour RANSAC, seuil des plus proches voisins, nombre de maxima locaux conservés et nombre d'itération de RANSAC.

Résultats

Pour chaque série, les appariements utilisés pour construire le panorama sont présentés. Les images de la série transformées vers l'image centrale sont ensuite affichées, suivi du panorama final. Pour la série 1, les étapes intermédiaires avant l'obtention d'appariements sont affichées pour un groupe d'appariement. À moins d'avis contraire, ces étapes sont les mêmes pour tous les autres groupes d'appariements dans cette section. Ils ne seront cependant pas présentés en détails afin de ne par surcharger ce rapport.

Série 1

L'image centrale est l'image 2, soit celle avec l'un des pylônes à la droite de l'image.

Détails:

Légende (de gauche à droite): Image originale, sortie du détecteur de Harris, sortie seuillée pour conservés 500 maxima locaux (plus importants), appariements avec l'autre image suite à la création des descripteurs.

Images de la série une fois transformée vers l'image centrale:

Le premier pylône du pont est un petit peu flou, mais le panorama est de très bonne qualité. Les imperfections sont plus faciles à camoufler en moyennant lorsque les images sont en teintes de gris plutôt qu'en couleur. On remarque aussi qu'il y a peu de faux appariements entre les images. Par exemple, dans l'avant dernier appariement, on remarque qu'il y a un des trois groupes de points en haut du pylône qui est erroné. Par contre, puisqu'on utilise RANSAC avec beaucoup d'itérations et beaucoup d'appariements, l'impact négatif d'un mauvais appariement est minime.

Série 2

L'image centrale est l'image 2, soit celle avec le sac à dos au centre de l'image.

Images de la série une fois transformée vers l'image centrale:

Comparé au panorama avec appariement manuel, celui-ci a moins d'erreurs d'alignement (notamment au niveau du lampadaire). Par contre, on remarque certaines erreurs d'alignement en dessous du morceau de bois à droite du lampadaire. Puisque la dernière image est très (TRÈS!) étirée, il est attendu qu'il y ait plus d'erreurs dans cette région. Ce panorama permet aussi de voir l'impact du choix de l'image centrale. En effet, puisque l'image centrale choisie est dans la partie gauche de la scène (comme 2 autres images), le panorama résultant n'a pas beaucoup d'images étirées, à part celle à l'extrême droite. Si l'image centrale avait été l'image un peu plus à droite que l'autre, il y aurait alors eu un étirement des deux côtés, puisque l'image à l'extrême gauche aurait été plus éloignée du "centre" du panorama. Enfin, on note aussi que les paramètres utilisés pour l'appariement automatique sont très importants lorsqu'une image doit être étirée, comme celle à la droite. En effet, si les points sont de mauvaise qualité, la transformation pourrait alors causer une image très étirée et nécessiter un canvas de taille complètement absurde (et faire planter votre PC!), en plus de nuire à la qualité du panorama.

Série 3

L'image centrale est l'image 5, soit celle pointant vers le sol avec les deux bancs.

Images de la série une fois transformée vers l'image centrale:

Les difficultés principales pour ce panorama furent de déterminer l'image centrale simplifiant les transformations et de déterminer l'ordre des ajouts dans le panorama. En effet, selon l'ordre de l'ajout des images dans le canvas, le panorama final peut être très différent. Étant donné que les images n'ont pas tous des appariements fiables entre elles, les probabilités d'erreur lors de la construction du panorama sont importantes. Malgré tout, le panorama généré est correct à l'échelle affichée. Par contre, en zoomant sur l'image, on réalise rapidement qu'il existe un flou général dans l'image.

Partie 3: Images personnelles

Les images individuelles des séries ci-dessous sont affichées avec leurs appariements. L'image centrale est aussi reproduite juste avant la mosaïque finale.

Série 1 (4 images)

L'image centrale est l'image 3, soit celle avec l'araignée et la porte.

Images de la série une fois transformée vers l'image centrale:

Présence d'erreurs d'alignement significatifs dans la porte et à la droite de l'araignée peu importe les paramètres d'appariement automatique sélectionnés. Bien que les images aient été prises avec un trépied et qu'un effort a été mis pour aligner le centre de projection avec le trépied, il semblerait que le centre de projection n'était pas tout à faire aligner. Dès lors, peu importe les appariements choisis, l'image transformée ne peut pas satisfaire toutes les contraintes géométriques de la scène. C'est d'ailleurs pourquoi une optimisation de la région de la porte cause des erreurs sur l'araignée et vice versa. Outre ses erreurs, on peut aussi noter que le mur à la droite du panorama a été fortement étiré et semble être beaucoup plus long que le reste de la scène alors qu'il s'agit en fait du mur le plus court.

Série 2 (3 images)

L'image centrale est l'image 2, soit celle avec la chaise et la colonne.

Images de la série une fois transformée vers l'image centrale:

Comme pour la série précédente, il y a beaucoup d'erreurs d'alignement causées par la configuration utilisée pour prendre les photos. Un alignement réussi pour la poutre génère de mauvais alignements dans la fenêtre et l'ordinateur. Cela dit, les dimensions réelles sont respectées.

Bonus 1: Mélange d'images

Les appariements ont été choisis manuellement dans les images afin de réaliser les mélanges. À moins d'indications contraires, les points dans l'image à transformer correspondent aux quatre coins et les points de l'image utilisée comme plan correspondent aux quatre coins de l'image une fois transformée.

Les images originales sont affichées pour chaque mélange, suivies du résultat.

Billboardception

Panneau publicitaire Source

Pour réaliser ce mélange, l'image originale est projetée dans l'espace blanc de la même image. Ensuite, pour réaliser l'effet voulu, l'image résultant de cette homographie est de nouveau projetée dans l'image originale. Ceci est réalisé 5 fois afin de créer l'image finale. Cette application est très simple à réaliser et ne nécessite que quatre appariements.

Graffiti

Logo ULaval Source
Brown University - Thomas J. Watson Sr. Center for Information Technology (Photo personnelle)

Pour obtenir un graffiti réussi, un masque est appliqué sur le logo (tout le contenu blanc devient invalide). Par la suite, il est transformé vers la scène et puis moyenné sur le mur. Les points sur le mur ont été choisis manuellement afin de conserver le mieux possible les dimensions originales du logo.

Gallerie d'art

Blonde (Photo personnelle)
Gallerie d'art de Yale University Source

Pour obtenir ce résultat, la même procédure que pour la première image est effectuée 1 fois seulement. Les points dans la gallerie d'art ont été choisis pour que l'image à transformer prennent tout l'espace de la peinture.

Changement de saisons

Peps - été 2016 (Photo personnelle)
Peps - hiver 2017 (Photo personnelle)

Le masque pour réaliser ce montage a été défini manuellement de telle sorte que seul le banc de neige soit transformé. Puisque les deux photos n'ont pas été prises au même endroit, il est difficile de transformer l'image sans induire d'erreurs d'alignements. Pour réduire ces erreurs, la matrice d'homographie a été construite à partir d'appariements près du banc de neige à ajouter. Dès lors, l'accent a été mis sur les objets touchant au banc de neige, soit le lampadaire, le paneau de signalisation et la boite à la droite. L'image finale a aussi été rognée sur les côtés puisque le banc de neige transformé était légèrement plus court que la rue dans l'image d'été. Ce mélange permet de voir plusieurs problèmes survenant lorsqu'on tente d'ajouter des objets provenant d'ailleurs dans une scène. Par exemple, on remarque que les arêtes du banc de neige sont très fortes et saccadées. De plus, on remarque que l'éclairage sur le banc de neige semble très différent de l'éclaire ambiant ailleurs dans la scène. Outre la qualité du découpage du banc de neige, ces deux facteurs sont les principales raisons pourquoi le mélange ici semble étrange ou manqué.

Conclusion

Ce travail m'a permis de me familiariser avec la création de panoramas et à la détection de points d'intérêts dans les images. Bien que les alignements soient majoritairement corrects dans les panoramas générés dans ce travail, les panoramas sont loin d'être parfaits. Il reste beaucoup de travail à effectuer sur les arêtes, la cohérence des couleurs entre les images dans le panorama ainsi que sur la qualité des matrices d'homographie. Les descripteurs pourraient aussi être améliorés puisqu'ils sont sensibles à la rotation et à l'échelle.