Visitor menu

Extraction de caractéristiques
Code pour l'extraction de caractéristiques à partir d'image, avec Matlab

Des algorithmes de prédiction comme la programmation génétique permettent de reconnaître certain éléments dans des images. Pour faciliter leur tâche, on peut préalablement extraire les caractéristiques pertinentes de l'objet à classifier dans l'images. Ces caractéristiques, calculées à partir des valeurs de pixel de l'objet, sont une représentation de la forme, la couleur ou la texture de l'objet.

Notez que l'extraction complète, y compris des informations sur la forme, ne peut se faire que si l'objet d'intérêt à été segmenté. Je n'ai pas étudié les algorithmes de segmentation en profondeur, préférant utiliser des situations simples où le fond d'écran peut facilement être identifié. Dans le cadre de mes recherches, j'ai utilisé ce script pour réaliser la segmentation.

Pour une consultation rapide et dans l'intention de simplifier la vie à des programmeurs / chercheurs qui voudraient s'adonner au même exercice que moi, je rends disponible le code Matlab avec lequel j'ai fait l'extraction de caractéristiques dans le cadre de mon projet de maîtrise. Pour utiliser mon code, téléchargez le fichier compressé.

Rapidement, je présente les fichiers et dossiers et leur utilité:

NomCommentaire
createStdArffFile.mcrée un fichier arff et rédige l'entête en prévision d'extraction sur des images RVB
appendToStdArffFile.mrajoute des données à un fichier arff déjà créé. fonctionne pour les images RVB
createStdGrayArffFile.mcrée un fichier arff et rédige l'entête en prévision d'extraction sur des images en niveau de gris
appendToStdGrayArffFile.mpour rajouter des données à un fichier arff déjà créé. fonctionne pour les images en niveaux de gris
createUnStdArffFile.mcrée un fichier arff et rédige l'entête en prévision d'extraction sur des images RVB mais sans segmentation
appendToUnStdArffFile.mpour rajouter des données à un fichier arff déjà créé. fonctionne pour les images en RVB mais sans segmentation
getStats.mextrait les caractéristiques d'une image, peut fonctionner avec ou sans segmentation
Local Binary Pattern (dossier)ce dossier contient le code pour extraire le partron binaire local (téléchargez sur le site original), utilisé par getStats.
Fourier Transform Analysis (dossier)pour obtenir des caractéristiques de la transformée de Fourier, utilisé par getStats
createDataOneClass.mextrait les données avec getStats pour toutes les images (jpg ou bmp) d'un dossier
createDataOneClassNoSeg.mmême chose que la fonction précédente mais utilise getStats sans segmentation

Afin d'automatiser le procédé d'extraction, il faut que toutes les images segmentées (ou pas) qui correspondent à une classe soient dans un dossier unique (on a donc besoin d'au moins un dossier par classe). On peut alors utiliser createDataOneClass.m sur ce dossier pour extraire les caractéristiques en bloc. On pourra alors les concaténer à un fichier arff déjà créé, etc.

Pour en savoir plus sur le fichier de format arff, consultez ce site.
Pour des questions ou commentaires concernant l'extraction de caractéristiques avec Matlab, n'hésitez pas à me contacter.

Created by: Yan last modification: Thursday 08 of May, 2008[03:28:52 UTC] by admin