TP2: Calibration de caméra

Début

vendredi le 29 février 2008.

Remise

mardi le 21 mars 2008.

Partie 1 : Calibration avec un objet 3D

Vous devez calibrer la caméra pour différents modèles

  • perspective et décomposition par la méthode directe
  • perspective et décomposition par la méthode indirecte
  • affine

Calculez la matrice M à partir des quatre ensembles de points donnés plus bas. Les points p1,p2,p3,p4 sont les points 2D et les points q1,q2,q3,q4 sont les points 3D correspondants. Vous devez faire:

  • Pour chaque ensemble de données, présentez la caméra obtenue à l'aide de la fonction "sceneCamera", ainsi que les points 3D.
  • Expliquez pourquoi vous pensez que la camera est perspective ou affine.
  • Pour chaque méthode (1,2,3) et chaque ensemble de points (1,2,3,4), calculez l´erreur de reprojection. Presentez les les erreurs dans un tableau.
  • Voyez si vous pouvez faire certaines hypothèses sur les paramètres internes (ex fx = fy) et voyez si cela est raisonnable en vous basant sur l'erreur de reprojection.
  • Expliquez brièvement les différences (si il y en a) entre les résultats obtenus pour les trois méthodes de calibration et aussi entre les 4 ensembles de points.

Pour l'affichage, vous pouvez supposer que:

  • Les images sont toujours de taille 256x256.
  • Le centre de l'image est toujours (128,128).
  • attention: La distance focale peut varier d'une caméra à l'autre.
Utilisez afficheCam.nb pour afficher vos cameras.

Il n'y a pas d'erreurs de correspondance.

Les données sont dans calib3DData.nb

Partie 2 : Calibration par plans

Description

Plusieurs photos sont prisent d'un même plan de calibration, sous des angles différents. Les paramètres internes de la caméra ne changent pas entre les vues. Seuls la rotation et la translation changent.

Voici les images:
0.pgm
data/calibdata0
1.pgm
data/calibdata1
2.pgm
data/calibdata2
3.pgm
data/calibdata3
4.pgm
data/calibdata4
5.pgm
data/calibdata5
6.pgm
data/calibdata6

Les fichiers de données (dans data/) contiennent les points mis en correspondance. Vous n'avez donc pas à les trouver vous-même. Les deux premiers points sont les coordonnées (x,y) du point en pixel dans l'image, et les deux suivants sont les coordonnées (x,y) en centimètres sur le plan de calibration. Par exemple, pour l'image 0, la première paire de points est (91.022861, 243.270896) dans l'image et ( -6.3, 6.3 ) sur le plan de calibration.

Vous pouvez utiliser le notebook calibPlanData.nb pour lire les données.

Vous devez...

  • Trouver les 7 homographies H0, H1, ..., H6 reliant les 7 images avec le plan de calibration c. Utilisez les points fournis et la méthode linéaire (comme dans la Tp1).
  • Calculez l'erreur de reprojection.
  • Utlisez l'image de la conique absolue ω pour récupérer les paramètres internes (matrice K).
  • Pour chaque image, récupérez la rotation R et translation T.
  • Illustrez graphiquement le plan de calibration dans le monde et les 7 caméras ensembles (comme dans la première partie). Seul le plan (avec des points dessus) et les caméras sans les points images sont requis.

À remettre

  • Notebook mathematica contenant tout le code, les résulats, et la discusion.