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

Documents pareils