Présentation de la recherche - Cégep de Sainte-Foy
Transcription
Présentation de la recherche - Cégep de Sainte-Foy
Samuel BÉDARD Julien LAMONTAGNE Groupe 4628 LA PRÉSENTATION DE RECHERCHE « LA DÉTECTION DE MOUVEMENTS À PARTIR DE LA VARIATION DE LUMIÈRE DANS UNE VIDÉO CAPTÉE PAR UNE CAMIRETTE » [VERSION : FINALE] TRAVAIL PRÉSENTÉ À MESDAMES CARMEN GAGNON ET SYLVIE MONJAL NOUVELLES TECHNOLOGIES 420-620-SF DÉPARTEMENT DE L’INFORMATIQUE FORMATION TECHNIQUE EN INFORMATIQUE CÉGEP DE SAINTE-FOY 24 JANVIER 2008 Table des matières 1 2 LE SUJET ................................................................................................ 1 LES ENJEUX ...........................................................................................2 2.1 2.2 2.3 2.4 2.5 3 4 5 6 7 8 Connaissances à acquérir ................................................................................................ 2 Importance de la recherche ............................................................................................ 2 Impact et implication....................................................................................................... 2 Domaine d’application actuel.......................................................................................... 2 Les motivations de la recherche ...................................................................................... 3 LES OBJECTIFS .......................................................................................4 L’EXPÉRIMENTATION ............................................................................5 4.1 Les étapes de l’expérimentation ..................................................................................... 5 4.2 Structure de l’outil développé ......................................................................................... 6 4.3 Devis général de l’application ......................................................................................... 7 4.3.1 Fonctionnalités globales de l’application ................................................................ 7 4.3.2 Maquette globale de l’outil d’expérimentation ...................................................... 7 LES LIMITES ...........................................................................................8 LES INCERTITUDES ................................................................................9 6.1 Le fonctionnement des 2 différentes méthodes de détection de mouvements ............ 9 6.2 L’utilisation du pilote de la camirette dans une application ........................................... 9 6.3 Création d’un algorithme qui détecte la variation de lumière dans 2 images consécutives ................................................................................................................................ 9 LES RESSOURCES .................................................................................. 10 7.1 Matériel ......................................................................................................................... 10 7.2 Logiciels ......................................................................................................................... 10 LA PLANIFICATION DE LA RECHERCHE................................................ 11 i 1 LE SUJET Le sujet que nous avons choisi est la détection de mouvements à partir de la variation de lumière dans une vidéo captée par une camirette. Le but de la recherche sera de comprendre, expliquer et approfondir les fonctionnalités de détection de mouvement à partir de la variation de lumière. La recherche fera aussi état de la méthode d’analyse de mouvements par la différence de trame dans 2 images consécutives. Nous effectuerons également un comparatif entre les deux techniques. Nous illustrons les avantages et désavantages de chacune des techniques. Nous ferons part de notre point de vue quant au choix qu’un programmeur devrait effectuer selon ses besoins. L’installation de système de vidéosurveillance est de plus en plus fréquente dans la société actuelle. L’utilisation de camirette et d’un ordinateur peut minimiser de beaucoup les coûts. La plupart des caméras de surveillance de ce type se déclenchent et enregistrent au moindre mouvement afin de ne pas enregistrer une quantité de séquences vidéo inutiles. Nous tenterons également de développer une petite application qui aura comme fonctionnalité de détecter les mouvements dans une vidéo captée à l’aide d’une camirette. Évidemment, nous développerons un algorithme qui évaluera la variation de lumière pour détecter le mouvement. 1 2 LES ENJEUX 2.1 Connaissances à acquérir La recherche nous demandera d’acquérir les informations suivantes : • Prendre connaissance des différents systèmes de détection de mouvements existants; • Identifier, comprendre, analyser et expliquer différentes méthodes d’analyse du mouvement; • Utiliser une camirette à l’intérieur d’une application; • Apprendre différentes techniques d’analyse d’images. 2.2 Importance de la recherche Dans une ère de technologie comme la nôtre, la sécurité a pris une très grande importance. Maintenant, avec l’aide des camirettes, la vidéosurveillance est devenue accessible à la plupart des gens, et ce, à de très modestes coûts. Alors, il est primordial de programmer des outils efficaces pour pouvoir combler ce besoin. Quelques gratuiciels de ce type sont disponibles sur l’Internet. Par exemple auto web cam1, EyeLine video surveillance2 et Crae Detect3 2.3 Impact et implication La recherche nous permettra de : • Faire des comparaisons quant aux avantages et inconvénients entre les différentes méthodes de détections de mouvements; • Comprendre et analyser les différents algorithmes qui illustrent la logique derrière ces techniques d’analyse des images; • Créer un algorithme qui nous permettra d’élaborer une application simple de détection de mouvements à partir de la variation de lumière observée entre deux images. 2.4 Domaine d’application actuel La détection de mouvements à partir de la variation de lumière sur une camirette est surtout utilisée pour effectuer de la vidéosurveillance. Beaucoup d’entreprises utilisent ce moyen pour sécuriser leurs installations. La détection de mouvements à partir de la variation de lumière à aussi quelque autre application t’elle que la surveillance d’enfant, la synchronisation des métros, des télémètres au laser. 1 Disponible sur http://www.gratuiciel.com/logiciels/?video-surveillance Idem 3 Idem 2 2 2.5 Les motivations de la recherche Notre choix s’est arrêté sur la détection de mouvement dans une vidéo, car nous sommes tous les deux intéressés par la sécurité vidéo. Nous sommes également intéressés par l’analyse d’image. C’est un domaine que nous avons très peu exploré, pour ne pas dire aucunement. Ainsi, nous aimerions explorer ce sujet le plus en profondeur que possible. 3 3 LES OBJECTIFS • • • • • • • • Effectuer la comparaison afin d’effectuer un choix entre deux méthodes de détection des mouvements dans une vidéo captée par une camirette selon les critères suivants : o Le temps de développement ; o La précision. Décrire et expliquer la méthode de détection de mouvements utilisée actuellement dans le monde de la surveillance vidéo en liant cette méthode à celle utilisée dans notre application ; Prendre connaissance des différents systèmes de détection de mouvements existants ; Identifier, comprendre, analyser et expliquer différentes méthodes d’analyse du mouvement ; Utiliser une camirette à l’intérieur d’une application ; Apprendre différentes techniques d’analyse d’images ; Comprendre et utiliser les notions de base du langage C# ; Trouver un algorithme qui traite de l’analyse par la variation de lumière entre deux images. 4 4 L’EXPÉRIMENTATION 4.1 Les étapes de l’expérimentation 1. La première étape sera de se procurer le matériel dont nous aurons besoin pour le développement de notre application. Le matériel nécessaire sera le suivant : a. une Camirette; b. un ordinateur vieux de trois ans ou moins ; c. un programme de détection de mouvement gratuit (ex. : Tireal Webcam Guard). 2. Nous expérimenterons la détection de mouvements par la variation de lumière dans une vidéo en direct qui sera captée par la caméra Web et analysée par le programme de détection de mouvements. 3. Après avoir constaté ce qu’un programme de détection de mouvements effectue comme travail, nous rechercherons des algorithmes d’analyse entre deux images. Nous devrions également découvrir, au cours de cette étape, les différentes méthodes pour analyser les variations d’une image à l’autre. 4. Nous essaierons de trouver une application et son code source sur un site d’échange de connaissances sur la programmation. Ce code nous permettra d’approfondir notre compréhension du procédé d’analyse des images. 5. Après avoir bien compris le processus d’analyse, nous construirons notre propre algorithme de détection de mouvement dans une vidéo. 6. Une fois notre algorithme complété, nous procéderons au développement de l’application dans le langage dans lequel il sera le plus efficace de le faire. De toute évidence, le but de ce développement sera de personnaliser du code déjà existant et non de réinventer la roue! Il est tout à fait inutile de réécrire ce qui a déjà été fait. Nous, nous inspirerons donc de code existant pour bâtir le nôtre. 5 4.2 Structure de l’outil développé L’outil que nous allons développer pour réaliser nos objectifs sera une application faite en C#. Celle-ci consistera en une application simple qui affichera l’image captée par la camirette. Par la suite, nous encadrerons la ou les parties de la vidéo captée ou du mouvement a été détecté. Voici un schéma qui explique un peu l’architecture du logiciel que nous allons développer. Le programme sera constitué de trois parties distinctes : • • • La partie camirette La partie de détection de mouvement La partie de l’interface La partie camirette : La partie camirette est celle qui va s’occuper de la gestion du pilote de la camirette. C’est aussi elle qui va faire en sorte que le programme affiche ce que la camirette capte La partie de détection de mouvement : La partie de détection de mouvement est celle qui va s’occuper de la gestion des détections de mouvement. C’est aussi elle qui va faire en sorte de dire au programme d’encadrer la partie où du mouvement a été détecté. La partie de l’interface : La partie de l’interface est celle qui va être affichée à l’utilisateur lors de l’utilisation de l’outil 6 4.3 Devis général de l’application 4.3.1 Fonctionnalités globales de l’application • Détection des mouvements de 2 manières : o En encadrant les objets qui bougent; o En affichant une sorte de lueur rouge autour des objets qui sont en mouvement. • Enregistrement de séquences vidéo; • Déclenchement de l’enregistreur à la détection d’un mouvement; • Prise de photo de l’image au moment de la détection du mouvement (snapshot); • Visualisation de la vidéo captée en direct. 4.3.2 Maquette globale de l’outil d’expérimentation [ ] Outil d’expérimentation – Détection de mouvements _ X Fichier Édition périphérique ? [Vidéo] Prendre une photo Activer la détection de mouvements Enregistrement 7 5 LES LIMITES Il faudra faire attention durant la recherche pour ne pas dériver vers des notions de physique très poussées. Car une contrainte de temps s’impose et nos connaissances demeurent plutôt limitées sur la physique, il ne faudra surtout pas prendre trop de notre temps à comprendre les phénomènes trop complexes. C’est pourquoi nous devrons nous limiter à seulement 2 méthodes d’analyse du mouvement : la variation de lumière et la différence de trames entre 2 images. Il faut aussi rester réaliste en ce qui concerne l’envergure de l’algorithme et de l’application que nous allons produire puisque le temps joue, encore une fois, contre nous. En ce qui a trait au développement de l’application, nous trouverons du code déjà existant sur Internet et le personnaliserons afin de l’adapter à notre recherche et à ce que nous voulons démontrer. La connaissance limitée du langage qui sera utilisé, C#, constitue un autre facteur qui pourrait nous limiter dans notre développement. 8 6 LES INCERTITUDES Les principaux éléments inconnus dans la recherche sont : • Le fonctionnement des 2 différentes méthodes de détections de mouvements ; • L’utilisation du pilote de la camirette dans une application C# (l’intégré dans notre développement); • Création d’un algorithme qui détecte la variation de lumière dans 2 images consécutives ; 6.1 Le fonctionnement des 2 différentes méthodes de détection de mouvements L’incertitude ici c’est qu’étant seulement des informaticiens et non des physiciens, les concepts de base de détection de mouvement soient trop complexes pour des gens n’ayant aucune base en physique. Si cela s’avérait exact, le meilleur moyen pour comprendre ces principes serait d’aller se référer à quelqu'un qui a une bonne connaissance en physique, comme un professeur ou un étudiant dans ce domaine. 6.2 L’utilisation du pilote de la camirette dans une application L’incertitude de cet élément consiste au fait que nous n’avons aucune idée de quelle manière nous allons pouvoir utiliser le pilote de la camirette dans une application faite en C#. Par contre, l’Internet doit avoir une panoplie de tutoriaux qui expliquent de quelle façon nous devrons nous y prendre. 6.3 Création d’un algorithme qui détecte la variation de lumière dans 2 images consécutives Le doute qui reste est que l’algorithme ne soit pas suffisamment optimisé pour l’application que nous voulons en faire. L’algorithme utilisé, si trop peu performant, rendra notre analyse des résultats peu concluante. Le problème est que nous n’aurons pas droit à l’erreur, car nous n’aurons surement pas le temps de créer un nouvel algorithme si on se rend compte que le précédent n’est pas assez performant. La solution trouvée pour éviter ce genre de problème sera de faire appel à des forums de programmation et de développement d’applications en C#. À partir de là, nous pourrons appeler à l’aide aux programmeurs expérimentés qui pourront nous aider dans l’optimisation de notre algorithme. La vitesse de leurs réponses devra être plutôt rapide. C’est de toute évidence une chose sur laquelle on ne peut pas vraiment compter. Nous devrons, à ce moment, nous référer à nos professeurs. 9 7 LES RESSOURCES 7.1 Matériel Pour la recherche nous aurons besoin des matériels suivants : • Une camirette USB ou incluse dans un portable; • Une carte vidéo assez puissante pour faire de l’analyse d’image; • un ordinateur vieux de trois ans ou moins; • Un port USB; 7.2 Logiciels Pour la recherche nous aurons besoin des logiciels suivants : • Babycam & motion detect • Microsoft Windows XP; • Microsoft Visual Studio 2005 (pour la création du logiciel en C#); • Internet Explorer ou Mozilla Firefox • Microsoft Office XP ou une version plus récente; • Adobe Acrobat Reader 8. 10 8 LA PLANIFICATION DE LA RECHERCHE Tâche Responsable Soumission d’un sujet de recherche Présentation de recherche SB JL Recherche d’informations sommaire Recherche, analyse et compréhension d’un algorithme Recherche d’un gratuiciel et son code source et en faire sa lecture Création de notre algorithme Remise de l’outil d’expérimentation Publication web de la recherche Présentation orale de la recherche SB SB Date d’échéance 2008-01-16 Alpha : 2008-01-23 Finale : 2008-01-24 2008-01-25 2008-01-27 JL 2008-01-28 JL JL SB JL et SB 2008-02-05 2008-02-11 2008-02-13 2008-02-14 ou 2008-02-15 État d’avancement