Stereovision note de cours

13
Cours de Vision Vision par ordinateur St ´ er ´ eovision - g ´ eom ´ etrie ´ epipolaire – Reconstruction 3D par st ´ er ´ eovision – Principe, motivation – Exemples, applications – Reconstruction 3D, triangulation –G ´ eom ´ etrie ´ epipolaire Vision par ordinateur 1 Cours de Vision St ´ er ´ eovision D ´ efinition 1 On d ´ esigne par st ´ er ´ eovision (ou vision st ´ er ´ eoscopique) le processus qui permet de combiner entre elles plusieurs images d’une m ˆ eme sc ` ene pour en extraire des informations g ´ eom ´ etriques tridimensionelles D ´ efinition 2 On appellera images st ´ er ´ eoscopiques tout ensemble d’images d’une m ˆ eme sc ` ene prises depuis des points de vue diff ´ erents Syst ` eme ` a 2 cam ´ eras Syst ` eme ` a 3 cam ´ eras Vision par ordinateur 2 Cours de Vision Motivations Aspect anthropomorphique ´ etude du fonctionnement du syst ` eme visuel humain et de ses m ´ ecanismes (psychovision). Restitution num ´ erique du relief 3-1

Transcript of Stereovision note de cours

Cours de Vision

Vision par ordinateur

Stereovision - geometrie epipolaire

– Reconstruction 3D par stereovision

– Principe, motivation

– Exemples, applications

– Reconstruction 3D, triangulation

– Geometrie epipolaire

Vision par ordinateur 1

Cours de Vision

Stereovision

Definition 1

On designe par stereovision (ou vision stereoscopique) le processus qui

permet de combiner entre elles plusieurs images d’une meme scene pour en

extraire des informations geometriques tridimensionelles

Definition 2

On appellera images stereoscopiques tout ensemble d’images d’une meme

scene prises depuis des points de vue differents

Systeme a 2 cameras Systeme a 3 cameras

Vision par ordinateur 2Cours de Vision

Motivations

Aspect anthropomorphique

etude du fonctionnement du systeme visuel

humain et de ses mecanismes

(psychovision).

Restitution numerique du relief

Vision par ordinateur 3

3-1

Cours de Vision

Exemples

Vision par ordinateur 4

Cours de Vision

Application de la stereovision

– Cartographie automatique d’images aeriennes

– Imagerie biomedicale

– reconstruction du reseau vasculaire (angiographie)

– microscopie electronique

– Vision robotique

– perception de l’environnement (auto-

nomie de fonctionnement)

– localisation de piece industrielle

– robotique spatiale

Vision par ordinateur 5Cours de Vision

Reconstruction 3D par stereovision

Principe : triangulation apres calibration (et mise en correspondance)

Le cas d’un point

��� ���

I1

I2

C1

m1(x1, y1)

M(X, Y, Z)

C2

m2(x2, y2)

M = (C1m1) ∩ (C2m2)

ou (Cimi) exprimees dans le meme repere.

⇒ 4 equations lineaires (2 par droite)

a 3 inconnues (X,Y, Z)

resolution par moindre carres

Vision par ordinateur 6

Cours de Vision

Equations associees (1)

Donnees Inconnues :

–m1(x1, y1) dans l’image 1

–m2(x2, y2) dans l’image 2

en pixel M(X,Y, Z)

– les parametres extrinseques et intrinseques des cameras en metre

Etape 1: Passage pixels - metres

on a

u = u0 + pxXZ

= u0 + pxx dans le repere de la camera associee

v = v0 + pyYZ

= v0 + pyy

d’ou u−u0

px= x et v−v0

py= y

Vision par ordinateur 7

Cours de Vision

Equations associees (2)

Etape 2 : Triangulation

m1 ⇒

x1Z1 = X1

y1Z1 = Y1

m2 ⇒

x2Z2 = X2

y2Z2 = Y2

(X1, Y1, Z1) dans RC1(X2, Y2, Z2) dans RC2

X1

Y1

Z1

1

= c1Mo

X

Y

Z

1

X2

Y2

Z2

1

= c2Mo

X

Y

Z

1

⇒ 2 equations lineaires en (X,Y, Z) pour m1 et m2

Vision par ordinateur 8

Cours de Vision

Etape 2 : Triangulation

m1 ⇒

x1 = X1

Z1

y1 = Y1

Z1

M2 ⇒

x2 = X2

Z2

y2 = Y2

Z2

(X1, Y1, Z1) dans RC1(X2, Y2, Z2) dans RC2

x1Z1 = X1

y1Z1 = Y1

(1)

x2 = X2

Z2= r11X1+r12Y1+r13Z1+tx

r31X1+r32Y1+r33Z1+tz

y2 = Y2

Z2

= r21X1+r22Y1+r23Z1+tyr31X1+r32Y1+r33Z1+tz

(2)

car (X2, Y2, Z2, 1)T = c2Mc1 (X1, Y1, Z1, 1)

T

Vision par ordinateur 9Cours de Vision

en utilisant (1) dans (2) et en posant p = (x1, y1, 1)T , on simplifie:

x2 = Z1r1.p+txZ1r3.p+tz

y2 = Z1r2.p+tyZ1r3.p+tz

une seule inconnue Z1 et deux equations

Et enfin

et donc (si tout est parfait) Z1 =tx − tzx2

(r3.p)x2 − r1.p

Vision par ordinateur 10

Cours de Vision

Triangulation

Cas d’une droite

D = (C1D1) ∩ (C2D2)

Cas de primitives volumetriques

meme principe : ∩ de deux cones generalises.

� �

� �

� �

� �

� � � �

Vision par ordinateur 11

Cours de Vision

Erreur de reconstructionInfluence des erreurs de mise en correspondance

��� ���

� � � �

Vision par ordinateur 12

Cours de Vision

Erreur de reconstructionInfluence des erreurs de calibration

��� ���

� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �

� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � �

� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � �

� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �

� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � �

�����������������������������������������

�����������������������������������������

�����������������������������������������

�����������������������������������������

�� ��� �

� �

Vision par ordinateur 13Cours de Vision

Erreur de reconstructionInfluence de la position des cameras

Vision par ordinateur 14

Cours de Vision

Geometrie epipolaire

Soit m1 un point de l’image 1. Les points 3D se projetant en m1 sont situes

sur la droite (C1m1). L’image de cette droite sur π2 est une droite, appelee

droite epipolaire associee a m1 et notee De2.

Le point M2, correspondant de M1 appartient a cette droite De2.

� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �

� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �

� � � � � �� � � � � �� � � � � �� � � � � �� � � � � �� � � � � �� � � � � �� � � � � �

� � � � � �� � � � � �� � � � � �� � � � � �� � � � � �� � � � � �� � � � � �� � � � � �

π1

π2

m1

M

m2

De2

C2

C1

La geometrie epipolaire induit une contrainte forte sur le probleme de la

mise en correspondance.

Vision par ordinateur 15

Cours de Vision

Geometrie epipolaire (2)

Reciproquement, les correspondants possibles de m2 sont situes sur la

droite epipolaire De1, appelee droite epipolaire conjuguee de De2

:

De1(M) = (C1C2M) ∩ π1 (1)

De2(M) = (C1C2M) ∩ π2 (2)

plan epipolaire

m1

C1

De1

De2

e2

e1

m2

M

C2

Vision par ordinateur 16

Cours de Vision

Epipoles

Epipole e2 : projection de C1 dans π2

Epipole e1 : projection de C2 dans π1

Propriete : toutes les droites epipolaires de π2 sont l’image de

droites passant par C1 Elles passent toutes par e2

plan epipolaire

m1

C1

De1

De2

e2

e1

m2

M

C2

C1 C2

π2π1

e2e1

Vision par ordinateur 17Cours de Vision

Epipoles (2)Cas general et cas particuliers

Faisceaux d’epipolaires Faisceaux d’epipolaires

paralleles paralleles

Cas general dans une des images dans les deux images

1 epipole a l’∞ 2 epipoles a l’∞

C1 C2

π2π1

e2e1

C1

C2 π2

π1

C1 C2

π2π1

C1C2 parallele a π2 C1C2 parallele a π1 et π2

|| a l’axe des x de π1 et π2

Vision par ordinateur 18

Cours de Vision

Exemple de faisceaux epipolaire

Vision par ordinateur 19

Cours de Vision

RectificationSi

– Epipolaires paralleles entre elles

– Epipolaires paralleles a l’axe des x

– Choix des reperes images tel (x1, y1) dans π1 ait

pour epipolaire conjuguee y2 = y1 dans π2

π1 ‖ π2 ‖ (C1C2), et donc e1 et e2 sont l’infini

alors

La mise en correspondance se ramene a la re-

cherche du correspondant sur la meme ligne de

base.

La transformation des images pour atteindre cette

configuration s’appelle la rectification� �� �

M

M

M

m1

De2

C2C1

C1 C2

m1 m2

m′

2m′

1

Vision par ordinateur 20

Cours de Vision

Rectification

Avant rectification

Apres rectification

Vision par ordinateur 21Cours de Vision

Rectification (sur des images de contours)

Avant rectification

Apres rectification

Vision par ordinateur 22

Cours de Vision

Rectification (sur des triplets d’images)

Avant rectification Apres rectification

Vision par ordinateur 23

Cours de Vision

Disparite

La disparite δ est la distance entre les deux projetees de M dans π1 et π2.

δ = d(m1,m2)

plan epipolaire

m1

C1

De1

De2

e2

e1

m2

M

C2

La disparite δ est bornee.

La mise en correspondance sur une droite epipolaire se ramene donc a

une recherche sur un intervalle de cette droite seulement.

Vision par ordinateur 24

Cours de Vision

Disparite (2)

Quand les images sont rectifiees (y1 = y2),la disparite est donnee par

δ = x2 − x1 (3)

Intervalle de recherche des disparites. La disparite δ est limitee par :

– la dimensions des images

– le points observes sont situes necessairement au devant des plans images

et des centres optiques des deux cameras

– par les dimensions de la scene

Vision par ordinateur 25Cours de Vision

Relation disparite-profondeurCas d’images rectifiees

Rappel: on avait etabli les relations permettant de calculer la profondeur d’un

point

x2 = Z1r1.p+txZ1r3.p+tz

y2 = Z1r2.p+tyZ1r3.p+tz

et donc Z1 =tx − tzx2

(r3.p)x2 − r1.p

Si les images sont rectifiees alors on a :

c2Mc1 =

1 0 0 tx

0 1 0 0

0 0 1 0

On en deduit z1 =

tx

x2 − r1.p=

tx

x2 − x1=

tx

δ

la profondeur est inversement proportionnelle a la disparite

Vision par ordinateur 26

Cours de Vision

Exemple de chaıne de reconstruction (1)

Images brutes

Images Rectifiee

Vision par ordinateur 27

Cours de Vision

Exemple de chaıne de reconstruction (2)

Carte de disparite disparite lissee maillage

Vision par ordinateur 28

Cours de Vision

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

⇒ ambiguites : probleme de mise en correspondance

Vision par ordinateur 29Cours de Vision

Systeme a 3 cameras

Un systeme trinoculaire permet de lever les ambiguıtes possibles par une

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.

� �

� �

� �

� � � �

� � �

� � �

� � �

Vision par ordinateur 30

Cours de Vision

Systeme a 3 cameras

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

Vision par ordinateur 31

Cours de Vision

Systeme a 5 ou 6 cameras (CMU)

Vision par ordinateur 32

Cours de Vision

Systeme a N camera (dome du CMU)

Vision par ordinateur 33Cours de Vision

Formulation matricielle de la contrainte epipolaire

– La matrice essentielle

– La matrice fondamentale

– Les homographies

Vision par ordinateur 34

Cours de Vision

Formulation matricielle de la contrainte epipolaire

plan epipolaire

m1

C1

De1

De2

e2

e1

m2

M

C2

Contrainte epipolaire :

C1,C2,m1,m2 et M sont copla-

naires

C1m1.(C1C2 × C2m2) = 0

Dans Rc1

– C1m1/Rc1= mT

1 = (x1, x1, 1)T

– C1C2/Rc1= c1tc2

– C2m2/Rc1= c1Rc2C2m2/Rc2

= c1Rc2m2 = c1Rc2(x2, y2, 1)T

mT1 .(c1tc2 ×

c1Rc2m2) = 0

Vision par ordinateur 35

Cours de Vision

Formulation matricielle de la contrainte epipolaire(matrice essentielle)

mT1 .(T× Rm2) = 0

En posant

S = T =

0 −t3 t2

t3 0 −t1

−t2 t1 0

on obtient T ×Rm2 = SRm2

et donc

mT1 SRm2 = 0 E = SR est appelee matrice essentielle

Vision par ordinateur 36

Cours de Vision

Formulation matricielle de la contrainte epipolaire(matrice fondamentale)

Dans l’espace discretise

mp1 = K1m1 et donc m1 = K−11 mp1

mp2 = K2m2 et donc m2 = K−12 mp2

La contrainte epipolaire

mT1 SRm2 = 0

se reecrit

(K−11 mp1)

TSRK−12 mp2 = 0

mTp1 K−T

1 SRK−12︸ ︷︷ ︸

F

mp2 = 0

F3×3 est la matrice fondamentale

Vision par ordinateur 37Cours de Vision

Formulation matricielle de la contrainte epipolaire(matrice fondamentale)

La matrice fondamentale lie les coordonnees pixels des points homologues

dans les deux images.

u1

v1

1

T

F

u2

v2

1

= 0

Remarque : F ne depend pas du point (F = K−T1 SRK−1

2 )

Vision par ordinateur 38

Cours de Vision

Formulation matricielle de la contrainte epipolaireEquation des droites epipolaires

Posons:

F

u2

u2

1

=

a

b

c

On a

mTp1Fmp2 = 0 ⇔ au1 + bv1 + c = 0

Fmp2 est l’equation de la droite epipolaire De1associee au point m2.

⇔ si F est connu, on peut calculer n’importe quelle droite epipolaire

Vision par ordinateur 39

Cours de Vision

Formulation matricielle de la contrainte epipolaireCalcul de la matrice fondamentale

F peut se calculer a partir de :

– de la calibration du systeme (K1,K2 et c1Mc2)

– a partir d’un ensemble de points en correspondance

– resolution au moindres carres

– Algorithme des 8 points [Longuet Higgins 81]

– resolution non-lineaire avec minimisation du critere

C = d2(m1, De1) + d2(m2, De2

)

Vision par ordinateur 40

Cours de Vision

Cas des rotations puresExistence de la matrice fondamentale

– Rappel

F = K−T1 TRK−1

2

– Que se passe t’il sans translation ?

T = 0 ⇒ F = 0

ce qui sert pas a grand chose

Vision par ordinateur 41Cours de Vision

Cas des rotations pures

Revenons aux equations initiales

Z1mp1 = K1M1

Z2mp2 = K2M2

M2 = 2R1M1

M1 = Z1K−11 mp1 (1)

Z2mp2 = K22R1M1 (2)

En combinant (1) et (2) :

Z2mp2 = Z1K22R1K

−11 mp1

mp2 =Z1

Z2

K22R1K

−11

︸ ︷︷ ︸H

mp1

mp2 = Hmp1

La matrice H est une matrice d’homographie

Vision par ordinateur 42

Cours de Vision

Cas de points coplanaires

– Supposons que les points appartiennent a un plan P(n, d)

M1 ∈ P(n, d) ⇔ nTM1 = d

M2 = RM1 + T

⇒ M2 = RM1 + T

nT

dM1

– or

Z1mp1 = K1M1 et Z2K2mp2 = K2M2

– d’ou la relation homographique

λmp2 = Hmp1

avec

H = K2RK−11 + K2T

nT

dK−1

1 et λ =Z2

Z1

Vision par ordinateur 43

Cours de Vision

Homographie du plan a l’infini

H = K2RK−11 + K2T

nT

dK−1

1

quand d tend vers l’infini (points situes sur un plan a l’infini) le terme TnT

dtend

vers 0

H tend vers l’expression correspondant au cas des rotation pure :

limd→∞

H = K2RK−11 = H∞

H∞ represente l’homographie du plan a l’infini

Vision par ordinateur 44

Cours de Vision

Application : Synthese d’images

+ = H

Vision par ordinateur 45Cours de Vision

Calcul de la matrice essentielle ou fondamentaleL’algorithme des huit points [Longuet-Higgins88]

Contrainte epipolaire :

mT2 Em1 = 0

Le systeme peut se reecrire :

Ae = 0 (4)

avec le vecteur e contenant les termes a determiner de

e =(

E11 E12 ... E32 E33

)T

E et la matrice n × 9 fonction des donnees.

A =

...

xi2xi1 xi2yi1 xi2 yi2xi1 yi2yi1 yi2 xi1 yi1 1

...

Vision par ordinateur 46

Cours de Vision

Calcul de la matrice essentielle ou fondamentaleL’algorithme des huit points [Longuet-Higgins88]

Ce systeme lineaire se resoud aux moindres carres, en posant la contrainte

‖ E ‖= 1.

Soit E la matrice ainsi obtenue.

Or E est de rang 2, il faut donc s’assurer que le resultat obtenue est bien une

matrice essentielle.

On force cette contrainte en calculant la SVD de E : E = UDVT .

Soit D = diag(r, s, t) et r ≥ s ≥ t, alors la matrice essentielle finale est

E = U.diag(r, s, 0).VT

Vision par ordinateur 47

Cours de Vision

Calcul d’une homographie : Algorithme DLTDirect Linear Transformation

Pour chaque point on a (en coordonnees homogenes) :

mi2 = Hmi1 (5)

Ce qui est equivalent a :

mi2 × Hmi1 = 0 (6)

si la j ieme ligne de la matrice H est notee hTj , on peut ecrire :

Hmi1 =

hT1 mi1

hT2 mi1

hT3 mi1

(7)

Vision par ordinateur 48

Cours de Vision

Calcul d’une homographie : Algorithme DLT

mi2 × Hmi1 = 0 (8)

En posant mi2 = (xi2 , yi2 , wi2) (wi2 etant la troisieme coordonnee

homogene), le produit vectoriel donne par (??) se developpe ainsi :

mi2 ×Hmi1 =

yi2hT3 mi1 − wi2h

T2 mi1

wi2hT1 mi1 − xi2h

T3 mi1

xi2hT2 mi1 − yi2h

T1 mi1

(9)

0T −wi2mTi1

yi2mTi1

wi2mTi1

0T −xi2mTi1

−yi2mTi1

xi2mTi1

0T

︸ ︷︷ ︸Ai(3×9)

h1

h2

h3

︸ ︷︷ ︸h(9×1)

= 0 (10)

Vision par ordinateur 49Cours de Vision

Calcul d’une homographie : Algorithme DLTDirect Linear Transformation

0T −wi2mTi1

yi2mTi1

wi2mTi1

0T −xi2mTi1

−yi2mTi1

xi2mTi1

0T

︸ ︷︷ ︸Ai(3×9)

h1

h2

h3

︸ ︷︷ ︸h(9×1)

= 0 (11)

Seul 2 equations sont lineairement independantes.

Resolution

Pour n correspondances Ah = 0 avec A =(AT

1 , ...,ATi , ...,AT

n

)T. Il se

resoud classiquement par la decomposition SVD :

A = UDVT

h est le vecteur de V associe a la plus petite valeur singuliere de A

Vision par ordinateur 50