Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Detection et Suivi d'objets en mouvement
1. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Vision Par Ordinateur
TP2 : Compter des passagers
Par :
CIBAMBO Masugentwali Steven
&
DEGUE Akouvi Mireille
Université Nationale du Vietname
Institut Francophone International / IFI
Master 2: Systèmes Intelligents et Multimédia
Janvier 2020
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 1 / 21
2. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Contribution
1 Introduction
Context
Outils
2 Détection de mouvement
3 Suivi de mouvement
4 Comptage d’Objet en Mouvement
5 Conclusion
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 2 / 21
3. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Introduction
Context
Figure – détection et suivi d’objets en mouvement
surveillance, traffic routier, identification, etc.
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 3 / 21
4. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Introduction
Outils
1 OpenCV 3 ; pour le traitement de base d’images, détection
de contours, etc
2 Python ; pour le codage
3 Filtre de Kalman implémenté dans la librairie pykalman ;
pour le suivi d’objets en mouvement soit la prédiction et la
correction de positions mesurées
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 4 / 21
5. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Détection de mouvement
Soustraction du Background
Il est existe plusieurs techniques pour parvenir à détecter un
objet en mouvement dans une séquence vidéo, dans notre cas
nous avons choisi la détection par la soustraction du
background
1 Problème : s’il y a moindre modification du background
on obtient le mauvais résultat
2 Recommandation : utilisation de caméra fixe et éclairage
stable et adéquate
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 5 / 21
6. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Détection de mouvement
Première image de la vidéo
Figure – background
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 6 / 21
7. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Détection de mouvement
Soustraction du background
Figure – image originale Figure – résultat
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 7 / 21
8. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Détection de mouvement
Erosion et dilatation
Figure – résultat Figure – seuillage, érode et dilate
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 8 / 21
9. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Détection de mouvement
Objet en mouvement
Figure – originale Figure – résultat
La taille minimum de la zone en mouvement est fixé à 500 px, pour
éviter de prendre en compte même le petit changement d’éclairage
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 9 / 21
10. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Suivi de mouvement
Filtre de Kalman
1 On parle qu’un objet est en mouvement quand il occupe
différentes positions dans différentes images constituant une
vidéo.
2 Souvent les positions mesurées sont rattachées des erreurs
pour une raison ou une autre
3 Nous avons utilisé le Filtre de Kalman enfin de pouvoir
prédir et corriger les positions mesurées de l’objet détecté
en mouvement.
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 10 / 21
11. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Suivi de mouvement
Initialisation du FK
1 from pykalman import KalmanFilter
2 from matplotlib import pyplot as plt
3 import numpy as np
4
5 MarkedMeasure = np.ma.masked_less(Measured,0)
6
7 # xinit et yinit = position ;
8 # vxinit et vyinit = vitesse
9 xinit = MarkedMeasure[0,0]
10 yinit = MarkedMeasure[0,1]
11 vxinit = MarkedMeasure[1,0]-MarkedMeasure[0,0]
12 vyinit = MarkedMeasure[1,1]-MarkedMeasure[0,1]
13 initstate = [xinit,yinit,vxinit,vyinit]
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 11 / 21
12. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Suivi de mouvement
Filtre de Kalman
Figure – Suivi (a) Figure – suivi(b)
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 12 / 21
13. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Suivi de mouvement
Filtre de Kalman
Figure – Suivi (c) Figure – suivi (d)
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 13 / 21
14. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Suivi de mouvement
Filtre de Kalman
Figure – Suivi (e) Figure – suivi (f)
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 14 / 21
15. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Suivi de mouvement
Filtre de Kalman
1 les positions mesurées sont stoquées dans un tableau ;
2 pour les index du tableau où aucun objet en mouvement
n’est détecté ; sa valeur = -1
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 15 / 21
16. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Suivi de mouvement
Filtre de Kalman
Figure – mesurée Figure – prédite
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 16 / 21
17. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Suivi de mouvement
Filtre de Kalman
Figure – mesurée Figure – prédite
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 17 / 21
18. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Comptage d’objet en mouvement
Détection de contour
Il existe plusieurs méthodes pour compter les objets qui
entrent et sortent dans une vidéo, pour notre cas nous
avons utilisé celle de la détection de contours ;
Et pour chaque objet objet détecté nous l’identifions pour
un marqueur enfin de le distinguer des autres
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 18 / 21
19. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Comptage d’objet en mouvement
Détetion de contour
Figure – comptage d’objet Figure – soustraction background
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 19 / 21
20. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Conclusion
Actuellement il existe plusieurs méthode pour détecter les objets en
mouvement dans une vidéo ; pour notre travail nous nous sommes
servi de la méthode de soustraction du background ;
1 pour ce faire la première image de la vidéo est concervée et
utilisée pour le changement susceptible pour le reste des images ;
2 pour la prédiction et la correction de positions nous avons utilisé
le Filtre de Kalman implémenté dans la librairie pykalman de
python
3 et enfin pour parvenir à savoir le nombre d’objets en mouvement
on a utilisé la technique de la détection de contour
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 20 / 21
21. Introduction
Détection de mouvement
Suivi de mouvement
Comptage d’Objet en Mouvement
Conclusion
Références
Computer Vision. “Computer Vision with Python."
Computer Vision. December 2019.
Garima Nishad. “Kalman Filters: A step by step
implementation guide in python" December 2019.
Adrian Rosebrock. “Multi-object tracking with dlib"
December 2019.
Code source : github
CIBAMBO Steven & DEGUE Mireille TP2: Compter des Passagers 21 / 21