Calculs des appariements affine, rigide, homographique et Thin

publicité
M2 TI - Traitement d’images 2016/2017 - Recalage d’images
Modèles d’appariement de points labellisés
Soient xi , yi , 1 ≤ i ≤ n, des points de Rd . On cherche à obtenir une transformation φ :
Rd → Rd telle que φ(xi ) = yi pour tout i (appariement exact) ou φ(xi ) soit "proche" de yi
(appariement inexact)
Transformations affines
On va minimiser
J(A, b) =
n
X
kAxi + b − yi k2 ,
i=1
où A est une matrice d × d, b un vecteur de Rd représenté par un vecteur colonne (de même
que les xi et yi ). On peut utiliser une notation plus compacte : notons x = (x1 , . . . , xn ) et
y = (y1 , . . . , yn ) les matrices de taille d × n correspondant aux concaténations des vecteurs
colonnes xi et yi , et 1 le vecteur ligne de longueur n ne contenant que des 1. On a alors
J(A, b) = kAx + b1 − yk2 ,
où la norme sur les matrices est définie comme la racine carrée de la somme des carrés des
coefficients. On peut même aller plus loin en notant M = (A, b) la matrice de taille d × (d + 1)
obtenue par concaténation de A et b, et x̃ la matrice de taille (d+1)×n obtenue par concaténation
de x et 1. Alors
J(A, b) = J(M ) = kM x̃ − yk2 .
Calculons la différentielle de J :
dJ(M ).N = 2 hM x̃ − y , N x̃i .
Le produit scalaire euclidien entre deux matrices rectangulaires M et N de même taille vérifie
hM , N i = tr(M T N ). On a donc :
dJ(M ).N = 2tr (M x̃ − y)T N x̃ = 2tr x̃(M x̃ − y)T N = 2 (M x̃ − y)x̃T , N ,
car tr(M N ) = tr(N M ) dès que M N et N M sont bien définies. Le gradient de J est donc
∇J(M ) = 2(M x̃ − y)x̃T .
Nous allons montrer que la fonctionnelle J est convexe, et même strictement convexe hormis
des cas très particuliers. Pour toutes matrices M, N on a :
h∇J(M ) − ∇J(N ) , M − N i = 2 (M − N )x̃x̃T , M − N
=
=
=
=
2tr(x̃x̃T (M − N )T (M − N ))
2tr(x̃T (M − N )T (M − N )x̃)
2tr(((M − N )x̃)T (M − N )x̃)
2 k(M − N )x̃k2 ≥ 0.
Ceci montre que J est convexe. Examinons ensuite le cas d’égalité :
k(M − N )x̃k2 = 0 ⇔ (M − N )x̃ = 0
⇔ xi ∈ Ker(M − N ), ∀i, 1 ≤ i ≤ n.
Si on suppose que V ect(xi )1≤i≤n = Rd , ce qui est très peu restrictif (dans R2 ceci signifie
simplement que les points ne sont pas tous alignés), on aura alors égalité seulement si M = N ,
ce qui signifie que J est strictement convexe.
Dans ce cas J possède un minimum unique qui correspond à la solution du système linéaire
suivant :
∇J(M ) = 0 ⇔ M x̃x̃T = yx̃T .
Remarquons que l’hypothèse faite (rang(x) = d) assure bien que ce système admet un solution
unique.
Déplacements
Les déplacements sont des transformations affines pour lesquelles la matrice A correspond à
une rotation ; c’est-à-dire que A est une matrice orthogonale : AT A = Id . On peut donc définir
le problème d’appariement sous la forme suivante :
P
Minimiser J(A, b) = ni=1 kAxi + b − yi k2 ,
sous la contrainte AT A = Id .
L’espace des contraintes est compact, ce qui implique que le problème admet nécessairement
une solution. Par contre elle n’est pas unique en général, et il n’est pas possible de résoudre
analytiquement le problème analytiquement pour une dimension d quelconque. Cependant c’est
possible pour d = 2 et d = 3.
Cas de la dimension 2
On va utiliser une représentation des points de R2 comme nombres
complexes.
En effet une
cos θ − sin θ
matrice de rotation de taille 2 a une expression très simple :
et en complexe
sin θ cos θ
c’est encore plus simple car la rotation est obtenue directement par multiplication avec eiθ . La
fonctionnelle à minimiser s’écrit donc comme fonction de l’angle θ et b :
J(θ, b) =
n
X
|eiθ xk + b − yk |2 ,
k=1
où xk , b, yk sont assimilés à des nombres complexes. J est une fonction continue, bornée en θ
(puisque θ est borné) et coercive par rapport à b (c’est-à-dire qu’elle tend vers +∞ quand |b|
tend vers +∞). Donc elle admet au moins un minimum, et ce minimum vérifie ∇J = 0.
Calculons la différentielle par rapport à b :
)
( n
X
∂b J(θ, b).ξ = 2<
(eiθ xk + b − yk )ξ .
k=1
L’annulation de cette expression pour tout complexe ξ équivaut à (prendre ξ = 1 et ξ = i) :
!
!
n
n
X
X
xk eiθ + nb −
yk = 0,
k=1
k=1
2
ce qui implique que
! !
n
n
X
1 X
1
sy − sx eiθ ,
yk −
b = bθ :=
xk eiθ =
n k=1
n
k=1
P
P
où l’on a noté sx = nk=1 xk et sy = nk=1 yk .
Calculons à présent la dérivée de J par rapport à θ :
( n
)
X
∂θ J(θ, b) = 2<
(eiθ xk + b − yk )(ieiθ xk )
( k=1 n
)
X
= 2< −i
(eiθ xk + b − yk )e−iθ xk
( n k=1
)
X
= 2=
xk xk + (b − yk )e−iθ xk
= 2=
( k=1n
X
(
= 2=
k=1
n
X
!
|xk |2
+
n
X
)
!
(b − yk )xk
e−iθ
!k=1 )
(b − yk )xk
e−iθ
k=1
= 2= (bs̄x − syx̄ ) e−iθ ,
où l’on a noté syx̄ =
Pn
yk x̄k . Remplaçons maintenant b par l’expression de bθ :
1
iθ
−iθ
∂θ J(θ, bθ ) = 2=
sy − sx e s̄x − syx̄ e
n
1
1
−iθ
−iθ
sy s̄x e − sx s̄x − syx̄ e
= 2=
n
n
1
1
2
−iθ
sy s̄x − syx̄ e − |sx |
= 2=
n
n
1
= 2=
sy s̄x − syx̄ e−iθ .
n
k=1
Notons α = n1 sy s̄x − syx̄ = reiν . On a donc
∂θ J(θ, b) = 2={αe−iθ } = 2r sin(ν − θ).
Cette dérivée s’annule pour r = 0 ou θ = ν ou θ = ν + π.
• Si r = 0, on voit que quelle que soit la valeur de θ, on a ∇J(θ, bθ ) = 0. Par conséquent
la fonction θ 7→ J(θ, bθ ) a une dérivée nulle, et donc J(θ, bθ ) a une valeur identique pour
tout angle θ. Tous ces points sont donc solutions.
• Sinon, on a deux points candidats au minimum, qui sont (ν, θν ) et (ν +π, θν+π ). On conclue
en comparant les valeurs de J pour ces deux points.
Cas de la dimension 3.
Dans R3 on peut utiliser les quaternions pour représenter les déplacements. Les quaternions
sont une généralisation des nombres complexes en dimension 4. On ne présente pas cette méthode
ici.
3
Transformations homographiques
Une transformation homographique s’écrit à l’aide de 9 coefficients :
1
ax + bx2 + c dx1 + ex2 + f
,
φ(x) =
gx1 + hx2 + i gx1 + hx2 + i
On peut représenter cette transformation à l’aide d’une matrice H de taille 3 × 3 en coordonnées
homogènes :
 1


 1

x
a b c
ax + bx2 + c
x̃ = x2  7→ d e f  × x1 x2 1 = dx1 + ex2 + f 
1
g h i
gx1 + hx2 + i
Étant donné deux séries de points xi , yi de R2 , les équations φ(xi ) = yi s’écrivent
 1 2
 ax1i +bxi2+c = y 1

gxi +hxi +i
dx1i +ex2i +f
gx1i +hx2i +i
i
= yi2 .
Les inconnues de ces équations sont les coefficients de la matrice H. On voit qu’on peut réécrire
ces équations sous forme de système linéaire :
1
axi + bx2i + c = yi1 (gx1i + hx2i + i)
dx1i + ex2i + f = yi2 (gx1i + hx2i + i).
1
xi a + x2i b + c − yi1 x1i g − yi1 x2i h − yi1 i
⇔
x1i d + x2i e + f − yi2 x1i g − yi2 x2i h − yi2 i.
 
a
b
 
c
 
1 2
d
1 1
1 2
1
 
xi xi 1 0 0 0 −yi xi −yi xi − yi
e = 0
⇔
×
 
0 0 0 x1i x2i 1 −yi2 x1i −yi2 x2i − yi2
f 
 
g 
 
h
i
Notons h le vecteur colonne des coefficients a à i, et Ui la matrice 2 × 9 écrite à gauche dans
l’équation précédente. L’équation s’écrit donc Ui h = 0. En prenant en compte toutes ces équations pour 1 ≤ i ≤ n on obtient un système matriciel de la forme U h = 0 où U est la matrice de
taille 2n × 9 obtenue en concaténant les blocs Ui . On obtient ainsi un système de 2n équations
pour 9 inconnues. Pour n ≤ 4 ces équations admettent toujours au moins une solution, mais à
partir de n = 5 il n’y a en général pas de solution, et on résout donc ces équations au sens des
moindres carrés.
Déformations non rigides : modèle des splines "plaque mince" (Thin
Plate Splines)
Le modèle de déformations "plaque mince" tire son nom de la théorie physique qui décrit
les déformation d’une plaque solide soumise à des forces, "mince" exprimant les fait que l’on
4
néglige les effets dans la direction de l’épaisseur de la plaque. On donne ici d’abord la recette
pratique du modèle Thin Plate Splines sans les explications mathématiques qui seront données
dans le paragraphe suivant. En pratique, une déformation TPS (pour Thin Plate Splines) dans
le plan est décrite par un ensemble de points de contrôle x1 , . . . , xn , et des vecteurs α1 , . . . , αn
dans R2 , ainsi qu’une transformation affine de matrice M et vecteur b. L’image d’un point x
par la transformation est alors
φ(x) =
n
X
h (kx − xj k) αj + M x + b,
j=1
où h est la fonction réelle h(r) = r2 log(r). Pour réaliser l’appariement des points xi sur les
points yi on écrit alors la contrainte yi = φ(xi ), ce qui donne les équations suivantes :
∀i, 1 ≤ i ≤ n,
n
X
h (kxi − xj k) αj + M xi + b = yi .
j=1
On a ici n équations linéaires dans R2 , c’est-à-dire 2n équations réelles, pour 2n + 6 inconnues
(2n pour les αi , 4 pour la matrice M et 2 pour b). Il "manque" donc des équations ; autrement
dit il y a non unicité de la solution. Les équations complémentaires sont obtenues en écrivant
une condition de minimisation de l’énergie associée à la déformation (voir paragraphe qui suit).
Ces équations sont :
n
n
X
X
αi = 0,
αi xTi = 0.
i=1
i=1
La première relation donne deux équations scalaires tandis que la deuxième en donne 4 (puisque
αi xTi est une matrice). A final on peut écrire sous forme matricielle le système linéaire complet
de dimension 2n + 6 :

 
 

y11 y12
α11 α12
h(0)
h(kx1 − x2 k)
···
h(kx1 − xn k) x11 x21 1
2 
 1 2
 1
 h(kx1 − x2 k)
h(0)
···
h(kx2 − xn k) x12 x22 1
  α2 α2  y2 y2 


  ..

..
..
..
.. ..   ..
...

 .
  .

.
.
.
.
.

 
  1

2 ,
2  =  1
2
1
×


h(kx1 − xn k)
···
h(kxn−1 − xn k)
h(0)
xn xn 1  αn αn  yn yn 



 

x11
x12
···
x1n
0 0 0
 m11 m21   0 0 

2
2
2

x1
x2
···
xn
0 0 0 m12 m22   0 0 
b1
b2
0 0
1
1
···
1
0 0 0
ou encore, sous forme condensée,
T T
h(x) x̃T
α
y
×
=
,
AT
0
x̃
0
où l’on a utilisé les mêmes notations que dans la première section, et h(x) désigne la matrice
n × n de coefficients h(kxi − xj k).
5
Téléchargement