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.

Slides:



Advertisements
Présentations similaires
Eléments d'algèbre linéaire
Advertisements

Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
EVALUER UNE ACTION.
Gestion de portefeuille
05/20071 Eléments de base sur les Nuclei dEntrepreneurs et le Développement Organisationnel de leurs Chambres.
Mathématiques au cycle 2
Outils d’analyse statique
La vision stéréo Sonka et al: sections , , , , Suppl: 11.4 au complet
Le diaphragme (photographie)
Angles et distances dans R2
Les exigences de la norme ISO 14001
Chapitre 5 : Image couleur
Géométrie vectorielle
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.
IFT3730: Infographie 3D Transformations Géométriques
Traitements d'images et Vision par ordinateur
Mémoire de Projet de Fin d’Etudes
Concepts avancés en mathématiques et informatique appliquées
Transformations de visualisation en OpenGL
Système de distribution d’eau
Systèmes d’équations linéaires
Chapitre 3bis Applications linéaires et Matrices
SUJETS SPÉCIAUX EN INFORMATIQUE I PIF Contenu du cours Transformations géométriques des objets –Transformations 2D –Transformations entre systèmes.
Rappel... Solution itérative de systèmes linéaires (suite et fin).
Systeme de Combat Commun Barracuda SNLE-NG4
L’enseignement de la chimie au 21ème siècle
La droite dans R2 Montage préparé par : André Ross
Mais en mathématiques, qu'est ce qu'une ligne de niveau?
Modélisation du robot Azimut-3
Courbes de Hermite Michael E. Mortenson, Geometric Modeling. Wiley, 1997, 523p.
Visualisation de surfaces décrites analytiquement
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Traitement des Images II
Design dun système de vision embarqué. Application:
SUJETS SPÉCIAUX EN INFORMATIQUE I
SUJETS SPÉCIAUX EN INFORMATIQUE I
Chapitre 3 La cinématique à une dimension
Interprétation automatique
Thierry Molinier > David Fofi >
Rappel... Matrices bloc. Décomposition des matrices:
Système de coordonnées
© Jerome Boccond-Gibod, Flickr
Principes de tarification de base
IFT3355: Infographie Transformations Géométriques
Transformations linéaires et sous-espaces associés
Sous-espaces vectoriels engendrés
Modélisation géométrique de base
Michèle Bodino - 24/03/20071 Approche de l’écriture D’après le fichier De la trace à l’écriture – CRDP Académie de Créteil
Cours du 25 octobre Mardi le 24 octobre
La décomposition en valeurs singulières: un outil fort utile
Géométrie épipolaire (deux vues)
Création et présentation d’un tableau avec Word 2007
École La Dauversière, Montréal, juin 2000
De la RSE au SMI Les référentiels du SMI Le processus de Certification
Programmation linéaire en nombres entiers
Présentation du marché obligataire
Institut de sciences et technologies Département d’informatique
Résolution d’un problème de diffusion 3D
La caméra:modèle d'acquisition
Les bases de la modélisation Primitives simples et CSG.
1 Déformation Bi-manuelle en Réalité Virtuelle Encadrants : Antonio Capobianco, Jérôme Grosjean Étudiants : Michaël Kolomytzeff, Manuel Veit.
CHAPITRE III Calcul vectoriel
7.4 VECTEURS PROPRES Cours 22. Au dernier cours nous avons vus ✓ Les cisaillements ✓ Les projections orthogonales ✓ Les projections obliques.
2.1.7 Modèle Géométrique Direct Forward Kinematics
Couche limite atmosphérique
Equipe synthèse d ’images et réalité virtuelle IRIT-UPS Toulouse Surfaces implicites Les différents modèles analytiques.
Post-optimisation, analyse de sensibilité et paramétrage
Géométrie et communication graphique
Pierre Joli Cours de Mathématique Pierre Joli
Transcription de la présentation:

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 A 2007 Design III / GEL-21405 H06

Le robot utilise la vision pour percevoir l'environnement Mise en contexte Le robot utilise la vision pour percevoir l'environnement A 2007 Design III / GEL-21405 H05

Mise en contexte Qu'est-ce que la caméra permet au robot de faire? Localiser les objets sur le terrain, i.e. évaluer la position relative au robot Évaluer sa position et son orientation sur le terrain (par rapport aux bandes, coins, à la ligne rouge) Localiser les objets. Que fournit la caméra? Des images (d’un certain type) Que faut-il faire avec ces images? Extraire et reconnaître des informations utiles dans les images (traitement des images) les coins et les bandes de couleurs connues (régions et droites) les objets de couleur connue Établir la relation entre la position de ces zones d'intérêt de l'image et l'environnement (le terrain) incluant le robot Magny la relation pixel c mm A 2007 Design III / GEL-21405 H05

Reconnaître les objets dans les images 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 Étalonnage géométrique de la caméra et du système (deuxième partie) À ces deux blocs s’ajouteront quelques considérations sur la robotique et l’intelligence artificielle A 2007 Design III / GEL-21405 H05

RP : repère du préhenseur RG : repère global Mise en contexte Rc Magny RG RP RC : repère de la caméra RP : repère du préhenseur RG : repère global A 2007 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 A 2007 Design III / GEL-21405 H05

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 A 2007 Design III / GEL-21405 H06

Solution : utilisation d'une lentille Formation des images Sténopé (idéal) Caméra réelle Solution : utilisation d'une lentille Problème : quantité de lumière insuffisante A 2007 Design III / GEL-21405 H05

Problèmes reliés à l'utilisation d'une lentille : Formation des images Problèmes reliés à l'utilisation d'une lentille : Aberrations sphériques Distorsion radiale: négative (pincushion) positive (barrel-type) Aberration chromatique : la cause *tirée de Forsyth A 2007 Design III / GEL-21405 H05

Problèmes reliés à l'utilisation d'une lentille : Formation des images Problèmes reliés à l'utilisation d'une lentille : Aberrations sphériques Aberrations chromatiques Distorsion radiale Profondeur de champ limitée A 2007 Design III / GEL-21405 H05

Le modèle du sténopé demeure valide pour les calculs. Formation des images Sténopé (idéal) Caméra réelle Le modèle du sténopé demeure valide pour les calculs. A 2007 Design III / GEL-21405 H05

Modèle du sténopé Inverseur Non-Inverseur Centre de Axe optique F Centre de Axe optique Point principal projection Inverseur O Z C P = (X,Y,Z)T Point objet Plan image Y F Axe optique d Non-Inverseur O Z d C Centre de P = (X,Y,Z)T projection Point objet Y Plan image A 2007 Design III / GEL-21405 H05

Modèle Sténopé : Projection de perspective Plan image Axe optique F O Z C Centre de P' = (X ',Y',Z') T projection Y P = (X,Y,Z) T YF On a :  Y ' = Prévoir les coordonnées images d'un point connu dans le repère de la caméra Z XF De même en X : X ' = Z Z ' = F A 2007 Design III / GEL-21405 H05

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. A 2007 Design III / GEL-21405 H05

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 A 2007 Design III / GEL-21405 H06

Coordonnées homogènes Représentation mathématique permettant de rendre linéaires (calcul matriciel) certaines opérations courantes en vision, robotique et infographie. Par exemple : On ajoute simplement une dimension aux coordonnées  X'=X Y'=Y Z'=Z lorsque W = 1 A 2007 Design III / GEL-21405 H05

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 (à la condition que W≠0). A 2007 Design III / GEL-21405 H05

Coordonnées homogènes : Transformations d’intérêt pour le projet Projection Rotation Translation Changement d'échelle ("scaling") A 2007 Design III / GEL-21405 H05

Coordonnées homogènes : Transformations courantes Projection (selon l'axe Z) * Matrice non-inversible Exemple : Projection d'un point P = (X,Y,Z)T Retour aux coordonnées cartésiennes A 2007 Design III / GEL-21405 H05

Projection dans une image 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 A 2007 Design III / GEL-21405 H05

Coordonnées homogènes : Transformations d’intérêt Rotation A 2007 Design III / GEL-21405 H05

Coordonnées homogènes : Transformations d’intérêt Translation Changement d'échelle ("scaling") A 2007 Design III / GEL-21405 H05

Coordonnées homogènes : Combiner les transformations Soit E1, E2, …, EN, N transformations à appliquer, dans l'ordre, au point P. On procède alors comme suit : Ceci peut être réécrit : où A 2007 Design III / GEL-21405 H05

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 A 2007 Design III / GEL-21405 H06

RP : repère du préhenseur RG : repère global Mise en contexte Rc Magny RG RP RC : repère de la caméra RP : repère du préhenseur RG : repère global A 2007 Design III / GEL-21405 H05

Coordonnées homogènes : Changements de repère Transformations rigides Combinaison d'une translation et d'une rotation Préservation des distances et des angles Que devient un point P, connu dans O2, vu de O1? Transformation rigide : A 2007 Design III / GEL-21405 H05

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 Exemple : À noter : transformation inverse A 2007 Design III / GEL-21405 H05

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 A 2007 Design III / GEL-21405 H06

É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 (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 A 2007 Design III / GEL-21405 H05

Étalonnage d'une caméra : Explication du modèle Le modèle provient de la formule suivante : (si g = 0) point image intrinsèques extrinsèques point 3D Z Y X u v O I c G (u ,v ) p=(u P=(X,Y,Z) Centre de projection Axe optique Centre du plan image Plan image A 2007 Design III / GEL-21405 H05

Calibrage d'une caméra : Explication du modèle 1 – Changement de repère Global  Caméra Z Y X O c G (u ,v ) p=(u P=(X,Y,Z) Centre de projection Axe optique Centre du plan image E CG u v I Plan image A 2007 Design III / GEL-21405 H05

Calibrage d'une caméra : Explication du modèle 2 – Projection Pt 3D  Plan image Z Y X O c G (u ,v ) p=(u P=(X,Y,Z) Centre de projection Axe optique Centre du plan image u v I Plan image A 2007 Design III / GEL-21405 H05

Calibrage d'une caméra : Explication du modèle 3 – Mise à l'échelle du plan image, m  pixel Z Y X u v O I c G (u ,v ) p=(u P=(X,Y,Z) Centre de projection Axe optique Centre du plan image Plan image A 2007 Design III / GEL-21405 H05

Calibrage d'une caméra : Explication du modèle 4 – changement de repère OC  OI (on suppose g = 0) Z Y X u v O I c G (u ,v ) p=(u P=(X,Y,Z) Centre de projection Axe optique Centre du plan image Plan image A 2007 Design III / GEL-21405 H05

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 : A 2007 Design III / GEL-21405 H05

Équation du rayon projecteur Design III / GEL-21405 H05

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 A 2007 Design III / GEL-21405 H05

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 A 2007 Design III / GEL-21405 H06

É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 A 2007 Design III / GEL-21405 H05

É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 6 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 … A 2007 Design III / GEL-21405 H05

É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 leur position dans l'image. A 2007 Design III / GEL-21405 H05

É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 A 2007 Design III / GEL-21405 H05

Méthodes d’étalonnage géométrique avec code disponible sur internet Zhengyou Zhang (Microsoft research) http://research.microsoft.com/~zhang/ Janne Heikkila (Oulu Univ.) http://www.ee.oulu.fi/~jth/calibr/ R. Tsaihttp://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 A 2007 Design III / GEL-21405 H05

Caractéristiques de la technique de Zhang Simple, robuste et précise Étalonnage de votre caméra : méthode de Zhang ou celle disponible dans OpenCV Caractéristiques de la technique de Zhang Simple, robuste et précise Utilise une cible plane Nécessite au moins trois prises de vue (non coplanaires) à cause des paramètres intrinsèques Prend en compte la distorsion des lentilles Procédure à suivre : Procédure d'étalonnage de Zhang A 2007 Design III / GEL-21405 H05

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 A 2007 Design III / GEL-21405 H06

É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). A 2007 Design III / GEL-21405 H05

É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  1 droite dans l'espace (projecteur) Solution : Dans notre 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  z = 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). P = (X,Y,Z) T Y Z O C G A 2007 Design III / GEL-21405 H05

Étape 1 : Déterminer le projecteur à partir du modèle Étalonnage de votre caméra : Utilisation des paramètres : Calcul des points 3D Étape 1 : Déterminer le projecteur à partir du modèle P = (X,Y,Z) T Y Z O C G Modèle complet Modèle simplifié A 2007 Design III / GEL-21405 H05

Étape 1 : Déterminer le projecteur à partir du modèle Étalonnage de votre caméra : Utilisation des paramètres : Calcul des points 3D Étape 1 : Déterminer le projecteur à partir du modèle ; avec Plan 1: Plan 2: 2 Équations de plan ! A 2007 Design III / GEL-21405 H05

Le point 3D se trouve donc à l'intersection de trois plans É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 A 2007 Design III / GEL-21405 H05

Le point 3D se trouve à l'intersection de trois plans Étalonnage de votre caméra : Utilisation des paramètres : Calcul des points 3D Le point 3D se trouve à l'intersection de trois plans G P = (X,Y,Z) T Y Z O C G A 2007 Design III / GEL-21405 H05

Le point 3D se trouve à l'intersection de trois plans Étalonnage de votre caméra : Utilisation des paramètres : Calcul des points 3D Le point 3D se trouve à l'intersection de trois plans Plan "u" Plan "v" Plan Z=0 L'intersection est donnée par : avec A 2007 Design III / GEL-21405 H05

Le point 3D se trouve à l'intersection de trois plans Étalonnage de votre caméra : Utilisation des paramètres : Calcul des points 3D Le point 3D se trouve à l'intersection de trois plans L'intersection est donnée par : avec En développant, on obtient : A 2007 Design III / GEL-21405 H05

Étalonnage de votre caméra : Utilisation des paramètres obtenus Vos points 3D qui seront calculés avec ces paramètres extrinsèques, seront toujours p/r à ce repère "virtuel", placé devant le robot. OC ECG Magny EPG OP OG Peut-être serait-il préférable de se définir un repère situé à un endroit plus approprié (e.g. sur le préhenseur, au centre du robot, etc.) ? Vous devrez alors déterminer la transformation qui donne la position de la cible p/r à ce nouveau repère. Cette transformation pourra être appliquée à tous les points 3D calculés à partir des paramètres déterminés lors de la procédure d'étalonnage. A 2007 Design III / GEL-21405 H05

Représentation des repères Design III / GEL-21405 H05

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 A 2007 Design III / GEL-21405 H06

Étalonnage de votre caméra : Utilisation des paramètres : Positionnement du robot (1/3) Trouver la position du robot revient à déterminer le changement de repère EAR. On a : Et A 2007 Design III / GEL-21405 H05

Étalonnage de votre caméra : Utilisation des paramètres : Positionnement du robot (2/3) On décompose EAR : Sur le plan du jeu, il n'y a qu'une rotation autour de l'axe Z Ainsi Sous forme d'équations : A 2007 Design III / GEL-21405 H05

Étalonnage de votre caméra : Utilisation des paramètres : Positionnement du robot (3/3) On a 2 points donc 4 équations et 3 inconnues : On élimine tX et tY. On conserve deux équations avec lesquelles on élimine le membre de gauche et on peut obtenir l'angle par la tangente inverse. On calcule ensuite tX et tY (position X et Y du robot). A 2007 Design III / GEL-21405 H05