Vous êtes sur la page 1sur 92

Vision et perception pour

la robotique

David Filliat
Unité Informatique et Ingénierie des Systèmes
Équipe Robotique et Vision
Objectifs du cours
Perception pour la robotique
–  Perception 2D, passive (Vision)

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 2


Objectifs du cours
Perception pour la robotique
–  Perception 3D, active (Télémétrie laser)

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 3


Objectifs du cours
Perception pour la robotique
–  Besoin de robustesse
•  Conditions d’observation changeantes
•  Environnement changeant
–  Capacité de mouvement
•  Estimation du mouvement
•  Possibilité de choisir le point de vue
•  Perception active
–  Besoin de connaissance de l’environnement
•  Part statique : cartographie, reconstruction 3D
•  Part dynamique : détection, suivi d’objets, évitement
d’obstacles
•  Cartographie sémantique

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 4


Présentation générale
Perception 2D :
–  David Filliat & Bogdan Stanciulescu (4 séances)
Perception active et 3D
–  François Goulette
& Jean-Emmanuel Deschaud (3 séances)
Examen écrit

Responsables cours :
–  David Filliat david.filliat@ensta-paristech.fr
–  François Goulette francois.goulette@mines-paristech.fr

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 5


Présentation générale – Perception
2D
S1 – David Filliat (DF)
–  Introduction à la vision 2D : vision, robotique, plan du cours (30 min)
–  Traitement d’images, détection de points d’intérêt (2h)
–  Détection et analyse du mouvement (1h30)
S2 (DF)
–  Reconnaissance d’objets (Hough, apparence, bag-of-words) (2h)
–  TD Scilab (2h)
S3 (DF)
–  Géométrie projective, modèle de caméra, reconstruction multi-vue (2h)
–  TD Scilab (2h)
S4 - Bogdan Stanciulescu (BS)
–  Détection d’objets par techniques hybrides par vision / apprentissage
artificiel (Adaboost, SVM).
–  TD Seville sur détection automatique (visages, objets)

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 6


Présentation générale – Perception
3D
S5 – François Goulette (FG)
–  Introduction à la perception active
–  Systèmes de perception 3D et recalage
–  TD Scilab (recalage) 2h
S6 (FG)
–  Points d’intérêt 3D et segmentation (2h cours)
–  TD Scilab (extraction normales, segmentation basée normales,
extraction de plans ?…)
S7 (JED)
–  Reconstruction et modélisation (2h cours)
–  2h TD Meshlab

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 7


Organisation pratique
Lieux - Horaires
–  Lundis 14h00 – 18h, cours et TD
–  Lieu : MINES ParisTech – 60 bd. Saint Michel, RER Luxembourg.
–  Salles : cours : V334 (A CONFIRMER) ; TP informatique : L117
Ordre et contenu des séances
–  25/09 : Accueil et présentation du cours 5’, S1 (David Filliat)
–  02/10 : S2 (DF)
–  09/10 : S3 (DF)
–  16/10 : S4 (Bogdan Stanciulescu)
–  23/10 : S5 (François Goulette)
–  06/11 : S6 (FG)
–  27/11 : S7 (Jean-Emmanuel Deschaud)
–  4/12 : examen 2h

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 8


Vision

David Filliat
Unité Informatique et Ingénierie des Systèmes
Équipe Robotique et Vision
Qu’est-ce que la vision ?
Percevoir le monde
–  Structure 3D
–  Composé d’objets
–  Efficacement interprété par l’être humain
Info recueillie
–  Ensemble de points
–  Pixels -> info sur la lumière
–  Quantité et contenu spectral/couleur
Comment « voir » les objets ?
–  Les objets n’existent pas sur la rétine
–  Interprétation -> processus visuel
–  Problème d’inversion mal posé

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 10


Inspiration biologique ?
Vision humaine
–  Extrêmement complexe
–  Nombreuses zones du cerveau
–  Nombreuses capacités

Vision par ordinateur


–  Bio inspirée ou non
–  Produire un modèle du cerveau / modèle fonctionnel
–  Produire un modèle algorithmique fonctionnellement similaire
–  Reproduit seulement un sous-ensemble

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 11


Quelques termes…
Traitement d'images (Image Processing)
–  Manipulation dont l'entrée et la sortie sont des images.
–  Aide l'humain pour examiner les images.

Analyse d'images (Image Analysis)


–  Analyse où l'entrée est une image mais la sortie est de
l'information.

Vision par ordinateur (Computer Vision)


–  Émule la vision humaine dans le but d'extraire de
l'information ou de prendre une décision.
–  Une des branches du domaine de l'intelligence artificielle.

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 12


Intégration dans un système

Traitements Modélisation
Connaissances
Image
a priori

Analyse

Interprétation

Description
pour la tâche
Exploitation

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 13


Extraction de
caractéristiques
locales

David Filliat
Unité Informatique et Ingénierie des Systèmes
Équipe Robotique et Vision
Objectifs de cette séance
Trouver dans l’image des informations pertinentes pour
–  Reconstruire la 3D d’un objet / environnement
–  Cartographie d’environnement (amers)
–  Détection d’objets, de personnes
–  Reconnaissance de lieux

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 15


Objectifs de cette séance
Besoins
–  Identifiables dans plusieurs images
–  Reconnaissables / mouvement caméra
–  Robustes aux changements de d’éclairage
–  Robustes aux déformations liées au mouvement

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 16


Représentation des images

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 17


Représentation des images
Fonction
–  I(x,y) : valeur d’un pixel
dans R en monochrome
dans R3 en couleur

I(x,y)

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 18


Représentation des images
Espaces colorimétriques

RGB

Lab

HSV

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 19


Représentation des images
Variations
–  I(x,y) è I(x,y) + α : luminosité globale
–  I(x,y) è λI(x,y) : changement de contraste
–  I(x,y) è I(x+a,y+b) : translation
–  I è A.I+b : transformation affine
A= , b=0 : rotation
$cos(θ ) −sin(θ )'
& )
% sin(θ ) cos(θ ) (


è

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 20


Comparaison de points
Trouver le point le plus similaire
–  Hypothèse de décalage en translation
Comment comparer I1(x1,y1) et I2(x2,y2) ?

Robustesse changement luminosité / contraste ?

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 21


Comparaison de points
Sum of Squared Differences

Cross corrélation
–  Invariance / luminosité et contraste

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 22


Application : stéréo-vision

Gauche Droite Disparité

Validité ?

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 23


Comparaison de points
Tous les points ne sont pas égaux

Comment trouver des points facilement identifiables ?

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 24


Détection de coins
Détecteur de Moravec (1980)

1 : E(u,v) ≈ 0
2 : E(u,v) ≈ 0 sur la ligne
3 : E(u,v) > 0 partout

coins = max locaux des min(E(u,v))

Limitations : comportement très anisotrope


(contours non multiples de 45°)

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 25


Représentation des images
Autre information ?

Gradient

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 26


Gradient
En 1D

I Ix Ixx

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 27


Gradient
En 2D
–  Masques de Sobel
Dérivée selon x : Ix Dérivée selon y : Iy

–  En 2 passes:

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 28


Gradient
Estimation du gradient
–  Norme: sqrt(Ix2+Iy2) Direction: atan2(Iy,Ix)

Information disponible ?
–  Analyse du gradient sur une fenêtre -> SSD
–  Contour ?
–  Coin ?

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 29


Détection de contours
Définition
–  Extremas du gradient dans la direction du gradient
–  Zéros du Laplacien
Filtrage du gradient
–  Suppression des non maxima dans la direction du gradient

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 30


Détection de contours

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 31


Détection de contours
Seuillage par hystérésis
–  Gradients > s1, connectés à des gradients > s2

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 32


Détection de contours

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 33


Détection de coins
Définition
–  Zones ou le gradient varie dans plusieurs directions
Détecteur de Harris
–  Développement de Taylor de I

–  Réécriture de la SSD

A
David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 34
Détection de coins
Détecteur de Harris
–  Décomposition de A en valeurs propres λ1 et λ2
–  si λ1 ≈ 0 et λ2 ≈ 0 è uniforme
–  si λ1 ≈ 0 et λ2 > 0 è contour
–  si λ1 > 0 et λ2 > 0 è coin

–  Eviter la décomposition
–  R = Det(A) – k trace(A)2 = λ1λ2 – k(λ1+λ2)2 > 0
–  k ≈ 0,06
–  Coins = max locaux de R

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 35


Détection de coins
Détecteur de Harris

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 36


Comparaison de points
Trouver le point le plus similaire
–  Translation -> SSD
Comment reconnaître un point après rotation ?

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 37


Descripteurs SIFT [Lowe99]
Histogramme d’orientation du gradient
–  Orientation de référence

–  Histogramme des orientations ñ

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 38


Descripteurs SIFT [Lowe99]
Histogramme d’orientation du gradient
–  4x4 fenêtres
–  Histogrammes sur 8 directions
–  Pondération gaussienne autour du centre
–  Dimension 128

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 39


Invariance au changement
d’échelle
Trouver des point similaires quelque soit l’échelle
–  Translation -> SSD
–  Rotation -> orientation de référence
Comment comparer des points à des échelles différentes ?

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 40


Détection d’échelle de référence
Analyse par fonction de signature

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 41


Détection de « blobs »

Détection d’échelle avec fonction en « cloche »


–  Recherche de points au centre de « blobs »

× è

max

× è

× è

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 42


Détecteur SIFT
Détection par différence de gaussiennes

Convolution Max échelle/espace

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 43


Détecteur SIFT

Implémentation optimisée

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 44


Détecteur SIFT
En résumé

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 45


Détecteur SIFT
Exemples de correspondances

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 46


Détecteur MSER
Trouver des régions stables
–  Conceptuellement : Segmentation de région / Faire varier
les paramètres /Garder les régions restant stables
–  En pratique : algo linéaire

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 47


Détecteur MSER
Approximation des régions
–  Approcher par une ellipse
–  Descripteur associé (SIFT …)

–  Méthode rapide et fiable

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 48


Conclusion

Détection de points d’intérêt


–  Éléments 1D : contours
–  Eléments ponctuels : points d’intérêt, coins (Harris)
–  Eléments invariants / échelle : SIFT, SURF, MSER …

Caractérisation de points
–  Invariant translation : Patch luminance
–  Invariant rotation : Histogrammes de gradient

Mise en correspondance
–  SSD, L2, NCC …

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 49


Références
Wikipédia
–  http://en.wikipedia.org/wiki/Feature_detection_(computer_vision)
Livres
–  An invitation to 3D vision, Ma, Soatto, Kosecka, Sastry
Articles
–  H. Moravec (1980). "Obstacle Avoidance and Navigation in the Real World
by a Seeing Robot Rover". Tech Report CMU-RI-TR-3 Carnegie-Mellon
University, Robotics Institute.
–  C. Harris and M. Stephens (1988). "A combined corner and edge
detector" (PDF). Proceedings of the 4th Alvey Vision Conference. pp. pp
147--151.
–  D. Lowe (2004). "Distinctive Image Features from Scale-Invariant
Keypoints". International Journal of Computer Vision 60: 91.
Cours en ligne
–  Frédéric Devernay http://devernay.free.fr/

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 50


Estimation du mouvement

David Filliat
Unité Informatique et Ingénierie des Systèmes
Équipe Robotique et Vision
Objectifs
Détection/Estimation du mouvement dans la scène
–  Dû au mouvement de la caméra
–  Mouvement des objets
Perception du mouvement apparent
–  Champs des vecteurs de déplacement
–  Flux optique

Malheureusement
!=
mouvement réel

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 52


Difficultés de l’estimation du flux
optique

Ambiguïtés
–  Problème d’ouverture
–  Aliasing temporel

Problème inverse
–  Mal posé
–  Besoin de régularisation

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 53


Flux optique - Exemples

Source : Pierre Kornprobst - INRIA

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 54


Flux optique - Exemples

http://gpu4vision.icg.tugraz.at
David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 55
Applications :
Détection / suivi d’objets

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 56


Applications :
Suivi de trajectoire

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 57


Applications :
Evitement d’obstacle

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 58


Interprétation du flux
Information disponible

mouvement
« discontinuités » singularités
dominant

contours foyer d’expansion (FOE)

temps avant profondeur ego-mouvement


niveau collision
conceptuel

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 59


Modèle mathématique
Modèle de projection

Distorsion perspective
(modèle sténopé) :
X
x= f
X Z
x
Y
f
Z
y= f
Z

(X,Y,Z) les coordonnées d’un point de la scène.


(x,y) les coordonnées du même point projeté dans
l’image
f la distance focale de la caméra
David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 60
Modèle mathématique
Modèle simple
–  Mouvement de la caméra : (-X’,-Y’,-Z’)
–  Scène statique
–  Mouvement des points / caméra: (X’,Y’,Z’)
–  Dérivée de x et y :

⎛ X ' XZ ' ⎞
x' = f ⎜ − 2 ⎟ ⎛ − X '⎞
⎜Z Z ⎟ ⎛ x' ⎞ 1 ⎛− f 0 x ⎞⎜ ⎟
⎝ ⎠ Soit : ⎜
⎜ y' ⎟
⎟= Z ⎜
⎜ 0 ⎟⎜ − Y ' ⎟
⎛ Y ' YZ ' ⎞ ⎝ ⎠ ⎝ − f y⎟⎠⎜ − Z ' ⎟
⎝ ⎠
y' = f ⎜ − 2 ⎟
⎜Z Z ⎟
⎝ ⎠

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 61


Interprétation du flux (1)
Translation pure selon X
–  (X’,Y’,Z’) = (X’,0,0)

X' X'
x' = f x Z = fx
Z soit
y' = 0 x'
X
x= f
X Z
x
Y
f
Z
y= f
Z

x’ proportionel à 1/Z

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 62


Applications en robotique
OCTAVE : Francescini et al.

Flux optique: pour OCTAVE:

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 63


Applications en robotique

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 64


Interprétation du flux (2)
Translation pure selon Z
–  (X’,Y’,Z’) = (0,0,Z’)

xZ' xZ'
x' = Z=
Z x'
soit
yZ' yZ'
y' = Z=
Z y'
€ € X
x= f
X Z
x
€ €
Y
f
Z
y= f
Z

Foyer d’expansion (0,0)

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 65


Interprétation du flux (2)
Foyer d’expansion

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 66


Interprétation du flux (2)
Foyer d’expansion (cas général)
–  Donne la direction du déplacement
–  Mouvement (X’,Y’,Z’)
Soit (X0,Y0,Z0) un point de la scène. Après un temps t, il est
projeté sur l’image au point (xt,yt), avec :
⎛ X 0 + tX ' Y0 + tY ' ⎞
( xt , yt ) = ⎜⎜ f ,f ⎟⎟
⎝ Z 0 + tZ ' Z 0 + tZ ' ⎠
( xFOE , y FOE ) = lim ( xt , yt )
(xFOE,yFOE) t → −∞

⎛ X' Y'⎞
(x0,y0) =⎜ f ,f ⎟
⎝ Z' Z'⎠

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 67


Interprétation du flux (3)
Temps avant collision
–  Mesure de la taille d’un élément
P(t2)
P(t1)

Λ
λ
Λ
λ= f
f Z
Z

foe
mouvement dans une scène statique :

fΛ Z λ Temps avant
λ' = − 2 Z ' et donc τ =− =
Z Z' λ ' collision

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 68


Modèle mathématique
Remarque : Modèles de caméra plus réaliste
–  Centre optique en (xc,yc)

–  Rotations de la caméra

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 69


Calcul du flux optique
Deux approches

Flux optique dense Mise en correspondance

Objectif : calculer le mouvement Objectif : apparier certaines


apparent (vitesse instantanée) structures spatiales pour
de chaque pixel chaque couple d’images.

•  Continuité temporelle •  Discontinuité temporelle

è Cours précédent
David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 70
Mise en correspondance (rappel)
Détection de points d’intérêt
–  Éléments 1D : contours
–  Eléments ponctuels : points d’intérêt, coins, Harris
–  Eléments invariants / échelle : SIFT, SURF, MSER …
Caractérisation de points
–  Invariant translation : Patch luminance
–  Invariant rotation : Histogrammes de gradient
Mise en correspondance
–  SSD, L2, NCC …

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 71


Calcul du flux optique dense
Mouvement ⇔ Variation d’intensité
–  Hypothèse d’éclairement constant
–  Surface Lambertienne:
pas de miroir ou surface réfléchissante

lumière lumière
incidente réfléchie

L’intensité de la lumière
réfléchie est la même dans
toutes les directions.

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 72


Calcul du flux optique
Problème d’ouverture

Calcul possible uniquement en direction du gradient

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 73


Calcul du flux optique
(1) Appariement
Recherche du minimum de SSD
2
SSD(δx,δy) = ∑ ( I( x + b , y + b ,t ) − I( x + δx + b , y + δy + b ,t + 1))
1 2 1 2
( b1 ,b 2 )∈B
x x + δx

y y + δy typiquement
: B de taille
It It+1 9×9, 15×15...

Solution du flot optique :


t t
K(x,y)
(v ,v ) = arg min SSD(δx,δy)
x y
(δx,δy ) ∈K B(x+δx,y+δy)
K⊆I
pour limiter le temps de calcul
+ stratégies d’optimisation… I
David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 74
Calcul du flux optique
(1) Appariement
Optimisation du temps de calcul
y

EXHAUSTIF K
y y y

x x x

SEPARE K HIERARCHIQUE K DESCENTE DE GRADIENT K


David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 75
Calcul du flux optique
(2) Techniques différentielles
Recherche directe du min de SSD
(v xt ,v yt ) = arg min SSD(δx,δy)
(δx,δy ) ∈K
2
= arg min
(δx,δy ) ∈K
∑ (I(x, y,t) − I(x + δx, y + δy,t + 1))
(x,y )∈B

∂I ∂I ∂I
Taylor : I ( x + δx, y + δy, t + 1) ≈ I ( x, y, t ) + δx + δy +
€ ∂x ∂y ∂t
2
% ∂I ∂I ∂I (
SSD(δx,δy) ≈ ∑ ' δx + δy + *
(x,y )∈B &
∂x ∂y ∂t )


David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 76
Calcul du flux optique
(2) Techniques différentielles
Minimum == dérivée nulle / δx δy

$ ∂I ∂I ∂I ' ∂I
2 ∑ & δ x + δy + ) = 0
(x,y )∈B % ∂x ∂y ∂t ( ∂x
$ ∂I ∂I ∂I ' ∂I
2 ∑ & δ x + δy + ) = 0
(x,y )∈B % ∂x ∂y ∂t ( ∂y

% ∂I 2 ( &− ∑ ∂I ∂I )
'(x,y∑ ∑
( ∂x ) ∂I ∂I
∂x ∂y
* ( (x,y )∈B∂x ∂t +

H.v = b H ='
)∈B (x,y )∈B
2 * b=( ∂I ∂I +
' ∑ ∂I∂x ∂I∂y ∑( ) ∂I
∂y * (− ∑ ∂y ∂t +
& (x,y )∈B (x,y )∈B ) ' (x,y )∈B *

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 77


Calcul du flux optique
(2) Techniques différentielles
Résolution itérative
H.v = b
Initialisation v (0)
x = 0;v (0)
x =0
: LUCAS &
v (k )
x = 1
H11 (b − H ⋅ v 1
2
( k−1)
y ); KANADE 1981
Pour k > 0 :
v (k )
y = 1
H 22 (b − H 2
1 ⋅v (k)
x );
Existence
€ de solutions
–  H doit être de rang 2 (Cf détecteur de Harris)
% ∂I 2 (
'(x,y∑ ∑
€ ( ∂x ) ∂I ∂I
∂x ∂y
*
)∈B (x,y )∈B
€ H =' 2 *
' ∑ ∂I∂x ∂I∂y ∑( ) ∂I
∂y *
& (x,y )∈B (x,y )∈B )
David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 78
Calcul du flux optique
(2) Techniques différentielles
Rang 0 : Homogène Sources : Steven Seitz UW-Seattle

Zone faiblement texturée :


2 valeurs propres faibles Fonction d’appariement SSD
David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 79
Calcul du flux optique
(2) Techniques différentielles
Rang 1 : Contour Sources : Steven Seitz UW-Seattle

Contour rectiligne :
1 seule grande valeur propre Fonction d’appariement SSD

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 80


Calcul du flux optique
(2) Techniques différentielles
Rang 2 : Coins Sources : Steven Seitz UW-Seattle

Point anguleux :
2 valeurs propres importantes Fonction d’appariement SSD

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 81


Calcul du flux optique
(3) Contrainte du mouvement
Contrainte de luminosité constante
I ( x, y, t ) = I ( x + δx, y + δy, t + δt )
∂I ∂I ∂I
Formule de Taylor = I ( x, y, t ) + ⋅ δx + ⋅ δy + ⋅ δt + ... Termes d’ordres
supérieures
∂x ∂y ∂t négligés

∂I ∂I
∇I = ( , ) gradient spatial
∂I ∂x ∂y
SOIT : ∇I ⋅ v + = 0
∂t avec v = (v xt ,v yt ) inconnues

∂I gradient temporel
Equation de contrainte
du mouvement apparent (ECMA) ∂t
ou : équation du flot optique
David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 82
Calcul du flux optique
(3) Contrainte du mouvement
Interprétation graphique ECMA ∂I
∇I ⋅ v + = 0
∂t
Droite de contrainte :
v ty
v vitesse vraie

v̂ vitesse
calculée

∇I ( x , y , t )
pb d’ouverture : ∂I ∂t
sous-contrainte vˆ = v̂
(1 eq., 2 inc.) ∇I v t
v x

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 83


Calcul du flux optique
(3) Contrainte du mouvement
Résolution de l’ECMA
–  ajout d’une contrainte de régularité.

Régularisation

Régularisation du pb mal posé par hypothèse de champ lisse de déplacement


Minimisation d’une fonction de coût :

⎡ 2 t 2 t 2 t 2 t 2⎤
t t t ⎛ ∂I ⎞ ⎛ ∂vx ⎞ ⎛ ∂vx ⎞ ⎛ ∂v y ⎞ ⎛ ∂v y ⎞
C( x , y ) (vx , v y ) = ⎜ ∇I ⋅ v + ⎟ + λ ⎢⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ + ⎜ ⎟ +⎜ ⎟ ⎥
⎝ ∂t ⎠ ⎢⎝ ∂x ⎠ ⎝ ∂y ⎠ ⎜⎝ ∂x ⎟⎠ ⎜⎝ ∂y ⎟⎠ ⎥
⎣ ⎦
ECMA
REGULARISATION
David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 84
Calcul du flux optique
(3) Contrainte du mouvement
Minimisation de C
2
C(x,y ) (u,v) = ( Ix u + Iy v + It ) + λ ( ux2 + uy2 + v x2 + v y2 )
(u,v) composantes du champ (inconnues) à calculer
{Ix, Iy, It} dérivées partielles de l’image

€ {ux, uy,vx, vy} dérivées partielles des composantes du champ

–  Annulation des dérivées / u et v


2( Ix u + Iy v + It ) Ix + 2 λ ([ ∂u∂ ∂u∂x ) ∂u∂x + ( ∂u∂ ∂u∂y ) ∂u∂y ] = 0
2( Ix u + Iy v + It ) Iy + 2 λ [( ∂ ∂v
∂v ∂x ) ∂v∂x + ( ∂v∂ ∂v∂y ) ∂v∂y ] = 0


David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 85
Calcul du flux optique
(3) Contrainte du mouvement
Minimisation de C

(I u + I v + I )I
x y t x + λΔu = 0
∂2 u ∂2 u
(I u + I v + I )I
x y t y + λΔv = 0 Δu =
∂x 2
+
∂y 2 Laplaciens de u et v
avec :
∂ 2v ∂2v #−1 −1 −1&
% (
Δv = 2
+ % −1 8 −1 (
€ ∂x ∂y 2 %$−1 −1 −1('
€ ~ ~
Approximation du Laplacien : ∇2
f = f − f f = moyenne de f dans un voisinage

(v − v˜ )( Ix2€+ Iy2 + λ) = −Iy ( Ix u˜ + Iy v˜ + It )
soit :
(u − u˜ )( Ix2 + Iy2 + λ) = −Ix ( Ix u˜ + Iy v˜ + It )

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 86


Calcul du flux optique
(3) Contrainte du mouvement
Résolution itérative
−1
k
u = u˜ k−1
− Ix ( Ix u˜ k−1
+ Iy v˜ k−1
+ It ) ⋅ ( I + I + λ)
2
x
2
y
−1
k
v = v˜ k−1
− Iy ( Ix u˜ k−1
+ Iy v˜ k−1
+ It ) ⋅ ( I + I + λ)
2
x
2
y

ALGORITHME DE HORN
Soit, en reprenant les & SCHUNCK
notations originales, avec : 0 0
€ •  Initialisation v: x = 0 v y = 0
∂I k−1 ∂I k−1 ∂I •  Répéter jusqu’à convergence :
N = v˜ x + v˜ y + ∂I N
∂x ∂y ∂t v xk = v~xk −1 −
2
∂x D
% ∂I ( 2 % ∂I ( ∂I N
D= λ+' * +' * k ~ k −1
vy = vy −
& ∂x ) & ∂y ) ∂y D

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 87


Calcul du flux optique
(4) Estimation multi-échelle
Niveau
2
(1) initialisation

(2) raffinement

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 88


Calcul du flux optique
(4) Estimation multi-échelle
ALGORITHME PAR CORRELATION ALGORITHME DIFFERENTIEL

•  Initialisation v:( s0 ) x
0
= 0 v( s0 ) 0y = 0
(v(sn ) tx ,v(sn ) ty ) = arg max n C(x,y
t
) (δx,δy)
(δx,δy ) ∈K •  Répéter jusqu’à
convergence : ∂I N
v( s ) t v( s0 ) kx = v~ ( s0 ) kx −1 −
n −1 x ∂x D
K (nx , y ) v( s0 ) ky = v~ ( s0 ) ky−1 −
∂I N
∂y D
B(x+δx,y+δy) v( sn −1 ) ty
0
•  Init. v: ( s1 ) x = v( s0 ) ∞x v( s1 ) 0y = v( s0 ) ∞y
•  Répéter jusqu’à
convergence : ∂I N
v( s1 ) kx = v~ ( s1 ) kx −1 −
I ∂x D
∂I N
v( s1 ) ky = v~ ( s1 ) ky−1 −
n
[ t
] [
avec K(x,y) = v ( sn−1) x ± Δ1 × v (sn−1 ) y ± Δ 2
t
] ∂y D
:
David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 89
Calcul du flux optique
(4) Estimation multi-échelle
Avantages
–  Plus grand domaine de vitesse
–  Diminution temps de calcul
–  Régularisation implicite
–  Résolution aliasing temporel

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 90


Conclusion
Exploitation du flot optique
–  Mouvement dominant
–  Profondeur
–  Temps avant collision
–  Détection d’objets
Méthodes par appariement
Méthodes différentielles
–  Lucas et Kanade
–  Horn et Schunck
Méthodes multi échelles

http://www.ensta-paristech.fr/~filliat/

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 91


Bibliographie
Estimation du mouvement
–  B.D. Lucas & T. Kanade 1981 « An iterative image registration
technique with an application to stereo vision » International
Journal of Computer Vision and Artificial Intelligence 674-679
–  B.K.P Horn & B. Schunck 1981 « Determining Optical Flow »
Artificial Intelligence 23 185-203
–  D.H. Ballard & C.M Brown 1982 « Computer Vision » Prentice
Hall (Ch. 3, Ch. 7)
–  J.M. Jolion & A. Rosenfeld 1994 « A pyramid framework for early
vision » Kluwer Academic Publishers Dordrecht, NL
–  R. Jain, R. Kasturi & B. Schunck 1995 « Machine Vision »
McGraw-Hill Inc. (Ch.14)
–  Antoine Manzanera « Analyse du mouvement » - Cours ENSTA

David Filliat – david.filliat@ensta-paristech.fr SAR - Vision et perception pour la robotique 92

Vous aimerez peut-être aussi