620 likes | 751 Views
Introduction à la vision artificielle Deuxième partie Étalonnage géométrique de la caméra et du système. Patrick Hébert Génie électrique et génie informatique Université Laval *collaboration Éric Samson (Revisitée par A. Bendada en 2011 et 2012 et D. Laurendeau en 2014).
E N D
Introduction à la vision artificielle Deuxième partieÉtalonnage géométrique de la caméra et du système Patrick Hébert Génie électrique et génie informatique Université Laval *collaboration Éric Samson (Revisitée par A. Bendada en 2011 et 2012 et D. Laurendeau en 2014) Design III / GEL-3004
Structure du cours • Le cours d'introduction à la vision couvre en particulier 2 étapes du processus de vision qui sont nécessaires à l'atteinte de ces objectifs : • Reconnaître les objets dans les images Traitement des images (première partie) • Calculer la position des objets par rapport au robot et celle du robot dans l’environnementÉtalonnage géométrique de la caméra et du système (deuxième partie) Design III / GEL-21405 H05
Calcul de position : un aperçu L'objectif est de connaître la position d'un objet dans l'espace à partir de sa position dans l'image Points Modèle de Points 3D image caméra Paramètres du modèle • L'étalonnage sert à déterminer les paramètres du modèle. Il est réalisé une seule fois. Étalonnage Design III / GEL-3004
Plan de la présentation • Notions de base • Formation des images • Modèle du sténopé (pinhole) • Coordonnées homogènes et transformations • Changements de repère • Étalonnage d'une caméra • Modèle utilisé • Procédure • Utilisation des paramètres • Calcul de la position des objets • Calcul de la position du robot Design III / GEL-3004
Formation des images film scène Placer un film en face d’un objet. Design III / GEL-3004
barrière Formation des images Camérasténopé (“pinhole”) film scène • Ajouter une barrière pour bloquer la plupart des rayons. • Cela réduit le flou • L’image est inversée Design III / GEL-3004
Formation des images film scène lentille Unelentillefocalise la lumièresur le film. Design III / GEL-3004
Formation des images Sténopé Caméra réelle • Le modèle du sténopé demeure valide pour les calculs. Design III / GEL-3004
Modèle du sténopé Centre de Axe optique F Pointprincipal projection Inverseur O Z C P = (X,Y,Z)T Point objet Plan image Y Axe optique F d Non-Inverseur Z d O C Centre de P = (X,Y,Z)T Point objet projection Plan image Y Design III / GEL-3004
Modèle Sténopé : Projection de perspective Plan image Axe optique F Z O C Centre de T P' = (X ',Y',Z') projection T P = (X,Y,Z) Y YF On a : = Y ' Prévoir lescoordonnées imagesd'un point 3D connudans le repère de lacaméra. Z XF De même en X : = X ' Z = Z ' F Design III / GEL-3004
Modèle Sténopé : Projection de perspective • Équation du rayon projecteur étant donné un point image • Il nous faut introduire les notions pour traiter les points qui sont ou seront connus dans un repère autre que celui de la caméra. Design III / GEL-3004
Plan de la présentation • Notions de base • Formation des images • Modèle du sténopé (pinhole) • Coordonnées homogènes et transformations • Changements de repère • Étalonnage d'une caméra • Modèle utilisé • Procédure • Utilisation des paramètres • Calcul de la position des objets • Calcul de la position du robot Design III / GEL-3004
Coordonnées homogènes • Représentation mathématique permettant de rendre linéaires (calcul matriciel) certaines opérations courantes en vision, robotique et infographie. Simplifie aussi l’écriture des transformations composées. Par exemple : Une translation de la forme correspond à la multiplication matricielle : Design III / GEL-3004
Coordonnées homogènes : Utilisation • On passe des coord. cartésiennes aux coord. homogènes en ajoutant un "1" comme 4e élément au vecteur. • On effectue les opérations (définies par une matrice 4x4). • On revient aux coordonnées cartésiennes en divisant tous les éléments du vecteur résultant par W. Design III / GEL-3004
Coordonnées homogènes : Transformations d’intérêt pour le projet • Projection • Rotation • Translation • Changement d'échelle Design III / GEL-3004
Coordonnées homogènes : Transformations courantes • Projection de perspective (selon l'axe Z) Exemple : Projection d'un point P = (X,Y,Z)T Retour aux coordonnées cartésiennes Design III / GEL-3004
Coordonnées homogènes : Transformations courantes • Projection de perspective (selon l'axe Z) • La troisième ligne est sans intérêt puisque Z’ = F. • On peut alors représenter la projection dans une image par une matrice 3x4 • On normalise tout comme dans le cas précédent Design III / GEL-3004
Coordonnées homogènes : Transformations d’intérêt • Rotation Design III / GEL-3004
Coordonnées homogènes : Transformations d’intérêt • Translation • Changement d'échelle ("scaling") Design III / GEL-3004
Coordonnées homogènes : Combiner les transformations • Soit E1, E2, …, EN, N transformations à appliquer, dans l'ordre, au point P dans le même repère de coordonnées. • On procède alors comme suit : • Ceci peut être réécrit : où • On parle ici de pré-multiplication des matrices de rotation Design III / GEL-3004
Plan de la présentation • Notions de base • Fonctionnement d'une caméra • Formation des images • Modèle pinhole • Coordonnées homogènes et transformées • Changements de repère • Étalonnage d'une caméra • Modèle utilisé • Procédure • Utilisation des paramètres • Calcul de la position des objets • Calcul de la position du robot Design III / GEL-3004
Mise en contexte Rc Robot RG RP RC : repère de la caméra RP : repère du préhenseur RG : repère global Design III / GEL-3004
Changements de repère Transformations rigides Combinaison d'une translation et d'une rotation Préservation des distances et des angles Coordonnées homogènes : Changements de repère Que devient un point P, connu dans O2, vu de O1? Design III / GEL-3004
Coordonnées homogènes : Changements de repère Que devient un point P, connu dans O2, vu de O1? Design III / GEL-3004
Coordonnées homogènes : Changements de repère 2 définitions pour une même matrice 1 - Donne la position du repère 2 par rapport au repère 1 2 - Permet de transformer les coordonnées d'un point exprimées dans le repère 2 en coord. exprimées dans le repère 1 À noter : Transformation inverse Design III / GEL-3004
Plan de la présentation • Notions de base • Fonctionnement d'une caméra • Formation des images • Modèle pinhole • Coordonnées homogènes et transformées • Changements de repère • Étalonnage d'une caméra • Modèle utilisé • Procédure • Utilisation des paramètres • Calcul de la position des objets • Calcul de la position du robot Design III / GEL-3004
Étalonnage d'une caméra • On veut connaître la relation ("Mapping") entre les points de l'espace (3D, en millimètres) et leur position dans l'image (2D, en pixels). • On utilise un modèle simple (mais efficace) pour décrire le processus d'acquisition d'image : point image (en pixel) Paramètres intrinsèques Paramètres extrinsèques point 3D (en mm) • L'étalonnage consiste à déterminer les paramètres de ce modèle Design III / GEL-3004
Centre de Centre du O I u projection plan image O G v XG ZG O c (u ,v ) 0 0 YG X Z p=(u ,v ) Axe optique Y Plan image P=(XG,YG,ZG) Étalonnage d'une caméra :Explication du modèle K Le modèle provient de la formule suivante : (si g = 0) point image point 3D extrinsèques intrinsèques Design III / GEL-3004
Centre de Centre du O I u projection plan image O G E v CG XG ZG O c (u ,v ) 0 0 YG X Z Axe optique Y Plan image P=(X,Y,Z) Calibrage d'une caméra :Explication du modèle 1 – Changement de repère Global vers Caméra Design III / GEL-3004
Centre de Centre du O I u projection plan image O G v XG ZG O c (u ,v ) 0 0 YG X Z Axe optique Y Plan image P=(X,Y,Z) Calibrage d'une caméra :Explication du modèle 2 – Projection Pt 3D vers Plan image p=(X’,Y’,F) Design III / GEL-3004
Centre de Centre du O I u projection plan image O G v XG ZG O c (u ,v ) 0 0 YG X Z Axe optique Y Plan image P=(X,Y,Z) Calibrage d'une caméra :Explication du modèle 2 – Projection Pt 3D vers Plan image p=(X’,Y’) Design III / GEL-3004
Centre de Centre du O I u projection plan image O G v XG ZG O c (u ,v ) 0 0 YG X Z Axe optique Y Plan image P=(X,Y,Z) Calibrage d'une caméra :Explication du modèle 3 – Mise à l'échelle du plan image, m vers pixel p=(sx X’, sy Y’) Design III / GEL-3004
Centre de Centre du O I u projection plan image O G v XG ZG O c (u ,v ) 0 0 YG X Z Axe optique Y Plan image P=(X,Y,Z) Calibrage d'une caméra :Explication du modèle 4 – Changement de repère OCvers OI (on suppose g = 0) p=(u,v) Design III / GEL-3004
Calibrage d'une caméra :Explication du modèle On multiplie les matrices T, S et Pr pour obtenir la matrice des paramètres intrinsèques : Le modèle complet est alors : La matrice des paramètres intrinsèques possède une ligne et une colonne de "0". Ceci nous permet de réécrire le modèle de façon plus compacte : avec : Design III / GEL-3004
Équation du rayon projecteur On connait (u, v) et on connait les paramètres de la caméra ; on veut en déduire l’équation de la droite projectrice. Design III / GEL-3004
La distorsion radiale… Problème relié à l'utilisation d'une lentille : LA DISTORSION • La distorsion n’affecte pas la qualité de l’image • mais modifie la position de chaque point. • Les déviations sont plus accentuées pour les rayons • lumineux qui passent sur les bords des lentilles. Distorsion en coussinet Distorsion en barillet Système sans distorsion Design III / GEL-3004
La distorsion radiale • Le modèle présenté suppose une projection idéale (un sténopé). Or, il y a de la distorsion. • Principalement de type radial • Nulle au centre et maximale en périphérie Modèle de distorsion radiale • Les paramètres du modèle de distorsion sont classés parmi les paramètres intrinsèques de la caméra. Design III / GEL-3004
Plan de la présentation • Notions de base • Fonctionnement d'une caméra • Formation des images • Modèle pinhole • Coordonnées homogènes et transformées • Changements de repère • Étalonnage d'une caméra • Modèle utilisé • Procédure • Utilisation des paramètres • Calcul de la position des objets • Calcul de la position du robot Design III / GEL-3004
Étalonnage d'une caméra :Procédure (principe général) • Placer une cible d'étalonnage devant la caméra • Repérer la position de chaque marqueur de la cible dans l'image • On obtient une liste de coordonnées 3D (Global) accompagnées de leur projection dans l'image Design III / GEL-3004
Étalonnage d'une caméra :Procédure (idée générale) • Placer une cible d'étalonnage devant la caméra • Repérer la position de chaque marqueur de la cible dans l'image • On obtient une liste de coordonnées 3D (global) accompagnées de leur projection dans l'image • Chaque pt nous donne 2 équations de plans et on a 11 inconnues (5 intr. + 6 extr. car il y a des contraintes sur R) • On construit un système d'équations linéaires qu'on peut résoudre à l'aide des techniques d'algèbre linéaire standards (moindre carrés) mij • On extrait, s’il y a lieu, les paramètres explicites a, b, tx … Design III / GEL-3004
Étalonnage d'une caméra :Notes sur les techniques d'étalonnage (1/2) • Il existe plusieurs techniques d'étalonnage • Zhang, Tsai, Heikkilä, Faugeras, etc. • Le type de cible et le modèle de la caméra utilisé changent • Le système d'équations à résoudre diffère en fonction de ces variantes • L'idée est toujours la même : trouver les paramètres permettant de faire le "mapping" entre les points de l'espace et leurs positions dans l'image. Design III / GEL-3004
Étalonnage d'une caméra :Notes sur les techniques d'étalonnage (2/2) • Prise en compte de la distorsion des lentilles • La plupart des techniques incluent des paramètres de distorsion dans leur modèle. • L'ajout de ces paramètres rend le système à résoudre non-linéaire. • On procède alors en 2 étapes : • En supposant la distorsion nulle, on résout le système linéaire. • Partant de cette estimation initiale, on détermine les paramètres de distorsion à l'aide de techniques d'optimisation non-linéaires. Design III / GEL-3004
Méthodes d’étalonnage géométrique avec code disponible sur internet • Zhengyou Zhang (Microsoft research) http://research.microsoft.com/~zhang/ • JanneHeikkila (Oulu Univ.) http://www.ee.oulu.fi/~jth/calibr/ • R. Tsai http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/user/rgw/www/TsaiCode.html • Lien potentiellement intéressant (voir premier lien sur OpenCV): http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/links.html Design III / GEL-3004
Étalonnage de votre caméra : Méthode de Zhang • Simple, robuste et précise • Utilise une cible plane • Nécessite au moins trois prises de vue (non coplanaires) • Prend en compte la distorsion des lentilles Ou celle disponible dans OpenCV • Voir diapositives sur OpenCV Design III / GEL-3004
Plan de la présentation • Notions de base • Fonctionnement d'une caméra • Formation des images • Modèle pinhole • Coordonnées homogènes et transformées • Changements de repère • Étalonnage d'une caméra • Modèle utilisé • Procédure • Utilisation des paramètres • Calcul de la position des objets • Calcul de la position du robot Design III / GEL-3004
Étalonnage de votre caméra :Utilisation des paramètres obtenus • L'application de la procédure fournit les paramètres intrinsèques et extrinsèques de votre caméra. • Le référentiel Global (ou World) se trouve sur le coin supérieur gauche de la cible placée sur le sol. • Les paramètres extrinsèques donnent donc la position de la cible sur le sol par rapport à la caméra. • Lorsque le robot bouge, c'est comme si la cible se déplaçait avec lui (la position de la cible est donnée p/r à la caméra et non p/r à un référentiel absolu). Design III / GEL-3004
O C Z Y O G T P = (X,Y,Z) Étalonnage de votre caméra :Utilisation des paramètres : Calcul des points 3D • On désire calculer la position d'un objet dans l'espace à partir de sa position dans l'image • Problème : L'opération de projection effectuée par la caméra engendre une perte d'information : • 1point dans l'image implique 1 droite dans l'espace (projecteur). • Solution : Dans votre cas, la caméra pointe vers le sol et on connaît la position du sol (grâce au repère de la cible placé sur le sol, doncz = 0). • On peut donc déterminer la position de tout objet se trouvant sur le sol en calculant l'intersection d'une droite (projecteur) et d'un plan (sol). Design III / GEL-3004
O C Z Y O G T P = (X,Y,Z) Étalonnage de votre caméra :Utilisation des paramètres : Calcul des points 3D Étape 1 : Déterminer le projecteur à partir du modèle Modèle complet Modèle simplifié Design III / GEL-3004
Plan 1: Plan 2: Étalonnage de votre caméra :Utilisation des paramètres : Calcul des points 3D Étape 1 : Déterminer le projecteur à partir du modèle ; avec 2 Équations de plan ! Design III / GEL-3004
Étalonnage de votre caméra :Utilisation des paramètres : Calcul des points 3D Étape 1 : Déterminer le projecteur à partir du modèle • Le projecteur correspond à l'intersection des deux plans Étape 2 : Le point 3D se trouve à l'intersection entre le projecteur et le sol (plan ZG=0) Le point 3D se trouve donc à l'intersection de trois plans Design III / GEL-3004