SlideShare une entreprise Scribd logo
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
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
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
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.
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]
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]
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 :
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 :
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.
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.
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)
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)
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)
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)
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]
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)
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)
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
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
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.
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)
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)
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 :
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)
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
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)
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.
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.
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.
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.
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.
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
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
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
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.
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:
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
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 :
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
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 :
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
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
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.
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.
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
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
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
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
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
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
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
[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

Contenu connexe

Tendances

Reconnaissance de formes
Reconnaissance de formesReconnaissance de formes
Reconnaissance de formes
ASSAH Esdras Jean Jude
 
Cours datamining
Cours dataminingCours datamining
Cours datamining
sarah Benmerzouk
 
Partie2BI-DW2019
Partie2BI-DW2019Partie2BI-DW2019
Partie2BI-DW2019
Aziz Darouichi
 
Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)
Hajar Bouchriha
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
Mohamed Heny SELMI
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentation
Donia Hammami
 
Modèles de langue : Ngrammes
Modèles de langue : NgrammesModèles de langue : Ngrammes
Modèles de langue : Ngrammes
Jaouad Dabounou
 
RNN avec mécanisme d'attention
RNN avec mécanisme d'attentionRNN avec mécanisme d'attention
RNN avec mécanisme d'attention
Jaouad Dabounou
 
Three classes of deep learning networks
Three classes of deep learning networksThree classes of deep learning networks
Three classes of deep learning networks
Venkat Chaithanya Chintha
 
Introduction au big data
Introduction au big dataIntroduction au big data
Introduction au big data
Abdelghani Azri
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
Mohamed Heny SELMI
 
Systèmes multi-agents
Systèmes multi-agentsSystèmes multi-agents
Systèmes multi-agents
Badiâa Dellal-Hedjazi
 
Big data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-businessBig data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-business
Vincent de Stoecklin
 
Image Segmentation Using Deep Learning : A survey
Image Segmentation Using Deep Learning : A surveyImage Segmentation Using Deep Learning : A survey
Image Segmentation Using Deep Learning : A survey
NUPUR YADAV
 
Base de Données Chapitre I .pptx
Base de Données Chapitre I .pptxBase de Données Chapitre I .pptx
Base de Données Chapitre I .pptx
AbdoulayeTraore48
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Hatim CHAHDI
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
Lilia Sfaxi
 
CBIR by deep learning
CBIR by deep learningCBIR by deep learning
CBIR by deep learning
Vigen Sahakyan
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine Learnig
Felipe Sanchez Garzon
 

Tendances (20)

Reconnaissance de formes
Reconnaissance de formesReconnaissance de formes
Reconnaissance de formes
 
Cours datamining
Cours dataminingCours datamining
Cours datamining
 
Partie2BI-DW2019
Partie2BI-DW2019Partie2BI-DW2019
Partie2BI-DW2019
 
Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentation
 
Modèles de langue : Ngrammes
Modèles de langue : NgrammesModèles de langue : Ngrammes
Modèles de langue : Ngrammes
 
RNN avec mécanisme d'attention
RNN avec mécanisme d'attentionRNN avec mécanisme d'attention
RNN avec mécanisme d'attention
 
Three classes of deep learning networks
Three classes of deep learning networksThree classes of deep learning networks
Three classes of deep learning networks
 
Hadoop
HadoopHadoop
Hadoop
 
Introduction au big data
Introduction au big dataIntroduction au big data
Introduction au big data
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
 
Systèmes multi-agents
Systèmes multi-agentsSystèmes multi-agents
Systèmes multi-agents
 
Big data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-businessBig data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-business
 
Image Segmentation Using Deep Learning : A survey
Image Segmentation Using Deep Learning : A surveyImage Segmentation Using Deep Learning : A survey
Image Segmentation Using Deep Learning : A survey
 
Base de Données Chapitre I .pptx
Base de Données Chapitre I .pptxBase de Données Chapitre I .pptx
Base de Données Chapitre I .pptx
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
CBIR by deep learning
CBIR by deep learningCBIR by deep learning
CBIR by deep learning
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine Learnig
 

Similaire à Représentation de formes par approche contour

CoursImageProcessing1.pdf
CoursImageProcessing1.pdfCoursImageProcessing1.pdf
CoursImageProcessing1.pdf
HouBou3
 
Séminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
Séminaire IA & VA- Dominique Gruyer, Univ Gustave EiffelSéminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
Séminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
Mahdi Zarg Ayouna
 
Introduction à l’infographie
Introduction à l’infographieIntroduction à l’infographie
Introduction à l’infographie
Wiki Info Systeme
 
Vision par ordinateur
Vision par ordinateurVision par ordinateur
Vision par ordinateur
Radhouani Mejdi
 
Traitement d’images et média visualisation
Traitement d’images et média visualisationTraitement d’images et média visualisation
Traitement d’images et média visualisation
Everardo Reyes-García
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docx
khalil Ismail
 
Étude et résolution numérique de deux modèles basés sur des équations aux dér...
Étude et résolution numérique de deux modèles basés sur des équations aux dér...Étude et résolution numérique de deux modèles basés sur des équations aux dér...
Étude et résolution numérique de deux modèles basés sur des équations aux dér...
Ayoub Boudlal
 
ségmentation d'image
ségmentation d'imageségmentation d'image
ségmentation d'image
Wassim Ben Salem
 
TP / Traitement d'image : Discrimination de Texture
TP / Traitement d'image : Discrimination de TextureTP / Traitement d'image : Discrimination de Texture
TP / Traitement d'image : Discrimination de Texture
Ahmed EL ATARI
 
IMAGETERR17 : objectifs, méthode, premiers résultats
IMAGETERR17 : objectifs, méthode, premiers résultatsIMAGETERR17 : objectifs, méthode, premiers résultats
IMAGETERR17 : objectifs, méthode, premiers résultats
Chaire Attractivité et Nouveau Marketing Territorial
 
TRAITEMENT DES IMAGES SATELLITALES(01) .pdf
TRAITEMENT DES IMAGES SATELLITALES(01)  .pdfTRAITEMENT DES IMAGES SATELLITALES(01)  .pdf
TRAITEMENT DES IMAGES SATELLITALES(01) .pdf
mohnina22
 
Méthodes pour l’analyse des images numériques
Méthodes pour l’analyse des images numériquesMéthodes pour l’analyse des images numériques
Méthodes pour l’analyse des images numériques
Everardo Reyes-García
 
Chapitre 1- Présentation.pptx
Chapitre 1- Présentation.pptxChapitre 1- Présentation.pptx
Chapitre 1- Présentation.pptx
YounesAziz3
 
JEL 2012 - Daniel Peraya - "L'enfance de l'Art" - "Jeux de rôle : les interac...
JEL 2012 - Daniel Peraya - "L'enfance de l'Art" - "Jeux de rôle : les interac...JEL 2012 - Daniel Peraya - "L'enfance de l'Art" - "Jeux de rôle : les interac...
JEL 2012 - Daniel Peraya - "L'enfance de l'Art" - "Jeux de rôle : les interac...
PAPN (Pôle d'Accompagnement à la Pédagogie Numérique)
 
Cartes mind map
Cartes mind mapCartes mind map
Chap1introductionimagenumerique
Chap1introductionimagenumeriqueChap1introductionimagenumerique
Chap1introductionimagenumeriqueintissar0007
 
Laurence Noël : Dynamique des complexes médiatiques et design d’interfaces de...
Laurence Noël : Dynamique des complexes médiatiques et design d’interfaces de...Laurence Noël : Dynamique des complexes médiatiques et design d’interfaces de...
Laurence Noël : Dynamique des complexes médiatiques et design d’interfaces de...SFSIC Association
 
Dynamique des complexes médiatiques et design d'interfaces
Dynamique des complexes médiatiques et design d'interfacesDynamique des complexes médiatiques et design d'interfaces
Dynamique des complexes médiatiques et design d'interfaceslaureno
 
Quelles pratiques numériques créatives & collaboratives pour l'apprentissage ?
Quelles pratiques numériques créatives & collaboratives pour l'apprentissage ?Quelles pratiques numériques créatives & collaboratives pour l'apprentissage ?
Quelles pratiques numériques créatives & collaboratives pour l'apprentissage ?
Elise Chomienne
 

Similaire à Représentation de formes par approche contour (20)

CoursImageProcessing1.pdf
CoursImageProcessing1.pdfCoursImageProcessing1.pdf
CoursImageProcessing1.pdf
 
Séminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
Séminaire IA & VA- Dominique Gruyer, Univ Gustave EiffelSéminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
Séminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
 
Introduction à l’infographie
Introduction à l’infographieIntroduction à l’infographie
Introduction à l’infographie
 
Vision par ordinateur
Vision par ordinateurVision par ordinateur
Vision par ordinateur
 
Traitement d’images et média visualisation
Traitement d’images et média visualisationTraitement d’images et média visualisation
Traitement d’images et média visualisation
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docx
 
Étude et résolution numérique de deux modèles basés sur des équations aux dér...
Étude et résolution numérique de deux modèles basés sur des équations aux dér...Étude et résolution numérique de deux modèles basés sur des équations aux dér...
Étude et résolution numérique de deux modèles basés sur des équations aux dér...
 
ségmentation d'image
ségmentation d'imageségmentation d'image
ségmentation d'image
 
TP / Traitement d'image : Discrimination de Texture
TP / Traitement d'image : Discrimination de TextureTP / Traitement d'image : Discrimination de Texture
TP / Traitement d'image : Discrimination de Texture
 
Bahan ajar bahasa visual
Bahan ajar bahasa visualBahan ajar bahasa visual
Bahan ajar bahasa visual
 
IMAGETERR17 : objectifs, méthode, premiers résultats
IMAGETERR17 : objectifs, méthode, premiers résultatsIMAGETERR17 : objectifs, méthode, premiers résultats
IMAGETERR17 : objectifs, méthode, premiers résultats
 
TRAITEMENT DES IMAGES SATELLITALES(01) .pdf
TRAITEMENT DES IMAGES SATELLITALES(01)  .pdfTRAITEMENT DES IMAGES SATELLITALES(01)  .pdf
TRAITEMENT DES IMAGES SATELLITALES(01) .pdf
 
Méthodes pour l’analyse des images numériques
Méthodes pour l’analyse des images numériquesMéthodes pour l’analyse des images numériques
Méthodes pour l’analyse des images numériques
 
Chapitre 1- Présentation.pptx
Chapitre 1- Présentation.pptxChapitre 1- Présentation.pptx
Chapitre 1- Présentation.pptx
 
JEL 2012 - Daniel Peraya - "L'enfance de l'Art" - "Jeux de rôle : les interac...
JEL 2012 - Daniel Peraya - "L'enfance de l'Art" - "Jeux de rôle : les interac...JEL 2012 - Daniel Peraya - "L'enfance de l'Art" - "Jeux de rôle : les interac...
JEL 2012 - Daniel Peraya - "L'enfance de l'Art" - "Jeux de rôle : les interac...
 
Cartes mind map
Cartes mind mapCartes mind map
Cartes mind map
 
Chap1introductionimagenumerique
Chap1introductionimagenumeriqueChap1introductionimagenumerique
Chap1introductionimagenumerique
 
Laurence Noël : Dynamique des complexes médiatiques et design d’interfaces de...
Laurence Noël : Dynamique des complexes médiatiques et design d’interfaces de...Laurence Noël : Dynamique des complexes médiatiques et design d’interfaces de...
Laurence Noël : Dynamique des complexes médiatiques et design d’interfaces de...
 
Dynamique des complexes médiatiques et design d'interfaces
Dynamique des complexes médiatiques et design d'interfacesDynamique des complexes médiatiques et design d'interfaces
Dynamique des complexes médiatiques et design d'interfaces
 
Quelles pratiques numériques créatives & collaboratives pour l'apprentissage ?
Quelles pratiques numériques créatives & collaboratives pour l'apprentissage ?Quelles pratiques numériques créatives & collaboratives pour l'apprentissage ?
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