PAGE WIKI ETUDIANTS 2012-13 RECONNAISSANCE FACIALE
Description du projet
Le principe est de permettre d'authentifier un utilisateur, c'est-à-dire vérifier qu'il est bien celui qu'il dit être.
Scénario type : Un utilisateur se présente au système et veut accéder à des données, des informations. Le système détecte le visage de l'utilisateur et analyse la situation. Il répond alors de 2 manières possibles :
- OUI : l'utilisateur est bien celui qu'il prétend être
- NON : la personnne est un imposteur
Composition de l'équipe
Chef de projet : Camille OSWALD
Equipiers :
- Marie CHEVALLIER
- Fabien ELOY
- Christopher GNATTO
- Maxence RAOUX
- Sylvain VIGIER
- Clément WIRTH
Gestion du projet
Apprentissage | Détection | Technologie | Sous-équipe | Etat | |
---|---|---|---|---|---|
Base de données | X | - | ? | Fabien & Christopher & Sylvain | En cours |
Acquisition de données | X | X | OpenCV | - | Fait |
Détection de visages | X | X | OpenCV | Marie & Maxence & Camille & Clément | En cours |
Identification | - | X | OpenCV | - | A faire |
Documentation | - | - | - | Chacun sa partie | A faire |
Interface | - | - | ? | Les premiers ayant fini | A faire |
Technologies et matériel utilisés
- OpenCV
- C++
- webcam
Chronologie de développement
1) Détection avec quelques images en base
- Nous commençons par élaborer un modèle avec une petite base pour nous permettre de faire des tests. Nous agrandirons la base pour davantage de tests par la suite.
- L'acquisition des données de la webcam est très facilement gérée par OpenCV
- La détection de visage se base sur la méthode de Viola et Jones, aussi géré par OpenCV
- Se focaliser sur la phase critique : l'identification de visages
2) Gérer la phase d'apprentissage du système
3) optimiser le système (statistiques, réglage du seuil,…)
Fonctionnement du projet
Utilisation de la librairie OpenCv
Comme ce projet nécéssitait l'utilisation d'une kinect, nous avions décidé de développer sous Windows.
Nous avons donc tout d'abord essayé d'utiliser Visual Studio pour développer notre projet. Par la suite, nous avons choisi de passer par un autre éditeur : Codeblocks.
1) Utilisation de Visual Studio (2012)
Problèmes rencontrés :
- Difficulté de comprendre le fonctionnement du compilateur de visual studio, notamment lorsqu'il faut ajouter de nouveaux fichiers
- Problème lors du fonctionnement des objets utilisés par opencv (Exception au lancement, ou détection des visages non effectuées).
2) Utilisation de Code Blocks
Pour une meilleure compréhension et un projet fonctionnant sur des machines différentes avec des librairies qui ne sont pas installées aux mêmes endroits, nous avons choisi de porter le projet sur codeblocks.
Dans ce projet, nous avons utilisé Codeblocks 12.11 avec MinGW inclu (version 4.7.1).
Compilation de la librairie OpenCv
Afin d'éviter les problèmes d'utilisation de la librairie, il était nécessaire de recompiler la librairie avec le même compilateur que nous utilisons pour notre projet (ici MinGW fourni avec CodeBlocks).
Pour compiler la librairie, nous avons utilisé l'utilitaire Cmake.
Les fichiers de configurations de Cmake étant déjà fourni avec opencv (fichiers CMakeLists.txt), son utilisation devient très simple. Nous avons suivi le tutoriel ci-dessous :
- Lancement de Cmake-gui - Dans le champs Source Code, spécifier le chemin de la librairie openCv (exemple : C:\opencv-2.4.3) - Dans le champs build, mettre le chemin ou la librairie compilée sera enregistrée (exemple : C:\openCV-build) - Cliquer ensuite sur configure (créer le nouveau dossier) - Spécification du générateur : MinGW Makefiles - Sélectionner "Specify native compilers" - Définir le compilateur C (ex : C:/Program Files/CodeBlocks/MinGW/bin/gcc.exe) - Définir le compilateur C++ (ex: C:/Program Files/CodeBlocks/MinGW/bin/g++.exe) - Cliquer sur Finish - Cliquer sur generate - Fermer Cmake - Ouvrir une fenêtre de commande et aller dans le dossier que vous avez spécifié dans le champs build (ici : C:\openCV-build) - Executer "mingw-32make" (prend du temps et nécessite peut être d'avoir le répertoire bin de MinGW dans le PATH) - Enfin executer "mingw32-make install"
Configuration de codeblocks
Pour configurer codeblocks, nous avons suivi ce tutoriel : http://opencv.willowgarage.com/wiki/CodeBlocks