LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
Stereovision note de cours
1. Cours de Vision
Cours de Vision
´ ´
Stereovision
´
Definition 1
´
´ ´
´ ´
On designe par stereovision (ou vision stereoscopique) le processus qui
Vision par ordinateur
ˆ
`
permet de combiner entre elles plusieurs images d’une meme scene pour en
´
´
extraire des informations geometriques tridimensionelles
´ ´
´
´
´
Stereovision - geometrie epipolaire
´
Definition 2
ˆ
´ ´
On appellera images stereoscopiques tout ensemble d’images d’une meme
`
´
scene prises depuis des points de vue differents
´ ´
– Reconstruction 3D par stereovision
– Principe, motivation
– Exemples, applications
– Reconstruction 3D, triangulation
´
´
´
– Geometrie epipolaire
`
`
´
Systeme a 2 cameras
Vision par ordinateur
1
Cours de Vision
Vision par ordinateur
`
`
´
Systeme a 3 cameras
2
Motivations
Aspect anthropomorphique
´
`
etude du fonctionnement du systeme visuel
´
humain et de ses mecanismes
(psychovision).
´
Restitution numerique du relief
3-1
2. Cours de Vision
Cours de Vision
Exemples
´ ´
Application de la stereovision
´
– Cartographie automatique d’images aeriennes
´
– Imagerie biomedicale
´
– reconstruction du reseau vasculaire (angiographie)
´
– microscopie electronique
– Vision robotique
– perception de l’environnement (autonomie de fonctionnement)
`
– localisation de piece industrielle
– robotique spatiale
Vision par ordinateur
4
Cours de Vision
Vision par ordinateur
5
Cours de Vision
´ ´
Reconstruction 3D par stereovision
´
´
Equations associees (1)
´
Donnees
Le cas d’un point
Inconnues :
–m1 (x1 , y1 ) dans l’image 1
en pixel
–m2 (x2 , y2 ) dans l’image 2
`
Principe : triangulation apres calibration (et mise en correspondance)
M(X, Y, Z)
`
`
`
´
– les parametres extrinseques et intrinseques des cameras
`
en metre
C1
M = (C1 m1 ) ∩ (C2 m2 )
m1 (x1 , y1 )
´
ˆ
`
ou (Ci mi ) exprimees dans le meme repere.
`
I1
M(X, Y, Z)
¢
¡
¡ ¢
on a
I2
m2 (x2 , y2 )
C2
´
`
Etape 1: Passage pixels - metres
´
´
⇒ 4 equations lineaires (2 par droite)
`
a 3 inconnues (X, Y, Z)
´
´
resolution par moindre carres
u=u +p X =u +p x
0
xZ
0
x
v = v0 + p y Y = v0 + p y y
`
´
´
dans le repere de la camera associee
Z
d’ou
`
u−u0
px
= x et
v−v0
py
=y
3. Cours de Vision
´
´
Equations associees (2)
´
Etape 2 : Triangulation
´
Etape 2 : Triangulation
x Z =X
1 1
1
m1 ⇒
y1 Z 1 = Y 1
x Z =X
2 2
2
m2 ⇒
y2 Z 2 = Y 2
(X1 , Y1 , Z1 ) dans RC1
(X2 , Y2 , Z2 ) dans RC2
X1
Y
1
Z1
1
X
Y
c1
= Mo
Z
1
X2
Y
2
Z2
1
Cours de Vision
x =
1
m1 ⇒
y1 =
(X1 , Y1 , Z1 ) dans RC1
X
x =
2
M2 ⇒
y2 =
X1
Z1
Y1
Z1
Y
c2
= Mo
Z
1
X2
Z2
Y2
Z2
(X2 , Y2 , Z2 ) dans RC2
x =
2
y2 =
x Z =X
1 1
1
(1)
y1 Z 1 = Y 1
X2
Z2
Y2
Z2
=
=
r11 X1 +r12 Y1 +r13 Z1 +tx
r31 X1 +r32 Y1 +r33 Z1 +tz
r21 X1 +r22 Y1 +r23 Z1 +ty
r31 X1 +r32 Y1 +r33 Z1 +tz
car (X2 , Y2 , Z2 , 1)
T
(2)
= c2 Mc1 (X1 , Y1 , Z1 , 1)T
´
´
⇒ 2 equations lineaires en (X, Y, Z) pour m1 et m2
Vision par ordinateur
8
Cours de Vision
Vision par ordinateur
9
Cours de Vision
Triangulation
Cas d’une droite
en utilisant (1) dans (2) et en posant p
x =
2
y2 =
Z1 r1 .p+tx
Z1 r3 .p+tz
Z1 r2 .p+ty
Z1 r3 .p+tz
= (x1 , y1 , 1)T , on simplifie:
D = (C1 D1 ) ∩ (C2D2 )
´
Cas de primitives volumetriques
´
une seule inconnue Z1 et deux equations
ˆ
ˆ
´ ´
´
meme principe : ∩ de deux cones generalises.
Et enfin
£
¡
et donc (si tout est parfait)
Z1 =
tx − t z x 2
(r3 .p)x2 − r1 .p
¡
£
¢
¢
£
¢
£
¡
5. Cours de Vision
Cours de Vision
´
´
´
Geometrie epipolaire (2)
´
Epipoles
´
´
Reciproquement, les correspondants possibles de m2 sont situes sur la
´
´
´
´
droite epipolaire De1 , appelee droite epipolaire conjuguee de De2 :
´
Epipole e2 :
(1)
De2 (M) = (C1 C2 M) ∩ π2
´
Epipole e1 :
projection de C2 dans π1
´ ´
Propriete :
De1 (M) = (C1 C2 M) ∩ π1
projection de C1 dans π2
´
toutes les droites epipolaires de π2 sont l’image de
(2)
droites passant par C1
Elles passent toutes par e2
M
M
plan ´pipolaire
e
π1
plan ´pipolaire
e
e1
m1
m1
e2
m2
π2
e2
C1
C2
e2
m2
C2
e1
C2
e1
C1
De1
C1
De2
De1
Vision par ordinateur
16
Cours de Vision
´ ´
Cas general et cas particuliers
´
Faisceaux d’epipolaires
C1
C2
e2
dans les deux images
´
`
1 epipole a l’∞
e1
`
paralleles
dans une des images
π2
´
Faisceaux d’epipolaires
`
paralleles
π1
´
`
2 epipoles a l’∞
π1
C1
C1
C2
` `
C1 C2 parallele a π2
Vision par ordinateur
17
Cours de Vision
´
Exemple de faisceaux epipolaire
´
Epipoles (2)
´ ´
Cas general
De2
π2
π1
C2
π2
` `
C1 C2 parallele a π1 et π2
`
|| a l’axe des x de π1 et π2
6. Cours de Vision
Cours de Vision
Rectification
Rectification
Si
Avant rectification
M
´
`
– Epipolaires paralleles entre elles
M
´
`
`
– Epipolaires paralleles a l’axe des x
`
– Choix des reperes images tel (x1 , y1 ) dans π1 ait
= y1 dans π2
(C1 C2 ), et donc e1 et e2 sont l’infini
M
´
´
pour epipolaire conjuguee y2
π1
π2
m1
¡
¡
De 2
alors
`
`
La mise en correspondance se ramene a la re-
C2
C1
ˆ
cherche du correspondant sur la meme ligne de
C1
C2
`
Apres rectification
base.
m1
La transformation des images pour atteindre cette
m1
m2
m2
configuration s’appelle la rectification
Vision par ordinateur
20
Cours de Vision
Vision par ordinateur
21
Cours de Vision
Rectification (sur des images de contours)
Avant rectification
Rectification (sur des triplets d’images)
`
Apres rectification
Avant rectification
`
Apres rectification
7. Cours de Vision
Cours de Vision
´
Disparite
´
Disparite (2)
´
´
La disparite δ est la distance entre les deux projetees de M dans π1 et π2 .
δ = d(m1 , m2 )
M
´
Quand les images sont rectifiees (y1
plan ´pipolaire
e
m1
δ = x 2 − x1
m2
e2
´
´
´
Intervalle de recherche des disparites. La disparite δ est limitee par :
C1
De1
– la dimensions des images
De2
´
´
´
– le points observes sont situes necessairement au devant des plans images
´
´
La disparite δ est bornee.
´
`
`
La mise en correspondance sur une droite epipolaire se ramene donc a
Vision par ordinateur
´
et des centres optiques des deux cameras
`
– par les dimensions de la scene
une recherche sur un intervalle de cette droite seulement.
24
Cours de Vision
´
Relation disparite-profondeur
´
Cas d’images rectifiees
Vision par ordinateur
25
Cours de Vision
Exemple de chaˆne de reconstruction (1)
ı
Images brutes
´
Rappel: on avait etabli les relations permettant de calculer la profondeur d’un
x =
2
y2 =
Z1 r1 .p+tx
Z1 r3 .p+tz
Z1 r2 .p+ty
Z1 r3 .p+tz
et donc
Z1 =
tx − t z x 2
(r3 .p)x2 − r1 .p
´
Si les images sont rectifiees alors on a :
(3)
C2
e1
point
´
´
= y2 ),la disparite est donnee par
1 0 0 tx
tx
tx
tx
c2
´
=
Mc1 = 0 1 0 0 On en deduit z1 =
=
x2 − r1 .p
x2 − x 1
δ
0 0 1 0
`
´
la profondeur est inversement proportionnelle a la disparite
´
Images Rectifiee
8. Cours de Vision
Cours de Vision
Exemple de chaˆne de reconstruction (2)
ı
`
`
´
Conclusion: systeme a 2 cameras
´
´
`
`
Il est possible de reconstruire la geometrie spatiale d’une scene 3D a partir de
´
deux cameras.
⇒
recherche de deux points homologues le long des deux
´
´
epipolaires conjuguees
´
Mais, pour un point de I1 , ∃ une infinite de points homologues dans I2
´
Carte de disparite
´
´
disparite lissee
maillage
Vision par ordinateur
28
Cours de Vision
´
`
⇒ ambiguites : probleme de mise en correspondance
Vision par ordinateur
29
Cours de Vision
`
`
´
Systeme a 3 cameras
`
Un systeme trinoculaire permet de lever les ambigu¨tes possibles par une
ı ´
`
`
´
Systeme a 3 cameras
´
`
´
simple verification dans la troisieme image. En effet, pour verifier que
´
(M1 , M2 ) forment un couple de points homologues, il suffit de verifier que
´
´
`
M3 obtenu par intersection des droites epipolaires associees a M1 et M2
`
dans la 3eme est un point homologue plausible pour M1 et M2 .
´
Pour verifier que M1 et M2 forment un couple de points homologues il suffit
´
de verifier que M3
= D31 ∩ D32 est un point homologue plausible pour M1
et M2 .
¥
`
Problemes :
£
¡
¥
´
– Calibration plus delicate
£
¢
£
´
`
´
– Champ de vision plus reduit par rapport a deux cameras
¥
¡
¢
– Traitement d’image plus couteux
ˆ
¤
¡
¤
¢
¢
¡
9. Cours de Vision
Cours de Vision
`
`
´
Systeme a 5 ou 6 cameras (CMU)
Vision par ordinateur
`
`
´
ˆ
Systeme a N camera (dome du CMU)
32
Cours de Vision
Vision par ordinateur
33
Cours de Vision
´
Formulation matricielle de la contrainte epipolaire
M
´
Contrainte epipolaire :
plan ´pipolaire
e
C1 , C2 , m1 , m2 et M sont copla-
m1
e2
´
Formulation matricielle de la contrainte epipolaire
C2
e1
C1 m1 .(C1 C2 × C2 m2 ) = 0
C1
– La matrice essentielle
De1
– La matrice fondamentale
De2
Dans Rc1
– Les homographies
naires
m2
–
C1 m1/Rc1 = mT = (x1 , x1 , 1)T
1
c1
– C1 C2 /Rc = tc2
1
– C2 m2 /Rc = c1 Rc2 C2 m2 /Rc = c1 Rc2 m2 = c1 Rc2 (x2 , y2 , 1)T
1
2
mT .(c1 tc2 × c1 Rc2 m2 ) = 0
1
10. Cours de Vision
Cours de Vision
´
Formulation matricielle de la contrainte epipolaire
(matrice fondamentale)
´
Formulation matricielle de la contrainte epipolaire
(matrice essentielle)
´ ´
Dans l’espace discretise
mT .(T × Rm2 ) = 0
1
= K−1 mp1
1
−1
et donc m2 = K2 mp2
mp1 = K1 m1
mp2 = K2 m2
En posant
et donc m1
´
La contrainte epipolaire
0
S = T = t3
−t2
−t3
t2
mT SRm2 = 0
1
−t1 on obtient T × Rm2 = SRm2
0
0
t1
´´
se reecrit
(K−1 mp1 )T SRK−1 mp2 = 0
1
2
et donc
mT K−T SRK−1 mp2 = 0
p1
1
2
mT SRm2 = 0
1
´
E = SR est appelee matrice essentielle
F
F3×3 est la matrice fondamentale
Vision par ordinateur
36
Cours de Vision
Vision par ordinateur
´
Formulation matricielle de la contrainte epipolaire
´
´
Equation des droites epipolaires
´
Formulation matricielle de la contrainte epipolaire
(matrice fondamentale)
´
La matrice fondamentale lie les coordonnees pixels des points homologues
Posons:
dans les deux images.
u1
T
u2
u2
a
F u2 = b
1
c
v1 F v2 = 0
1
1
37
Cours de Vision
On a
mT Fmp2 = 0 ⇔ au1 + bv1 + c = 0
p1
´
´
´
Fmp2 est l’equation de la droite epipolaire De1 associee au point m2 .
´
Remarque : F ne depend pas du point (F
=
K−T SRK−1 )
1
2
´
⇔ si F est connu, on peut calculer n’importe quelle droite epipolaire
11. Cours de Vision
Cours de Vision
´
Formulation matricielle de la contrainte epipolaire
Calcul de la matrice fondamentale
Cas des rotations pures
Existence de la matrice fondamentale
`
F peut se calculer a partir de :
– Rappel
`
– de la calibration du systeme (K1 , K2 et c1 Mc2 )
˜
F = K−T TRK−1
1
2
`
– a partir d’un ensemble de points en correspondance
´
´
– resolution au moindres carres
– Que se passe t’il sans translation ?
– Algorithme des 8 points [Longuet Higgins 81]
T=0⇒F=0
´
´
`
– resolution non-lineaire avec minimisation du critere
C = d2 (m1 , De1 ) + d2 (m2 , De2 )
Vision par ordinateur
`
ce qui sert pas a grand chose
40
Cours de Vision
Vision par ordinateur
Cas des rotations pures
41
Cours de Vision
Cas de points coplanaires
´
Revenons aux equations initiales
Z1 mp1 = K1 M1
M = Z K−1 m
(1)
1
1 1
p1
⇒
Z2 mp2 = K2 2 R1 M1 (2)
Z2 mp2 = K2 M2
M 2 = 2 R1 M 1
`
– Supposons que les points appartiennent a un plan P(n, d)
– or
En combinant (1) et (2) :
M1 ∈ P(n, d) ⇔ n M1 = d
nT
⇒ M2 = RM1 + T M1
d
M2 = RM1 + T
T
Z1 mp1 = K1 M1
Z2 mp2 = Z1 K2 2 R1 K−1 mp1
1
et
Z2 K2 mp2 = K2 M2
– d’ou la relation homographique
`
mp2 =
Z1 2
K2 R1 K−1 mp1
1
Z2
H
mp2 = Hmp1
La matrice H est une matrice d’homographie
λmp2 = Hmp1
avec
H = K2 RK−1 + K2 T
1
nT −1
K
d 1
et
λ=
Z2
Z1
12. Cours de Vision
Cours de Vision
`
Application : Synthese d’images
`
Homographie du plan a l’infini
H = K2 RK−1 + K2 T
1
nT −1
K
d 1
T
´
`
quand d tend vers l’infini (points situes sur un plan a l’infini) le terme T nd tend
vers 0
=H
+
H tend vers l’expression correspondant au cas des rotation pure :
lim H = K2 RK−1 = H∞
1
d→∞
`
H∞ represente l’homographie du plan a l’infini
Vision par ordinateur
44
Cours de Vision
Vision par ordinateur
Calcul de la matrice essentielle ou fondamentale
L’algorithme des huit points [Longuet-Higgins88]
Calcul de la matrice essentielle ou fondamentale
L’algorithme des huit points [Longuet-Higgins88]
´
Contrainte epipolaire :
mT Em1 = 0
2
`
´
´
´
Ce systeme lineaire se resoud aux moindres carres, en posant la contrainte
E = 1.
`
´
Le systeme peut se reecrire :
Ae = 0
(4)
` ´
avec le vecteur e contenant les termes a determiner de
e=
45
Cours de Vision
˜
Soit E la matrice ainsi obtenue.
´
Or E est de rang 2, il faut donc s’assurer que le resultat obtenue est bien une
T
E11 E12 ... E32 E33
´
E et la matrice n × 9 fonction des donnees.
...
A = x i 2 x i 1 x i 2 yi 1 x i 2 yi 2 x i 1 yi 2 yi 1 yi 2 x i 1 yi 1 1
...
matrice essentielle.
On force cette contrainte en calculant la SVD de
Soit D
˜ ˜
E : E = UDVT .
= diag(r, s, t) et r ≥ s ≥ t, alors la matrice essentielle finale est
E = U.diag(r, s, 0).VT
13. Cours de Vision
Cours de Vision
Calcul d’une homographie : Algorithme DLT
Calcul d’une homographie : Algorithme DLT
Direct Linear Transformation
mi2 × Hmi1 = 0
´
`
Pour chaque point on a (en coordonnees homogenes) :
En posant mi2
mi2 = Hmi1
(5)
`
´
´
homogene), le produit vectoriel donne par (??) se developpe ainsi :
´
`
Ce qui est equivalent a :
hT m i 1
1
Hmi1 = hT mi1
2
hT m i 1
3
0T
wi mT
2
i1
−yi2 mT1
i
(7)
−wi2 mT1
i
0T
xi2 mT1
i
Ai (3×9)
Vision par ordinateur
48
Cours de Vision
Calcul d’une homographie : Algorithme DLT
Direct Linear Transformation
0T
wi mT
2
i1
−yi2 mT1
i
−wi2 mT1
i
0T
xi2 mT1
i
yi2 mT1
i
h1
−xi2 mT1 h2 = 0
i
T
0
h3
Ai (3×9)
(11)
h(9×1)
´
´
´
Seul 2 equations sont lineairement independantes.
Resolution
Pour n correspondances Ah
= 0 avec A = AT , ..., AT , ..., AT
1
i
n
´
´
resoud classiquement par la decomposition SVD :
A = UDVT
´ `
`
h est le vecteur de V associe a la plus petite valeur singuliere de A
T
. Il se
yi 2 h T m i 1 − w i 2 h T m i 1
3
2
mi2 × Hmi1 = wi2 hT mi1 − xi2 hT mi1
1
3
T
T
x i 2 h2 m i 1 − yi 2 h1 m i 1
(6)
`
´
´
si la j ieme ligne de la matrice H est notee hT , on peut ecrire :
j
´
`
´
= (xi2 , yi2 , wi2 ) (wi2 etant la troisieme coordonnee
mi2 × Hmi1 = 0
(8)
Vision par ordinateur
yi2 mT1
i
h1
(9)
−xi2 mT1 h2 = 0
i
T
0
h3
(10)
h(9×1)
49