09 mouvement-2

41
Vision par ordinateur Mouvement (deuxième partie) Alain Boucher - IFI

Transcript of 09 mouvement-2

Page 1: 09 mouvement-2

Vision par ordinateur

Mouvement (deuxième partie)

Alain Boucher - IFI

Page 2: 09 mouvement-2

2

Suivi de mouvement

(filtre de Kalman)

Page 3: 09 mouvement-2

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)

Page 4: 09 mouvement-2

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

Page 5: 09 mouvement-2

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?

Page 6: 09 mouvement-2

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).

Page 7: 09 mouvement-2

Erreurs de mesure et mise à jour

mise à jourposition initialex

y

x

y

prédictionx

y

mesurex

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).

Page 8: 09 mouvement-2

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

Page 9: 09 mouvement-2

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

?

Page 10: 09 mouvement-2

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 =[

xyv x

v y]

Page 11: 09 mouvement-2

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).

Page 12: 09 mouvement-2

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

Page 13: 09 mouvement-2

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 normalex ~ N(µ,σ2) : loi normale de moyenne µ et d’écart-type σ

(ou de variance σ2)

Page 14: 09 mouvement-2

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 , y2

σ x , y2 σ y

2 Exemple de matrice de covariance :

x

y

vx

vy

Page 15: 09 mouvement-2

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

Page 16: 09 mouvement-2

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

Page 17: 09 mouvement-2

17

vite

sse

posi

tion

posi

tion

temps temps

temps

Exemple avec vitesse constante

Modèle avec faible perturbation aléatoire. La vitesse est (presque) constante.

* : état calculéo : observation dans l’image

Page 18: 09 mouvement-2

18

Exemple avec accélération constantevi

tess

e

temps temps

posi

tion

Source : Forsyth and Ponce, Computer Vision: A Modern Approach, chap. 17, Prentice Hall, 2003.

Page 19: 09 mouvement-2

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)

Page 20: 09 mouvement-2

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

Page 21: 09 mouvement-2

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)

Page 22: 09 mouvement-2

22

Exemple : modèle d’ordre 1

Vecteur d’état : x = [x,y,vx,vy]T

Vecteur d’observation : y = [x,y]T

Modèle d’évolution des mesures :

Modèle d’évolution des états :

M=[1 0 0 00 1 0 0 ]

D=[1 0 Δt 00 1 0 Δt0 0 1 00 0 0 1

]

Source : Justus Piater, Computer vision, Université de Liège (Belgique)

Page 23: 09 mouvement-2

23

Exemple :Vitesse constante, mesuares bruitées

* : prédictionx : mesureo : correction

posi

tion

temps

Page 24: 09 mouvement-2

24

Exemple : Accélération constante, moins de bruit

posi

tion

temps

* : prédictionx : mesureo : correction

Source : Forsyth and Ponce, Computer Vision: A Modern Approach, chap. 17, Prentice Hall, 2003.

Page 25: 09 mouvement-2

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

Page 26: 09 mouvement-2

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).

Page 27: 09 mouvement-2

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).

Page 28: 09 mouvement-2

28

Exemples de suivi (tracking)

Human activity recognition (Ben-Arie 2002) Visual surveillance (Thonnat 2002)

Tracking of a mobile arm (Rasmussen et al. 2001)

Page 29: 09 mouvement-2

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)

Page 30: 09 mouvement-2

30

Recherche par appariementv=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)

Page 31: 09 mouvement-2

31

Recherche par appariement

Somme de différences absolues (SAD) Alternative à la somme des carrés des différences (SSD)

SAD dx , dy = ∑m=x

xN−1

∑n= y

yN−1

∣I t m ,n −I t−1mdx , ndy ∣

Source : Patrick Hébert, Vision numérique, Université Laval (Québec, Canada)

Page 32: 09 mouvement-2

32

Reconnaissance de scénarios

Page 33: 09 mouvement-2

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

Page 34: 09 mouvement-2

34

Plate-forme d’interprétation vidéo

Alarms

access to forbidden

area

3D scene modelScenario models A priori Knowledge

SegmentationSegmentation ClassificationClassification TrackingTracking Scenario RecognitionScenario Recognition

Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).

Page 35: 09 mouvement-2

35

Exemple de scénario de vandalisme

Source : François Brémond, équipe-projet PULSAR, INRIA Sophia-Antipolis (France).►Voir vidéos…

Page 36: 09 mouvement-2

36

A) Scenario: “Contact1” B) Scenario: “Passing_by”

Scénario en trois phases :

1) Approcher un objet mobile2) Rester proche de l’objet mobile3) 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).

Page 37: 09 mouvement-2

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).

Page 38: 09 mouvement-2

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).

Page 39: 09 mouvement-2

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).

Page 40: 09 mouvement-2

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).

Page 41: 09 mouvement-2

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