Fondamentaux de l’IA
Comment fonctionne la classification d’images ?
Comment votre téléphone peut-il déterminer ce qu’est un objet simplement en prenant une photo de celui-ci ? Comment les sites de réseaux sociaux peuvent-ils automatiquement étiqueter les personnes sur les photos ? Cela est réalisé grâce à la reconnaissance et à la classification d’images basées sur l’intelligence artificielle.
La reconnaissance et la classification d’images sont ce qui permet à l’intelligence artificielle de réaliser certaines de ses prouesses les plus impressionnantes. Mais comment les ordinateurs apprennent-ils à détecter et à classifier les images ? Dans cet article, nous allons aborder les méthodes générales que les ordinateurs utilisent pour interpréter et détecter les images, puis nous allons examiner certaines des méthodes les plus populaires de classification de ces images.
Classification au niveau des pixels vs. classification basée sur les objets
Les techniques de classification d’images peuvent principalement être divisées en deux catégories différentes : la classification basée sur les pixels et la classification basée sur les objets.
Les pixels sont les unités de base d’une image, et l’analyse des pixels est la principale façon dont la classification d’images est effectuée. Cependant, les algorithmes de classification peuvent utiliser uniquement les informations spectrales à l’intérieur des pixels individuels pour classifier une image, ou examiner les informations spatiales (pixels voisins) ainsi que les informations spectrales. Les méthodes de classification basées sur les pixels n’utilisent que les informations spectrales (l’intensité d’un pixel), tandis que les méthodes de classification basées sur les objets prennent en compte à la fois les informations spectrales des pixels et les informations spatiales.
Il existe différentes techniques de classification utilisées pour la classification basée sur les pixels. Celles-ci incluent la distance minimale par rapport à la moyenne, la probabilité maximale et la distance minimale de Mahalanobis. Ces méthodes nécessitent que les moyennes et les variances des classes soient connues, et elles fonctionnent toutes en examinant la « distance » entre les moyennes des classes et les pixels cibles.
Les méthodes de classification basées sur les pixels sont limitées par le fait qu’elles ne peuvent pas utiliser les informations provenant d’autres pixels voisins. En revanche, les méthodes de classification basées sur les objets peuvent inclure d’autres pixels et utilisent donc également des informations spatiales pour classifier les éléments. Notez que « objet » fait référence à des régions contiguës de pixels et non à la présence ou non d’un objet cible dans cette région de pixels.
Prétraitement des données d’image pour la détection d’objets
Les systèmes de classification d’images les plus récents et les plus fiables utilisent principalement des schémas de classification au niveau des objets, et pour ces approches, les données d’image doivent être préparées de manière spécifique. Les objets/régions doivent être sélectionnés et prétraités.
Avant qu’une image, et les objets/régions à l’intérieur de cette image, puissent être classifiés, les données qui composent cette image doivent être interprétées par l’ordinateur. Les images doivent être prétraitées et préparées pour être entrées dans l’algorithme de classification, et cela est réalisé grâce à la détection d’objets. Il s’agit d’une partie critique de la préparation des données et de la préparation des images pour entraîner le classificateur d’apprentissage automatique.
La détection d’objets est effectuée à l’aide de diverses méthodes et techniques. Tout d’abord, le fait qu’il y ait un ou plusieurs objets d’intérêt impacte la façon dont le prétraitement de l’image est effectué. Si un seul objet d’intérêt est présent, l’image subit une localisation d’image. Les pixels qui composent l’image ont des valeurs numériques qui sont interprétées par l’ordinateur et utilisées pour afficher les couleurs et les teintes appropriées. Un objet appelé boîte de délimitation est dessiné autour de l’objet d’intérêt, ce qui aide l’ordinateur à savoir quelle partie de l’image est importante et quels sont les valeurs de pixel qui définissent l’objet. Si plusieurs objets d’intérêt sont présents dans l’image, une technique appelée détection d’objets est utilisée pour appliquer ces boîtes de délimitation à tous les objets à l’intérieur de l’image.

Photo: Adrian Rosebrock via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)
Une autre méthode de prétraitement est la segmentation d’images. La segmentation d’images fonctionne en divisant l’image entière en segments en fonction de caractéristiques similaires. Les différentes régions de l’image auront des valeurs de pixels similaires par rapport aux autres régions de l’image, ces pixels seront donc regroupés en masques d’image qui correspondent à la forme et aux limites des objets pertinents à l’intérieur de l’image. La segmentation d’images aide l’ordinateur à isoler les caractéristiques de l’image qui l’aideront à classifier un objet, tout comme les boîtes de délimitation, mais elles fournissent des étiquettes au niveau des pixels plus précises.
Une fois que la détection d’objets ou la segmentation d’images a été effectuée, des étiquettes sont appliquées aux régions en question. Ces étiquettes sont introduites, ainsi que les valeurs des pixels qui composent l’objet, dans les algorithmes d’apprentissage automatique qui apprennent les modèles associés aux différentes étiquettes.
Algorithmes d’apprentissage automatique
Une fois que les données ont été préparées et étiquetées, les données sont introduites dans un algorithme d’apprentissage automatique, qui est entraîné sur les données. Nous allons aborder certains des algorithmes de classification d’images les plus courants basés sur l’apprentissage automatique ci-dessous.
K-Plus proches voisins
K-Plus proches voisins est un algorithme de classification qui examine les exemples d’entraînement les plus proches et regarde leurs étiquettes pour déterminer l’étiquette la plus probable pour un exemple de test donné. Lorsqu’il s’agit de la classification d’images à l’aide de KNN, les vecteurs de fonctionnalités et les étiquettes des images d’entraînement sont stockés et seul le vecteur de fonctionnalités est introduit dans l’algorithme pendant les tests. Les vecteurs de fonctionnalités d’entraînement et de test sont ensuite comparés les uns aux autres pour similitude.
Les algorithmes de classification basés sur KNN sont extrêmement simples et ils traitent facilement de multiples classes. Cependant, KNN calcule la similitude en fonction de toutes les fonctionnalités de manière égale. Cela signifie qu’il peut être enclin à des erreurs de classification lorsqu’il est fourni avec des images où seul un sous-ensemble des fonctionnalités est important pour la classification de l’image.
Machines à vecteurs de support
Les machines à vecteurs de support sont une méthode de classification qui place des points dans l’espace et dessine ensuite des lignes de séparation entre les points, en plaçant les objets dans différentes classes en fonction du côté de la surface de séparation sur lequel les points se trouvent. Les machines à vecteurs de support sont capables de réaliser une classification non linéaire grâce à une technique appelée « astuce du noyau ». Bien que les classificateurs SVM soient souvent très précis, un inconvénient important des classificateurs SVM est qu’ils tendent à être limités à la fois par la taille et la vitesse, la vitesse souffrant à mesure que la taille augmente.
Perceptrons multi-couches (réseaux de neurones)
Les perceptrons multi-couches, également appelés modèles de réseaux de neurones, sont des algorithmes d’apprentissage automatique inspirés du cerveau humain. Les perceptrons multi-couches sont composés de plusieurs couches qui sont connectées les unes aux autres, comme les neurones du cerveau humain sont connectés les uns aux autres. Les réseaux de neurones font des hypothèses sur la façon dont les fonctionnalités d’entrée sont liées aux classes des données, et ces hypothèses sont ajustées au cours de l’entraînement. Les modèles de réseaux de neurones simples comme le perceptron multi-couches sont capables d’apprendre des relations non linéaires, et en conséquence, ils peuvent être beaucoup plus précis que d’autres modèles. Cependant, les modèles MLP souffrent de certains problèmes notables, tels que la présence de fonctions de perte non convexes.
Algorithmes d’apprentissage profond (CNN)

Photo: APhex34 via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)
L’algorithme de classification d’images le plus couramment utilisé ces derniers temps est le réseau de neurones convolutionnel (CNN). Les CNN sont des versions personnalisées de réseaux de neurones qui combinent les réseaux de neurones multi-couches avec des couches spécialisées capables d’extraire les fonctionnalités les plus importantes et les plus pertinentes pour la classification d’un objet. Les CNN peuvent automatiquement découvrir, générer et apprendre les fonctionnalités des images. Cela réduit considérablement le besoin de marquage et de segmentation manuels des images pour les préparer pour les algorithmes d’apprentissage automatique. Ils ont également un avantage sur les réseaux MLP car ils peuvent traiter les fonctions de perte non convexes.
Les réseaux de neurones convolutionnels tirent leur nom du fait qu’ils créent des « convolutions ». Les CNN fonctionnent en prenant un filtre et en le faisant glisser sur une image. Vous pouvez penser à cela comme regarder des sections d’un paysage à travers une fenêtre mobile, en vous concentrant uniquement sur les fonctionnalités visibles à travers la fenêtre à un moment donné. Le filtre contient des valeurs numériques qui sont multipliées par les valeurs des pixels eux-mêmes. Le résultat est un nouveau cadre, ou matrice, rempli de nombres qui représentent l’image originale. Ce processus est répété pour un nombre choisi de filtres, puis les cadres sont joints pour former une nouvelle image qui est légèrement plus petite et moins complexe que l’image originale. Une technique appelée pooling est utilisée pour sélectionner uniquement les valeurs les plus importantes à l’intérieur de l’image, et l’objectif est que les couches convolutionnelles extrayent finalement les parties les plus saillantes de l’image qui aideront le réseau de neurones à reconnaître les objets dans l’image.
Les réseaux de neurones convolutionnels sont composés de deux parties différentes. Les couches convolutionnelles sont celles qui extraient les fonctionnalités de l’image et les convertissent en un format que les couches de neurones peuvent interpréter et apprendre. Les premières couches convolutionnelles sont responsables de l’extraction des éléments les plus basiques de l’image, comme de simples lignes et limites. Les couches convolutionnelles du milieu commencent à capturer des formes plus complexes, comme de simples courbes et coins. Les couches convolutionnelles plus profondes et plus tardives extraient les fonctionnalités de niveau élevé de l’image, qui sont celles qui sont introduites dans la partie de neurones du CNN, et sont celles que le classificateur apprend.












