• Aucun résultat trouvé

Pour classer les images, on classe leurs représentants c’est-à-dire les signatures. Cette

sec-tion donne la démarche suivie pour la classificasec-tion.

6.2.1 Algorithme d’extraction d’attributs et de création des descripteurs

Maintenant que les outils de traitement d’images et d’extraction d’attributs ont été présentés

dans les chapitres précédents, nous allons présenter notre méthode de création de vecteurs

descripteurs.

pourchaque image de la base Ifaire

pourchaque espace couleur Efaire

pourchaque niveau de résolution nfaire

T = ondelette(I,E,n)

vecteurAttributs[ I ] = extraireAttributs(T)

finpour

finpour

stockerBD(vecteurAttributs[ I ])

finpour

FIG. 6.4 – Algorithme d’extraction des attributs

Dans cette première partie, on lit les images de la base une par une, chacune d’entre elles

est transformée en ondelettes, cette transformation fournit une image multirésolution (àn

ni-veaux) dont on extrait un vecteur descripteur contenant tous les attributs extraits à toutes les

résolutions. Ce vecteur descripteur est stocké dans la base de données. Ensuite vient la phase de

création des signatures.

6.2.2 Création des signatures

Les signatures sont créées par une organisation hiérarchique des attributs issus des vecteurs

descripteurs de l’image sous la forme de quatre vecteurs signature. En fonction des connaissances

de l’utilisateur sur une base d’images, il y aura deux possibilités :

– L’expert pourra créer sa propre signature en choisissant les attributs et la façon de les

organiser en plusieurs vecteurs.

– l’utilisateur non-expert se verra proposer un certain nombre de signatures (pré-établies

par un expert) selon la requête qu’il veut résoudre.

Il n’y a pas d’algorithme à proprement parler pour créer les signatures, il y a juste lecture

des attributs dans les vecteurs descripteurs, sélection et organisation par l’expert et écriture dans

la base de signature utilisée pour la création de l’arbre de recherche.

6.2.3 Création de l’arbre récursif

Par définition, unarbreest un élément récursif n-aire qui possède une racine qui a de0 à

n−1fils, chacun des fils étant un arbre (ayant à son tour de0àn−1fils). . .

Cette définition récursive permet d’utiliser des algorithmes récursifs de création et de

re-cherche (selon une stratégie : en largeur d’abord, en profondeur d’abord. . .). Un arbre possède

uneracine qui est la base de l’arbre. Il y a ensuite desnœudsnon-terminaux (ayant0 àn−1

fils) et des nœuds terminaux (lesfeuilles) n’ayant pas de fils. On définit lacardinalitéde l’arbre

comme le nombre de fils de chaque nœud non-terminal.

La création de l’arbre utilise par définition les propriétés de la récursivité. L’arbre est construit

par séparation successives des images en classes à chaque niveau. Plus on descend en

profon-deur dans l’arbre, moins on trouve d’images dans chacune des classes. La figure 6.5 donne un

exemple d’arbre binaire à quatre niveaux. Lors du parcours de l’arbre, on passe d’abord par la

racine, puis par les nœuds pour arriver aux feuilles.

6.2.3.1 Choix du critère de changement de niveau de signature

Dans la procédure de classification, on utilise quatre vecteurs signature de taille croissante

(4, 6, 8 et 10 attributs par exemple). On utilise d’abord le vecteur le plus court (4 attributs)

lorsqu’il y a beaucoup d’images à classer (classement grossier mais rapide). Puis au fur et à

mesure de la classification, il y a de moins en moins d’images à classer à chaque niveau de

l’arbre. On peut donc affiner la recherche en passant à des vecteurs signature de plus grande

taille.

FIG. 6.5 – Un exemple d’arbre binaire de recherche.

La vitesse de création de l’arbre est peu importante puisque les calculs sont effectués

hors-ligne. Cependant, pour des tailles raisonnables de bases de données (inférieur à 10 000 images),

on peut envisager de réaliser la classification en ligne pour prendre en compte une technique de

bouclage de pertinence avec apprentissage. Dans ce cas, il est très intéressant de disposer d’une

méthode qui utilise des vecteurs de petite taille en nombres entiers afin d’obtenir des temps de

calculs très faibles.

Dans la procédure de création de l’arbre de recherche, il faut définir le moment de

change-ment de vecteur signature et donc lecritère de changement de niveau de signature.

6.2.3.2 Choix du critère d’arrêt de la construction de l’arbre

Un autre choix important dans la construction récursive d’un arbre est le critère d’arrêt. Il

faut définir dans l’appel de la procédure récursive une condition qui, si elle est vérifiée, va mettre

un terme à la branche de l’arbre que l’on est en train de construire pour la transformer en feuille

de l’arbre.

Lecritère d’arrêt peut être une mesure qualitative et/ou quantitative sur la branche en

cours de traitement.

Par exemple, un critère qualitatif peut être : on découpe le nœud actuel si la distance

inter-classe est inférieure à un seuil fixé. Un critère quantitatif peut être : le nombre d’images en

dessous duquel on ne découpe plus la famille obtenue. Ou bien on peut envisager un critère

mixte : on ne découpe que si la famille contient un nombre donné d’images et que la distance

inter-classes est inférieure à un seuil donné.

6.2.3.3 Algorithme de création de l’arbre récursif

L’algorithme de création de l’arbre récursif est donné ci-dessous :

Procédurearbre( liste-images, niveau-vecteur-signature, nombre-familles )

début

v = vecteur[niveau-vecteur-signature]

list-images[j] = kmeans( liste-images, v ) // j = 1...nombre-familles

sicritère-changement-niveau est vérifié

alors

siniveau-vecteur-signature < 4

niveau-vecteur-signature = niveau-vecteur-signature + 1

finsi

finsi

sicritère d’arrêt n’est pas vérifié

alors

pouri de 1 à nombre-famillesfaire

arbre( list-images[i], niveau-vecteur-signature )

finpour

finsi

fin

Dans cette phase de classification, la définition de la cardinalité de l’arbre s’est inspirée de

la perception psycho-visuelle. Afin de ne pas surcharger la mémoire à court terme de l’utilisateur

du système, la cardinalité de l’arbre a été volontairement limitée. Cette cardinalité suit la règle

bien connue des psychologues : 7±2 qui signifie qu’un individu ne peut à un instant donné

mémoriser dans sa mémoire à court terme que sept (plus ou moins deux selon les individus)

concepts.

Dans notre cas, cela signifie simplement qu’on ne peut pas proposer aux utilisateurs du

système plus de sept images pour la recherche car l’utilisateur serait incapable de les comparer

correctement à l’image qu’il recherche et qu’il est le seul à visualiser.

Le critère de changement de niveau de signature et le critère d’arrêt seront définis dans la

partie implémentation au chapitre 7.