3. 3
Suivi de mouvement (tracking)
Plusieurs étapes dans le mouvement
Identifier le mouvement dans les images
différence d’images
Estimer le mouvement dans les images
flot optique
Suivre le mouvement dans les images (tracking)
4. 4
Suivi de mouvement (tracking)
But : suivre un objet sur plusieurs images
en temps réel (une image après l’autre)
Problèmes :
Suivre le même objet sans le perdre
Trouver sa position dans chaque nouvelle image
Séparer les différents mouvements de l’image
On étudiera ici le Filtre de Kalman
Estimateur récursif optimal
Modèle de prédiction linéaire
5. 5
Suivre un objet dans l’image
On veut suivre un même
objet sur plusieurs
images
A partir des positions de
l’objet dans les images
passées, on veut trouver
la position dans l’image
courante
Positions d’un objet sur plusieurs images
position dans l’image 1
position dans l’image 2
position dans l’image 3
position dans l’image 4
position dans l’image 5
position dans l’image 6?
6. 6
Prédiction, mesure et correction
Position initiale
Prédiction Correction
Mesure
Source : RC Johnson, A Brief Summarization of the Kalman Filter, V.A.S.T lab (USA).
7. Erreurs de mesure et mise à jour
mise à jourposition initiale
x
y
x
y
prédiction
x
y
mesure
x
y
Il faut calculer une erreur pour chaque prédiction.
Les mesures aussi comporte des erreurs
(différentes des erreurs de prédiction)
Source : Temporal Filtering and Tracking, Introduction to Computer Vision, Stanford University (USA).
8. 8
Erreur de mesure (segmentation)
Lorsqu’on segmente un
objet dans l’image, ou
lorsqu’on mesure la
position d’un objet dans
l’image, on a toujours
des erreurs
On veut calculer la
trajectoire de l’objet en
diminuant les erreurs
Positions d’un objet sur plusieurs images
Position mesurée
Position réelle
9. 9
Plusieurs mouvements dans l’image
Si plusieurs objets se
déplacent en même
temps, on veut suivre
chaque objet
séparément et sans les
confondre
Exemple : match de
football
Positions des objets sur plusieurs images
?
10. 10
Représenter un objet dans l’image
On représente un objet à suivre par un point
Ce point est en fait un vecteur de caractéristiques
Position x et y du point dans l’image
Vitesse vx et vy du point dans l’image
exemple : vitesse vx de 2 pixels/image ± 0.3 pixel
Accélération ax et ay du point dans l’image
Taille (en pixels) de l’objet dans l’image
Exemple de vecteur avec
position + vitesse : X =
[
x
y
vx
vy
]
11. 11
Détection et suivi de personnes
Exemple de classification des objets détectés (mouvement)
personne, groupe, train, bruit, …
Pour chaque objet
boîte englobante minimale
caratéristiques : position, ratio 3D, hauteur/largeur, …
Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).
12. 12
Plusieurs vecteurs de paramètres
On utilise plusieurs vecteurs différents :
Une prédiction sur le point dans l’image (x, y, vx, vy)
Estimation de la nouvelle position du point dans l’image
Une mesure dans l’image (position x et y seulement)
Après segmentation (ou autre), on mesure le point
Une correction sur le point (x, y, vx, vy)
Estimation corrigée avec la mesure qui a été faite
13. 13
Erreur sur les variables
On a deux types d’erreurs :
Erreur sur la prédiction du point
Puisqu’il s’agit d’une estimation seulement
Parce qu’un point peut changer de direction ou de vitesse
Erreur sur la mesure
Venant surtout des algorithmes de traitement d’images
Hypothèse : chaque variable suit une loi normale
x ~ N(µ,σ2
) : loi normale de moyenne µ et d’écart-type σ
(ou de variance σ2
)
14. 14
Erreur sur les variables dépendantes
Les variables ne sont pas indépendantes
Exemple : vitesse globale constante, mais vx et vy changent
On utilisera donc les covariances au lieu des variances :
x ~ N(µ,Σ) : loi normale de moyenne µ et de covariance Σ
Σ = Var x Cov x , y
Cov x , y Var y =
σ x
2
σx , y
2
σx, y
2
σ y
2 Exemple de matrice
de covariance :
x
y
vx
vy
15. 15
Filtre de Kalman
Estimateur récursif optimal et modèle de prédiction linéaire
On se base plutôt sur les mesures récentes que sur le passé
lointain
On utilisera :
X : un état calculé (prédiction ou correction)
Y : une observation (ou mesure) dans l’image
But : calculer xt en connaissant xt-∆t et yt
xt-∆t : prédiction de la position/vitesse du point dans l’image
yt : mesure de la position du point dans l’image
xt : correction de la position/vitesse du point dans l’image
16. 16
Bruit gaussien (loi normale)
Hypothèse d’un bruit gaussien et d’une loi normale
Etat courant (prédiction) :
xt ~ P(Xt | Xt-∆t) ~ N(Dt xt-∆t ; Σd,t)
avec D comme modèle dynamique d’évolution de l’état
(fiabilité du calcul versus la mesure dans l’image)
Observation courante (mesures) :
yt ~ P(Yt | Xt) ~ N(Mt xt ; Σm,t)
avec M comme modèle de précision des mesures
(précision des algorithmes de traitement d’images)
Hypothèses initiales : x0
-
et Σ0
-
sont connus
vecteur d’état initial x0 et covariances initiales Σ0
Le signe - signifie la prédiction
18. 18
Exemple avec accélération constante
vitesse
temps temps
position
Source : Forsyth and Ponce, Computer Vision: A Modern Approach, chap. 17, Prentice Hall, 2003.
19. 19
Equations du filtre de Kalman
Prédiction :
xt
-
= Dt xt-∆t
+
Σt
-
= Σd,t + Dt Σt-∆t
+
Dt
T
Correction (en utilisant l’observation yt):
Kt = Σt
-
Mt
T
(Mt Σt
-
Mt
T
+ Σm,t) -1
xt
+
= xt
-
+ Kt (yt - Mt xt
-
)
Σt
+
= (I - Kt Mt) Σt
-
Le signe -
signifie une prédiction
de la valeur
Le signe +
signifie une correction
de la valeur
Nous prédisons (et corrigeons) le
vecteur d’état et les covariances
entre variables (qui peuvent
changer au cours du temps)
Source : Justus Piater, Computer vision, Université de Liège (Belgique)
20. 20
Filtre de Kalman (remarques)
Typiquement
Dt = Dt(∆t) = D (∆t)
Mt = M (modèle constant pour les mesures)
En prédiction, l’incertitude Σ augmente avec le temps
Ces modèles d’erreur permettent de dire si on se fie plus aux
mesures dans l’image ou au calcul qu’on fait
Le gain de Kalman K spécifie la force avec laquelle
L’état courant va tendre vers les mesures avec le temps
La précision de l’estimation de l’état va être réduite avec le temps
21. 21
Exemple : modèle d’ordre 0
Vecteur d’état : x = [x,y]T
Vecteur d’observation : y = [x,y]T
Modèle d’évolution des mesures : M = I
Modèle d’évolution des états : D = I
Source : Justus Piater, Computer vision, Université de Liège (Belgique)
24. 24
Exemple : Accélération constante, moins
de bruit
position
temps
* : prédiction
x : mesure
o : correction
Source : Forsyth and Ponce, Computer Vision: A Modern Approach, chap. 17, Prentice Hall, 2003.
25. 25
Que cherche-t-on dans l’image ?
Un objet peut être caractérisé de plusieurs façons :
Contour
Région
Histogramme des couleurs
Blobs et/ou crêtes
Modèle (géométrique, apparence ou autre)
Autre…
Plusieurs méthodes, avec ou sans segmentation
But : trouver l’objet dans l’image, estimer sa position (x,y) et
donner cette position au filtre de Kalman
26. 26
Détection et suivi de personnes
Exemple de classification des objets détectés (mouvement)
personne, groupe, train, bruit, …
Pour chaque objet
boîte englobante minimale
caratéristiques : position, ratio 3D, hauteur/largeur, …
Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).
27. 27
Exemple de suivi basé sur des points
On veut :
Trouver des points de référence
Prédire où ils se trouveront dans l’image suivante à l’aide d’un modèle
du mouvement
Rechercher et mesurer ceux-ci dans la zone de recherche prédite
Corriger l’estimation qu’on a faite
Répéter
Source : Analyse Numérique Matricielle (IFT2450 – automne 2004), Université de Montréal (Canada).
28. 28
Exemples de suivi (tracking)
Human activity recognition (Ben-Arie 2002) Visual surveillance (Thonnat 2002)
Tracking of a mobile arm (Rasmussen et al. 2001)
29. 29
Exemple de suivi de régions
Position objet
ancienne / prédite
Régions
d’intérêt
Modèle trouvé
de pixels
Décision nouvelle
position de l’objet
Modèle prédictif
Modèle courant (en pixels)
de l’objet à rechercher
Source : Patrick Hébert, Vision numérique, Université Laval (Québec, Canada)
30. 30
Recherche par appariement
v=0
t1 t2
Choisir le bloc le plus représentatif parmi tous les blocs
possibles à l’intérieur d’une fenêtre
Source : Patrick Hébert, Vision numérique, Université Laval (Québec, Canada)
31. 31
Recherche par appariement
Somme de différences absolues (SAD)
Alternative à la somme des carrés des différences (SSD)
SADdx , dy= ∑
m=x
xN −1
∑
n=y
yN−1
∣It m ,n−It−1mdx , ndy ∣
Source : Patrick Hébert, Vision numérique, Université Laval (Québec, Canada)
33. 33
Reconnaissance de scénarios
Plusieurs étapes dans la reconnaissance
Identifier le mouvement dans les images
différence d’images,
Estimer le mouvement dans les images
flot optique
Suivre le mouvement dans les images (tracking)
Reconnaître des scénarios dans les images
34. 34
Plate-forme d’interprétation vidéo
Alarms
access to
forbidden
area
3D scene model
Scenario models A priori Knowledge
SegmentationSegmentation ClassificationClassification TrackingTracking Scenario RecognitionScenario Recognition
Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).
35. 35
Exemple de scénario de vandalisme
Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).
►Voir vidéos…
36. 36
A) Scenario: “Contact1” B) Scenario: “Passing_by”
Scénario en trois phases :
1) Approcher un objet mobile
2) Rester proche de l’objet mobile
3) Faire demi-tour et quitter
Scénario en trois phases :
1) Approcher un objet mobile
2) Rester proche de l’objet mobile
3) Quitter sans faire demi-tour
Scénarios par classification Bayésienne
Exemples de scénarios
►Voir vidéos…
Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).
37. 37
“approaching” “turning_around
_leaving”“being_close”
Exemple : scénario « contact 1 »
Les données d’apprentissage sont constituées de 600
images contenant un nombre égal d’exemples positifs et
négatifs
Scénarios par classification Bayésienne
►Voir vidéos…
Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).
38. 38
“approaching” “leaving”“being_close”
Exemple de scénario « passer le long » (passing by)
Scénarios par classification
Bayésienne
►Voir vidéos…
Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).
39. 39
“approaching”
“leaving”
“staying in the zone”
Scénarios par classification
Bayésienne
Les paramètres du scénario « passer le point de
contrôle » (scénario rare) peuvent être appris à partir
du scénario « passer le long »
►Voir vidéos…
Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).
40. 40
OmbresPerspective fortePetits objets
Vue rapprochée OcclusionsLuminosité
Problèmes en reconnaissance vidéo
Les conditions de l’environnement affectent beaucoup les
performances d’un système d’interprétation vidéo
Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).
41. 41
Références
(voir aussi la page web du cours)
Analyse Numérique Matricielle (IFT2450 – automne 2004), Université de
Montréal (Canada).
http://www.iro.umontreal.ca/~dift2450/
François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).
http://www-sop.inria.fr/pulsar/personnel/Francois.Bremond/
RC Johnson, A Brief Summarization of the Kalman Filter, V.A.S.T (Vision and
Security Technology) lab (USA).
http://www.rcjohnson.net/vast/Kalman%20Filter%20Summary.pdf
Introduction to Computer Vision (CS 223-B – Winter Quarter of 2006/2007),
Stanford University (USA).
http://robots.stanford.edu/cs223b07/
Temporal Filtering and Tracking (condensation, Kalman)
http://robots.stanford.edu/cs223b07/notes/CS223B-L12-Tracking.ppt