La classifcation des images

L'intelligence artificiel

Contexte et apprentissage

L'intelligence artificielle on en parle depuis plus de 50 ans maintenant. L'histoire du domaine est un peu agitée et bruyante. Ça a commencé par une période de grand enthousiasme où on s'imaginait qu'on arriverait très vite à faire des choses assez incroyables. Puis ça a été suivi par une période un peu plus sombre de désillusion où on a finalement constaté qu'on avait un peu sous-estimé les difficultés. Dans les années 90, le domaine a subi une renaissance sous le nom « machine learning ou apprentissage automatique en français ». Le machine learning c’est un domaine de l’intelligence artificiel qui étudie comment des algorithmes peuvent apprendre en se basant sur "des exemples". Et le « deep learning ou apprentissage profond » en est une manière particulière pour faire du machine learning. Celui-ci, pousse cet apprentissage encore plus profond pour pouvoir grossièrement s’approcher de l’intelligence humaine.

L’idée folle de faire du deep learning a été rejetée depuis longtemps car a priori elle ne pouvait pas fonctionner. Mais Il y a eu quand même des gens qui ont voulu essayer. Un de ces pionniers, c'est un français qui s'appelle Yann Le Cun. Celui-ci a développé un type de réseau de neurone particulier qui s’appelle « le réseau de neurone convolutionnel (CNN) ». Ces réseaux sont une forme particulière de réseau neuronal multicouche dont l’architecture des connexions est inspirée de celle du cortex visuel des mammifères. Par exemple, chaque élément n’est connecté qu’à un petit nombre d’éléments voisins dans la couche précédente. En 1995, Yan le Cun et deux autres ingénieurs ont développé un système automatique de lecture de chèques qui a été déployé largement dans le monde. À la fin des années 90, ce système lisait entre 10 et 20 % de tous les chèques émis aux États-Unis. Mais ces méthodes étaient plutôt difficiles à mettre en œuvre avec les ordinateurs de l’époque, et malgré ce succès, les réseaux convolutionnels et les réseaux neuronaux plus généralement ont été délaissés par la communauté de la recherche entre 1997 et 2012.

La période de renaissance

Depuis 2010, l’intelligence artificiel connaît toutefois un nouvel essor du fait, principalement, de l’amélioration considérable de la puissance de calcul des ordinateurs et d’un accès à des quantités massives de données. Ce dernier a permis de pouvoir utiliser des algorithmes de classification d’images et de reconnaissance d’un chat par exemple, il fallait auparavant réaliser soi-même un échantillonnage. Aujourd’hui, une simple recherche sur Google permet d’en trouver des millions. Ensuite la découverte de la très grande efficacité des processeurs de cartes graphiques des ordinateurs pour accélérer le calcul des algorithmes d’apprentissage. Le processus étant très itératif, cela pouvait prendre des semaines avant 2010 pour traiter l’intégralité d’un échantillonnage. La puissance de calcul de ces cartes, (capables de plus de mille milliards d’opérations par seconde) a permis un progrès considérable pour un coût financier restreint (moins de 1000 euros la carte)

Parmi les techniques d’apprentissage machine (machine learning), c’est celle de l’apprentissage profond qui paraît la plus prometteuse pour un certain nombre d’application (dont la reconnaissance de voix ou d’images). En effet dès 2003 des expériences sont menées simultanément par Microsoft, Google et IBM avec l’aide du laboratoire de Toronto de Hinton qui ont montré que les réseaux profonds pouvaient diminuer de moitié les taux d’erreurs des systèmes de reconnaissance vocale. Et le fait que plusieurs records en reconnaissance d’image ont été obtenus par des algorithmes basées sur des réseaux de neurones convolutionnels.

La diminution des taux d’erreurs était telle une véritable révolution que du jour au lendemain, la majorité des équipes de recherche en parole et en vision ont abandonné leurs méthodes préférées et sont passées aux réseaux de neurones convolutionnels et autres réseaux neuronaux. L’industrie d’Internet a immédiatement saisi l’opportunité et a commencé à investir massivement dans des équipes de recherche et développements en apprentissage profond.

Notions de base

Définition d’une image (Numérique)

Une image numérique est une figure (dessin, icône, photographie...) créée, traitée, stockée sous forme binaire (suite de 0 et de 1). On distingue 2 types d’image numérique : Les images vectorielles et les images matricielles. Dans notre travail nous utiliserons des images matricielles pour faire de la classification.

Les images vectorielles

Une image vectorielle en informatique, est une image numérique composée d’objets géométriques individuels (segments de droite, polygones, arcs de cercle, etc.) définis chacun par divers attributs de forme, de position, de couleur, etc. (définis de manière mathématique). Ces images sont utilisées pour réaliser des schémas ou des plans mais pas exclusivement. Pour les images vectorielles on ne parle pas de Définition ni de Résolution à proprement parlé. Il n’y a que quand on transforme ces images vectorielles en images matricielles que ces notions rentrent en compte. Ils présentent 2 avantages : elles occupent peu de place en mémoire et peuvent être redimensionnées sans perte d’informations et sans effet dit : d’escalier (crénelage).

Les images matricielles

Une image matricielle est une représentation planaire d’une scène ou d’un objet situé en général dans un espace tridimensionnel. Lorsqu'on agrandit une image matricielle, on voit que celle-ci est composée d'un ensemble de "points", appelés pixels.

Images matriciel
Illustration de l’ensemble de point sur un image matricielle

Caractéristiques d’une image matricielle

Une image matricielle est caractérisée essentiellement de ses pixels, sa définition et sa résolution. En effet, une image numérique est un fichier informatique pouvant être vu comme un tableau de nombres.

  • Le pixel représente ainsi le plus petit élément constitutif d’une image numérique. L’ensemble de ces pixels est contenu dans un tableau à deux dimensions constituant l’image.
  • Sa définition est le nombre total de points (pixels) qui constituent l’image : C’est le nombre de colonnes (largeur) de l’image que multiplie son nombre de lignes (longueur) qui sont en réalité ses dimensions.
Image en pixel - resolution
Exemple d’une image de résolution $11×12$

Et bien sa résolution est le nombre de pixels contenus dans l'image par unité de longueur. La résolution définit la netteté et la qualité d'une image. Plus la densité des pixels constituant l’image matricielle est élevée, plus les points sont nombreux, plus votre image est précise dans les détails. La résolution permet ainsi d'établir le rapport entre la définition en pixels d'une image et la dimension réelle de sa représentation sur un support physique (affichage écran, impression papier...). On l’écrit souvent de la manière largeur × hauteur.(voire légende du figure précédente).

Image dune voiture sur différentes résolution
Image dune voiture sur différentes résolution
Image dune femme sur différentes résolution
Image dune femme sur différentes résolution

La profondeur des couleurs

En plus de sa définition, une image matricielle utilise plus ou moins de mémoire selon le codage des informations de couleur qu’elle possède. C’est ce que l’on nomme le codage de couleurs ou profondeur des couleurs, exprimé en bit par pixel (bpp) : 1, 4, 8, 16 bits. Plus elle est importante, plus l'image peut afficher de couleurs différentes. Elle est comprise entre 1 et 32 bits.

Codage d'une image en noir et blanc

Pour ce type de codage, chaque pixel est soit noir, soit blanc. Il faut donc un bit pour coder un pixel 0 pour noir, 1 pour blanc. Ce type de codage est économe en mémoire, il convient pour un plan ou un texte mais on voit rapidement ses limites lorsqu'il s'agit d'une photographie.

Codage d'une image en niveaux de gris

Si on code chaque pixel sur deux bits, on aura 4 possibilités : noir, gris foncé, gris clair, blanc. L'image sera très peu nuancée mais plus que le noir et blanc. En général on code chaque pixel sur 8 bits = 1 octet. On a alors 256 niveaux de gris (possibilités). L'image codée de 10000 pixels occupe alors 10000 octets en mémoire.

Codage d’une image en couleurs 8 bits

Dans ce cas on attache une palette de 28 = 256 couleurs à l'image. Chaque code (de 0 à 255) désigne une couleur choisie parmi les 16 millions de couleurs de la palette RVB (voir ci-après) de manière pertinente ; c’est à dire qu’un programme recherche les couleurs les plus adaptées. Ainsi chaque pixel est codé sur 8 bits = 1 octet, donc l’image codée de 10000 pixels occupe 10000 octets en mémoire (ou 80000 bits).

Codage d’une image en couleurs 24 bits

Dans ce cas, la couleur du pixel est codée sur la palette du mode RVB (16 millions de couleurs). Chaque pixel est codé 3 octets soit 24 bits ; par conséquent l’image codée de 10000 pixels occupe 30000 octets en mémoire. Ce type de codage très utilisé est gourmand en mémoire mais donne un très bon rendu d’image.

Le rendu des couleurs

Le rendu des couleurs d’une image matricielle peut être assuré par le codage RVB 24 bits. Pour chaque pixel de l’image, un triplet de nombres donne le niveau d’intensité lumineuse des trois sous-pixels rouge vert bleu formant le pixel. En 24 bits, cela permet d’obtenir plus de 16 millions de couleurs différentes. Pour une image en niveaux de gris, un seul nombre est requis par pixel, les sous-pixels recevant la même information.

Le voisinage

Le plan de l’image est divisé en termes de formes rectangulaires ou hexagonales permettant ainsi l’exploitation de la notion de voisinage. Le voisinage d’un pixel est formé par l’ensemble des pixels qui se situent autour de ce même pixel. On définit aussi l’assiette comme étant l’ensemble de pixels définissant le voisinage pris en compte autour d’un pixel. On distingue deux types de voisinage :

  • Voisinage à 4 : On ne prend en considération que les pixels qui ont un coté commun avec le pixel considéré.
  • Voisinage à 8 : On prend en compte tous les pixels qui ont au moins un point en liaison avec le pixel considéré.
Voisinage à 4
Voisinage à 4
Voisinage à 8
Voisinage à 8

Luminescence

C’est le degré de luminosité des points de l’image. Elle est définie aussi comme étant le quotient de l’intensité lumineuse d’une surface par l’aire apparente de cette surface, pour un observateur lointain, le mot luminance est substitué au mot brillance, qui correspond à l’éclat d’un objet.

Une bonne luminance se caractérise par :

  • Des images lumineuses (brillantes),
  • Un bon contraste : il faut éviter les images où la gamme de contraste tend vers le blanc ou le noir. Ces images entraînent des pertes de détails dans les zones sombres ou lumineuses.
  • L’absence de parasites.

Bruit

Un bruit (parasite) dans une image est considéré comme un phénomène de brusque variation de l’intensité d’un pixel par rapport à ses voisins, il provient de l’éclairage des dispositifs optiques et électroniques du capteur. C’est un parasite qui représente certains défauts (poussière, petits nuages, baisse momentanée de l’intensité électrique sur les capteurs, ...etc.). Il se traduit par des taches de faible dimension et dont la distribution sur l’image est aléatoire. Nous verrons plus tard comment on peut les diminuer, voir les éliminer en utilisant les convolutions.

Pour trouver donc les filtres dans une images, nous utiliserons des convolutions et ce qu’on appelle Pooling .

Contours

Les contours représentent la frontière entre les objets de l’image, ou la limite entre deux pixels dont les niveaux de gris représentant une différence significative. Dans une image numérique, les contours se situent entre les pixels appartenant à des régions ayant des intensités moyennes différentes ; il s’agit de contours de type saut d’amplitude . Un contour peut également correspondre à une variation locale d’intensité présentant un maximum ou un minimum ; il s’agit alors de contour en toit . Ces contours on peut les détecter sur une image en appliquant un filtre sur ce dernier.

Filtrage d’une image par convolutions

Le filtrage d'une image numérique permet de modifier son spectre spatial. On peut par exemple chercher à atténuer les hautes fréquences pour la rendre moins nette, à réduire le bruit, ou au contraire à accentuer les hautes fréquences pour accentuer la netteté. La dérivation est aussi une opération de filtrage, employée pour la détection des bords.

La classification automatique

Objectif et motivations

L’objectif de la classification d’images est d’élaborer un système capable d’affecter une classe automatiquement à une image. Ainsi, ce système permet d’effectuer une tâche d’expertise qui peut s’avérer couteuse à acquérir pour un être humain en raison notamment de contraintes physiques comme la concentration, la fatigue ou le temps nécessité par un volume important de données images.

contraintes physiques
Contraintes physiques

Les applications de la classification automatique d’images sont nombreuses et le point commun à toutes ces applications est qu’elles nécessitent la mise en place d’une chaîne de traitement à partir des images disponibles composées de plusieurs étapes afin de fournir en sortie une décision. Chaque étape de la mise en place d’un tel système de classification nécessite la recherche de méthodes appropriées pour une performance globale optimale à savoir la phase d’extraction de caractéristiques et la phase d’apprentissage.

Typiquement, nous disposons de données images desquelles il nous faut extraire des informations pertinentes traduites sous formes de vecteurs numériques. Cette phase d’extraction nous permet de travailler dans un espace numérique. Il s’agit ensuite d’élaborer, dans la phase d’apprentissage, à partir de ces données initiales, une fonction de décision pour décider de l’appartenance d’une donnée nouvelle a l’une des classes en présences. La phase d’extraction de caractéristiques peut être précédée d’une phase dite de pré- traitement. Cette phase a pour but de nettoyer l’image, c’est-à-dire d’isoler le contenu informatif ou d’intérêt dans l’image. Cette opération permet ainsi d’occulter ou d’atténuer toute information susceptible de nuire à la description du contenu pertinent lors de la phase d’extraction de caractéristiques.

On retrouve la classification automatique sur divers domaines notamment sur des applications dans le domaine médical comme la reconnaissance de cellules, dans le domaine du document comme la reconnaissance d’écriture manuscrite pour les chèques, les codes postaux, les cartes, dans le domaine urbain comme la reconnaissance de piétons, la détection de véhicules ; dans le domaine de la biométrie comme la reconnaissance de visage.

La classification supervisée

Objectif

L'objectif de la classification supervisée est principalement de définir des règles permettant de classer des objets dans des classes à partir de variables qualitatives ou quantitatives caractérisant ces objets. Elle est l'outil essentiel utilisé pour extraire des informations quantitatives à partir de données d'images. Le fait que pour l’humain, plusieurs facteurs peuvent l’empêcher de faire une classification, il est nécessaire de montrer à des algorithmes comment reconnaitre des objets et comment les classifier. Et cette tâche est ce qu’on appelle la phase d’apprentissage. Nous utiliserons un réseau de neurones convolutionnels (CNN) pour réaliser cet apprentissage.

Phase d'apprentissage

On dispose au départ d'un échantillon dit d'apprentissage dont le classement est connu. Cet échantillon est utilisé pour l'apprentissage des règles de classement.

La procédure est la suivante :

  • On montre à un algorithme d’apprentissage automatique des objets à classifier en lui donnant aussi les étiquettes d’appartenance d’une classe pour chaque objet.
  • Cet algorithme va chercher tout seul les règles qui permettent de reconnaitre ces objets pour bien les classer.
  • Après cet étape, l’algorithme aura découvert les différentes caractéristiques des objets et on pourra lui donner d’autres objets qu’il n’a pas encore vu pour nous donner leur classe d’appartenance.

Jeu de données Dataset

Alors, il est nécessaire d'étudier la fiabilité de ces règles. Pour évaluer une règle de classement nous pourrons nous pourrons séparer la phase d’apprentissage en plusieurs phase (diviser pour mieux régner). Pour ce faire nous allons rassembler nos données à classifier en une sorte de base de données qu’on appelle « jeu de donnée » connue sous le nom de « dataset en anglais ».

Un jeu de donnée (dataset) va contenir d’énorme quantité de donnée. En effet, plus notre dataset sera grand et diversifié, plus notre modèle sera apte par la suite à prédire des résultats les plus justes possible.

Le dataset doit être formaté de la façon suivante :

  • Train set : Celui-ci va être le plus volumineux en termes de donnée. En effet, c’est sur ce jeu ci que le réseau va itérer durant la phase d’entrainement pour pouvoir s’approprier des paramètres, et les ajuster au mieux. Certaines règles préconisent qu’il soit composé de 80% des données disponibles. C’est la phase d’apprentissage.
  • Validation set : Quant à lui, on préconise d’avoir environ 10% des données disponible. Ce jeu sera appelé une seule fois, à la fin de chaque itération d’entrainement. Il va permettre d’équilibrer le système. C’est la phase d’ajustage.
  • Test set : Test set : Ce dernier va avoir un rôle bien différent des autres, puisqu’il ne servira pas à ajuster notre réseau. En effet, il va avoir pour rôle d’évaluer le réseau sous sa forme finale, et de voir comment il arrive à prédire. C’est pour cela qu’il doit être composé exclusivement de nouveaux échantillons, encore jamais utilisé pour éviter de biaiser les résultats en lui envoyant des donnés, qu’il connaîtrait déjà et qu’il aurait déjà appris lors de la phase d’entrainement ou de validation. Celui-ci encore peut être estimé de l’ordre de 10% des données disponible.
Train set 80% Validation set 10% Test set 10% DIVISION DU JEU DE DONNÉES
Division du jeu de données en 3 groupes

Indicateur de performance

Matrice de confusion

Une matrice de confusion est une matrice qui mesure la qualité d'un système de classification, il représente les performances d’un modèle de classification dans une matrice dite de confusion. Chaque ligne correspond à une classe réelle, chaque colonne correspond à une classe estimée. La cellule ligne L, colonne C contient le nombre d'éléments de la classe réelle L qui ont été estimés comme appartenant à la classe C.

Un des intérêts de la matrice de confusion est qu'elle montre rapidement si un système de classification parvient à classifier correctement.

Prenons l’exemple d’un classifieur binaire, c’est-à-dire, qui prédit 2 classes notées classe 0 et classe 1. Pour mesurer les performances de ce classifieur, il est d’usage de distinguer 4 types d’éléments classés pour la classe voulue :

  • Vrai positif (VP)    : Elément de la classe 1 correctement prédit
  • Vrai Négatif (VN)  : Elément de la classe 0 correctement prédit
  • Faux positif (FP)   : Elément de la classe 0 correctement prédit
  • Faux Négatif (FN) : Elément de la classe 0 correctement prédit

Ces informations peuvent être rassemblés et visualisés sous forme de tableau dans une matrice de confusion. Dans le cas d’un classifieur binaire, on obtient :

Matrice de confusion
Classe prédite
Classe 0 Classe 1
Classe réelle Classe 0 VN FN
Classe 1 FP VP

Exemple

Pour bien comprendre la notion de matrice de confusion, prenons cet exemple tiré sur Wikipédia

On souhaite mesurer la qualité d'un système de classification de courriers électroniques. Les courriers sont classifiés selon deux classes : courriel pertinent ou pourriel intempestif. Supposons que notre classificateur est testé avec un jeu de 200 mails, dont 100 sont des courriels pertinents et les 100 autres sont des pourriels.

Pour cela, on veut savoir :

  • Combien de courriels seront faussement estimés comme des pourriels (fausses alarmes) et
  • Combien de pourriels ne seront pas estimés comme tels et classifiés à tort comme courriels.

La matrice de confusion suivante se lit alors comme suit :

  • Horizontalement, sur les 100 courriels initiaux (i.e. : 95+5), 95 ont été estimés par le système de classification comme tels et 5 ont été estimés comme pourriels (i.e. : 5 faux-négatifs),
  • Horizontalement, sur les 100 pourriels initiaux (i.e. : 3+97), 3 ont été estimés comme courriels (i.e. : 3 faux-positifs) et 97 ont été estimés comme pourriels,
  • Verticalement, sur les 98 mails (i.e. : 95+3) estimés par le système comme courriels, 3 sont en fait des pourriels,
  • Verticalement, sur les 102 mails (i.e. : 5+97) estimés par le système comme pourriels, 5 sont en fait des courriels.
  • Diagonalement (du haut gauche, au bas droit), sur les 200 courriels initiaux, 192 (95 + 97) ont été estimés correctement par le système.

Ces informations peuvent être rassemblés et visualisés sous forme de tableau dans une matrice de confusion. Dans le cas d’un classifieur binaire, on obtient :

Exemple de matrice de confusion
Classe estimée par le classificateur
Courriel Pourriel
Classe réelle Courriel 95 (vrais positifs) 5 (faux négatifs)
Pourriel 3 (faux positifs) 97 (vrais négatifs)

Cette notion s'étend à un nombre quelconque de classes. On peut normaliser cette matrice pour en simplifier la lecture : dans ce cas, un système de classification sera d'autant meilleur que sa matrice de confusion s'approchera d'une matrice diagonale.

Notons que la matrice de confusion est aussi généralisable lorsqu’il y a k > 2 classes à prédire (Nombre de classe). À partir de la matrice de confusion on peut dériver tout un tas de critères de performance. De manière générale, on préfère donner une fraction d'erreurs à un nombre total d'erreurs. Voici quelques exemples de mesures de performance souvent utilisées :

La précision, c’est-à-dire la proportion de prédictions correctes parmi les points que l’on a prédits positifs : $$précision = {VP \over VP + FP}.$$

Rappel. Proportion d’éléments bien classés par rapport au nombre d’éléments de la classe à prédire : $$Rappel = {VP \over VP + FN}$$

F-mesure. Mesure de compromis entre précision et rappel : $$F - mesure = 2×{Précision × Rapel \over Précision + Rapel}$$

Dans notre cas d'étude on va représenter les matrices de confusions de la manière suivante :

On pourrait avoir deux cas de figures :

  • Une matrice dont la diagonale est très foncé (sombre) : Ce qui veut dire que le système de classifcation fait bien sont travail.
  • Une matrice dont la diagonale ne contient pas le maximum de couleur foncés: dans ce cas il faut revoir le système et modifier certains paramètres afin que cette matrice devien diagonal.
Exemple d'une matrice de confusion diagonal
Exemple d'une matrice de confusion diagonal
Exemple d'une matrice de confusion non diagonal
Matrice de confusion non diagonal.

Classification automatique d'images et apprentissage machine

A première vue, la classification des données ne semble pas difficile. Les humains sont bien meilleurs que les machines pour comprendre le contexte des éléments à classifier. Cependant, à mesure que le nombre d’actifs, les niveaux et les règles de classification se développent, la classification des données se complique rapidement et les processus manuels se corrompent. Les méthodes manuelles se sont avérées très difficiles à appliquer pour des tâches en apparence très simples comme la classification des images, la reconnaissance d’objets dans les images ou la reconnaissance vocale. Les données venant du monde réel les échantillons d’un son ou les pixels d’une image sont complexes, variables et entachées de bruit.

Pour un ordinateur, les images ne sont que des tableaux de nombres ayant certaines caractéristiques tels que la couleur, la luminosité de pixel chaque pixel. Nous, humains, pouvons lui montrer qu’il peut s’en servir de ces pixels pour identifier des objets sur l’image et donc de pouvoir reconnaitre ce qui se trouve sur l’image.

Comment une machine peut-elle identifier un chien ou une chaise dans le tableau de nombres d’une image quand l’apparence d’un chien ou d’une chaise et des objets qui les entourent peut varier infiniment ? On pourrait penser à écrire un programme qui fonctionnera de manière robuste pour classifier des images. Ceci sera tout simplement impossible. Ça prendra des milliers de ligne de code juste pour un petit problème de classification. La solution ultime pour faire ce travail c’est l’apprentissage machine qui va entrainer la machine à faire la classification.

L’apprentissage machine consiste à créer un ensemble d’algorithmes qui vont apprendre à faire la classification. Ce qui nous donne un système entrainable. Un système entraînable peut être vu comme une boite noire avec une entrée, par exemple une image, un son, ou un texte, et une sortie qui peut représenter la catégorie de l’objet dans l’image, le mot prononcé, ou le sujet dont parle le texte. On parle alors de systèmes de classification ou de reconnaissance des formes.

L’apprentissage machine c’est elle qui anime les systèmes de toutes les grandes entreprises d’Internet. Elles l’utilisent depuis longtemps pour filtrer les contenus indésirables, ordonner des réponses à une recherche, faire des recommandations, ou sélectionner les informations intéressantes pour chaque utilisateur. Dans sa forme la plus utilisée, l’apprentissage machine est supervisé : on montre en entrée de la machine une photo d’un objet, par exemple une voiture, et on lui donne la sortie désirée pour une voiture. Puis on lui montre la photo d’un chien avec la sortie désirée pour un chien. Après chaque exemple, la machine ajuste ses paramètres internes de manière à rapprocher sa sortie de la sortie désirée. Après avoir montré à la machine des milliers ou des millions d’exemples étiquetés avec leur catégorie, la machine devient capable de classifier correctement la plupart d’entre eux. Mais ce qui est plus intéressant, c’est qu’elle peut aussi classifier correctement des images de voiture ou de chien qu’elle n’a jamais vues durant la phase l’apprentissage. C’est ce qu’on appelle la capacité de généralisation.

Jusqu’à récemment, les systèmes de reconnaissance des images classiques étaient composés de deux blocs : un extracteur de caractéristiques (feature extractor en anglais), suivi d’un classifieur entraînable simple. L’extracteur de caractéristiques est programmé « à la main », et transforme le tableau de nombres représentant l’image en une série de nombres, un vecteur de caractéristiques, dont chacun indique la présence ou l’absence d’un motif simple dans l’image. Ce vecteur est envoyé au classifieur, dont un type commun est le classifieur linéaire. Ce dernier calcule une somme pondérée des caractéristiques : chaque nombre est multiplié par un poids (positif ou négatif) avant d’être sommé. Si la somme est supérieure à un seuil, la classe est reconnue. Les poids forment une sorte de « prototype » pour la classe à laquelle le vecteur de caractéristiques est comparé. Les poids sont différents pour les classifieurs de chaque catégorie, et ce sont eux qui sont modifiés lors de l’apprentissage. Les premières méthodes de classification linéaire entraînable datent de la fin des années cinquante et sont toujours largement utilisées aujourd’hui. Elles prennent les deux noms de perceptron ou régression logistique.

Conclusion

Dans cet article nous avons présenté la notion de classification ainsi que son application dans nombreux domaines notamment dans l’industrie d’internet. Nous avons vu aussi vu que pour faire de la classification des images, il nous faudra utiliser des réseaux de neurones pour simplifier la tâche et trouver des meilleurs résultats.