Calculs des appariements affine, rigide, homographique et Thin

M2 TI - Traitement d’images 2016/2017 - Recalage d’images
Modèles d’appariement de points labellisés
Soient xi,yi,1in, des points de Rd. On cherche à obtenir une transformation φ:
RdRdtelle que φ(xi) = yipour tout i(appariement exact) ou φ(xi)soit "proche" de yi
(appariement inexact)
Transformations affines
On va minimiser
J(A, b) =
n
X
i=1
kAxi+byik2,
Aest une matrice d×d,bun vecteur de Rdreprésenté par un vecteur colonne (de même
que les xiet yi). On peut utiliser une notation plus compacte : notons x= (x1, . . . , xn)et
y= (y1, . . . , yn)les matrices de taille d×ncorrespondant aux concaténations des vecteurs
colonnes xiet yi, et 1le vecteur ligne de longueur nne contenant que des 1. On a alors
J(A, b) = kAx +b1yk2,
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 Aet b, et ˜xla matrice de taille (d+1)×nobtenue par concaténation
de xet 1. Alors
J(A, b) = J(M) = kM˜xyk2.
Calculons la différentielle de J:
dJ(M).N = 2 hM˜xy , N ˜xi.
Le produit scalaire euclidien entre deux matrices rectangulaires Met Nde même taille vérifie
hM , Ni=tr(MTN).On a donc :
dJ(M).N = 2tr (M˜xy)TN˜x= 2tr ˜x(M˜xy)TN= 2 (M˜xy)˜xT, N,
car tr(MN ) = tr(NM )dès que MN et N M sont bien définies. Le gradient de Jest donc
J(M) = 2(M˜xy)˜xT.
Nous allons montrer que la fonctionnelle Jest 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 Ni= 2 (MN)˜x˜xT, M N
= 2tr(˜x˜xT(MN)T(MN))
= 2tr(˜xT(MN)T(MN)˜x)
= 2tr(((MN)˜x)T(MN)˜x)
= 2 k(MN)˜xk20.
Ceci montre que Jest convexe. Examinons ensuite le cas d’égalité :
k(MN)˜xk2= 0 (MN)˜x= 0
xiKer(MN),i, 1in.
Si on suppose que V ect(xi)1in=Rd, ce qui est très peu restrictif (dans R2ceci signifie
simplement que les points ne sont pas tous alignés), on aura alors égalité seulement si M=N,
ce qui signifie que Jest strictement convexe.
Dans ce cas Jpossède un minimum unique qui correspond à la solution du système linéaire
suivant :
J(M) = 0 M˜x˜xT=y˜xT.
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 Acorrespond à
une rotation ; c’est-à-dire que Aest une matrice orthogonale : ATA=Id. On peut donc définir
le problème d’appariement sous la forme suivante :
Minimiser J(A, b) = Pn
i=1 kAxi+byik2,
sous la contrainte ATA=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 dquelconque. Cependant c’est
possible pour d= 2 et d= 3.
Cas de la dimension 2
On va utiliser une représentation des points de R2comme nombres complexes. En effet une
matrice de rotation de taille 2a une expression très simple : cos θsin θ
sin θcos θet en complexe
c’est encore plus simple car la rotation est obtenue directement par multiplication avec e. La
fonctionnelle à minimiser s’écrit donc comme fonction de l’angle θet b:
J(θ, b) =
n
X
k=1
|exk+byk|2,
xk, b, yksont assimilés à des nombres complexes. Jest 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:
bJ(θ, b)= 2<(n
X
k=1
(exk+byk)ξ).
L’annulation de cette expression pour tout complexe ξéquivaut à (prendre ξ= 1 et ξ=i) :
n
X
k=1
xk!e+nb n
X
k=1
yk!= 0,
2
ce qui implique que
b=bθ:= 1
n n
X
k=1
yk n
X
k=1
xk!e!=1
nsysxe,
où l’on a noté sx=Pn
k=1 xket sy=Pn
k=1 yk.
Calculons à présent la dérivée de Jpar rapport à θ:
θJ(θ, b) = 2<(n
X
k=1
(exk+byk)(ie xk))
= 2<(i
n
X
k=1
(exk+byk)e xk)
= 2=(n
X
k=1
xkxk+ (byk)exk)
= 2=( n
X
k=1
|xk|2!+ n
X
k=1
(byk)xk!e)
= 2=( n
X
k=1
(byk)xk!e)
= 2=(b¯sxsy¯x)e,
où l’on a noté sy¯x=Pn
k=1 yk¯xk. Remplaçons maintenant bpar l’expression de bθ:
θJ(θ, bθ) = 2=1
nsysxe¯sxsy¯xe
= 2=1
nsy¯sxe1
nsx¯sxsy¯xe
= 2=1
nsy¯sxsy¯xe1
n|sx|2
= 2=1
nsy¯sxsy¯xe.
Notons α=1
nsy¯sxsy¯x=re.On a donc
θJ(θ, b)=2={αe}= 2rsin(νθ).
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 Jpour ces deux points.
Cas de la dimension 3.
Dans R3on 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 :
φ(x) = ax1+bx2+c
gx1+hx2+i,dx1+ex2+f
gx1+hx2+i
On peut représenter cette transformation à l’aide d’une matrice Hde taille 3×3en coordonnées
homogènes :
˜x=
x1
x2
1
7→
a b c
d e f
g h i
×x1x21=
ax1+bx2+c
dx1+ex2+f
gx1+hx2+i
Étant donné deux séries de points xi, yide R2, les équations φ(xi) = yis’écrivent
ax1
i+bx2
i+c
gx1
i+hx2
i+i=y1
i
dx1
i+ex2
i+f
gx1
i+hx2
i+i=y2
i.
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 :
ax1
i+bx2
i+c=y1
i(gx1
i+hx2
i+i)
dx1
i+ex2
i+f=y2
i(gx1
i+hx2
i+i).
x1
ia+x2
ib+cy1
ix1
igy1
ix2
ihy1
ii
x1
id+x2
ie+fy2
ix1
igy2
ix2
ihy2
ii.
x1
ix2
i1 0 0 0 y1
ix1
iy1
ix2
iy1
i
0 0 0 x1
ix2
i1y2
ix1
iy2
ix2
iy2
i×
a
b
c
d
e
f
g
h
i
= 0
Notons hle vecteur colonne des coefficients aài, et Uila matrice 2×9écrite à gauche dans
l’équation précédente. L’équation s’écrit donc Uih= 0. En prenant en compte toutes ces équa-
tions pour 1inon obtient un système matriciel de la forme U h = 0 Uest la matrice de
taille 2n×9obtenue en concaténant les blocs Ui. On obtient ainsi un système de 2néquations
pour 9inconnues. Pour n4ces é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 Met vecteur b. L’image d’un point x
par la transformation est alors
φ(x) =
n
X
j=1
h(kxxjk)αj+Mx +b,
hest la fonction réelle h(r) = r2log(r). Pour réaliser l’appariement des points xisur les
points yion écrit alors la contrainte yi=φ(xi), ce qui donne les équations suivantes :
i, 1in,
n
X
j=1
h(kxixjk)αj+Mxi+b=yi.
On a ici néquations linéaires dans R2, c’est-à-dire 2néquations réelles, pour 2n+ 6 inconnues
(2npour les αi,4pour la matrice Met 2pour 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
X
i=1
αi= 0,
n
X
i=1
αixT
i= 0.
La première relation donne deux équations scalaires tandis que la deuxième en donne 4(puisque
αixT
iest une matrice). A final on peut écrire sous forme matricielle le système linéaire complet
de dimension 2n+ 6 :
h(0) h(kx1x2k)· · · h(kx1xnk)x1
1x2
11
h(kx1x2k)h(0) · · · h(kx2xnk)x1
2x2
21
.
.
.....
.
..
.
..
.
..
.
.
h(kx1xnk)· · · h(kxn1xnk)h(0) x1
nx2
n1
x1
1x1
2· · · x1
n0 0 0
x2
1x2
2· · · x2
n0 0 0
1 1 · · · 1 0 0 0
×
α1
1α2
1
α1
2α2
2
.
.
.
α1
nα2
n
m11 m21
m12 m22
b1b2
=
y1
1y2
1
y1
2y2
2
.
.
.
y1
ny2
n
0 0
0 0
0 0
,
ou encore, sous forme condensée,
h(x) ˜xT
˜x0×αT
AT=yT
0,
où l’on a utilisé les mêmes notations que dans la première section, et h(x)désigne la matrice
n×nde coefficients h(kxixjk).
5
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !