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