60
Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Embed Size (px)

Citation preview

Page 1: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Panoramas, etcetera

GIF-4105/7105 Photographie AlgorithmiqueJean-François Lalonde

Merci à A. Efros, R. Szeliski, S. Seitz!

© Jerome Boccond-Gibod, Flickr

Page 2: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Retour sur les TPs!

Page 3: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

TP1: meilleur projet

Razieh Toony!

http://vision.gel.ulaval.ca/~jflalonde/cours/pa14/tps/results/tp1/raziehtoony/index.html

Page 4: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

TP1 mention honorable: Tom Toulouse

Page 5: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

TP2: meilleur projet

Tom Toulouse!

http://vision.gel.ulaval.ca/~jflalonde/cours/pa14/tps/results/tp2/tomtoulouse/index.html

Page 6: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

TP2 mention honorable: Razieh Toony

http://vision.gel.ulaval.ca/~jflalonde/cours/pa14/tps/results/tp2/raziehtoony/image/4.gif

Page 7: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

TP2 mention honorable: Razieh Toony

Page 8: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

TP3: meilleur projet

Ming Hou!

http://vision.gel.ulaval.ca/~jflalonde/cours/pa14/tps/results/tp3/minghou/index.html

Page 9: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

TP3 mention honorable: Jingwei Cao

http://vision.gel.ulaval.ca/~jflalonde/cours/pa14/tps/results/tp3/jingweicao/images/04-01morphing.gif

http://vision.gel.ulaval.ca/~jflalonde/cours/pa14/tps/results/tp3/jingweicao/images/04-01field_morphing.gif

Avec triangulation:

Sans triangulation:

Page 10: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Homographies• Transformation entre deux caméras

ayant le même centre de projection

• transformation entre deux plans (quadrilatères)

• on perd le parallélisme

• mais les droites sont préservées

PP2

PP1

Page 11: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Homographies

• Pour appliquer une homographie H

• Calculer p’ = Hp (en coordonnées homogènes)

• Convertir p’ en coordonnées dans l’image

PP2

PP1

Page 12: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Mosaïques de rotation

• Si on sait que notre centre de projection reste le même

• est-ce qu’on peut contraindre H?

Page 13: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

3D → 2D Projection de perspective

(Xc,Yc,Zc)

f

K

Page 14: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Rotation 3D1.Projeter de l’image vers le point 3D(x0,y0,z0) = (u0-uc,v0-vc,f)

•Appliquer la rotation(x1,y1,z1) = R01 (x0,y0,z0)

1.Reprojeter dans la nouvelle image(u1,v1) = (fx1/z1+uc,fy1/z1+vc)

Alors

Notre homographie a alors :3 DDL si la distance focale est connue4 si elle est la même (et inconnue)5 si elles sont différentes

(u,v,f)(x,y,z)

f(x,y,z)

(u,v,f)

R

Page 15: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Rotation autour de l’axe vertical

• Si notre caméra est sur un trépied

• Quelle est la structure de H?

Page 16: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Projection sur un plan?

plan virtuel

Page 17: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Panoramas complets• Comment générer des panoramas 360°?

Cylindre de projection!

Page 18: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Projection cylindrique• Projeter point 3D (X,Y,Z) sur le cylindre

X

Y

Z

cylindre unitaire

cylindre déroulé

• Convertir en coordonnées cylindriques

image cylindrique

• Convertir en coordonnées image (cylindre)

Page 19: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Projection cylindrique

Y

X

Page 20: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Projection cylindrique inverse

X

Y

Z

(X,Y,Z)

(sinθ,h,cosθ)

Page 21: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Panoramas cylindriques

• Étapes (si l’on connaît les rotations)

• Reprojeter les images sur un cylindre

• Composer les images

Page 22: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Panoramas cylindriques

• Si l’on ne connaît pas la matrice de rotation?

• Il faut la trouver…

• Rotation de la caméra = translation du cylindre!

Page 23: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Créer le panorama• Aligner les paires ensemble, composer, et

rogner

Page 24: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Problème: dérive

• Erreur verticale

• calculer la correction de telle sorte que la somme = 0

• Erreur horizontale

• ré-utiliser la première (ou dernière) image

Page 25: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Re-projection cylindrique

f = 180 (pixels)

f = 380

f = 280

Image 384x300

vue de haut Le secret est dans la … distance focale

Page 26: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Panorama 360°

Page 27: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Notre amie la focale• La distance focale dépend de la caméra:

• On peut l’estimer:

• à partir du champ de vue

• de l’information dans l’EXIF (peut être imprécis)

• en essayant plusieurs valeurs et garder celle qui aligne le panorama

• en utilisant un objet 3D dont on connaît les dimensions

• Etc.

• Il y a d’autres paramètres!

• Centre optique, ratio des pixels, distorsions, etc.

Page 28: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Distorsion radiale

• straight lines curve around the image center

Page 29: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Distorsion radiale

• Causée par lentilles imparfaites

• Encore une fois, plus important en bordure de l’image

Pas de distorsion

“Pin cushion”

“Barrel”

Page 30: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Estimer les paramètres de la caméra?

Intrinsèques

Extrinsèques

• Déterminer les paramètres de la caméra à partir d’objets 3D connus

Page 31: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Calculer matrice de projection• Placer un objet connu devant la caméra

• déterminer correspondances entre points 3D et dans la caméra

• calculer la transformation entre la scène et l’image

Page 32: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Calibrage linéaire• Résoudre en minimisant la somme des différences au

carré (comme dans le TP)

• Avantages:

• Une seule matrice!

• Désavantages:

• On ne connaît pas la valeur des paramètres indépendamment

• Mélange paramètres intrinsèques et extrinsèques

• dépend de la pose: si on déplace la caméra, ça ne fonctionne plus!

Page 33: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Estimer les paramètres de la caméra

http://www.vision.caltech.edu/bouguetj/calib_doc/

Page 34: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Estimer les paramètres de la caméra

http://www.vision.caltech.edu/bouguetj/calib_doc/

Page 35: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Estimer les paramètres de la caméra

http://www.vision.caltech.edu/bouguetj/calib_doc/

Page 36: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Estimer les paramètres de la caméra

http://www.vision.caltech.edu/bouguetj/calib_doc/

Page 37: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Projection sphérique

sphère déroulée

• Convertir en coordonnées sphériques

image sphérique

• Convertir en coordonnées images

X

Y

Z

• Projeter point 3D (X,Y,Z) sur la sphère

φ

Page 38: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Projection sphérique

Y

X

Page 39: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Projection sphérique inverse

X

Y

Z

(x,y,z)

(sinθcosφ,cosθcosφ,sinφ)

cos φ

φ

cos θ cos φ

sin φ

Page 40: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Panorama complet

++

++

++

++

Page 41: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Autres projections

Page 42: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Autres projections

Page 43: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Demo!

• Hugin

• http://hugin.sourceforge.net

Page 44: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Exemple: Reconnaître des panoramasM. Brown et D. Lowe,

University of British Columbia

Page 45: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Pourquoi?• Rotations 1D (θ)

• Ordre des images = l’ordre des rotations

Page 46: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Pourquoi?• Rotations 1D (θ)

• Ordre des images = l’ordre des rotations

Page 47: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Pourquoi?• Rotations 1D (θ)

• Ordre des images = l’ordre des rotations

• Rotations 2D (θ)

• Ordre des images ≠ l’ordre des rotations

Page 48: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Pourquoi?• Rotations 1D (θ)

• Ordre des images = l’ordre des rotations

• Rotations 2D (θ)

• Ordre des images ≠ l’ordre des rotations

Page 49: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Pourquoi?• Rotations 1D (θ)

• Ordre des images = l’ordre des rotations

• Rotations 2D (θ)

• Ordre des images ≠ l’ordre des rotations

Page 50: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

But

Page 51: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Calculer l’homographie avec RANSAC

Page 52: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Calculer l’homographie avec RANSAC

Page 53: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Calculer l’homographie avec RANSAC

Page 54: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Modèle probabiliste pour vérification

Page 55: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Trouver les panoramas

Page 56: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Trouver les panoramas

Page 57: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Trouver les panoramas

Page 58: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Trouver les panoramas

Page 59: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Résultats

Page 60: Panoramas, etcetera GIF-4105/7105 Photographie Algorithmique Jean-François Lalonde Merci à A. Efros, R. Szeliski, S. Seitz! © Jerome Boccond-Gibod, Flickr

Planification

• TP4: dû dimanche soir, 23h59

• TP5: disponible mercredi

• Mercredi: plage dynamique

• en préparation pour le TP5…