Indexation de base d`images 1 Création de la base de données

publicité
Indexation de base d’images
L’indexation a pour objectif de faciliter l’accès à des bases de données en extrayant une information synthétique. Cette information peut être apportée par des attributs décrivant la forme, la couleur et/ou la texture
lorsqu’il s’agit de caractériser des bases de données images. Dans ce TP, nous proposons de construire notre
propre base d’images. Pour cela, nous avons à notre disposition différents objets, regroupés en 4 classes.
L’objectif va être de caractériser ces différentes classes. Nous évaluerons la pertinence de cette caractérisation en présentant au système de nouveaux objets et en vérifiant si ceux-ci sont assignés correctement à leur
classe d’appartenance. Pour effectuer cette vérification, nous allons créer une base d’images de référence
(ou base d’apprentissage) et une base d’images à tester (ou base d’images requêtes).
1
Création de la base de données image
La base de données image que vous allez créer est constituée de 4 classes :
• panneaux de signalisation,
• personnages,
• voitures,
• camions.
Pour chaque classe, vous disposez de 6 objets (cf. figure 1).
1) A l’aide du banc d’acquisition à votre disposition, acquérir, pour chacun des 24 objets présentés
ci-dessus, 5 images représentant l’objet selon 5 angles de vue différents (cf. figure 2).
Enregistrer les images au format .png en suivant l’incrémentation suivante :
• de 001.png à 005.png pour le premier objet pris sous ses différents angles de vue,
• de 006.png à 010.png pour le deuxième objet pris sous ses différents angles de vue,
• etc
Un objet de chaque classe, pris sous ses différents angles de vue, sera utilisé pour construire la base
d’apprentissage. Les 5 autres objets de la classe seront utilisés pour tester la pertinence de la caractérisation.
La base d’apprentissage est donc constituée de 20 images (5 images par classe) et la base à tester de 100
images (25 images par classe).
2
Caractérisation : extraction des attributs de forme
La fonction qui va être utilisée dans ce TP pour extraire les attributs de forme nécessite une binarisation
préalable des images.
2) Effectuer la binarisation d’une des images de la base grâce à la fonction im2bw.
TP de vision
1
Figure 1 – Base de données image : chaque ligne représente une classe.
Figure 2 – Acquisition d’un objet selon 5 angles de vue différents.
3) Le seuil utilisé pour binariser les images pouvant varié d’une image à l’autre, utiliser la fonction
graythresh pour déterminer de manière automatique le seuil en fonction de l’image passée en paramètre.
4) Inverser l’image de manière à ce que l’objet apparaisse en blanc et le fond en noir.
5) Afin de détecter une unique région correspondant à l’objet, utiliser les fonctions :
• bwareaopen : permet d’élimination des objets de petites surfaces par analyse de connexité.
TP de vision
2
• bwlabel : attribue une étiquette aux pixels de chaque région représentant la forme (pixels blancs
connexes) présente dans une image binaire et retourne le nombre de ces régions (analyse en composantes connexes).
6) En utilisant la fonction imlose, traiter l’image binarisée afin d’obtenir une image dans laquelle la
forme correspond au mieux à l’objet de la scène réelle.
La fonction regionprops permet de mesurer différents paramètres de régions contenues dans une
image d’étiquettes et donc obtenues après une analyse en composantes connexes. Les paramètres mesurés par cette fonction sont les suivants :
• la surface,
• le périmètre,
• le diamètre équivalent,
• la longueur de l’axe principal d’inertie (longueur de la région),
• la longueur du second axe d’inertie (largeur de la région),
• l’angle de l’axe principal d’inertie (orientation de la région),
• les coordonnées du centre de gravité,
• les coordonnées du cadre circonscrit à la région (boundingbox),
• etc
7) Pour les images 001.png, 002.png et 031.png, calculer les coordonnées du centre de gravité des
formes correspondantes, ainsi que leur surface, leur périmètre, leur diamètre équivalent, leur longueur, leur
largeur et leur orientation. Conclure.
8) Écrire une fonction appelée AttributsForme permettant de retourner le vecteur des attributs de
forme à partir d’une image en niveau de gris. Tester cette fonction.
3
Classification
Maintenant qu’il est possible de calculer un vecteur d’attributs de forme à partir d’une image, nous allons
mettre en place la procédure de classification. Cette procédure va nous permettre d’analyser la pertinence
de nos attributs en mesurant le taux d’images bien classées.
Le processus de classification est divisé en deux étapes successives :
1. L’apprentissage : l’objectif est de "construire" des classes d’objets à partir de l’ensemble d’images
d’apprentissage. Pour cela, les objets présents dans les images d’apprentissage sont décrits par un
ensemble d’attributs.
2. La classification : durant cette seconde phase, nous utiliserons la méthode du plus proche voisin qui
consiste à assigner chaque image requête à la classe de l’image d’apprentissage la plus similaire.
Cette similarité entre images est mesurée en comparant les vecteurs d’attributs.
3.1 Apprentissage
L’apprentissage consiste à ouvrir chacune des images de la base d’apprentissage, calculer et enregistrer
dans une variable le vecteur d’attributs de chaque image d’apprentissage ainsi que la classe correspondante.
Pour cela, nous allons utiliser une boucle répétitive de la manière suivante :
TP de vision
3
n b _ c l a s s e = 4 ; % d é f i n i l e nombre de c l a s s e s
n b _ im ag e = 3 0 ; % d é f i n i l e nombre d ’ i m a g e s p a r c l a s s e
ch em in = ’C : \ . . . \ D a t a b a s e \ ’ ;
nb_ima = n b _ c l a s s e * n b _ im ag e ;
n b _ i m a _ t r a i n = nb_ima / 6 ;
% p o u r ch a q u e c l a s s e , s e u l un o b j e t s u r 6 e s t u t i l i s é p o u r l ’ a p p r e n t i s s a g e
A t t r i b u t s = zeros ( nb_ima_train , 8) ;
%% A p p r e n t i s a g e
ima_label =0;
f o r i _ t r a i n = 1 : nb_ima
i f ( ( ( 1 < = i _ t r a i n )&&( i _ t r a i n < = 5 ) ) | | ( ( 3 1 < = i _ t r a i n )&&( i _ t r a i n < = 3 5 ) )
| | ( ( 6 1 < = i _ t r a i n )&&( i _ t r a i n < = 6 5 ) ) | | ( ( 9 1 < = i _ t r a i n )&&( i _ t r a i n < = 9 5 ) ) )
ima_label=ima_label +1;
% E n r e g i s t r e m e n t du numéro de l a c l a s s e d a n s un t a b l e a u
n u m _ c l a s s e ( i m a _ l a b e l ) = f l o o r ( ( i _ t r a i n − 1 ) / n b _ im ag e ) + 1 ;
% C o n c a t é n a i o n d e s c h a î n e s de c a r a c t è r e s
% p o u r c o n s t i t u e r l e ch ema in d ’ a c c è s au f i c h i e r ima g e
i f ( i _ t r a i n /10 < 1)
f i c h i e r _ t r a i n = [ ch em in ’ Base \ 0 0 ’ i n t 2 s t r ( i _ t r a i n ) ’ . png ’ ] ;
else
i f ( i _ t r a i n /100 < 1)
f i c h i e r _ t r a i n = [ ch em in ’ Base \ 0 ’ i n t 2 s t r ( i _ t r a i n ) ’ . png ’ ] ;
else
f i c h i e r _ t r a i n = [ ch em in ’ Base \ ’ i n t 2 s t r ( i _ t r a i n ) ’ . png ’ ] ;
end
end
% A f f i c h a g e du numéro de l a c l a s s e
disp ( [ f i c h i e r _ t r a i n ’ Classe ’ i n t 2 s t r ( num_classe ( ima_label ) ) ] ) ;
% O u v e r t u r e de l ’ ima g e
I m a _ t r a i n = imread ( f i c h i e r _ t r a i n ) ;
% C o n v e r s i o n en n i v e a u x de g r i s
Ima_gray = rgb2gray ( I m a _ t r a i n ) ;
% A j o u t e r i c i s i n é c e s s a i r e d e s o p é r a t i o n s de p r é t r a i t e m e n t
% E x t r a c t i o n d e s a t t r i b u t s de f o r m e
A t t r i b u t s ( ima_label , : ) = A t t r i b u t sFo r m e ( Ima_gray ) ;
end
end
9) Réaliser l’apprentissage du processus de classification.
10) A l’aide de la commande :
s c a t t e r ( a t t r i b u t s _ t r a i n ( : , 1 ) , a t t r i b u t s _ t r a i n ( : , 2 ) , 2 * num_classe , num_classe ) ;
visualiser les nuages de points dont les coordonnées sont deux des attributs calculés (la surface et la longueur).
Les attributs calculés peuvent avoir des échelles de valeurs très différentes, ce qui peut leur donner un
poids différent lors du processus de comparaison et biaiser les résultats de classification.
TP de vision
4
Afin d’obtenir des données indépendantes de l’unité ou de l’échelle choisie, il est nécessaire de centrer
et réduire les variables utilisées. Pour cela, nous devons calculer la moyenne (fonction mean) et l’écart-type
(fonction std) des valeurs de chaque attribut sur l’ensemble des données d’apprentissage.
Centrer une variable consiste à soustraire sa moyenne à sa valeur et réduire une variable consiste à
diviser sa valeur par son écart-type.
11) Centrer et réduire les attributs de forme calculés pendant l’apprentissage.
3.2 Décision
Nous allons maintenant mettre en place la procédure permettant de classer une image requête de la base
test, l’objectif étant de reconnaître le type d’objet correspondant à l’image analysée.
Le classifieur utilisé pour cela sera le classifieur 1-ppv (algorithme du plus proche voisin). Cet algorithme nécessite de mesurer la distance euclidienne entre le vecteur d’attributs de l’image requête avec
chacun des vecteurs d’attributs des images de la base d’apprentissage. L’image d’apprentissage pour laquelle la distance est minimale est alors l’image la plus ressemblante à l’image requête et sa classe indique
la classe de l’image requête.
12) Compléter le programme précédent afin d’ouvrir une image de la base test et classer cette image par
un algorithme 1-ppv.
4
Essais expérimentaux
4.1 Taux de classification
Le taux de classification correspond au rapport entre la somme des images requêtes bien classées et le
nombre total d’images requêtes.
13) Écrire un programme permettant de calculer le taux de classification en vous inspirant du programme
permettant l’apprentissage. Un moyen de valider votre programme est de classer les images de la base
d’apprentissage et de vérifier que vous obtenez bien un taux de 100%.
4.2 Autres essais
14) Poursuivre les essais expérimentaux en utilisant la couleur, en testant la corrélation, en analysant
d’autres attributs de reconnaissance de forme, d’autres classifieurs, en essayant de classer d’autres objets
que ceux utilisés pour construire les bases, ... Relever à chaque fois les taux de classification, les temps de
traitement, la matrice de confusion, ...
TP de vision
5
Téléchargement