doc num

publicité
République Algérienne Démocratique et Populaire
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université des Sciences et de la Technologie d’Oran
Mohamed BOUDIAF
FACULTE DE GENIE ELECTRIQUE
DEPARTEMENT D’ELECTRONIQUE
MEMOIRE EN VUE DE L’OBTENTION DU DIPLOME DE MAGISTER
SPECIALITE : ELECTRONIQUE
OPTION : TECHNIQUES DE COMMUNICATIONS MODERNES
PRESENTE PAR
Mr KADRI Mohammed
Implémentation sur DM642_EVM de l’algorithme de
mixture de gaussiennes appliquée à la vidéosurveillance
SOUTENU LE : 02/02/2010
Devant le jury :
Mr M. KECHE
Mr A. OUAMRI
Mr M. OULD MAMMAR
Mr M.TERBECHE
MC. USTO.MB
Prof. USTO.MB
MC. USTO.MB
Prof. Es-senia
Président
Rapporteur
Examinateur
Examinateur
Sommaire
Introduction générale ............................................................................................................... 1
Chapitre 1 : Vidéo surveillance ............................................................................................. 3
1.1 Introduction ..................................................................................................................... 3
1.2 Vidéosurveillance ............................................................................................................. 4
1.3 Vidéosurveillance intelligente .......................................................................................... 6
1.3.1 Les avantages de la vidéosurveillance intelligente ............................................. 7
1.4 Secteurs d’applications ................................................................................................... 9
1.4.1 Application militaire ............................................................................................. 9
1.4.2 Gouvernement et sécurité publique ...................................................................... 9
1.4.3 Éducation ............................................................................................................ 10
1.4.4 Autres .................................................................................................................. 10
1.5 Évolution des systèmes de vidéosurveillance ................................................................ 10
1.5.1 Première génération : le tout analogique ............................................................ 11
1.5.2 Deuxième génération : le système hybride ......................................................... 11
1.5.3 Troisième génération : le tout numérique IP ...................................................... 13
1.6 Etat de l’avancement technologique ............................................................................. 14
1.7 Description de la vidéo surveillance intelligente ......................................................... 14
1.7.1. Détection de mouvement ................................................................................... 15
1.7.2. Suivi d’objets ..................................................................................................... 15
1.7.3. Classification et identification d’objets ............................................................. 16
1.7.4. Identification d’activités et de comportements .................................................. 17
1.8 Conclusion ..................................................................................................................... 18
Chapitre 2 : Techniques de détection d’objets mobiles ..................................................... 19
2.1 Introduction ................................................................................................................... 19
2.2 Définition de détection .................................................................................................. 20
i
2.3 Le background substraction ........................................................................................... 20
2.3.1. La différence temporelle adaptative de fond
.................................................. 21
2.3.2 La différence temporelle par un seuillage entropique ....................................... 22
2.3.2.1 Puissance entropique d’une source ..................................................... 23
2.3.2.2 Application en détection ..................................................................... 24
2.3.3 Le modèle de mixture de gaussienne adaptatif .................................................. 25
2.3.3.1 La dérivation théorique de la procédure de mise à jour ...................... 27
2.3.3.2 Algorithme de Maximisation d'Espérance ........................................... 27
2.3.3.3 L’application D’EM aux modèles de mixtures de gaussiennes .......... 29
2.3.3.4 Algorithme de Stauffer et Grimson ..................................................... 31
2.3.3.5 Considérations pratiques ...................................................................... 33
2.4 Résultats expérimentaux ................................................................................................ 35
2.5 Conclusion .................................................................................................................... 39
Chapitre 3 : DSP DM642 EVM ............................................................................................. 40
3.1 Introduction ................................................................................................................... 40
3.2 Généralités sur les DSP ................................................................................................. 41
3.2.1 Définition ........................................................................................................... 41
3.2.2 Caractéristiques des DSP ................................................................................. 41
3.3 Les différents types de DSP .......................................................................................... 42
3.3.1 Le DSP à virgule fixe ........................................................................................ 42
3.3.2 Le DSP à virgule flottante .................................................................................. 42
3.4 Formats des DSP ......................................................................................................... 43
3.4.1 Représentation binaire des nombres arithmétique en précision finie ............... 43
3.4.2 Représentation binaires des nombres réels en précision finie ............................ 45
3.5 DSPs de la famille C6000 ........................................................................................... 49
3.5.1 Choix du DSP ..................................................................................................... 50
3.6 Le DSP DM642_EVM (Digital Media 642Evaluation Module) .................................. 51
ii
3.6.1 Architecture interne du TMS320DM642 .......................................................... 51
3.6.2 Les espaces mémoire ........................................................................................ 53
3.6.3 Périphériques du DM642 .................................................................................... 55
3.7 Ports vidéo de la communication ................................................................................... 56
3.8 Représentation du format vidéo ..................................................................................... 57
3.8.1 Le modèle YCbCr ............................................................................................... 57
3.8.2 Le modèle RGB .................................................................................................. 59
3.8.3 Le modèle YUV .................................................................................................. 59
3.9 Résolution vidéo ............................................................................................................ 59
3.10 Conclusion ................................................................................................................... 61
Chapitre 4 : Implémentation de l’algorithme ...................................................................... 62
4.1 Introduction ................................................................................................................... 62
4.2 La formulation du problème ......................................................................................... 63
4.3 Le système ..................................................................................................................... 63
4.3.1 Capture/affichage et conversion d’une vidéo ................................................... 63
4.3.2 Le traitement du modèle de mixture de gaussiennes .......................................... 64
4.3.3 Filtre ................................................................................................................... 65
4.4 Implémentation et Optimisation .................................................................................... 66
4.4.1 Mesure de nombre de cycles .............................................................................. 66
4.4.1.1 Le profile d'horloge ............................................................................. 66
4.4.1.2 Le module STS ................................................................................... 66
4.4.1.3 Utilisations du module STS ................................................................ 67
4.4.1.4 Visualisation des statistiques ............................................................... 67
4.5 Résultats de l’implémentation ....................................................................................... 70
4.5.1Résultat de détection ............................................................................................ 71
4.6 Optimisation de l’implémentation ................................................................................ 72
4.6.1 RTOS optimisations ................................................................................................ 72
iii
4.6.2 Les registres ........................................................................................................ 72
4.6.3 Le système de mémoire ...................................................................................... 72
4.7 La mise à l’échelle des paramètres du modèle ............................................................... 75
4.8 Latence des opérations principales en fixe et en flottant ............................................. 76
4.9 Conclusion ..................................................................................................................... 80
Conclusion générale................................................................................................................ 81
Références ............................................................................................................................... 82
iv
Introduction
Introduction générale
Aujourd’hui, on peut trouver facilement des applications de la vidéo surveillance un pe u
partout : au parking, au musée, dans un hôpital o u b ie n dans une gare e tc...La vidéo
surveillance nous permet d’observer des lieux sur différentes positions en temps r é e l et à
vite reconnaître des événements anormaux qui se passent dans une scène par un agent de
sécurité.
Cependant, comment un agent de sécurité peut-il analyser en temps réel des dizaines
d’écrans de contrôle avec un risque d’erreur minimal? Sans négliger que l’observation
des écrans pendant un long moment est une tache ennuyeuse. L’issue de ces deux
problématiques tient en trois mots : vidéo surveillance intelligente !
La vidéo surveillance intelligente est un nouveau système qui étudie ce qui se passe dans
une scène. Ce terme touche un axe de recherche assez large, et est appliqué dans différents
domaines tel que la robotique et l a médecine où beaucoup de recherches et de travaux ont
déjà introduits la vidéo surveillance, tel que la reconnaissance d’objets et d’activités dans une
vidéo etc. Ce sont donc des sujets qui intéresse nt actuellement plusieurs chercheurs. Cette
thèse étudie une des applications les plus importantes de la vidéo surveillance intelligente, il
s’agit de la détection de mouvements d’objets mobiles en temps réel. La détection d’objet en
déplacement dans une scène est une étape importante qu’on peut exploiter pour mieux
suivre les mouvements dans une séquence.
Le temps réel de la vidéo surveillance intelligente est un champ d’application
particulièrement difficile lorsque les objets en mouvements sont multiples dans des
environnements encombrés et inconstants.
Le British Télécom (centre de recherche à large bande) a travaillé sur la segmentation et le
suivi d’objets mobiles dans une scène visuelle. Ce centre de recherche a développé un
prototype qui fonctionne sur un PC (Pentium IV 2.4 GHz) à une cadence de 18 images par
seconde [SN06].
1
Introduction
L’objectif principal de notre travail est l’implémentation sur une carte DSP de type
DM642_EVM à virgule fixe d’un algorithme de détection d’objets mobiles pouvant être des
véhicules ou des personnes. Les mesures sont des images dynamiques acquises par une
caméra fixe. Le DSP reste tout de même plus adopté que le PC classique du fait de ses
différentes particularités : petite taille, faible consommation, faible cout, haute performance.
Ces caractéristiques sont particulièrement intéressantes dans des cas où des données doivent
être transférées à partir de caméras à un système de traitement central. En plus, lorsque
l’algorithme de traitement vidéo se fait pixel par pixel, les processeurs DSP sont plus
appropriés car ils disposent d’instructions spécifiques pour effectuer des opérations en
parallèle.
Ce mémoire comporte quatre principaux chapitres : le premier est consacré à l’art de la vidéo
surveillance, suivi d’une présentation des différentes méthodes de détection d’objets mobiles
dans le chapitre deux. Les détails de la carte DSP DM642_EVM seront présentés dans le
chapitre trois. Les différents résultats obtenus et leurs interprétations sont consignés dans le
quatrième chapitre. Nous terminerons ce mémoire par une conclusion générale et
d’éventuelles perspectives afin d’assurer la continuité de ce travail.
2
Vidéo surveillance
CHAPITRE 1
Chapitre 1
Vidéo surveillance
1.1 Introduction
La vidéo surveillance est utilisée depuis longtemps pour contrôler la sécurité des zones
sensibles telles que les banques, les magasins, les routes, les lieux publics bondés et les
frontières. Traditionnellement, les sorties vidéo en ligne sont traitées par des opérateurs
humains et sont généralement enregistrées pour les utiliser postérieurement cas de
manifestation d’un problème légal. L'augmentation du nombre de caméras dans des systèmes
de surveillance induit à la surcharge des opérateurs humains et des dispositifs de stockage
avec des volumes de données élevés. En conséquence il est impossible d’assurer une bonne
surveillance des zones sensibles pour longue durée. Dans ce contexte, la vidéo surveillance
est devenus une exigence primordiale, en fait, elle utilise des systèmes intelligents pour
effectuer le filtrage des informations redondantes générées par un ensemble de caméras,
augmenter le temps de réponse légal à des événements et aider les opérateurs humains à
identifier des événements importants de la vidéo par l'utilisation de systèmes intelligents de la
vidéo surveillance qui est devenue un outil indispensable.
3
Vidéo surveillance
CHAPITRE 1
1.2 Vidéosurveillance
La vidéosurveillance est un segment de l’industrie de la sécurité physique. Cette
dernière inclut aussi le contrôle d’accès, la détection et le contrôle d’incendies, la gestion
technique de bâtiments, les systèmes assurant la sécurité des personnes et la détection
d’intrusion.
La vidéosurveillance consiste à surveiller à distance des lieux publics ou privés, à
l'aide de caméras, le plus souvent motorisées, qui transmettent les images saisies à un
équipement de contrôle qui les enregistre où les reproduit sur un écran (Figure 1.1)
[HBCP03]. Elle capte sur image les flux de personnes pour surveiller les allées et venues,
prévenir les vols, agressions et fraudes, ainsi que pour gérer les incidents et mouvements de
foule.
Figure 1.1: Caméras de surveillance.
Bien que ses premières utilisations remontent aux années 1950, la surveillance au moyen de
systèmes de télévision en circuit fermé (TVCF) s’est vraiment développée à partir des années
1970, principalement au Royaume-Uni, pour lutter contre les activités terroristes. À l’heure
actuelle, le Royaume-Uni constitue d’ailleurs la société « la plus surveillée » avec un nombre
estimé à plus de quatre millions de caméras de surveillance déployées sur son territoire.
L’implantation de la vidéosurveillance s’est intensifiée au cours des années 1990, mais elle a
connu un développement fulgurant suite aux différents cas illégaux.
La vidéosurveillance s’avère indispensable pour le suivi des opérations et la gestion
des incidents de sécurité dans les lieux publics et privés. De plus, elle constitue un outil
d’enquête irremplaçable pour la résolution de crimes, de méfaits ou de litiges. Toutefois, il
n’existe pas encore de preuves démontrant que la vidéosurveillance actuelle permette de
prévenir les incidents de sécurité ou qu’elle fasse chuter la criminalité.
Un réseau de télévision en circuit fermé (TVCF) [SMC05] est un système vidéo qui
transmet des images en boucle fermée. Autrefois uniquement analogiques, les réseaux TVCF
4
Vidéo surveillance
CHAPITRE 1
intègrent maintenant des composantes numériques. L’accès au réseau de transmission peut,
dans certains cas, se faire par Internet. Seuls des utilisateurs détenant des droits d’accès au
réseau peuvent accéder à l’information fournie par les caméras.
Les activités de sécurité d’un réseau de TVCF sont [XZPM08] :

Dissuasion

Observation

Surveillance

Collecte de renseignements

Évaluation d’un incident probable et intervention connexe

Évaluation d’un incident en cours et intervention connexe

Analyse judiciaire après l’incident

Analyse des éléments de preuve après l’incident
Il existe trois types de vidéosurveillance :
 Active : surveillance d’une aire pour appuyer le travail sur place d’agents de sécurité
ou lors d’intervention d’urgence.
 Passive : un employé surveille un petit nombre d’écrans de télévision en s’adonnant à
d’autres tâches.
 Enregistrement : permet de collecter des renseignements, à des fins d’enquête et de
preuves. Les enregistrements sont conservés pendant une durée déterminée, dépendant
des besoins et des limites des espaces d’archivages.
Plusieurs études démontrent les limites de la surveillance humaine (Figure 1.2). Après
seulement 20 minutes à regarder et analyser des écrans de surveillance vidéo, l’attention de la
plupart des individus chute sous un niveau acceptable. Un surveillant ne peut suivre
attentivement 9 à 12 caméras plus de 15 minutes. Or, certaines études rapportent que le
rapport entre le nombre d’écrans et le nombre de caméras peut se situer entre 1 :4 et
1 :78
dans certains réseaux de vidéosurveillance On estime à 1 sur 1 000 la probabilité de réagir sur
le fait à un événement capté par un réseau de caméras de surveillance. C'est pourquoi,
historiquement, la vidéosurveillance constitue principalement un outil d’enquête après
l’événement. C’est une raison pour laquelle on veut utiliser une surveillance intelligente
[MORA79] [HCST88].
5
Vidéo surveillance
CHAPITRE 1
Figure 1.2: Surveillant humain contrôlant plusieurs écrans.
1.3 Vidéosurveillance intelligente
La vidéosurveillance intelligente est une technologie qui permet, au moyen de
logiciels, d’identifier automatiquement, dans des séquences vidéo, des objets, des
comportements ou des attitudes spécifiques. Elle transforme la vidéo en données qui seront
transmises ou archivées pour permettre au système de vidéosurveillance d’agir en
conséquence, tout simplement, d’envoyer une alerte au personnel de surveillance pour qu’il
puisse prendre une décision sur l’intervention adéquate à apporter.
Les
systèmes
de
vidéosurveillance
intelligente
utilisent
des
algorithmes
mathématiques pour détecter des objets en mouvements dans l’image et filtrer les
mouvements non pertinents. La prise de décision par le système ou la recherche d’événements
d’intérêt dans des séquences archivées se fait à partir de règles (par ex.: si une personne
traverse une limite, envoyer une alerte).
La vidéo surveillance intelligente repose sur des systèmes qui incorporent de manière
automatique les technologies de pointe de plusieurs domaines, notamment en vision par
ordinateur, en traitement du signal, en intelligence artificielle et en fouilles de données, afin
d’élargir le spectre des fonctionnalités et des applications de la vidéo surveillance et les
amener à :
1. Prédire les incidents en détectant des comportements suspects et à déclencher des alarmes
en temps réel. Comme exemples de prédictions nous pouvons citer les cas de détection
suivants : un intrus en mouvement, un sac abandonné, une pièce ou objet disparu d’un endroit,
un véhicule dépassant une vitesse maximale, un véhicule mal stationné, une salle archicomble, une chaîne trop longue, un rôdeur dans un parc de stationnement ainsi que la
détection de tout comportement jugé anormal suite à une séquence d’apprentissage de ce qui
est supposé ‘’normal’’.
6
Vidéo surveillance
CHAPITRE 1
2. Aider aux opérations d’investigation et leur amélioration en effectuant des recherches
basées sur le contenu, des suivis spatio-temporels, et des extractions vidéo automatiques. Bien
entendu, un tel système de vidéo surveillance n’est pas disponible à l’exploitation vu le coût
de l’infrastructure (caméra, réseaux, serveurs, etc.) ainsi que la complexité des traitements
requis [HBCP03].
Une partie des recherches et développements qui se font de nos jours s’oriente vers la
construction de caméras dont les fonctionnalités dépassent le simple fait de capturer et
envoyer des images. Il s’agit en effet de caméras intelligentes (Smart Cameras) qui
incorporent en leur sein des unités d’analyse et de traitement d’images leur permettant de
délivrer aux serveurs de fichiers des séquences vidéo dont le contenu est pertinent, soit des
vidéos de ‘grande valeur’. Des exemples de ces traitements incluent :

La sécurisation du contenu visuel

La détection des changements dans les séquences vidéo

La sélection de séquences contenant des faits ou des changements potentiellement
pertinents (présentant une signification importante par rapport aux objectifs de la
vidéo surveillance)

La compression des données

La protection des informations à caractère privé
De toute évidence, ces traitements une fois incorporés doivent s’effectuer en temps
réel. Autrement dit, leur exécution ne doit en auc un cas gêner ou retarder les cadences
standards de capture et d’envoi d’images (exemple : 30images/seconde).
1.3.1 Les avantages de la vidéosurveillance intelligente
Les systèmes de vidéo intelligente présentent de nombreux avantages, notamment [HTP09] :
 Elle est en fonction 24 heures par jours, sept jours par semaine.
 Utilisation plus efficace de la main-d’œuvre
L'efficacité des systèmes de vidéosurveillance à grande échelle est limitée car les
agents de sécurité peuvent difficilement surveiller plusieurs écrans simultanément et
assurer le suivi de chaque incident. Grâce aux solutions de vidéo intelligente, les
agents de sécurité peuvent surveiller toutes les installations, même celles de grande
envergure, car il n'est plus nécessaire de regarder atte ntivement les écrans pendant
7
Vidéo surveillance
CHAPITRE 1
des heures pour détecter une activité suspecte. En effet, le système de vidéo
intelligente assiste les agents de sécurité et les informe de toute activité suspecte.
 Récupération plus rapide des vidéos stockées
La recherche d'incidents dans une vidéo stockée est une tâche très pénible car
l'agent de sécurité doit visionner toute la vidéo. Étant donné les inconvénients de la
recherche dans une vidéo stockée, la plupart de ces vidéos sont tout simplement
archivées et supprimées. L'analyse vidéo, comme la détection de mouvement vidéo,
garantit que seules les images vidéo pertinentes sont stockées. Ainsi, lorsque la
recherche d'un incident potentiel doit être effectuée dans une ancienne vidéo, seules
les images pouvant inclure l'incident en question sont récupérées. En outre, les
systèmes de vidéo intelligente qui, par exemple signalent le flux vidéo avec des
étiquettes pendant l'enregistrement, peuvent automatiquement rechercher des
images vidéo précises dans plusieurs vidéos stockées et ce, en quelques secondes.
 Réduction de la charge réseau et des besoins en stockage
Parce qu'ils enregistrent uniquement les images vidéo contenant des activités, les
systèmes de vidéo intelligente qui incluent la détection de mouvement vidéo et la
détection audio permettent de réduire les besoins en espace de stockage. En outre,
en repoussant les limites de la vidéo intelligente.
 Nouvelles opportunités
Avec la vidéo intelligente, il est également possible d'utiliser les données vidéo dans
des domaines autres que la sécurité. Par exemple, elle peut être utilisée dans les
magasins à des fins d'analyse du comportement de la clientèle, par exemple pour
connaître le nombre de personnes qui se sont arrêtées devant un rayon particulier ou
les déplacements les plus fréquents au sein du magasin. Dans les aéroports, un
système de vidéo intelligente peut évaluer le temps d'attente d'une file à un comptoir
d'enregistrement, ce qui permet de mieux gérer le personnel et de réduire le temps
d'attente des passagers.
 Elle peut enclencher une alarme qui sera traitée par un opérateur humain ou
commander le déplacement ou zoom d’une caméra pour une surveillance plus précise
de l’événement, permettant ainsi une intervention en temps réel, plutôt qu’après
l’événement.
8
Vidéo surveillance
CHAPITRE 1
1.4 Secteurs d’applications
À son origine, la vidéosurveillance a été utilisée par les services publics (police,
transports, administrations). Elle fut ensuite adoptée par des entreprises désirant protéger des
actifs stratégiques, telles que les raffineries, les centrales nucléaires, les barrages fluviaux, les
usines agroalimentaires et les complexes pharmaceutiques. Les casinos apparaissent aussi
comme des précurseurs dans le déploiement de grands systèmes de vidéosurveillance. De nos
jours, les caméras de surveillance sont présentes dans divers lieux publics et privés :
immeubles, commerces, stationnements, gares, aéroports, routes, transports publics, banques,
etc.
La vidéosurveillance à grande échelle se retrouve dans les villes et les quartiers, les systèmes
de transport, les campus académiques, les grands événements (festivals, sommets
économiques, jeux olympiques, etc.), les périmètres de sécurité étendus. Elle nécessite le
déploiement de plusieurs dizaines, voire de centaines de caméras. Celles-ci doivent parfois
être accessibles à des centaines d’intervenants en sécurité, provenant de différentes agences
gouvernementales, corps policiers ou services d’urgence.
Dans ces installations, la
vidéosurveillance s’ajoute à une panoplie de systèmes de sécurité et de contrôle : contrôle
d’accès, d’incendie, téléphonie, communications radio, etc. Étant donné le nombre de caméras
vidéo impliquées et l’importance des interventions d’urgence, ces applications sont
particulièrement propices à l’utilisation d’analytique vidéo pour le traitement automatisé des
flux vidéo générant des alarmes lors d’événements suspects.
1.4.1 Application militaire
• Les patrouilles des frontières nationales.
• Mesure de flux de réfugiés.
• Fournir et sécuriser les régions autour des bases militaires.
• Fournir des informations de contrôle et de commande pour des champs de bataille.
1.4.2 Gouvernement et sécurité publique
Les différents paliers de gouvernement doivent assurer la sécurité de la population, ainsi que
des infrastructures publiques. Au niveau national, elle sera utilisée, par exemple, pour
surveiller les éléments suivants :

Infrastructures sensibles

Frontières

Édifices et sites gouvernementaux

Laboratoires
9
Vidéo surveillance

Bases militaires

Prisons
CHAPITRE 1
1.4.3 Éducation

Surveiller l’accès au périmètre de l’établissement, parfois étendu, dans le cas d’un
campus universitaire ;

surveiller le matériel, les équipements et les données ;

Détecter et suivre les actes de vandalisme, vols, méfaits, comportements
inappropriés ;

Supporter les enquêtes criminelles ;

Contrôler les accès.
1.4.4 Autres
La vidéosurveillance est déployée dans beaucoup d’autres milieux. On la retrouve dans les
commerces et la surveillance d’édifices. Elle sert, le plus souvent, à filmer les voies d’accès et
les stationnements, à surveiller les valeurs matérielles et à assurer la protection des employés
et des clients.
La surveillance vidéo trouve aussi sa place dans la santé pour assister les interventions. On
peut même la retrouver à bord des ambulances, en combinaison avec d’a utres instruments de
mesure, pour permettre le suivi du patient à distance.
Le marché grand public se développe aussi. De plus en plus de systèmes de vidéosurveillance
pour les résidences sont en vente, même dans les magasins non spécialisés. Les caméras
complémentent maintenant les différents dispositifs de surveillance et de sécurité pour le
secteur résidentiel.
1.5 Évolution des systèmes de vidéosurveillance
La transition numérique en vidéosurveillance s’est opérée en plusieurs étapes.
Amorcée avec l’apparition de l’enregistreur numérique, elle se poursuit vers une conversion
totale à l’infrastructure IP, où la vidéo est transmise sur réseau intranet ou Internet de la
caméra à l’écran de visionnement. Dans ce passage, l’on retrouve plusieurs systèmes
hybrides, intégrant composantes analogiques et numériques. La figure ci-dessous présente les
empreintes importantes qui ont marqué l’évolution vers la vidéosurveillance intelligente sur
réseau IP [VGF09].
10
Vidéo surveillance
CHAPITRE 1
Figure 1.3: Évolution du matériel de vidéosurveillance.
1.5.1 Première génération : le tout analogique
Dans le réseau TVCF analogique traditionnel, des caméras analogiques sont
connectées par câbles coaxiaux (un câble par caméra) aux écrans de surveillance et, pour des
fins d’archivage, à un magnétoscope qui enregistre la vidéo sur cassette. Un multiplexeur peut
être utilisé pour grouper les flux vidéo de plusieurs caméras en un seul signal composite qui
est transmis au magnétoscope ou à un moniteur analogique. Il permet d’afficher quatre, neuf
ou 16 signaux vidéo sur un même écran, ou d’enregistrer ceux-ci sur un même système
d’archivage. Aucune compression n’est effectuée sur les signaux vidéo. Avec un
magnétoscope conçu à cet effet, l’enregistrement à taux de trame (frame rate) réduit permet
d’économiser de l’espace sur la bande vidéo, selon les besoins de surveillance [VGF09].
 Avantages
 Les systèmes analogiques sont très fiables
 Simple à utiliser, ils ne requièrent pas de compétences informatiques.
 Inconvénients
o La qualité de la vidéo est inférieure à celle des systèmes numériques.
o Il faut changer les cassettes fréquemment (aux trois jours ou plus).
o Nécessite un nettoyage et un entretien régulier des magnétoscopes.
o La qualité de la vidéo enregistrée se détériore avec le temps.
o Ne permet pas le visionnement à distance, comme sur les réseaux numériques.
o Ce sont des systèmes propriétaires.
1.5.2 Deuxième génération : le système hybride
Le remplacement du magnétoscope à cassette par un enregistreur numérique (DVR)
représente la première étape de la transition numérique en vidéosurveillance. Apparus dans les
années 90, les enregistreurs numériques archivent la vidéo sur des disques durs. Comportant
souvent plusieurs entrées vidéo, l’enregistreur numérique remplace à la fois le multiplexeur et
le magnétoscope analogique.
11
Vidéo surveillance
CHAPITRE 1
Les modèles récents sont équipés d’un port Ethernet, permettant la connexion à un réseau et
l’accès à distance à la vidéo, soit en temps réel, soit à partir de l’enregistrement. Les
transmissions vidéo se font sous protocole IP à partir de l’enregistreur numérique. Ils
permettent la transition vers un système hybride de vidéosurveillance sur réseau IP, tout en
conservant les caméras analogiques. L’enregistreur numérique hybride (HDVR), quant à lui,
peut recevoir à la fois les flux vidéo de caméras analogiques et IP. Il représente une solution
efficace pour moderniser un système de vidéosurveillance en profitant des avantages des
nouvelles caméras IP, tout en conservant les caméras analogiques existantes en place. Alors
qu’on estime que 95 % des caméras sont encore analogiques, les enregistreurs numériques et
les enregistreurs numériques hybrides sont des technologies très répandues.
 Avantages
 Aucune cassette à changer.
 La vidéo archivée est de meilleure qualité, sans détérioration avec le temps.
 Possibilité de chercher rapidement dans les enregistrements vidéo.
 Surveillance vidéo et opération du système à distance à partir d’un PC.
 Inconvénients
 Concentration des tâches de numérisation, compression vidéo, enregistrement et
réseautage dans la même machine.
 L’enregistreur numérique est un appareil propriétaire, ce qui augmente les coûts de
maintenance et de mise à jour.
 Le nombre d’entrées vidéo de l’enregistreur numérique (souvent un multiple de 16)
contraint l’ajout de caméras.
Les encodeurs vidéo, aussi appelés serveurs vidéo, sont utilisés pour convertir les
signaux provenant de caméras analogiques et les transmettre en flux IP sur un réseau via un
commutateur. Tout en conservant les caméras analogiques, ils permettent un passage presque
complet à l’infrastructure réseau pour la vidéosurveillance, puisque la vidéo est constamment
transmise sous le protocole IP à travers le réseau.
Les encodeurs vidéo peuvent être utilisés avec les enregistreurs vidéo réseaux (NVR).
Ceux-ci ne peuvent traiter et enregistrer que des flux vidéo IP. Ils sont offerts sous une
plateforme ouverte (un ordinateur muni d'un logiciel de gestion vidéo) ou dans un matériel
propriétaire dédié. Sous cette dernière forme, l’enregistreur vidéo réseau se compare à un
12
Vidéo surveillance
CHAPITRE 1
enregistreur numérique hybride, excepté qu’il nécessite l’usage d’encodeurs pour opérer avec
des caméras analogiques.
 Avantages
 Utilisation
d’ordinateurs
et
de
matériel
standard
de
réseau
pour
l’enregistrement et la gestion de la vidéo.
 Possibilité d’enregistrer à l’extérieur du site de surveillance (par exemple,
centralisation des enregistrements).
 Architecture distribuée qui offre flexibilité, extensibilité (peut ajouter une
caméra à la fois) et redondance (en cas de rupture ou pannes).
 Inconvénients
o Gourmand en bande passante, si l’enregistrement est fait hors du site de
surveillance (par ex., de façon centralisée).
o Si le réseau tombe en panne, l’enregistrement peut être interrompu.
o Si l’enregistrement centralisé n’est pas requis, l’utilisation d’enregistreur vidéo
réseau est souvent plus coûteuse que celle d’enregistreurs numériques.
o Nécessitent des calculs complexes pour déterminer le nombre de flux vidéo
pouvant être supportés par le serveur, la quantité d’espace disque nécessaire à
l’enregistrement, le taux de trames, le niveau de compression et d’autres facteurs
liés aux capacités du réseau.
1.5.3 Troisième génération : le tout numérique IP
Au sens strict, un système de vidéosurveillance est complètement IP, lorsque toutes
ses composantes sont numériques et toutes les transmissions sont effectuées sous le protocole
IP. Ces réseaux comprennent donc des caméras réseau, aussi appelées IP. Il s’agit de caméras
intégrant leur propre encodeur. Celles-ci sont reliées, via des commutateurs réseau, à des
serveurs (ordinateurs personnels), munis d’un logiciel de gestion vidéo. L’enregistrement est
fait sur serveur ou sur des enregistreurs vidéo réseaux propriétaires. Les traitements sont
effectués sur le serveur ou dans les périphériques. Toutefois, beaucoup de gens considèrent
qu’un système de vidéosurveillance dont la vidéo est transmis sous protocole IP à partir des
encodeurs, constitue un système réseau IP. Dans ces systèmes, les caméras peuvent être
analogiques, tant qu’elles soient reliées à des encodeurs.
13
Vidéo surveillance
CHAPITRE 1
1.6 Etat de l’avancement technologique
Actuellement, l’analytique vidéo et la vidéosurveillance intelligente sont des domaines
de recherche très actifs. En particulier, depuis les dix dernières années, plusieurs conférences,
éditions spéciales de revues ou articles y o nt été consacrés. Quelques produits commerciaux
ont vu le jour suite aux recherches menées dans ce secteur. De grands projets financés par les
gouvernements aux États-Unis et en Europe, ont favorisé le développement de techniques de
détection, suivi et reconnaissance d’objet à partir de séquences vidéo.
Toutefois, il s’agit de technologies émergentes. Leur utilisation dans des applications à grande
échelle reste encore récente et, somme toute, marginale. Le coût de ces technologies, ainsi que
leurs limites techniques actuelles pour la surveillance en environnements complexes, freine
une adoption plus généralisée.
1.7 Description de la vidéo surveillance intelligente
L’analytique vidéo consiste à reproduire, à l’aide d’un ordinateur, l’analyse
qu’effectuerait un humain en regardant les séquences vidéo provenant de caméras de
surveillance. Les logiciels d’analytique traitent les images d’un flux vidéo pour y détecter
automatiquement les objets (personnes, matériel, véhicule) et les événements d’intérêt à des
fins de sécurité. Une fois détectés, les objets peuvent être identifiés, suivis et localisés. Leurs
actions et interactions sont analysées et classées, afin d’interpréter l’activité d’une scène pour
la soumettre à l’attention d’un opérateur humain.
Les logiciels d’analytique vidéo servent en deux modes, soit en temps réel soit en temps
différé. En temps réel, ils détectent, sur les flux vidéo, les situations représentant une menace
pour la sécurité et déclenchent une alarme. En temps différé, ils permettent de retrouver plus
rapidement les séquences vidéo présentant un incident sous enquête.
Les fonctions analytiques développées pour les systèmes de vidéosurveillance comportent
différents niveaux d’analyse. Hiérarchiquement, elles s’exécutent du niveau des pixels, à celui
des objets, pour atteindre l’échelle des comportements. Elles se regroupent selon les tâches
suivantes :
1. Détection de changements
2. Suivi d’objets
3. Classification et identification d’objets
4. Classification d’activités et de comportements
14
Vidéo surveillance
CHAPITRE 1
1.7.1. Détection de mouvement
En vidéosurveillance, la détection des changements dans une séquence vidéo est à la base de
toute analyse intelligente. Elle pourra déceler une activité dans la scène sous surveillance,
notamment le déplacement d’objets. De plus, elle peut montrer l’apparition ou la disparition
d’un objet (objet abandonné ou volé). Elle s’utilise aussi pour signaler automatiquement les
altérations accidentelles ou intentionnelles subies par une caméra : obstructions (poussière,
toiles d’araignées, humidité, peinture, autocollants, réorientation, flou).
Beaucoup de techniques de détection de mouvements utilisées en analytique vidéo
reposent sur la détection de changements [MOD03]. Or, détecter les changements dans une
séquence vidéo ne cible pas spécifiquement le mouvement des objets, mais peut faire ressortir
toute modulation de l’image. Pour segmenter les objets se déplaçant, il faut parvenir à
discriminer entre les fluctuations de la valeur des pixels correspondant à des mouvements
cohérents et ceux provoqués par les changements environnementaux (Figure 1.4).
Figure 1.4: Segmentation d’un individu dans une séquence vidéo.
1.7.2. Suivi d’objets
Après avoir détecté les objets en mouvement, les systèmes de vidéosurveillance intelligente
suivent leur déplacement au cours d’une séquence vidéo (Figure 1.5). Cette tâche nécessite de
localiser d’une image à l’autre chaque objet suivi.
Beaucoup de techniques de suivi se basent sur des méthodes mathématiques qui permettent de
prédire la position d’un objet sur une trame à partir de son déplacement observé dans les
trames précédentes. Suivre plusieurs objets à la fois présente de nombreux défis. Chaque objet
détecté dans une trame doit être associé à son correspondant dans la trame subséquente. Cet
appariement s’effectue à partir des contours des objets, de leurs caractéristiques (par ex.,
coins, aire, ratios, etc.), ou de leur modèle d’apparence.
Les occlusions (régions cachées par d’autres), représentent une difficulté majeure pour le
suivi d’objets. Un système de vidéosurveillance peut perdre la trace d’un objet, si celui-ci est
15
Vidéo surveillance
CHAPITRE 1
totalement ou partiellement obstrué pendant une certaine période de temps. Il peut aussi être
difficile de dissocier deux objets lorsqu’ils sont très proches ou que l’un cache l’autre.
Figure 1.5: Suivi de trajectoires d’objets sur une séquence vidéo.
1.7.3. Classification et identification d’objets
Les objets détectés par un système de vidéosurveillance seront habituellement classés en
différentes catégories : humain, véhicule, animal, etc. Ce classement peut s’effectuer
préalablement au suivi pour ne conserver que les trajectoires des objets pertinents pour les
fins de surveillance.
De façon générale, les systèmes reconnaissent la nature d’une entité détectée à partir de ses
attributs de forme et de ses propriétés de mouvement. Par exemple, un humain se présente
habituellement comme une forme plus haute que large, tandis qu’une automobile sera plus
large que haute (Figure 1.6). La démarche humaine présente des caractéristiques particulières,
notamment, une certaine périodicité.
Figure 1.6: Classification d’objets (humains et véhicules).
L’identification d’objet pousse plus loin la reconnaissance. Après avoir trouvé la classe à
laquelle appartient un objet, il s’agit de déterminer son identité. En surveillance,
particulièrement pour le contrôle d’accès ou la recherche de suspect, on voudra, le plus
souvent, reconnaître un individu (La reconnaissance des visages) ou décoder la plaque
16
Vidéo surveillance
CHAPITRE 1
d’immatriculation d’une voiture. Beaucoup d’efforts de recherche et développement ont été
investis, dans les dernières années, dans ces deux applications spécialisées.
1.7.4. Identification d’activités et de comportements
Un des objectifs de la vidéosurveillance est d’interpréter les comportements individuels des
objets d’une scène, ainsi que leurs interactions. Au sens large, les comportements se
définissent comme les actions observables d’agents (humains, animaux, véhicules, etc.).
Comme la tâche de reconnaissance de comportements requiert une analyse sémantique,
parfois complexe, de ce qui apparaît dans l’image, elle représente le défi le plus coriace pour
les systèmes d’analytique vidéo.
L’analyse et l’interprétation de comportements nécessitent de reconnaître des patrons de
mouvements et d’en dégager, à un plus haut niveau, une description des actions et
interactions. Comme dans tout problème de classification, il s’agit d’associer une séquence de
caractéristiques observées, à une séquence modèle représentant un comportement spécifique.
Le problème consiste donc à modéliser les comportements typiques, par apprentissage ou par
définition, et à trouver une méthode de comparaison tolérant des variations lé gères.
Parmi les techniques les plus utilisées pour modéliser les comportements normaux et détecter
les comportements déviants, on note les modèles markoviens cachés, les réseaux de neurones
et les réseaux bayesiens. Ces techniques génèrent une alarme sur la base de la divergence
statistique au modèle inféré de la scène. Des méthodes de détection d’événements prédéfinis
existent aussi. Elles se basent sur un système de règles. Par exemple, générer une alarme si un
objet de taille supérieure à un seuil reste stationnaire pour plus d’un certain temps dans une
région donnée.
Figure 1.7: Identification d’événement.
Toutes les étapes que nous venons de citer ont fait l’objet de plusieurs travaux de recherches.
En se qui concerne ce travail, nous allons nous limiter aux techniques de détection d’objets
mobiles.
17
Vidéo surveillance
CHAPITRE 1
1.8 Conclusion
La vidéosurveillance dissuasive entraîne un recul important du vandalisme et des
agressions contre des personnes dans l'aire observée. Par ailleurs, la vidéosurveillance, visible
pour tous, augmente le sentiment de sécurité subjectif du public. La vidéosurveillance s'avère
donc être, dans la pratique, un moyen efficace et peu onéreux de surveiller des lieux publics
sensibles lorsque les forces de sécurité disponibles s'avèrent insuffisante s. Elle peut
néanmoins entraîner un déplacement des perturbations de l'ordre public vers des zones qui ne
sont pas surveillées.
18
Techniques de détection d’objets mobiles
CHAPITRE 2
Chapitre 2
Techniques de détection d’objets mobiles
2.1 Introduction
Chaque demande qui bénéficie du traitement de la vidéo intelligente à des besoins
différents en conséquence, un traitement particulier est nécessaire. Toutefois, ils ont quelque
chose en commun: la détection d’objets en mouvement. Ainsi, la détection des régions qui
correspondent à des objets en mouvement tels que les personnes et les véhicules est la
première étape de base dans tous les systèmes de vision car elle permet de concentrer
l'attention et de simplifier le traitement.
La détection consiste à percevoir une scène statique ou dynamique, et de connaitre le
changement de mouvement approprié, en déduisant ainsi la cinématique de tous les objets
mobiles par rapport à la caméra. La détection est une tache difficile et cruciale, elle dépend
généralement de la nature de la scène et de l’application correspondante. Dans ce mémoire,
nous nous limitons au problème de la détection dans la scène dynamique acquise par une
caméra fixe. Ce chapitre présente la technique de soustraction de fond dite Background
substraction.
19
Techniques de détection d’objets mobiles
CHAPITRE 2
2.2 Définition de détection
La détection consiste à segmenter l’image d’une séquence en objets mobiles et
stationnaires, permettant de voir le changement d’environnement observé et de déduire une
statistique sur le mouvement de l’objet dans la séquence. Certaines applications préfèrent
exploiter une information temporelle sur la séquence afin de construire une statistique sur le
changement temporel de l’environnement, en déduisant ainsi l’image de segmentation,
cependant l’information temporelle n’est pas approp riée pour les scènes dynamiques, où on
ne peut connaître le mouvement relatif de chaque objet de la scène par rapport à la caméra,
par conséquent, le choix du points d’intérêt sur l’objet à détecter permet de pallier ce
problème [MOR79], [HARR88], [SHI94], [LOW04].
La détection d’objets dans une image présente plusieurs difficultés, la première difficulté
consiste à caractériser ce que l’on veut reconnaître, la seconde est de savoir comment le
reconnaître, autrement dit de savoir quelles techniques il faut employer pour pouvoir
effectivement le reconnaître. Pour cela il faut être capable de le détecter en toutes conditions
(pour toutes orientations, différentes conditions d’illumination,…).
2.3 Le background substraction
La séparation des objets mobiles de ceux stationnaires dans une séquence d’images
pour une scène statique, a été bien étudiée en 1979 par JAIN, R. et NAGEL [ JAIN79]. Il
propose dans son article une méthode qui nécessite l’existence d’une image de référence
d’une scène statique acquise à un instant où aucun objet mobile n’existe dans cette scène. La
caméra est supposée fixe. Ensuite, il calcule la différence entre l’image acquise et l’image de
référence. La difficulté principale de cette méthode réside dans l’obtention de l’image de
référence optimale.
L’idée de JAIN, R. et NAGEL [JAIN79] a donné naissance à beaucoup de méthodes
pour la résolution du problème de séparation d’objets mobiles des objets fixes. Ces méthodes
sont connues sous le nom de méthodes de soustraction de fond ou ‘’background substruction
methods.’’ L’idée de base de tous ces travaux est de segmenter l’image en objets mobiles en
leurs affectant une valeur égale à 1, et en objets stationnaires avec une valeur égale à 0, et de
fournir une image de statistique de changement de mouvement dans la séquence pour
20
Techniques de détection d’objets mobiles
CHAPITRE 2
résoudre le problème de l’image de référence de JAIN, R. et NAGEL, cette image est appelée
le fond.
Dans cette section, nous discutons quelques méthodes populaires qui sont : La
différence temporelle adaptative de fond, seuillage entropique, et l’algorithme adaptatif de
mixture de gaussien.
2.3.1. La différence temporelle adaptative de fond
On initialise le modèle de fond de référence par la moyenne des premières images sur
une durée de 30 secondes, ensuite on fait la différence d’intensité de chaque image de la
séquence avec l’image de référence qui représente le fond statique. Cette différence e st
ensuite filtrée suivie d’un seuillage pour chaque pixel. Comme la valeur d’intensité des pixels
d’objets stationnaires ne change pas pour deux images consécutives, la valeur de différence
tend vers zéro, par contre, pour les objets mobiles, la valeur sera grande et strictement
positive [WERN97].
Soit
l’intensité du pixel de position x en niveau de gris codé sur huit bits [0,255] dans
l’image de la séquence
à l’instant x, et soit
l’intensité du pixel de la même
position dans l’image de fond de référence estimé à partir de la séquence d’images I0 jusqu’à
. Afin de segmenter l’image
en mobile ou en stationnaire, on classifie le pixel
In(x) comme mobile s’il satisfait l’équation suivante :
In ( x)  Bn ( x)  Tn ( x)
où
est la valeur du seuil adaptatif estimée durant la séquence d’images
(2.1)
jusqu'à In-1 ,
cette équation est utilisée pour générer l’image de segmentation binaire, où on affecte « un »
au pixel satisfaisant l’équation (2.1), et « zéro » autrement.
L’image de fond de référence est initialisée avec la première image de la séquence I0 c à d :
B0 = I0 , et le seuil est initialisé avec une valeur prédéfinie expérimentalement. Puisque notre
implémentation suppose que l’on dispose de séquences d’environnement d’intérieur et
d’extérieur (indoor et outdoor environment), le modèle de fond doit s'adapter aux
changements dynamiques tels que le changement global d'illumination (le passage de la nuit
au jour), et au changement de la scène à long terme (stationnement d’un véhicule devant un
21
Techniques de détection d’objets mobiles
CHAPITRE 2
bâtiment dans un parc d’automobiles (la vo iture ne se déplace pas). L’image de fond de
référence conséquente et le seuil sont dynamiquement adaptés avec des images courantes
comme le montrent les équations (2.2) et (2.3) :
 Bn ( x)  (1   ) I n ( x),si x est stationnaire
Bn1 ( x)  
 Bn ( x)  (1   ) I n ( x),si x est mobile
(2.2)

Tn ( x),si x est stationnaire
Tn 1 ( x)  

 Tn ( x)  (1   )( I n ( x)  Bn ( x) ), autrement
(2.3)
où α, ß sont des coefficients de pondération appartenant à l’intervalle [0.0, 1.0], permettant
de considérer le fond d'image comme une moyenne temporelle locale pondérée , et le seuil
comme une moyenne temporelle locale pondérée de période γ de différence entre les images
courantes de la séquence et le background. Les valeurs de α, ß et γ sont expérimentalement
déterminées en examinant plusieurs séquences vidéo à l'intérieur et à l’extérieur de
l’environnement.
Le point subtile dans cette mise à jour, est le choix de la valeur correcte pour ß, s’il est trop
petit, des objets mobiles seront fusionnés au fond de référence ce qui conduira à la
segmentation imprécise dans les images suivantes. Ainsi, la détection d’objets fixes ou
stationnaires ne sera pas possible. Si ß est grand, la fusion ne peut plus se produire, ainsi le
modèle de fond ne s'adapterait pas aux changements de scène à long terme.
2.3.2 La différence temporelle par un seuillage entropique
Le choix du seuil a une influence cruciale sur la performance des algorithmes de
traitement.
Franck, Marc et Francis ont proposé une méthode de détermination automatique du seuil, sous
l’hypothèse de bruit blanc gaussien additif et majoritaire sur le support. La méthode est basée
sur le calcul de l’entropie de l’observation bruitée. Le seuil optimal se déduit alors de façon
triviale à partir de la puissance entropique estimée. L’origine de cette méthode est décrite dans
l’article [FMF04].
22
Techniques de détection d’objets mobiles
CHAPITRE 2
2.3.2.1 Puissance entropique d’une source
L’entropie H (exprimée en bits) d’une source discrète d’observations aux valeurs
{0…M -1} (type M =256) est définie par:
M 1
H bit    pi log 2 pi
(2.4)
i 0
Où pi représente la probabilité pour une observation dans le site s=(x, y)
taille : os=i (S étant
le support des observations, en l’occurrence ici une grille L x C).
Rappelons que le choix de la base du logarithme est arbitraire et correspond au choix
de l’unité de mesure (le bit avec le logarithme binaire, le nat avec le logarithme népérien) ; et
l’on a : Hnat=Hbit . log2 ≈ 0.7. Hbit.
Shannon a démontré que l’entropie (exprimée en nats) d’une source gaussienne centrée
d’écart type σ vaut :
Hnat  log( . 2 e )
(2.5)
et qu’à σ fixé, la source donnant l’entropie maximale est la distribution gaussienne.
Pour une source quelconque d’entropie H donnée, Shannon définit la notion
de «puissance entropique » N :
N
1
2 e
exp(2 H nat )
(2.6)
C’est la puissance de la distribution gaussienne équivalente à la source d’entropie H, c’est-àdire ayant la même entropie et limitée à la même bande que la source. Pour un bruit gaussien
centré d’écart type σ, on retrouve bien :
.
Comme le bruit blanc gaussien possède une entropie maximale à puissance fixée, la puissance
entropique d’un bruit quelconque est toujours inférieure ou égale à sa puissance effective.
Toujours selon Shannon, un bruit blanc gaussien a la propriété d’absorber tout autre signal qui
lui est ajouté. La puissance entropique résultante est à peu prés égale à la somme de la
puissance du bruit blanc et de la puissance du signal (supposé centré), à condition que la
puissance du signal soit faible, ‘’ dans un certain sens’’, comparée au bruit.
23
Techniques de détection d’objets mobiles
CHAPITRE 2
En supposant que le bruit additif gaussien soit majoritaire sur le support, on peut donc
estimer l’écart-type entropique C équivalent en calculant l’entropie H des observations :
 N
exp( H nat ) 2Hbit

2 e
2 e
(2.7)
Il suffit alors de fixer comme valeur de seuil θ un multiple de l’écart-type entropique σ pour
éliminer plus au moins la contribution du bruit :
   .
(2.8)
2.3.2.2 Application en détection
La détection de mouvement consiste à étiqueter chaque pixel de l’image à l’instant t
pour obtenir une carte binaire des changements temporels:
"1",si le pixel  une zone mobile
es  
"0",si le pixel  fond fixe
(2.9)
Sous les hypothèses usuelles de caméra fixe et d’éclairement quasi-constant de la scène, on
utilise comme observation la valeur absolue de la différence temporelle d’intensité lumineuse
entre deux instants :
os  It (s)  It 1 (s)
(2.10)
Evidemment, cette information est bruitée (bruit d’acquisition de la caméra, bruit de
quantification) et nécessite un seuillage adéquat. Se pose alors le problème du c hoix
automatique de la valeur du seuil.
On modélise classiquement le lien statistique entre observation et étiquette en introduisant une
fonction ψ d’attache aux données :
os   (es )  gs
où
(2.11)
gs représente un bruit gaussien centré de variance σ2 . La fonction déterministe ψ
correspond à l’information pertinente.
Comme le signal utile reste localisé dans l’image (les changements temporels affectent une
proportion limitée de pixels) alors que le bruit aléatoire est présent sur tout le support de
l’image, la contribution entropique du signal utile est donc effectivement faible au sens où
l’entend Shannon, et l’on peut appliquer la méthode proposée c’est-à-dire calculer H pour en
déduire
24
Techniques de détection d’objets mobiles
CHAPITRE 2
2.3.3 Le modèle de mixture de gaussienne adaptati f
La méthode de modélisation du fond explorée ici a été introduite par Stauffer et
Grimson dans [STGRI99]. Stauffer et Grimson ont remarqué que les performances des
ordinateurs à l’époque 1999, avait atteint un niveau où les plus complexes et robustes
méthodes de la modélisation de fond en temps réel pourraient être considérées. Leur approche
est d'employer les modèles de mixture pour représenter les statistiques de la scène. L’idée de
base de cette méthode est qu’avec un fond uni modal on ne peut pas traiter en même temps la
détection et la gestion de changements dynamiques de la scène. Par conséquent, ils utilisent
un mélange de distribution gaussienne pour modéliser le comportement de chaque pixel. Cette
méthode a rencontré un grand succès dans les systèmes de vidéosurveillance qui adoptent
cette technique pour la phase de détection et les autres méthodes qui sont dérivées de la même
idée.
La valeur de pixel mesurée par le capteur de la caméra est le rayonnement émis par le
point de surface du premier objet peuvent intersecter le rayon optique de ce pixel. Dans une
scène qui change dynamiquement (objets mobiles) la valeur observée du pixel dépend de la
surface d’intersection des objets ainsi que du bruit introduit par la caméra.
En termes
mathématiques
nous pouvons envisager
l’échantillonnage
comme
un
échantillonnage d'un processus aléatoire X où chaque valeur échantillonnée est générée par la
surface d'un certain objet. C'est-à-dire, la valeur échantillonnée de X est en fait l’observation
d'une variable aléatoire SK, ou k indique quel objet a été observé. Puisque seulement un des
objets peut intersecter le rayon optique du pixel excepté aux bordures d'objet, ou les
événements fondamentaux, qui objectent k, sont observés. Par conséquent, la fonction de
densité de X peut être modélisée en tant que combinaison linéaire des fonctions de densité des
objets qui ont générés des valeurs d'échantillon.
Un tel modèle s'appelle un modèle de mixture et définit la densité de mixture comme suit :
K
p( x |  )   wk pk ( x |  k )
(2.12)
k 1
Où x est un échantillon de X et θ est le vecteur de paramètre décrivant p,
θ = {w1 ,…, wk, θ1 , ...... θk}, θk est alternativement un vecteur de paramètre décriva nt le pk. En
outre, les mixtures des densités wk sont dans la gamme [0, 1] et
pk (x|θk ) sont
appelés les fonctions de densité du composant et sont normalisés de sorte que,
25
Techniques de détection d’objets mobiles
 p (x | 
k
k
CHAPITRE 2
) dx  1 , k 1,..., K 
(2.13)
Dx
Ces conditions assurent l’intégration de la densité du mélange à 1.
L'exemple 2.1 montre un modèle de mixture avec des valeurs de paramètres définies.
En utilisant des fonctions de densité avec des composantes gaussiennes à une dimension avec
le vecteur de paramètre θk = {µk , σk }, qui est de :
pk ( x | k ,  k ) 

1
 k 2
( x  k )2
e
2 k2
(2.14)
et les paramètres donne la densité de la mixture.
K=2
wk  0.3, 0.7 ,
k  0.3, 0.7 ,
 k  0.1, 0.3 ,
K
p( x |  )   wk pk ( x |  k )
k 1
( x  0.3) 2
( x  0.7) 2


2
2
0.3
0.7

e 2(0.1) 
e 2(0.3)
0.1 2
0.3 2
Un graphique de la densité de mixture où x a été limité à la gamme [0, 1] est donné dans la
figure (2.2).
Figure2.1: Mixture de densités.
Dans cette figure, nous pouvons voir que la densité de mixture fait une pointe à x≈ 0.35
26
Techniques de détection d’objets mobiles
CHAPITRE 2
2.3.3.1 La dérivation théorique de la procédure de mise à jour
Après avoir représenter la fonction de densité de probabilité de X, le problème qui se
pose, étant donné un ensemble de données de taille finie et d’échantillons prélevés
indépendamment de X, comment choisir le vecteur de paramètre θ ? Une approche commune
à ce problème est l’estimation par maximum de vraisemblance.
Rappel de la définition du problème du maximum de vraisemblance. Soit X une variable
aléatoire dont la fonction de densité de probabilité est p (x| θ).
Soit X= {x1 ,…, xN} données d’un ensemble de N échantillons prélevés indépendamment de
X. La fonction de vraisemblance est alors :
N
L( |X)= p(x i |  )
(2.15)
i=1
Le vecteur du paramètre optimal est obtenu en maximisant la fonction de probabilité en
fonction de θ, c.-à-d.
 *  arg max L( | X )

(2.16)
La solution de (2.16) est souvent une tâche difficile, l’astuce généralement utilisée est de
maximiser la notation log L(θ|X) en fonction de θ , puisque le produit devient une addition ; la
notation log L(θ|X) s'appelle la fonction de logarithme-probabilité (log- likelihood function).
Dans le même esprit l'algorithme EM peut être très utile quand (2.16) est difficile à résoudre.
2.3.3.2 Algorithme de Maximisation d'Espérance : EM (Expectation Maximisation) :
L'algorithme EM, ou l'algorithme de maximisation d'espérance est une méthode itérative
générale pour trouver l'évaluation de probabilité maximale de la distribution d'un ensemble de
données incomplet. Un ensemble de données serait incomplet quand la distribution est soit
inconnue, soit cachée, ou bien en cas d’absence de certains paramètres ou valeurs.
L'algorithme a été présenté par Dempster et autres dans [DEM77].
Soit X un ensemble de données incomplet et connu. En supposant un ensemble de données
complet Z = (X, Y) une fonction de densité commune peut être spécifié :
p( z |  )  p( x, y |  )  p( x |  ) p( y | x, )
(2.17)
27
Techniques de détection d’objets mobiles
CHAPITRE 2
Où Y représente les données inconnues du Z en considérant cette fonction de densité comme
étant une nouvelle fonction de probabilité, appelée la fonction de probabilité de données
complètes, elle peut être définie comme suit :
N
L( | Z )  L( | X , Y )   p( xi |  ) p( yi ,  )
(2.18)
i 1
En gardant θ fixe, la fonction de probabilité de données complètes devient fonction de la
variable, Y qui est :
L( | X , Y )  /  fixe /  l (Y | X , )
(2.19)
En supposant Y un exemple de la variable aléatoire Y, nous pouvons calculer la valeur prévue
de l(Y|X, θ). L'algorithme EM emploie un ensemble de paramètres donné θt−1 pour évaluer la
densité marginale de Y donnée par X et emploie cette fonction pour calculer la valeur prévue
de la fonction de données complète du logarithme-probabilité; cette étape de l'algorithme est
connue comme étape d'espérance ou E-étape. Puisque le θ est fixe, la valeur prévue sera une
fonction déterministe de θ. Dempster et bien d’autres ont défini la fonction Q comme suit :
Q( t , t 1 )  E log l (Y | X ,  t ) | X ,  t 1 
(2.20)
Où θt = θ et le côté droit et est évalué par :
E log l (Y | X , t ) | X ,  t 1  

log l ( y | X ,  t ) p( y | X ,  t 1 )dy
(2.21)
yDy
La seconde et la dernière étape de l'algorithme EM est de maximiser Q en fonction de θ et de
t, tel que :
 *  arg max Q( t , t 1 )

(2.22)
Cette étape de l'algorithme est dite étape de maximisation ou M-étape.
L'algorithme EM emploie alors le θ* comme le θ t−1 dans (2.20) et les deux étapes de
l'algorithme sont répétées. Chaque itération de l'algorithme est garantie pour augmenter la
fonction de probabilité jusqu'à ce qu’un maximum local soit atteint. Une démonstration
mathématique de ce rapport ainsi que l'information considérant le taux-de-convergence peut
être trouvée dans [DEM77].
28
Techniques de détection d’objets mobiles
CHAPITRE 2
2.3.3.3 L’application D’EM aux modèles de mixtures de gaussiennes
L’approche appropriée au problème de détermination des estimations de paramètre de
probabilité maximale des modèles de mixture est d'employer l’algorithme EM .En considérant
une variable aléatoire X représentée par un modèle de mixture de K processus d’estimations
aléatoires ou chacun a sa propre fonction de densité de probabilité, la densité de mixture est
alors :
K
p( x |  )   wk pk ( x |  k )
(2.23)
k 1
Soit X = {x1 ,…, xN} représentant un ensemble de données de N échantillons prélevés
indépendamment de X et identiquement distribués par p(x|θ), la fonction du logarithmeprobabilité devient :
N
N
N
K
i 1
i 1
i 1
k 1
log L( | X )  log  p( xi |  )   log p( xi |  )   log  wk pk ( xi | k )
(2.24)
Il est difficile de maximiser l'équation (2.24). Cependant, en supposant les processus
d’estimations disjoints, (2.24) peut être considérablement simplifiée si on connaît le processus
généré par chaque échantillon ; Soit k i
{1,…, K} une variable connue, indiquant cette
information c-à-d si ki = k le i nième échantillon a été généré par le k nième: processus.
L'expression réduit alors à :
N
log L( | X )   log wki pki ( xi | ki )
(2.25)
i 1
Par conséquent, on suppose l'ensemble de données X incomplet dans le sens qu'un ensemble
de données inaperçu indique quel processus produit chaque valeur d'échantillon. Etant donné
K = {k1 ,…, kN} un ensemble de données manquantes, et Z = (X, K) un ensemble de données
complet. Si K est connu l’équation de probabilité de données complètes devient :
N
log L( | X , K )   log wki pki ( xi | ki )
(2.26)
i 1
K est inconnu, mais si nous supposons que K est un exemple de variables aléatoires k, nous
pouvons procéder à l'étape d'espérance de l'algorithme E M. Tout ce qui est nécessaire est
l’expression de la densité marginale du K donnée par X. Notons que dans ce cas, l’échantillon
k de K sera un vecteur de N éléments. En utilisant la règle de Bayes, il est facile de trouver
l’expression de la probabilité conditionnelle du k i donnée par xi et d'un vecteur de paramètre
θ t−1 .
29
Techniques de détection d’objets mobiles
p(ki | xi ,
t 1
)
CHAPITRE 2
wki pki ( xi |  kti1 )

(2.27)
w p ( xi |  kt 1 )
k 1 k k
K
Dans ce cas les paramètres de mixture wk peuvent être considérés comme étant des
probabilités p(k i|θt−1 ). Puisque les échantillons sont indépendamment prélevés, la densité
marginale est alors :
N
p( K | X , t 1 )   p(ki | xi ,  t 1 )
(2.28)
i 1
L'équation (2.20) prend la forme :
Q( t ,  t 1 )  E log l ( K | X ,  t ) | X ,  t 1 

 log l(K | X , ) p(k | X ,
t
t 1
)
kDK
K
N
  log(wk pk ( xi | kt )) p(k | xi ,  t 1 )
(2.29)
k 1 i 1
Nous avons donc analytiquement exécuté l’étape-E.
A l’exception de la détermination de wk . L’exécution de l’étape –M est une question de choix
de fonctions de densité des composants et de différenciation Q (θ t , θ
t−1
) par rapport aux
différents paramètres et de les mettre à 0. Il n'est pas nécessaire de spécifier les fonctions de
densité afin de déterminer wk . Blimes montre dans [BIL98] que lorsqu’on utilise les
composantes de fonctions de densité gaussiennes, il est possible de trouver des expressions
analytiques pour tous les nouveaux paramètres θ t en fonction des anciens paramètres θ t−1 . En
utilisant des gaussiens de d-dimensions avec les vecteurs de paramètre θk = {μ k , ∑k }, c-à-d :
pk ( x | k ,  k ) 
1
(2 )
d
2
| k |
1
e
1
 ( x  k )T
2
 k ( x  k )
1
(2.30)
2
On donne les expressions :
wkt 
1 N
 p(k | xi , t 1 )
N i 1



N

t
k

x p(k | xi , t 1 )
i 1 i
N
t
k


p(k | xi ,  t 1 )
i 1
N
i 1
p(k | xi , t 1 )( xi  kt )( xi  kt )T

p(k | xi , t 1 )
i 1
N
(2.31)
(2.32)
(2.33)
30
Techniques de détection d’objets mobiles
Où
est fonction du nouveau paramètre estimé
CHAPITRE 2
.
Une approche alternative pour obtenir (2.31) à (2.33) peut être trouvée dans [CHBI95], où des
composantes de fonctions de densité gaussiennes et une matrice de covariance diagonale sont
employées dans une partie de la dérivation, ou l’on constate la convergence de ce cas
particulier.
2.3.3.4 Algorithme de Stauffer et Grimson
Après avoir assimilé la méthode mathématique avec laquelle l'algorithme EM est
appliqué aux modèles de mixture de gaussiennes nous pouvons passer à l'algorithme de
Stauffer et Grimson présenté dans [STGRI99].
Puisqu’on prévoie un changement dynamique dans la scène avec le temps, le processus de
pixel X ne peut être considéré comme un processus stationnaire sur une période plus longue ;
cependant, en spécifiant N un nombre fini d’échantillons qui sera utilisé pour déterminer le
vecteur de paramètre θ.
Les équations (2.31) à (2.33) doivent être évaluées pour chaque Pixel dans chaque image
vidéo. Puisque c'est une opération informatique encombrante quand N est grand, on s’appuie
sur une astuce qui simplifie l'opération qui calcule les moyennes récursivement.
En évaluant les expressions à N + 1 le (N + 1) nième: terme peut être extrait. Les densités de
mixture dans (2.31) évaluées à N + 1 sont :
wkN 1 
1 N 1
p(k | xi , t 1 )

N  1 i 1

1 N
1
p(k | xi , t 1 ) 
p(k | xN 1 , t 1 )

N  1 i 1
N 1

N
1
wkN 
p(k | xN 1 ,  t 1 )
N 1
N 1
(2.34)
1  N
1

 1 
p(k | xN 1 , t 1 )
 wk 
N

1
N

1


 (1   )wkN   p(k | xN 1 , t 1 )
Où  
1
. En appliquant la même technique, (2.32) donne :
N 1
31
Techniques de détection d’objets mobiles



N 1

N 1
k
CHAPITRE 2
x p(k | xi , t 1 )
i 1 i
N 1



p(k | xi , t 1 )
i 1
N
x p(k | xi , t 1 )
i 1 i
N 1



i 1
N
i 1
N 1
p(k | xi , t 1 )
i 1


p(k | xi , t 1 )
N 1
i 1
p(k | xi , t 1 )

p(k | xN 1 , t 1 )

kN 
N 1
i 1
p(k | xi , t 1 )
p(k | xN 1 , t 1 )

N 1
i 1
p(k | xi ,  t 1 )
p(k | xi , t 1 )  p(k | xN 1 , t 1 )

N 1
i 1
xN 1
p(k | xi , t 1 )
kN 
xN 1
p(k | xN 1 , t 1 )

N 1
i 1
p(k | xi , t 1 )
xN 1
(2.35)

p(k | x , t 1 )  N
p(k | x , t 1 )
 k  N 1 N 1
 1  N 1 N 1
xN 1
t 1
  p(k | xi , t 1 ) 
p
(
k
|
x
,

)

i
i 1
i 1


 (1  k )kN  k xN 1
Où
k 
p(k | xN 1 ,  t 1 )

N 1
i 1
p(k | xi , t 1 )

p(k | xN 1 ,  t 1 )  . p(k | xN 1 ,  t 1 )

( N  1) wkN 1
wkN 1
(2.36)
En conclusion, l'application des mêmes astuces algébriques à (2.33) donne :

N 1
k


N 1
i 1
p(k | xi , t 1 )( xi  kN 1 )( xi  kN 1 )T

N 1
i 1
p(k | xi , t 1 )
 ...
 1  k   k  k ( xN 1  kN 1 )(xN 1  kN 1 )T
N
(2.37)
Donc, pour résumer, écrivons (2.34) - (2.37) en tant que moyennes cumulatives en fonction de
nouveaux et anciens paramètres :
wknew  (1   )wk   p(k | xt , old )
(2.38)
knew  (1  k )k  k xt
(2.39)

(2.40)
new
k
 1  k   k  k ( xt  knew )(xt  knew )T
Où

1
N 1
(2.41)
32
Techniques de détection d’objets mobiles
k 
CHAPITRE 2
 . p(k | xt , old )
(2.42)
wknew
α est supposée constante dans les équations (2.31) - (2.33). L’utilisation de l’équation (2.38)
en remplacement de l’équation (2.31) nous permet de calculer les nouvelles densités de
mixture sans stocker les valeurs d'échantillon précédentes. Ces équations diffèrent légèrement
des équations de Stauffer et Grimson présentées précédemment. (2.42) est particulièrement
différente, néanmoins ça donne toujours le même résultat que dans [WAY02].
2.3.3.5 Considérations pratiques
La première étape de l'algorithme est d'estimer lequel des K de distributions
principales a généré la valeur du Pixel courant x t. Stauffer et Grimson définissent la cohérence
comme une valeur de Pixel faisant partie de l’écart type λ = 2.5 d'une distribution, qui peut
être interprétée en termes de distance de Mahalanobis comme suit :
d k2   xt  k 
T
 x   
1
k
t
(2.43)
k
1,si d k  
Mk  
0, autrement
(2.44)
Quand on utilise λ = 2.5 dans un cas à une dimension Gaussienne (par exemple images en
niveau de gris) cette valeur représente 98.76% des valeurs possibles Gaussiennes. L'équation
(2.44) est essentiellement une approximation de p (k|xt ,θ old), notons qu’en pratique,
p (k|xt ,θ old) est approximativement égale à 1 pour des distributions de moyenne proche de la
valeur du Pixel et approximativement 0 autrement.
Notons que Stauffer et Grimson emploient une seule grandeur scalaire pour représente r leur
matrice de covariance, c-à-d : ∑k =
I, où I est la matrice d'identité. Ceci est fait pour
simplifier l'inversion de la matrice dans (2.43) puisqu'elle peut facilement être calculée
analytiquement en utilisant cette simplification. Notons également qu'on suppose que
l'inversion peut facilement être faite analytiquement si le ∑k est diagonale, ce qui est vrai dans
le cas de dimensions indépendantes. Une matrice de covariance est employée pour le reste de
la section.
Si plusieurs distributions sont cohérentes, on choisi le plus haut pique de la distribution, ceci
se fait en déterminant le k qui maximise wk/||∑k ,||F où F représente la norme de Frobenius, qui
est une valeur élevée pour les distributions qui génèrent souvent des valeurs de Pixel, et ainsi,
33
Techniques de détection d’objets mobiles
CHAPITRE 2
est susceptible d'avoir produit la valeur courante. Ses paramètres sont alors mis à jour en
utilisant les équations (2.38) et (2.40), les densités de mixture sont normalisées. La seule
opération informatique gênante lors du calcul des nouveaux paramètres est l'évaluation du ρk.
En utilisant l'approximation de tel sorte que p (k|xt ,θ
old
) soit approximativement égal à1 si la
distribution est une cohérence et égal à 0 autrement.

k 
(2.45)
wknew
Une autre approximation plus simple que (2.45) peut être considérée, il s’agit d'introduire
(2.38) dans (2.42), c-à-d :
k 
 . p(k | xN 1 , old )

wkN 1
wknew  (1   )wk
wknew
 1  (1   )
Où
/
(2.46)
wk

wknew
, qui est vrai tant que wk >> α. Les approximations (2.45) et (2.46) sont
discutées dans [13]. Le problème qui se pose avec la première approximation contrairement à
la deuxième c’est que ρk = 1 si
= α, ce qui donne une matrice de covariance égale à 0,
où 0 est la matrice zéro.
Cependant, les distributions peuvent rarement se cohérer, et
ne peut être toujours égal à
α
Si wk =0, et donc, pk ≈ α ce qui est invalide. Il est plus sûr d’utiliser la première
approximation, à une condition : pk ≈ 1.
Si aucune distribution n’est cohérente, le plus bas pique de la distribution est remplacé par
une nouvelle distribution, en utilisant la valeur courante du pixel comme sa moyenne, la
matrice de covariance élevée, et la basse densité de mixture. C'est comme cela que les
nouveaux objets deviennent une partie du fond.
Stauffer et Grimson maintiennent les distributions ordonnées en prenant en compte wk / σk , en
utilisant une matrice de covariance pleine cette, ainsi l’expression devient wk/||∑k ,||F qui sert à
34
Techniques de détection d’objets mobiles
CHAPITRE 2
déterminer la distributions qui constitue le fond. Les premières distributions ‘B’ pour avoir
une densité de mixture combinée plus grande qu'un seuil ‘T’ sont choisies comme modèle de
fond, c-à-d :
B  arg min
b

b
k 1
wk  T

(2.47)
Le premier plan d'image binaire est alors estimé en calculant la distance de Mahalanobian de
la première distribution B. Si le Pixel n’est pas cohérent, il se situ en avant plan (foreground).
Les résultats des algorithmes de détection d’objets mobiles (background subtraction) que nous
avons décrit
précédemment contiennent généralement du bruit et des informations non
expressives, Ils ne sont donc pas appropriés pour les autres traitements
comme : le
suivi,…etc.
Divers facteurs génèrent le bruit dans l’image comme : le bruit de la caméra, réflexion, la
couleur de fond, changements soudain d’illumination ombres et.
Le bruit est éliminé avec une combinaison d’érosion et dilatation (filtre morphologique).
2.4 Résultats expérimentaux
Apres avoir discuté de la théorie précédemment, on va les tester sur des séquences
vidéo réelles, prise dans des conditions différentes.
Nous avons effectué des tests sur des images acquises localement.
Pour les trois méthodes discutées, nous avons suivi ses étapes: On lit une image I t dans la
séquence vidéo, on fait un prétraitement de cette image afin d’atténuer le bruit par un filtrage
gaussien, cette image est segmenté par l’application d’une de ces méthodes de détection : la
différence temporelle adaptative de fond (DAF), la différence temporelle par le seuillage
entropique (DSE), et le modèle de mixture de gaussien (MOG). L’image segmentée S t subit
un traitement d’élimination de bruit par une fermeture morpho logique (dilatation après
érosion).
-
Le seuil T de la méthode de différence temporelle adaptative de fond constitue la clef
de la détection. Il n’existe pas de méthode universelle pour le trouver de manière
efficace, c’est pourquoi on doit tester plusieurs valeurs et on choisit la meilleure même
pour le paramètre de mise à jour α. Et quand on change la scène, ces paramètres vont
être changés. La figure 2.2 nous illustre leurs influences sur la détection.
35
Techniques de détection d’objets mobiles
CHAPITRE 2
(a)
(b)
T=0.25 ; α =0.05
T=0.09; α =0.1;
T=0.15 et α =0.1
Figure 2.2: Détection d’objets mobiles par la méthode de diffé rence temporelle du fond.
(a) les images originales, (b) le résultat de détection.
-
La technique de seuillage entropique est simple: elle s’applique dans toute situation de
traitement d’image où l’on dispose de données entachées d’un bruit additif, à la
condition que l’hypothèse de bruit blanc gaussien et majoritaire sur le support soit
valide.
L’application du seuil θ =0.04σ conduit à la détection des pixels représentés en blanc
dans la figure 2.3. L’estimation de la puissance entropique offre donc un critère
adéquat pour fixer de manière non supervisée le seuil à appliq uer sur les observations
temporelles.
36
Techniques de détection d’objets mobiles
CHAPITRE 2
(a)
(b)
Figure 2.3: Détection d’objets mobiles par la méthode de diffé rence temporelle par
seuillage entropique.
(a) les images originales, (b) les résultats de détection.
-
Pour la méthode de mixture de gaussienne, nous avons utilisé trois distributions
gaussiennes pour traiter la détection, donc k=3, les trois distributions sont initialisées
avec de faible poids de valeur 0.01 ,de moyenne égale a l’image initiale, et de variance
égale a 1 ,le paramètre ρ est approximé pour chaque distribution à α/w ,la distance
utilisé pour vérifier la cohérence est la distance de Mahanolobis, le paramètre α e st
mis a 0.05, les résultats sont montrés dans la figure 2.7.
37
Techniques de détection d’objets mobiles
CHAPITRE 2
(a)
(b)
Figure 2.4: Détection d’objets mobiles par la méthode de mixture de gaussiennes.
(a) les images originales, (b) les résultats de détection.
38
Techniques de détection d’objets mobiles
CHAPITRE 2
2.5 Conclusion
Dans ce chapitre nous avons étudié et, implémenté quelques méthodes de détection d’objets
mobiles. L’application visée est la vidéo surveillance. No us avons retenu une technique :
La technique de soustraction de fond pour réaliser la détection d’objets mobiles et
effectuer
une estimation du fond qui est supposé statique. Trois algorithmes ont été implémentées dans
cette classe; la différence temporelle adaptative de fond, le seuillage entropique et le modèle
de mixture de gaussienne adaptatif.
Les méthodes basées sur la différence entre deux images successives (DAF et DES) sont
généralement rapides et faciles à mettre en place. Elles s’adaptent relativement bien aux
changements brutaux dans le fond et moins bien aux changements de luminosité. La plupart
des algorithmes ne se basent que sur l’intensité mais cela ne permet pas la détection d’objets
ayant une intensité proche de celle des pixels du fond.
La mixture de gaussiennes est basé sur la modélisation du fond ou du mouvement en chaque
pixel présente l’avantage de permettre une détection plus précise des objets en mouvement
mais nécessite l’apprentissage de modèles sur plusieurs images successives. Les changements
brutaux limitent donc l’utilisation d’une telle approche. La mise à jour continue des modèles
de fond est indispensable pour prendre en compte des changements graduels, elle conduit
généralement à la suppression d’objets restant immobiles un certain moment dans le modèle
de fond. Et pour cette raison on a choisi cet algorithme pour l’implémentation en temps réel.
39
DSP DM 642 EVM
CHAPITRE 3
Chapitre 3
Le DSP DM 642 EVM
3.1 Introduction
Les applications temps réel sont depuis longtemps une préoccupation primordiale dans
plusieurs domaines. Elles occupent une place de plus en plus importante dans le monde
actuel. Elles étaient réservées aux équipements industriels lourds auparavant, actuellement on
les trouve dans différents produits grand public, particulièrement dans les systèmes de
télécommunication. La qualité de ces systèmes est jugée par leur temps d’exécution, ce qui
conditionne leurs situations au marché.
Les applications temps réel reposent principalement sur des algorithmes de traitement de
signal et d’image, qui nécessitent une quantité importante de calculs. Pour cela, il a fa llu
utiliser des calculateurs à fortes puissances, dans le but d’accélérer les calculs spécifiques
dans le domaine du traitement de signal et d’image. Pour cette raison, un type spécial de
processeur a été créé, il s’agit des processeurs de traitement numérique du signal (DSP Digital Signal Processing).
Une application temps réel est composée de deux parties :
 La première correspond à un système informatique composé d’un calculateur
exécutant un ensemble de programmes qui forment son logiciel, et clôturent les
algorithmes de l’application.
 La seconde partie correspond à son environnement physique, dont les changements
d’état, sont perçus par le calculateur au moyen de capteurs. Le calculateur réagit à ces
stimulis pour maintenir l’environnement dans un état déterminé au moyen
d’actionneurs.
Ces applications doivent réagir dans un temps très bref afin d’assurer le bon contrôle de
l’environnement, sinon on risque d’avoir de mauvaises conséquences.
40
DSP DM 642 EVM
CHAPITRE 3
3.2 Généralités sur les DSP
3.2.1 Définition
Un DSP est un type particulier de micro processeur. Il se caractérise par le fait qu’il intègre
un ensemble de fonctions spéciales. Ces fonctions sont destinées à le rendre particulièrement
performant dans le domaine du traitement numérique du signal ou vidéo. Comme un
microprocesseur classique, un DSP est mis en œuvre en lui associant des mémoires (RAM,
ROM) et des périphériques. Un DSP typique a plutôt vocation à servir dans des systèmes de
traitements autonomes. Il se présente donc généralement sous la forme d’un microcontrôleur
intégrant, selon les marques et les gammes des constructeurs, de la mémoire, des timers, des
ports séries synchrones rapides, des contrôleurs DMA, et des ports d’E/S divers……[SD01].
3.2.2 Caractéristiques des DSP
Tous les systèmes à bases de DSP bénéficient des avantages suivants [Lyn98] :
 Souplesse de programmation
Un DSP est avant tout un processeur exécutant un programme de traitement de signal. Ceci
signifie que le système bénéficie donc d’une grande souplesse de développement. De plus, les
fonctions de traitements numériques peuvent évoluer en fonction des mises à jour des
programmes, et cela pendant toute la durée de vie du produit incluant le système. Ainsi,
modifier par exemple tel ou tel paramètre d’un filtre numérique ne nécessite pas un
changement matériel.
 Implémentation d’algorithmes adaptatifs
Une autre qualité issue de la souplesse des programmes, il est possible d’adapter une fonction
de traitement numérique en temps réel suivant certains critères d’évolutions du signal (par
exemple les filtres adaptatifs).
Cependant, certaines fonctions de traitement du signal sont difficiles à implanter en
analogique, voire irréalisables (exemple : un filtre à réponse à phase linéaire).
 Stabilité
En analogique, les composants sont toujours plus ou moins soumis à des variations de leurs
caractéristiques en fonction de la température, de la tension d’alimentation, du vieillissement,
etc. Une étude sérieuse doit tenir en compte ces phénomènes, ce qui complique et augmente le
temps de développement. Ces inconvénients n’existent pas en numérique.
41
DSP DM 642 EVM
CHAPITRE 3
 Répétitivité, reproductibilité
Les valeurs des composants analogiques sont définies avec une marge de précision plus ou
moins grande. Dans ces conditions, aucun montage analogique n’est strictement reproductible
à l’identique, il existe toujours des différences qu’il convient de maintenir dans des limites
acceptables. Un programme réalisant un traitement numérique est par contre parfaitement
reproductible, « à l’infini ».
3.3 Les différents types de DSP
Deux familles principales de DSP se partagent le marché. Les premiers sont les DSP à
virgule fixe, qui nécessitent une attention accrue du développeur lors de la programmation.
Les seconds sont les DSP à virgule flottante, aisés d'utilisation mais plus onéreux.
3.3.1 Le DSP à virgule fixe
Dans ce cas, les données sont représentées comme des fractions d’entiers qui sont, par
exemple, comprises entre -1.0 et 1.0, ou comme des entiers simples. L’avantage de la fraction
est de permettre une addition binaire simple des nombres positifs et négatifs (via un
complément à 2). Contrairement aux apparences, un DSP à virgule fixe est plus complexe à
programmer qu’un DSP à virgule flottante.
Cependant, les DSP à virgule fixe sont plus rapides, c’est donc aussi un critère de
choix. Mais avec le temps, les DSP à virgule fixe sont moins développés et on été rattrapés
par ceux à virgule flottante dont allons maintenant donner une description.
3.3.2 Le DSP à virgule flottante
Ces DSP sont bien plus commodes pour les développeurs. Les données sont
représentées avec une mantisse et un exposant. On utilise souvent une mantisse fractionnaire
comprise entre -1.0 et 1.0. L’exposant indique la place de la virgule en base 2.
Ils sont souvent utilisés pour leur souplesse pour des cas particuliers où :
 Les coefficients dépendent du temps (exp : filtre adaptif).
 La structure mémoire est importante (exp : traitement d’images).
 La précision est primordiale, sur un intervalle relativement large.
42
DSP DM 642 EVM
CHAPITRE 3
3.4 Formats des DSP
3.4.1 Représentation binaire des nombres arithmétique en précision finie [DJ08]
Les processeurs de traitement de signal peuvent travailler sur des données représentées en
virgule fixe ou en virgule flottante. Pour certains algorithmes, il peut être intéressant de les
faire fonctionner en virgule flottante par bloc.
Avant de préciser ces différentes représentations, il est utile de rappeler les représentations
binaires les plus courantes des entiers relatifs.
a. Représentation binaire des entiers relatifs
Plusieurs représentations binaires des entiers relatifs sont couramment utilisées, en particulier
dans les convertisseurs analogique/numérique. On peut citer :
 Complément à 2
 Complément à 1
 Signe, valeur absolue
 Binaire décalé
Les représentations binaires en complément à 1 et en complément à 2 diffèrent par la
représentation des nombres entiers négatifs.
Dans la représentation en complément à 1, un entier négatif x est codé par la représentation
binaire pure de l’entier positif y égale au complément à 1 de x, et on écrit :
y  2N  x  1
(3.1)
Le terme complément à 1 représente en fait le complément à 2 N  1 ; entier positif qui sur N
bits s’écrit avec tous les bits à 1.
Dans la représentation en complément à 2, un entiers négatif x est codé par la représentation
binaire pure de l’entier positif y égal au complément à 2 de x :
y  2N  x
(3.2)
Le terme complément à 2 représente en fait le complément à 2 N .
43
DSP DM 642 EVM
CHAPITRE 3
b. Entiers relatifs en complément à 2
La représentation des nombres entiers relatifs utilisée dans le DSP comme dans la plupart des
microprocesseurs est la représentation binaire en complément à deux.
Soit un entier relatif x, sa représentation binaire en complément à 2 sur N bits est constituée
d’une suite de bits bi.
x  bN1 bN 2 ........bk ........b1 b0
(3.3)
La relation entre x et les valeurs des bits bi est la suivante :
Pour x positif, la représentation en complément à 2 de x est la représentation binaire pure,
c’est à dire une représentation pondérée en base 2 :
N 1
x  0  x   bi 2i
et bN  1  0
(3.4)
i 0
Pour x négatif, la représentation en complément à 2 de x est la représentation binaire pure du
complément à 2 N de x(y) :
N 1
x  0  y  2 N  x  y   bi 2i
(3.5)
i 0
Dans tous les cas, on peut écrire la relation suivante :
N 2
x  2 N 1 bN  1   bi 2i
(3.6)
i 0
Le bit du poids le plus fort vaut 0 pour les entiers positifs et 1 pour les entiers négatifs.
Les valeurs extrêmes représentables en complément à 2 sur N bits sont :
max  2 N 1  1
(3.7)
min  2 N 1
(3.8)
c. Mode d’overflow
La représentation en complément à 2 est une représentation circulaire. Lorsque l’on ajoute 1 à
la plus grande valeur positive, on obtient la valeur négative de la plus grande valeur absolue.
Si on enlève 1 à la valeur négative de la plus grande valeur absolue, on obtient la plus grande
valeur positive :
2
N 1

 1  1  2 N 1  2 N 1
(3.9)
Cette particularité peut avoir des conséquences fâcheuses. Ainsi lorsque le gain d’un filtre
numérique est trop grand à la sortie, il peut être exprimé sur N bits, au lieu de saturer comme
en analogique, la sortie oscille entre des valeurs de grandes amplitudes positives et négatives.
On parle de cycle limite de grande amplitude. Les débordements, en complément à 2,
génèrent ainsi des pics difficiles à filtrer.
44
DSP DM 642 EVM
CHAPITRE 3
Les DSP disposent en général d’une arithmétique de saturation. Ils peuvent être configurés
soit pour travailler au vrai complément à 2, soit pour travailler en complément à 2 avec
saturation. Dans ce dernier cas, si le résultat d’un calcul est en valeur absolue supérieur à la
plus grande valeur représentable en complément à 2 dans l’accumulateur, l’arithmétique de
saturation détecte le débordement et le processeur remplace ce résultat par une valeur
d’écrêtage : la plus grande valeur positive ou négative représentable, c’est à dire qu’il réalise
une saturation 0 dans les DSP de la famille 64x, le mode de fonctionnement est déterminé par
la valeur du bit de mode OVM (Overflow Mode).
d. Extension du bit de signe
Lorsque l’on connaît la représentation en complément à 2 sur N bits d’un nombre x, pour
obtenir la représentation en complément à 2 du même nombre sur M bits (M>N), il suffit
d’étendre le bit de signe, c’est à dire de conserver les N bits de poids faibles et de remplir les
bits de poids forts supplémentaires en répétant la valeur du bit de signe (le MSBI sur N bits).
Lorsque l’on charge une donnée de 16 bits dans un accumulateur de 32 bits, le bit de signe est
automatiquement étendu. Dans certains cas, cette extension du bit de signe n’est pas
souhaitable, par exemple pour une donnée de 16 bits représentant une adresse, grandeur
forcément positive. Il est généralement possible de configurer les DSP pour qu’ils effectuent
ou non une extension du bit de signe lors d’un chargement dans l’accumulateur.
3.4.2 Représentation binaires des nombres réels en précision finie
Deux approches sont utilisées pour la représentation binaire des nombres réels en précision
finie :
 La représentation en virgule fixe ou format fixe.
 La représentation en virgule flottante ou format flottant.
Les DSP sont conçus de l’une des deux représentations. Toutefois, un DSP travaillant en
virgule fixe pourra aussi effectuer des calculs en virgule flottante, mais de manière peu
efficace et réciproquement.
Le choix du DSP se fait tout d’abord en fonction des caractéristiques de l’application. Ce
choix est simplifié par le classement en familles dédiées à des secteurs d’application. Bien
sûr, un composant d’une série donnée peut satisfaire une application non spécifiquement citée
comme cible si ses exigences sont de même nature en terme de puissance de traitement, de
taille mémoire ou de périphériques disponibles.
45
DSP DM 642 EVM
CHAPITRE 3
La vitesse d’exécution est un facteur de sélection du DSP. Cependant, il y a de nombreuses
façons de mesurer la vitesse d’un DSP, donc les comparaisons entre processeurs sont
difficiles.
La largeur du segment de données (le format binaire de donnée) influe aussi sur le choix du
DSP, puisqu’elle dépend de l’application, et qu’elle a un impact sur le prix et sur la taille de la
puce. En général, les DSP à virgule fixe, utilisent des données codées sur 16 bits, ceux à
virgule flottante sur 32bits. Il faut également surveiller la consommation énergétique du DSP.
Enfin, la mémoire associée est un complément indispensable. La taille de l’espace mémoire
adressable et son organisation est un critère à ne pas négliger.
Le contrôleur mémoire doit être capable de chercher les données dans un laps de temps
extrêmement court, de façon à ce que les programmes puissent être opérer en temps réel.
Dans ce travail on va faire une implémentation de l’algorithme de mixture de gaussienne sur
un DSP DM 642_EVM qui est un DSP à virgule fixe. Pour cette raison, dans ce qui suit, on
va s’intéressé à détailler la représentation en format fixe, et ses embûches.
a. DSP en virgule fixe
On appelle représentation en virgule fixe des nombres fractionnaires, ou plus généralement
des nombres réels avec une précision finie, une représentation comprenant une partie entière
suivie d’une partie fractionnaire correspondant à des bits après la virgule.
On utilise souvent l’expression « format Qk » pour indiquer une représentation comportant k
bits derrière la virgule.
Soit un nombre x réel quelconque, sa représentation binaire en virgule fixe, en précision finie
sur N bits en format Qk (c’est à dire avec k bits derrière la virgule) s’écrira :
Partie entière

 Partie
fractionnaire

x  bN 1 k ...b1b0 , b1b2 ...b k
(3.10)
La notation ... signifie arrondi au plus proche voisin.
Elle correspond à la représentation du nombre entier y obtenu en arrondissant à l’entier le plus
proche le nombre réel formé du produit de x par 2k .
y   2 k x 
(3.11)
Par la suite on suppose que cette représentation de y est faite en complément à 2.
Ainsi, la représentation binaire :
Partie entière

 partie
fractionnaire

bN 1 k ...b1b0 , b1b2 ...b k
(3.12)
46
DSP DM 642 EVM
CHAPITRE 3
Elle correspond au nombre fractionnaire :
z  bN 1k 2N 1k  bN 2k 2N 2k  ...b0  b1 21  ...  bk 2k
(3.13)
Ce nombre est une approximation en précision finie, la représenta tion sur un nombre fini de
bits introduit une erreur. En virgule fixe sur N bits avec format Qk , cette erreur est inférieur
à 2  k , si N-k bits suffisent pour la partie entière.
 Valeurs extrêmes en virgule fixe sur N bits avec format 
k
:
Les valeurs extrêmes représentables sont :
max  2N 1k  2 k
(3.14)
min  2 N 1k
(3.15)
 Dynamique et précision en virgule fixe sur N bits avec format Qk :
En virgule fixe sur N bits de partie fractionnaire, il est possible de représenter les réels
compris entre 2N 1k et 2 N 1k  2 k avec une erreur inférieur à 2  k en valeur absolue.
Pour les réels en dehors de cette plage, on dit qu’il y a :
-Overflow si le nombre est trop grand en valeur absolue. Il y a débordement.
-Underflow si le nombre est trop petit. Il est alors représenté par un zéro.
En conclusion, l’erreur absolue est inférieur à 2  k sur une plage de valeurs correspondant à
une dynamique de 2N dB. La dynamique ici, est définie comme 2 fois le rapport entre la plus
grande et la plus petite des valeurs positives exprimable s.
On donne un exemple pour illustrer ce qui a été présenté théoriquement : dans l’exemple de
représentation en virgule fixe sur N=8 bits en format Qk : Le terme format Q5 signifie qu’il y
a 5 bits derrière la virgule.
On travaille ici en complément à deux. La partie entière est formée de 3 bits (8-5). Elle permet
de représenter des entiers relatifs compris entre 3 et -4.
La partie fractionnaire, sur 5 bits, permet de représenter des nombres compris entre 0 et
0.96875 ce qui correspond à la somme des 5 premières puissances de 2 négatives. Le tableau
(3.1) donne quelques représentations et leurs équivalences décimales :
47
DSP DM 642 EVM
CHAPITRE 3
Représentation binaire
virgule fixe, format Q5
Valeur décimale
011 10000
3.5
001 10100
1.625
110 10001
-1.468 75
100 00000
-4
011 11111
3.968 75
Tableau 3.1 : Représentations binaires et valeurs décimales.
En format Q5 sur 8 bits, les valeurs extrêmes représentables sont -4 et 3.96875.
La représentation sur un nombre fini introduit une erreur. Cette erreur est inférieure à 2  k , soit
1/32 dans l’exemple.
Le tableau (3.2) donne quelques exemples de nombres réels, leurs représentations sur 8 bits en
format Q5 avec l’équivalence décimale de l’erreur commise par cette représentation :
Représentation binaire
Valeur réelle
Virgule fixe, format 
5
Équivalence
décimale
Erreur commise
1/3
000 01011
0.343 75
0.010 416 666…
2
001 01101
1.406 25
0.007 963 562…
011 00101
3.156 25
0.014 657 346…

Tableau 3.2 : Représentations binaires et valeurs décimales en format Q5 .
 Addition de deux nombres fractionnaires en virgule fixe :
Lors de l’addition de nombres fractionnaires en virgule fixe, il faut comme en décimal,
aligner les virgules. La somme de deux nombres en format Qk donne un résultat en
format Qk .
Qk  Qk  Qk
(3.16)
48
DSP DM 642 EVM
CHAPITRE 3
 Multiplication de deux nombres fractionnaires en virgule fixe
Le produit de deux nombres en virgule fixe sur N bits donne un résultat sur 2N-1 bits.
Comme en décimal, le nombre de bits après la virgule du résultat est égal à la somme de
bits derrière la virgule des deux opérandes :
Qk .Qk '  Qk k '
(3.17)
b. DSP en virgule flottante
Dans la représentation binaire en virgule flottante en précision finie sur N bits, les nombres
sont représentés par une mantisse M et un exposant E. M et E représentent la valeur de
x. x  M  2E
(3.18)
Pour une représentation sur N bits, la mantisse M est exprimée sur m bits, et l’exposant E sur e
bit.
N  me
(3.19)
Pour que la représentation soit unique, M est normalisée, par exemple:
1
 M 1
2
(3.20)
 Plage des nombres représentables
Sur N bits, avec m bits pour la mantisse, e bits pour l’exposant et une mantisse normalisée
entre 0.5 et 1, on peut représenter des nombres dont la valeur absolue est comprise dans
l’intervalle :
e1
 1  (2e1 1)

, (1  21m )2(2 1) 
 2 2

1 m
(2
Overflow si : x  (1  2 )2
Underflow si : x 
(3.21)
e1
1)
1  (2 e1 1)
2
2
(3.22)
(3.23)
3.5 DSPs de la famille C6000
La plate- forme du processeur du signal numérique (DSP) de TMS320C6000™ fait partie
de la famille du DSP TMS320™. La génération du DSP TMS320C62x™ et la génération du
DSP TMS320C64x™ comportent les périphériques à virgule fixe dans la plate- forme du DSP
C6000™, et la génération du DSP TMS320C67x™ comporte les périphériques à virgule
flottante dans la plate- forme du DSP C6000. Les C62x™ et les C64x™ DSPs sont codecompatibles. Chacune des trois générations du DSP utilise l'architecture de VelociTI™, une
49
DSP DM 642 EVM
CHAPITRE 3
architecture de haute performance, (Very Long Instruction Word : VLIW). Le DSP
TMS320C64x+™ est un perfectionnement du C64x DSP avec un ensemble de fonctionnalités
supplémentaires.
Les DSPs de la famille C6000 (figure 3.1) spécifiés au traitement vidéo offrent aux
architectes du système des possibilités illimitées pour différencier leurs produits. La haute
performance, la facilité d'utilisation, et l'évaluation accessible font de la génération C6000 la
solution idéale pour le multicanal.
Figure 3.1: La famille du DSP TMS320C6000.
3.5.1 Choix du DSP
Les différents DSPs sont disponibles sur le marché, la plupart sont fabriqués par Texas
Instruments. Chaque DSP a ses propres caractéristiques et sont utilisées pour une application
spécifique. Le choix d'un processeur DSP dépend de beaucoup de facteurs, parmi lesquels on
peut citer principalement le coût, la performance, la puissance absorbée, la facilité d'usage et
l'intégration / capacité de connecter [SPRU198]. Le processeur DM642 est le plus convenable
pour le traitement de vidéo et les applications numériques médiatiques, surtout pour sa vitesse
et ses différents périphériques. C'est le processeur même utilisé dans notre implémentation et
que nous allons détailler par la suite.
50
DSP DM 642 EVM
CHAPITRE 3
3.6 Le DSP DM642_EVM (Digital Media 642Evaluation Module)
Le processeur numérique DM642 est un DSP à virgule fixe à haute performance et il est le
plus rapide de la famille C6000, fonctionnant avec une fréquence d’horloge de 720 MHZ et
5760 MIPS (million d'instructions par seconde). La haute performa nce est dans la capacité
qu’a le processeur DM642 à programmer et à exécuter plusieurs instructions en parallèle. Le
processus de pipeline est activé par le CPU C64X (qui est le cœur du DM642) : il produit les
instructions, appelées VelociTI, qui améliorent la performance des applications de la vidéo et
de l’image [NASS05].
3.6.1 Architecture interne du TMS320DM642
Dans cette partie du chapitre on donne une idée générale sur le DSP avec lequel on a
travaillé (le TMS320DM642 de la famille C6000, de Texas Instrument).
Le DM642 est un processeur à virgule fixe, il fonctionne à la fréquence 720 Mhz (la durée
d’un cycle est 1.38 ns). Il est très adapté aux applications de traitement de vidéo en temps
réel.
On a utilisé ce type de DSP pour optimiser au maximum l’implémentation de notre
algorithme, afin d’accélérer les calculs et améliorer le temps d’exécution.
Pour bien comprendre le fonctionnement du DM642, il faut voir ce processeur comme un
ensemble de blocs interconnectés.
Le CPU de DSP TMS320DM642 possède [SPRU615] :
 Une unité de chargement de programme (program fetch).
 Une unité de répartition des instructions (instruction dispatch).
 Une unité de décodage des instructions.
 64 registres de 32-bits de largeur pour chacun, séparés en deux fois 32 registres
pour la partie A et 32 registres pour la partie B.
 Deux voies pour les données (data path) contenant chacune quatre unités de
traitement.
 Des registres de contrôle.
 Une logique de contrôle.
Le processeur DM642 est basé sur l’unité centrale de traitement CPU. Le CPU peut effectuer,
à l’aide de l’architecture de VLIW, jusqu'à huit instructions de 32 bits pendant chaque cycle
d’horloge.
Le CPU est composé de deux parties principales (partie A et B), chaque partie contient quatre
unités fonctionnelles et 32 registres d’usage général de 32 bits chacun. Les unités
51
DSP DM 642 EVM
CHAPITRE 3
fonctionnelles .L1, .D1, .M1, .S1 appartiennes au côté A du CPU, et le côté B comporte les
unités L2, .D2, .S2, .M2. (Voir le bloc fonctionnel Figure (3.2)).
Les quatre unités fonctionnelles de chaque côté de l’unité centrale de traitement peuvent
librement partager les 64 registres appartenant à ce côté. En plus, chaque côté comporte un
bus de données simple relié à tous les registres de l’autre côté, par lequel les deux ensembles
d’unités fonctionnelles peuvent accéder à des données à partir des registres du côté opposé.
Une autre caractéristique principale de l’unité centrale de traitement du C64x est
l’architecture de Load/Store, où toutes les instructions sont opérées dans des registre, deux
ensembles d’unité d’adressage de données (D1 et D2) sont responsable de tout transfère de
données entre la mémoire et les registres.
La plus par des instructions conditionnelles peuvent accéder à n’importe quel registre.
Certains de ces registres sont choisis pour se charger des adresses.
Les deux unités fonctionnelles M1 et M2 sont consacrées à la multiplication. Les deux
ensembles d’unités (L1, L2) et (S1, S2) exécutent un ensemble général de fonctions
arithmétiques, logiques avec des résultats disponibles à chaque cycle d’horloge.
Dans l’architecture VLIW, les huit unités ne doivent pas être chargées par des instructions
tant qu’elles ne sont pas prêtes à exécuter. Les paquets d’instructions sont toujours de 256 bits
(une instruction est codée sur 32 bits), cependant les paquets à exécuter peuvent être de
différentes longueurs. Ces dernières représentent la clef de la mémoire de C6x, distinguant
l’unité centrale de traitement de C6x des autres architectures de VLIW.
Le traitement commence lorsque un paquet d’instruction de 256 bits est cherché dans la
mémoire du programme, il est appelé « le paquet cherché » (fetch packet). Les instructions
des 32 bits destinées aux différentes unités fonctionnelles sont liées ensemble par le bit ‘1’ de
la faible position significative des bits (LSB) d’instructions. Les instructions qui sont
enchaînées ensemble pour une exécution simultané (jusqu’à huit au total) forment le paquet à
exécuter. Un ‘0’ dans le LSB d’une instruction casse la chaîne, en plaçant les instructions qui
le suivent dans le prochain paquet à exécuter.
Ces paquets sont expédiés à leurs unités fonctionnelles respectives avec un taux d’un paquet
par cycle d’horloge et le paquet suivant de 256 bits n’est pas cherché jusqu’à ce que toutes les
instructions du paquet courant soient expédiées aux unités fonctionnelles.
Après le décodage, les instructions activent simultanément toutes les unités fonctionnelles
pour un maximum d’exécution d’environ huit instructions à chaque cycle d’horloge. Tandis
que la plus par des résultats sont stockés dans les registres de 32 bits, ils peuvent être
sauvegardés par la suite dans la mémoire [NASS05].
52
DSP DM 642 EVM
CHAPITRE 3
Figure 3.2: Le bloc fonctionnel du DSP DM642.
3.6.2 Les espaces mémoire
Trois types de mémoire sont utilisés par le processeur DM642 :
a. Mémoire cache
Comme son nom l’indique, c’est une mémoire cachée aux utilisateurs (l’utilisateur ne peut
pas s’adresser à cette mémoire), elle est juste utilisée par le CPU pour stocker des données et
des instructions copiées à partir de la mémoire interne.
L'architecture de la mémoire interne du DM642 a deux niveaux: le niveau le plus élevé,
appelé cache L1, est caractérisée par un accès rapide parce qu’il est proche du CPU et sa taille
est petite (16 Ko) ; il contient deux blocs de mémoire cache, l’un est utilisé pour stocker les
données (L1D) et l’autre pour stocker les programmes (L1P) [OP6000]. Lorsque le processeur
a besoin de certaines données, il les demande de la première cache L1; si les données
correspondantes ne sont pas disponible, il ya un manque, et les demande alors au niveau
inférieur, appelé cache L2, dont la capacité est plus grande (256 Ko) (voir figure 3.3).
53
DSP DM 642 EVM
CHAPITRE 3
Figure 3.3: DM642 L1/L2 cache.
b. Mémoire interne
Cette mémoire est adressée à l’utilisateur, elle est en général du type RAM (Random Access
Memory), c’est une mémoire du niveau L2, elle est utilisée pour charger les données et les
programmes. Le DM642 contient 256Ko de mémoire interne composée en 4 blocs [TIP05].
Figure 3.4: La mé moire inte rne.
c. Mémoire externe
La capacité de la mémoire peut être augmentée en utilisant la mémoire externe, le CPU peut
accéder aux données contenues dans la mémoire externe en utilisant l'EMIF (External
Memory Interface) et l'EDMA (Enhanced Direct Memory Access) où tous les deux sont
reliés par un bus interne.
54
DSP DM 642 EVM
CHAPITRE 3
3.6.3 Périphériques du DM642
DM642 est l'une des cartes les plus dédiée à l'imagerie et aux applications réseautiques de la
vidéo [SPRU615].
Figure 3.5: Le diagramme de bloc de DM642.
Le DM642 a un ensemble riche de périphériques qui inclut :
 Port vidéo DM642
Le périphérique port vidéo est utilisé pour capturer et afficher la vidéo ainsi qu’a
l’entrée du flux de transport (STI: Stream Transport Input).
Mode
Connecteurs
Capture vidéo
3 femelles RCA (composite vidéo)
1 femelle S-vidéo
Affichage vidéo
3 femelles RCA (composite vidéo)
1 femelle S-vidéo
1 femelle 15-pins VGA
On-screen affichage FPGA
Tableau 3.3: connecteurs vidéo.
Ces ports vidéo supportent plusieurs résolutions vidéo et standards, comme CCIR601,
UIT-BT.656.
55
DSP DM 642 EVM
CHAPITRE 3
 port audio DM642
Mode
lignes
Entrée
2 canaux ligne d’entrée (stéréo)
1 microphone (mono)
sortie
2 canaux ligne de sortie (stéréo)
Tableau 3.4: lignes audio.
 Port Ethernet.
Le port Ethernet EMAC (Ethernet Media Access Controller) est l'interface qui permet au
noyau du DSP et au réseau de communiquer. Dans le DM642, l'EMAC représente soit la
moitié soit le plein duplex. Elle peut supporter à la fois 10Base-T (10 Mbps) et 100Base- TX
(100 Mbps). Elle assure le contrôle du flux matériel et le support de la qualité de service
(QoS) [SPRU615].
Il existe plusieurs périphériques qui assurent d’autres fonctions, comme l'expansion du bus de
la mémoire (Daughter Interface Card), l'émulation (14 broches JTAG), la puissance, la
réinitialisation du bord (bouton-poussoir de réinitialisation) etc. ...
3.7 Ports vidéo de la communication
Cette section couvre les bases de la vidéo du port de communication, en fournissant certaines
informations de base nécessaires pour mettre en œuvre un système où les ports vidéo sont
utilisés pour communiquer avec d'autres ports vidéo. Le port vidéo lui même est
spécifiquement conçu pour communiquer avec d'autres périphériques vidéo tels que les
encodeurs et les décodeurs vidéo.
56
DSP DM 642 EVM
CHAPITRE 3
Figure 3.6: Système de base de la vidéo numérique.
Une vidéo est une séquence d'images prise d’une caméra qui peut être enregistré sur un DVD.
Une image vidéo est composée de plusieurs lignes de balayage rapide, ces lignes peuvent être
affichées en deux modes:
 balayage entrelacé.
 balayage progressif.
Le balayage entrelacé divise chaque image en deux domaines: les lignes impaires sont
balayées en premiers suivies des lignes paires. Les deux champs sont ensuite recueillis par les
dispositifs d'affichage pour obtenir une fenêtre complète. Cette méthode est une tentative
pour améliorer la qualité, la résolution et la diminution des images sans augmenter la bande
passante.
Le balayage progressif balaie l'ensemble de l'image ligne par ligne.
3.8 Représentation du format vidéo
3.8.1 Le modèle YCbCr
YCbCr est une manière de représenter l'espace colorimétrique en vidéo, issue essentiellement
des problèmes de transmission hertzienne. Une image captée par n'importe quel appareil est
la somme des couleurs qui la composent que ce soit en couleur ou en noir et blanc.
Ce système de transmission et de codage de la couleur a été fondamental dans le cas de la
télévision pour plusieurs raisons :
57
DSP DM 642 EVM
CHAPITRE 3
1. Assurer une restitution plus fiable de la couleur. En effet, bien que le signal Y soit noir
et blanc, il contient toutes les informations concernant les trois couleurs, étant donné
Cb et Cr différentes de Y, une valeur de soustraction erronée entre Y et Cr ou Cb (en
cas de problème de transmission) permet de rectifier plus aisément le tir.
2. Favoriser la double compatibilité, c'est-à-dire permettre à une télé noir et blanc de
décoder un signal d’une télé couleur, ou plutôt de rajouter des infos de couleur dans le
signal noir et blanc sans que cela ne perturbe l'ancien matériel, les nouvelles infos
étant placées dans des fréquences plus élevées.
En informatique, le système YCbCr est utilisé dans les images
JPEG. Ce modèle
colorimétrique permet de réduire la taille d'une image. Cette réduction se base sur la
constatation suivante : l'œil humain est plus sensible à la luminance qu'à la chrominance. Par
conséquent, il est possible de dégrader la chrominance d'une image en maintenant sa bonne
qualité.
Ce format est plus utilisé pour réduire le stockage. La réduction de la largeur de la bande est
basée sur le fait que les composants Cr et Cb sont échantillonnés à un taux inférieur au taux
de Y.
Le format d'échantillonnage de YCbCr est 4: n: m. Le 4 représente le taux d'échantillonnage
de la composante Y dans la direction horizontale. Les deux numéros suivants représentent les
taux d'échantillonnage des composantes Cb et Cr.
Par exemple:
 L'échantillonnage 4:4:4 signifie que les composantes de chrominance et de luminance
de la composante ont la même résolution.
 L'échantillonnage du type 4:2:2 signifie que les composantes de chrominance sont la
moitié de la résolution horizontale de la composante de luminance.
 L'échantillonnage 4:2:0 signifie que les composantes de chrominance sont la moitié de
la résolution horizontale et verticale de la composante de luminance.
58
DSP DM 642 EVM
CHAPITRE 3
3.8.2 Le modèle RGB
Le modèle RVB est directement représentatif de ce que les yeux voient. Le modèle RGB
comporte trois volets qui requièrent un haut degré de résolution: le rouge, le vert et le bleu qui
sont combinés afin de donner vie à d'autres couleurs. Il est utile pour représenter des images
en couleur.
Concernant les représentations numériques, chaque pixel comprend trois numéros dans cet
ordre (rouge, vert, bleu). Il existe de nombreuses gammes pour représenter ce modèle: il peut
prendre des valeurs entre 0,0 et 1,0 ou bien de 0 à 255. Mais dans tous les cas, la valeur
minimale pour les trois composantes donne la couleur noire, et la valeur maximale pour les
trois composantes donne la couleur blanche.
On constate que le modèle RVB nécessite trois fois plus de données pour représenter des
images en couleur de chaque échantillon que l'espace monochrome (le dernier cas, faut juste
un seul numéro pour la luminance). Ainsi, il exige aussi trois fois plus de bande passante pour
la transmission. En outre, ce modèle ne fournit pas d'informations sur le niveau d'inte nsité de
chaque pixel.
3.8.3 Le modèle YUV
Le modèle YUV permet de réduire la bande passante, il est utilisé en télévision analogique
(SECAM, NTSC, PAL), et est compatible avec les récepteurs monochromes. Le principe de
ce modèle est de séparer la luminance de la couleur: le RVB est converti en une luminance (Y
ou «luma») et deux chrominance (U et V).
Y est une somme pondérée des trois composants R, G et B. U est proportionnel à B-Y, et V
est proportionnel à R-Y, ceci est représenté par les équations suivantes :
Y = 0.299*R + 0.587*G + 0.114*B
(3.24)
U = - 0.147*R - 0.289*G + 0.436*B
(3.25)
V = 0.615*R - 0.515*G - 0.1*B
(3.26)
3.9 Résolution vidéo
La taille et la qualité sont les caractéristiques principales de l'image. Pour avoir une image
d’une qualité meilleure il faut que le nombre de lignes du balayage soit grand. Il existe trois
standards principaux de la vidéo analogiques qui déterminent la résolution et le taux de
rafraîchissement de l'écran: PAL, NTSC et S ECAM.
59
DSP DM 642 EVM
CHAPITRE 3
 PAL (Phase Alternating Line) est le format le plus utilisé en Europe sauf en France. Il
utilise 625 lignes à 50 MHz, les premières 576 lignes sont réservées à l’image, les 49
lignes restantes sont utilisées pour le ‘vertical blanking interval’. Une vidéo PAL est
une séquence d'images à un débit de 25 images par seconde avec une résolution de
720 pixels par 576 lignes.
 NTSC (National Television Standard Commit) est un format utilisé au Japon et en
Amérique. Il utilise 525 lignes à 60 MHz; et consacre seulement 480 lignes à l'image.
Une vidéo NTSC est une séquence d'images à un débit de 30 images par seconde avec
une résolution de 720 pixels par 480 lignes.
 SECAM (Sequential Color Memory) est le format utilisé principalement par la France
et la Russie. Comme vidéo PAL, il utilise 625 lignes à 50 MHz avec seulement 576
lignes pour l'affichage.
Puisque le type de DSP qu’on a utilisé (DM642) est de type à virgule fixe, donc il
faut [DJ08]:
 Définir pour chaque donnée la position de la virgule, c’est à dire le nombre de bits
pour les parties fractionnaires et les parties entières.
 Maintenir la fonctionnalité de l’algorithme, c’est à dire : Respecter les règles de
l’arithmétique virgule fixe et garantir l’absence de débordement.
 Satisfaire la contrainte de précision.
 Optimiser l’implémentation de l’algorithme, c’est à dire : Minimiser le temps
d’exécution et la taille du code.
La figure (3.7) représente le processus de conversion d’un code écrit en virgule flottante en
un code écrit en virgule fixe
60
DSP DM 642 EVM
CHAPITRE 3
Figure 3.7: Processus de conversion en virgule fixe.
3.10 Conclusion
Dans ce chapitre, nous avons définis les applications temps réel qui reposent sur les
algorithmes de traitement de signal et vidéo, une telle application sera plus efficace, si elle est
implémentée sur des processeurs spécialisés.
Les processeurs de traitement numérique de signal (Digital Signal Processing, DSP) ont été
présentés en détail dans ce chapitre et plus spécialement, nous nous sommes intéressés à
l’étude du DSP DM642_EVM de la famille C6000 de Texas Instruments (TI) et qui est un
DSP à virgule fixe.
Nous avons déduit que pour une bonne optimisation du code dans la programmation sur le
DSP, il faut connaître l’architecture interne du type de DSP utilisé.
61
Implémentation de l’algorithme
CHAPITRE 4
Chapitre 4
Implémentation de l’algorithme
4.1 Introduction
Dans cette partie de travail, nous nous intéressons à l’implémentation de l’algorithme de
détection d’objets mobiles (le modèle de mixture de gaussiennes) sur le DSP DM642_EVM à
virgule fixe sur des séquences vidéo réelles prise dans des conditions différentes et dans
divers situations. Ces séquences vont nous permettre de découvrir le rôle de la détection pour
les systèmes de vidéo surveillance, et de présenter les différents problèmes rencontrés, afin
d’atteindre à des performances acceptables pour une application temps réel.
62
Implémentation de l’algorithme
CHAPITRE 4
4.2 La formulation du problème
Pour faire face à l'environnement extérieur complexe d’une scène, le modèle de mixture de
gaussiennes a été mis en œuvre sur la plate-forme DSP DM642 pour plusieurs raisons :
-
Bonne détection d’objets mobile
-
La possibilité de traiter des modèles de fond multimodaux.
-
La possibilité de le faire en temps réel.
4.3 Le système
Un aperçu du système principal est montré dans la figure 4.1
Capture
Caméra/ DVD
Affichage
Ecran
Conversion
Traitement
MOG
Conversion
Filtrage
Figure 4.1 : Système principal.
4.3.1 Capture/affichage et conversion d’une vidéo
Texas Instruments a fournit un mini pilote (FVID), permettant la configuration d’une vidéo en
traitant l'entrée et la sortie vidéo. La DMA (Direct Memory Access) permet de transférer des
données vidéo entre les buffers de capture de la vidéo (port FIFO) et la mémoire du DSP.
Voici
quelques
exemples
de
fonctions
donnés
par
le
pilote :
FVID_alloc (), FVID_exchange () et FVID_free ().
La capture et l’affichage peuvent fonctionner dans un certain nombre de modes. Le mode
d'intérêt dans notre projet est le mode composite PAL pour l’entrée et la sortie. Néanmoins
ce mode utilise des données dans l'espace couleur de format YUV 4:2:2 que nous devons
convertir en YUV 4 :2 :0 pour faire le traitement.
63
Implémentation de l’algorithme
CHAPITRE 4
4.3.2 Le traitement du modèle de mixture de gaussiennes
Dans ce modèle, la valeur de chaque pixel (scalaire en niveau de gris, vecteur dans le
système RGB ou HSV) dans le temps est considérée comme un ‘processus aléatoire de pixel,
et l’historique récente de chaque pixel { X 1,…, X t} est modélisé par une mixture de K
distributions gaussiennes. La probabilité d’observer la valeur du pixel courant devient :
K
P( X t )   wi ,t ( X t , i ,t ,  i ,t )
(4.1)
i 1
où wi, t est le poids estimé (la masse d’information modélisé par la distribution) pour la ieme
gaussienne (Gi, t ) dans la mixture à l’instant temps t,, i, t sont la moyenne et la covariance
de G i, t et  est le fonction de densité de probabilité associée au Gi,t :
 ( X t , ,  ) 
1
(2 )
n
2

1
2
e
1
 ( X t   )T
2
 1 ( X t  )
(4.2)
où   est le déterminant de la matrice de covariance de. La décision pour K dépend de la
mémoire disponible, et de la puissance du processeur utilisé, la matrice de covariance est
supposée de forme diagonale afin de réduire le temps de calcul, ainsi, à l’instant t on peut
écrire :

k ,t
  k2,t I
(4.3)
La forme définie en (4.3) suppose que les composants rouge, vert et bleu sont indépendants et
ayant la même variance. La procédure de détection est décrite comme suit : au début, les K
distributions gaussiennes sont initialisées avec une moyenne prédéfinie, une variance élevée
et une valeur faible pour les poids. Quand un pixel est obse rvé dans l’image de la séquence,
on vérifie la cohérence est vraie si la condition suivante est vérifiée :
( X t  i ,t )T  i ,t ( X t  i ,t )  2.5
1
(4.4)
La distance utilisée dans (4.4) s’appelle la distance de Mahanolabis.
Le poids de chaque distribution est mis à jour comme suit :
64
Implémentation de l’algorithme
CHAPITRE 4
wk ,t  (1   )wk ,t 1   (M k ,t )
(4.5)
où  est un coefficient de pondération, Mk,t est la matrice de cohérence de distribution k, elle a
pour 1 si la distribution est déclarée cohérente avec le pixel observé, sinon 0, Ensuite les poids
sont normalisés à 1 pour chaque pixel. Les paramètres de chaque gaussienne sont mis à jour
avec les équations suivantes :
t  (1   )t 1   X t
(4.6)
 t2  (1   ) t21   ( X t  t )T ( X t  t )
(4.7)
Ou    ( X t / t , t ) / wt
(4.8)
Les paramètres des distributions qui sont considérés non cohérents sont réinitialisés avec les
mêmes valeurs d’initialisation.
Finalement, pour segmenter l’image en objets mobiles et stationnaires, les distributions sont
triées par valeurs décroissants de w/ .cette liste triée nous permet de donner les distributions
les plus probables qui peuvent modéliser le fond stationnaire, car les objets stationnaires ont
modélisés par un mélange de gaussien ayant un poids élevé et une faible variance. Pour cette
raison les premières B distributions sont choisies pour modéliser le fond stationnaire ou :
b
B  arg min( wk  T )
b
(4.9)
k 1
Et T est un seuil choisi pour modéliser le fond. Le modèle dépend de la valeur de T. une faible
valeur correspond au cas uni modal et une valeur élevée correspond au cas multimodal.
4.3.3 Filtre
Élimination du bruit: quand un pixel unique d’avant plan (foreground) se trouve dans le
contexte, il sera enlevé. Sa valeur est changée pour une valeur de fond.
65
Implémentation de l’algorithme
CHAPITRE 4
4.4 Implémentation et Optimisation
4.4.1 Mesure de nombre de cycles
4.4.1.1 Le profile d'horloge
Le nombre de cycles du processeur est compté à l'aide du profile d'horloge. L'horloge doit être
d'abord activée sous l’option profile -> clock -> enable et peut être affichée à partir du profile
-> clock -> view. La fenêtre de l'horloge apparaît et le nombre de cycles est écrit sur le coté.
Si le nombre de cycles nécessite une remise à zéro, un simple double-clique sur la fenêtre
d'horloge remet automatiquement l'horloge à zéro.
Les cycles du CPU sont sélectionnés dans profile -> clock ->setup.
Cette analyse nécessite l’arrêt du processeur pour voir toutes les variables de la mémoire.
Cette technique ne remplace donc pas l'analyse en temps réel. L’analyse en temps réel est
nécessaire.
4.4.1.2 Le module STS
Certaines analyses peuvent être effectuées et suivies en temps réel, ceci en utilisant les
modules API fournis par le DSP / BIOS. Le module permettant de compter le nombre de
cycles le module STS; il fonctionne avec des objets appelés les accumulateurs statistiques.
Deux valeurs sont nécessaires pour compter le nombre de cycles: un début et une fin
d'horodatage, nommées STS_set () et STS_delta ().
STS_set () est placée au début du code, où le nombre de cycles doit être connus. Elle permet
l’enregistrement de la valeur de consigne.
STS_delta () est placée à la fin du code. Elle permet la mise à jour des
statistiques en soustrayant la valeur en un point à celle de l’ensemble des points.
Comme l'analyse est effectuée en temps réel pendant que le processeur est en cours
d'exécution, plusieurs statistiques sont fournies par l’objet STS: le compteur, le total et le
maximum.
Le compteur indique le nombre de valeurs cumulées, le total indique la somme des valeurs
accumulées par le compteur et le maximum indique la valeur maximale observée pendant le
traitement.
66
Implémentation de l’algorithme
CHAPITRE 4
4.4.1.3 Utilisations du module STS
Dans l'outil de configuration: un objet STS doit être créé, sous instrumentation ->STSStatistics Object Manage r .Puis, un nouvel objet peut être créé et nommé par exemple
mystsObj.
Dans le fichier C où le nombre de cycles d'une fonction est nécessaire, le programmeur inclut
quelques fichiers d'entête: sts.h et clk.h.
Les lignes correspondantes au code peuvent être généralisées comme suit :
#include <std.h>
#include <sts.h>
#include <clk.h>
…
extern far STS_Obj mystsObj;
Void MOG_apply( )
{
…
STS_set(&mystsObj,CLK_gethtime());
Code source
….
STS_delta(&mystsObj,CLK_gethtime());
}
Figure 4.2 : C de STS module.
4.4.1.4 Visualisation des statistiques
CLK_gethtime () est considérée comme une base pour la partie du code, donc la mesure des
statistiques de mystsObj est basée sur l’incrémentation du compteur du timer.
Le DSP / BIOS possède certaines caractéristiques qui permettent le calcul direct du nombre
de cycles. Dans les STS mystsObj objet du fichier de configuration, le type d'unité peut être
modifié par « High resolution time based » la propriété d'opération d'hôte va changer
automatiquement à A * X, dont A correspond à 8 (voir figure 4.3). Cela signifie que
les statistiques sont multipliées par 8, et les incréments du timer sont directement convertis en
67
Implémentation de l’algorithme
CHAPITRE 4
cycles CPU. Dans la page des propriétés de la fenêtre d’affichage, les unités des statistiques
peuvent être affichées en nombre d'instructions ou en deuxième ou en microsecondes.
Figure 4.3 : Propriétés d’objet STS.
Les unités en microseconde donnent une idée sur la vitesse d’exécution dans la partie code, le
nombre d’instructions demeure plus précis. En effet, il est parfois difficile de constater la
différence avec le temps comme unité lorsque l'amélioration est très insignifiante.
Mais avant le timing du morceau intéressant du code, l’entête d’appelle
des fonctions
STS_set () et STS_delta () doit être déterminée. En effet, ces fonctions d’appel deviennent des
entêtes lorsqu’elles se trouvent définies dans un fichier sans lignes de code les séparant.
Pour déterminer précisément le nombre de cycles d'instructions d'un code, ces entêtes
doivent être enlevées; les propriétés du STS mystsObj objet do ivent être modifiées: dans
l’opération d'hôte, l'équation (A * X + B) doit être sélectionnée, où A = 8 et B =- 117. B
correspondent à l’entête à soustraire (dans les unités des cycles des instructions).
68
Implémentation de l’algorithme
CHAPITRE 4
Figure 4.4 : Paramètres pour enlever les entêtes des fonctions d’appels.
La méthode la plus facile pour optimiser un code est d’utiliser le compilateur du DM642, en
spécifiant l’option d’optimisation dans les commandes de compilateur. Cela se fait, en
indiquant le niveau d’optimisations (0, 1, 2 ou 3), qui contrôle le type et le degré
d’optimisation.
a. Le niveau zéro d’optimisation (-o0)
En choisissant ce niveau d’optimisation le compilateur effectue les opérations suivantes lors
de la compilation :
- Eliminer le code non utilisé.
- Simplifier les expressions et les déclarations.
- Stocker les variables dans des registres.
- Augmenter les performances des branchements.
b. Le niveau un d’optimisation (-o1)
Dans ce niveau d’optimisation le compilateur effectue toutes les opérations du niveau zéro
plus les opérations suivantes :
- Eliminer les taches inutiles.
- Eliminer les expressions communes.
69
Implémentation de l’algorithme
CHAPITRE 4
c. le niveau deux d’optimisation (-o2)
Dans ce niveau le compilateur effectue toutes les opératio ns des niveaux précédents plus les
opérations de compilation suivantes :
-
Utilisation du software pipelining.
-
Optimisation des branchements.
-
Conversion des vecteurs en des pointeurs lors du branchement.
-
Utilisation des branchements dérouler.
Le compilateur utilise l’option –o2 par défaut, si l’utilisateur ne précise pas le niveau
d’optimisation.
d. Le niveau trois d’optimisation (-o3)
Effectue toutes les opérations des niveaux précédentes, et les opérations suivantes :
-
Eliminer toutes les fonctions qui ne sont jamais appelées ;
-
Simplifier les fonctions en éliminant les variables qui ne sont jamais utilisées.
L’indication du niveau d’optimisation (0, 1, 2 ou 3), qui contrôle le type et le degré est
une chose très facile mais importante dans l’optimisation du code.
4.5 Résultats de l’implémentation
Dans cette partie de travail, nous allons implémenter en flottant et en fixe, l’algorithme de
mixture de gaussiennes. Cette implémentation sera discutée. La procédure d’implémentation
sera aussi expliquée et présentée en détail.
Par ailleurs, les avantages d’une telle implémentation
seront illustrés par le temps
d’exécution et le nombre de cycles.
Le tableau ci-dessous représente le nombre de cycle de l’implémentation de l’algorithme de
mixture de gaussiennes en virgule flottant.
Tableau 4.1. Nombre de cycles de l’implémentation du modèle de mixture de
gaussiennes sur le DM642 en virgule flottante.
70
Implémentation de l’algorithme
CHAPITRE 4
Le nombre d’image par seconde de l’implémentation de l’algorithme de mixture de
gaussiennes en virgule flottant est de 14 images par seconde.
4.5.1Résultat de détection
(a)
(b)
Figure 4.5 : Détection de la mixture de gaussiennes implé menté sur DM642 en virgule
flottante.
(a) les images originales, (b) les résultats de détection.
Malgré la bonne détection de la personne mobile, on remarque une énorme présence du bruit.
Remarque : d’après les résultats trouvés de l’implémentation de l’algorithme de mixture de
gaussiennes, on constate la présence de deux inconvénients :
1- L’absence de la notion temps réel (14 images par sec).
2- L’énorme présence du bruit dans la détection.
Pour remédier à ces deux problèmes, on a procéder à deux types d’optimisation:
1ère optimisation : Implémenté l’algorithme en virgule fixe, pour avoir une exécution en temps
réel.
2ème optimisation : Faire un filtrage pour éliminer le bruit dans la détection.
Il y a d’autres type d’optimisation qu’il faut être pris en consideration.
71
Implémentation de l’algorithme
CHAPITRE 4
4.6 Optimisation de l’implémentation
4.6.1 RTOS optimisations
Puisqu’un algorithme d’un tel logiciel fonctionne souvent au-dessus des systèmes
d'exploitation embarqués en temps réel, il est aussi nécessaire d'optimiser leurs performances.
Quelques points négligeables sont les suivants:
* Dispositifs inutilisés tels que les pilotes de matériel non utilisé, les interruptions
routinières de tache vides représentent un gros handicape.
* Le temps entre le changement de tâche devrait être optimisé selon le nombre de
tâches dans le système. Dans ce projet il ya seulement deux tâches, l'une avec le code
du programme principal et l’autre avec le pilote vidéo.
* Les tailles des buffers devraient être optimisées. Si un tampon est trop grand, il est
inutile sur la mémoire, s’il est trop petit les données peuvent être perdues.
4.6.2 Les registres
Le registre peut être placé avant la variable locale pour que le compilateur puisse la mettre
dans un registre et non pas dans la pile du programme.
Lorsque la variable locale est placée dans le registre, le code peut y accéder rapidement. Ce
registre a été utilisé à plusieurs reprises dans les fichiers source C.
4.6.3 Le système de mémoire
La
configuration
du
niveau
L2
doit
être
optimale:
une
partie
de
la
mémoire interne sera considéré comme RAM, et l’autre partie sera gardée comme cache.
Si tout le niveau L2 cache est utilisé comme mémoire cache, aucun code ou programme ne
peut être écrit dans la mémoire interne, ce qui implique que le code, le programme et les
données seront placées dans la mémoire externe. Cette configuration est entièrement contrôlée
par le matériel. Toutes les fonctions sont transférées dans la mémoire interne avant d'être
exécutées par le CPU.
Lorsque l’unité centrale de traitement demande des données, celles-ci serons placées dans la
L2 ou à la cache L1 par le contrôleur de cache [TIO05], et se rendent ensuite à la mémoire
externe. Donc, si une partie du cache L2 est utilisée comme mémoire RAM, elle permettra à
quelques codes et/ou données d’être directement stockés. Cette configuration, où le L2 cache
est divisé en mémoire vive et mémoire cache, perme t au programmeur d'avoir plus de
contrôle et d’efficacité au niveau du système.
72
Implémentation de l’algorithme
CHAPITRE 4
Cependant, la mémoire interne a une capacité limitée, donc seulement une partie des données
pourra y être chargée. Certaines données seront placées directement dans la RAM, le reste,
sera dans la mémoire externe.
Si nous analysons les accès aux mémoires pour une image de l'algorithme, nous constatons
que la partie cache sera constamment surchargée:
-
Le code du programme est chargé dans la mémoire cache.
-
Ce code condense des données dans la mémoire cache au moment où il l’utilise. Cela
implique de charger plus de données que la taille de la mémoire interne ne peut en
supporter, donc dans le processus le contrôleur de cache éliminera d'abord tout ce qui
a été chargé précédemment, tels que les premiers blocs de données et le code du
programme.
-
Après traitement, le résultat de la sortie doit être nettoyé (filtré). Donc, la prochaine
tache traite l’image suivante dans la mémoire cache affiche en parallèle l’image
précédente.
Essentiellement, le contrôleur de cache a pour tache d’éliminer quelques données ainsi que le
code de la mémoire interne que nous avons traité, et de les recharger à chaque nouvelle
image.
Une meilleure exécution serait de déplacer au moins les parties critiques du programme et du
DSP/BIOS (RTOS) dans la mémoire interne de manière permanente et puis, d'une manière
contrôlée, s'assurer que les données et le résultat (de sortie) sont également disponibles dans
cette mémoire interne selon les besoins. Par conséquent, le code de l’algorithme et les
données dont il aura besoin se situeront dans la mémoire interne.
Une petite partie de la mémoire externe est maintenue en tant que cache L2 pour aider à
accélérer les sections du programme que l'on utilise rarement et va do nc rester dans la
mémoire externe.
Le bloc de données dans la mémoire interne est divisé en sections afin de conserver les
données d'entrée, les données du modèle (MOG) ainsi que les données de sortie.
On utilise un système de trois buffers dans lequel des nouvelles données sont chargées dans le
premier buffer, alors que l'algorithme traite ce qui est dans le deuxième et les données
73
Implémentation de l’algorithme
CHAPITRE 4
contenues dans le troisième sont déjà traitées et elles seront écrites de nouveau dans la
mémoire centrale à partir du troisième. Ce mécanisme est facile à mettre en œuvre à la fin du
traitement et les accès aux mémoires de chaque bloc, et les pointeurs sont tout simplement
permutés autour, à chaque bloc.
La figure suivante présente la conception entière du système mémoire, y co mpris les trois
buffers dans la mémoire interne.
Le choix de la quantité de données à charger dans un bloc de traitement est arbitraire, mais
devrait utiliser en principe, autant d'espace de mémoire interne que possible. Pour notre
application, nous avons chargé 2 lignes de l’image d'entrée, 2 lignes de données du modèle et
2 lignes du résultat.
Nous allons maintenant considérer la façon de transférer des données entre les blocs de
mémoire. Pour ce faire, une unité EDMA est disponible. L'EDMA peut déplacer des données
entre les sections de la mémoire beaucoup plus rapidement que le CPU serait capable de
charger et / ou stocker les données elle- même. Une des considérations de conception réalisées
à ce stade est que l'interface entre la mémoire interne et externe ne doit pas être touchée par le
processeur lui- même, c'est à dire tous les transferts doivent être effectués par l'unité EDMA.
74
Implémentation de l’algorithme
CHAPITRE 4
Figure 4.6 : Système de la mémoire
4.7 La mise à l’échelle des paramètres du modèle
Le DM642 contient 64 registres, chaque registre est de taille 32 bits, pour cela la
représentation en virgule fixe peut causer des Underflow et des Overflow, pour remédier à ce
problème, on doit faire une mise à l’échelle de chaque paramètre pour ne plus dépasser la
valeur maximale et ne plus tomber sous la valeur minimale.
Pour cela on suit la procédure suivante :
Soit xmax la valeur maximale du variable x , et x sa précision correspondante. Le nombre de
bits M , nécessaire pour représenter xmax doit être log 2 (xmax )  M , le nombre de bits
nécessaire pour représenter la précision doit satisfaire à la condition : 2  N  x .
Pour un DSP 16 bits, on a M  N  15 avec un bit réservé au signe.
La gamme dynamique du système est : xmax /x  215  32768 .
75
Implémentation de l’algorithme
CHAPITRE 4
4.8 Latence des opé rations princ ipales e n fixe et e n flottant
La d urée d ’e xéc ut io n de c haq ue ins tr uct io n = un cycle
Ma is
Le ré s ult at es t re tardé de pl us ie urs cycle s
Alor s
Le te mps d’ e xéc ut io n d’ une inst r uct io n ( Late nc y) = un cycle + le re ta rd
Le tableau (4.2) représente les Late nce s des opérat io ns pr inc ipa les e n fixe e t e n flottant :
Opé ration
Latence
Branchement
06 cycles
Sauvegarde/Chargement
05 cycles
Multiplication fixe
02 cycles
Multiplication flottante
04 cycles
Addition fixe
01 cycle
Addition flottante
04 cycles
Décalage (fixe)
01 cycle
Tableau 4.2 : Latence des opérations en fixe et en flottant.
Dans les méthodes d’optimisation qui sont
précédées, nous n’avons pas exploité les
spécificités de l’architecture du DM642. Les principales et les plus répandues méthodes
d’optimisation qui reposent sur l’architecture VLIW (Very Long Instruction Word) des DSP
de la famille C6000 sont : le parallélisme des opérations qui sont indépendantes et l’utilisation
du pipeline logiciel. Ces deux méthodes sont en général appliquées ensemble, il y a aussi se
qu’on appel le traitement des données par paquet, ce type d’optimisation permet de réduire le
nombre d’accès mémoire en accédant à un nombre plus grand d’opérandes en même temps. Si
par exemple, on traite des données codées par 8 bits, alors on peut lire huit opérandes par un
accès mémoire au lieu d’accéder à la mémoire huit fois pour les lire ou les sauvegarder.
76
Implémentation de l’algorithme
CHAPITRE 4
Le tableau ci-dessous représente le nombre de cycle de l’implémentation de l’algorithme de
mixture de gaussiennes en virgule fixe.
Tableau 4.3. Nombre de cycles de l’implémentation du modèle de mixture de
gaussiennes sur le DM642 en virgule fixe.
Le nombre d’image par seconde de l’implémentation de l’algorithme de mixture de
gaussiennes en virgule fixe est de 25 images par seconde.
Résultat de détection
(a)
(b)
Figure 4.7 : Détection de la mixture de gaussiennes implé menté sur DM642 en virgule
flottante.
(a) les images originales, (b) les résultats de détection.
Pour montrer la différence en termes de rapidité en temps d’exécution (la notion temps réel)
de l’implémentation de l’algorithme de mixture de gaussiennes, et discuter les avantages de
l’optimisation faite (codage en virgule fixe), on a comparé les nombres de cycle trouvés après
chaque implémentation (flottante /fixe).
77
Implémentation de l’algorithme
CHAPITRE 4
-Un tableau Comparatif entre le flottant et le fixe en termes de nombre de cycle.
Implémentation en virgule
Le modèle de mixture de
Implémentation en virgule
flottante sur le DSP DM642 flottante sur le DSP DM642
gaussiennes
Nombre de cycles
45875 cycles
35499 cycles
Tableau 4.4 : Nombre de cycles de plusieurs types d’implémentation de mixture de
gaussiennes sur le DM642.
-Un histogramme Comparatif entre le flottant et le fixe en termes de nombre de cycle.
50000
40000
30000
20000
Nombre de cycles
10000
0
Implémentation Implémentation
virgule flottante virgule fixe
Figure 4.8 : Histogramme comparatif entre les nombres de cycles des différents types
d’implé mentation de mixture de gaussiennes sur le DM642.
78
Implémentation de l’algorithme
CHAPITRE 4
-Un tableau Comparatif entre le flottant et le fixe en termes de nombre d’image par
seconde.
Implémentation en virgule
Le modèle de mixture de
Implémentation en virgule
flottante sur le DSP DM642 flottante sur le DSP DM642
gaussiennes
Nombre d’images par
25images /sec
25images/sec
14 images /sec
25images/sec
seconde pour l’acquisition
Nombre d’images par
seconde pour le traitement
Tableau 4.5 : Nombre d’image pe r seconde de plusieurs types d’implé mentation de
mixture de gaussiennes sur le DM642.
- Un histogramme Comparatif entre le flottant et le fixe en termes de
nombre d’image par seconde.
25
20
Nombre d'image par
seconde pour
l'acquisition
15
10
Nombred'image par
seconde pour le
traitement
5
0
Implémentation
virgule flottante
Implémentation
virgule fixe
Figure 4.9 : Histogramme comparatif entre les nombres d’images par seconde des
différents types d’implémentation de mixture de gaussiennes sur le DM642.
79
Implémentation de l’algorithme
CHAPITRE 4
On peut expliquer les résultats obtenus (tableaux 4.4 et 4.5) par:
 Quand le type de l’implémentation n’est pas compatible avec le type du DSP choisi
(flottant ou fixe), cela engendre une mauvaise performance du DSP, et risque de
retarder l’exécution au lieu de l’accélérer.
 Par contre un bon choix conduit à une haute performance du DSP sur tout avec
l’optimisation du code, ce qui conduit à une exécution très rapide.
 Les avantages de l’implémentation en virgule fixe sur un DSP à virgule fixe, les
Latences des opérations en fixe sont beaucoup diminué par rapport à celui en flottant,
comme l’indique le tableau (4.2).
4.9 Conclusion
Le DSP est une architecture clé très utilisée dans les systèmes embarqués qui doivent
satisfaire à des contraintes temps réel dures.
Le but de ce travail est d’implémenter en virgule fixe l’algorithme de détection d’objets
mobiles (modèle de mixture de gaussiennes) sur un DSP à virgule fixe et
montrer les
avantages de la compatibilité du type de l’implémentation avec le type du DSP.
Plusieurs techniques d’optimisation ont été étudiées et appliquées afin de réduire le nombre de
cycles de différentes opérations sur le DSP DM642.
80
Références
Références
[HBCP03] Hampapur, A., Brown, L., Connell, J., Pankanti, S., Senior, A., Tian, Y. “Smart
Surveillance: Applications, Technologies and Implications” In 2003 Joint Conference of the
Fourth International Conference on Information, Communications & Signal Processing and
Fourth Pacific-Rim Conference on Multimedia, pp. 1133- 1138, vol.2. New York, État-Unis,
December 15-18, 2003.
[SMC05] Sedky, M.H., Moniri, M., Chibelushi, C.C. “Classification of Smart Video
Surveillance systems for Commercial Applications”. IEEE Conference on Advanced Video
and Signal Based Surveillance, Septembre 15-16, 2005. pp. 638-648.
[XZPM08] Xiao, Z., Poursoltan mohammadi , A., Sorell, M. “Video motion detection beyond
reasonable doubt”,In Proceedings of the 1st international conference on Forensic
applications and techniques in telecommunications, information, and multimedia and
workshop, article no 6, Adelaide, Australie, January 21-23, 2008.
[HTP09] http://www.axis.com/products/video/about_networkvideo/iv/benefits.fr.htm
[VGF09] V.Gouaillier “La vidéosurveillance intelligente” Rapport de veille technologique et
commercial, mars2009.
[MOD03] Moellman, D. "VACE Program ManagerVideo Analysis and Content Extraction
(VACE) R&D Program: Overview of Phase 2. Novembre 2003.
[MORA79] MORAVEC, H. 1979. Visual mapping by a robot rover. In Proceedings of the
International Joint Conference on Artificial Intelligence (IJCAI). 598–600.
[HCST88] HARRIS, C. AND STEPHENS, M. 1988. A combined corner and edge detector.
In 4th Alvey Vision Conference.[147–151].
82
Références
[JAIN79] JAIN, R. AND NAGEL, H. 1979. On the analysis of accumulative difference
pictures from image sequences of real world scenes. IEEE Trans. Patt. Analy. Mach. Intell. 1,
2, 206–214.
[WREN97] WREN, C., AZARBAYEJANI, A., AND PENTLAND, A. 1997. Pfinder: Realtime tracking of the human body. IEEE,Trans. Patt. Analy. Mach. Intell. 19, 7, 780–785.
[MOR79] MORAVEC, H. 1979. Visual mapping by a robot rover. In Proceedings of the
International Joint Conference on Artificial Intelligence (IJCAI). 598–600.
[HARR88] HARRIS, C. AND STEPHENS, M. 1988. A combined corner and edge detector.
In 4th Alvey Vision Conference.[147–151.
[SHI94] SHI, J. AND TOMASI, C. 1994. Good features to track. In IEEE Conference on
Computer Vision and Pattern Recognition (CVPR). 593–600.
[LOW04]LOWE, D. 2004. Distinctive image features from scale- invariant key points. Int. J.
Comput. Vision 60, 2,91–110.
[FMF04] Franck. Luthon, Xavier Navarro, Marc Liévin. Seuillage entropique en traitement
d’images. Laboratoire d‟informatique de l‟université de Pau et de Pays de l‟Adour
[STGRI99] C. Stauffer and W. E. L. Grimson. Adaptive background mixture models for
realtime tracking. In Proceedings of the IEEE Computer Science Conference on Computer
Vision and Pattern Recognition (CVPR-99), pages 246–252. IEEE, 1999.
[DEM77] A. P. Dempster, N. M. Laird, and D. B. Rubin. Maximum likelihood from
incomplete data via the EM algorithm. Journal of the Royal Statistical Society. Series
B(Methodological), 39(1):1–38, 1977.
[BIL98] Bilmes. A Jeff A. gentle tutorial of the EM algorithm and its application to parameter
estimation for Gaussian mixture and hidden Markov models. Technical Report TR-97-021,
Department of Electrical Engineering and Computer Science U.C. Berkeley, April 1998.
83
Références
[CHBI95] Christopher M. Bishop. Neural Networks for Pattern Recognition. Oxford
University Press Inc., New York, 1995. ISBN 0-19-853864-2.
[WAY02] Wayne P. Power and Johann A. Schoonees. Understanding background mixture
models for foreground segmentation. In Proceedings Image and Vision Computing New
Zealand, 2002.
[SD01] E. Sicard, S. Delmas, „Introduction aux DSP, Bulletin de l'Union des Physiciens‟, juin
2001 Vol 90.
[Lyn98] P. A. Lynn, “Introductory Digital Signal Processing”. A Wiley Interscience
publication‟, 1998.
[SPRU198] Texas Instruments (2006), “TMS320C6000 Programmers Guide”, chapter 3, Lit.
Ref.: SPRU198I.
[NASS05] Nasser Kehtarnavaz, “Real-Time Digital Signal Processing Based on the
TMS320C6000”, 2005, chapter 3: pp. 31-46.
[SPRU6157] Texas Instruments (2002), „TMS320C6000 Technical Overview‟, Lit. Ref.:
SPRU615.
[OP6000] Texas Instruments (2005), “TMS320C6000 Optimization Workshop – Student
Guide”, chapter 15, Lit. Ref.: OP6000 Student Notes.
[TIP05] Texas Instruments (2005), “TMS320C6000 Optimization Workshop – Internal
Memory and cache”, chapter 15, power point, slide 68.
[TIO05] Texas Instruments (2005), “TMS320C6000 Optimization Workshop”, chapter 15,
p716-718
84
Implémentation s ur DM642_EVM de l’algorithme de mixture de gaussiennes appliquée
à la vidéosurveillance
Résumé :
La vidéosurveillance est au croisement de différentes disciplines et fait appel à de
nombreuses techniques dont il est nécessaire d'avoir une connaissance globale.
Indispensable à toute personne impliquée dans la conception ou la mise en œuvre d'un
système de vidéosurveillance (responsables sécurité des entreprises et des collectivités
locales, bureaux d'études et cabinets d'architectes, ingénieurs et techniciens en électronique,
distributeurs d'équipements), cette thèse dresse un large panorama des aspects technologiques
et pratiques de la vidéosurveillance et des connaissances nécessaires à leur compréhension
afin d’entrer dans un cadre nommé la vidéo surveillance intelligente , parmi les techniques
qu’on a pu développer : la détection des individus mobile dans une scène dynamique acquise
par une caméra fixe avec une variété des méthodes comme ; la différence temporelle
adaptative du fond, différence par un seuillage entropique et le modèle de mixture de
gaussiennes….etc.
Pour rendre ce système de surveillance visuel en temps réel, On a choisit le processeur
de traitement de signal de type DM 642 _ EVM comme une clé nodale afin de l’exploiter pour
implémenter l’algorithme de mixture de gaussiennes.
Téléchargement