• Aucun résultat trouvé

Introduction à la vision artificielle

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction à la vision artificielle"

Copied!
59
0
0

Texte intégral

(1)

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

(2)

  Le robot utilise la vision pour percevoir l'environnement

Mise en contexte"

(3)

  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  mm

Mise en contexte"

(4)

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 :

1. Reconnaître les objets dans les images

Traitement des images (première partie)

2.  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

(5)

Mise en contexte"

R

G

R

c

R

P

Magny

R

C

: repère de la caméra

R

P

: repère du préhenseur

(6)

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 image

Modèle de caméra

Paramètres du modèle

Points 3D

Étalonnage

 L'étalonnage sert à déterminer les paramètres du modèle. Il

(7)

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

(8)

Formation des images"

Sténopé (idéal)

Problème : quantité de lumière insuffisante

Caméra réelle

Solution : utilisation d'une

lentille

(9)

•   Aberrations sphériques

•   Distorsion radiale:

•  négative (pincushion)

•  positive (barrel-type)

•  Aberration chromatique : la cause

Problèmes reliés à l'utilisation d'une lentille :

Formation des images"

(10)

Problèmes reliés à l'utilisation d'une lentille :

Formation des images"

(11)

Formation des images"

Sténopé (idéal) Caméra réelle

  Le modèle du sténopé demeure valide pour les calculs.

(12)

Modèle du sténopé"

Inverseur

Non-Inverseur

Y

Z

Axe optique

Plan image

Centre de projection

OC

P = (X,Y,Z)T

F

Y

Z

Axe optique

Plan image Centre de

projection

OC d

d

F

Point principal

Point objet

P = (X,Y,Z)T

Point objet

(13)

Y

Z

Axe optique Plan image

Centre de projection

OC

P = (X,Y,Z)T P' = (X',Y',Z')T

F

Z X ' = XF

Z Y ' = YF

 De même en X :

On a :

Modèle Sténopé : Projection de perspective"

Prévoir les

coordonnées images d'un point connu dans le repère de la caméra

(14)

•  É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.

Modèle Sténopé : Projection de perspective"

(15)

Plan de la présentation"

(16)

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

(17)

Coordonnées homogènes : Utilisation"

1.  On passe des coord. cartésiennes aux coord. homogènes en ajoutant un "1"

comme 4

e

élément au vecteur.

2.  On effectue les opérations (définies par une matrice 4x4).

3.  On revient aux coordonnées cartésiennes

en divisant tous les éléments du vecteur

résultant par W (à la condition que W≠0).

(18)

Coordonnées homogènes : 


Transformations dʼintérêt pour le projet"

•  Projection

•  Rotation

•  Translation

•  Changement d'échelle ("scaling")

(19)

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

(20)

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

(21)

Coordonnées homogènes : 
 Transformations dʼintérêt"

•  Rotation

(22)

Coordonnées homogènes : 
 Transformations dʼintérêt"

•  Translation

•  Changement

d'échelle ("scaling")

(23)

Coordonnées homogènes : 
 Combiner les transformations"

•   Soit E

1

, E

2

, …, E

N

, N transformations à appliquer, dans l'ordre, au point P.

• Ceci peut être réécrit : où

• On procède alors comme suit :

(24)

Plan de la présentation"

(25)

Mise en contexte"

R

C

: repère de la caméra R

P

: repère du préhenseur

R

G

R

c

R

P

Magny

(26)

Coordonnées homogènes : 
 Changements de repère"

Changements de repère Transformations rigides Combinaison d'une

translation et d'une rotation

Préservation des distances et des angles

Transformation rigide : Que devient un point P, connu dans O2, vu de O1?

(27)

Coordonnées homogènes : 
 Changements de repère"

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

2 définitions pour une même matrice

Exemple :

À noter : transformation inverse

(28)

Plan de la présentation"

(29)

É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 :

Paramètres intrinsèques

Paramètres extrinsèques

point 3D (en mm) point image

(pixel)

(30)

Étalonnage d'une caméra :
 Explication du modèle"

intrinsèques extrinsèques point 3D point image

Le modèle provient de la formule suivante :

(si γ = 0)

Z Y

X

u v

OI

Oc Z

Y X

OG

(u0,v0) p=(u,v)

Centre de projection

Axe optique Centre du

plan image

(31)

Calibrage d'une caméra :
 Explication du modèle"

1 – Changement de repère Global  Caméra

Z Y

X

Oc Z

Y X

OG

(u0,v0) p=(u,v)

Centre de projection

Axe optique Centre du

plan image

ECG

u v

OI

(32)

Calibrage d'une caméra :
 Explication du modèle"

2 – Projection

Pt 3D  Plan image

Z Y

X

Oc Z

Y X

OG

(u0,v0) p=(u,v)

Centre de projection

Axe optique Centre du

plan image u

v

OI

(33)

Calibrage d'une caméra :
 Explication du modèle"

3 – Mise à l'échelle du plan image, m  pixel

Z Y

X

u v

OI

Oc Z

Y X

OG

(u0,v0) p=(u,v)

Centre de projection

Axe optique Centre du

plan image

(34)

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

OI

Oc Z

Y X

OG

(u0,v0) p=(u,v)

Centre de projection

Axe optique Centre du

plan image

(35)

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 :

(36)

Équation du rayon projecteur"

(37)

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 :

(38)

Plan de la présentation"

(39)

Étalonnage d'une caméra :
 Procédure (principe général)"

1.  Placer une cible d'étalonnage devant la caméra

2.  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

(40)

Étalonnage d'une caméra :
 Procédure (idée générale)"

1.  Placer une cible d'étalonnage devant la caméra

2.  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

3.  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)

4.  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

5.  On extrait, s’il y a lieu, les paramètres explicites α, β, t …

(41)

É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.

(42)

É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 :

1.  En supposant la distorsion nulle, on résout le système linéaire 2.  Partant de cette estimation initiale, on détermine les paramètres

de distorsion à l'aide de techniques d'optimisation non-linéaires

(43)

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

(44)

É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

(45)

Plan de la présentation"

(46)

É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).

(47)

É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)

OG

(48)

É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é

P = (X,Y,Z)T

OG

(49)

É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:

(50)

É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 Z

G

=0)

(51)

Étalonnage de votre caméra :


Utilisation des paramètres : Calcul des points 3D"

P = (X,Y,Z)T

OG

G

(52)

Étalonnage de votre caméra :


Utilisation des paramètres : Calcul des points 3D"

Plan "u" Plan "v" Plan Z=0

L'intersection

est donnée par : avec

(53)

Étalonnage de votre caméra :


Utilisation des paramètres : Calcul des points 3D"

L'intersection

est donnée par : avec

En développant, on obtient :

(54)

É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.

O

C

E

CG

Magny

E

PG

O

P

O

G

• 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

• 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.) ?

(55)

Représentation des repères"

(56)

Plan de la présentation"

(57)

É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

(58)

É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 :

(59)

É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 t et t (position X et Y du robot).

Références

Documents relatifs

[r]

[r]

c'est ce qui était demandé à la dernière question du contrôle (Arnufle et Barnabé) : si les points sont "globalement alignés" l'ajustement affine est pertinent et donne

La situation dépend de la réponse à la question: "Quand une grandeur est multipliée ou divisée par 2, 3 ou 4, l’autre grandeur l’est-elle aussi?".. • Si la réponse

De la même manière, la pièce à com- parer se voit attribuer un score selon le mode choisi.. Elle est alors associée à la pièce du catalogue qui a le score le

[r]

Ce devoir est à faire sans calculatrice : à toi de trouver des stratégies permettant de garder des calculs simples. Il possède deux fois plus de tyrannosaures que de diplodocus, et

On trace le point P de BC tel que la sommes des aires des cercles circonscrits aux triangles ABP et ACP est minimale.. On calcule alors les aires des triangles ABP et ACP par