TP4: Assemblage de photos

Partie 0: Réchauffement

Fichiers pincipaux: main_applyhomography.m

Fonctions utilisées: applyhomography.m

Partie 1: Appariement manuel

Fichier pincipal: main_manual.m

Fonctions utilisées: findhomography.m, applyhomography.m, stichimage.m et create_image_cps.m

Affichez les points que vous avez sélectionné, et illustrez les étapes de votre algorithme. Commentez vos résultats.

Étapes de l'algorithme

Étape 0: Des points d'intérêts sont sélectionnés manuellement entre chaque paires d'images voisines. Ceux-ci correspondent au même point sur chaque image.

Étape 1: Une image est selectionnée comme étant la référence pour les autres. Ainsi, aucune transformation ne sera appliqué sur celle-ci.

Étape 2 et 3: On trouve la transformation projective entre chacune des paires d'images voisines à l'aide des points de correspondance et du système d'équation x' = Hx. Une normalisation des points est utilisé afin de rendre la solution plus stable. Le système est ensuite résolu à l'aide d'une déconposition SVD. Ensuite, on applique la bonne transformation sur les images à gauche et à droite de l'image de référence. Si l'image n'a pas de transformation directe vers celle de référence, on utilise les transformations des images intermédiaires.

Étape 4: Les images sont juxtaposées aux bons endroits dans un caneva vide et l'intersection est moyennée à l'aide d'un masque. La position du coin de l'image de référence dans le nouveau caneva est conservée à chaque collage d'image afin de bien positionner la prochaine.

Étape finale: Lorsque toute les images ont été fusionnées, le résultat est affiché.

Série 1

Commentaires: La fusion des images semble se faire de façon convenable. Par contre, le moyennage ne donne pas un effet intéressant pour le ciel a cause du vignettage sur les images (causé par la lentille). De plus, le photographe semble avoir bougé légerement lors de la prise de photo puisque le lampadaire n'est pas bien aligné. La fusion de la rampe semble irréprochable.

Série 2

Points d'intérêts des images (comparer les images gauches et droites)

Commentaires: Le même effet que dans la série sur le ciel se produit dans cette série de photos. Le reste du paysage est bien alligné.

Série 3

Points d'intérêts des images (comparer les images gauches et droites)

Commentaires: Encore le même problème de vignettage. L'allignement de images semble parfait, sauf pour le coin inférieur droit de l'image 2 qui est décalé. La bordure des images où la neige est peu perceptible.

Partie 2: Appariement automatique

Fichier pincipal: main_automatic.m

Fonctions utilisées: applyhomography.m, ANMS.m, compute_descriptors.m, computehomography.m, dist2.m, harris.m, ransac.m match_features.m et stichimage.m

Étapes de l'algorithme

Étape 1: Les images sont placées en ordre dans une liste afin qu'elles aient tous une région commune (pas de crédit supplémentaire...). Les prochaines étapes seront montrée pour l'image de droite.

Étape 2: Le détecteur de coin Harris est utilisé afin de trouver des points qui sont intéressants sur l'image. Les points trop près de la bordure de l'image (20px) sont retirés afin de simplifier les prochaines étapes.

Étape 3: Afin d'obtenir moins de points tout en conservant une bonne repartition spatiale des points dans l'image, un algorithme répression maximale non adaptative (ANMS) est implenté. Celui-ci conserve le meilleur point autour d'un rayon défini. Une valeur de c = 0.9 est choisi tel que recommandé (f(x_i) < c*f(x_j)). 500 points ont été conservés pour les prochaines étapes.

Étape 4: Pour chaque point caractéristique identifié, un descripteur est extrait. Celui-ci est composé de 8x8 pixels échnantillonés uniformément sur une grille de 40x40 pixels. Le descripteur est ensuite normalisé (mean = 0 et stddev = 1). L'image de droite montre un extrait des descripteurs (descripteur == colonne).

Étape 5: Chaque descripteur de l'image est comparé avec les descripteurs de la prochaine image de la liste. La distance au carré est utilisé afin de comparer la proximité de 2 descripteurs. Afin d'obtenir de bons appariment, chaque concordance doit satisfaire le critère suivant: NN1/NN2 < T, où T est un seuil aux alentours de [0.2,0.4] et NNi la distance du ième plus proche voisin. Ainsi, cela permet d'obtenir des concordances plus fiables dont le deuxième voisin est assez éloigné.

Étape 6: Afin de déterminer la meilleur concordance, l'algorithme RANSAC sur 4 points est implanté. Ceci permet d'obtenir une estimation de l'homographie. La distance des points abberants est calculer avec dist2 et un seuil de 1 est utilisé afin de les discriminer. Entre 20 et 40 itérations sont nécessaire pour obtenir de bons résultats en pratique.

Étape 7: Le même algorithme décrit dans la section «manuelle» est effectué afin de fusionner les images ensembles.

N.B. à cause de certaines limitations en mémoire sur mon ordinateur, la taille de certaines images a dût être diminuée

Série 1

Commentaires: On constate que les points de concordance sur les cordes du pont se mélange puisqu'elles se resemblent toutes. Surprenamment, les points de concordance sur les nuages dans le ciel sont généralement bons. le rendu final est satisfaisant.

Points d'intérêts des images (comparer les images gauches et droites)

Série 2

Commentaires: Malheusement, la taille des image sa dût être réduite à cause de problème de mémoire ce qui cause un flou assez moche. Malgrès tout, l'alignement des images est bon.

Points d'intérêts des images (comparer les images gauches et droites)

Série 3

Commentaires: Puisque les images ont été traité en boucle dans le sens horaire, la première image et la dernière image sont très mal alignées, même si chaque paire d'image sont bien aligné entre elles. Probablement que le centre de projection a changé durant la prise d'images. L,alignement pourrait probablement être mieux en utilisant l'information des autres images voisines, mais le resultat, omis le flou (réduction de la taille des images) est correcte.

Points d'intérêts des images (comparer les images gauches et droites)

Partie 3: Vos images

Série 1

Commentaires: On constate que la fusion d'image a trés bien fonctionnée pour ce jeu d'images. L'uniformité de l'éclairage ainsi que son abondance aide à rendre le moyennage performant. Par contre, on constate le flou dans les arbres, probablement causé par le tremblement du photographe dût au froid extérieur.

Série 2

Commentaires: On note un problème de fusion entre les images à cause mode automatique du «white balancing» de mon appareil photo. Aucune façon pour le désactiver n'a été trouvé malheureusement. Le centre de projection semble également être différent pour l'image au centre puisqu'aucun trepied n'a été utilisé (mains très stable... not).

Série 3

Commentaires: Malheureusement, le chat peu collaboratif a bougé sa tête lors de la dernière prise de photo. On constate donc une image fantôme de tête de chat... Comme punition, il fut privé de gaterie temptation. La faible variation de rotation fait en sorte que la fusion des images est très bien.