View
3
Download
0
Category
Preview:
Citation preview
Lalaoui Jamal - Renaudin Maxime - Stein Jonathan
ISNC
Bureau d’étude : Image Segmentation Spatio-temporelle
INTRODUCTION
Que ce soit pour une utilisation militaire ou pour de la vidéo surveillance, la détection de
mouvement est de plus en plus utilisée. Pour cela, il existe de nombreuses méthodes,
notamment la segmentation spatio-temporelle. A travers ce bureau d’études, nous allons
confronter deux méthodes : la première méthode d’observation d’objets, de piétons en
mouvement est la méthode de différence simple. Nous verrons par la suite la méthode de
détection de mouvement par flot optique.
DETECTION PAR DIFFERENCE
Cette première méthode s’appuie sur les caractéristiques d’une image de référence. Celle-ci ne
doit contenir aucun objet en mouvement. En effet, nous utilisons cette image de référence afin
de repérer les éventuelles différences avec une autre image et enfin détecter les objets qui sont
apparus et donc les objets en mouvement. Cette différence simple se fait pixel par pixel.
L’image de référence est représentée sur la figure 1 :
Figure 1 : Image de référence
Le but est alors de détecter du mouvement grâce aux images suivantes :
Figure 2 : Première image
Figure 3 : Deuxième image
Figure 4 : Troisième image
Pour cela, il est essentiel de conserver la même dynamique lors de la soustraction des images
avec l’image de référence. En effet, en faisant la différence de deux images ayant pour
dynamique l’intervalle [0 : 255], la dynamique de l’image de différence sera [-255 : 255].
Afin d’afficher cette image de référence, il faut faire un changement d’échelle afin de
retourner dans l’intervalle classique [0 : 255]. Un premier choix serait de place la borne
inférieur -255 à 0 et de conserver la borne supérieur. Pour cela, l’opération de changement de
dynamique serait :
𝑥𝑛𝑜𝑢𝑣𝑒𝑙𝑙𝑒 𝑑𝑦𝑛𝑎𝑚𝑖𝑞𝑢𝑒 =𝑥𝑎𝑛𝑐𝑖𝑒𝑛𝑛𝑒 𝑑𝑦𝑛𝑎𝑚𝑖 𝑞𝑢𝑒 +255
2 (1)
Cependant, le contraste n’est pas optimal pour les images de différences utilisant ce
changement de dynamique là. En effet, la borne inférieure n’est jamais atteinte. Le
changement de dynamique optimal est définie en observant la valeur minimum atteinte lors de
la différence. En notant 𝑥𝑚𝑖𝑛 cette valeur, nous trouvons comme formule de changement de
dynamique :
𝑥𝑛𝑜𝑢𝑣𝑒𝑙𝑙𝑒 𝑑𝑦𝑛𝑎𝑚𝑖𝑞𝑢𝑒 = 𝑥𝑎𝑛𝑐𝑖𝑒𝑛𝑛𝑒 𝑑𝑦𝑛𝑎𝑚𝑖𝑞𝑢𝑒 + 𝑥𝑚𝑖𝑛 ∗255
255+ 𝑥𝑚𝑖𝑛 (2)
La nouvelle dynamique correspondant à la différence des deux images est alors [0 : 255]. Il
est à noter qu’une différence nulle, c'est-à-dire deux pixels soustraits ayant la même intensité,
est affichée avec une intensité de 255∗ 𝑥𝑚𝑖𝑛
255+ 𝑥𝑚𝑖𝑛 .
Les figures suivantes permettent d’observer les images de différence et permettent ainsi une
première analyse quant à la détection de mouvements :
Figure 5 : Différence Image 1 – Image de référence
Figure 6 : Différence Image 2 – Image de référence
Figure 7 : Différence Image 3 – Image de référence
Ces figures font clairement apparaître les objets en mouvement : personnes montant les
escaliers en bas à droite des figures. Cependant, en observant attentivement, ces figures font
également apparaître quelques défauts : en effet, l’image n’est pas lisse et du mouvement est
détecté la où il ne devrait pas y ne avoir, comme sur la figure 7 en haut à droite. Ces défaut
peuvent avoir plusieurs explications : différence de luminosité entre les deux images, facteur
extérieur ayant fait bouger sensiblement la caméra de surveillance comme par exemple du
vent…
Pour cela, il peut être intéressant d’améliorer sensiblement cette technique de différence
simple, en faisant non plus la différence pixel à pixel mais bloc par bloc. Pour cela, la
moyenne des blocs de 16*16 pixels de l’image à observer est soustraite à la moyenne des
blocs de même taille de l’image de référence. Les résultats sont visibles grâce aux figures
suivantes :
Figure 8 : Différence par bloc Image 1 – Image référence
Figure 9 : Différence par bloc Image 2 – Image référence
Figure 10 : Différence par bloc Image 3 – Image référence
Les images sont maintenant beaucoup plus lisses et ne font donc presque plus apparaître de
défauts. Les objets en mouvement sont plus facilement détectables. En effet, on observe
aisément que la partie en bas a droite des images fait apparaître des valeurs de gris différentes,
ce qui est la conséquence d’une différence assez forte des valeurs des pixels de l’image
d’observation et de l’image de référence. Cette différence est alors interprétée comme un
objet en mouvement.
Les deux variantes de cette méthode par différence présentent toutes deux des avantages. En
effet, la méthode par blocs diminue le risque de fausse détection et assure ainsi une
probabilité de détection de mouvement assez élevée. Cependant, contrairement à la méthode
utilisant la différence pixel par pixel, la résolution est assez faible et ne permet pas une bonne
analyse de l’objet.
En fonction du besoin, c’est à dire que l’on veille identifier clairement le type d’objet en
mouvement ou alors qu’on veille juste identifier la trajectoire de l’objet sans avoir besoin de
définir le type de celui-ci, il faudra alors utiliser l’une ou l’autre variante.
CALCUL DU FLOT OPTIQUE
La détection de mouvement peut être affinée en estimant la direction et la vitesse du
mouvement. Pour cela, la méthode de détection par calcul du flot optique est intéressante car
elle permet d’estimer la direction ainsi que l’amplitude du mouvement.
Cette méthode est également intéressante dans le fait qu’elle ne nécessite pas d’image de
référence. En effet, le mouvement est détecté en utilisant les propriétés de l’image précédente.
Les deux images à analyser sont visibles grâce aux figures suivantes :
Figure 11 : Image 1
Figure 12 : Image 2
Analysons tout d’abord l’effet d’une simple différence antre ces deux images :
Figure 13 : Différence simple entre les deux images
La figure 13 représente la valeur absolue de la différence pixel à pixel des deux images.
Prendre la valeur absolue de la différence est un traitement peu efficace. L’image 1 est une
image présentant déjà des objets en mouvement. Par ailleurs, un pixel de valeur négative − 𝑥
est affiché de la même couleur qu’un pixel de valeur 𝑥 . Il est difficile d’observer le
mouvement car même les voitures stationnées font apparaître des différences. Cependant, on
note une différence beaucoup plus accentuée pour le taxi central, ce qui peut nous donner
l’intuition que celui-ci bouge réellement.
La méthode du flot optique, expliqué dans le sujet de ce bureau d’étude, résulte de la
minimisation par rapport à 𝑑𝑥 et 𝑑𝑦 du critère suivant :
𝐽 = (𝑑𝑥𝐼𝑥 + 𝑑𝑦 𝐼𝑦 + 𝐼𝑡)2𝑖 (3)
Ici 𝐼𝑥 , 𝐼𝑦 et 𝐼𝑡 représentent respectivement la dérivée partielle par rapport à 𝑥, la dérivée
partielle par rapport à 𝑦 de l’image 1, et la différence temporelle des deux images c'est-à-dire
la différence pixel à pixel de l’image 2 par rapport à l’image 1.
Les figures suivantes sont le résultat de l’application des filtres de Sobel dans le but
d’observer les dérivées partielles selon x et selon y de l’image 1.
Figure 14 : Dérivée partielle selon x
Figure 15 : Dérivée partielle selon y
Le vecteur de déplacement [𝑑𝑥 , 𝑑𝑦 ] est obtenue par minimisation du critère J (cf équation 3).
Pour cela, il faut résoudre le système suivant :
𝜕𝐽
𝜕𝑑𝑥= 0 𝑒𝑡
𝜕𝐽
𝜕𝑑𝑦= 0 (4)
Ceci implique :
𝑑𝑥 . 𝐼𝑥2 + 𝑑𝑦 . 𝐼𝑥𝐼𝑦 = − 𝐼𝑥𝐼𝑡 (5)
𝑑𝑦 . 𝐼𝑦2 + 𝑑𝑥 . 𝐼𝑥𝐼𝑦 = − 𝐼𝑦𝐼𝑡 (6)
Soit :
𝑑𝑥 = 𝐼𝑥 𝐼𝑦 𝐼𝑦 𝐼𝑡 − 𝐼𝑦
2 ( 𝐼𝑥 𝐼𝑡)
𝐼𝑥2 𝐼𝑦
2 −( 𝐼𝑥 𝐼𝑦 )2 (7)
𝑑𝑦 =− 𝐼𝑥 𝐼𝑡−𝑑𝑥 . 𝐼𝑥
2
𝐼𝑥 𝐼𝑦 (8)
Le flot optique d’un pixel est estimée grâce à un voisinage bidimensionnelle centré sur celui-
ci, paramétré par L , caractérisant la taille de la fenêtre d’étude. Grâce à la fonction ginput de
Matlab, nous pouvons demander à l’utilisateur de sélectionner un pixel et ainsi observer le
mouvement de celui-ci après calcul du flot optique définie par 𝑑𝑥 et 𝑑𝑦 (cf. équation 7 et 8).
Figure 16 : Demande de sélection d’un pixel
Figure 17 : Résultat : Calcul du mouvement du pixel séléctionné
Afin de mieux observer le mouvement, les vecteurs de déplacement sont multipliés par 20. Ce
processus peut être répété autant de fois que voulu et ainsi permet une estimation du
mouvement de n’importe que pixel de l’image. Afin de mieux analyser l’influence des
différents paramètres, il est intéressant de calculer le flot optique sur toute l’image en faisant
varier la taille de la fenêtre permettant l’estimation du mouvement du pixel central de la
fenêtre.
L’effet de la taille de la fenêtre est visible grâce aux figures suivantes :
Figure 18 : Flot optique L=2
Figure 19 : Flot optique L=8
Figure 20 : Flot optique L=15
Figure 21 : Flot optique L=40
Par définition, la taille de la fenêtre permettant l’estimation du mouvement du pixel central
fait intervenir plus ou moins de pixel pour le calcul du mouvement. En fonction de la situation
du pixel et de la valeur du paramètre L, l’estimation sera plus ou moins précise. En effet, en
observant les figures suivantes, les valeurs extrêmes de L ne sont pas satisfaisantes. Pour une
fenêtre d’observation de longueur 2 (cf. figure 18), le mouvement des pixels n’est pas
cohérent : pour un même objet par exemple la voiture noire en bas à gauche de l’image, deux
pixels voisins appartenant à cette voiture ne font pas apparaître le même vecteur de
mouvement, ce qui prouve une incohérence. En effet, la taille de la fenêtre est trop faible pour
éviter les changements de luminosité ou d’autres paramètres pouvant fausser l’estimation. De
même pour une valeur trop grande, par exemple L=40 (cf. figure 21), le mouvement des
objets est incohérent. La fenêtre est trop grande par rapport à la taille de l’image et fait
intervenir beaucoup trop d’objet pour le calcul du mouvement d’un seul pixel. Par exemple,
pour l’estimation du mouvement d’un pixel appartement à la voiture noir, en bas à gauche de
l’image, des pixels de la voiture blanche, au milieu de l’image sont pris en compte : le calcul
est alors faussé. Vues les dimensions de l’image, une valeur cohérente de la fenêtre
d’observation est comprise entre 8 et 15 (cf. figure 19 et 20).
En choisissant une valeur de flot optique L=15, nous pouvons faire plusieurs conclusions sur
la direction et la vitesse des différents objets.
Déplacement uniforme – Vitesse assez rapide
Déplacement non uniforme – Vitesse plus faible que la voiture noire
Pas de déplacement
Cette interprétation peut être faite automatiquement en faisant un seuillage du flot optique. On
peut donc décider de ne conserver que les objets en déplacement (seuil sur la norme du
vecteur de déplacement, seuil=0,6).
Figure 22 : Objets en déplacement
Figure 23 : Masque de seuillage – seuil = 0,6
Il est également possible de ne conserver que les objets se déplaçant rapidement en
augmentant le seuil (seuil = 2,2).
Figure 24 : Objet se déplacement rapidement
Figure 25 : Masque de seuillage correspondant à l’image précedente
Le seuillage permet de visualiser et détecter facilement les objets en mouvement. Cette
détection peut être complétée grâce aux techniques vues au cours de deux dernières années,
notamment en effectuant un étiquetage sur chaque objet et en prenant le barycentre de celui-ci
pour permettre un suivi précis de chaque objet.
CONCLUSION
Au cours de ce bureau d’études, nous avons pu découvrir et implémenter deux
différentes méthodes de détection de mouvement. La méthode du flot optique est plus
complète que la méthode par simple différence car elle permet d’avoir une estimation de la
vitesse et de la direction des objets en mouvement.
En généralisant ces méthodes dans des buts de traiter des séquences vidéo, il sera nécessaire
de prendre en compte quelques effets perturbateurs tels que le changement de luminosité, la
disparition d’objets temporaires, le croisement de deux objets, le mouvement de la caméra de
surveillance dû au vent…
Recommended