Vous êtes sur la page 1sur 37

Projet transverse Groupe 100

Conception dun systme de vidosurveillance intelligente pour lIMT

Sbastien ANGOT Godefroy BRISEBARRE Charlotte CADORET Marc NAVATIER David NICOLET-DIT-FELIX Damien PINEAU
1 Conception dun systme de vidosurveillance pour lIMT

Remerciements

Remerciements

Nous tenons tout d'abord remercier M. Ali Khalighi, notre tuteur de Projet Transverse, qui nous a accompagn pendant toute la dure de notre travail. Grce ses conseils, aussi bien en matire de gestion de projet que sur les domaines techniques abords, nous avons pu avancer efficacement sur le projet. Il a galement su nous soutenir lors des diffrentes phases du projet.

Nous souhaitons galement remercier M. Pag et toute l'quipe du CRI pour leur disponibilit et leur aide prcieuse.

Nous remercions galement deux personnes de l'entreprise MatrixVision, M. Hanu pour le support technique qu'il nous a fourni ainsi que M. Bonmart pour nous avoir propos une offre de camra dans nos moyens financiers.

Enfin, nous adressons nos sincres remerciements M. Derrode, notre client, pour l'intrt qu'il nous a port lors de ce projet et la confiance qu'il nous a accorde pour le raliser.

2 Conception dun systme de vidosurveillance pour lIMT

SOMMAIRE

Remerciements.............................................................................................................2 Sommaire......................................................................................................................3 Table des Figures.........................................................................................................4 Introduction.................................................................................................................5 IPrsentation du sujet....................................................................................6 I.1- Contexte global du projet............................................................................ 6 I.2- Interprtation de la problmatique................................................................6 I.3- Objectifs du projet.......................................................................................7 II- Organisation du projet....................................................................................8 II.1- Synthse des outils de gestion de projet........................................................8 II.2- laboration du GANTT.............................................................................10 II.3- Organisation de l'quipe projet...................................................................12 II.4- Fonctionnement durant le projet.................................................................13 II.5-Budget..........................................................................................................13 III- tude prliminaire de l'organisation globale de la vidosurveillance...15 III.1- Plan de localisation des camras.................................................................15 III.2- Aspects juridiques de la vido surveillance.................................................16
III.3- Deux solutions possibles : le traitement centralis ou le traitement embarqu des images ..........................................................................................................16

Prsentation de la solution retenue et prise en main du matriel..........18 IV.1- Solution utilisant le traitement d'images embarqu......................................18 IV.2- Prise en main de la camra MV-BlueLynx (MatrixVision)...........................18 VRalisation du programme de traitement d'images................................22 V.1- Algorithme retenu......................................................................................22 V.2- Programmation du programme en langage C...............................................22 V.3- Prototypage sous MATLAB.......................................................................24 V.4- Tests et prsentation des rsultats obtenus...................................................25 V.5- Limites de notre programme.......................................................................30 VI- Perspectives damliorations.....................................................................31 Conclusion..................................................................................................................32 Bibliographie..............................................................................................................33 Annexes.......................................................................................................................34

IV-

3 Conception dun systme de vidosurveillance pour lIMT

Table des Figures


Figure 1 : Tableau QQOQCP ......................................................................................................... 6 Figure 2 : Diagramme FAST du systme. ............................................................................................ 8 Figure 3 : Diagrammes GANTT ........................................................................................................ 11 Figure 4 : Prix total de 25 camras .................................................................................................... 14 Figure 5 : Plan de lIMT Emplacements des camras .................................................................... 15 Figure 6 : La camra MV BlueLynx, installe dans une salle de lEquerre....................................... 18 Figure 7 : Confirmation de connexion la camra IP ....................................................................... 19 Figure 8 : Le rpertoire contenant les programmes test, flash/mvstest .............................................. 20 Figure 9 : Excution du programme test mvserver_new ................................................................... 20 Figure 10 : Certaines des librairies que contient la camra. .............................................................. 21 Figure 11 : Traitement dimage - rosion ........................................................................................... 23 Figure 12 : Traitement dimage - dilatation ....................................................................................... 23 Figure 13 : Traitement dimage rosion puis dilatation .................................................................. 23 Figure 14 : Image de rfrence .......................................................................................................... 25 Figure 15 : Image traiter .................................................................................................................. 25 Figure 16 : Image aprs seuillage ...................................................................................................... 26 Figure 17 : Image aprs seuillage et rosion ...................................................................................... 26 Figure 18 : Image aprs seuillage, rosion et dilatation..................................................................... 27 Figure 19 : Dtection et mise en valeur de mouvement ..................................................................... 28 Figure 20 : Courbes de diffrences entre images (bloc par bloc) ...................................................... 29 Figure 21 : Rglage du seuil de dtection .......................................................................................... 29

4 Conception dun systme de vidosurveillance pour lIMT

Introduction

Dans le cadre des Projets Transverses, nous avons choisi de nous intresser au traitement dimage appliqu la vidosurveillance. La surveillance, qui tait autrefois accomplie uniquement par des agents de scurit, a vu arriver la technologie comme une rvolution. Alarmes, vidosurveillance permettent aux agents dtre plus efficaces car ils visualisent directement de leur poste de scurit tous les points cl des locaux surveiller. Pourtant lhomme reste imparfait. En effet, qui pourrait rester devant des crans de surveillance sans aucune faille ? Cest impossible. Cest l quapparat la vidosurveillance intelligente, elle permet daider les agents dans leur travail. Le programme peut dtecter une intrusion tout moment et en avertir lagent qui prendra les mesures ncessaires. La surveillance en est rendue bien plus efficace et moins contraignante pour les agents. Dans notre projet transverse, nous nous sommes penchs sur la conception dun systme de vidosurveillance intelligente pour lIMT (Institut Mditerranen de Technologie dont fait partie lEcole Centrale Marseille). Nous avons d valuer les besoins du site en termes de nombre de camras et demplacements de celles-ci. Ensuite, nous avons cr un programme de traitement dimage visant dtecter une anomalie et en informer lagent de surveillance. Notre systme de vidosurveillance assurera une meilleure efficacit que le systme actuel et un plus grand confort pour les agents de surveillance.

5 Conception dun systme de vidosurveillance pour lIMT

I-

Prsentation du sujet I.1- Contexte global du projet

L'cole Centrale Marseille est situe sur le technople de Chteau-Gombert. Cette cole dingnieurs est galement un centre de recherche de haut niveau, par consquent, elle possde dans ses locaux du matriel de haute technologie et donc trs onreux. Il existe galement toute une aile de lcole ddie aux ressources informatiques, qui pourrait faire lobjet de convoitise : il y a de nombreux ordinateurs. De plus, le campus est un espace grand et ouvert sur lespace public. Toute personne peut entrer lintrieur du campus pied sans aucun contrle. Il est donc ncessaire dquiper ltablissement dun systme de vidosurveillance efficace pour prserver les personnes appartenant ltablissement ainsi que les locaux.

I.2-

Interprtation de la problmatique

La problmatique de ce projet est de concevoir un systme de vidosurveillance intelligente pour surveiller les locaux de lIMT (Institut Mditerranen de Technologie). Pour mieux comprendre les enjeux de ce projet, nous avons ralis un schma QQOQCP donn ci-dessous.

Figure 1 : Tableau QQOQCP 6 Conception dun systme de vidosurveillance pour lIMT

Dans un premier temps, nous allons donc choisir le systme de camras utiliser pour le projet, le nombre de camras ainsi que leurs positions. Ensuite, il sagira de concevoir un programme de traitement des images visant reconnatre une situation anormale (intrusion) et avertir les agents de scurit.

I.3-

Objectifs du projet

Aprs une documentation gnrale sur le sujet de la vidosurveillance intelligente, et notamment la dtection de scne dintrusion, nous nous sommes rendu compte quil serait probablement difficile dans le temps qui nous est imparti de faire un catalogue des scnes possibles et de les intgrer au programme de dtection. Cette partie relve dun travail de sociologie. Nous allons donc, en premier lieu, nous concentrer sur le choix du systme de camras utiliser pour le projet de vidosurveillance de lIMT en se basant notamment sur le retour dexprience des agents de scurit du site. Ensuite, nous devrons explorer les diffrents traitements dimages connus pour la dtection des mouvements. Enfin, nous nous appliquerons concevoir un programme de traitement dimages dans le but deffectuer cette dtection de mouvement sur des flux vido.

7 Conception dun systme de vidosurveillance pour lIMT

II-

Organisation du projet II.1- Synthse des outils de gestion de projet

Pour cerner la problmatique du projet, nous avons dabord labor un schma QQOQCP. Cela nous a aid comprendre les enjeux de cette problmatique, tant sur les points techniques traiter que les utilisateurs du systme. (Le QQOQCP est donn ci-dessus dans la partie Interprtation de la problmatique) Pour dfinir toutes les fonctions constructives de notre systme de vidosurveillance intelligente partir des fonctions de service que doit produire le systme, nous avons rdig un diagramme FAST (Functional Analysis System Technic) prsent ci-dessous.

Figure 2 : Diagramme FAST du systme. Lgende : FS : Fonction de service FT : Fonction technique

Dtail des fonctions techniques Choix des solutions techniques


8 Conception dun systme de vidosurveillance pour lIMT

FS1 : Dtecter lanomalie FT11 : Acqurir les images On a besoin dune frquence dacquisition suprieure 5 Hz, mais pas ncessairement datteindre une valeur trs leve. On a besoin dune certaine rsolution dimage : le standard VGA (640x480) suffit. On na pas besoin dune image en couleur. FT12 : Traiter les images On a besoin dun systme informatique et doutils programmables de traitement du signal. Un logiciel de traitement comme MATLAB pourrait suffire, mais transmettre sans perte les donnes venant de 25 camras rendrait la fonction FT13 irralisable par le rseau informatique de lcole, qui est la seule solution technique utilisable pour nous. On doit donc raliser le traitement dimage avant ltape de transmission (cest pourquoi le traitement est en FT12 et pas FT13). On utilise donc un module de traitement implant directement au niveau de la camra. FT13 : Centraliser linformation On doit pouvoir vhiculer des informations, mais nous ne sommes pas en mesure de mettre en place un rseau de cbles cet effet. On lui prfrera le rseau Internet de lcole. On doit donc pouvoir reprer les camras par adresse IP. On dcide donc de choisir, pour remplir la fonction de service FS1, une camra reprable par IP, quipe dun module de traitement dimage interne et de connectique de mise en rseau (Ethernet), capable dacqurir un flux vido noir et blanc VGA : le modle retenu compte tenu des prix et de lutilisation faite pour raliser un prototype sera BlueLYNX 400 GX du constructeur MatrixVision. FS2 : Avertir lagent FT21 : Signaler lanomalie Lalerte doit tre au moins sonore, cest la seule restriction. On peut donc utiliser nimporte quel systme dalerte. FT22 : Afficher les images On doit pouvoir amener les images non compresses par rseau dans le local de scurit. Il faut y trouver un ordinateur reli au rseau de lcole, ce qui existe peut-tre dj, mais nest pas difficile mettre en place. La ralisation de la Fonction de Service 2 nimpliquera que des modifications superficielles de linstallation du local de scurit. Il faudra consulter les agents.

Ces deux outils de gestion de projet nous ont permis de diviser le projet en plusieurs phases. Ce travail reprsente le socle ncessaire llaboration du GANTT.

9 Conception dun systme de vidosurveillance pour lIMT

II.2- Elaboration du GANTT

Le diagramme GANTT est un outil de gestion de projet qui permet de visualiser dans le temps les diffrentes tches du projet. Cela permet de planifier le projet et par consquent, de donner une dynamique au projet. Pour reprsenter ce GANTT, nous avons utilis le logiciel GANTT Project.

1re phase : dbut Mai jusqu fin Juin 2009 La figure 3 (gauche) reprsente le GANTT correspondant la premire phase du projet.

2me phase : dbut Septembre 2009 jusqu mi-Avril 2010-04-16 Malheureusement, certains problmes sont apparus pendant le projet, ce qui nous a retard. En effet, nous navons pas russi faire fonctionner la camra que nous avions achete. Cest pourquoi nous avons tabli un nouveau diagramme GANTT qui correspond mieux ltat rel davancement du projet ainsi que de la dure de travail que nous avons accorde chacune des tches. La figure 3 (droite) reprsente le GANTT correspondant cette deuxime phase du projet.

10 Conception dun systme de vidosurveillance pour lIMT

Figure 3 : Diagrammes GANTT 11 Conception dun systme de vidosurveillance pour lIMT

II.3- Organisation de lquipe projet

Pour rpartir les membres du projet sur les diffrentes tches du projet, nous avons utilis la fonction ressources humaines du logiciel GANTT Project. Voici laffectation des tches chaque membre du groupe daprs le GANTT prcdent. Sbastien Angot : - Choix des types de camras - Estimation du cot de linstallation - Capture vido de scnes tests - Prise en main du logiciel intgr la camra Godefroy Brisebarre : - Choix des types de camras - Etude du dbit admissible - Capture vido de scnes tests - Ecriture de lalgorithme - Ecriture du programme en langage C Charlotte Cadoret : - Choix des emplacements - Etude du dbit admissible - Capture vido de scnes tests - Ecriture de lalgorithme - Tests intermdiaires du programme Marc Navatier : - Etude des traitements dimages avec MATLAB - Prise en main du logiciel intgr la camra David Nicolet-Dit-Flix : - Choix des emplacements - Etude des traitements dimages avec MATLAB - Ecriture de lalgorithme - Choix du langage/logiciel - Ecriture du programme en langage C - Tests du programme sous MATLAB Damien Pineau : - Etude des traitements dimages avec MATLAB - Ecriture du lalgorithme - Choix du langage/logiciel - Ecriture du programme en langage C - Implmentation du programme sous MATLAB - Tests du programme sous MATLAB 12 Conception dun systme de vidosurveillance pour lIMT

II.4- Fonctionnement durant le projet

Pour faire fonctionner la camra, nous avions besoin dun ordinateur sous Linux. Lcole nous a prt un ordinateur portable pour la dure du projet lusage des membres du groupe qui travaillaient prendre en main la camra MV Blue Lynx. Pour faire le point sur le projet, nous avions rendez-vous chaque semaine avec notre tuteur, M. Ali Khalighi. Cela nous permettait de rendre compte de lavancement de chacune des tches et didentifier rapidement les problmes auxquels pouvait tre confront chaque membre. Dautre part, nous avons eu des runions rgulires avec le client destines nous orienter selon les besoins du projet.

II.5- Budget

Lcole a allou 500 euros chaque groupe de projet transverse pour des achats ncessaires lavancement du projet. Notre projet tant bas sur ltude et le dveloppement dun rseau de vidosurveillance intelligente , les dpenses ncessaires se limitent lachat dune camra intelligente , elle aussi, comprenant un systme de traitement embarqu, capable dtre lhte dun programme de dtection dvelopp par nos soins. Dans ce cadre, nous avons pris contact avec la socit MatrixVision qui nous a propos des camras dont le premier prix slve 1190 euros HT, ce qui reste plus abordable que ce que proposent dautres entreprises. Nous avons donc ngoci avec lentreprise pour obtenir une solution dans nos moyens. Ainsi aprs un entretien tlphonique et quelques changes crits, notre contact nous a propos un exemplaire doccasion, ayant servi pour des dmonstrations client et en parfait tat de marche pour la somme de 500 euros HT, ce qui rentre bien plus dans les contraintes du budget. Des discussions ont eues lieu en ce qui concerne les accessoires fournis avec la camra, un starter-kit tant vendu 100 euros HT (au lieu de 890) avec un exemplaire neuf de la camra, nous aurait convenu. Mais cette rduction ne peut sappliquer lachat dun exemplaire doccasion. Nous avons russi faire descendre le prix 150 euros HT au lieu de 890. Cela nous fait un budget total de 650 euros HT, certes plus lev que les crdits allous, mais le manque perdre par rapport au prix dun matriel neuf est plus quavr.

13 Conception dun systme de vidosurveillance pour lIMT

Dautre part, voici une estimation du budget total ncessaire linstallation dun systme de vidosurveillance oprationnel utilisant des camras intelligentes comprenant un systme de traitement embarqu. Les prix fournis pour les camras ainsi que leurs accessoires par la socit MatrixVision sont les suivants :

Dsignation
mvBlueLYNX-400GX
Camra CMOS 640x480, cpu 200Mhz, 32MB RAM, 32MB Flash, out VGA/video

PUHT
1 190

Quantit
25

PTHT
29750

TVA 19,6%
5831

PTTTC
35581

Objectif monture C 16mm F1.4, capteur jusquau 2/3 pouce, MOD 0,4m, vis de blocage MV-DC2425 BL
Alimentation 24 Volts pour BlueLYNX type 2XX et suprieur

95

25

2375

465,50

2840,50

175

25

4375 36500

857,50 7154

5232,50 43654

Totaux

Figure 4 : Prix total de 25 camras Le projet ne comportant pas de ralisation concrte dudit rseau, nous ne sommes pas en mesure de fournir certains devis, car il faudrait pour cela raliser un appel doffre, notamment dans le cas dinstallation de cbles et prises rseau et dalimentation. Nous devons donc ajouter les cots dinstallation de nouvelles prises rseau proches des camras, que nous estimons, suite une analyse de diffrents devis fournis par le CRI, de lordre de la dizaine de milliers deuros toutes taxes comprises. Nous aurons galement besoin de caches de protection pour les camras extrieures, mais galement de prises dalimentation et de supports de fixation pour les nouveaux emplacements de camras. Nous pouvons donc estimer le cot total de linstallation aux alentours des 60 000 euros. Ce budget pourrait nanmoins tre revu la baisse, en ngociant les prix au vu de la quantit de produits et services demands, ainsi quen faisant jouer la concurrence.

14 Conception dun systme de vidosurveillance pour lIMT

III-

Etude prliminaire de lorganisation globale de la vidosurveillance III.1- Plan de localisation des camras

Pour choisir la localisation des camras sur le site de lIMT, nous avons pris rendez-vous avec les agents de scurit du site pour comprendre quels sont les rels besoins en matire de vidosurveillance. En effet, il savre que des camras supplmentaires, notamment prs du foyer des lves seraient utiles. Nous avons donc labor un plan de localisation des camras dans loptique du nouveau systme de vidosurveillance.

Figure 5 : Plan de lIMT Emplacements des camras Les toiles correspondent aux camras que lon souhaite mettre en place. On visualise galement les champs des diffrentes camras.

15 Conception dun systme de vidosurveillance pour lIMT

III.2- Aspects juridiques de la vidosurveillance

Le cadre juridique de la vidosurveillance est trs prcis de par le fait que la libert des personnes filmes est engage. La surveillance des voies publiques est strictement interdite, de mme que la surveillance des zones prives dautrui. Il est donc ncessaire dadapter les champs des camras de faon ce quaucune de ces zones ne soit dans le champ. Se pose ensuite le problme de lenregistrement des images recueillies. Si on choisit de ne pas conserver les donnes recueillies, conformment aux statuts de lEcole Centrale Marseille, aucune autorisation autre nest demande. Au contraire, si on souhaite enregistrer les vidos, une autorisation de la CNIL est ncessaire. De plus, si on veut utiliser les vidos des fins juridiques, des normes techniques supplmentaires sur la rsolution et la frquence des images sont demandes.

III.3- Deux solutions possibles : le traitement centralis ou le traitement embarqu des images

Suite notre tude prliminaire du problme et notre travail de veille technologique, nous avons dgag deux solutions qui nous permettent de raliser les exigences du client : le traitement centralis des images ou le traitement embarqu. Ces deux solutions se situent des niveaux budgtaires trs diffrents puisque la dernire ncessite lacquisition de camras trs particulires et relativement coteuses alors que lautre se contente de camras de surveillance standard. Le traitement embarqu des images prsente nanmoins certains avantages supplmentaires, notamment en ce qui concerne la facilit de mise en place du systme et, plus particulirement, la mise en place du rseau qui vhicule les flux audiovisuels. En effet, elle est trs simple mettre en place en partant du rseau informatique actuel de lcole et elle ne ncessite que quelques modifications. Le traitement centralis des images, quant lui, ncessite une installation plus complexe, savoir linstallation de nombreux cbles sur lensemble du site de lcole. Cette installation tant rendue dautant plus difficile que, le site de lIMT ntant pas la proprit exclusive de lcole, il est ncessaire pour effectuer les travaux dinstallation dobtenir laval de nombreux responsables. Sur le plan technique, la diffrence majeure entre les deux solutions est la localisation physique du systme de traitement des images et de dtection de mouvement. Cest cette diffrence qui engendre les variations de cot et de facilit dinstallation entre les deux solutions envisages. En effet, soit le systme reoit toutes les images et les traite au poste de scurit ce qui pourrait poser des problmes dengorgement de rseau si ce dernier est utilis pour transporter les 16 Conception dun systme de vidosurveillance pour lIMT

informations soit il effectue le traitement au niveau de chaque camra, qui embarque alors un processeur ncessaire pour effectuer le traitement des images la source, et ainsi nenvoie la totalit des informations recueillies par la camra quen cas danomalie, pour une utilisation plus conome quant au dbit dinformation disponible sur un rseau. Une autre diffrence provient du fait que la ralisation du traitement des images sur les camras implique de ne pas utiliser des programmes quon ne peut pas implanter sur celles-ci, ce qui a pour consquence essentielle que notre programme de traitement doit tre crit en langage C ou C++ et ncessiter peu, voire pas, dappels des programmes de calcul tels que MATLAB, SCILAB ou LABVIEW. Dun point de vue lgislatif, le traitement des images la source permet dliminer plus simplement et plus efficacement les images prises par les camras de zones que lon ne peut filmer puisque cette application dun masque est propre chaque camra. Nous avons prsent ces deux solutions notre client et notre tuteur cole. Leurs conseils nous ont orients vers le choix de la solution o le traitement des images est ralis sur la camra. Nous allons par la suite dvelopper plus prcisment cette solution retenue. Enfin, les diffrentes solutions envisages ne diffraient pas exclusivement sur ces points mais aussi sur dautres tels que le fait de filmer en couleur ou non, le fait de filmer en infrarouge la nuit ou dclairer la scne. Cependant ces autres points nengendrent pas de diffrences considrables dans la solution finale, cest pourquoi on ne sattardera pas dessus.

17 Conception dun systme de vidosurveillance pour lIMT

IV- Prsentation de la solution retenue et prise en main du matriel IV.1- Solution utilisant le systme de traitement embarqu

Bien que cette solution soit la plus coteuse, nous avons choisi celle-ci car elle nous permet de traiter plus efficacement les images, notamment puisquon vite lapparition de bruit d au transport de linformation. Le point qui est majoritairement lorigine de cette dcision reste la simplicit de mise en uvre du systme sur le site de lIMT. En ce qui concerne les diffrents autres critres, nous avons opt, au vu des caractristiques techniques des camras qui embarquent un microprocesseur, pour les solutions permettant de rduire le cot du projet. Ainsi, nous avons choisi de filmer en noir et blanc et dclairer les scnes nocturnes plutt que de considrer des camras qui filmeraient aussi en infrarouge. De faon plus prcise les camras retenues sont les modles de la gamme BlueLynx ralises par MatrixVision, une socit allemande possdant une filire franaise. Ces camras prsentent lavantage dintgrer de base le ncessaire afin dimplanter un programme en C ou C++ dessus permettant le traitement des images. Aprs consultation avec le Centre des Ressources Informatiques de lcole, il nous est apparu que la meilleure solution pour raliser le rseau qui relierait ces camras au centre de scurit est de crer un sous-rseau virtuel scuris et totalement indpendant du reste du rseau de lcole, bien quil utilise les mmes installations.

IV.2- Prise en main de la camra MV-BlueLynx (MatrixVision)


La camra se prsente comme un bloc disposant, pour ce qui est des protocoles de communication, dun port srie et dun port Ethernet.

Figure 6 : La camra MV BlueLynx, installe dans une salle de lEquerre 18 Conception dun systme de vidosurveillance pour lIMT

Dans un premier temps, il nous a fallu utiliser le protocole filaire srie pour initialiser la camra et lui attribuer une adresse IP fixe (10.228.0.29) dans le rseau local des ports Ethernet pour ordinateurs portables de lEquerre. Ensuite, via une connexion internet et lutilitaire de lignes de commande UNIX Telnet, nous avons pu communiquer avec la camra et commencer explorer les dossiers quelle contient.

Figure 7 : Confirmation de connexion la camra IP

Nous y avons trouv certains programmes de test dj compils ( mvstest ) qui ont pour but de montrer comment la camra peut envoyer des informations sur internet, en les rendant disponibles sur le port 10 000 de son adresse IP (protocole http).

19 Conception dun systme de vidosurveillance pour lIMT

Figure 8 : Le rpertoire contenant les programmes test, flash/mvstest Par exemple, le programme mvserv envoie une image noire en jpeg (64x480) lurl http://10.228.0.29:10000/

Figure 9 : Excution du programme test mvserver_new 20 Conception dun systme de vidosurveillance pour lIMT

Nous avons galement repr dans larborescence le rpertoire intitul ftp qui correspond bien sr au serveur ftp intgr la camra. La camra contient un certain nombre de librairies de programmation, dont le dtail des fonctions a t difficile obtenir, du fait dun manuel dutilisation trs peu clair et de difficults de communication avec les contacts que nous avons au sein de MatrixVision, le constructeur du modle.

Figure 10 : Certaines des librairies que contient la camra. Cest ici que nous nous heurtons un mur apparemment infranchissable : la documentation donne des explications bien trop sporadiques et incomprhensibles sur lutilisation des librairies et des fonctions quelles contiennent dans le cadre de la rdaction dun programme, ce qui est frustrant, car on a pu concevoir par ailleurs un programme traitant en direct les images provenant dune webcam. On a dun ct les outils et de lautre ct lide, mais on narrive pas lappliquer notre cas prcis avec laide de ces outils, car on ne sait pas comment sen servir. Les fonctions de traitement intgres lappareil sont nombreuses et prcises, elles suffiraient raliser en langage C un programme quivalent celui que lon a obtenu sous MATLAB, bien que cela semble trs fastidieux.

21 Conception dun systme de vidosurveillance pour lIMT

V-

Ralisation du programme de traitement dimages V.1- Algorithme retenu

Les camras gnrent un flux vido en noir et blanc. Pour traiter le flux vido, l'algorithme devra comporter les points suivants : squencer le flux vido en images comparer les images une image de rfrence dtecter les ventuelles anomalies signaler/mettre en vidence ces anomalies

Pour crire ce programme, nous avons d prendre des images tests (certaines d'internet, d'autres de vidos que nous avons tournes, d'autres d'une webcam). Nous avons crit un programme en C puis un en MATLAB.

V.2- Programmation en langage C

On considre une image de rfrence et une image dite ''test'' diffrente (a priori) de l'image de rfrence. La premire phase du programme consiste en une simple diffrence entre les deux images, alors considres comme des matrices de dimensions 640x480 (rsolution de l'image de la camra) dont chacune des valeurs correspond un niveau de gris (moyenne des trois valeurs RGB, le 0 correspond au noir et le 255 au blanc). En prenant la valeur absolue, on obtient alors une matrice valeurs comprises entre 0 et 255. La deuxime phase du programme consiste en un seuillage de cette matrice de diffrence. On fixe un seuil. Toutes les valeurs au-dessous de ce seuil passent 0 et toutes celles au-dessus passent 255. On obtient alors une matrice avec comme valeurs soit 0 soit 255, c'est une image binaire en noir et blanc. Dans cette image, on a encore des pixels bruits qui apparaissent (en blanc). La troisime tape du programme consiste en une rosion de l'image obtenue par seuillage. Pour ce, on applique un filtre sur toute la matrice. Un filtre est un ensemble de pixels. chaque endroit o le filtre passe, on regarde la valeur de chacun des pixels du filtre. Si tous les pixels du filtre sont blancs, le pixel-cl (celui du centre dans notre cas) devient blanc sur l'image rode. Dans le cas contraire, ce pixel devient noir si au moins un pixel du filtre est noir. Nous avons essay plusieurs filtres : carr 3x3, croix 3x3, carr 5x5. Nous avons retenue la solution du carr 5x5. En effet, le carr 3x3 n'limine pas forcment toutes les imperfections et la croix n'a pas de grand intrt. Ainsi on a toujours une image binaire o les pixels bruits ont disparu. Cependant, les surfaces ont rtrci. 22 Conception dun systme de vidosurveillance pour lIMT

Image initiale

Filtre

Image obtenue par rosion (en bleu)

Figure 11 : Traitement dimage - rosion La quatrime tape consiste en une dilatation des surfaces prcdemment rodes. Pour ce, on applique un autre type de filtre. Concrtement, on considre un ensemble de pixels (le mme que celui du filtre) et quand au moins un est blanc, le pixel-cl (du centre) devient blanc sur l'image obtenue par dilatation. Ainsi, on obtient les mmes surfaces principales que l'image aprs seuillage mais sans les imperfections. On obtient au final une image noire et blanche o les pixels blancs traduisent un vnement inhabituel.

Image initiale

Filtre

Image obtenue par dilatation (en vert)

Figure 12 : Traitement dimage - dilatation L'action d'roder puis de dilater une image, comme nous l'avons fait, s'appelle louverture dune image.

Figure 13 : Traitement dimage rosion puis dilatation 23 Conception dun systme de vidosurveillance pour lIMT

V.3- Prototypage sous MATLAB

Sous MATLAB, on cre le programme sous forme de schma bloc avec des fonctions de transfert paramtres rglables laide de la toolbox Video and image processing . Le prototype ralis est situ en annexe. Pour squencer les images, il suffit de rgler le paramtre de la fonction qui squence les images sur la valeur souhaite. Aprs plusieurs tests, nous avons estim que 1 image sur 5 tait suffisant pour garder une certaine fluidit, ce qui laisse au programme un peu moins de 0,2 sec pour traiter et afficher l'image. L'image slectionne est compare la prcdente, non traite, et mise en mmoire. Pour comparer les images, on ne raisonne pas par pixel mais par zone. Concrtement on spare l'image en sous-images (ou blocs ), par exemple, l'image fait 640x480 pixels, on la divise en m x n images de (640/m)x(480/n) pixels ; m et n tant des paramtres rglables. Pour comparer les images, on calcule la valeur absolue de la diffrence entre la valeur d'un pixel de l'image et celle du mme pixel de l'image prcdente, puis on somme les diffrentes valeurs obtenues dans chaque bloc. Cette opration est effectue dans le Block 'processing 1' en annexe. On compare ensuite cette valeur un niveau fix manuellement : si la valeur est au dessus de ce niveau, on affiche la sous-image de la manire explique ci-aprs, dans le cas contraire, on ne fait rien. Ce seuil doit tre dtermin chaque nouvel emplacement en lanant le programme lorsquil ny a pas de mouvement. Dans ce prototypage, louverture de limage nest pas utilise car elle nest pas ncessaire. En effet, les pixels limins par lrosion nont maintenant plus dimportance si on choisit un seuil adapt. De plus, en nutilisant pas ces outils, le temps de calcul du traitement sen trouve diminu. Pour mettre en vidence les sous-images sujettes un mouvement, on affiche en sortie une image en couleur en RGB. Les sous-images sans mouvement notable restent en noir et blanc et les autres ont pour valeur sur les canaux G et B la valeur du niveau de gris et deviennent sur le canal R le complmentaire du bloc. Ainsi les parties blanches de la sous-image apparaitront en bleu et les parties noires en rouge sur limage finale. Cette action dbute dans le Block processing 2 ou Highlight qui se trouve en annexe. Ainsi en affinant assez la division en sous-images, on peut obtenir une zone prcise o le mouvement a eu lieu, cependant le temps de calcul augmente aussi. Une autre fonction situe au dbut du prototype permet de ne pas traiter une zone de limage afin de respecter certains aspects juridiques ou dliminer des zones o le traitement nest pas ncessaire, comme le mouvement darbres. Pour ce faire, on applique un masque en multipliant le flux vido reu par une matrice binaire (compose de 0 ou de 1). Ainsi les zones ne pas traiter deviendront noires et donc aucune anomalie ne sera dtecte. Ce masque dpend videmment de lemplacement de la camra.

24 Conception dun systme de vidosurveillance pour lIMT

V.4

Tests et prsentation des rsultats

Pour le programme en C, nous avons pris une image de rfrence,

Figure 14 : Image de rfrence puis nous avons pris une autre image de la vido avec un intrus dessus.

Figure 15 : Image traiter

25 Conception dun systme de vidosurveillance pour lIMT

On effectue la diffrence et on effectue un seuillage pour obtenir une image en noir et blanc :

Figure 16 : Image aprs seuillage Aprs lrosion :

Figure 17 : Image aprs seuillage et rosion

26 Conception dun systme de vidosurveillance pour lIMT

Aprs la dilatation :

Figure 18 : Image aprs seuillage, rosion et dilatation

27 Conception dun systme de vidosurveillance pour lIMT

Prototype sous MATLAB

Toutes ces images ne sont quune reprsentation de la vido en sortie mise sous forme de squence dimage. Les zones en couleur indiquent les endroits o il y a eu dtection dun mouvement. Pour ce faire, chaque image a t segmente en 64 blocs.

Images prises toutes les 2 secondes.

Figure 19 : Dtection et mise en valeur de mouvement

Pour chaque bloc, on obtient une valeur comme dcrit dans le prototypage sous MATLAB. Ces valeurs permettent de dterminer le niveau de rfrence partir duquel on dtecte un mouvement significatif. Au cours du temps, ces valeurs forment des courbes qui permettent de distinguer les mouvements. Pour lexemple, le premier graphique ci-dessous contient seulement 5 courbes : le niveau de rfrence en vert 4 courbes reprsentant les valeurs des 4 blocs et donc une zone

28 Conception dun systme de vidosurveillance pour lIMT

Figure 20 : Courbes de diffrences entre images (bloc par bloc) Si la courbe est au dessus du niveau alors il y a dtection de mouvement dans une zone. Pour fixer, on effectue un test en filmant une zone o il ny a pas de mouvement comme la zone centrale de la prochaine image qui compte 65 courbes donc pour un traitement avec 64 blocs.

Figure 21 : Rglage du seuil de dtection 29 Conception dun systme de vidosurveillance pour lIMT

On remarque 3 zones, la dernire tant seulement un essai pour voir si le seuil est adapt. La premire zone du graphique est due la webcam qui effectue un rglage automatique afin damliorer le contraste de limage. La deuxime zone est celle qui permet dvaluer le niveau de dtection. Les courbes ne sont pas nulles cause du bruit d lacquisition par la webcam du flux vido. Il convient donc de choisir un niveau suprieur ce bruit. Cependant il faut tenir compte dautres facteurs. Le mouvement darbres peut tre limin en choisissant une limite plus importante mais cela peut nuire la dtection dautres anomalies. Cette limite, tout comme le masque, est une solution envisageable pour supprimer les dtections qui ne sont pas significatives.

V.5- Limites de notre programme

Notre programme nest quune bauche, prsentant des carts vis--vis des objectifs sous de nombreux aspects. Tout dabord, on a de grandes limites de compatibilit. Comme cela a t dit prcdemment, notre concept de traitement de la vido pour dtecter des anomalies ne se matrialise pour linstant qu travers un programme ralis sous MATLAB, logiciel lourd et licenci, mais surtout vraisemblablement non-installable sur une camra module informatique telle que les modles BlueLynx de MatrixVision. Une autre limite est la courante latitude de mise au point, cest--dire lquilibre acceptable entre la sensibilit et lintelligence du systme de dtection. On a vu que la dtection commence par une tape de seuillage, dont le seuil est fix par lhumain. En effet, il existe des variations pouvant survenir entre deux images prises par une camra quil nest pas souhaitable de signaler (cas de la pluie, du vent dans les feuillages darbres, etc.). Il est bon de rgler ce seuil de faon ngliger ces variations, mais il ne faut pas que ce soit en dpit de la dtection de relles anomalies. On rencontre aussi une limite de rapidit de notre programme. Le calcul se fait sur un certain nombre de blocs qui fractionnent limage. Lidal est de travailler en segmentant limage en un nombre important de blocs, pour affiner la dtection spatiale. Cependant, pass un certain nombre de blocs, le calcul est trop consquent et le traitement en temps rel nest plus possible. Enfin, tel quil est conu, notre programme ne peut pas tre mis en place sur une camra mouvante (il dtecterait des variations sur toute limage constamment).

30 Conception dun systme de vidosurveillance pour lIMT

VI-

Perspectives damlioration (structure globale)

Nous sommes parvenus, sur toute la dure de ce projet, dvelopper ce qui reprsente le cur de linstallation que nous avons imagine : le programme de traitement de vido. Il est fonctionnel et rpond au cahier des charges que nous nous tions donn quant son fonctionnement thorique. Toutefois, il est encore perfectible (gestion de climats extrmes dvelopper, entre autres) et le problme de son adaptation aux camras module de traitement embarqu reste entier. Ensuite, il reste tout le reste de lorganisme de notre solution concevoir : mme si nous avons dj tudi les questions du positionnement des camras, du cblage raliser pour les faire marcher et de la signalisation au niveau du poste de scurit, rien na t prcisment dfini et mdit. Le dveloppement de la structure globale amnera sans doute dautres problmes ou rglages sur lesquels se pencher (par exemple, le seuillage risque fort de se baser sur des caractristiques diffrentes entre les camras intrieures et extrieures). Il faudrait dfinir les zones masquer pour des raisons lgales sur toutes les camras extrieures, ce qui ne pourra tre fait quaprs installation. De mme, il faudrait tudier linstallation actuelle du poste de scurit pour en dduire une nouvelle interface humain-machine, soit en adaptant lexistant, soit en en recrant une de toutes pices.

31 Conception dun systme de vidosurveillance pour lIMT

Conclusion

Tout d'abord, concernant le rendu du projet, nous pouvons tre contents des russites que nous avons apportes la demande du client. En effet, ce-dernier nous avait demand d'imaginer un rseau de camras, ce qui est chose faite. Nous avons aussi estim le coup de l'installation et avons tudi l'aspect juridique. Il nous tait aussi demand d'crire un programme de reconnaissance de scnes ''suspectes''. Nous avons russi crire un programme qui traite un flux vido et qui rempli cette tche. Cependant il ne constitue que le cur puisqu'il aurait fallu l'implanter sur les camras. Ce n'est pas faute d'avoir essay pourtant, nous avons command une camra avec un systme d'exploitation intgr afin d'implmenter le programme dans la camra... tout ce que nous avons russi faire fut de recevoir le flux vido de cette camra dans une rsolution inexploitable. C'est pourquoi nous nous sommes rabattus sur une webcam, ce qui est certes moins contraignant mais le rsultat est quand mme au rendez-vous. La plupart des objectifs ont t atteints, le plus gros chec restant l'impossibilit de faire quelque chose de la camra mv-BlueLynx. Dautre part, concernant le travail en quipe, c'est dans une bonne ambiance que nous avons travaill ensemble. Chacun effectuait le travail qui lui tait attribu de manire efficace, personne ne marchait sur les plates bandes d'un autre et l'ensemble des choses faire tait couvert par l'quipe. Malgr la difficult se mettre la tche chaque semaine, la motivation des uns forait la motivation des autres. C'est pourquoi, chaque membre de l'quipe est sorti grandi de cette exprience. En effet, chacun d'entre nous a appris travailler en quipe ce qui signifie, attribuer les tches en fonction des capacits des membres de l'quipe, savoir o trouver l'ventuelle aide la ralisation, entretenir la relation avec le client et l'ventuel intermdiaire, respecter les autres et savoir pardonner les ventuelles erreurs et/ou moindre implication. Nous serons, coup sr, confronts ces situations que ce soit dans notre carrire professionnelle, dans notre entourage social ou dans le domaine familial. Il nous reste beaucoup de choses apprendre dans le travail d'quipe et cette premire exprience nous donne envie d'approfondir.

En conclusion, nous sommes devenus une quipe dans laquelle chacun a trouv sa place, qui a fait ses preuves et qui finalement n'a pas besoin d'un ventuel chef si ce n'est pour la forme officielle. Nous esprons que les prochaines quipes dont nous ferons partie seront comme celle du PT100-CRS si ce n'est mieux.

32 Conception dun systme de vidosurveillance pour lIMT

Bibliographie
Livres : PITAS Ioannis, Digital image processing algorithms, Prentice Hall, 1993 C. GONZALES Rafael; WINTZ Paul , Digital image processing, Addison Wesley, 1977 LINGRAND Diane, Introduction au traitement d'images, Vuibert, 2008 BRES Stphane; LEBOURGEOIS Frank; JOLION Jean-Michel, Traitement et analyse des images numriques, Herms, 2003

Thses : Ghorayeb Hicham, Conception et mise en uvre d'algorithmes de vision temps rel pour la vido surveillance intelligente, Informatique temps rel, robotique et automatique, Ecole Nationale des Mines (Paris), 2007, 191p Conte Donatello, Detection tracking and behaviour analysis of moving people in intelligent video surveillance systems, Informatique, Institut national des sciences appliques (Lyon), 2006, 98p

Lois : Vigineo, Vigineo solutions de vido surveillance & scurit : lgislation[en ligne], disponible sur : http://www.vigineo.fr/loi_du_21_janvier_1995_relative_a_la_securite.html http://www.vigineo.fr/decret_du_17_octobre_1996_relatif_a_la_videosurveillance.html Normes techniques : Vigineo, Vigineo solutions de vido surveillance & scurit : lgislation[en ligne], disponible sur : http://www.vigineo.fr/arrete_du_26_septembre_2006_normes_video-surveillance.html http://www.vigineo.fr/decret_du_3_aout_2007_normes_videosurveillance.html

Manuel MatrixVision BlueLynx (accs ncessitant la cration gratuite dun compte dutilisateur) : Manuel : http://www.matrix-vision.com/manuals/mvBlueLYNX/ Guide pour la cration de programmes de traitement : http://www.matrixvision.com/manuals/mvBlueLYNX/ProgrammingOwnApplications_page_copying_progs.html#Pro grammingOwnApplications_section_copying_progs Exemples dapplications : http://www.matrixvision.com/manuals/mvBlueLYNX/dateien/mvslib/ExampleApplications_page_0.html Nous n'avons pas eu besoin d'utiliser nos recherches sur les brevets car les thses, notamment celle qui traite de la conception et mise en uvre d'algorithmes de vision temps rel pour la vidosurveillance intelligente nous a fourni la plupart de nos informations. 33 Conception dun systme de vidosurveillance pour lIMT

Annexes
Programme principal de traitement en langage C #include <stdio.h> #include <stdlib.h> #include "Image.h" #include "diff.h" int main( ) { char NomImOrig[100] = "image.pgm"; char NomImRef[100] = "ref.pgm"; char NomImSeg [100] = "seg.pgm"; char NomImEro [100] = "ero.pgm"; char NomImDil [100] = "dil.pgm"; /* ***************************************** */ /* PHASE 1 - LECTURE de l'IMAGE ORIGINALE */ /* ***************************************** */ struct Image* ImOrig = ReadPGM (NomImOrig); struct Image* ImRef = ReadPGM (NomImRef); /* ******************************************* */ /* PHASE 2 - SEGMENTATION PAR DIFFERENCE */ /* ******************************************* */ struct Image* ImSeg = diff(ImOrig, ImRef); /* *************************************** */ /* PHASE 3 - EROSION */ /* *************************************** */ struct Image* ImEro=AllocImage(ImSeg->Lignes, ImSeg->Colonnes, 0); int j; for(j=2*(ImSeg->Colonnes)+2;j<(ImSeg->Lignes-2)*ImSeg->Colonnes-1;j++) { if ( (ImSeg->data[j-ImSeg->Colonnes-1]==255) && (ImSeg->data[j-ImSeg->Colonnes]==255) && (ImSeg->data[j-ImSeg->Colonnes+1]==255) && (ImSeg->data[j-1]==255) && (ImSeg->data[j]==255) && (ImSeg->data[j+1]==255) && (ImSeg->data[j+ImSeg->Colonnes-1]==255) && (ImSeg->data[j+ImSeg->Colonnes]==255) && 34 Conception dun systme de vidosurveillance pour lIMT

(ImSeg->data[j+ImSeg->Colonnes+1]==255)) { ImEro->data[j]=255; } else ImEro->data[j]=0; } /* ************************************************/ /* PHASE 4 - DILATATION DE L'IMAGE SEGMENTEE */ /* ************************************************/

struct Image* ImDil=AllocImage(ImSeg->Lignes, ImSeg->Colonnes, 0); int k; for(k=ImEro->Colonnes+1;k<(ImEro->Lignes-2)*ImEro->Colonnes;k++) { if ((ImEro->data[k-ImEro->Colonnes-1]==255) || (ImEro->data[k-ImEro->Colonnes]==255) || (ImEro->data[k-ImEro->Colonnes+1]==255) || (ImEro->data[k-1]==255) || (ImEro->data[k]==255) || (ImEro->data[k+1]==255) || (ImEro->data[k+ImEro->Colonnes-1]==255) || (ImEro->data[k+ImEro->Colonnes]==255) || (ImEro->data[k+ImEro->Colonnes+1]==255)) { ImDil->data[k]=255; } else ImDil->data[k]=0; } /* ****************************************** */ /* PHASE 5 - ENREG. DE L'IMAGE SEGMENTEE */ /* ****************************************** */ WritePGM (ImSeg, NomImSeg, "Resultat de Seg" ); WritePGM (ImEro, NomImEro, "Resultat de Ero" ); WritePGM (ImDil, NomImDil, "Resultat de Dil" ); // Libration de la mmoire LibereImage(ImOrig); LibereImage(ImSeg); LibereImage(ImEro); return 0; } 35 Conception dun systme de vidosurveillance pour lIMT

Prototypage sous MATLAB 1. Schma bloc

36 Conception dun systme de vidosurveillance pour lIMT

2. Contenu du Block processing 1

3. Contenu du Block Highlight (processing 2)

37 Conception dun systme de vidosurveillance pour lIMT