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 Bn1 ( 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) yDy 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 | kti1 ) (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 ) kDK 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 bN1 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 , b1b2 ...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 , b1b2 ...b k (3.12) 46 DSP DM 642 EVM CHAPITRE 3 Elle correspond au nombre fractionnaire : z bN 1k 2N 1k bN 2k 2N 2k ...b0 b1 21 ... bk 2k (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 1k 2 k (3.14) min 2 N 1k (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 1k et 2 N 1k 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 me (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 : e1 1 (2e1 1) , (1 21m )2(2 1) 2 2 1 m (2 Overflow si : x (1 2 )2 Underflow si : x (3.21) e1 1) 1 (2 e1 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 ) t21 ( 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.