SlideShare une entreprise Scribd logo
1  sur  69
Elaboré et Présenté par:
DAOUAHI Achref et ABAYED Mohamed
Kirmene Marzouki (ISSATSo)
30/06/2015
Leila Ben Tekaya (Spike-X)
Encadré par:
2
Introduction & Problématique
Techniques Utilisables
Technique Proposée
Amélioration de la technique proposée
Réalisation
Conclusion & Perspectives
3
3
3
3
Suivi d’une personne spécifique en temps réel
3
Suivi d’une personne spécifique en temps réel
Le flux vidéo provient d’une camera IP PTZ
3
Suivi d’une personne spécifique en temps réel
Le flux vidéo provient d’une camera IP PTZ
Commandes automatiques de la camera
4
Une seule cible
4
La camera n’est pas fixe
Une seule cible
4
Une personne est une cible déformable
La camera n’est pas fixe
Une seule cible
4
5
Suivi
6
Suivi
Camshift
Lucas&Kanade (LK)
6
Suivi
Camshift
Lucas&Kanade (LK)
6
Suivi
Camshift
Lucas&Kanade (LK)
6
Détection
7
Détection
Scale Invariant Feature Transform (SIFT)
Histogram of Oriented Gradients (HOG)
Color Cooccurence Histogram (CCH)
7
8
8
Etape 1
• Sélection
d’une cible
8
Etape 2
• Suivi du
mouvement
de la cible
• Mouvement
de la camera
PTZ
Etape 1
• Sélection
d’une cible
8
Etape 3
• Recherche
de la cible
• (détection)
Etape 2
• Suivi du
mouvement
de la cible
• Mouvement
de la camera
PTZ
Etape 1
• Sélection
d’une cible
8
Etape 3
• Recherche
de la cible
• (détection)
Etape 2
• Suivi du
mouvement
de la cible
• Mouvement
de la camera
PTZ
Etape 1
• Sélection
d’une cible
9
9
9
9
Kmeans
9
Kmeans
9
SegmentationKmeans
9
SegmentationKmeans
9
Calcul des
CCH
SegmentationKmeans
9
Calcul des
CCH
SegmentationKmeans
9
Calcul de
Correspondance
Calcul des
CCH
SegmentationKmeans
9
Calcul de
correspondance
81,79%
Calcul de
Correspondance
Calcul des
CCH
SegmentationKmeans
10
10
LK
10
LK LK
10
LK LK CCH
10
LK LK LKCCH
10
LK LK LKCCH
11
Dans l’implémentation de CCH
12
Dans l’implémentation de CCH
12
Dans l’implémentation de CCH
Définition d’un nouveau paramètre (Rayon limite)
12
Dans l’implémentation de CCH
Définition d’un nouveau paramètre (Rayon limite)
Parallélisme (OpenMP)
12
Dans l’implémentation de CCH
Définition d’un nouveau paramètre (Rayon limite)
Parallélisme (OpenMP)
12
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
10 30 50 70 90 110 130 150 170 190 210 230 250 270 290 310 330 350
Non parallélisé parallélisé
(ms)
(px)
Temps d’exécution en fonction du paramètre Rayon limite
13
Dans l’intégration des deux algorithmes
Déclanchement de la recherche qu’en cas de nécessité
13
Dans l’intégration des deux algorithmes
Déclanchement de la recherche qu’en cas de nécessité
13
Dans l’intégration des deux algorithmes
Déclanchement de la recherche qu’en cas de nécessité
Parcours plus optimisé en cas de perte de la cible
13
Dans l’intégration des deux algorithmes
Déclanchement de la recherche qu’en cas de nécessité
Parcours plus optimisé en cas de perte de la cible
13
Dans l’intégration des deux algorithmes
Déclanchement de la recherche qu’en cas de nécessité
Parcours plus optimisé en cas de perte de la cible
Utilisation des threads
14
Camera D-Link DCS-5020L
Wireless IP
Pan & Tilt
640x480
30Hz
15
16
17
18
18
18
18
18
18
18
19
Solution de suivi de personne sur camera
PTZ se basant sur le suivi et la détection
19
Solution de suivi de personne sur camera
PTZ se basant sur le suivi et la détection
19
Implémentation et amélioration de
l’algorithme CCH
Solution de suivi de personne sur camera
PTZ se basant sur le suivi et la détection
Amélioration possible : Basculer
automatiquement entre différentes cameras
19
Implémentation et amélioration de
l’algorithme CCH
Solution de suivi de personne sur camera
PTZ se basant sur le suivi et la détection
Amélioration possible : Basculer
automatiquement entre différentes cameras
Plusieurs domaines d’utilisation possibles
19
Implémentation et amélioration de
l’algorithme CCH
Tracking de personnesur Camera PTZ

Contenu connexe

En vedette

Cahier des charges client
Cahier des charges clientCahier des charges client
Cahier des charges client
Point 44
 
Prueba 1
Prueba 1Prueba 1
Prueba 1
amor_24
 
Proyecto informatica eduardob
Proyecto informatica eduardobProyecto informatica eduardob
Proyecto informatica eduardob
Eduardo Barreras
 

En vedette (14)

02.employment 2
02.employment 202.employment 2
02.employment 2
 
Cahier des charges client
Cahier des charges clientCahier des charges client
Cahier des charges client
 
Codigo organico monetario_financiero_sept_14
Codigo organico monetario_financiero_sept_14Codigo organico monetario_financiero_sept_14
Codigo organico monetario_financiero_sept_14
 
Creatividad y conocimiento - Manel Rives
Creatividad y conocimiento - Manel RivesCreatividad y conocimiento - Manel Rives
Creatividad y conocimiento - Manel Rives
 
Diapo seq 5 C2I
Diapo seq 5 C2IDiapo seq 5 C2I
Diapo seq 5 C2I
 
Las Navidades en el colegio
Las Navidades en el colegioLas Navidades en el colegio
Las Navidades en el colegio
 
Baa br q_6212_1
Baa br q_6212_1Baa br q_6212_1
Baa br q_6212_1
 
Embarquement 2015 : atelier #VIE, le support
Embarquement 2015 : atelier #VIE, le supportEmbarquement 2015 : atelier #VIE, le support
Embarquement 2015 : atelier #VIE, le support
 
Musica
MusicaMusica
Musica
 
Prueba 1
Prueba 1Prueba 1
Prueba 1
 
La boda de VERONICA Y EDWARD
La boda de VERONICA Y EDWARDLa boda de VERONICA Y EDWARD
La boda de VERONICA Y EDWARD
 
LAURA SIMO Y SU CUARTETO EN EL CAFE CENTRAL
LAURA SIMO Y SU CUARTETO EN EL CAFE CENTRALLAURA SIMO Y SU CUARTETO EN EL CAFE CENTRAL
LAURA SIMO Y SU CUARTETO EN EL CAFE CENTRAL
 
Denis hochard et les quartiers
Denis hochard et les quartiersDenis hochard et les quartiers
Denis hochard et les quartiers
 
Proyecto informatica eduardob
Proyecto informatica eduardobProyecto informatica eduardob
Proyecto informatica eduardob
 

Tracking de personne sur Camera PTZ

Notes de l'éditeur

  1. Bonjour, et merci pour votre présence membres du jury ainsi que tout le monde dans la salle ceci sera la présentation de notre projet de fin d’étude intitulé tracking de personne sur camera PTZ encadré par Mr Kirmene Marzouki de ISSAT sousse Et Mme Leila ben tkaya à SPIKE-X Ce projet à été élaboré et sera présenté par mon collegue Achref DAOUAHI et moi-même Mohamed ABAYED
  2. commençons par présenter le plan de notre présentation qui comporte 4 grandes partie qui sont les techniques utilisables et la technique proposée, l’amélioration de cette technique, La réalisation du projet en plus de l’intro et problématique et la conclusion et perspective
  3. > Le travail qui sera présenté, a été effectué dans le cadre de notre PFE au sein de la société Spike-X: spécialisée dans le développement de logiciels intelligents. > La vision par ordinateur permet d’extraire des informations pertinentes des images, des flux vidéo, de manière à comprendre le monde observé. > Notre projet porte sur le suivi en temps réel d’une personne parmi d’autres dans une scène > Filmée par une camera PTZ > Et nous devons créer une application qui contrôle automatiquement la camera, pour garder la cible suivie dans son champs de vision.
  4. > Le travail qui sera présenté, a été effectué dans le cadre de notre PFE au sein de la société Spike-X: spécialisée dans le développement de logiciels intelligents. > La vision par ordinateur permet d’extraire des informations pertinentes des images, des flux vidéo, de manière à comprendre le monde observé. > Notre projet porte sur le suivi en temps réel d’une personne parmi d’autres dans une scène > Filmée par une camera PTZ > Et nous devons créer une application qui contrôle automatiquement la camera, pour garder la cible suivie dans son champs de vision.
  5. > Le travail qui sera présenté, a été effectué dans le cadre de notre PFE au sein de la société Spike-X: spécialisée dans le développement de logiciels intelligents. > La vision par ordinateur permet d’extraire des informations pertinentes des images, des flux vidéo, de manière à comprendre le monde observé. > Notre projet porte sur le suivi en temps réel d’une personne parmi d’autres dans une scène > Filmée par une camera PTZ > Et nous devons créer une application qui contrôle automatiquement la camera, pour garder la cible suivie dans son champs de vision.
  6. > Le travail qui sera présenté, a été effectué dans le cadre de notre PFE au sein de la société Spike-X: spécialisée dans le développement de logiciels intelligents. > La vision par ordinateur permet d’extraire des informations pertinentes des images, des flux vidéo, de manière à comprendre le monde observé. > Notre projet porte sur le suivi en temps réel d’une personne parmi d’autres dans une scène > Filmée par une camera PTZ > Et nous devons créer une application qui contrôle automatiquement la camera, pour garder la cible suivie dans son champs de vision.
  7. > Le travail qui sera présenté, a été effectué dans le cadre de notre PFE au sein de la société Spike-X: spécialisée dans le développement de logiciels intelligents. > La vision par ordinateur permet d’extraire des informations pertinentes des images, des flux vidéo, de manière à comprendre le monde observé. > Notre projet porte sur le suivi en temps réel d’une personne parmi d’autres dans une scène > Filmée par une camera PTZ > Et nous devons créer une application qui contrôle automatiquement la camera, pour garder la cible suivie dans son champs de vision.
  8. > Le travail qui sera présenté, a été effectué dans le cadre de notre PFE au sein de la société Spike-X: spécialisée dans le développement de logiciels intelligents. > La vision par ordinateur permet d’extraire des informations pertinentes des images, des flux vidéo, de manière à comprendre le monde observé. > Notre projet porte sur le suivi en temps réel d’une personne parmi d’autres dans une scène > Filmée par une camera PTZ > Et nous devons créer une application qui contrôle automatiquement la camera, pour garder la cible suivie dans son champs de vision.
  9. Nous avons ici 3 obstacles à dépasser : > Nous devons trouver une solution pour faire que la cible ne soit pas perdu a cause des autres personne ou obstacles sur la scène passants entre elle est la camera. > La camera n’est pas fixe, ce qui va diminuer le nombre d’algorithmes de suivi utilisables. > La cible est déformable, ce qui va nous limiter en termes d’algorithmes utilisables pour la détection.
  10. Nous avons ici 3 obstacles à dépasser : > Nous devons trouver une solution pour faire que la cible ne soit pas perdu a cause des autres personne ou obstacles sur la scène passants entre elle est la camera. > La camera n’est pas fixe, ce qui va diminuer le nombre d’algorithmes de suivi utilisables. > La cible est déformable, ce qui va nous limiter en termes d’algorithmes utilisables pour la détection.
  11. Nous avons ici 3 obstacles à dépasser : > Nous devons trouver une solution pour faire que la cible ne soit pas perdu a cause des autres personne ou obstacles sur la scène passants entre elle est la camera. > La camera n’est pas fixe, ce qui va diminuer le nombre d’algorithmes de suivi utilisables. > La cible est déformable, ce qui va nous limiter en termes d’algorithmes utilisables pour la détection.
  12. Nous avons ici 3 obstacles à dépasser : > Nous devons trouver une solution pour faire que la cible ne soit pas perdu a cause des autres personne ou obstacles sur la scène passants entre elle est la camera. > La camera n’est pas fixe, ce qui va diminuer le nombre d’algorithmes de suivi utilisables. > La cible est déformable, ce qui va nous limiter en termes d’algorithmes utilisables pour la détection.
  13. Passons aux techniques utilisables
  14. Comme algorithmes de suivi de cible, nous avons essayé les 2 suivant: > Camshift > il cherche la région qui est plus dense en couleurs semblables a celles de la cible > Lucas&Kanade ou LK > cherche le vecteur du flot du mouvement, en cherchant la correspondance entre deux images successives > +Ces algorithmes sont rapides pendent l’exécution et ne sont pas sensibles a la déformation de la cible Cependant en utilisant camshift, la forme de la cible n’est pas du tout prise en compte, et le fait que ça soit basé que sur les couleurs le rend vulnérable au arrière plans chargés. En utilisant LK, la cible sera perdu en passant derrière un obstacle
  15. Comme algorithmes de suivi de cible, nous avons essayé les 2 suivant: > Camshift > il cherche la région qui est plus dense en couleurs semblables a celles de la cible > Lucas&Kanade ou LK > cherche le vecteur du flot du mouvement, en cherchant la correspondance entre deux images successives > +Ces algorithmes sont rapides pendent l’exécution et ne sont pas sensibles a la déformation de la cible Cependant en utilisant camshift, la forme de la cible n’est pas du tout prise en compte, et le fait que ça soit basé que sur les couleurs le rend vulnérable au arrière plans chargés. En utilisant LK, la cible sera perdu en passant derrière un obstacle
  16. Comme algorithmes de suivi de cible, nous avons essayé les 2 suivant: > Camshift > il cherche la région qui est plus dense en couleurs semblables a celles de la cible > Lucas&Kanade ou LK > cherche le vecteur du flot du mouvement, en cherchant la correspondance entre deux images successives > +Ces algorithmes sont rapides pendent l’exécution et ne sont pas sensibles a la déformation de la cible Cependant en utilisant camshift, la forme de la cible n’est pas du tout prise en compte, et le fait que ça soit basé que sur les couleurs le rend vulnérable au arrière plans chargés. En utilisant LK, la cible sera perdu en passant derrière un obstacle
  17. Comme algorithmes de suivi de cible, nous avons essayé les 2 suivant: > Camshift > il cherche la région qui est plus dense en couleurs semblables a celles de la cible > Lucas&Kanade ou LK > cherche le vecteur du flot du mouvement, en cherchant la correspondance entre deux images successives > +Ces algorithmes sont rapides pendent l’exécution et ne sont pas sensibles a la déformation de la cible Cependant en utilisant camshift, la forme de la cible n’est pas du tout prise en compte, et le fait que ça soit basé que sur les couleurs le rend vulnérable au arrière plans chargés. En utilisant LK, la cible sera perdu en passant derrière un obstacle
  18. Pour les algorithmes de détection, nous avons choisi d’essayer les 3 suivants: > SIFT consiste a décrire la cible selectionnée en gardant plusieurs points de référence locaux. +L’avantage est qu’il est tolèrant aux occlusions partielles et au déformations homographiques > - Par contre il ne peut être utilisé qu’avec des objets plats et non déformables, les déformation non homographiques comme celle de l’image a droite, ne sont pas détecté Pour l’utiliser nous pourrions prendre la cible sur plusieurs formes et angles mais ce serai trop lent avec les machines contemporaines. > HOG > est un algorithme de classification basé sur l’apprentissage, qui prend en entrée une image et retourne un résultat positif si la cible est dedans, on calcule d’abord les vecteurs gradients de l’images (pour obtenir ceci : l’image au centre) ensuite on les compare au cumul des vecteurs gradients obtenus grâce à l’apprentissage ( représenté dans l’image a droite). - il nécessite donc un apprentissage pour chaque cible sélectionnée ce que nous ne pouvons pas permettre en temps réel. > Nous avons aussi essayé CCH > Pour expliquer l’idée derrière cet algorithme prenons cet exemple Un simple histogramme de couleurs n’est pas assez pour définir un objet. Ces 4 images donnent le meme histogramme alors qu’elle sont très différentes > Le plus qu’offre CCH est qu’il conserve la distance entre les paires de pixels et leur couleurs respectives pour décrire l’objet. Ceci ajoute une valeur géométrique à un simple histogramme de couleurs et défini bien leur distribution spatiale, sans être très strict quant à la forme de l’objet Cependant il n’y a pas d’implémentation disponible pour cet algorithme, alors nous avons du l’implémenter nous même de A à Z.
  19. Pour les algorithmes de détection, nous avons choisi d’essayer les 3 suivants: > SIFT consiste a décrire la cible selectionnée en gardant plusieurs points de référence locaux. +L’avantage est qu’il est tolèrant aux occlusions partielles et au déformations homographiques > - Par contre il ne peut être utilisé qu’avec des objets plats et non déformables, les déformation non homographiques comme celle de l’image a droite, ne sont pas détecté Pour l’utiliser nous pourrions prendre la cible sur plusieurs formes et angles mais ce serai trop lent avec les machines contemporaines. > HOG > est un algorithme de classification basé sur l’apprentissage, qui prend en entrée une image et retourne un résultat positif si la cible est dedans, on calcule d’abord les vecteurs gradients de l’images (pour obtenir ceci : l’image au centre) ensuite on les compare au cumul des vecteurs gradients obtenus grâce à l’apprentissage ( représenté dans l’image a droite). - il nécessite donc un apprentissage pour chaque cible sélectionnée ce que nous ne pouvons pas permettre en temps réel. > Nous avons aussi essayé CCH > Pour expliquer l’idée derrière cet algorithme prenons cet exemple Un simple histogramme de couleurs n’est pas assez pour définir un objet. Ces 4 images donnent le meme histogramme alors qu’elle sont très différentes > Le plus qu’offre CCH est qu’il conserve la distance entre les paires de pixels et leur couleurs respectives pour décrire l’objet. Ceci ajoute une valeur géométrique à un simple histogramme de couleurs et défini bien leur distribution spatiale, sans être très strict quant à la forme de l’objet Cependant il n’y a pas d’implémentation disponible pour cet algorithme, alors nous avons du l’implémenter nous même de A à Z.
  20. Passant maintenant à présenter notre technique Pour compenser la lenteur de l’algorithme de détection et pour résoudre les probleme de perte de cible pour les algorithme de suivi, nous avons décidé de combiner ces 2 techniques comme suit: > Premièrement l’utilisateur va sélectionner la cible sur la scène en utilisant la souri > L’algorithme passera alors a l’étape de suivi Pour laquelle Nous avons omis l’algorithme camshift, car nous voulons que notre application soit fonctionnel pour tout arrière plan possible Nous avons donc choisi l’algorithme LK > Et comme algorithme de détection nous avons choisi CCH puisqu’il a une plus grande marge de tolérance quant à la déformation de la cible, sans nécessité d’apprentissage
  21. Passant maintenant à présenter notre technique Pour compenser la lenteur de l’algorithme de détection et pour résoudre les probleme de perte de cible pour les algorithme de suivi, nous avons décidé de combiner ces 2 techniques comme suit: > Premièrement l’utilisateur va sélectionner la cible sur la scène en utilisant la souri > L’algorithme passera alors a l’étape de suivi Pour laquelle Nous avons omis l’algorithme camshift, car nous voulons que notre application soit fonctionnel pour tout arrière plan possible Nous avons donc choisi l’algorithme LK > Et comme algorithme de détection nous avons choisi CCH puisqu’il a une plus grande marge de tolérance quant à la déformation de la cible, sans nécessité d’apprentissage
  22. Passant maintenant à présenter notre technique Pour compenser la lenteur de l’algorithme de détection et pour résoudre les probleme de perte de cible pour les algorithme de suivi, nous avons décidé de combiner ces 2 techniques comme suit: > Premièrement l’utilisateur va sélectionner la cible sur la scène en utilisant la souri > L’algorithme passera alors a l’étape de suivi Pour laquelle Nous avons omis l’algorithme camshift, car nous voulons que notre application soit fonctionnel pour tout arrière plan possible Nous avons donc choisi l’algorithme LK > Et comme algorithme de détection nous avons choisi CCH puisqu’il a une plus grande marge de tolérance quant à la déformation de la cible, sans nécessité d’apprentissage
  23. Passant maintenant à présenter notre technique Pour compenser la lenteur de l’algorithme de détection et pour résoudre les probleme de perte de cible pour les algorithme de suivi, nous avons décidé de combiner ces 2 techniques comme suit: > Premièrement l’utilisateur va sélectionner la cible sur la scène en utilisant la souri > L’algorithme passera alors a l’étape de suivi Pour laquelle Nous avons omis l’algorithme camshift, car nous voulons que notre application soit fonctionnel pour tout arrière plan possible Nous avons donc choisi l’algorithme LK > Et comme algorithme de détection nous avons choisi CCH puisqu’il a une plus grande marge de tolérance quant à la déformation de la cible, sans nécessité d’apprentissage
  24. Passant maintenant à présenter notre technique Pour compenser la lenteur de l’algorithme de détection et pour résoudre les probleme de perte de cible pour les algorithme de suivi, nous avons décidé de combiner ces 2 techniques comme suit: > Premièrement l’utilisateur va sélectionner la cible sur la scène en utilisant la souri > L’algorithme passera alors a l’étape de suivi Pour laquelle Nous avons omis l’algorithme camshift, car nous voulons que notre application soit fonctionnel pour tout arrière plan possible Nous avons donc choisi l’algorithme LK > Et comme algorithme de détection nous avons choisi CCH puisqu’il a une plus grande marge de tolérance quant à la déformation de la cible, sans nécessité d’apprentissage
  25. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  26. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  27. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  28. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  29. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  30. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  31. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  32. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  33. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  34. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  35. Nous avons implementé CCH comme suit: > ceci est l’image de la cible (selectionnée par l’utilisateur) > Et celle-ci est l’image à laquelle on va la comparer > La premiere etape est d’executer l’algorithme kmeans avec 4 couleurs pour cet exemple, > qui va nous trouver la palette de couleurs dominantes dans l’image selectionnée > Ensuite on procede a la segmentation des 2 images, > selons la meme palette. Ceci nous permettera de diminuer la taille des données a traiter et donc le temps d’exection, et aussi a ajouter a l’algorithme une tolerence aux changement de luminosité et de contras. >• Ensuite on calcule, pour les 2 images leurs CCH respectifs,> c’est une matrice tridimenstionnelle qui porte les distances entre les paires de couleurs > Et enfin on calcule le taux de correspondance entre ces 2 CCH > Dans ce cas il est egal à quatre-ving-un virgule soixante-dix-neuf pourcent
  36. Pour l’integration des deux algorithme nous avons procédé ainsi: > L’idée était d’utiliser d’abord l’algorithme LK pour le suivie de la cible > Mais elle sera perdue par moment en passant par exemple derriere un obstacle et la fenetre de suivie restera bloquée > Pour ceci - chaque unité de temps - on fait un parcours global sur la scène en utilisant l’algorithme de detection CCH afin de chercher la position de la cible et repositionner correctement la fenêtre de suivi > et ainsi corriger la perte de la cible, puis reprendre le suivi par l’algorithme LK > Cependant ceci à causé un problème de performance. En déclenchant l’étape de recherche, l’interface est bloqué car le parcours global sur toute l’image prend beaucoup de temps, environs 20 secondes pour une vidéo de taille 360x240 Ce qui est inacceptable
  37. Pour l’integration des deux algorithme nous avons procédé ainsi: > L’idée était d’utiliser d’abord l’algorithme LK pour le suivie de la cible > Mais elle sera perdue par moment en passant par exemple derriere un obstacle et la fenetre de suivie restera bloquée > Pour ceci - chaque unité de temps - on fait un parcours global sur la scène en utilisant l’algorithme de detection CCH afin de chercher la position de la cible et repositionner correctement la fenêtre de suivi > et ainsi corriger la perte de la cible, puis reprendre le suivi par l’algorithme LK > Cependant ceci à causé un problème de performance. En déclenchant l’étape de recherche, l’interface est bloqué car le parcours global sur toute l’image prend beaucoup de temps, environs 20 secondes pour une vidéo de taille 360x240 Ce qui est inacceptable
  38. Pour l’integration des deux algorithme nous avons procédé ainsi: > L’idée était d’utiliser d’abord l’algorithme LK pour le suivie de la cible > Mais elle sera perdue par moment en passant par exemple derriere un obstacle et la fenetre de suivie restera bloquée > Pour ceci - chaque unité de temps - on fait un parcours global sur la scène en utilisant l’algorithme de detection CCH afin de chercher la position de la cible et repositionner correctement la fenêtre de suivi > et ainsi corriger la perte de la cible, puis reprendre le suivi par l’algorithme LK > Cependant ceci à causé un problème de performance. En déclenchant l’étape de recherche, l’interface est bloqué car le parcours global sur toute l’image prend beaucoup de temps, environs 20 secondes pour une vidéo de taille 360x240 Ce qui est inacceptable
  39. Pour l’integration des deux algorithme nous avons procédé ainsi: > L’idée était d’utiliser d’abord l’algorithme LK pour le suivie de la cible > Mais elle sera perdue par moment en passant par exemple derriere un obstacle et la fenetre de suivie restera bloquée > Pour ceci - chaque unité de temps - on fait un parcours global sur la scène en utilisant l’algorithme de detection CCH afin de chercher la position de la cible et repositionner correctement la fenêtre de suivi > et ainsi corriger la perte de la cible, puis reprendre le suivi par l’algorithme LK > Cependant ceci à causé un problème de performance. En déclenchant l’étape de recherche, l’interface est bloqué car le parcours global sur toute l’image prend beaucoup de temps, environs 20 secondes pour une vidéo de taille 360x240 Ce qui est inacceptable
  40. Pour l’integration des deux algorithme nous avons procédé ainsi: > L’idée était d’utiliser d’abord l’algorithme LK pour le suivie de la cible > Mais elle sera perdue par moment en passant par exemple derriere un obstacle et la fenetre de suivie restera bloquée > Pour ceci - chaque unité de temps - on fait un parcours global sur la scène en utilisant l’algorithme de detection CCH afin de chercher la position de la cible et repositionner correctement la fenêtre de suivi > et ainsi corriger la perte de la cible, puis reprendre le suivi par l’algorithme LK > Cependant ceci à causé un problème de performance. En déclenchant l’étape de recherche, l’interface est bloqué car le parcours global sur toute l’image prend beaucoup de temps, environs 20 secondes pour une vidéo de taille 360x240 Ce qui est inacceptable
  41. Pour l’integration des deux algorithme nous avons procédé ainsi: > L’idée était d’utiliser d’abord l’algorithme LK pour le suivie de la cible > Mais elle sera perdue par moment en passant par exemple derriere un obstacle et la fenetre de suivie restera bloquée > Pour ceci - chaque unité de temps - on fait un parcours global sur la scène en utilisant l’algorithme de detection CCH afin de chercher la position de la cible et repositionner correctement la fenêtre de suivi > et ainsi corriger la perte de la cible, puis reprendre le suivi par l’algorithme LK > Cependant ceci à causé un problème de performance. En déclenchant l’étape de recherche, l’interface est bloqué car le parcours global sur toute l’image prend beaucoup de temps, environs 20 secondes pour une vidéo de taille 360x240 Ce qui est inacceptable
  42. Nous avons alors pensé a optimiser l’étape de recherche de plusieurs façons:
  43. dans notre implémentation de l’algorithme, précisemment dans le calcul des CCH, > il y a une boucle qui sert à parcourir toute les paires de pixels dans l’image, elle est schématisée dans cette animation. Il s’agit d’un très grand nombre d’itérations et c’est ce qui cause la baisse de performance. > Nous avons donc pensé a définir un nouveau paramètre qui va limiter cette boucle, en cherchant les paires de pixels dont la distance ne dépasse pas un rayon limite. Ce paramètre permettra de donner le choix à l’utilisateur entre la rapidité d’exécution et la précision. > De plus nous avons utilisé OpenMP pour paralléliser cette boucle, ca nous a fait gagné 2/3 du temps d’exécution > Ce graphique montre l’amélioration de la performance par rapport au paramètre rayon, avec parallélisme (en rouge) et sans parallélisme (en bleu) vous remarquez que le de temps d’exécution diminue avec le paramètre rayon et avec le parallélisme
  44. dans notre implémentation de l’algorithme, précisemment dans le calcul des CCH, > il y a une boucle qui sert à parcourir toute les paires de pixels dans l’image, elle est schématisée dans cette animation. Il s’agit d’un très grand nombre d’itérations et c’est ce qui cause la baisse de performance. > Nous avons donc pensé a définir un nouveau paramètre qui va limiter cette boucle, en cherchant les paires de pixels dont la distance ne dépasse pas un rayon limite. Ce paramètre permettra de donner le choix à l’utilisateur entre la rapidité d’exécution et la précision. > De plus nous avons utilisé OpenMP pour paralléliser cette boucle, ca nous a fait gagné 2/3 du temps d’exécution > Ce graphique montre l’amélioration de la performance par rapport au paramètre rayon, avec parallélisme (en rouge) et sans parallélisme (en bleu) vous remarquez que le de temps d’exécution diminue avec le paramètre rayon et avec le parallélisme
  45. dans notre implémentation de l’algorithme, précisemment dans le calcul des CCH, > il y a une boucle qui sert à parcourir toute les paires de pixels dans l’image, elle est schématisée dans cette animation. Il s’agit d’un très grand nombre d’itérations et c’est ce qui cause la baisse de performance. > Nous avons donc pensé a définir un nouveau paramètre qui va limiter cette boucle, en cherchant les paires de pixels dont la distance ne dépasse pas un rayon limite. Ce paramètre permettra de donner le choix à l’utilisateur entre la rapidité d’exécution et la précision. > De plus nous avons utilisé OpenMP pour paralléliser cette boucle, ca nous a fait gagné 2/3 du temps d’exécution > Ce graphique montre l’amélioration de la performance par rapport au paramètre rayon, avec parallélisme (en rouge) et sans parallélisme (en bleu) vous remarquez que le de temps d’exécution diminue avec le paramètre rayon et avec le parallélisme
  46. dans notre implémentation de l’algorithme, précisemment dans le calcul des CCH, > il y a une boucle qui sert à parcourir toute les paires de pixels dans l’image, elle est schématisée dans cette animation. Il s’agit d’un très grand nombre d’itérations et c’est ce qui cause la baisse de performance. > Nous avons donc pensé a définir un nouveau paramètre qui va limiter cette boucle, en cherchant les paires de pixels dont la distance ne dépasse pas un rayon limite. Ce paramètre permettra de donner le choix à l’utilisateur entre la rapidité d’exécution et la précision. > De plus nous avons utilisé OpenMP pour paralléliser cette boucle, ca nous a fait gagné 2/3 du temps d’exécution > Ce graphique montre l’amélioration de la performance par rapport au paramètre rayon, avec parallélisme (en rouge) et sans parallélisme (en bleu) vous remarquez que le de temps d’exécution diminue avec le paramètre rayon et avec le parallélisme
  47. dans notre implémentation de l’algorithme, précisemment dans le calcul des CCH, > il y a une boucle qui sert à parcourir toute les paires de pixels dans l’image, elle est schématisée dans cette animation. Il s’agit d’un très grand nombre d’itérations et c’est ce qui cause la baisse de performance. > Nous avons donc pensé a définir un nouveau paramètre qui va limiter cette boucle, en cherchant les paires de pixels dont la distance ne dépasse pas un rayon limite. Ce paramètre permettra de donner le choix à l’utilisateur entre la rapidité d’exécution et la précision. > De plus nous avons utilisé OpenMP pour paralléliser cette boucle, ca nous a fait gagné 2/3 du temps d’exécution > Ce graphique montre l’amélioration de la performance par rapport au paramètre rayon, avec parallélisme (en rouge) et sans parallélisme (en bleu) vous remarquez que le de temps d’exécution diminue avec le paramètre rayon et avec le parallélisme
  48. Nous avons aussi fait quelques optimisations dans l’intégration des deux algorithmes de suivi et de détection > d’une part nous avons fait en sorte que l’algorithme de recherche ne se déclenche, qu’en cas de necessité, càd au lieu de faire une recherche globale chaque unité de temps, la recherche est lancée seulement si la cible est perdue, > ceci est fait grâce a une vérification fréquente si la cible est toujours dans la fenêtre de suivie ou non > d’autre part le parcours de l’image en cas de perte de la cible se fait d’une manière plus optimisée, au lieu de parcourir toute l’image a la recherche de la cible, on commence par un périmètre de recherche local autour de sa dernière position connue, si elle est retrouvée on replace la fenêtre de suivie dessus > sinon on agrandi le périmètre de recherche. > quand cette partie de recherche est déclenchée elle tourne dans un thread en arrière plan tout en gardant l’algorithme de suivie en marche
  49. Nous avons aussi fait quelques optimisations dans l’intégration des deux algorithmes de suivi et de détection > d’une part nous avons fait en sorte que l’algorithme de recherche ne se déclenche, qu’en cas de necessité, càd au lieu de faire une recherche globale chaque unité de temps, la recherche est lancée seulement si la cible est perdue, > ceci est fait grâce a une vérification fréquente si la cible est toujours dans la fenêtre de suivie ou non > d’autre part le parcours de l’image en cas de perte de la cible se fait d’une manière plus optimisée, au lieu de parcourir toute l’image a la recherche de la cible, on commence par un périmètre de recherche local autour de sa dernière position connue, si elle est retrouvée on replace la fenêtre de suivie dessus > sinon on agrandi le périmètre de recherche. > quand cette partie de recherche est déclenchée elle tourne dans un thread en arrière plan tout en gardant l’algorithme de suivie en marche
  50. Nous avons aussi fait quelques optimisations dans l’intégration des deux algorithmes de suivi et de détection > d’une part nous avons fait en sorte que l’algorithme de recherche ne se déclenche, qu’en cas de necessité, càd au lieu de faire une recherche globale chaque unité de temps, la recherche est lancée seulement si la cible est perdue, > ceci est fait grâce a une vérification fréquente si la cible est toujours dans la fenêtre de suivie ou non > d’autre part le parcours de l’image en cas de perte de la cible se fait d’une manière plus optimisée, au lieu de parcourir toute l’image a la recherche de la cible, on commence par un périmètre de recherche local autour de sa dernière position connue, si elle est retrouvée on replace la fenêtre de suivie dessus > sinon on agrandi le périmètre de recherche. > quand cette partie de recherche est déclenchée elle tourne dans un thread en arrière plan tout en gardant l’algorithme de suivie en marche
  51. Nous avons aussi fait quelques optimisations dans l’intégration des deux algorithmes de suivi et de détection > d’une part nous avons fait en sorte que l’algorithme de recherche ne se déclenche, qu’en cas de necessité, càd au lieu de faire une recherche globale chaque unité de temps, la recherche est lancée seulement si la cible est perdue, > ceci est fait grâce a une vérification fréquente si la cible est toujours dans la fenêtre de suivie ou non > d’autre part le parcours de l’image en cas de perte de la cible se fait d’une manière plus optimisée, au lieu de parcourir toute l’image a la recherche de la cible, on commence par un périmètre de recherche local autour de sa dernière position connue, si elle est retrouvée on replace la fenêtre de suivie dessus > sinon on agrandi le périmètre de recherche. > quand cette partie de recherche est déclenchée elle tourne dans un thread en arrière plan tout en gardant l’algorithme de suivie en marche
  52. Nous avons aussi fait quelques optimisations dans l’intégration des deux algorithmes de suivi et de détection > d’une part nous avons fait en sorte que l’algorithme de recherche ne se déclenche, qu’en cas de necessité, càd au lieu de faire une recherche globale chaque unité de temps, la recherche est lancée seulement si la cible est perdue, > ceci est fait grâce a une vérification fréquente si la cible est toujours dans la fenêtre de suivie ou non > d’autre part le parcours de l’image en cas de perte de la cible se fait d’une manière plus optimisée, au lieu de parcourir toute l’image a la recherche de la cible, on commence par un périmètre de recherche local autour de sa dernière position connue, si elle est retrouvée on replace la fenêtre de suivie dessus > sinon on agrandi le périmètre de recherche. > quand cette partie de recherche est déclenchée elle tourne dans un thread en arrière plan tout en gardant l’algorithme de suivie en marche
  53. Passons a la partie réalisation
  54. Concernant le matériel utilisé nous utilisons une Camera d-link ptz ip Sans fil Pan et tilt Ca résolution maximale est de 640x480 pixels Le taux de rafraichissement est de 30Hz
  55. la camera n’offre pas de bibliothèque ou api pour les commandes de ses moteurs, nous avons donc fait une interception des requêtes de mouvement de la camera a partir de cette page provenant de son mini serveur, en utilisant l’inspecteur de réseau dans firefox. Pour pouvoir ensuite imiter ces requetes et contrôler la camera à partir de notre application
  56. Nous avons développé notre application en C++ avec QT creator sous le système d’exploitation ubuntu en utilisant la bibliotheque libre de vision par ordinateur
  57. Parlons maintenant de l’interface graphique En lançant l’application, l’utilisateur aura une interface d’authentification, une fois les informations nécessaire introduites, l’interface principale est ouverte > Elle comporte l’essentiel de notre application : l’affichage du flux vidéo, les contrôles manuels de la camera avec les boutons haut, bas, gauche, droite, et le bouton recentrer, les paramètres de notre algorithme comme le rayon limite, le bouton de déconnexion en haut a droite et le bouton « A propos », un bouton pour rafraichir, un pour déconnecter la camera actuelle, et un bouton pour désélectionner la cible. Cette zone portera l’image de la cible sélectionnée, et celle a droite affiche la zone qui est dans la fenêtre de suivie actuelle. Ceci est la liste déroulante de choix de camera, elle peut etre modifiée en cliquant sur ce bouton > Dans cette fenêtre, on peut gérer les cameras qui seront affichées dans la liste déroulante pour ne pas l’encombrer A gauche sont les cameras affichées, et a droite le reste des cameras qui ne sont pas utilisées. Et on peut ajouter ou retirer une camera en utilisant ces fleches > En cliquant sur le bouton configuration > Une autre fenetre s’affiche, Dans l’onglet général on trouve des paramètres plus avancés de notre algorithme Pour chaque utilisateur ses preferences sont enregistrée dans son compte. > Dans l’onglet camera, on peut ajouter supprimer et modifier les cameras dans la liste, que ce soit des cameras IP PTZ et autres, sans fil , filaires, USB ou webcam > Dans l’onglet profil, on a les informations personnelles du compte utilisé
  58. Parlons maintenant de l’interface graphique En lançant l’application, l’utilisateur aura une interface d’authentification, une fois les informations nécessaire introduites, l’interface principale est ouverte > Elle comporte l’essentiel de notre application : l’affichage du flux vidéo, les contrôles manuels de la camera avec les boutons haut, bas, gauche, droite, et le bouton recentrer, les paramètres de notre algorithme comme le rayon limite, le bouton de déconnexion en haut a droite et le bouton « A propos », un bouton pour rafraichir, un pour déconnecter la camera actuelle, et un bouton pour désélectionner la cible. Cette zone portera l’image de la cible sélectionnée, et celle a droite affiche la zone qui est dans la fenêtre de suivie actuelle. Ceci est la liste déroulante de choix de camera, elle peut etre modifiée en cliquant sur ce bouton > Dans cette fenêtre, on peut gérer les cameras qui seront affichées dans la liste déroulante pour ne pas l’encombrer A gauche sont les cameras affichées, et a droite le reste des cameras qui ne sont pas utilisées. Et on peut ajouter ou retirer une camera en utilisant ces fleches > En cliquant sur le bouton configuration > Une autre fenetre s’affiche, Dans l’onglet général on trouve des paramètres plus avancés de notre algorithme Pour chaque utilisateur ses preferences sont enregistrée dans son compte. > Dans l’onglet camera, on peut ajouter supprimer et modifier les cameras dans la liste, que ce soit des cameras IP PTZ et autres, sans fil , filaires, USB ou webcam > Dans l’onglet profil, on a les informations personnelles du compte utilisé
  59. Parlons maintenant de l’interface graphique En lançant l’application, l’utilisateur aura une interface d’authentification, une fois les informations nécessaire introduites, l’interface principale est ouverte > Elle comporte l’essentiel de notre application : l’affichage du flux vidéo, les contrôles manuels de la camera avec les boutons haut, bas, gauche, droite, et le bouton recentrer, les paramètres de notre algorithme comme le rayon limite, le bouton de déconnexion en haut a droite et le bouton « A propos », un bouton pour rafraichir, un pour déconnecter la camera actuelle, et un bouton pour désélectionner la cible. Cette zone portera l’image de la cible sélectionnée, et celle a droite affiche la zone qui est dans la fenêtre de suivie actuelle. Ceci est la liste déroulante de choix de camera, elle peut etre modifiée en cliquant sur ce bouton > Dans cette fenêtre, on peut gérer les cameras qui seront affichées dans la liste déroulante pour ne pas l’encombrer A gauche sont les cameras affichées, et a droite le reste des cameras qui ne sont pas utilisées. Et on peut ajouter ou retirer une camera en utilisant ces fleches > En cliquant sur le bouton configuration > Une autre fenetre s’affiche, Dans l’onglet général on trouve des paramètres plus avancés de notre algorithme Pour chaque utilisateur ses preferences sont enregistrée dans son compte. > Dans l’onglet camera, on peut ajouter supprimer et modifier les cameras dans la liste, que ce soit des cameras IP PTZ et autres, sans fil , filaires, USB ou webcam > Dans l’onglet profil, on a les informations personnelles du compte utilisé
  60. Parlons maintenant de l’interface graphique En lançant l’application, l’utilisateur aura une interface d’authentification, une fois les informations nécessaire introduites, l’interface principale est ouverte > Elle comporte l’essentiel de notre application : l’affichage du flux vidéo, les contrôles manuels de la camera avec les boutons haut, bas, gauche, droite, et le bouton recentrer, les paramètres de notre algorithme comme le rayon limite, le bouton de déconnexion en haut a droite et le bouton « A propos », un bouton pour rafraichir, un pour déconnecter la camera actuelle, et un bouton pour désélectionner la cible. Cette zone portera l’image de la cible sélectionnée, et celle a droite affiche la zone qui est dans la fenêtre de suivie actuelle. Ceci est la liste déroulante de choix de camera, elle peut etre modifiée en cliquant sur ce bouton > Dans cette fenêtre, on peut gérer les cameras qui seront affichées dans la liste déroulante pour ne pas l’encombrer A gauche sont les cameras affichées, et a droite le reste des cameras qui ne sont pas utilisées. Et on peut ajouter ou retirer une camera en utilisant ces fleches > En cliquant sur le bouton configuration > Une autre fenetre s’affiche, Dans l’onglet général on trouve des paramètres plus avancés de notre algorithme Pour chaque utilisateur ses preferences sont enregistrée dans son compte. > Dans l’onglet camera, on peut ajouter supprimer et modifier les cameras dans la liste, que ce soit des cameras IP PTZ et autres, sans fil , filaires, USB ou webcam > Dans l’onglet profil, on a les informations personnelles du compte utilisé
  61. Parlons maintenant de l’interface graphique En lançant l’application, l’utilisateur aura une interface d’authentification, une fois les informations nécessaire introduites, l’interface principale est ouverte > Elle comporte l’essentiel de notre application : l’affichage du flux vidéo, les contrôles manuels de la camera avec les boutons haut, bas, gauche, droite, et le bouton recentrer, les paramètres de notre algorithme comme le rayon limite, le bouton de déconnexion en haut a droite et le bouton « A propos », un bouton pour rafraichir, un pour déconnecter la camera actuelle, et un bouton pour désélectionner la cible. Cette zone portera l’image de la cible sélectionnée, et celle a droite affiche la zone qui est dans la fenêtre de suivie actuelle. Ceci est la liste déroulante de choix de camera, elle peut etre modifiée en cliquant sur ce bouton > Dans cette fenêtre, on peut gérer les cameras qui seront affichées dans la liste déroulante pour ne pas l’encombrer A gauche sont les cameras affichées, et a droite le reste des cameras qui ne sont pas utilisées. Et on peut ajouter ou retirer une camera en utilisant ces fleches > En cliquant sur le bouton configuration > Une autre fenetre s’affiche, Dans l’onglet général on trouve des paramètres plus avancés de notre algorithme Pour chaque utilisateur ses preferences sont enregistrée dans son compte. > Dans l’onglet camera, on peut ajouter supprimer et modifier les cameras dans la liste, que ce soit des cameras IP PTZ et autres, sans fil , filaires, USB ou webcam > Dans l’onglet profil, on a les informations personnelles du compte utilisé
  62. Parlons maintenant de l’interface graphique En lançant l’application, l’utilisateur aura une interface d’authentification, une fois les informations nécessaire introduites, l’interface principale est ouverte > Elle comporte l’essentiel de notre application : l’affichage du flux vidéo, les contrôles manuels de la camera avec les boutons haut, bas, gauche, droite, et le bouton recentrer, les paramètres de notre algorithme comme le rayon limite, le bouton de déconnexion en haut a droite et le bouton « A propos », un bouton pour rafraichir, un pour déconnecter la camera actuelle, et un bouton pour désélectionner la cible. Cette zone portera l’image de la cible sélectionnée, et celle a droite affiche la zone qui est dans la fenêtre de suivie actuelle. Ceci est la liste déroulante de choix de camera, elle peut etre modifiée en cliquant sur ce bouton > Dans cette fenêtre, on peut gérer les cameras qui seront affichées dans la liste déroulante pour ne pas l’encombrer A gauche sont les cameras affichées, et a droite le reste des cameras qui ne sont pas utilisées. Et on peut ajouter ou retirer une camera en utilisant ces fleches > En cliquant sur le bouton configuration > Une autre fenetre s’affiche, Dans l’onglet général on trouve des paramètres plus avancés de notre algorithme Pour chaque utilisateur ses preferences sont enregistrée dans son compte. > Dans l’onglet camera, on peut ajouter supprimer et modifier les cameras dans la liste, que ce soit des cameras IP PTZ et autres, sans fil , filaires, USB ou webcam > Dans l’onglet profil, on a les informations personnelles du compte utilisé
  63. Parlons maintenant de l’interface graphique En lançant l’application, l’utilisateur aura une interface d’authentification, une fois les informations nécessaire introduites, l’interface principale est ouverte > Elle comporte l’essentiel de notre application : l’affichage du flux vidéo, les contrôles manuels de la camera avec les boutons haut, bas, gauche, droite, et le bouton recentrer, les paramètres de notre algorithme comme le rayon limite, le bouton de déconnexion en haut a droite et le bouton « A propos », un bouton pour rafraichir, un pour déconnecter la camera actuelle, et un bouton pour désélectionner la cible. Cette zone portera l’image de la cible sélectionnée, et celle a droite affiche la zone qui est dans la fenêtre de suivie actuelle. Ceci est la liste déroulante de choix de camera, elle peut etre modifiée en cliquant sur ce bouton > Dans cette fenêtre, on peut gérer les cameras qui seront affichées dans la liste déroulante pour ne pas l’encombrer A gauche sont les cameras affichées, et a droite le reste des cameras qui ne sont pas utilisées. Et on peut ajouter ou retirer une camera en utilisant ces fleches > En cliquant sur le bouton configuration > Une autre fenetre s’affiche, Dans l’onglet général on trouve des paramètres plus avancés de notre algorithme Pour chaque utilisateur ses preferences sont enregistrée dans son compte. > Dans l’onglet camera, on peut ajouter supprimer et modifier les cameras dans la liste, que ce soit des cameras IP PTZ et autres, sans fil , filaires, USB ou webcam > Dans l’onglet profil, on a les informations personnelles du compte utilisé
  64. En conclusion, nous avons présenté aujourd’hui la solution que nous avons développée, pour le suivi de personne sur une camera PTZ basée sur une intégration de deux algorithmes, de suivi, et de détection > que nous avons implémenté nous même et auquel nous avons apporté des améliorations afin de résoudre les problèmes de performances rencontrés > Une amélioration possible de notre solution est de basculer automatiquement entres plusieurs cameras, quand la cible passe du champ de vision de l’une vers celui d’une autre > Notre solution peut être utilisée dans plusieurs domaines tels que la vidéo conférence, la télésurveillance, le théâtre etc. Et en plus du suivi de personne, elle peut être utilisée aussi pour le suivi de n’importe quelle cible déformable ou non. Par exemple: Véhicules, animaux et objets.
  65. En conclusion, nous avons présenté aujourd’hui la solution que nous avons développée, pour le suivi de personne sur une camera PTZ basée sur une intégration de deux algorithmes, de suivi, et de détection > que nous avons implémenté nous même et auquel nous avons apporté des améliorations afin de résoudre les problèmes de performances rencontrés > Une amélioration possible de notre solution est de basculer automatiquement entres plusieurs cameras, quand la cible passe du champ de vision de l’une vers celui d’une autre > Notre solution peut être utilisée dans plusieurs domaines tels que la vidéo conférence, la télésurveillance, le théâtre etc. Et en plus du suivi de personne, elle peut être utilisée aussi pour le suivi de n’importe quelle cible déformable ou non. Par exemple: Véhicules, animaux et objets.
  66. En conclusion, nous avons présenté aujourd’hui la solution que nous avons développée, pour le suivi de personne sur une camera PTZ basée sur une intégration de deux algorithmes, de suivi, et de détection > que nous avons implémenté nous même et auquel nous avons apporté des améliorations afin de résoudre les problèmes de performances rencontrés > Une amélioration possible de notre solution est de basculer automatiquement entres plusieurs cameras, quand la cible passe du champ de vision de l’une vers celui d’une autre > Notre solution peut être utilisée dans plusieurs domaines tels que la vidéo conférence, la télésurveillance, le théâtre etc. Et en plus du suivi de personne, elle peut être utilisée aussi pour le suivi de n’importe quelle cible déformable ou non. Par exemple: Véhicules, animaux et objets.
  67. En conclusion, nous avons présenté aujourd’hui la solution que nous avons développée, pour le suivi de personne sur une camera PTZ basée sur une intégration de deux algorithmes, de suivi, et de détection > que nous avons implémenté nous même et auquel nous avons apporté des améliorations afin de résoudre les problèmes de performances rencontrés > Une amélioration possible de notre solution est de basculer automatiquement entres plusieurs cameras, quand la cible passe du champ de vision de l’une vers celui d’une autre > Notre solution peut être utilisée dans plusieurs domaines tels que la vidéo conférence, la télésurveillance, le théâtre etc. Et en plus du suivi de personne, elle peut être utilisée aussi pour le suivi de n’importe quelle cible déformable ou non. Par exemple: Véhicules, animaux et objets.
  68. En conclusion, nous avons présenté aujourd’hui la solution que nous avons développée, pour le suivi de personne sur une camera PTZ basée sur une intégration de deux algorithmes, de suivi, et de détection > que nous avons implémenté nous même et auquel nous avons apporté des améliorations afin de résoudre les problèmes de performances rencontrés > Une amélioration possible de notre solution est de basculer automatiquement entres plusieurs cameras, quand la cible passe du champ de vision de l’une vers celui d’une autre > Notre solution peut être utilisée dans plusieurs domaines tels que la vidéo conférence, la télésurveillance, le théâtre etc. Et en plus du suivi de personne, elle peut être utilisée aussi pour le suivi de n’importe quelle cible déformable ou non. Par exemple: Véhicules, animaux et objets.
  69. Merci pour votre attention, si vous voulez bien, nous avons une vidéo de démonstration a vous montrer. - QThread Un QThread représente un thread de contrôle séparé dans le programme le thread etant séparé du processus principale, les 2 peuvent tourner en parallel -OpenMP OpenMP est un ensemble de directives de compilation pour paralléliser un code openmp permettant de traiter des informations de manière simultanée -Qt QT est un Framework spécialement conçu pour la réalisation d’interface graphique. Il est développé en C. Qt est cross-plateforme en supportant de nombreuses plateformes comme Unix, Windows, Mac OS, Android… -Opencv Opencv est une bibliothèque graphique offrant l’avantage de faciliter l’utilisation d’algorithme traitement d’image qui est de plus open source. -pq choisit sqlite Léger Facile à exporter/importer Tiens en un seul fichier Ne nécessite pas d’authentification Ne nécessite pas de Serveur de gestion de base de données