Le programme utilise deux scripts: main_01_manuel_tf.m pour créer un panorama et main_02_manually_set_pts.m pour sélectionner les points utilisés. Les étapes pour réaliser un panorama avec des points manuelles sont les suivantes:
Puisque les images ne sont pas parfaitement aligné, on peut voir du "ghosting" et du flou où les images sont superposées. Les images ne sont pas parfaitement aligné à cause du choix des points, du fait que chaque photo ne partage pas exactement le même point de projection, puisque le photographe a dû légèrement déplacer la caméra.
Pour la première image, le résultat est acceptable, les parties les moins flous de l'image centrale sont ceux où des points ont été placé (garde et batiment au loin). Les objets comme le haut du lampadaire et le sac à dos sont flous à cause qu'il ne comporte aucun point.
Pour la seconde image, le résultat est très flou. Les points choisies sont presque tous en arrière-plan. Cela entraine que les arbres et la neige en premier-plan sont très flou. Les objets en arrière-plan ont été utilisé comme point parce qu'ils avaient des coins clairs et visibles.
Pour la troisième image, le résultat est aussi très flou.
Images avec points appariés manuellement Cliquez pour agrandir |
Résultat Cliquez pour agrandir |
---|---|
|
|
|
|
|
L'algorithme d'appariement automatique est capable de créer un panorama à partir d'un ensemble d'image non-ordonné, dont certaines images forment un panorama ensemble. Il est suggéré de spécifie qu'elle image est l'image fixe, puisque prendre la mauvaise image fixe entraine un panorama avec une taille gigantesque. Voici les étapes de l'algorithme avec une image fixe sélectionné, une description de l'algorithme lorsque ceci n'est pas le cas est présentée plus bas.
Pas assez de match entre les images | Assez de match avec l'image fixe |
---|---|
Le panorama du Golden-Gate est le meilleur résultat du ce travail pratique. Le subjet est très éloigné, les images sont très entrelacé et le subjet à beaucoup de coins. Cela donne une image très peu flou et majestueuse. On peut observé qu'un bateau à passer en dessous du pont pendant que le photographe prenait ses photos, puisqu'il est en partie transparent.
La deuxième image est un parfait exemple de pourquoi il ne faut pas s'approché de 180 degré de champs de vue avec ce genre de projection. La dernière image de droite est très étiré puisqu'elle a été prise à un fort angle par rapport à l'image à l'autre extrémité.
La troisième image a aussi une forte déformation, mais fans son cas cela est dans le bas de l'image. Comme tous les panoramas de ce travail pratique, il y a la présence de "ghosting" aux points où les images sont superposées.
Images avec points appariés automatiquement | Résultat Cliquez pour agrandir |
---|---|
|
|
|
|
|
Dans le premier panorama, on peut voir que la dernière photo a été exposé à d'avantage de lumière comparé aux autres. Il serait possible de réglé ce problème avec un peu de white balance. Les images sont à plus faible résolution que les images fournient pour le travail pratique, cela entraine un panorama moins flou que les autres.
Le deuxième panorama est beaucoup plus flou que le précédent. Il y a plus de photos prisent pour ce panorama, ce qui entraine plus de ghosting. On peut voir que entre les images, la voiture et les piétons se sont déplacé. Voilà pourquoi ils sont flous.
Images originales Cliquez pour agrandir |
Panorama Cliquez pour agrandir |
---|---|
|
|
|
Une transformation cyclindrique est définie par les équations suivantes (source):
Où (x,y) est la position d'un pixel sur l'image non-déformé et (x',y') est position en pixel de l'image ayant une projection cylindrique. f est la focal en pixel de l'image et (cx,cy) est le centre de l'image. s est un facteur d'échelle, pour avoir une hauteur d'image égale à la hauteur de l'image d'origine, nous utilisons s=f.
Pour trouver la focale de l'image, on extrait la focal en mm de l'entête de l'image et on trouve la largeur du capteur CCD de la camera sur le site du frabriquant (l'entête donne la mauvaise valeur =>1639 pouces!). La focale en pixel correspond à (focal en pixel) = (width)x(focal en mm)/(largeur du capteur CCD). Dans notre cas, la largeur du capteur CCD de la Canon PowerShot SX50 HS était de 6.16mm.
L'image suivante montre l'effet de la transformation sur l'image:
Pour mettre les images ensemblent, il faut trouver la translation entre ceuxi-ci. Pour ce faire, on fait comme à l'étape 1 à 4 de l'appatriment automatique. Pour trouver les coins avec Harris, il faut d'abord redimensionner la taille de l'image par 4, puisque les images du dataset sont très bruitées. Sans cela tous les pixels de l'image sont détectés comme coin.
Pour l'étape de Ransac 2 points sont utilisé au lieu de 4 pour trouver la transformation. Cette étape est très peu stable, puisque la translation des coins n'est pas linéaire s'ils sont aux bordure de l'image.
Pour fusionner les images ensemble, une moyenne pondérée des pixels aux croissements des images est fait.
Le résultat des deux panoramas est super flou, il y a du ghosting partout. Puisque, la translation des points de l'image n'est pas linéaire des fois les coins en avant plan sont utilisés d'autre fois les coins en arrière plan sont utilisés. Cela créer des zones plus flou que d'autre. Pour ce genre de panorama, il est préférable de ne pas avoir de moyenne pondéré.
Avec le panorama coupé, l'image est nette, mais d'importantes discontinuités sont visibles.
Panorama moyenne pondéré Cliquez pour agrandir |
Panorama coupé Cliquez pour agrandir |
---|---|
L'algorithme de matching supporte la détection automatique. Pour ce faire, le même algorithme que vu dans la partie de l'appariement automatique est utilisé. La différence est que l'image doit être détecté automatiquement au lieu d'être choisi par l'utilisateur. Pour trouver l'image fixe, on créer une matrice du nombre de points matcher entre chaque images. L'image ayant le plus grand nombre d'images qu'elle entrelace est désignée comme image fixe. Deux images sont considérés entrelacé, s'il y a un minimum de point en commun entre les deux images, par défaut 35 points en commun sont nécessaire.
Toutes les autres étapes restent pareil que dans la partie d'appariement automatique. Je n'ai pas vraiment de résultats à présenter, puisqu'il n'y a pas vraiment de différence en ses résultats et ceux de la partie d'appariement automatique.
Le défaut de cette algorithme est qu'il ne va choisir une image fixe qui est centrale, cela peut entrainer des panoramas très déformé.