TP Classification

Ce TP vise à développer un algorithme de classification automatique d’images représentant les quatre figures de cartes : cœur, trèfle, diamant et pique. Les images présentent des variations de taille et d’orientation. Le travail consiste à extraire des caractéristiques invariantes (moments centraux, moments normalisés, moments de Hu) permettant de distinguer ces classes.

D'après le document TP Classification

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

TP Classification

Document source

TP Classification

Machine Learning, Image Processing · DOCX · 8 pages

Consulter le document original →

Ce TP vise à développer un algorithme de classification automatique d’images représentant les quatre figures de cartes : cœur, trèfle, diamant et pique. Les images présentent des variations de taille et d’orientation. Le travail consiste à extraire des caractéristiques invariantes (moments centraux, moments normalisés, moments de Hu) permettant de distinguer ces classes. Ce TP introduit également la méthode de validation croisée k-fold et la sélection de caractéristiques. Pour réaliser ce TP, il faut disposer d’une base d’images classifiées et d’un environnement de calcul capable de traiter ces images et calculer les moments.

Objectifs

  • Segmenter des images pour isoler les formes d’intérêt.
  • Extraire et calculer des caractéristiques invariantes (moments de Hu) à partir des images.
  • Diviser une base de données en ensembles d’apprentissage et de test.
  • Effectuer une sélection de caractéristiques basée sur la variance.
  • Mettre en œuvre un algorithme de classification et évaluer ses performances via une matrice de confusion.
  • Comprendre les principes de base du machine learning appliqués à la classification d’images.

Prérequis et installation

  • Connaissances de base en traitement d’images (segmentation, seuillage).
  • Notions fondamentales sur les moments géométriques et les moments de Hu.
  • Environnement de programmation permettant de manipuler des images et calculer des caractéristiques (ex : Python avec OpenCV ou MATLAB).
  • Base de données d’images des quatre classes (cœur, trèfle, diamant, pique) avec variations d’orientation et de taille.
  • Fonction de seuillage déjà développée pour la segmentation.

Segmentation des images

La première étape consiste à segmenter les images pour isoler les formes des cartes. Cette étape est cruciale car elle permet d’extraire uniquement la région d’intérêt avant le calcul des caractéristiques.

Pour cela, utilisez la fonction de seuillage développée afin de transformer l’image originale en une image binaire où la forme est clairement détachée du fond.

Exemple d’image avant et après seuillage
<img src="data:image/png;base64,..." alt="Avant le seuillage"/>
<img src="data:image/png;base64,..." alt="Après le seuillage"/>

Un résultat correct montre une silhouette nette de la figure, sans bruit ni éléments parasites.

Sélection des données

Avant d’entraîner le modèle, il faut organiser la base de données en quatre classes distinctes : pique, cœur, diamant et trèfle. Chaque classe doit contenir des images variées en taille et orientation.

Divisez la base en deux ensembles :

  • 65 % des données pour l’apprentissage (training data).
  • 35 % des données pour la validation et le test (test data).

Assurez-vous que les données de test ne contiennent pas d’images présentes dans l’ensemble d’apprentissage afin d’évaluer correctement la capacité de généralisation du modèle.

Exemples d’images d’apprentissage et de test
<img src="data:image/png;base64,..." alt="Training Data"/>
<img src="data:image/png;base64,..." alt="Test Data"/>

Extraction des caractéristiques

Pour chaque image, calculez les moments géométriques du contour, en particulier les moments de Hu (Hu1, Hu2, Hu3, Hu4). Ces moments sont des descripteurs invariants aux transformations telles que la translation, la rotation et le changement d’échelle.

Calculez ces moments pour toutes les images de chaque classe et stockez-les dans quatre tableaux distincts correspondant aux classes cœur, trèfle, diamant et pique.

Calcul des moments de Hu pour chaque classe
<img src="data:image/png;base64,..." alt="Moments de Hu classe par classe"/>

Observez que les valeurs des moments de Hu varient légèrement au sein de chaque classe, ce qui est normal en raison des variations d’orientation et de taille.

Sélection des caractéristiques

La sélection des caractéristiques vise à réduire le sur-ajustement et à améliorer la précision du modèle en ne conservant que les descripteurs les plus pertinents.

Analysez la variance de chaque moment de Hu au sein des classes. Le moment dont la variance est la plus faible est considéré comme le plus stable et discriminant.

Dans ce TP, Hu4 présente la variance la plus faible pour la majorité des classes. Par conséquent, seul Hu4 est retenu comme caractéristique principale pour la classification.

Variance des moments de Hu pour chaque classe
<img src="data:image/png;base64,..." alt="Variance des moments de Hu"/>

La méthode « forward » de sélection, qui consiste à construire progressivement un vecteur de caractéristiques, est ici simplifiée car seules quatre caractéristiques existent, et la sélection se limite à Hu4.

Test et matrice de confusion

Une fonction de matching a été développée pour prédire la classe d’une image test à partir de la caractéristique Hu4.

Numérotez les images de test pour faciliter la lecture de la matrice de confusion.

Input\output Cœur Trèfle Pique Diamond
0 (cœur)1000
1 (cœur)1000
2 (cœur)1000
3 (cœur)1000
4 (cœur)1000
5 (cœur)0100
6 (Diamond)0001
7 (Diamond)0001
8 (trèfle)0100
9 (trèfle)0001
10 (trèfle)0100
11 (trèfle)0100
12 (trèfle)0100
13 (pique)0010
14 (pique)0010
15 (pique)0010
16 (pique)0010

La matrice montre que 3 erreurs ont été commises, ce qui correspond à une précision globale de 82 %.

Résultats attendus

  • Images segmentées correctement, avec un contour net des figures.
  • Extraction des moments de Hu pour chaque image, avec une légère variation intra-classe.
  • Identification de Hu4 comme caractéristique la plus stable et discriminante.
  • Prédictions sur les données test avec une précision d’environ 82 %.
  • Matrice de confusion reflétant les erreurs de classification et permettant d’identifier les classes les plus confondues.

Pièges courants

  • Une segmentation incorrecte peut entraîner des caractéristiques erronées et fausser la classification.
  • Ne pas séparer correctement les données d’apprentissage et de test peut conduire à une surestimation des performances.
  • Choisir une caractéristique avec une variance élevée réduit la capacité discriminante du modèle.
  • Ne pas numéroter les données de test complique l’interprétation de la matrice de confusion.
  • Confondre les classes trèfle et diamant, souvent proches visuellement, est une source fréquente d’erreur.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions