Au cours des dernières années plusieurs systèmes de reconnaissance de formes ont été
développés en se basant sur l'extraction d’un maximum d'informations pertinentes décrivant
l'objet et de trouver une représentation fiable de ces objets.
Dans ce mémoire nous avons présenté une méthode de modélisation basée sur quelques
caractéristiques extraites à partir des points de contour telles que les points de courbure, les
parties délimitées par l’enveloppe convexe et le contour de la silhouette.
Les caractéristiques extraites ont été testées et validées pour sélectionner les meilleurs
attributs qui vont décrire fidèlement la forme. Ces attributs ont été ensuite exploités pour
reconnaitre des formes dans des différentes bases de données en utilisant une mesure de
similarité bien définie.
L’approche proposée a été validée sur plusieurs bases de données : (Kimia-99, Kimia-216,
MPEG-7).
Comme résultat de notre travail nous avons réussi à apporter des améliorations aux travaux
déjà effectués.
Une approche multi-agents pour la détection de contoursSlim Namouchi
Projet de Fin d’études: Diplôme d’ingénieur en informatique et Multimédias
Encadrant: M. Abdesslam BENZINOU, Maître de conférences HDR à l’ENIB
Encadrant: M. Imed Riadh FARAH, Maître de conférences HDR à l’ISAMM
Une approche multi-agents pour la détection de contoursSlim Namouchi
Projet de Fin d’études: Diplôme d’ingénieur en informatique et Multimédias
Encadrant: M. Abdesslam BENZINOU, Maître de conférences HDR à l’ENIB
Encadrant: M. Imed Riadh FARAH, Maître de conférences HDR à l’ISAMM
La deuxième partie sur le cours Business Intelligence et Data warehouse.
Si vous avez des questions, des remarques ou des propositions afin d’améliorer le contenu et la qualité de ce cours, n' hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
A. DAROUICHI
Join us for an enlightening presentation that delves into the fascinating world of Convolutional Neural Networks (CNNs). CNNs have emerged as a groundbreaking technology in the field of deep learning, revolutionizing various applications ranging from image recognition and natural language processing to autonomous vehicles and medical diagnosis.
Our presentation will provide a comprehensive overview of CNNs, exploring their architecture, capabilities, and real-world applications. We will begin by unraveling the fundamental concepts underlying CNNs, such as convolution, pooling, and non-linear activation functions. Through intuitive explanations and visual aids, we will demystify the inner workings of CNNs, making the topic accessible to both technical and non-technical audiences.
As we delve deeper, we will showcase how CNNs excel in image recognition tasks, leveraging their ability to automatically learn and extract meaningful features from visual data. We will discuss the hierarchical nature of CNN architectures, which enables them to capture both low-level features like edges and textures, as well as high-level semantic representations. Through engaging examples and case studies, we will illustrate how CNNs have achieved state-of-the-art performance in image classification, object detection, and image segmentation tasks.
Beyond image processing, our presentation will explore the versatility of CNNs in various domains. We will explore their applications in natural language processing, where they have proven effective in tasks like sentiment analysis, text classification, and machine translation. Additionally, we will delve into their usage in autonomous vehicles, where CNNs enable object detection, lane recognition, and even real-time decision-making.
Furthermore, we will highlight the impact of CNNs in the medical field, where they have revolutionized medical imaging analysis, aiding in the early detection of diseases such as cancer and Alzheimer's. Through remarkable case studies, we will demonstrate how CNNs have enhanced the accuracy and efficiency of medical diagnoses, potentially saving countless lives.
Lastly, we will discuss the latest advancements and ongoing research in the realm of CNNs, including emerging architectures, transfer learning, and explainability. We will also touch upon the ethical considerations and challenges associated with the widespread adoption of CNNs, ensuring a holistic understanding of this powerful technology.
Whether you are a student, researcher, industry professional, or simply curious about the cutting-edge developments in artificial intelligence, this presentation on CNNs promises to enlighten and inspire. Prepare to witness the incredible capabilities of CNNs and discover how they are reshaping the world around us.
Nous présentons les modèles N-grammes qui constituent l'une des approches basiques du traitement automatique du langage naturel (TLN ou NLP en anglais). Leur compréhension permet de mieux aborder les méthodes plus performantes, notamment celles qui utilisent les architectures de réseaux de neurones. Seront détaillés ici les fondements mathématiques, les techniques pratiques à travers des exemples illustratifs ainsi que des implémentations informatiques de ces méthodes.
YOUTUBE : https://youtube.com/playlist?list=PLzjg2z2kYUrh_RIcPUN2J7UyFBvZu2z_L
On présente ici un réseau récurrent séquence à séquence (ou sequence to sequence: seq2seq) pour la traduction automatique. Nous présentons ci-dessous une architecture simplifiée basée sur un réseau récurrent composé le plus souvent de cellules LSTM avec un mécanisme d'attention.
Le réseau RNN, et tout particulièrement la variante LSTM, permettent de créer des modèles Séquence à séquence (Seq2seq) pour la traduction automatique. Mais le problème du goulot d'étranglement entre l'encodeur et le décodeur a conduit à l'utilisation d'un mécanisme d'attention pour faciliter l'accès à l'information pertinente contenue dans les états cachés de l'encodeur lors de la phase de décodage et garantir un bon alignement des mot dans les séquences en sortie.
Liens pour les vidéos :
I- Introduction
https://youtu.be/JhH6MSST2ic
II- Principes du mécanisme d'attention
https://youtu.be/EjhPvC9aizs
III- Machine Translation avec Attention
https://youtu.be/5avpZ0Ea4x8
IV- Graphe et matrice des liaisons pertinentes
https://youtu.be/1zFXWT4cuKI
Deep learning refers to machine learning techniques that use multiple layers of non-linear information processing to learn representations of data. It has emerged as an area of machine learning research that is impacting signal and information processing. Deep learning can be used for unsupervised learning with models like deep belief networks, supervised learning with deep neural networks, or hybrid approaches that combine unsupervised and supervised techniques.
Une introduction au Big Data, NoSQL et Open Data.
Il présente les avantages de NoSQL.
Une présentation des différents types des bases de données NoSQL.
Définition du data mining, intervention du Data Mining dans une chaîne décisionnelle, applications, méthodes de travail, processus KDD (ECD, Extraction de connaissances à partir de Données), méthode SEMMA de SAS, méthode CRISP-DM, etc.
Image Segmentation Using Deep Learning : A surveyNUPUR YADAV
1. The document discusses various deep learning models for image segmentation, including fully convolutional networks, encoder-decoder models, multi-scale pyramid networks, and dilated convolutional models.
2. It provides details on popular architectures like U-Net, SegNet, and models from the DeepLab family.
3. The document also reviews datasets commonly used to evaluate image segmentation methods and reports accuracies of different models on the Cityscapes dataset.
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
Ce cours introduit les bases de données orientées colonnes et leurs spécificités. Il détaille par la suite l'architecture d'HBase et explique les moyens nécessaires à sa mise en place et à son exploitation.
La deuxième partie sur le cours Business Intelligence et Data warehouse.
Si vous avez des questions, des remarques ou des propositions afin d’améliorer le contenu et la qualité de ce cours, n' hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
A. DAROUICHI
Join us for an enlightening presentation that delves into the fascinating world of Convolutional Neural Networks (CNNs). CNNs have emerged as a groundbreaking technology in the field of deep learning, revolutionizing various applications ranging from image recognition and natural language processing to autonomous vehicles and medical diagnosis.
Our presentation will provide a comprehensive overview of CNNs, exploring their architecture, capabilities, and real-world applications. We will begin by unraveling the fundamental concepts underlying CNNs, such as convolution, pooling, and non-linear activation functions. Through intuitive explanations and visual aids, we will demystify the inner workings of CNNs, making the topic accessible to both technical and non-technical audiences.
As we delve deeper, we will showcase how CNNs excel in image recognition tasks, leveraging their ability to automatically learn and extract meaningful features from visual data. We will discuss the hierarchical nature of CNN architectures, which enables them to capture both low-level features like edges and textures, as well as high-level semantic representations. Through engaging examples and case studies, we will illustrate how CNNs have achieved state-of-the-art performance in image classification, object detection, and image segmentation tasks.
Beyond image processing, our presentation will explore the versatility of CNNs in various domains. We will explore their applications in natural language processing, where they have proven effective in tasks like sentiment analysis, text classification, and machine translation. Additionally, we will delve into their usage in autonomous vehicles, where CNNs enable object detection, lane recognition, and even real-time decision-making.
Furthermore, we will highlight the impact of CNNs in the medical field, where they have revolutionized medical imaging analysis, aiding in the early detection of diseases such as cancer and Alzheimer's. Through remarkable case studies, we will demonstrate how CNNs have enhanced the accuracy and efficiency of medical diagnoses, potentially saving countless lives.
Lastly, we will discuss the latest advancements and ongoing research in the realm of CNNs, including emerging architectures, transfer learning, and explainability. We will also touch upon the ethical considerations and challenges associated with the widespread adoption of CNNs, ensuring a holistic understanding of this powerful technology.
Whether you are a student, researcher, industry professional, or simply curious about the cutting-edge developments in artificial intelligence, this presentation on CNNs promises to enlighten and inspire. Prepare to witness the incredible capabilities of CNNs and discover how they are reshaping the world around us.
Nous présentons les modèles N-grammes qui constituent l'une des approches basiques du traitement automatique du langage naturel (TLN ou NLP en anglais). Leur compréhension permet de mieux aborder les méthodes plus performantes, notamment celles qui utilisent les architectures de réseaux de neurones. Seront détaillés ici les fondements mathématiques, les techniques pratiques à travers des exemples illustratifs ainsi que des implémentations informatiques de ces méthodes.
YOUTUBE : https://youtube.com/playlist?list=PLzjg2z2kYUrh_RIcPUN2J7UyFBvZu2z_L
On présente ici un réseau récurrent séquence à séquence (ou sequence to sequence: seq2seq) pour la traduction automatique. Nous présentons ci-dessous une architecture simplifiée basée sur un réseau récurrent composé le plus souvent de cellules LSTM avec un mécanisme d'attention.
Le réseau RNN, et tout particulièrement la variante LSTM, permettent de créer des modèles Séquence à séquence (Seq2seq) pour la traduction automatique. Mais le problème du goulot d'étranglement entre l'encodeur et le décodeur a conduit à l'utilisation d'un mécanisme d'attention pour faciliter l'accès à l'information pertinente contenue dans les états cachés de l'encodeur lors de la phase de décodage et garantir un bon alignement des mot dans les séquences en sortie.
Liens pour les vidéos :
I- Introduction
https://youtu.be/JhH6MSST2ic
II- Principes du mécanisme d'attention
https://youtu.be/EjhPvC9aizs
III- Machine Translation avec Attention
https://youtu.be/5avpZ0Ea4x8
IV- Graphe et matrice des liaisons pertinentes
https://youtu.be/1zFXWT4cuKI
Deep learning refers to machine learning techniques that use multiple layers of non-linear information processing to learn representations of data. It has emerged as an area of machine learning research that is impacting signal and information processing. Deep learning can be used for unsupervised learning with models like deep belief networks, supervised learning with deep neural networks, or hybrid approaches that combine unsupervised and supervised techniques.
Une introduction au Big Data, NoSQL et Open Data.
Il présente les avantages de NoSQL.
Une présentation des différents types des bases de données NoSQL.
Définition du data mining, intervention du Data Mining dans une chaîne décisionnelle, applications, méthodes de travail, processus KDD (ECD, Extraction de connaissances à partir de Données), méthode SEMMA de SAS, méthode CRISP-DM, etc.
Image Segmentation Using Deep Learning : A surveyNUPUR YADAV
1. The document discusses various deep learning models for image segmentation, including fully convolutional networks, encoder-decoder models, multi-scale pyramid networks, and dilated convolutional models.
2. It provides details on popular architectures like U-Net, SegNet, and models from the DeepLab family.
3. The document also reviews datasets commonly used to evaluate image segmentation methods and reports accuracies of different models on the Cityscapes dataset.
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
Ce cours introduit les bases de données orientées colonnes et leurs spécificités. Il détaille par la suite l'architecture d'HBase et explique les moyens nécessaires à sa mise en place et à son exploitation.
Atelier de travail réalisé par Wiki Info Global a Kazal dans le cadre d'une série de séances de formation et de sensibilisation de la jeunesse haïtienne sur les métiers du numérique.
Étude et résolution numérique de deux modèles basés sur des équations aux dér...Ayoub Boudlal
Ce projet traite le débruitage d’images numériques corrompues en utilisant deux modèles basés sur des équations aux dérivées partielles. Le premier modèle étudié est l’équation de la chaleur, il repose sur un processus de diffusion isotrope pour un lissage de l’image traitée. Ce modèle présente un inconvénient majeur car il ne fait pas distinction entre le bruit et les contours de l’image. Pour remé- dier à cet inconvénient, la notion de diffusion anisotrope a été introduite, dont le principe est de diffuser fortement dans les zones à faibles gradients (zones ho- mogènes), et faiblement dans les zones à forts gradients (contours), c’est le cas du modèle de Pérona-Malik.
La résolution de ces modèles est effectuée en utilisant la méthode des différences finies. Les schémas utilisés sont implémentés sur Matlab et une comparaison de ces schémas est faite.
Enfin, un aperçu sur l’utilisation de la boîte à outils "Imagerie" pour le traitement d’images est présenté.
La question de l’image perçue de son territoire alimente les réflexions des collectivités qui élaborent, mettent en œuvre ou cherchent à évaluer leur démarche d’attractivité et de marketing territorial. Pour objectiver ces discussions et approfondir la connaissance de l’image des territoires, en particulier celle de ses fondateurs et partenaires, la Chaire A&NMT a lancé une enquête nationale auprès d’un échantillon représentatif de la population française.
Quelles pratiques numériques créatives & collaboratives pour l'apprentissage ?
Représentation de formes par approche contour
1. République Algérienne Démocratique et Populaire
Ministère de l’Enseignement Supérieur et la Recherche Scientifique
Université des Sciences et de la Technologie Houari Boumediene
Faculté d’Electronique et d’informatique
Département d’informatique
Mémoire de Licence
Spécialité
ING.SYS.INFO. & LOGICIELES
Thème
Représentation de formes par approche contour
Proposé par : Présenté par :
M elle
N .Laiche AIDA Mohamed
SEMAOUI Abdessalam
Devant le jury composé de :
M. LARABI Président
Mme
DAHMANE Membre
Numéro du projet :004
Promotion : 2014/2015
2. Ce modeste travail est un aboutissement L’aboutissement de tant d’années de travail et
de sacrifices. Et ce n’est pas que de moi qu’il s’agit. Certes il m’a fallut à moi aussi consentir
efforts et sacrifices, mais je veux parler surtout de mes parents, mon père et ma mère d’abord,
mes frères et sœurs ainsi que tous ceux qui ont contribué de prêt ou de loin à ma formation et
à mon éducation, avec tant de patience, d’inquiétudes et de persévérance. Sans oublier mes
grands mères, oncles et tantes ainsi si que mes beaux frères et amis pour leurs
encouragements et leur précieux soutien.
En premier lieu je remercie Dieu qui nous a aidés à accomplir ce travail.
Ma profonde reconnaissance à notre promotrice Mlle LAÏCHE Nacéra pour ses précieux
conseils et son indéfectible soutien tout au long de la préparation de ce projet.
Semaoui abdessalam
3. Je souhaite tout d'abord remercier le dieu, qui nous a donné le courage et la
patience pour réaliser ce travail.
Je voudrais remercier tout particulièrement mes parents, Sans leurs soutiens et
conseils, mes accomplissements n’auraient pas eu lieu, ils ont été derrière moi
dans chacun des mes pas tout au long de ma vie, ma plus profonde gratitude
leurs ai exprimé, aucun mot ne pourrai qualifier l’estime qui je leur porte ni le
bien qu’ils m’ont fait, apporter et donner.
Merci à Madame LAICHE pour nous avoir proposé ce sujet, et pour encadré
notre Mémoire.
Je tiens à exprimer mes vifs remerciements aux personnes qui ont contribué à la
Réalisation et au bon déroulement de ce projet.
Mohamed
4. 1
Introduction Générale
Avec la parole, l’image constitue l’un des moyens les plus importants qu’utilise l’homme
pour communiquer avec autrui. C’est un moyen de communication universel dont la richesse
du contenu permet aux êtres humains de tout âge et de toute culture de se comprendre.
C’est aussi le moyen le plus efficace pour communiquer, chacun peut analyser l’image à sa
manière, pour en dégager une impression et en extraire des informations précises.
De ce fait, le traitement d’images est l’ensemble des méthodes et techniques opérant sur
celles-ci, dans le but de rendre cette opération possible par l’usage de l’outil informatique. Et
ainsi de la rendre plus simple, plus rapide, plus efficace et plus agréable, en plus d’améliorer
éventuellement l’aspect visuel de l’image et d’en extraire des informations jugées pertinentes.
La reconnaissance des formes a pour objet de simuler les activités de perception sensorielle
du cerveau. En premier lieu, la perception visuelle et auditive, y compris dans des bandes
spectrales non perçues par l'homme (infra rouge, rayons X, ...).
La reconnaissance a besoin d’un modèle de l’objet. Pour l’être humain, ce modèle correspond
à une représentation mentale de l’objet qui peut être apprise en retenant les caractéristiques les
plus discriminantes de l’objet. Les caractéristiques peuvent être toutes sortes d’attributs de
l’objet : forme, couleur, texture, taille, volume, etc.
Des méthodes générales ont été développées en reconnaissance des formes pour extraire
automatiquement des informations de données sensibles afin de caractériser les classes de
formes (apprentissage) et d'assigner automatiquement des données à ces classes
(reconnaissance). La mise en œuvre de ces méthodes générales pour des problèmes
particuliers amène à introduire la notion de processus de reconnaissance qui pose la question
de l'intégration des méthodes de la reconnaissance de formes.
L’objectif de notre projet est de proposer une méthode de description qui exploite les points
de contour d’une silhouette pour en extraire quelques caractéristiques et choisir celles qui
seront utilisées pour modéliser et reconnaitre des formes similaires à partir d’une base de
données préétablie.
Notre mémoire est organisé sous forme de trois chapitres principaux :
· Dans le premier chapitre nous allons citer quelques notions de base sur les images et le
traitement d’image.
· Le second chapitre est dédié à la conception, nous définirons les différents
prétraitements effectués sur les images, et les étapes de modélisation suivies. Nous
terminerons par l’explication de la méthodologie suivie pour réaliser la reconnaissance
d’image proprement dite.
· Le troisième chapitre portera sur l’expérimentation où seront visualisées les différents
composants de l’application développée, ainsi que les résultats obtenus par notre
méthode de reconnaissance.
5. 2
Chapitre 1
NOTIONS DE BASE
I.1 Introduction :
Partout à travers le monde et depuis son origine l'homme cherche toujours à
comprendre ce qu'il entoure, pour faciliter cette tache, il a représenté les objets par des
images.
Chaque image porte des informations très importantes représentées par un ensemble de
caractéristique sur lesquelles le domaine d'intelligence artificiel est base pour l'obtention d'une
bonne interprétation et un meilleur taux de reconnaissance.
I.2 Traitement d’image :
Le traitement d'images est une discipline de l'informatique et des mathématiques
appliquées qui étudie les images numériques et leurs transformations, dans le but d'améliorer
leur qualité ou d'en extraire de l'information.
La compréhension du traitement d'images commence par la compréhension de ce qu'est une
image. [1]
I.3 Qu'est ce qu'une image?
Une image est une représentation visuelle, voire mentale, de quelque chose (objet, être
vivant et/ou concept). Elle peut être naturelle (ombre, reflet) ou artificielle
(peinture, photographie. [2]
I.4 Comment obtenir une image?
Pour obtenir une image, il faut de la lumière. Cette dernière est émise d’une ou
plusieurs sources telles que le soleil, des spots, des néons, etc. Cette lumière est représentée
par des rayons qui partent de la source dans toutes les directions.
Généralement, lorsqu'un rayon de lumière rencontre un objet, il en absorbe une partie
correspondant à sa couleur, et disperse le reste en une infinité de rayons qui peuvent
éventuellement être captés par un œil ou tout autre appareil optique . [3]
6. 3
I.5 Les type d'images :
Les images produites et traitées par les ordinateurs sont de deux types: les
images bitmap et les images "vectorielles".
I.5.1 : Les images bitmap :
Une image bitmap est composée en mode point. Le système de codage le plus
universel consiste en effet à décomposer la représentation graphique, l'image, en un certain
nombre de points élémentaires caractérisés par leurs coordonnées spatiales et leur couleur. Il
s'agit donc d'une représentation graphique définie par l'ensemble des points qui la composent.
On voit fort bien sur l'image de Jumbo ci-contre la forme en escalier -le crénelage- du tracé
qui correspond aux pixels qui le constituent. [4]
I.5.2 : Les images vectorielles :
La description vectorielle d'une image consiste en une description géométrique: le
document numérisé prend donc la forme d'une suite de formules mathématiques décrivant les
formes élémentaires constituant l'image (carrés, rectangles, ellipses, cercles, courbes, etc.).
Chaque forme élémentaire constitue un objet et se voit assigné un certain nombre d'attributs
tels que la couleur, la transparence, l'épaisseur du trait, le type de trait (pointillé, etc.)
Figure 1.1: comparaison entre une image vectorielle et image bitmap
Le stockage d'une image de type vectoriel est donc très différent de celui d'une image
de type bitmap: il consiste en la mémorisation de la représentation des coordonnées des points
caractéristiques des formes qui constituent l'image. Il s'agit dès lors d'une représentation
relative que l'on peut qualifier de "symbolique".[4]
7. 4
I.6 Quelques opérateurs de traitement
Par analogie avec les opérateurs mathématiques, on appelle opérateurs de traitement
d'images des traitements plus ou moins complexes prenant en entrée une image ou un
ensemble d'informations. [1]
Parmi ces opérateurs on peut citer ce qui suit :
I.6.1 Les filtres :
Le filtre Gaussien est un filtre isotrope spécial qui consiste à éliminer le bruit existant
dans les images brutes.
I.6.2 Détecteurs de contours :
Les opérateurs de détection des contours consistent à extraire tous les contours des objets
contenants dans les images. les plus utilisées sont :
- Canny : est un détecteur utilisé en traitement d'images pour la détection des
contours.
- Deriche : C'est une variante du filtre de Canny tout aussi efficace.
- Sobel : est un opérateur utilisé en traitement d'image pour la détection de contours. Il
s'agit d'un des opérateurs les plus simples qui donne toutefois des résultats corrects.
- Laplacien : C'est un détecteur de contour du deuxième ordre, le contour se trouve là
ou le laplacien change de signe (passage par zéro de la dérivée seconde).
- Marr Hildreth : Il représente le laplacien d'une gaussienne, une détecteur de
contours permettant de limiter les amplifications des hautes fréquences des dérivées secondes
par une gaussienne de variance ajustable.
I.7 La reconnaissance des Formes :
On désigne par reconnaissance de formes (ou parfois reconnaissance de motifs) un ensemble
de techniques et méthodes visant à identifier des motifs à partir de données brutes afin de
prendre une décision dépendant de la catégorie attribuée à ce motif. On considère que c'est
une branche de l’intelligence artificielle qui fait largement appel aux techniques
d’apprentissage automatique et aux statistiques.
Les formes ou motifs à reconnaître peuvent être de nature très variée. Il peut s'agir de contenu
visuel (code barre, visage, empreinte digitale...) ou multi spectrales (images satellitaires) et
bien d'autres [5].
I.8 Domaines d’application :
La reconnaissance de formes est utilisée dans plusieurs domaines d’activités. Parmi ces
domaines on peut citer :
¨ Recherche d'images par le contenu :
8. 5
Cette technologie est actuellement intéressante pour la recherche de données
sur l'imagerie médicale, ou cartographiques… [6]
¨ Classification de documents :
Son activité est essentielle dans de nombreux domaines économiques : elle
permet d'organiser des corpus documentaires, de les trier, et d'aider à les exploiter
dans des secteurs tels que l'administration, l'aéronautique, la recherche sur internet, les
sciences.[7]
¨ Reconnaissance de l’écriture manuscrite :
Cette technologie fait appel à la reconnaissance de forme, mais également au
traitement automatique du langage naturel. Cela veut dire que le système, tout comme
le cerveau humain, reconnaît des mots et des phrases existant dans un langage connu
plutôt qu’une succession de caractères. [8]
¨ judiciaires :
les services de police possèdent de grandes collections d’indices visuels
(visages, empreintes) exploitables par des systèmes de recherche d’images.
¨ Militaires :
bien que peu connues du grand public, sont sans doute les applications les plus
développées [9] , reconnaissance d’engins ennemis via images radars, systèmes de
guidage, identification de cibles via images satellites en sont quelques exemples.
I.9 Les types des descripteurs :
La performance des systèmes de recherche ou reconnaissance dépend pour une grande
partie du choix des descripteurs employés et des techniques associées à leur extraction. De
nombreux descripteurs sont utilisés dans les systèmes de recherche pour décrire les formes.
Les descripteurs les plus utilisées sont :
· Les descripteurs de couleurs :
La couleur est une caractéristique riche d’information et très utilisée pour la
représentation des images , elle forme une partie significative de la vision humaine, la
couleur est devenue la première signature employée pour la recherche d’images par le
contenu en raison de son invariance par rapport a l’échelle, la translation et la
rotation, ces valeurs tridimensionnelles font que son potentiel discriminatoire soit
supérieur à la valeur en niveaux de gris des images , une indexation couleur repose sur
deux principaux choix [10.11 ]: l’espace colorimétrique et le mode de représentation
de la couleur dans cet espace.
· Les descripteurs de Textures :
9. 6
La texture est le second attribut visuel largement utilisé dans la recherche
d’images par le contenu, elle permet de combler un vide que la couleur est incapable
de faire, notamment lorsque les distributions de couleurs sont très proches,
Fondamentalement le texture est définie comme la répétition d’un motif créant une
image visuellement homogène.
De nombreuses approches et modèles ont été proposés pour la caractérisation de la
texture, parmi les plus connues, on peut citer : les méthodes statiques, les méthodes
fréquentielles[12] et les méthodes géométriques[13] .
· Les descripteurs de formes :
La forme est l’un des attributs bas niveau également le plus utilisé pour décrire
le contenu visuel des images. L’importance de la forme pour la recherche d’images
peut être constatée par le simple fait que plusieurs systèmes SRIC incorporent d’une
façon ou d’une autre des descripteurs de formes [14, 15,16]. Ces derniers sont utilisés
pour décrire la structure géométrique générique du contenu visuel. Zhang et al. [17]
ont proposé de classifier les descripteurs de forme en deux familles :
o Descripteurs orientés région : qui décrivent les objets selon la distribution spatiale
des pixels qui les constituent.
o Descripteurs orientés contour : qui décrivent les objets selon leur contour externe.
I.10 Mesure de similarités entre les descripteurs :
La recherche des contenus visuellement similaires est un thème central dans le
domaine de la recherche d’image par le contenu. Pendant la dernière décennie, de nombreuses
méthodes ont été proposes pour identifier des contenus visuels semblables du point de vue de
la couleur, de la texture et de la forme.
10. 7
Lorsque un utilisateur lance une requête, le système effectue une mesure entre le descripteur
de la requête et les descripteurs des images de la base dans l’espace des attributs, les images
sont considérées similaires si la distance entre eux est faible, pour cela, la complexité de
calcul de la distance doit être raisonnable puisque la tache de recherche s’effectue en temps
réel.
Les mesures citées si dessous sont les plus couramment employées pour la recherche
d’images par le contenu :
Ø Distance de Minkowski.
Ø Distance quadratique
Ø Distance de Mahalanobis
Ø Distance d’Earth Mover (EMD)
Ø Distance de Bhattachryya
Ø Divergence de Jeffrey
Ø Intersection d’histogrammes
I.11 Conclusion :
Dans le présent chapitre on a présenté quelques caractéristiques des images et ces
différents types, et aussi nous avons présenté quelques notions de base sur la reconnaissance
des formes et les différentes Mesure de similarités entre les descripteurs.
11. 8
Chapitre 2
CONCEPTION
II.1 Introduction :
Dans ce chapitre, nous allons présenter notre étude conceptuelle cette dernière se
décompose en deux parties importantes :
1. Modélisation.
2. Reconnaissance.
Dans ce qui suit, nous allons voir les prétraitements dont nous avons besoin pour
réaliser notre travail, puis les caractéristiques que nous avons utilisées pour la reconnaissance,
enfin nous verrons la méthode sur laquelle on s’est basé pour effectuer la recherche.
II.2 Modélisation :
II.2.1 Les prétraitements :
L’objectif des prétraitements est de faciliter la caractérisation de la forme ou de l’entité
à reconnaître soit en nettoyant la forme (élimination du bruit) ou en réduisant la quantité
d’information à traiter pour ne garder que les informations les plus significatives.
II.2 .1.1 Le filtrage :
Il sert à réduire le bruit dans une image. Dans notre projet, nous avons on a utilisé le
filtre dit MEDIAN, voici le résultat obtenu pour l’exemple suivant :
Figure 2.1 : Image avant le filtrage (a) et après le filtrage (b)
(a) (b)
12. 9
II.2.1.2 La normalisation :
Il est souhaitable d'avoir un descripteur de forme invariant aux transformations
géométriques. Pour cela nous avons proposé d'appliquer quelques transformations pour
éliminer les problèmes liés au changement d'échelle, translation, la rotation et la symétrie.
II.2.1.2.1 La translation :
C’est le glissement de la silhouette par la translation du centre de gravité (xg,yg) vers le
centre de l’image (h/2, l/2),avec h: la hauteur et l: la largeur de l’image.
La translation se fait par la formule suivante :
X itranslat=xi+(h/2)-xg
Y itranslat=yi+(l/2)-yg
Figure 2.2 :Translation
II.2.1.2.2 La rotation:
On applique une rotation sur la silhouette pour la redresser suivant son ellipse
englobant, elle nécessite un centre de rotation qui est le centre de gravité de la forme et un
angle θ retourné par l’ellipse.
La rotation se fait par la formule suivante :
X irotat = xi cos(θ) + yi sin(θ)
Y irotat = yi cos(θ) + xi sin(θ)
(1)
(2)
13. 10
Figure 2.3 : Rotation
II.2.1.2.3 La symétrie:
Nous avons essayé de résoudre le problème de symétrie des formes en proposant la
transformation suivante :
X iSymetrie= -xi +2* xg
Y iSymetrie= yi
Où (xi ,yi ) est un point de la silhouette .
Figure 2.4 : Symétrie
II.2.1.3 L’extraction du contour :
C’est une étape indispensable à la modélisation des formes. Dans une image en
niveaux de gris, un contour est caractérisé par un changement brutal de la valeur de l’intensité
lumineuse. Le but de l'opération est de transformer cette image en une autre dans laquelle les
contours apparaissent par convention en blanc sur fond noir.[18]
Dans notre cas nous avons utilisé la méthode de Laplacien, qui nous permet d’avoir le
contour interne et externe. Le Laplacien [19] n'est que la dérivée seconde de la fonction de
niveau de gris. Il est défini par :
(3)
(4)
14. 11
Les points de contour sont caractérisés par des passages par zéro du laplacien.
Figure 2.5 : L’image requête (a) et sont contour (b)
II.2.1.4 L’enveloppe convexe :
L’enveloppe convexe d’un objet est l’intersection de tous les sous ensemble
convexes qui l’englobent.
Figure2.6 : L’enveloppe convexe
II.2.2 Modélisation :
Notre but consiste à modéliser géométriquement les formes d’objets en se basant sur les
points de courbure et les parties caractéristiques décrivant la forme de l’objet.
(a) (b)
15. 12
II.2.2.1 Les points de courbure :
Pour les détecter nous avons utilisé l’algorithme de Ramer-Douglas-Peucker
[22] .qui permet de passer en revue tous les points de contour pour en déterminer les points de
courbure en fixant un paramètre. Le but de cette étape est de réduire la quantité d’information
pour ne garder que le nécessaire.
Figure 2.7 : Détermination des points de courbure (seuil=2.8)
II.2.2.2 Extraction des parties :
Chaque partie est délimitée par les points de contour et l’enveloppe convexe, pour les
extraire on a besoin des points de l’enveloppe convexe .voici l’algorithme suivi dans cette
étape :
Entrée :
T : liste contenant les points de contour, T[i]
V : liste contenant les sommets de l'enveloppe convexe, V[i]
Sortie:
Liste_parties : liste contenant une liste de points de contour qui constitue chaque
partie.
Variables : deb_partie, fin_partie;
Début :
Pour chaque V[i] dans V
{ deb_partie=V[i]
Entrée :
T : liste contenant les points de contour, T[i]
V : liste contenant les sommets de l'enveloppe convexe, V[i]
Sortie:
Liste_parties : liste contenant une liste de points de contour qui constitue chaque partie.
Variables : deb_partie, fin_partie;
Début :
Pour chaque V[i] dans V
{ deb_partie=V[i]
fin_partie=V[i+1]
16. 13
fin_partie=V[i+1]
pnt = le point T[j] a condition qu’il soit égale au deb_partie
//on parcoure la liste des points de contour
tantque pnt différent de fin_partie {
Insérée pnt dans Liste_parties[i]
pnt =T [j+1]
j=j+1
}
i=i+1
}
Retourner Liste_parties
Figure 2.8 : L’extraction des parties (surface colorée)
Pour décrire géométriquement les formes de l’objet, nous avons extrait deux types de
caractéristiques, les caractéristiques qui concernent la forme globale et les caractéristiques qui
concernent chaque partie.
II.2.2.3 Les caractéristiques de la forme :
Nous nous sommes basés sur les caractéristiques suivantes :
II.2.2.3.1 La surface de l’enveloppe convexe :
On a calculé la surface de l’enveloppe convexe en utilisant la formule suivante :
SC= ∑ ( − )
pnt = le point T[j] à condition qu’il soit égale au deb_partie
//on parcoure la liste des points de contour
tantque pnt différent de fin_partie {
Insérér pnt dans Liste_parties[i]
pnt =T [j+1]
j=j+1
}
Insérér fin_partie dans Liste_parties[i]
i=i+1
}
Retourner Liste_parties
Fin
(5)
17. 14
Algorithme de calcul de la surface de l’enveloppe :
Valeurs d’entrées :
hull : liste des points de l’enveloppe
Indice : liste des indices des points de l’enveloppe
Nc : nombre de point de l’enveloppe
P1, P2 : point de l’enveloppe.
Valeurs de sorties :
A : réel // A : surface de l’enveloppe
Var i : entier
Début
Pour i de 0 à Nc
Faire
P1=hull[i]
P2=hull[i+1]
A=P1.x * P2.y – P2.x * P1.y
Fait
Fin
II.2.2.3.2 Distances radiales :
Nous avons proposé de calculer les distances entre le centre de gravite de la forme et
les points de courbure en utilisant la formule suivante :
Di= ( − ) + ( − )
Où Di la distance entre le centre de gravite (xc,yc) et un point de courbure (xi,yi) .
Valeurs d’entrées :
hull : liste des points de l’enveloppe
Indice : liste des indices des points de l’enveloppe
Nc : nombre de point de l’enveloppe
P1, P2 : point de l’enveloppe.
Valeurs de sorties :
A : réel // A : surface de l’enveloppe
Var i : entier
Début
Pour i de 0 à Nc
Faire
P1=hull[i]
P2=hull[i+1]
A=P1.x * P2.y – P2.x * P1.y
Fait
A=
Fin
(6)
18. 15
Figure 2.9: la distance entre le centre de gravite et les points de courbure
II.2.2.4 Les caractéristiques de chaque partie :
Dans le but de comparer les parties de l’image requête avec celles des images de la base
modèle, nous avons extrait les caractéristiques suivantes :
II.2.2.4.1 La surface :
La surface a été calculée de deux manières différentes. Dans la première méthode,
nous avons utilisé les trapèzes, car la forme de la partie dont on cherche à calculer la surface
n’est pas une forme géométrique classique. Cette méthode nous permet d’avoir toujours une
surface trapézoïdale à calculer. Notons toutefois qu’aux extrémités nous avons un triangle
assimilable à un trapèze dont la longueur de la petite base est égale à zéro. Voici l’algorithme
utilisé :
Entrée :
Pci : point de courbure
Ppi : projection du Pci sur le segment qui relie les extrémités de la partie
Sortie :
Surface : réel
Entrée :
Pci : point de courbure
Ppi : projection du Pci sur le segment qui relie les extrémités de la partie
Sortie :
Surface : réel
19. 16
Début :
Pour chaque Pci :
{d1=distance (Pci, Ppi)
d2=distance (Pci+1, Ppi+1)
dProjete=distance(Ppi, Ppi)
surface= surface+ ( (d1+d2)* dProjete/ 2)
}
Retourner surface
Fin
Figure2.10: Calcule des surfaces par les trapèzes
Dans la deuxième méthode, nous avons considéré chaque partie comme étant une silhouette
ensuite nous avons appliqué les moments d’ordre 0 (m00).
Cette dernière méthode nous a donné plus de précision sur la surface des parties.
Où la formule utilisée est : M00=∑ ∑ ( , )
Dans la quelle I(x,y) désigne le niveau de gris de l’image .
Début :
Pour chaque Pci :
{d1=distance (Pci, Ppi)
d2=distance (Pci+1, Ppi+1)
dProjete=distance(Ppi, Ppi)
surface= surface+ ( (d1+d2)* dProjete/ 2)
}
Retourner surface
Fin
20. 17
II.2.2.4.2 La distance entre le milieu et les points de courbures :
Dans cette étape on a calculé la distance entre le milieu M (milieu du segment qui relie
le début et la fin de chaque partie AB) et les points de courbure comme le montre la figure
suivante :
Figure 2.11 : Distance entre le milieu et les points de courbures
II.2.2.4.3 Surface des triangles :
En se basant sur les travaux de Naif Alajlan [20] qui utilise la notion de triangle sur les
points de contour, nous proposons d’utiliser les triangles constituant chaque partie extraite de
la forme.
21. 18
Figure 2.12 : Décomposition en triangles
Pour chaque triangle, nous calculons la quantité :
Si=
1
1
i + 1 + 1 1
Dans notre travail, nous avons fixé le point M qui représente le milieu du segment reliant les
extrémités de chaque partie : (AB) comme étant le sommet de tous les triangles associés à
cette partie. (Voir Figure 2.12)
II.2.2.4.4 Degré de courbure :
A partir des points de courbure et de leurs projections sur le segment qui relie le début
et la fin de la partie étudiée AB, nous calculons la distance entre chaque point de courbure et
sa projection sur AB. On détermine la valeur maximale de ces distances MM’. Le degré de
courbure est égal à cette valeur maximale que divise la distance AB (
’
).
Figure 2.13 : Le degré de courbure
II.2.2.4.5 Calcul d’angle :
Le principe est de calculer l’angle en chaque point de courbure en utilisant la formule
suivante :
Angle = arctg (yi+1-yi) / (xi+1-xi)
où Pi , Pi+1 :deux sommets successives de l’enveloppe convexe.
(7)
(8)
22. 19
II.2.2.4.6 Le rapport des distances entre les différents centres de gravité des
parties successives :
Soit une forme qui contient 4 parties, soit (C1 ,C2 ,C3 ,C4 ) les centres de gravité de
chaque partie. A partir de ces centres de gravité, nous avons calculer la distance entre les
centres de gravité successifs (d1 ,d2 ,d3 ,d4) où d1=d(C1,C2) etc. Puis on a effectuer la division
(log( ),log( ) ,log( ) ,log( )).la formule générale est la suivante :
Ri = log( )
II.2.2.4.7 Le rapport de longueur des parties :
Dans cette partie, nous avons utilisé la formule suivante :
Ri=
( ) ( )
( ) ( )
Où L(i) est la longueur de la ième
partie.
Cette caractéristique nous permet de comparer les morceaux consécutifs. Ce qui nous permet
d’optimiser la mise en correspondance entre les différentes parties des différentes formes.
II.2.2.4.8 Degré moyen :
La courbure en chaque point est donnée par la formule suivante :
Avec : Δxi= (xi+1-xi-1) et Δyi= (yi+1-yi-1)
La courbe moyenne de chaque partie est calculée par :
∑
Où N est le nombre de points de la partie.
II.2.2.4.9 Le rapport de distance entre le centre de gravité et les points de
courbure :
Il s’agit de calculer la distance entre le centre de gravité et les points de courbure de la
partie, en suite déterminer la plus petite valeur Dmax et la plus petite valeur Dmin .
Après la détermination de Dmax et Dmin on utilise la formule suivante :
Ri =
(9)
(10)
(11)
(12)
(13)
23. 20
II .2.2.5 La sélection des caractéristiques :
Après avoir extrait toutes les caractéristiques qui sont ci-dessus, nous passons aux choix de
celles qui vont être utilisées pour la description et la reconnaissance.
Pour ce faire, plusieurs tests expérimentaux ont été effectués sur quelques bases. (Les
statistiques seront présentées dans le chapitre suivant)
Ainsi, le descripteur choisi est le suivant :
· Surface de l’enveloppe convexe.
· Distances entre le centre de gravité et les points de courbure.
· Degré de courbure des parties extraites.
· Surfaces des parties.
· Distances entre le milieu de segment qui relie les extrémités de chaque partie et les
points de courbure.
· Les triangles
· Les rapport : Dmin /Dmax.
II.3 Processus de reconnaissance :
La recherche d’une image requête dans une base d’images modèles basée sur les
caractéristiques extraites préalablement a été effectuée par le biais de la recherche dynamique
et de mesure de similarité permettant de comparer les différentes caractéristiques calculées.
II.3.1 Programmation dynamique :
Pour trouver la correspondance optimale entre les différentes parties d’une forme
requête et celle d’une forme de la base modèle, nous avons utilisé la programmation
dynamique (PD).
L'efficacité de cette méthode repose sur le principe d'optimalité énoncé par le
mathématicien Richard Bellman : « toute politique optimale est composée de sous-politiques
optimales ».
C’est une matrice D qui est initialisée dans la première colonne par les caractéristiques
des parties de l’image requête (C1, C2, ..., Cm), et dans la première ligne par les
caractéristiques de la deuxième image, Voici l’algorithme utilisé pour comparer les
différentes parties :
24. 21
* * C1' C2' ⋯ Cj' ⋯ Cn'
* 0 1 2 ⋯ j ⋯ n
C1 1 ⋮ ⋮
C2 2 ⋮ ⋮
⋮ ⋮ ⋮ ⋮
Ci i ⋯ ⋯ ⋯ D(i,j) ⋮
⋮ ⋮ ⋮
Cm m ⋯ ⋯ ⋯ ⋯ ⋯ D(m,n)
Figure 2.14 : La matrice de la programmation dynamique
Algorithme :
On calcul tous les D(i ,j) de la table Tq i ϵ 0 . . m, j ϵ 0. . n, jusqu'à arriver a D(m,n) :
-Initialisation de la table :
D(i,0)=i
D(0 ,j)=j
delta=Somme( D[i][0] , D[0][j] )
D[i][j]=delta+min( D[i-1][j] , D[i][j-1] , D[i-1][j-1] )
delta : représente la différence entre la ième
partie de la première image et la jème
partie de la
seconde
Pour la distance nous avons utilisée deux mesures :
1. La distance Euclidienne : Pour deux listes de caractéristique (a, b) à comparer, nous
utilisons la formule suivante :
∑( [ ] − [ ])
2. Pour les caractéristiques globales nous avons utilisée la norme L1 qui est donnée par :
L1= |a[i] - b[i]|
Où a et b sont des listes des caractéristiques globales des deux images à comparer.
On calcule tous les D(i ,j) de la table Tq i ϵ 0 . . m, j ϵ 0. . n, jusqu'à arriver a D(m,n) :
-Initialisation de la table :
D(i,0)=i
D(0 ,j)=j
delta=Distance( D[i][0] , D[0][j] )
D[i][j]=delta+min( D[i-1][j] , D[i][j-1] , D[i-1][j-1] )
(14)
(15)
25. 22
II.3.2 La permutation :
Pour avoir un meilleur résultat de la comparaison entre les parties en utilisant la
programmation dynamique, on permute la position des parties de l’image qui a le plus grand
nombre de parties n dans la matrice de la programmation dynamique, et on répète l’opération
n-1 fois .Et on garde le plus petit D(m,n).
Soient (img1,img2) deux images, soient (P1,P2,P3)et (P1’,P2’,P3’,P4’) les parties associées à
chaque image,
Pour réaliser la comparaison des parties avec permutation on remplit la matrice de la PDpar :
1. (P1,P2,P3 )avec (P1’,P2’,P3’,P4’) on aura un D1(m,n)(sans permutation).
2. (P1,P2,P3 )avec (P2’,P3’,P4’, P1’) on aura un D2(m,n)
3. (P1,P2,P3 )avec (P3’,P4’, P1’ ,P2’) on aura un D3(m,n)
4. (P1,P2,P3 )avec (P4’, P1’ ,P2’, P3’) on aura un D4(m,n)
On prend le min entre D1(m,n), D2(m,n), D3(m,n)et D4(m,n).
II.3.3 Les parties similaires :
Pour déterminé les parties similaires, on utilise la matrice D, on détermine le chemin
qui nous ramène de la case D (m,n) vers les extrémité de la matrice avec les plus petites
valeurs. En sortie on aura une liste d’indices des parties similaires. L’algorithme utilisé est le
suivant :
Entre :
D : matrice de la programmation dynamique
Sortie :
listeIndice : liste contenant les indice du chemin minimale
Début
i=m-1
j=n-1
tantque i>2 et j>2:
ind=l’indice de la plus petite valeur entre D[i-1][j] , D[i][j-1] et D[i-1][j-1]
(i,j)=ind
Ajouter ind à la listeIndice
Entre :
D : matrice de la programmation dynamique
Sortie :
listeIndice : liste contenant les indice du chemin minimale
Début
i=m-1
j=n-1
tantque i>1 et j>1:
si (i !=m-1 ou j !=n-1) alors Ajouter (i,j) à la listeIndice
ind=l’indice de la plus petite valeur entre D[i-1][j] , D[i][j-1] et D[i-1][j-1]
(i,j)=ind
fin
26. 23
II.3.4 Mesure de similarité:
La mesure de similarité qui calcule la ressemblance entre deux formes est donnée
par :
S(R, M) = α1 D(m,n)+ α2 Dg
Où :
D (m,n) :est le résultat de la programmation dynamique.
Dg : est la somme pondérée des distances entre les caractéristiques globales des deux
formes.
α1 et α2 sont des poids.
II.4 Conclusion:
Dans ce chapitre nous avons présenté :
· Les prétraitements appliqués sur les formes avant de les analyser.
· les différentes caractéristiques extraites pour la modélisation et la
reconnaissance des formes.
· les différentes méthodes suivies pour la comparaison et la recherche.
Dans le chapitre suivant nous allons présenter la partie expérimentale de notre conception
avec les différents résultats obtenus après avoir effectué plusieurs tests.
(16)
27. 24
Chapitre 3
EXPERIMENTATION
III.1 Introduction :
Dans ce chapitre, nous allons tout d'abord présenter l'environnement matériel et le logiciel
choisi, ensuite nous entamerons la représentation du logiciel que nous avons développé, puis
nous terminerons par les résultats obtenus après les différents tests.
III.2 Environnement matériel :
Le travail d’implémentation a été développé sur un ordinateur ayant les caractéristiques
suivantes :
-un microprocesseur Intel(R) Core (TM) i5-3210M CPU@ 2.50GHz (4 CPUs)
- Une mémoire de 4Go.
- Un disque dur de 500 Go.
- Une résolution 1366 x 768 pixels avec une qualité couleur optimale (32 bits).
- Windows 7 édition Intégrale (32 bits) comme système d'exploitation.
III.3 Logiciel utilisé :
III.3.1 Définition de Python :
Dans notre application, nous avons utilisé le langage Python qui est développé depuis
1989 par Guido van Rossum et de nombreux contributeurs bénévoles. Python est un langage
portable (OS, MacOs, UNIX, Windows), dynamique (i.e l'interpréteur peut évaluer des
chaînes de caractères représentant des expressions ou des instructions Python), extensible,
gratuit, qui permet une approche modulaire et orientée objet de la programmation. Il convient
aussi bien à des scripts d'une dizaine de lignes qu'à des projets complexes de plusieurs
dizaines de milliers de lignes. La syntaxe de Python est très simple et, combinée à des types
de données évolués (listes, dictionnaires,...)[21].
III.3.2 Ce que l'on peut faire avec Python :
- De petits programmes très simples, appelés scripts, chargés d'une mission très précise
sur notre ordinateur ;
- Des programmes complets, comme des jeux, des suites bureautiques, des logiciels
multimédias, des clients de messagerie. . .
- Des projets très complexes, comme des progiciels (ensemble de plusieurs logiciels
pouvant fonctionner ensemble, principalement utilisés dans le monde professionnel).
Voici quelques unes des fonctionnalités offertes par Python et ses bibliothèques :
· créer des interfaces graphiques ;
· faire circuler des informations au travers d'un réseau ;
· dialoguer d'une façon avancée avec votre système d’exploitation.
28. 25
III.3.3 Les packages (bibliothèques) utilisés sont :
. Pour la réalisation de l'interface homme /machine(IHM) on a utilisé : PyQt4
. Pour le traitement des images : Opencv(2.4.1 )
III.4 Présentation de l'application développée :
Notre application est divisée en quatre parties:
- Présentation.
- Traitement.
- Modélisation.
- Reconnaissance.
III.4.1 Présentation :
Le but du logiciel développé est d’arriver à la résolution du Problème de reconnaissance des
formes 2D.
Figure3.1 : Présentation
Cette capture nous montre l’accueil de notre logiciel développé.
III.4.2 Traitement:
Par cette fenêtre on commence notre travail, elle est utilisée pour effectuer des
traitements sur l’image requête. Elle est composée de :
Zone 1 : l’emplacement de l’image requête.
Zone 2 : pour afficher les traitements appliqués sur l’image.
Zone 3 : pour afficher les résultats correspondants à chaque traitement.
29. 26
Figure 3.2 : Traitement.
III.4.2.1 Menu :
Le menu principal se compose de deux menus .Chacun d’eux comporte des commandes
auxquelles on peut accéder par l’usage de la souris, ou par l’intermédiaire de la touche
« ALT » qui sélectionne la barre de menus Il est composé de deux éléments fichier et bases :
- Menu ficher : il est composé des deux commandes suivantes :
· Charger une image : pour charger une image requête.
· Quitter : pour quitter l’application.
- Menu Bases :
Figure 3.3 : Menu.
· Base modèle MPEG-7: Ouvrir le fichier qui contient la base MPEG-7.
· Base model kimia-99 : Ouvrir le fichier qui contient la base Kimia-99.
· Base model kimia-216 : Ouvrir le fichier qui contient la base Kimia-216.
III.4.2.2 Groupe box :
Une deuxième méthode pour charger l’image requête consiste à utiliser le groupe box pour
choisir la source de l’image.
Figure 3.4 Groupe box.
30. 27
III.4.2.3 Bouton :
· Charger image :
Pour charger une image à partir d’une des bases modèle proposé dans le
groupe box.
· Lissage :
Pour effectuer le lissage et éliminer le bruit en choisissant le seuil.
· Rotation :
Pour la rotation de l’image en choisissant l’angle de rotation.
· Normalisation à la rotation :
Pour la rotation de l’image et l’affichage de l’ellipse englobant la forme.
III.4.3 Modélisation :
Après avoir déterminé le contour de la forme dans la première fenêtre (correspondant au
« Traitement »), dans cette seconde fenêtre (qui correspond à la phase de « Modélisation »)
on détermine les différentes caractéristiques de l’image.
Elle est composée de :
Zone 4 : pour afficher le contour de l’image.
Zone 5 : pour afficher les traitements effectués sur l’image source (résultante de la Zone 4).
Zone 6 : pour afficher les résultats des calculs de traitement effectués.
Figure 3.5 : Modélisation.
III.4.3.1 Boutons :
· appliquer : après avoir fixé le seuil de l’approximation polygonale, ce bouton
permet de déterminer les points de courbure.
· enveloppe convexe : ce bouton permet d’afficher l’enveloppe convexe.
· centre de gravité : pour afficher le centre de gravité de la forme.
31. 28
· point de courbure : ce bouton sert à afficher les points de courbure.
· extraction des parties : il nous permet de visualiser les parties de la forme.
· D_max : il nous permet de visualiser la distance entre le centre de gravité et
le point du contour le plus éloigné.
· convexe : il nous permet d’afficher tous les points convexes sur le contour de
la forme.
· concave : il nous permet d’afficher tous les points concaves sur le contour de
la forme.
· surface partie : il nous permet d’afficher les trapèzes sur la forme, et les
surfaces dans la zone des résultats (zone 3).
III.5. Reconnaissance :
Après avoir extrait toutes les caractéristiques de l’image requête, nous passons à la
phase « Reconnaissance » proprement dite, dont voici la capture:
Figure 3.6 : Reconnaissance.
Elle est composée de :
Zone 7 : pour afficher l’image requête.
Zone 8 : pour afficher les 40 premières images qui sont dans la base d’images choisie et qui
ressemblent à l’image requête.
Zone 9 : pour afficher la liste des images reconnues dans la base sélectionnée.
Zone 10 : pour afficher les parties similaires.
Boutons :
Start : permet de lancer la recherche dans la base modèle.
Enregistrer nouveau descripteur : permet d’enregistrer le descripteur obtenue par
les traitements effectués.
32. 29
III.5.1 Groupe box :
Bases :
Permet de choisir la base dans laquelle on veut chercher notre image.
Caractéristiques :
Permet de sélectionner les caractéristiques à utiliser pour la recherche. (de la base
modèle ou de l’image requête).
III.5.2 Progress Bar:
Permet de visualiser le taux de reconnaissance de l’image requête.
III.6 Expérimentation :
Dans ce paragraphe, nous allons présenter nos résultats expérimentaux de la
reconnaissance, sachant qu’après plusieurs séries de tests effectués sur les différentes bases de
données, nous avons paramétré notre application avec les meilleures valeurs obtenues.
III.6.1 Les bases utilisées :
Les bases utilisées sont :
· La base Kimia-99 :
La base Kimia-99 est constituée de 9 classes, dans chaque classe, il ya 11 images, ce
qui nous donne 99 silhouettes dans cette base.
· La base Kimia-216 :
Elle est constituée de 18 classes, dans chaque classe nous avons 12 images ce qui nous
donne 216 images dans cette base.
· La base MPEG :
Elle est constituée de 70 classes, chaque classe contient 20 images ce qui nous donne
1400 images dans cette base.
III.6.2 Evaluation des caractéristiques :
En plus des caractéristiques présentées dans le chapitre précédent, d’autres
caractéristiques ont été extraites. Pour sélectionner les meilleurs caractéristiques, nous avons
évalué chacune d’elles individuellement en la testant sur la base de kimia-99.
Dans ce qui suit nous allons présenter les résultats obtenus (voir Tableau 3.1) .
Indice Caractéristique Taux de
reconnaissance(%)
A Angle en chaque point de courbure 38,18
B Triangle 35,85
C Degré moyen 25,35
D
Distance entre le milieu des parties et les points de
courbures
42,12
E Angle en chaque point de contour 35,85
F Rapport de longueur des parties 40,10
P Surface parties calculé par les trapèzes 42,52
G Surface calculé par m00 43,13
H Dégrée de courbure 56,16
I Le rapport Dmax par Dmin 47,77
J
Le rapport des distances entre les différents centres de
Gravité
30,10
K Rapports des surfaces des parties concaves 36,76
L La surface de l’enveloppe convexe 31,21
33. 30
M Distances radiales 30,60
N Angle en chaque sommet de l’enveloppe convexe 19,59
Tableau 3.1 : Test des caractéristiques.
III.6.3 Combinaison des caractéristiques :
En se basant sur les résultats obtenus ci-dessus, nous avons combiné quelques caractéristiques
entre elles pour avoir une description discriminante de formes et un meilleur taux.
III.6.3.1 Base Kimia-99:
Dans le tableau suivant nous présenterons les différents tests établis en combinant les
différentes caractéristiques. Pour ne pas encombrer le tableau nous avons utilisé les indices
correspondants (A, B, C,…) extraits du tableau ci-dessus.
Indice Test 1 Test 2 Test 3 Test 4 Test 5 Test 6 Test 7
A 0 0,1 0,3 0,005 0 0 0,02
B 0,01 0,05 1 0 0,005 0,005 0,005
C 0,3 0,03 0,15 0 0 0 0
D 0,032 0,8 0,4 0,2 0,008 0,008 0,08
E 0 0,004 0,3 0,02 0 0 0,4
F 1 0,3 0,1 0,32 0,0009 0,0009 0,1
G 0,5 0,015 0,25 0,02 0,2 0,230 0,2
H 0,02 0,3 0,2 0,05 0,5 0,625 0,5
I 0,002 0,23 0,4 0,1 0,15 0,2 0,2
J 0,01 0,2 0 0,018 0 0 0,002
K 0 0,005 0,3 0,12 0 0 0,01
L 0 0,01 0,1 0,01 0 0 0
M 0,5 0,09 0,3 0,001 0,00097 0,00097 0,00097
N 0,2 0,2 0,02 0,01 0 0 0,001
Tableau 3.2 : Série de tests de reconnaissance sur Kimia-99.
En appliquant ces poids sur cette base, nous avons obtenu les résultats suivants :
Figure 3.7 : Courbe des tests de reconnaissance sur Kimia-99.
32,02%
48,98%
42,72%
34,24%
77,67%
78,28%
65,75%
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
test1 test2 test3 test4 test5 test6 test7
34. 31
La figure ci-dessus nous montre que les meilleurs résultats ont été obtenus pour le test 6.
III.6.3.2 Base Kimia-216 :
Dans le tableau suivant nous présenterons les différents tests établis en combinant les
différentes caractéristiques (nous avons utilisé les mêmes indices du tableau 3.1).
Indice Test 1 Test 2 Test 3 Test 4 Test 5
A 0 1 0,05 0 0
B 1 0,05 0 0,005 0,005
C 0,003 0,3 0,03 0 0
D 0,2 0,08 0,45 0,008 0,008
E 1 0,02 0 0 0,1
F 0,25 0,51 0,2 0,051 0,051
G 0,5 0,15 0,55 0,6 0,6
H 0,2 0,45 0,5 0,6 0,6
I 0,3 0,52 0,4 0,6 0,6
J 0,15 0,3 0 0 0
K 0,2 0,2 0,08 0 0
L 0,3 0,35 0,03 0,001 0,001
M 0,7 0,02 0,35 0,001 0,001
N 0 0,1 0,04 0 0
Tableau 3.3 : Série de tests de reconnaissance sur Kimia-216.
En appliquant ces poids sur cette base, nous avons obtenus les résultats suivants :
Figure 3.8 : Courbe des tests de reconnaissance sur Kimia-216.
57,78%
40,23%
62,41%
79,41%
68,93%
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
test1 test2 test3 test4 test5
Taux
35. 32
III.6.4 Résultats Expérimentaux :
Dans cette partie nous allons présenter quelques tests appliqués sur les différentes bases avec
les statistiques correspondantes.
III.6.4.1 Base Kimia-99:
Voici quelques tests effectués sur cette base :
Test 1 : Après avoir testé sur airplane-5 voici le résultat obtenu :
Figure 3.9 : Airplane-5.
Figure 3.10 : Résultat de la recherche d’airplane-5.
Test 2 : Après avoir testé sur hand-7 voici le résultat obtenu :
Figure 3.11 : Hand-7.
36. 33
Figure 3.12 : Résultat de la recherche de hand-7.
Le tableau suivant nous résume les taux de reconnaissance obtenus pour toutes les classes de
la base :
Nom de la classe Taux de reconnaissance
Airplane 80,90 %
Animal 56,36 %
Dude 85,45 %
Fish 96,36 %
Greeble 71,81 %
Hand 74,54 %
Rabbit 85,45 %
Seaanimal 90,90 %
Tool 62,72 %
Tableau 3.4 : Taux de reconnaissance des classes de Kimia-99.
Le tableau ci-dessus est représenté dans le graphe suivant sous forme d’histogramme:
37. 34
Figure 3.13 : Histogramme de taux de reconnaissance.
L’histogramme nous montre le pourcentage de chaque classe, où il nous aide à remarquer la
variation des pourcentages entre les différentes classes. Ce résultat est obtenu après plusieurs
combinaisons de poids.
III.6.4.2 Base Kimia-216 :
Dans ce qui suit nous allons présenter quelques exemples de tests :
Test1 : dans ce test, nous avons choisi l’image brick-4.
Figure 3.14 : Brick-4.
Voici le résultat obtenu :
0
10
20
30
40
50
60
70
80
90
100pourcentage(%)
classe
Taux de reconnaissance
Fish
Seaanimal
Dude
Rabbit
Airplane
Hand
Greeble
Tool
Animal
38. 35
Figure 3.15 : Résultat de la recherche de brick-4.
Test2 : dans ce test nous avons pris l’image ray-2
Figure3.16: Ray-2.
Figure 3.17 : Résultat de la recherche de ray-2.
Le tableau suivant nous montre les différents taux de reconnaissance de chaque classe :
39. 36
Nom de la class Taux de reconnaissance
Bird 34,84 %
Bone 90,90 %
Brick 98,48 %
Camel 68,93 %
Car 91,66 %
Children 100 %
Classic 34,84 %
Elephant 50,57 %
Face 100 %
Fork 49,24 %
Fountain 85,60 %
Glass 97,72 %
Hammer 90,90 %
Heart 100 %
Key 79,54 %
Misk 83,33 %
Ray 74,99 %
Turtle 96,96 %
Tableau 3.5 : Taux de reconnaissance des classes de Kimia-216.
III.6.4.3 Base MPEG-7 :
Dans ce qui suit nous allons présenter quelques exemples de tests :
Test1 : dans ce test, nous avons choisi l’image face-1.
Figure 3.18 : Face-1
40. 37
Figure 3.19 : Résultat de la recherche de face-1.
Test2 : dans ce test, nous avons choisi l’image carriage-1.
Figure 3.20 : Carriage-1.
Figure 3.21 : Résultat de la recherche de carriage-1.
Le tableau suivant nous montre les différents taux de reconnaissance des classes qui ont
donné des bons résultats :
41. 38
Nom de la class Taux de reconnaissance
Appel 65,75 %
Bottle 57 %
Brick 94,5 %
Bone 60,75 %
Children 78 %
Chopper 81,5%
Carriage 99,75 %
Hammer 75,91 %
Car 62 %
Face 98 %
Tableau 3.6 : Taux de reconnaissance des classes de MPEG-7.
Le tableau ci-dessus est représenté dans le graphe suivant sous forme d’histogramme:
Figure 3.22 : Histogramme de taux de reconnaissance.
L’histogramme nous montre le pourcentage de chaque classe, il nous illustre les variations des
pourcentages pour les différentes classes. Ce résultat est obtenu après plusieurs combinaisons
de poids.
Le tableau suivant nous montre les différents taux de reconnaissance des classes qui ont
donné des mauvais résultats :
Nom de la class Taux de reconnaissance
Device1 26 %
Pocket 22,25 %
Turtle 28,25 %
0
10
20
30
40
50
60
70
80
90
100 apple
bottle
brick
bone
children
chopper
carriage
hammer
car
face
42. 39
Bird 20 %
Bat 35,35 %
Lizzard 29,75 %
Chicken 22 %
Tableau 3.7 : Taux de reconnaissance des classes de MPEG-7 qui ont donné des mauvais
résultats.
Le tableau ci-dessus est représenté dans le graphe suivant sous forme d’histogramme:
Figure 3.23 : Histogramme de taux de reconnaissance des classes de MPEG-7 qui ont donné
des mauvais résultats.
III .7 Synthèse
La sélection des caractéristiques et le choix des poids pour une bonne description et meilleurs
résultats pour les trois bases étaient une tâche difficile et délicate. En analysant nos résultats,
nous remarquons que nous avons obtenus de meilleurs taux avec les caractéristiques
sélectionnées et les poids fixés.
III.8 Conclusion :
Dans ce chapitre nous avons vu dans la première partie la répartition des étapes de l’approche
proposée et les différents composants de l’application développée. Dans la seconde partie
nous avons vu plusieurs tests effectués sur les différentes bases avec les statistiques
correspondantes à chacune des bases. Les résultats sont encourageants.
0
5
10
15
20
25
30
35
40
device1 pocket turtle bird bell bat lizzard chicken
device1
pocket
turtle
bird
bell
bat
lizzard
chicken
43. 40
Conclusion générale
Au cours des dernières années plusieurs systèmes de reconnaissance de formes ont été
développés en se basant sur l'extraction d’un maximum d'informations pertinentes décrivant
l'objet et de trouver une représentation fiable de ces objets.
Dans ce mémoire nous avons présenté une méthode de modélisation basée sur quelques
caractéristiques extraites à partir des points de contour telles que les points de courbure, les
parties délimitées par l’enveloppe convexe et le contour de la silhouette.
Les caractéristiques extraites ont été testées et validées pour sélectionner les meilleurs
attributs qui vont décrire fidèlement la forme. Ces attributs ont été ensuite exploités pour
reconnaitre des formes dans des différentes bases de données en utilisant une mesure de
similarité bien définie.
L’approche proposée a été validée sur plusieurs bases de données : (Kimia-99, Kimia-216,
MPEG-7).
Comme résultat de notre travail nous avons réussi à apporter des améliorations aux travaux
déjà effectués.
Comme perspective à notre travail, nous proposons d'améliorer la modélisation, et d'optimiser
le temps de la reconnaissance.
44. Résumé
Dans ce travail, une approche de reconnaissance des formes, basée contour, à été présentée.
Pour ce faire nous avons proposé une méthode de modélisation basée sur le calcul de
quelques caractéristiques discriminantes.
Pour comparer l’image requête avec l’ensemble des images d’une base de données, nous
avons appliquée la notion de Programmation Dynamique combinée avec une mesure de
similarité.
Après plusieurs tests effectués, la méthode proposée a été validée sur les trois bases de
données :(Kimia-99, Kimia-216, MPEG). Les résultats obtenus sont probants.
Mots clés
Reconnaissance de forme, Programmation Dynamique, enveloppe convexe, points de
courbure, contour, approximation Polygonale.
45. Table des tableaux
Tableau 3.1 : Test des caractéristiques……………………………………………………... 30
Tableau 3.2 : Série de tests de reconnaissance sur Kimia-99. ……………………………... 30
Tableau 3.3 : Série de tests de reconnaissance sur Kimia-216. ……………………………. 31
Tableau 3.4 : Taux de reconnaissance des classes de Kimia-99. …………………………... 33
Tableau 3.5 : Taux de reconnaissance des classes de Kimia-216. …………………………. 36
Tableau 3.6 : Taux de reconnaissance des classes de MPEG-7. …………………………… 37
Tableau 3.7 : Taux de reconnaissance des classes de MPEG-7 qui ont donné des mauvais
résultats. ……………………………………………………………………… 39
46. Table des figures :
Figure 1.1 : Comparaison entre une image vectorielle et image bitmap…………………….. 3
Figure 2.1 : Image avant le filtrage (a) et après le filtrage (b). ...…………………………… 8
Figure 2.2 : Translation. ……………………………………………………………………. 9
Figure 2.3 : Rotation. ………………………………………………………………………. 10
Figure 2.4 : Symétrie. ……………………………………………………………………… 10
Figure 2.5 : L’image requête (a) et sont contour (b). ……………………………………... 11
Figure 2.6 : L’enveloppe convexe. ...…………... …………………………………………. 11
Figure 2.7 : Détermination des points de courbure (seuil=2.8). …………………………… 12
Figure 2.8 : L’extraction des parties (surface colorée). ……….…………………………… 13
Figure 2.9 : La distance entre le centre de gravite et les points de courbure. ……………... 15
Figure 2.10 : Calcule des surfaces par les trapèzes. ………………………………………. 16
Figure 2.11 : Distance entre le milieu et les points de courbures. ….……………………… 17
Figure 2.12 : Décomposition en triangles. ….……………………………………………… 17
Figure 2.13 : Le degré de courbure. ….…………………………………………………….. 18
Figure 2.14 : La matrice de la programmation dynamique. ………………………………... 21
Figure 3.1 : Présentation. …………………………………………………………………... 25
Figure 3.2 : Traitement. …………………………………………………………………..... 26
Figure 3.3 : Menu. ………………………………………………………………….............. 26
Figure 3.4 : Groupe box. ………………………………………………………………….... 26
Figure 3.5 : Modélisation. ………………………………………………………………….. 27
47. Figure 3.6 :Reconnaissance.………………………………………………………………... 28
Figure 3.7 : Courbe des tests de reconnaissance sur Kimia-99. ...….……………………..... 30
Figure 3.8 : Courbe des tests de reconnaissance sur Kimia-216. ....………………………... 31
Figure 3.9 : Airplane-5. …………………………………………………………………….. 32
Figure 3.10 : Résultat de la recherche d’airplane-5. ……………….………………………. 32
Figure 3.11 : Hand-7. ………………………………………………………………………. 32
Figure 3.12 : Résultat de la recherche de hand-7. ………………..………………………… 33
Figure 3.13 : Histogramme de taux de reconnaissance. …………….……………………… 34
Figure 3.14 : Brick-4. ……………………………………………….……………………… 35
Figure 3.15 : Résultat de la recherche de brick-4. …………………………………………. 35
Figure3.16: Ray-2. ..………………………………...……………………………………… 35
Figure 3.17 : Résultat de la recherche de ray-2. ………………………………………….… 35
Figure 3.18 : Face-1. …..…………………………………………………………………… 36
Figure 3.19 : Résultat de la recherche de face-1. ……...…………………………………… 37
Figure 3.20 : Carriage-1. …………………………………………………………………… 37
Figure 3.21 : Résultat de la recherche de carriage-1. ……………………………………..... 37
Figure 3.22 : Histogramme de taux de reconnaissance. ……………………………………. 38
Figure 3.23 : Histogramme de taux de reconnaissance des classes de MPEG-7 qui ont donné
des mauvais résultats. ………………………………………………………… 39
48. Table des matières :
Introduction Générale…………………………………….….....................................1
Chapitre I : Notions de base
I.1 Introduction .……………………………………………………………………….…... 2
I.2 Traitement d’image…………………………………………………….…………….… 2
I.3 Qu’est ce qu’une image?...…………………………………………….…………….… 2
I.4 Comment obtenir une image?………………………………………….………….……..2
I.5 Les types d’images…………………………………………...………….……………....3
I.5.1 Les images bitmap…………………………………………….……………..…3
I.5.2 Les images vectorielles………………………..……………….……………....3
I.6 Quelques opérateurs de traitement……………………………………….……..……..…4
I.6.1 Les filtres……………………………………………………….….………...…4
I.6.2 Détecteurs de contours………………………………………….….…………..4
I.7 La reconnaissance des formes…………………………………………….….……….….4
I.8 Domaines d’application…………………………………………………….….……..….4
I.9 Les types des descripteurs………………………………………………….….………...5
I.10 Mesure de similarités entre les descripteurs…………………………….….…….........6
I.11 Conclusion………………………………………………………………….….…….....7
Chapitre II : Conception
II.1 Introduction…………………………………………………………………………….8
II.2 Modélisation…………………………………………………………………..….…….8
II.2.1 Les Prétraitement…………………………….……………………….............8
II.2.1.1 Le filtrage……………………………………………………………..….....8
II.2.1.2 La normalisation………………………………………………………........9
II.2.1.2.1 La translation…………….........................................................................9
II.2.1.2.2 La rotation……………………………………………………………..….9
II.2.1.2.3 La symétrie……………………………………………………………....10
II.2.1.3 L’extraction de contour………………………………………………….…10
II.2.1.4 L’enveloppe convexe………………………………………...………….…11
II.2.2 Modélisation………………………………………………………...……….11
49. II.2.2.1 Les points de courbures……………………………………………………12
II.2.2.2 Extraction des parties……………………………………………………...12
II.2.2.3 Les caractéristiques de la forme………………………………………..….13
II.2.2.3.1 La surface de l’enveloppe convexe……………………………………...13
II.2.2.3.2 Distance radiales…………………………………………………………14
II.2.2.4.Les caractéristique de chaque partie…………………………………….…15
II.2.2.4.1 La surface ……………………………………………………………..…15
II.2.2.4.2 La distance entre le milieu et les points de courbures………………..….17
II.2.2.4.3 La surface des triangles…………………………………………………..17
II.2.2.4.4 Degré de courbure……………………………………………………..…18
II.2.2.4.5 Calcul d’angle………………………………………………………........18
II.2.2.4.6 Le rapport des distance entre les différents centre de gravité des parties
successives ………………………………………………………………...……....19
II.2.2.4.7 Le rapport de longueur des parties………………………………..……...19
II.2.2.4.8 Degré moyen……………………………………………………….....….19
II.2.2.4.9 Le rapport de distance entre le centre de gravité et les points de
courbure…………………………………………………………………………….20
II.2.2.5 La sélection des caractéristiques………………………………………...…20
II.3 Processus de reconnaissance………………………………………………….………..20
II.3.1 Programmation dynamique……………………………………….………….20
II.3.2 La permutation…………………………………………………………........22
II.3.3 Les parties similaires ………………………………………………………..22
II.3.4 Mesure de similarité……………………………………………………....…23
II.4 Conclusion……………………………………………………………………………..23
Chapitre III : Expérimentation
III.1 Introduction………………………………………………………………………….24
III.2 Environemment matériel…………………………………………………………….…24
III.3 Logiciel utilisé………………………………………………………………………….24
III.3.1 Définition de python……………………………………………………….…24
III.3.2 Ce que l'on peut faire avec Python …………………………………………..24
III.3.3 Les packages (bibliothèques) utilisés sont …………………………………..25
50. III.4 Présentation de l'application développée ……………………………………………..25
III.4.1 Présentation………………………………………………………………....25
III.4.2 Traitement………………………………………………………………......25
III.4.2.1 Menu …………………………………………………………………......26
III.4.2.2 Groupe box …………………………………………………………...…..26
III.4.2.3 Bouton…………………………………………………………………….27
III.4.3 Modélisation………………………………………………………………...27
III.4.3.1 Boutons …………………………………………………………………...27
III.5. Reconnaissance……………………………………….……………………………..28
III.5.1 Groupe box …………………………………………………………………29
III.5.2 Progress Bar:………………………………………………………………..29
III.6 Expérimentation ……………………………………………………………………..29
III.6.1 Les bases utilisées ………………………………………………………….29
III.6.2 Evaluation des caractéristiques …………………………………………….29
III.6.3 Combinaison des caractéristiques ………………………………………….30
III.6.3.1 Base Kimia-99……………………………………………………………30
III.6.3.2 Base Kimia-216………………………………………………………….31
III.6.4 Résultats Expérimentaux …………………………………………………..31
III.6.4.1 Base Kimia-99……………………………………………………………32
III.6.4.2 Base Kimia-216 ………………………………………………………….34
III.6.4.3 Base MPEG ………………………………………………………………36
III .7 Synthèse……………………………………………………………………………...39
III.8 Conclusion …………………………………………………………………………..39
Conclusion Générale…………………………………….….....................................40
51.
52. Bibliographie
[1] http://fr.wikipedia.org/wiki/Traitement_d'images
[2] http://fr.wikipedia.org/wiki/Image
[3] http://laviexpliquee.jimdo.com/l-explication-du-corps-humain/l-oeil/
[4] http://tecfa.unige.ch/tecfa/teaching/staf13/fiches-mm/bitmapvectoriel.htm
[5] http://fr.academic.ru/dic.nsf/frwiki/1416925/Reconnaissance_des_formes
[6] http://fr.wikipedia.org/wiki/Recherche_d%27image_par_le_contenu
[7] http://fr.wikipedia.org/wiki/Classification_et_cat%C3%A9gorisation_de_documents
[8] http://fr.wikipedia.org/wiki/Reconnaissance_de_l'%C3%A9criture_manuscrite
[9] John P Eakins and Margaret E Graham , “ Content-based Image Retrieval”, A report to
the JISC Technology Applications Programme. Institute for Image Data Research,
University of Northumbria at Newcastke. January 1999
[10] Swain M.BELLARD D.color indexing international journal of computer vision 7 (1)
1-13. 1991
[11] Bay H. EssA, Tuy Tel aars T.Van Gool L.surf speeded up rebust features computer
vision and image inderstanding, 110(3), 346-356,2008
[12] Journet N.Ramel J.Mullot R.Eglin Document image analysis of the textures.
Application to old document IJDAR, 11(1) 9-18, 2008
[13] Fu, KS., 1982 "A syntactic approach to texture analysis," Syntactic Pattern
Recongnition and Application, chap 12, pp 445-480, prentice Hall
[14] M. Flickher, H. Sawhney, W. Niblack, J. Ashley, Q. Huang, B. Dom, M. Gorkani,
J.Hafner, D. Lee, D. Petkovic, D.Steele, and P. Yanker, "Query by Image and Video
Content: The QBIC System," IEEE Computer, vol. 28, no. 9, pp. 23-32, Sept. 1995.
[15] Gevers T., Smeulders A., “Pictoseek: combining shape and color invariant. 2000.
[16] Pentland A., Picard R, Sclaroff S., “Photobook: Content-base Manipulation for Image
Databases” International Journal of Computer Vision, vole.18, n°3, p. 233-254, 1996.
[17] Zhang D. and G. Lu. Review of shape representation and description techniques.
Pattern Recognition, 37:1-19, 2004.
[18] http://fr.wikipedia.org/wiki/Détection_de_contours
53. [19] UFRIMA. Détection de contours.
[20] Naif Alajlan .al , Sahpe retrieval using triangle-area representation and dynamique
space warping. Article 2007
[21] Langage python. http ://fr.openclassrooms.com.
[22] http://fr.wikipedia.org/wiki/Algorithme_de_Douglas_Peuker