• Aucun résultat trouvé

Matching de 2 frames :Tracking avec jetons

N/A
N/A
Protected

Academic year: 2022

Partager "Matching de 2 frames :Tracking avec jetons"

Copied!
76
0
0

Texte intégral

(1)

(2)

MOUVEMENT

(3)

Objectifs (idéalement):

• Présenter les concepts de base, l’importance et les

problèmes liés au suivi de trajectoires ou de déformation

• Connaître les techniques de tracking par mise en

correspondances de jetons et notamment le filtrage de

Kalman avec prise en compte des incertitudes en détection

• Connaître les techniques de déformation par contour actif particulièrement adaptées pour le suivi de formes

• Savoir implémenter des méthodes de tracking ( 2 ou 3 algorithmes)

• Explorer les techniques adaptées au suivi de tracking multi-cibles comme le filtrage particulaire

(4)

Techniques de Matching par jetons

(ou mise en correspondance éparse, mec)

Il s’agit d’estimer le champ de déplacement en certains points correspondant à des primitives éparses seulement.

Le résultat est un champ de déplacement épars.

On illustrera deux cas :

1. L’analyse frame-à-frame dans le cas de 2 frames

seulement, ce qui revient à trouver les disparités entre deux frames consécutives.

2. Le tracking (ou suivi) du déplacement d’une primitive à travers une séquence d’images plus longue, et qui peut améliorer la robustesse du matching frame-à-frame.

Remarque : Une partie ce qui suit est tirée de la thèse de Auguste Genovesio traitant du tracking de spot fluorescents en imagerie médidale disponible en ligne et d'un chapitre en particulier qui propose un bon bilan des méthodes de tracking ponctuel ou de forme (les références se trouvent dans le document et la thèse est disponible sur le site web du cours. Auguste Genovesio travaille actuellement à l'Institut Curie)

(5)

Techniques de Matching par auto-corrélation

Comment mesurer la similarité entre un patch « Target T » et des sous-patches d'une image I

(6)

Matching de 2 frames :Tracking avec jetons

Etant données deux frames capturées à différents instants et m points dans chaque image, le problème de mec revient à mapper un point d’une frame à un point de l’autre frame de sorte que deux points ne se mappent pas en un même point.

Rq: Le problème en stéréo est évidemment simplifié puisque les correspondants possibles se trouve le long de la droite épipolaire.

Rq: On voit le lien avec le flot optique

(7)

Dans le cas d’objets se déplaçant et de frames prises à intervalle quelconque, les matches possibles peuvent se trouver quasiment n’importe où dans la frame suivante,

contrairement à la stéréo où les frames sont séparées dans l’espace et non dans le temps.

Le problème de mec est ainsi extrêmement combinatoire et lourd à traiter de façon brutale. Pour 2 frames et 5 points dans chaque frame, le nombre de mappings possible est 5!=120.

Par ailleurs, même si on peut éventuellement construire ces 120 mappings, comment choisir le meilleur ?

Pour réduire la complexité du problème, on utilise des contraintes physiques ou heuristiques.

(8)

Smoothness

Rigidity

Differential Approaches

(See M. Shah book)

(9)

La difficulté est de traduire ces heuristiques qualitatives en expressions quantitatives afin de définir des fonctions de coûts. (Techniques d’optimisation de type Programmation Dynamique utilisées en Reconnaissance de Formes

structurelles).

Le problème revient alors à déterminer le mapping optimal en fonction de ces fonctions de coût.

L’énumération de toutes les configurations possibles n’est en général pas possible. Il s’agit donc de trouver un bon

algorithme d’approximation pour obtenir une solution sub- optimale très proche de la solution optimale.

(10)

Tracking avec jetons :

Algorithme itératif

S. T. Barnard and W. B.

Thompson, "Disparity analysis in images," IEEE Trans. Pattern Anal. Machine Intell., vol.

PAMI-2, pp. 333- 340, 1980.

Il s’agit d’un algorithme itératif pour calculer le flot optique pour m jetons.

Ils utilisent une mesure de confiance Pij qui code la

probabilité d’un jeton i du frame f1 à être associée au jeton j du frame f2 : Pij = P( (i,1)↔(j,2) )

(11)

P

ij0

= 1 c + w

ij

Les probabilités initiales Pij0 sont calculées en utilisant des différences de niveaux de gris dans des petites fenêtres autour des jetons se correspondant :

w

ij

= ∑

dy=−w dy=w

dx=−w

dx=w

( f

1

( x

i

+ dx , y

i

+ dy ) f

2

( x

j

+ dx , y

j

+ dy ) )

2

avec

(12)

A chaque itération, on calcule :

P

ijn

= P ̃

ijn

k

P ̃

ikn

Avec :

P ̃

ijn

= P

ijn−1

( A + Bq

ijn−1

)

et

q

ijn−1

= ∑

k

l

P

kln−1

Avec k voisin de i et l voisin de j, tels que :

∥( x

i

, y

i

)−( x

k

, y

k

)∥≤ D

max

et

V

ij

−V

kl

∥≤ V

max

où Vij est le “flot optique” du jeton i s’il est matché avec le jeton j dans l’autre frame

(13)

Algorithme ITER_TOKEN

INPUT : Une séquence temporelle de n images f1, … fn avec le même nombre de primitives ou jetons à apparier dans chaque frame.

Pour chaque paire de frames consécutives, et pour chaque paire de jetons i et j d’une frame à l’autre, calculer jusqu’à stabilisation

OUTPUT : le flot optique épars ou la correspondance de mouvement associé à l’ensemble des jetons de frame en frame.

Pij0=1

c+wij Pijn= P̃ ijn

k

P̃ ikn

avec P̃ ijn=P ijn1

(

A+Bqij n−1

)

et

qijn−1=

k

l

Pkln−1

(14)

Illustration de la méthode de Barnard et Thompson avec A=.3, B=3 et Vmax = 2, et Dmax=4

(15)

Matching multi-frames : Tracking avec jetons :

Algorithme non-itératif déterministe (voir le livre en ligne de M. Shah sur site web du cours)

Il s’agit de suivre des jetons dans plusieurs frames successives et d’utiliser un mapping initial entre les deux premières frames pour

propager cette information et adapter le mappings suivants en fonction de cette information a priori.

(16)

Détecteurs de Harris

?

(17)

Soit une séquence de n frames f1, f2, …, fn.

On suppose que les m jetons d’intérêt (détecteur de Harris pour les jonctions par exemple) ont été détectés.

Ainsi, chaque frame fi est réduit à un ensemble de m points.

Xij est le vecteur de coordonnées 2D du ième points dans la jème frame.

Le but est de trouver une correspondance bi-univoque Φk entre les points de la frame k et ceux de la frame k+1.

fk Xik fk+1

Xjk

X

Φk(i)

k+1

X

Φk( j )

k+1

(18)

Il n’est pas irréaliste de supposer que dans l’espace et sur des intervalles de temps petits, les objets se déplacent sur de petites distances. Et que leur mouvement correspondant est régulier ou uniforme : contrainte (a).

La régularité du mouvement implique un changement minime de la vélocité du point. C’est à dire quele point ne peut changer sa direction et sa vitesse de déplacement simultanément : contrainte (b).

Ainsi, les points vont suivre un certain chemin dit “proximal

uniform path”. La découverte de ce chemin régulier optimal va

utiliser la fonction de coût (“proximal uniformity function”) δ définie dans ce qui suit.

Soit les matrices des Changements Relatifs de la frame k-1 à k+1 Crk∈Μmxm et des Déplacements Relatifs de la frame k à la frame k+1 Drk ∈Μmxm.

On placera en ligne les points de la frame de départ et en colonne les points de la frame d’arrivée.

(19)

Ck Dk

Points de la couche k Points de la couche k

Points de la couche k+1

C

k

[ i , j ]=∥ X

Φ−(k1)(i)

k1

X

ik

X

ik

X

kj+1

et

D

k

[ i , j ]=∥ X

ik

X

kj+1

fk fk+1

X

ik

X

kj+1

fk-1

X

Φ−(k−1)(i)

k−1

Soit les matrices de Changement C et Déplacement D Absolus

Mapping initial

(20)

C r k [ i , j ]= C k [ i , j ]

u

v

C k [ u ,v ]

et

D rk [ i , j ]= D k [ i , j ]

u

v

D k [ u ,v ]

Soit

(21)

M

k

[ i , j ]=C

rk

[ i , j ]+ D

rk

[ i , j ]

Soit M∈Μmxm la matrice résultante :

Cette matrice code la fonction de cout δ pour une association (i,k) avec (j,k+1) sachant l’association optimale précédente ( Φ-(k-1)(i) , k-1 ) avec (i,k) :

M

k

[ i , j ]= δ ( X

Φ−(k−1)(i )

k1

, X

ik

, X

kj+1

)

En estimant quantitativement les critères de régularisation suivants :

•La vitesse ne change pas beaucoup entre deux frames successives;

•La direction ne change pas beaucoup entre deux frames successives;

•Le déplacement d’un point entre deux frames successives tend à être petit;

Trajectoire lisse et uniforme :

Controle des Changements du vecteur vélocité

Proximal Match

(22)

Dans cette formulation, on suppose qu’un premier mapping Φ1 entre la frame 1 et la frame 2 est disponible. On peut

utiliser l’algorithme à jeton itératif précédent, par exemple.

Ensuite l’algorithme va prolonger la trajectoire de frame en frame en utilisant ces contraintes de régularités initiales.

Le mapping Φk est déterminé en fonction des mappings

précédents de sorte à minimiser la fonction de coût globale sur toute la trajectoire :

C = ∑

k

δ ( X k p 1 , X q k , X r k +1 )

(23)

Algorithme GREEDY_TOKEN

INPUT :

Une séquence temporelle de n images f1, f2, …, fn. 

•Un ensemble de m jetons dans chaque frame. 

Une correspondance initiale entre les m jetons de la frame 1 et les m jetons de la frame 2 donnée par  l’algorithme ITER_TOKEN par exemple.

OUTPUT :  les trajectoires de la séquence d’images

(24)

• Quand le nombre de jetons varie, on peut adapter ce cadre algorithmique à la programmation dynamique (cf. reconnaissance de la parole et de

l'écrit manuscrit) http://www-i6.informatik.rwth-aachen.de/~dreuw/tracking.html

• Ces techniques séparent complètement le processus de segmentation/détection des primitives de leur suivi.

(25)

Bilan sur les Techniques de mec de type matching de jetons

(26)

Algorithme DYN_PROG

INPUT : Une séquence temporelle de T images X1, X2, …, XT.

Etape 1 : Pour chaque pixel p(x,y) de chaque frame Xt de la séquence :

Calculer un score local q(t,x,y)

Calculer un score global Q(t,x,y) et une table de pointeurs arrières B(t,x,y)

Etape 2 : A partir de la dernière frame XT :

Sélectionner un centre de tracking cT=argmaxx,yQ(T,x,y)

Sélectionner par retour jusqu'à la frame X1: ct-1=B(t,ct)

OUTPUT : le meilleur chemin pour le jeton sélectionné à partir de la dernière frame

Qt , x , y=qt , x , y max

x ' , y '∈Mx , y

Qt−1,x ' , y '−Tx ' , y ' , x , y

Bt , x , y= argmax

x ' , y '∈Mx , y

Qt−1,x ' , y'−Tx ' , y ' , x , y Tx , x ' , y , y '=a∗d2x , x ';y , y '

(27)

Algorithme DYN_PROG

INPUT : Une séquence temporelle de T images X1, X2, …, XT.

Etape 1 : Pour chaque pixel p(x,y) de chaque frame Xt de la séquence :

Calculer un score local q(t,x,y)

Calculer un score global Q(t,x,y) et une table de pointeurs arrières B(t,x,y)

Etape 2 : A partir de la dernière frame XT :

Sélectionner un centre de tracking cT=argmaxx,yQ(T,x,y)

Sélectionner par retour jusqu'à la frame X1: ct-1=B(t,ct)

OUTPUT : le meilleur chemin pour le jeton sélectionné à partir de la dernière frame

Qt , x , y=qt , x , y max

x ' , y '∈Mx , y

Qt−1,x ' , y '−Tx ' , y ' , x , y

Bt , x , y= argmax

x ' , y '∈Mx , y

Qt−1,x ' , y'−Tx ' , y ' , x , y Tx , x ' , y , y '=a∗d2x , x ';y , y '

(28)

Motion Information Score Function ou EigenFaces and Skin Color Functions

(voir article Tracking using dynamic Programming for appearance-based Sign Language Recognition)

Pour tracker plusieurs objets identiques, il suffit de remonter le chemin correspondant aux multiples hypothèses en prenant des précautions quand les chemins (hypothèses) se croisent

Très intéressant quand on tracke des objets en présence

d'occlusions, de gaps, ou pour le tracking off-line, de fond non statique, de plusieurs objets cibles en controlant le tracking par la taille IxJ du rectangle de tracking, la zone des prédécesseurs M et la pénalité de saut T.

Des stratégies sont à imaginer pour le temps réel.

(29)

Matching multi-frames : Tracking :

Filtrage de Kalman

(voir vidéo Walk1.mpeg)

Définition :

Il s’agit de mettre en correspondance des primitives sur une séquence d’images longue en associant des incertitudes...

Lecture : lisez la thèse de Auguste Genovesio (genovesioThesis.pdf)

Il s’agit comme précédemment d’utiliser le travail de mise en correspondance passé pour prédire la mise en correspondance à venir dans l’hypothèse de trajectoires continues.

Pour cela, il existe une cadre théorique bien établi venant des techniques d’optimisation ; le filtre de Kalman.

Dans nos problématiques de vision, un filtre de Kalman est mis en place sous la forme d’un algorithme récursif qui estime la position et l’incertitude d’un point caractéristique mobile dans la frame suivante à partir des frames précédentes.

En d’autres termes, on cherche la primitive dans cette frame et la taille de la région autour de la primitive prédite pour être sûre de trouver la dite primitive avec une certaine confiance.

(30)

Cadre de modélisation bayésienne

(31)

Math

Voir document kalma.HMM.ps

L’estimée résultat est optimal au sens statistique : sur un grand nombre d’expériences, le filtre de Kalman, s’il est bien conçu, serait meilleur, en

moyenne, que les estimées résultats de tout autre filtre de prédiction sous l’hypothèse d’un système linéaire et de bruit blanc gaussien.

Si le bruit est non gaussien, le filtre de Kalman est encore le meilleur filtre linéaire non biaisé.

[P.S. Maybeck, Stochastic Models, Estimation, and Control, Vol I. Academic Press, New York, 1979]

(32)

• Un système physique.

• Distinction entre paramètres:

–qui modélisent le système;

–que l’on peut mesurer.

• Estimer les premiers à partir des seconds.

Principe

oi

(33)

Prise en compte des incertitudes

• Les mesures sont imprécises/incertaines

• Le modèle est simpliste donc ….

• Dans ce formalisme statistique, on fait

une estimation s

i

de l’état courant s

i

à partir des observations o

i

.

• On veut savoir la fiabilité d’une estimation s

i

de l’état courant s

i

.

ce que le filtre de Kalman permet.

(34)

•On a accès à:

• bruit blanc additif et:

• Evolution du modèle:

• n

i

bruit blanc additif et :

η

i

o ̂

i

=o

i

+ η

i

R

i

= E [ η

i

. η

it

]

Q

i

= E [ n

i

. n

it

]

s i + 1 = h i ( s i )+ n i

Les notes de Joella le mois i

Etat de concentration du professeur pour le mois i

Etat de connaissance de Joella le mois i+1

Etat de concentration de Joella pour le mois i

Formalisation: mesure et vecteur d’états

(35)

•Filtrage de Kalman: processus itératif d’estimation du vecteur

•Estimation à l’instant i:

• traduit la confiance que l’on a en l’estimation

• Si on connaît , statistiquement parlant la meilleure estimation possible de est:

s

i

̂ s

i

associée à P

i

= E [( ̂ s

i

s

i

)( ̂ s

i

s

i

)

t

]

̂ s

i

P

i

̂ s

i−1

̂ s

i/i1

= h

i

( ̂ s

i−1

)

Formalisation: mesure et vecteur d’états

(36)

• du Lien entre les observations et le vecteur d’état:

•Cas linéaire:

f

i

( o

i

, s

i

)= 0

f

i

: ℜ

mi

×ℜ

n

→ ℜ

pi

o ̂ i = F i . s i + η i

Formalisation: les équations de mesures,ou de

quoi dispose-t-on en pratique ?

(37)

• et on a bien:

zi=Mi.si+wi avec

zi=− f i(oi , ̂si/i−1)+∂ f i

si (oi ,̂si/i−1).ŝi/i−1 Mi=∂ f i

si (oi ,̂si/i−1) wi=∂ f i

oi (oi ,̂si/i−1).( ̂oi−oi)=∂ f i

oi (oi ,̂si/i−1).ηi

Formalisation: les équations de mesures

• Dans le cas non-linéaire, on s’y ramène: développement de Taylor à l’ordre 1 de

f

i :

f i( ̂oi , si)= f i(oi,ŝi/i−1)+ f i

xi .( ̂oixi)+ f i

si .(si−̂si/i−1)+. . .

(38)

3 étapes, propagation des incertitudes.

•Initialisation:

•Prédiction (grâce au modèle système) :

•Calcul du gain de Kalman:

Mise à jour (grâce aux mesures) :

Un pas du filtre.

̂si= ̂si/i−1+Ki.(ziM isi/i1) Pi = ( IKi. M i). Pi/i−1

( ̂s0, P0)

̂si/i−1= hi( ̂si−1) Pi/i−1= hi

si ( ̂si−1).Pi−1.hi

si ( ̂si−1)t+Qi−1

Ki= Pi/i−1. Mit .(Mi. Pi/i−1. Mit+W

it)−1

L’algorithme

(39)

L’algorithme : interprétation

•Compromis entre la contribution de la prédiction et de la mesure:

•On peut réécrire:

•Grande incertitude sur le vecteur d’état donc « grande », « grand » donc innovation favorisée.

•Grande incertitude sur la mesure donc « grande » ,

« petit » , donc prédiction favorisée.

K

i

W

i

K

i

K

i

= P

i

. M

it

. W

i−1

P

i

ˆ ) . (

ˆ .

ˆ

i

= s

i/i 1

+ K

i

z

i

M

i

s

i /i 1

s

prédiction innovation

(40)

Formalisons dans ce cadre le problème du tracking.

Une nouvelle frame de la séquence d’image est acquise et traitée à chaque instant tk=t0+k où k est un entier naturel.

k est suffisament petit pour considérer que le mouvement est linéaire d’une frame à l’autre.

On considère seulement un point primitive, pk=[xk,yk]T, dans la frame acquise à l’instant tk, se déplaçant avec la vélocité vk=[vx,k,vy,k]T.

(41)

On décrit le mouvement dans le plan image avec un vecteur d’état sk=[xk,yk,v x,k,v y,k]T.

En supposant un intervalle d’échantillonnage suffisamment petit (et donc une vélocité de la primitive constante entre 2 frames), le modèle

système s’écrit dans le cadre du filtre de Kalman :

p

k

= p

k−1

+ v

k1

+ ξ

k−1

v

k

= v

k1

+ ζ

k1

où ξ

k−1

et ζ

k−1

sont des bruits blancs gaussiens modélisant le bruit du système .

Le modèle du système : ou prédiction du vecteur d’état

En terme de vecteurs d’état xk cela s’écrit :

sk=Hk1sk−1+nk−1

avec Hk1=

[

1 0 1 00 1 0 10 0 1 00 0 0 1

]

et nk1=

[

ξζkk−1−1

]

(42)

En terme de mesures, on suppose qu’un extracteur rapide de primitive est disponible et estime zk, la position du point primitive pk pour chaque frame de la séquence. Ainsi le modèle de mesure du filtre de Kalman devient :

z

k

= [ 1 0 0 0 0 1 0 0 ] [ p v

kk

] + w

k

= Ms

k

+ w

k

avec w

k

bruit blanc Gaussien centré modélisant le bruit de mesure

Le modèle de mesures

Remarque : dans le cas linéaire : Rk=Wk, Mk=Fk et zk=

Hypothèses et Positions du problème

Sous les hypothèses du filtre linéaire de Kalman, et étant données les observations bruitées zk, calculer la meilleure estimée de la position de la primitive et de sa vélocité à l’instant tk ainsi que leurs incertitudes associées.

o ̂

k

(43)

Algorithme KALMAN_TRAKING

INPUT : L’entrée est formée, à chaque instant tk, des deux matrices de covariance des bruits du système et de mesure à l’instant tk-1, Qk-1 et Wk-1 respectivement, plus les deux matrices invariantes temporellement d’état d’une part, H, et de mesure, M, d’autre part, ainsi enfin que des mesures de position à l’instant tk, zk. Les entrées de P0 sont fixées à de très fortes valeurs arbitraires.

OUTPUT : les estimations optimales des position et vélocité à l’instant tk, ,et leurs incertitudes données par les éléments diagonaux de Pk.

̂ s

k/k−1

= H

k−1

̂ s

k−1

P

k/k−1

= H

k−1

P

k−1

H

k−1T

+ Q

k−1

K

k

= P

k/k−1

M

kT

( M

k

P

k/k1

M

kT

+ W

k

)

−1

̂ s

k

= ̂ s

k/k−1

+ K

k

( z

k

M

k

H

k−1

̂ s

k−1

)

P

k

=( IK

k

) P

k/k1

( IK

k

)

T

+ K

k

W

k

K

kT

̂ s

k

Prédiction modèle

Gain

MAJ de la prédiction modèle par le biais des

mesures

(44)

Le filtre quantifie l’incertitude sur l’estimée de l’état, sous la forme des éléments diagonaux de la matrice de covariance d’état Pk

Cette information permet au détecteur de primitives de dimensionner automatiquement la région de recherche de la primitive dans la frame suivante.

Cette région de recherche est centrée sur la meilleure position estimée et sa largeur est proportionnelle à l’incertitude.

Dans un filtre correctement conçu, la valeur de cette incertitude décroit

rapidement avec le temps et la région de recherche se rétrécit d’autant avec le temps.

Dans l’exemple présenté, la taille des croix indique la zone d’incertitude dans laquelle rechercher la primitive dans la frame suivante.

Remarque : la matrice de covariance d’état ne dépend pas des mesures. Donc, si la dépendance temporelle de Hk, Mk, Qk et Rk est connue, Pk peut être calculée off-line et ensuite être approximée par une fonction en escalier. Cette propriété peut être cruciale pour les implémentations temps réel du filtre de Kalman.

(45)

Deux problèmes se posent pour l’implémentation de cet algorithme : Les données manquantes

Le filtrage de Kalman repose sur la connaissance suivante :

Le modèle du système et la matrice de covariance du bruit correspondant Qk

Le modèle de mesures et la matrice de covariance du bruit correspondant Rk

L’état initial du système (temps t0), , et la matrice de covariance d’état, P0

Cependant, nombre de données parmi ces dernières sont inconnues.

Toutefois, en général, elles sont modélisables de façon simples linéairement. Il faut juste prendre garde à faire en sorte que Q et R soient comparables pour que la prédiction ou l’innovation ne l’emporte pas de façon injustifiée sur l’autre.

L’association des données (Data Association)

En présence de plusieurs primitives cibles images et de multiples mesures, quelle mesure observée doit être associée avec quelle primitive cible ?

Le cas de cibles en désordre et interférant est particulièrement traité dans la thèse de Auguste Genovesio. Un cadre générique mais coûteux en temps de calcul : le filtrage particulaire.

̂ s

0

(46)

Incertitude de Kalman.

C’est la région de l’espace d’état qui contient le véritable état avec une probabilité donnée.

Exemple : soit le vecteur d’état 2D ek=[x1,x2]T. Le filtre de Kalman calcule l’estimé d’état optimal, êk, comme le maximum de la densité de probabilité conditionnelle de ek étant donnée la

mesure zk. Cette fonction de densité est supposée Gaussienne, si bien que son maximum coïncide avec sa moyenne.

Conséquences pratiques :

•La région du plan centrée sur êk qui contient le véritable état avec une probabilité c2 est l’ellipse :

•Les axes de cette ellipse sont :

•La variable (e-êk)(Pk)-1(e-êk)T a une distribution du Chi-2 Utilisation pratique, pour le tracking :

•A t k-1, la prédiction d’état du filtre à tk est ê k/k-1= H k-1 ê k-1 avec la matrice de covariance P k/k-1. On diagonalise P k/k-1 pour obtenir ses vecteurs propres, considère les composantes du vecteur d’état

donnant la position [x1,x2]T de la primitive, et on construit une ellipse d’incertitude (centrée en ê k/k-1 avec une probabilité désirée de (1-a)), et on cherche la primitive dans la frame k seulement dans l’ellipse.

Une fois que votre détecteur de primitive a mesuré la position de la primitive à tk, on calcule êk et Pk, ce qui vous permet de construire l’ellipse d’incertitude contenant la véritable primitive à tk avec le niveau de probabilité choisi.

(e− ̂ek)(Pk)−1(e− ̂ek)T≤c2

±cλiei,i=1,2, à partir des éléments propres de Pk

(47)

Suivi de la trajectoire d’une particule dans le plan

• Le système: mouvement à accélération constante

• Equation de mesures:

• Incertitude: Meyer a montré que

si ¿ [xi x˙i x¨i yi y˙i ¨yi ]t si+1 ¿

[

1 Δt10 ΔtΔt21 1 Δt01 ΔtΔt21

]

.si+ni

zi=[xi yi ]t zi=

[

1 0 0 0 0 0

0 0 0 1 0 0

]

.si+wi

Qi=

[

20ΔtΔtΔt66533 ΔtΔtΔt832432 ΔtΔtΔt6232

]

(48)
(49)

Bilan sur la Technique de tracking de Kalman

(50)

C.elegans developing embryo (3D)

Waterston Lab -The George Washington University. Washington DC (USA) Microscope: Zeiss LSM 510 Meta

Objective lens: Plan-Apochromat 63X/1.4 (oil) Pixel size (microns): 0.09 x 0.09 x 1.0

Time step (min): 1 or 1.5

From ISBI cell-tracking challenge:

http://www.codesolorzano.com/celltrackingchallenge/Cell_Tracking_Challenge/Datasets.html

Sea urchin embryogenesis

Nicolas Minc Lab -Institut Jacques Monod – Université Paris Diderot (France), SPC

https://www.youtube.com/watch?v=vLXGDLDoQmc

(51)

Suivi de primitives multi-frames :

filtrage particulaire ou la version évolutionnaire avec un peu de Bayes (voir vidéo spots.avi)

Encore appelé algorithme CONDENSATION ou filtre bootstrap Permet de manipuler numériquement des modèles joints.

Repose sur un principe de ré-échantillonnage qui correspond à la sélection dans les algorithmes évolutionnaires (GA).

Selon nous, c'est un type d'algorithme qui s'inspire des algorithmes de type ISODATA (voir K-Means clustering) avec une philosophie

algorithme évolutionnaire et un formalisme probabiliste/stochastique bayésien et markovien.

Il traite le cas intéressant suivant : les cibles disparaissent, apparaissent, fusionnent, fissionnent dans un cadre unique mais coûteux.

t

(52)

Voici comment apparaît l'algorithme dans la littérature : autant dire assez difficile d'approche au premier abord.

Nous en donnons une version simplifiée mais assez proche de la philosophie, et au final de la façon de l'implémenter après les simplification nécessaires à un modèle trop coûteux en général.

Tiré de Conditional Filters for Image Sequence Based

Tracking - Application to Point Tracking. Elise Arnaud et al. Trans. on Image Processing

(fichier Ip05Arnaud.pdf).

Egalement dans KalmanParticle.pdf une bonne explication du lien/différence entre Kalman et Particle Filtering

(53)

Algorithme PARTICLE FILTERING

INPUT : Une séquence temporelle de n images I0, … In Etape 1 : Intitialisation

1.1. On lance le détecteur de cible sur image I0. On obtient K mesures Z0 1.2. On calcule le flot optique entre I0 et I1

1.3 pour chaque cible détectée ou choisie, on peut créer un vecteur d'état S0

S0= (x y dx dy)T

1.4 Tirage de particules initiales. Soit N le nombre de particules choisi (ex. 50).

Pour chacune des K détections initiales, on considère que :

S0(i) ∼ Ν (S, (xk yk dxk dyk)T, Σ), loi normale avec par ex.

On en tire N/K pour chaque détection par un processus MCMC (Monte Carlo Markov Chain)

1.5 Affectation des poids initiaux

w0(i)=1/N

xy dxdy

0.5 0 0 0

0 0.5 0 0

0 0 0.5 0

0 0 0 0.2

(54)

Etape 2 : Boucle de filtrage / suivi de l'image 1 à n (pour t=0 à n-1) 2.1. Prédiction des particules par tirage MCMC :

S't+1(i) ∼ Ν (S, HSt(i), Q)

2.2. Detection :des cibles dans It et obtention du vecteur de mesures Zt

2.3 Data Association : d'une observation à une particule : peut-être l'étape la plus délicate à mettre en place concrètement.

2.4 Mise à jour des poids par tirage MCMC :

wt+1(i)=p(zk(i) | s't(i)) ∼ Ν (z, Hs't(i), R)

1.5 Sélection des particules par poids et redistribution

On ne garde qu'une certaine proportion des particules de meilleurs poids et on redistribue par tirage de loi uniforme selon la probabilité associée au poids des particules pour en avoir N.

OUTPUT : les trajectoires complexes de cibles.

Algorithme PARTICLE FILTERING

(55)

Principe du tirage aléatoire pour une probabilité de tirage p : par ex. Affecter à x une valeur a avec une proabilité p sinon affecter une autre valeur b

0 z=drand48() 1

Si z <p, x=a sinon x=b

Utilisation de ce principe pour le tirage d'une loi normale ou gaussienne type Ν (x, mu, sigma)

(56)

Tirage selon une loi gaussienne

Lecture : Pour plus de détail sur le filtrage particulaire lire le tutoriel de Nicolas Paul : particlePaul.pdf

Voir 2D_sampling.nb.pdf pour le tirage d'une

gaussienne 2D

(57)

Suivi de contours multi-frames :

Snake ou Contours actifs Définition :

Il s’agit de suivre un contour d'objet légèrement mouvant sur une séquence d’images longue.

Lecture : lisez la thèse de Alexandre Dufour (dufourThesis.pdf)

D'abord une méthode de segmentation en image fixe

(58)
(59)
(60)

Suivi de contours multi-frames :

Level Set Methods Définition :

Il s’agit de suivre plusieurs contours d'objets dont le nombre varie et légèrement mouvant sur une séquence d’images longue.

• Travaille dans le cadre des equations aux dérivées partielles (EDP)

• D'abord une méthode de segmentation en image fixe qui s'étend naturellement aux séquences vidéo par son approche optimisation itérative

(61)

Du modèle continu à l’implémentation discrète: Active Contours (a) Snake model : infCJ1(C) (explicit active contour)

(b) Level Set Method model (implicit geometric active contour)

(62)

Du modèle continu à l’implémentation discrète:

The level set model with region: Infc1,c2,C F(c1,c2,C)

(63)

Du modèle continu à l’implémentation discrète:

The level set model: discretization by finite elements

(64)
(65)

λ1=1 λ2=50 ε=1

∆t=10

(66)
(67)

- Conclusion : pour le tracking de spots fluorescents dans des images biologiques par exemple, voir la thèse de Auguste Genovesio et le logiciel Icy @ http://ccy.bioimageanalysis.org de l'Institut Pasteur

(68)

“Performance of Optical Flow Techniques”, J. Barron et al., IJCV, vol. 12, pp. 43-77, 1994

“Determining Optical Flow”, Horn et Schunck, AI, vol.17, pp. 185- 203, 1981

“Use of Optimal Estimation Theory, in Particular the Kalman Filtering, in Data Analysis and Signal Processing”, W. Cooper,

Review of Scientific Instrumentation, vol. 57, pp. 2862-2869, 1986

“Three-dimensional computer vision : A geometric Viewpoint”, O.D. Faugeras, MIT Press, Cambridge (MA), 1993

“Introductory techniques for 3D computer vision”, E. Trucco et Alessandro Verri, Prentice Hall, 1998

Bibliographie

(69)

Le temps manquant, je n’ai pas parlé de :

• Détection de changement dans des séquences vidéos (différences d’images sophistiquées) - de plans dans des films et de façon sous-jacente des problématiques de codage vidéo

• Du tracking de référence de points de Harris : l'algorithme de Kanade Lucas et Tomassi (KLD)

disponible dans beaucoup de bibliothèques tels que openCV en C++ par exemple

(70)

L'algorithme de Lucas-Kanade

C'est une version de l'algorithme CONST-FLOW.

Deux améliorations notables:

- raffinement itératif de type descente de gradient Newton - gestion des mouvements plus amples par une approche multi-échelle

(71)

On réduit la résolution

* From Khurram Hassan-Shafique CAP5415 Computer Vision 2003

(72)

image It-1 image I

Gaussian pyramid of image I(t-1) Gaussian pyramid of image I(t) image I(t)

image I(t-1) u=10 pixels u=5 pixels u=2.5 pixels u=1.25 pixels

Coarse-to-fine optical flow

estimation

(73)

image I image J

Gaussian pyramid of image I(t-1) Gaussian pyramid of image I(t) image I(t)

image I(t-1)

Coarse-to-fine optical flow estimation

run iterative L-K

run iterative L-K

warp & upsample

.. .

(74)

Tracking results

With and without pyramide

(75)

Multi-resolution Lucas Kanade Algorithm

Compute Iterative LK at highest level For Each Level i

•Take flow u(i-1), v(i-1) from level i-1

•Upsample the flow to create u*(i), v*(i) matrices of twice resolution for level i.

•Multiply u*(i), v*(i) by 2

•Compute It from a block displaced by u*(i), v*(i)

•Apply LK to get u’(i), v’(i) (the correction in flow)

•Add corrections u’(i), v’(i) to obtain the flow u(i), v(i) at ith level, i.e.,

u(i)=u*(i)+u’(i), v(i)=v*(i)+v’(i)

(76)

Références

Documents relatifs

• Head-locked - The caption is rendered in the user's view point and is moved in sync with the user to ensure the caption remains statically attached to the view point.. •

• or, de nombreuses grandeurs biologiques (taille, envergure et poids à la naissance, …) sont la résultante de nombreuses causes aléatoires indépendantes s’exerçant au cours

Dans le cas d’une situation de variation inverse, lorsque l’on multiplie les valeurs de la variable indépendante (x ) par les valeurs de la variable dépendante.. ( y ) associées,

Lorsqu’une piscine est pleine, elle contient 39 000 L d’eau. La piscine de Martine est percée et perd 15 L d’eau par heure. a) Quelle est la règle représentant cette

b) Un horticulteur calcule le nombre de sacs d’engrais à acheter selon le nombre de clients à satisfaire.. 10-Dans chaque cas, détermine la règle à partir de la table

The problem of invariant output tracking is considered: given a control system admitting a symmetry group G , design a feedback such that the closed-loop system tracks a desired

➢ Permet d'identifier l'utilisateur et de savoir ce qu'il a fait sur le site.?. Création de profils

The best technique known so far is to combine a traditional tracking approach presented so far (based on image pairs) to compute matching, with an affine image matching (using a