Elaboré et Présenté par:
DAOUAHI Achref et ABAYED Mohamed
Kirmene Marzouki (ISSATSo)
30/06/2015
Leila Ben Tekaya (Spike-X)...
2
Introduction & Problématique
Techniques Utilisables
Technique Proposée
Amélioration de la technique proposée
Réalisation...
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 ca...
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)...
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
Etap...
8
Etape 3
• Recherche
de la cible
• (détection)
Etape 2
• Suivi du
mouvement
de la cible
• Mouvement
de la camera
PTZ
Etap...
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
80...
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 ...
13
Dans l’intégration des deux algorithmes
Déclanchement de la recherche qu’en cas de nécessité
Parcours plus optimisé en ...
13
Dans l’intégration des deux algorithmes
Déclanchement de la recherche qu’en cas de nécessité
Parcours plus optimisé en ...
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...
Solution de suivi de personne sur camera
PTZ se basant sur le suivi et la détection
Amélioration possible : Basculer
autom...
Solution de suivi de personne sur camera
PTZ se basant sur le suivi et la détection
Amélioration possible : Basculer
autom...
Tracking de personnesur Camera PTZ
Prochain SlideShare
Chargement dans…5
×

Tracking de personne sur Camera PTZ

444 vues

Publié le

Projet de Fin d’Etudes: Tracking de personne sur Camera PTZ

Publié dans : Logiciels
1 commentaire
1 j’aime
Statistiques
Remarques
Aucun téléchargement
Vues
Nombre de vues
444
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
24
Commentaires
1
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

  • 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
  • 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
  • >
    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.
  • >
    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.
  • >
    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.
  • >
    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.
  • >
    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.
  • >
    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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Passons aux techniques utilisables
  • 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
  • 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
  • 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
  • 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
  • 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.
  • 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.
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Nous avons alors pensé a optimiser l’étape de recherche de plusieurs façons:
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Passons a la partie réalisation
  • 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
  • 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
  • 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
  • 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é
  • 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é
  • 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é
  • 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é
  • 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é
  • 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é
  • 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é
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • Tracking de personne sur Camera PTZ

    1. 1. Elaboré et Présenté par: DAOUAHI Achref et ABAYED Mohamed Kirmene Marzouki (ISSATSo) 30/06/2015 Leila Ben Tekaya (Spike-X) Encadré par:
    2. 2. 2 Introduction & Problématique Techniques Utilisables Technique Proposée Amélioration de la technique proposée Réalisation Conclusion & Perspectives
    3. 3. 3
    4. 4. 3
    5. 5. 3
    6. 6. 3 Suivi d’une personne spécifique en temps réel
    7. 7. 3 Suivi d’une personne spécifique en temps réel Le flux vidéo provient d’une camera IP PTZ
    8. 8. 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
    9. 9. 4
    10. 10. Une seule cible 4
    11. 11. La camera n’est pas fixe Une seule cible 4
    12. 12. Une personne est une cible déformable La camera n’est pas fixe Une seule cible 4
    13. 13. 5
    14. 14. Suivi 6
    15. 15. Suivi Camshift Lucas&Kanade (LK) 6
    16. 16. Suivi Camshift Lucas&Kanade (LK) 6
    17. 17. Suivi Camshift Lucas&Kanade (LK) 6
    18. 18. Détection 7
    19. 19. Détection Scale Invariant Feature Transform (SIFT) Histogram of Oriented Gradients (HOG) Color Cooccurence Histogram (CCH) 7
    20. 20. 8
    21. 21. 8 Etape 1 • Sélection d’une cible
    22. 22. 8 Etape 2 • Suivi du mouvement de la cible • Mouvement de la camera PTZ Etape 1 • Sélection d’une cible
    23. 23. 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
    24. 24. 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
    25. 25. 9
    26. 26. 9
    27. 27. 9
    28. 28. 9 Kmeans
    29. 29. 9 Kmeans
    30. 30. 9 SegmentationKmeans
    31. 31. 9 SegmentationKmeans
    32. 32. 9 Calcul des CCH SegmentationKmeans
    33. 33. 9 Calcul des CCH SegmentationKmeans
    34. 34. 9 Calcul de Correspondance Calcul des CCH SegmentationKmeans
    35. 35. 9 Calcul de correspondance 81,79% Calcul de Correspondance Calcul des CCH SegmentationKmeans
    36. 36. 10
    37. 37. 10 LK
    38. 38. 10 LK LK
    39. 39. 10 LK LK CCH
    40. 40. 10 LK LK LKCCH
    41. 41. 10 LK LK LKCCH
    42. 42. 11
    43. 43. Dans l’implémentation de CCH 12
    44. 44. Dans l’implémentation de CCH 12
    45. 45. Dans l’implémentation de CCH Définition d’un nouveau paramètre (Rayon limite) 12
    46. 46. Dans l’implémentation de CCH Définition d’un nouveau paramètre (Rayon limite) Parallélisme (OpenMP) 12
    47. 47. 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
    48. 48. 13 Dans l’intégration des deux algorithmes Déclanchement de la recherche qu’en cas de nécessité
    49. 49. 13 Dans l’intégration des deux algorithmes Déclanchement de la recherche qu’en cas de nécessité
    50. 50. 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
    51. 51. 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
    52. 52. 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
    53. 53. 14
    54. 54. Camera D-Link DCS-5020L Wireless IP Pan & Tilt 640x480 30Hz 15
    55. 55. 16
    56. 56. 17
    57. 57. 18
    58. 58. 18
    59. 59. 18
    60. 60. 18
    61. 61. 18
    62. 62. 18
    63. 63. 18
    64. 64. 19
    65. 65. Solution de suivi de personne sur camera PTZ se basant sur le suivi et la détection 19
    66. 66. 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
    67. 67. 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
    68. 68. 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

    ×