Formation et Analyse d'Images - Pervasive Interaction · Formation et Analyse d'Images James L....
Transcript of Formation et Analyse d'Images - Pervasive Interaction · Formation et Analyse d'Images James L....
Formation et Analyse d'Images James L. Crowley
ENSIMAG 3 Premier Bimestre 2003/2004
Séance 6 20 novmbre 2003
Suivi des formes par filtre de Kalman
Le Filtre de Kalman............................................2Prédiction de l'évolution temporelle de l'état..........................4Modèle du capteur...............................................................5Aproximations des modèle non-linéaires................................6Validation...........................................................................6Mise à Jour.........................................................................7L'Innovation.......................................................................8
Suivi de Régions par filtre de Kalman ... . . . . . . . . . . . . . . . . . . .9Détection par ratio d'histogramme ........................................9Caractérisation par moments............................................... 10Application : Suivi des régions avec un filtre de Kalman........ 11Prédiction......................................................................... 12Suivi robuste..................................................................... 13
Suivi de Pixels .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15SSD et Inter Corrélation..................................................... 15Pixels d'un voisinage comme vecteur charactéristique .......... 16Relation entre SSD et NCC :............................................... 17Suivi par l'inter corrélation : la zone d'intérêt...................... 17
Suivi de Droits..................................................18Représentation de Segments de Contraste ............................. 18Test de proximités de pixels................................................ 19Représentation MOL : "Midpoint-Orientation-Length".......... 20La précision d'un segment.................................................. 21Proximité d'une droite et un point....................................... 22Proximité de deux segments................................................ 23Jonctions........................................................................... 24
Suivi et estimation de movements Séance 6
Le Filtre de Kalman
Le filtre de Kalman est un estimateur récursif optimal.Son origine se trouve dans le problème de l'estimation de la trajectoire des satelliteset des aéronefs. Dans un tel problème, on cherche à estimer la position (x, y, z) etla vitesse (vx, vy, vz) à partir de l'observation de deux angles : Site et azimut. (θ, ϕ)
Dans la terminologie de Kalman : la position et vitesse est un vecteur d'état : X→
et
l'observation est Y→
X→
=
xyzvxvyvz
Y→
=
θ
ϕ
Pour chaque instant, t, le filtre donne une estimation X t ainsi que sa précision Pt, à
partir de l'observation et l'estimation précédente, X t-1 , Pt-1, et l'observation Y
→ , et
sa précision, Py. Les précisions sont des covariances.
X t , Pt := F { X
t-1 , Pt-1, Y→
, Py }
Ce permet d'estimer un vecteur de N variable aléatoire à partir de M< Nobservations. Les précisions sont des 2ieme moments de l'erreur.
Le filtre récursif est un processus cyclique avec 5 phases :1) Prédiction de l'évolution temporelle de l'état.2) Observation3) Prédiction de l'observation4) Validation de l'observation.5) Mise à jour de l'estimation.
^
Validation
Mise à Jour Prediction
Observations
Y, PY Y, PYY, PY
X*, Px*
X, Px^Estimation
6-2
Suivi et estimation de movements Séance 6
Techniques :Prédictions: Modèle Linéairevalidation : Distance de Mahalanobis
(Distance normalisée par Covariance)Mise à Jour Estimation linéaire
Notation:
Vecteur d'état a temp t : X→
t
Estimation du vecteur d'état : X t , P
t
Observation : Y→
τ, PyPrédiction : Xt*, Pt*
Modèle du capteur : H XY
avec précision Py
Modèle du processus : ϕ(∆t) avec précision QtAffectation : :=Définition : ≡
Le modèle de Kalman suppose que les estimations sont corrompues par un bruit B→
.
X = X→
+ B→
Le bruit est une variable aléatoire de moyenne nul.La précision est le deuxième moment de ce bruit.
P ≡ E{ B→
B→
T} = E{(X→
–X )(X→
– X )T}
On ne peut connaître ni X→
ni B→
. Kalman nous fourni les estimations P t
6-3
Suivi et estimation de movements Séance 6
Prédiction de l'évolution temporelle de l'état
La phase de prédiction projets X t-1 et P
t-1 à temps t afin de produire Xt* et Pt*
On utilise les dérivées temporelles de X.
Ces dérivées peuvent êtres inclus dans le vecteur X t-1
Soit une propriété, x , du vecteur X , avec variance σ x2.
La prédiction de premier ordre x*(t) exige la dérivée temporel x '(t–∆t).
x ' t ∂x
t
∂t
Par série de Taylor, on peut écrire :
x*t := x t–∆t + x ' t–∆t ∆t + r
avec l'hypothese que E{r} = 0.Soit un vecteur de deux propriétés x 1 et x 2 avec une prédiction de premier ordre.
X t ≡
x1x1'x2x2'
Le prédiction est : X*t := ϕ (∆t)X t–∆t + R
avec le matrice de transition, ϕ(∆t) ≡
1 ∆t 0 0 0 1 0 0 0 0 1 ∆t 0 0 0 1
La précision de X*t est la covariances les propriétés x
Pt*
σx1
2 σx1'x1 σx2x1 σx2'x1
σx1x1' σx1'2 σx2x1' σx2'x1'
σx1x2 σx1'x2 σx22 σx2'x2
σx1x2' σx1'x2' σx2x2' σx2'2
oùσxx' E{ (x - x )(x' - x ')}
etσx'2 E{ (x' - x ')2}
La covariance Pt* est prédite par Pt* := ϕ(∆t)P t-∆t ϕ(∆t)T + E{ Rt RtT}
6-4
Suivi et estimation de movements Séance 6
Le processus peut avoir les dérivés d'ordre supérieur à le modèle.Ces dérivés donnent lieu au "résidu" R.R est supposée d'être moyenne nul.Son deuxième moment indique la perte de précision dû au modèle linéaire.
Xt := Xt–∆t + ∂Xt–∆t
∂t ∆T + Rt.
avec Q ≡ E{Rt RtT}
Prédiction :
I : Xt* := ϕ (∆t)X t–∆t + Rt.
II : Pt* := ϕ(∆t)P t-∆t ϕ(∆t)T + Qx
Modèle du capteur
Un capteur projet l'état du monde vers un vecteur d'observation :
III : Y→
τ := H XY
X→
tIV : Py ≡ E{Wt Wt T}
La matrice de H XY
est un modèle linéaire du capteur.Les observations sont corrompues par les bruits aléatoiresainsi que une erreur d'approximation.Ceci est représenté par l'erreur du capteur : Wt.
On suppose que E{Wt} = 0tandis que Py ≡ E{Wt Wt T}
Par exemple, considère l'observation Y d'un état Xt
Y = H XY
X =>
y1
y2 =
1 0 0 0
0 0 1 0
x1x1'x2x2'
deuxième exempl, la matrice de projection d'une caméra :
w Xi = Msi
Xs
6-5
Suivi et estimation de movements Séance 6
Aproximations des modèle non-linéaires
Souvent le vrai capteur n'est pas linéaire.
Y→
= F(X→
)
Dans ce cas, on peut faire une approximation linéaire avec la dérivée première, (laJacobienne), calculé au tour de l'estimation actuelle.
H XY
≈ J XY
= ∂F(Xt)
∂Xt =
∂y1∂x1
∂y1∂x2
∂y1∂x3
∂y1∂x4
∂y2∂x1
∂y2∂x2
∂y2∂x3
∂y2∂x4
et donc :
y1
y2 =
∂y1∂x1
∂y1∂x2
∂y1∂x3
∂y1∂x4
∂y2∂x1
∂y2∂x2
∂y2∂x3
∂y2∂x4
x1
x1'x2x2'
Validation
Validation repose sur une mesure de similarité. Une telle mesure estla "Distance de Mahalanobis" ou "Différence normalisée par covariance"
Soit la prédiction Xt* avec sa précision Pt*
et l'observation Y→
τ avec sa précision Py
Le distance de Mahalanobis est
V : d2 = 12 { ( H X
Y Xt* – Y
→τ )T (Pt* + Py)-1 (H X
Y Xt* – Y
→τ)}
Pour une scalaire :
d2 = (x* – y)2
2 (σx*2+σy
2 )
On considère que Xt*, Pt* définie une probabilité d'une observation Y.
Si il y a K prédictions : Xkt*, Pkt*, l'observation est associée a :
ArgkMin {dk2} tel que dk ≤ seuil.
Le seuil est un multiple de l'écart type.Son choix depend du problème
6-6
Suivi et estimation de movements Séance 6
Mise à Jour
Contraint d'un modèle par une Observation
Soit un modèle Xt*, Pt* et une observation Y→
τ, Py
X*YX^
Y fournis une contrainte sur X*.La nouvelle valeur est donnée par un moyen, pondérée par le variance:Les variances combine comme les résistances parallèles :
σx2 = σx2σy2
σy2 + σx2
et
Xnt = σx2 ( X*
σx*2 + Y
σy2 )
Formulation Kalman (estimation récursif): Le Gain de Kalman
K = σx2
σy2 + σx2
Puis :σx2 = σ*x2 – K σ*x2
etX = X* + K (Y – X* )
En plusieurs dimensions, le gain de Kalman est une matrice.Supposons que Y et X sont dans le même espace. (Même nombre de variables.
K := Pt* ( Pt* + Py )-1puis :
X t = Xt* + K [ Y – Xt* ].
et
P t = Pt* - K Pt*.
Et si X et Y ne sont pas du même repère,il faut le transformation H X
Y et son inverse H Y
X = H X
Y T
6-7
Suivi et estimation de movements Séance 6
Équations VI, VII et VIII du Filtre de Kalman :
VI : K := Pt* H XY
T [ H XY
Pt* H XY
T + Py] -1
VII : X t := Xt* + K [Y
→τ – H X
Y Xt*]
VIII : P t := Pt* – K H X
Y Pt*
L'Innovation
Le différence (Y→
τ – H XY
Xt*) est l'innovation de l'observation.Le gain K est une matrice qui donne le poids pour une mise à jour de xi à partir dechaque composant de l'innovation.
X t := Pt* – K H X
Y Pt*
x1
x2x3x4
=
k x1y1 k x1y2
k x2y1 k x2y2 k x3y1 k x3y2 k x4y1 k x4y2
y1– HX
1Xt*
y2– HX2Xt*
=
∂x1∂y1
∂x1∂y2
∂x2∂y1
∂x2∂y2
∂x3∂y1
∂x3∂y2
∂x4∂y1
∂x4∂y2
y1– HX
1Xt*
y2– HX2Xt*
K := Pt* H XY
T [ H XY
Pt* H XY
T + Py] -1
k x1y1 k x1y2
k x2y1 k x2y2 k x3y1 k x3y2 k x4y1 k x4y2
=
σ11
2 σ122 σ13
2 σ142
σ212 σ22
2 σ232 σ24
2
σ312 σ32
2 σ332 σ34
2
σ412 σ42
2 σ432 σ44
2
h 11 h21
h12 h22 h13 h23 h14 h24
• •
• • –1
ou
• •
• • =(
h 11 h 12 h 13 h 14
h 21 h 22 h 23 h 24
σ11
2 σ122 σ13
2 σ142
σ212 σ22
2 σ232 σ24
2
σ312 σ32
2 σ332 σ34
2
σ412 σ42
2 σ432 σ44
2
h 11 h21
h12 h22 h13 h23 h14 h24
+
σ11
2 σ122
σ212 σ22
2 )
6-8
Suivi et estimation de movements Séance 6
Suivi de Régions par filtre de Kalman
Détection par ratio d'histogramme
L'axe achromatique définit la luminance, L
L = R + V + B
Le spectre R(i, e, g, λ) = P(λ) Cos(i) dédend du pigment.Il est une signature pour la surface.Normalisation par la luminance laisse deux axes chromatiques : r, v
r = R
R+V+B v = V
R+V+B
Le chrominance est une signature pour l'objet disponible à chaque pixel.On peut apprendre et detecter cette signature avec une ratio d'histogrammes.
6-9
Suivi et estimation de movements Séance 6Histogrammes
Un histogramme est une table de fréquence. Il peut fournir une estimation d'unedensité de probabilités.
On peut utiliser les histogrammes pour calculer la probabilité qu'un pixel est uneprojection d'une objet.
Par example, on peut construire une histogramme pour le pixel de chrominance.On alloue un tableau 2D de taille Nh (exemple 32 x 32 = 1024 cellules : h(r, v).
Soit K images de M pixels. Ceci fait Mtot = M K Pixels.Soit htot(r, v), l'histogramme de tous les Mtot pixels.Soit ho(r, v), l'histogramme des Mo pixels de l'objet "o".
Pour chaque pixel C(i, j) dans chaque image, on incrémente la cellule del'histogramme qui correspond à (r, v)
htot(r, v) := htot(r, v) +1
Un histogramme des chrominance, h(C), des Mtot pixels dans une les images donneleurs fréquences d'occurence.
p(C) ≈ 1
Mtot htot(C)
Pour que l'estimation soit "raisonable", il faut assuré que Mtot >> Nh
Considére une région Wo de Mo pixels du même image correspondance à l'objet O.
∀(i,j) ∈ Wo : ho(C(i,j)) := ho(C(i,j)) + 1
Ensuite: p(C | objet ) ≈ 1
Mo ho(C)
Parce que W est dans l'image, la probabilité de rencontrer un pixel de W est MoMtot
6-10
Suivi et estimation de movements Séance 6
Détection par ratio d'histogramme
L histogramme permet d'utiliser la règle de Bayes afin de calculerla probabilité qu'un pixel corresponde à un objet.
Pour chaque pixel C(i, j) p(objet | C) = p( C | objet ) p(objet) p(C)
Soit M images de N pixels. Ceci fait Ntot Pixels.Soit htot(r, v), l'histogramme de tous les Ntot pixels.Soit ho(r, v), l'histogramme des No pixels de l'objet "o".
p(objet) = MoMtot
p(C) = 1
Mtot htot(C)
p(C | objet ) = 1
Mo ho(C)
Donc p(objet | C) = p( C | objet ) p(objet) p(C) =
1Mo
ho(C)
MoMtot
1Mtot
h tot(C)
p(objet | C) = ho(C)htot(C)
Par exemple, voici une image de la probabilité de peaux fait par ratiod'histogramme.
6-11
Suivi et estimation de movements Séance 6
Caractérisation par moments
On peut définir les caractéristiques "invariantes" de l'orientation avecdes "moments” de la forme.
Les moments sont invariants autransformations affines.
Pour une image w(i, j) de taille N x M
Somme des Pixels : S = ∑i=0
M ∑j=0
N w(i, j)
Premiers moments :
µi = 1S ∑
i=0
M ∑j=0
N w(i, j). i µj =
1S ∑
i=0
M ∑j=0
N w(i , j ) . j
Le premier moment est le centre de gravité de la forme :
Deuxième moment :
σi2 = 1S ∑
i=0
M ∑j=0
N (w(i, j)). (i–µi)2 σj2 =
1S ∑
i=0
M ∑j=0
N w(i, j). (j–µj)2
σji2= 1S ∑
i=0
M ∑j=0
N w(i, j). (i–µi)(j–µj)
Ceci permet de définir les "axes", majeur, λ1 et mineur, λ2, de la formepar analyse des composantes principales de la deuxième moment
Co
σi2 σij2
σij2 σj2
λ1λ2
Les deuxièmes moments sont "invariants" à l’orientation
6-12
Suivi et estimation de movements Séance 6
Application : Suivi des régions avec un filtre de Kalman
Le vecteur d'état est
Xt =
x
x ' y y ' s x s y s xy
wherex, y La position du cible en pixels
x', y' Les dérivées premiers ∂x∂t and
∂y∂t de la position (en pixles/sec)
sx, sy, ss Largeur, hauteur et orientation obtenus par les moments
. sx = σxx2 sy= σyy2 , ss = σxy2
CFt ∈ [0, CFmax]
P =
σxx2 σxy2
σxy2 σyy2 Incertitude de la position
V =
σx'x'2 σx'y'2
σx'y'2 σy'y'2 Incertitude de la velocité
6-13
Suivi et estimation de movements Séance 6
S =
σxx σxy σxs
σyx σyy σys σsx σsy σss
incertitude de la taille
Pt =
P
V S
Covariance composite
Pour chaque cible à temps t, le système détermine leut état Xt et sa précision Ptet confiance, CF t.
A partir de l'état précedent , , X t-∆t , Pt-∆t, CFt–∆ t et l'observation Y
→d
avec sa précision Pd, et sa confiance CFd
Prédiction
Xt* := ϕ (∆t) X t–∆t + Rt. (1)
Pt* := ϕ(∆t) P t-∆t ϕ(∆t)T + Qx (2)
La perte de précision dû à l' approximation linéaire est Qx
Q = E {R RT}
Qx a comme effet d'accroitre la incertitude de X avec le temps.
xt = xt-∆ t + k ∂y∂t ∆t yt = yt-∆ t + k
∂y∂t ∆t
Pour un suivi d'ordre zéro, le matrice de prédiction est
ϕ =
1 0
0 1
Dans ce cas, la préfiction est triviale
Xt* := X t–∆t (3)
Pt* := P t-∆t + Qx (4)
Pour une filtre de première ordre :
6-14
Suivi et estimation de movements Séance 6
(∆t) ≡
1 ∆t 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 ∆t 0 0 0
0 0 0 1 0 0 0
0 0 0 k∆t 1 0 0
0 0 0 k∆t 0 1 0
0 0 0 0 0 0 1
On peut déterminer un "Région of Interest" ou ROI pour la recherche:
left = x - 2 sx - 2 σxright = x + 2 sx + 2σxtop = y – sy – 2σybottom = x +2 sy + 2σx
We assume image coordinates with positive y coordinates pointing down.
Suivi robuste
Ayant une prédiction Xt* , on peut utiliser une technique de la statistique robustepour "supprimer" la distrations d'autre cible. On utilise la prédiction et saprecision pour génerer une covariance. L'image de détection est snuite multipliépar cette covariance. Ceci a come effet de ponderé les pixels par la prédiction etde supprimer l'influence de détections non-prédits.
On multiply la prévision par :
V = 2 Pt*
Given the ROI within a detection image d(x,y) the detection algorithm returns an
estimate of the position of the target Yd, the precision of the target, Pd and aconfidence factor for the detection CFd. These values are computed as follows.For a 4 σ ROI, the number of pixels in the ROI is N = 64 σxx σyy.
Un "porte de validation" sous forme de Gaussienne est :
G(x, y; Xt, V) = e–1
2
x y
σxx σxy
σxy σyy
x
y
6-15
Suivi et estimation de movements Séance 6
Le confiance de l'existence d'une cible est :
CFd = 1N ∑y=top
bottom ∑
x=left
right d(x, y) G(x, y; Xt, V)
la nouvelle position Yd est
Yd =
µx
µy
ou
µx = 1N ∑
y=top
bottom ∑
x=left
right d(x, y) · x · G(x, y; Xt, V)
µy = 1N ∑
y=top
bottom ∑
x=left
right d(x, y) · y · G(x, y; Xt, V)
la nouvelle envergure, Pd, est
Pd =
σxx2 σxy2
σxy2 σyy2
où
σxx2 = 1N ∑
y=top
bottom ∑
x=left
right d(x, y) · (x–µx)2 · G(x, y; Xt, V)
σyy2 = 1N ∑
y=top
bottom ∑
x=left
right d(x, y) · (y–µy)2 · G(x, y; Xt, V)
σxy2 = 1N ∑
y=top
bottom ∑
x=left
right d(x, y) · (x–µx) · (y–µy) · G(x, y; Xt, V)
6-16
Suivi et estimation de movements Séance 6
Suivi de Pixels
SSD et Inter Corrélation
Pour un bruit additif, une norme Euclidienne est la méthode "optimale" (minprobabilité d'erreur) pour détecter le voisinage d'une image qui ressemble à unmotif.
Message : à quel pixel (i, j) de l'image P(i, j) ressemble un motif, X(i, j).
Codage : les pixels composent le voisinage P(i,j) de taille MxN.
Hypothèse : bruit additif Gaussien.Pas de rotation dans l'image (2D)Pas de rotation dans l'espace 3DPas de changement d'échelle.
La norme Euclidienne est connue comme la SSD ("Sum of Squared Distances").Il s'agit d'une opération efficace et précise, mais fragile.
Définition :
Soit un motif X(m, n) pour m ∈ [0, M–1], n ∈ [0, N–1].Soit une image P(i, j) pour i ∈ [0, I–1], j ∈ [0, J–1]. (M << I, N << J)
Placer X(m, n) à chaque position possible (i, j) etmesurer la distance Euclidienne entre X et les MN pixels de P à (i, j).
SSD(i, j) = || X(m,n) – P(i+m, j+n) || 2
= ∑m=0
M–1 ∑
n=0
N–1 (P(i+m, j+n) – X(m, n))2
Si les pixels de P à la position (i, j) ressemblent à X, la distance est nulle.Sinon, la position ayant le maximum de vraisemblance est celle correspondant auminimum de la fonction SSD.
M i j
in { ∑
m=0
M–1 ∑
n=0
N–1 (P(i+m, j+n) – X(m, n))2 }
6-17
Suivi et estimation de movements Séance 6
Pixels d'un voisinage comme vecteur charactéristique
Les pixels X(m, n) peuvent être vus comme un vecteur X→
= Xk ou k = nM+m.Les pixels de chaque voisinage (i, j) de P peuvent aussi être vus comme un vecteur.
P→
= Pk ou k = (j+n)I+m+iL'opération SSD est la norme de la différence de ces deux vecteurs :
SSD(i, j) = || X→
– P→
||2 = ∑m=0
M–1 ∑
n=0
N–1 (p(i+m, j+n) – X(m, n))2 }
Une autre méthode de comparaison est le produit scalaire(CC pour "Cross Correlation") :
CC(i, j) = < X→
, P→
> = ∑m=0
M–1 ∑
n=0
N–1 P(i+m,j+n)X(m, n)
Si les vecteurs X→
et P→
ont une longueur unitaire, le produit scalaire est un cosinusde l'angle entre les vecteurs.
Xu(m, n) = X→
||X→
|| =
X(m, n)
∑m=0
M–1 ∑
n=0
N–1 X(m, n)2
Pu(m, n) = P→
||P→
|| =
P(i+m, j+n)
∑m=0
M–1 ∑
n=0
N–1 P(i+m, j+n)2
On obtient un inter corrélation "normalisée" par l'énergie (NCC) :
NCC(i, j) = < X→
u, P→
u> = ∑m=0
M–1 ∑
n=0
N–1 P(i+m,j+n)
| |P→
|| X(m, n)
||X→
||
Le NCC est le cosinus entre X→
u P→
u. Sa valeur est entre –1 et 1.
6-18
Suivi et estimation de movements Séance 6
Relation entre SSD et NCC :
Pour X→
u et P→
u le minimum d'une SSD vaut le maximum d'une NCC.
On note que pour X→
u, P→
u
|| X→
u – P→
u ||2 = || X→
u ||2 – 2 || X→
u P→
u || + || P→
u ||2
1 – 2 <X→
u, P→
u> + 1 = 2 – < X→
u, P→
u >
Suivi par l'inter corrélation : la zone d'intérêt
("Région of Interest" ou ROI):
Pour chaque position (i,j) recherchée, il faut MN additions et MN multiplications.On peut gagner en temps de calcul en limitant le nombre de positions testées.
Pour le suivi d'un objet, la taille de la zone de recherche est déterminée par ledéplacement maximum possible depuis la dernière image.Ceci se mesure en pixels/∆t, où ∆t est le temps entre images.
Si on limite la recherche à une ROI, on peut diminuer le temps entre images, ∆t.Si on réduit ∆t, on peut réduire la zone de recherche. Ceci entraîne une réductionsupplémentaire dans la zone de recherche, etc.
Taille de la zone de recherche
Vitesse maximale
de la cible
e0
ti
160
140
120
100
80
60
40
20
0
Vm
M 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Courbe Théorique (d'après Bérard 93): Courbe Expérimentale (Quadra 700)
6-19
Suivi et estimation de movements Séance 6
Suivi de Segments
Représentation de Segments de Contraste
Technique classique de détection : découpage récursif d'un segment de droite :
Segment :
P1
P2
Un segment est défini par deux points extremes : P1 et P2.
en C : point struct { int x, y; /* Coordonnées * / covariance_2 *C; /* precisions */};
Un point peut avoir une incertitude en position (une precision).Ceci est représenté par une covariance : Cp
Cp
σx2 σxy
σyx σy2
oùσxy E{ (x - x ) (y - y )}
etσx2 E{ (x - x )2}, σy2 E{ (y - y )2}
Les incertitudes sont estimées à base d’observations (un calibrage).Elles sont souvent des paramètres du système.
6-20
Suivi et estimation de movements Séance 6
Test de proximités de pixels
Deux points, P1 et P2 sont en "correspondance" si leur distanceest plus petite que la somme de leurs précisions.On utilise une distance de Mahalanobis afin de tester la correspondance :
d2 = –12 (P1–P2)T (Cp1+Cp2)–1 (P1–P2)
Similar(P1, P2) =
true –
12 (P1–P2)T (Cp1+Cp2)–1 (P1–P2) ≤ s 2
false Sinon.
ou "s" est l’'écart type pour lequel on accepte une correspondance.(typiquement s = 2).
Equation homogène d'une droite
Les segments appartiennet à une droite de support :
équation homogène : a x + b y + c = 0ou bien : Sin(θ) x – Cos (θ) y + c = 0
Soit P1 avec coordonnées (x1, y1) et P2 a pour coordonnées (x2, y2).
On peut calculer :
dx =(x2-y1) dy = (y2-y1) L = || (dx, dy) || = dx2 + d y2
Cos(θ) = b = dxL Sin(θ) = a =
dyL c = –(a x1+ b y1)
la distance de tout point (x, y) à la droite est : d = ax + by + c
La droite peut être représentée par un vecteur D→
= ( a, b, c)T.
pour un point P→
= (x, y, 1)T :
< D→
, P→
> = d et d = 0 pour tout P→
∈ D→
6-21
Suivi et estimation de movements Séance 6
Représentation MOL : "Midpoint-Orientation-Length".
Un segment de droite peut être décrit par une représentation "paramétrique" :composer un point central, direction, et longueur (Midpoint, Orientation, Length)
P1
P2L θPm
Segment : Pm: Point du Centre: (x, y)θ : OrientationL: Longueur
ou bien S→
(x, y, θ, L)
on peut ajouter les paramètres de la droite support : (a, b, c).
Il est également utile d'avoir d, distance perpendiculaire à l'origine.d = x Cos(θ) + y Sin(θ)
On note que (c, d) est une autre représentation de (x, y)et que (a, b) est une autre réprésentation de (θ).
en C :segment struct {point *p1, *p2; /* points extremes */
int x, y; /* point centrale */double theta; /* Angle */double l; /* length */double a, b, c; /* droit du support */double d; /* distance de l'origine */covariance_4D *C; /* Covariance */};
6-22
Suivi et estimation de movements Séance 6
La précision d'un segment.
Afin d’apparier les segments, il faut des précisions.Une précision est représentée par une variance (ou un écart type) :
Cxy : Covariance en position du point centralσθ2 : Variance en orientationσl2 : Variance en longueur
Cxy
σx2 σxy
σyx σy2
Les incertitudes sont estimées à base des observations (un calibrage).Elles sont souvent des paramètres du système.
On peut calculer une estimation de la précision pour chaque paramètrepar les moyens statistiques. On observe des segments est on mesure les statistiques.
Pour les segments de constraste : on constate que le bruit d'un segment parvientsurtout de la "cassure".
Si on "diagonalise" la matrice Cxy, on trouve un vecteur proprealigné avec le segment, et un vecteur "perpendiculaire" du segment.
La covariance dans la direction du segment est souvent très largeLa covariance perpendiculaire est petite.Donc, on peut simplifier, en remplaçant Cxy par σc2 et σd2
Ceci donne la représentation d'un segment : S→
{c, d, θ, L}avec Cs :
σc : Incertitude en position perpendiculaireσd : Incertitude en position tangentielleσθ : Incertitude en orientationσl : Incertitude en longueur
CS
σc2 0 0 0
0 σd2 0 0 0 0 σh2 0 0 0 0 σθ2
6-23
Suivi et estimation de movements Séance 6
Proximité d'une droite et un point.
pour la vraisemblance entre une droite et un point il faut déterminer la composantede la précision du point perpendiculaire à la droite.
Pax + by + c = 0
Cp
Jd
La composante de l'incertitude perpendiculaire à la droite est calculée
par la Jacobienne de la distance d = F(P→
) = a x + by + c
J→
d = ∂F(P
→)
∂P→ =
∂(ax+by+c)∂(x, y) =
∂(Sin(θ)x+Cos(θ)y+c)∂(x, y)
= ( ∂(Sin(θ)x+Cos(θ)y+c)
∂(x) ,∂(Sin(θ)x+Cos(θ)y+c)
∂y )
J→
d = (a, b) = (Sin(θ), Cos(θ)) = N→
d (La normale de la droite)
Noter qu'il s'agit d'un vecteur ligne !
σpN2 = J→
d Cxy J→
d T = (a, b)
σx2 σxy
σyx σy2
a
b
= (a, b)
bσx2+aσxy
bσyx+aσy2 =
= a(aσx2+bσxy) +b(aσyx+bσy2)= a2σx2 +2baσyx + b2σy2
= Sin(θ)2σx2 + 2 Sin(θ) Cos(θ) + Cos(θ)2σy2
σ2 = σpN2 + σc2
Similar( droite D, point P, σpN2 + σc2) =
true
12
<D→
P→
>2
σpN2+σc2 ≤ s 2
false sinon.
où s est la nombre d'ecart type qu'on accept. On peut faire s = 2.
6-24
Suivi et estimation de movements Séance 6
Proximité de deux segments.
Méthode 1 : calculer la distance de Mahalanobis entre les paramètres
Pour deux segments : S→
1 = (x, y, θ, L), avec Cs1
S→
2 = (x, y, θ, L), avec Cs2
où CS
σx2 σxy 0 0
σyx σy2 0 0 0 0 σh2 0 0 0 0 σθ2
Similar( S1, S2, Cs1+Cs2) =
true
12 (S1–S2)T(Cs1+Cs2)–1(S1–S2) ≤ s 2
false Sinon.
6-25
Suivi et estimation de movements Séance 6
Jonctions
Deux segments forment une jonction s'ils partagent un point.
if similar(S1.P2, S2.P1, S1.C+S1.C) then J = MakeJunction(S1, S2);
P
S2
S1
θϕ
Les paramètres d'une jonction sont :
P : Point Communϕ : angle interne ϕ = S2.θ – S1.θ
θ : angle externe θ = 12 (S2.θ + S1.θ)
segment struct {jonction *s1, *s2; /* segments */int x, y; /* point centrale */double phi; /* angle interne*/double theta; /* angle externe*/covariance_4 *C; /* Covariance */};
Les jonctions se ressemblent si leurs paramètres sont semblables.
Similar( J1, J2, J1.C+J2.C) =
true
12 (J1–J2)T C–1 (J1–J2) ≤ s 2
false Sinon.
6-26