Procédure de mise en œuvre d`une application OpenCV sous Qt
Transcription
Procédure de mise en œuvre d`une application OpenCV sous Qt
Projet P11A09 GE2-GE3 2011 Génération d'alertes par traitement d'images NOTE D'APPLICATION Procédure de mise en œuvre d'une application OpenCV sous Qt avec caméra IP Rédacteur : Bienaimé AMOUSSOU Client Responsable projet Tuteurs industriels : : : Yannick DICHAMPT M. Jacques LAFFONT M. Thierry JOUANNET M. Pascal FIKINGER 1 Sommaire Introduction..........................................................................................................................................3 1. Installation de Ubuntou....................................................................................................................3 2. Librairie OpenCV.............................................................................................................................5 2.1 Présentation de la librairie.........................................................................................................5 2.2 Installation de la librairie...........................................................................................................6 2.2.1 Pré-requis...........................................................................................................................6 2.2.2 Installation..........................................................................................................................7 3. QtCreator..........................................................................................................................................8 3.1 Présentation ...............................................................................................................................8 3.2 Installation.................................................................................................................................9 4. Exécution d'une application C++/OpenCV sous Linux....................................................................9 5. Exécution d'une application Qt sous Linux....................................................................................10 6. Configuration d'une caméra IP sous Linux.....................................................................................11 Conclusion..........................................................................................................................................12 2 Introduction Le projet Génération d'alertes par traitement d'images qui nous a été proposé par Mr Yannick DICHAMPT est un système de vidéo surveillance pour assister les personnes âgées principalement dans des maisons de retraite. Ce projet consiste à filmer la personne dans une salle avec une caméra, à acquérir les images filmés sur une unité traitement et à générer une alerte en fonction des résultats obtenus. Pour le projet, nous utilisons, pour effectuer le traitement des données, le système d'exploitation Linux, le langage C++ et la librairie OpenCV, ainsi que l'outil de développement graphique QtCreator. De ce fait, pour utiliser les programmes développés, il faut une certaine « Procédure de mise en oeuvre d'une application OpenCV sous Qt avec caméra Ip ». Après vous avoir présenté ces outils, nous allons décrire la démarche à suivre pour leurs installations puis présenter des différents modes d'utilisation. 1 Installation de Ubuntou Nous conseillons pour la bonne marche de notre application l'utilisation du système Linux ubuntou 10.4 LTS, 32 B, Lucide. L'installation du système d'exploitation se fait en 7 étapes. Les actions à effectuer à chaque étape sont les suivantes : Insérer le CD d'installation dans votre ordinateur puis redémarrer celui-ci ➢ étape 1/7 choisir français 3 ➢ étape 2/7 Pour Région choisissez « France » et pour Fuseau horaire choisissez « France » également. ➢ étape 3/7 Choisissez « option suggérée » - « France ». ➢ étape 4/7 ▪ Vous pouvez choisir l'option « Tout effacer et utiliser le disque entier », ce qui est conseillé. Attention : Mais dans ce cas vous perdrez vos fichiers et vos systèmes d'exploitations existants sur la machine. ▪ Vous pouvez aussi utiliser l'option « installer les deux côte à côte » pour conserver vos systèmes d'exploitation, ou l'option « Définir les partitions manuellement » pour allouer une capacité mémoire au système que vous allez installer. ➢ étape 5/7 Renseigner les champs par votre nom d'utilisateur et votre mot de passe. ➢ étape 6/7 Cette étape prépare l'installation du système. ➢ Étape 7/7 : Cliquer sur « Installer » pour installer le système. 4 2 Librairie OpenCV 2.1 Présentation de la librairie OpenCV (Open Source Computer Vision) est une librairie compatible avec le langage C++ et comportant de multiples fonctions dédiées à la programmation pour la vision en temps réel. Elle est publiée sous une licence BSD et est gratuite pour un usage tant scolaire que commercial. Elle possède plus de 500 algorithmes optimisés et se structure de la façon suivante : CV, CVAUX Image processing And vision algotithms HighGUI GUI, Images and Video I/O CXCORE Basic structures and algorithms XML support, drawing functions CV & CVAUX : traitement d'images ➢ ➢ ➢ ➢ ➢ ➢ ➢ Gradient, contours, coins et contours actifs, Morphomath (érosion, dilatation, fermeture...) Filtrages divers (lissage, rehaussement de contraste, suppression de fond...) Conversion d’espace couleur (RGB, HSV, YcbCr...) Étiquetage, manipulation de contours, Transformations diverses (Fourier, Hough...) Histogrammes Analyse de mouvement et suivi 5 ➢ ➢ ➢ ➢ ➢ Suivi d’objets, flot optique... Reconstruction Calibration, mise en correspondance... Détection et reconnaissance de formes Détection de visages et autres formes particulières. CXCORE & HIGHGUI ➢ ➢ ➢ ➢ ➢ ➢ ➢ ➢ ➢ Structures élémentaires matrices, tableaux, listes, files, graphes, arbres... opérateurs standards sur ces structures, Dessin de primitives géométriques lignes, rectangles, ellipses, polygones... et texte. Manipulation des images et des séquences lecture, écriture... Interface utilisateur fenêtre, entrées/sorties utilisateur. CXCORE : nombreuses fonctions de dessin ➢ ➢ ➢ ➢ lignes, cercles, ellipses, arcs, … Polygone plein ou contours Textes (avec différentes fonts) Trousse à outils pour gérer les couleurs, les tailles,.. 2.2 Installation de la librairie 2.2.1 Pré-requis Pour installer OpenCV, vous devez d'abord disposer de la connexion internet • Installer un éditeur de texte (nous vous conseillons d'utiliser gedit et geany) pour les installer, ouvrez un terminal ( Application – Accessoires – Terminal) – entrer la commande : sudo apt-get install gedit, puis valider – entrer par la suite sudo apt-get install geany, puis valider • Installer le paquet lib*dev en entrant dans un terminal la commande sudo apt-get install lib*dev, puis valider • Installer un compilateur C++. Nous vous conseillont d'utiliser g++. Vous pouvez l'installer avec la commande sudo apt-get install g++ 6 Installer un compilateur C. Nous vous conseillons gcc. Vous pouvez l'installer • par la commande sudo apt-get install gcc 2.2.2 Installation Nous vous conseillons la version Opencv-2.2. Pour son installation, vous pouvez suivre la procédure ci-dessous. Dans un terminal, exécuter les commandes : ➢ sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformatdev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev ➢ wget http://sourceforge.net/projects/opencvlibrary/files/opencvunix/2.2/OpenCV-2.2.0.tar.bz2 ➢ tar xfv OpenCV-2.2.0.tar.bz2 ➢ rm OpenCV-2.2.0.tar.bz2 ➢ cd OpenCV-2.2.0 ➢ mkdir opencv.build ➢ cd opencv.build ➢ cmake .. ➢ make ➢ sudo make install ➢ sudo gedit /etc/ld.so.conf.d/opencv.conf Un editeur de texte gedit va s'ouvrir. Ajouter cette ligne au f ichier, sauvegarder, et fermer. /usr/local/lib ➢ sudo ldconfig ➢ sudo gedit /etc/bash.bashrc Une page va s'ouvrir. Ajouter à la fin de la page cette ligne puis sauvegarder et fermer. 7 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH Vous pouvez désormais utiliser les ressources de la librairy d'Opencv. Pour utiliser d'autres versions d'Opencv, vous pouvez aller sur le site : http://karytech.blogspot.com/ 3 QtCreator 3.1 Présentation QtCreator est un logiciel de développement graphique multiplateforme orienté C++. C'est un outil très pratique pour la conception d'interfaces graphiques et très rapide par rapport à ses concurrents. Il comporte un grand nombre de modèles de classe dont on 8 peut accéder facilement à la documentation, et dont on peut se baser pour développer une application. Pour plus d'informations, se référer à note d'application sujet1 : utilisation d'OpenCV dans un environnement Qt de Yousri ABID du projet P11A09 « Génération d'alertes par traitement d'images ». 3.2 Installation Il est possible d'installer Qt à partir de son CD d'installation. Sous ubuntou, il est aussi possible de l'installer à partir du gestionnaire des paquets synaptic en procédent comme suit : Système → Administration → Gestionnaire de paquets synaptic → qtcreator 4 Exécution d'une application C++/OpenCV sous Linux Dans cette partie nous verrons comment compiler un programme C/C++ sous linux à partir du terminal. Pour ce faire nous proposons la démarche suivante : ➢ Regrouper l'ensemble des programmes à compiler dans un même dossier. Il est indéniable d'avoir un fichier d'extension .cpp (main.cpp) qui comporte la fonction int main(...), qui est l'entrée principale du programme. ➢ Par la suite il faut créer un fichier nommé Makefile et qui le contenu suivant : all: g++ -Wall -o exemple main.cpp `pkg-config --cflags --libs opencv` clean: rm -rf exemple Pour remarque, on utilise ici un compilateur g++. Pour compiler un code en langage C, il serait judicieux d'utiliser un compilateur gcc et donc il faut 9 remplacer dans le Makefile g++ par gcc. On compile ici uniquement le programme main.cpp. S'il y a d'autres programmes .cpp il faut les ajouter à suite du main.cpp L'ajout de 'pkg-config --cflags --libs opencv` est nécessaire pour utiliser les librairies d'OpenCV ➢ Une fois le Makefile créé, il faut se mettre dans le répertoire où se trouvent les programmes à compiler à l'aide de la commande cd nom_répertoire_fils ➢ Une fois dans le répertoire, exécuter la commande make pour compiler ➢ Un fichier binaire sera générer. Dans notre cas il sera nommé exemple. Exécuter la commande ./exemple pour exécuter le programme. ➢ Si le programme comporte des erreurs, il faut les corriger puis recompiler. Le fichier binaire ne sera générer que lorsque le programme ne comportera plus d'erreurs. ➢ Pour utiliser des fonctions d'OpenCV, il faut inclure les librairies comportant ces fonctions en tête du programme à l'aide de la directive # include <nom_librairie> 5 Exécution d'une application Qt sous Linux Pour compiler un programme Qt à partir d'un terminal, nous proposons la démarche suivante : ➢ Mettre le programme .cpp à compiler dans un dossier (appelé essai par exemple) ➢ Se mettre dans le répertoire à l'aide de la commande cd nom_répertoire_fils ➢ Exécuter la commande qmake -project. Un fichier .pro sera créé. ➢ Exécuter par la suite la commande qmake. Un Makefile sera créé. ➢ Exécuter la commande make. Il sera créé un fichier binaire. ➢ Exécuter enfin la commande ./nom_fichier_binaire, pour exécuter le programme. 10 Exemple Pour vérifier le bon fonctionnement de Qt sur votre machine, nous vous proposons d'essayer le programme suivant : #include <QApplication> #include <QLabel> int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new Qlabel(" Ca marche !"); label->show(); return app.exec(); } Si vous avez appelé votre dossier essai, vous devez avoir comme résultat : 6 Configuration d'une caméra IP sous Linux Pour configurer une caméra IP sous linux, il faut d'abord fixer une adresse IP au PC et une autre à la caméra. Les deux adresses doivent être choisies de façon à ce que le PC et la caméra appartiennent au même réseaux. Par la suite il faut se connecter au réseau de la caméra à partir du gestionnaire des réseaux (NetworkManager par exemple). Pour plus d'informations sur cette partie, se réferer à : • la note d'application sujet3 : Acquisition d'images d'une caméra IP sous Qt de Ndack THIAM du projet P11A09 « Génération d'alertes par traitement d'images ». 11 • la note d'application procédure d'installation et de mise en œuvre du système d'analyse automatique de postures de Ilham DERJI du projet « P10A08 Analyse automatique de postures ». Conclusion Les différents modes d'installation et d'utilisation des outils décrits ci-dessus ainsi que les versions de logiciels conseillées, sont ceux que nous utilisons actuellement et pour lesquels nous avons de bons résultats. Compte tenu de l'évolution perpétuelle des produits informatiques, il serait intéressant de s'adapter aux nouveaux produits et d'utiliser leurs nouvelles fonctionnalité, ce qui n'épargne pas des problèmes de compatibilité entre logiciels. Les recherches bibliographiques et les forums de discussion nous ont été d'une aide précieuse pour pallier à de multiples « bugs » auxquels nous avons été confronté. 12