Vous êtes sur la page 1sur 49

Chapitre 2 

Appariement d’image

(Image Matching)

Traitement d’Images
2021 - 2022 M. SID AHMED BERRABAH
M2 - MID514
But
2

15/10/2021
But
3

Détecter les points d’intérêts dans les deux images


15/10/2021
But
4

Trouver la correspondance entre les points d’intérêt dans les deux images

15/10/2021
Correspondance entre les features
5

Soit un point d’intérêt de l’image I1, comment trouver la meilleure


correspondance dans l’image I2 ?

Idée :
➢ Définir une fonction distance qui compare deux descripteurs
de PI.
➢ Évaluer cette distance entre le PI de l’image I1 et tous les PI
de l’images I2.
➢ Choisir le PI de l’image I2 avec la distance min.

15/10/2021
Correspondance entre les features
6

Soit un point d’intérêt de l’image I1, comment trouver la meilleure


correspondance dans l’image I2 ?

Idée : Cet algorithme est appelé Brute Force Feature Matching


➢ Définir une fonction distance qui compare deux descripteurs
de PI.
➢ Évaluer cette distance entre le PI de l’image I1 et tous les PI
de l’images I2.
➢ Choisir le PI de l’image I2 avec la distance min.

15/10/2021
Correspondance entre les features
7

Fonction distance : Distance Euclidienne entre deux vecteurs


descripteurs :

2
d (V 1 , V 2)= (V 1i −V 2i )
√ ∑
i

V1 : vecteur descripteur du point d’intérêt de l’image I1


V2 : vecteur descripteur du point d’intérêt de l’image I2

15/10/2021
Correspondance entre les features
8

Fonction distance : Autres fonctions distance entre deux vecteurs


descripteurs :
➢ Sum of Squared Differences SSD :

d (V 1 , V 2)=∑ (V 1i−V 2i )2
i
➢ Sum of Absolute Differences SAD :

d (V 1 ,V 2)=∑ |V 1i −V 2i|
i
➢ Hamming Distance (image binaires) :

d (V 1 ,V 2)=∑ XOR (V 1i−V 2i )


i
15/10/2021
Correspondance entre les features
9

Problème 1 :

Tous les PIs de I1 trouvent un PI correspondant dans I2 avec la


distance min.
Que faire ?
Idée : Accepter juste les distances inférieure à un certain seuil.
15/10/2021
Correspondance entre les features
10

l’Algorithme Brute Force Feature Matching révisé


➢ Définir une fonction distance qui compare deux descripteurs
de PI.
➢ Évaluer cette distance entre le PI de l’image I1 et tous les PI
de l’images I2.
➢ Définir un seuil T
➢ Choisir le PI de l’image I2 avec la distance min
➢ Garder les correspondances avec des min inférieur au seuil T

15/10/2021
Correspondance entre les features
11

Problème 2 :

Un PI de I1 qui trouvent deux correspondances dans I2 avec des


distances inférieure au seuil.
Que faire ?
15/10/2021
Correspondance entre les features
12

Problème 2 :

Un PI de I1 qui trouvent deux correspondances dans I2 avec des


distances inférieure au seuil.
Que faire ?
15/10/2021
Correspondance entre les features
13

Problème 2 :
Un PI (p) de I1 qui trouvent deux correspondances (qc,qs) dans I2 avec des
distances inférieure au seuil. qc est le plus proche et qs le deuxième plus
proche.

La solution a été proposé par Lowe en 1999 :


Regarder combien le PI de la première correspondance (avec la plus
petite distance) est meilleur que le deuxième plus proche PI. Ceci peut
être fait par le ratio de distance (Nearest Neighbor Distance Ratio NNDR):
d ( p ,q c )
0⩽ ⩽1
d ( p , qs)

Si le ratio est proche de 1, cela veut dire que le descripteur du PI (p)
correspond aux descripteurs des PI qc et qs. Donc dans ce cas la
correspondance n’est pas considérée pour éviter ambiguïté.
15/10/2021
Correspondance entre les features
14

l’Algorithme Brute Force Feature Matching révisé


➢ Définir une fonction distance qui compare deux descripteurs
de PI.
➢ Évaluer cette distance entre le PI de l’image I1 et tous les PI
de l’images I2.
➢ Définir un seuil ρ (= 0.5 en pratique) pour le ratio NNDR :

➢ Choisir le PI de l’image I2 avec la distance min.


➢ Calculer le NNDR = d1 / d2 (d1 et d2 distances aux plus
proche et au deuxième plus proche PI de I2)
➢ Garder juste les correspondances avec des NNDR < ρ
15/10/2021
Correspondance entre les features
15

Problème 3 :

● Il peut y avoir encore d’autres fausses correspondances.

● En Général, il n’y a pas un algorithme de correspondance parfait.

● Solution : Utiliser d’autres information comme la couleur pour


améliorer la correspondance.

15/10/2021
Correspondance entre les features
16

Problème 4 :

La recherche du PI le plus proches est très gourmande en temps de


calcul.

Solution : Utiliser des algorithmes de recherches plus optimales :


exemple k-D Tree.

15/10/2021

Applications
17

Comparaison entre 2 ou plusieurs images


● Panorama
● Alignement d’images
● Reconstruction 3D
● Suivi d’objet
● Reconnaissance d’objets
● Indexation/Recherche sur base de données
● Navigation 15/10/2021
Applications : Détection d’Objet

Applications
19

Comparaison entre 2 ou plusieurs images


● Panorama
● Alignement d’images
● Reconstruction 3D
● Suivi d’objet
● Reconnaissance d’objets
● Indexation/Recherche sur base de données
● Navigation 15/10/2021
Applications : Assemblage d’images
(panorama)
20

15/10/2021
Applications : Assemblage d’images
(panorama)
21

15/10/2021
Applications : Assemblage d’images
(panorama)
22

15/10/2021
Applications : Assemblage d’images
(panorama)
23

15/10/2021
Applications : Assemblage d’images
(panorama)
24

15/10/2021
Applications : Assemblage d’images
(panorama)
Applications : Assemblage d’images
(panorama)
27

15/10/2021
Applications : Assemblage d’images
(panorama)
28

Étapes d’assemblage d’images:


➢ Détecter les features sur les deux images (SIFT, Corners, ...)
➢ Calculer les descripteurs des features
➢ Chercher les correspondances des features entre les deux
images.
➢ Estimer la transformation (homographie) entre les deux images
➢ Aligner les images en utilisant l’homographie estimée
➢ Créer la panorama
➢ Appliquer une approche d’aveuglement (blending) pour
l’égalisation de la panorama (photometric registration)
15/10/2021
Applications : Assemblage d’images
(panorama)
29

Problème : Pou pouvoir assembler des images d’une même scène il


faut d’abord les aligner c’est à dire les avoir sur la même référence.
Autrement dit, il faut supprimer les transformations entre les images.

15/10/2021
Transformation Projective (Homographie)
30

15/10/2021
Transformation Projective (Homographie)
31

Transformation Affine

Transformation Perspective

15/10/2021
Transformation Affine
32

● La transformation affine est une transformation géométrique qui maintient


les structures dans les images : les points seront représentés par des points
et les lignes parallèles par des lignes parallèles. Les proportions sont
préservées
● La transformation affine est une combinaison d’opération de scale,
translation, rotation, et de tondage (shearing).
● La transformation affine a toujours une transformée inverse.

● La forme générale d’une transformation affine est :

aij sont des coefficients constants

15/10/2021
Transformation Affine
33

En écriture matricielle :

(x,y) sont les coordonnées cartésiennes


(x,y,1) sont les coordonnées homogènes.
15/10/2021
Transformation Affine : Scale
34

scale(x, y) = ( a11 u, a22 v )

a 11 0 0 u a11 u

[][ ][ ] [ ]
x
y = 0 a 22 0 v = a22 v
1 0 0 1 1 1

a22
1

1 a11

Scale homogène : a11 = a22


15/10/2021
Transformation Affine : translation
35

translate (x, y) = ( u + a13 , v + a23 )

1 0 a13 u u+a13

[][ ][ ] [ ]
x
y = 0 1 a23 v = v +a23
1 0 0 1 1 1

(a13 , a23)

(0 , 0)
15/10/2021
Transformation Affine : Rotation
36

rotate (x, y) = (u cos θ − v sin θ , u sin θ + v cos θ)

cos(θ) −sin(θ) 0 u cos(θ)u−sin(θ) v

[][ ][ ] [
x
y = sin(θ) cos(θ) 0 v = sin(θ)u+cos(θ) v
1 0 0 1 1 1 ]

15/10/2021
Transformation Affine : Tondage
37

shear (x, y) = ( u + a12 v, a21 u + v)

1 a12 0 u u+a12 v

[][ ][ ] [ ]
x
y = a 21 1 0 v = a21 u+v
1 0 0 1 1 1

12"v
a0.5

0.39 "
a21u

15/10/2021
Transformation Affine :
38

L’ordre de combinaison des opérations est important.


Exemple : Un scale (S) et une translation (T).

(3/2,3/2)
(0,1) (1,1)
S T
(1/2,1/2) (1,1)

(0,0
(0,0) (1,0) (0,0)

1 /2 0 0 1 0 1
[
S= 0 1/2 0
0 0 1 ] ,
[ ]
T= 0 1 1
0 0 1
1 0 1 1/2 0 0 1/2 0 1 1 /2 0 1/2

[ ][
0 0 1 0 0 1 0 0 1][
M =TS= 0 1 1 0 1 /2 0 = 0 1/ 2 1
]
mais
[ ST = 0 1/ 2 1/2
0 0 1 ]
15/10/2021
Transformation Perspective
39

La transformation perspective ne respecte pas les structures dans l’image :


- Les lignes parallèles ne restent pas toujours parallèles
- Ça produit l’aspect de 3D dans l’image.

x 1 0 0 u u
[][
y = 0
1
1 0 v =
a31 a32 1 1 ][ ] [
v
a31 u+a32 v+1 =w ] 15/10/2021
Transformation Perspective
40

Pour respecter la forme de coordonnées homogènes on divise par w :

1 u u/ w
w [][ ]
v = v /w
w 1

w est différent pour chaque point.

15/10/2021
Transformation projective
41

La transformation projective est la transformation générale qui combine les


transformations affine et perspective.

La forme générale de la transformation projective est :

a11 a 12 a13 u a11 u+a12 v +a13

[ ][ ][ ] [
x'
y ' = a 21 a 22 a 23 v = a 21 u+a22 v +a23
w a 31 a 32 a33 1 a 31 u+a32 v +a 33 ]
a11 u+a12 v +a13
x
[] [ ]
a31 u+a32 v +a33
y = a21 u+a22 v +a 23
1 a31 u+a32 v +a33
1 15/10/2021
Transformation inverse
42

La transformation inverse de la transformation M est obtenue par :


−1A (M )
M =
|M|
Avec |M| est le déterminant de M et A(M) est la matrice adjointe de M

15/10/2021
Transformation : Estimation
43

L’estimation de la transformation projective M se fait par l’utilisation de


l’ensemble des correspondances (features) dans les deux images :

a11 u+a12 v +a13


x
[] [ ]
a31 u+a32 v +a33
y = a21 u+a22 v +a 23
1 a31 u+a32 v +a33
1

(a31 u+a32 v +a33 ) x−(a11 u+a12 v +a13 )=0


(a31 u+a32 v +a33 ) y−(a21 u+a22 v +a 23 )=0

15/10/2021
Transformation : Estimation
44

Créer un nouveau système Z.h=0


Chaque paires des n correspondances introduit deux ligne a11

[]
dans Z : a 12
a13
−u 1 −v 1 −1 0 0 0 u1 x 1 v1 x1 x1 a 21
0
Z= ⋮
[ 0

0 −u1 −v 1 −1 u1 y 1

−u n −v n −1 0
0 0
⋮ ⋮
0
⋮ ⋮
0 un x n
0 −un −v n −1 u n y n
v 1 y1

vn xn
vn yn
y1

xn
yn
] h= a 22
a23
a 31
a 32
a33
Calculer h par la résolution du système Z.h = 0 en utilisant la
décomposition en valeur singulière de Z = USVT
Matlab : [U, S, V]= svd(Z) ;
H = V( :, end) ; 15/10/2021
Exemple d’alignement d’image
45

Pics: Marc Levoy 15/10/2021


Transformation : Estimation
46

Problème quoi faire des outliers (mauvaises correspondances) ?

Scénario : Nous avons beaucoup de paires de correspondances


pour estimer les paramètre de transformation, mais nous ne somme
pas sûr lesquelles sont les bonnes correspondances.

15/10/2021
Transformation : Estimation
47

RANSAC : RANdom Sample Consensus

1. Choisir aléatoirement un ensemble de points de correspondance


(un échantillon d’au moins 4 correspondances) pour calculer le
modèle de transformation M. Juste le nombre suffisant pour calculer
le modèle.
2. Estimer la transformation M avec cet ensemble.
3. Vérifier combien le modèle estimé correspond aux autres paires
de correspondances.
4. Répéter ce processus N fois et Choisir le modèle qui permet le
plus de correspondance (inliers) : ||x’-Mx|| < ε
5. Recalculer le modèle en utilisant tous les inliers
15/10/2021
Robustesse de l’estimation par RANSAC

● La proportion des inliers dans les pairs utilisées pour l’estimation


est G
● L’estimation du modèle nécessite P pairs (P=4)
● La probabilité de sélectionner P inliers : GP
● La probabilité qu’après N itération RANSAC nous n’aurons pas
sélectionné un ensemble de inliers : (1- GP)N

Exemple : pour G = 0.5


⇒ GP= 0.54= 0.0625 (6 % de chance d’avoir 4 inliers dans une sélection)
Après N = 100 itérations RANSAC : (1-0.54)100=0.00157 (1 chance dans 600)
Après N = 1000 itérations RANSAC : 1 chance dans 1e28
Choisir Automatiquement les images à aligner
49

Brown and Lowe 2003, 2007


15/10/2021

Vous aimerez peut-être aussi