TD - Étalonnage de caméra

Dans ce TD, il s'agit principalement d'écrire un programme simple d'étalonnage d'une caméra. Le programme utilisera des fonctions de la bibliothèque Numerical Recipes.
 

Génération des données

Pour pouvoir étudier la qualité de l'algorithme écrit, il est nécessaire de travailler á partir de données synthétiques.
Pour obtenir celles-ci, on commence par générer des données 3D aléatoires dans le cube [-510,512]x[-510,512]x[200,300].
On projette ces points sur une caméra dont le centre est à l'origine et le plan de projection est le carré [-255,256]x[-255,256]x100.
On peut alors simuler le bruit qui affecte les données en ajoutant au points 3D un bruit gaussien de variance 1 ou 2 (cf. fonction gasdev),
et en ajoutant aux points 2D un bruit gaussien de variance 1 et en discrétisant ces points. Le bruit gaussien est optionnel, la discrétisation obligatoire.

Étalonnage simple

On écrit les équations d'étalonnage sous forme matricielle, et on résout en utilisant la décomposition en valeurs singulières (cf. fonction svdcmp).
On peut alors comparer la matrice calculée avec la matrice de départ, et ce en fonction de divers paramètres : nombre de points
utilisés, bruit ajouté aux données.
 

Pour aller plus loin

Tout d'abord, on peut décomposer la matrice de projection obtenue pour calculer les paramètres extrinsèques et intrinsèques, et étudier la stabilité de ces paramètres.

Ensuite, on peut chercher à affiner l'étalonnage en utilisant une méthode non linéaire d'optimisation (cf. fonction mrqmin).


URL: http://www.enseignement.polytechnique.fr/profs/informatique/Patrick.Gros/majeure_00-01/td_3.html
Dernière mise à jour : 13/02/2001


Pour toutes suggestions, commentaires ou remarques, email : Patrick.Gros@irisa.fr