Suivez nous sur
Classe de maître IA :

AI 101

Comment fonctionne la classification des images ?

mm
Le kit de préparation mis à jour on

Comment votre téléphone peut-il déterminer ce qu'est un objet simplement en le prenant en photo ? Comment les sites Web de médias sociaux taguent-ils automatiquement les personnes sur les photos ? Ceci est accompli grâce à la reconnaissance et à la classification d'images alimentées par l'IA.

La reconnaissance et la classification des images sont ce qui permet bon nombre des réalisations les plus impressionnantes de l'intelligence artificielle. Mais comment les ordinateurs apprennent-ils à détecter et à classer les images ? Dans cet article, nous aborderons les méthodes générales utilisées par les ordinateurs pour interpréter et détecter les images, puis nous examinerons certaines des méthodes les plus populaires de classification de ces images.

Classification au niveau du pixel ou basée sur l'objet

Les techniques de classification d'images peuvent principalement être divisées en deux catégories différentes : 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 le principal moyen de classification des images. Cependant, les algorithmes de classification peuvent soit utiliser uniquement les informations spectrales dans les pixels individuels pour classer une image, soit examiner les informations spatiales (pixels voisins) avec les informations spectrales. Les méthodes de classification basées sur les pixels utilisent uniquement 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 à la moyenne, la vraisemblance 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 d'autres pixels à proximité. 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 classer les éléments. Notez que « objet » fait simplement référence à des régions contiguës de pixels et non s'il existe ou non 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 de l'objet, 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 de cette image puissent être classé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 se fait via la détection d’objets. Il s’agit d’une partie essentielle 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 se fait avec une variété de méthodes et de techniques. Pour commencer, qu'il y ait ou non plusieurs objets d'intérêt ou un seul objet d'intérêt a un impact sur la façon dont le prétraitement de l'image est géré. S'il n'y a qu'un seul objet d'intérêt, 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 connu sous le nom de boîte englobante est dessiné autour de l'objet d'intérêt, ce qui aide l'ordinateur à savoir quelle partie de l'image est importante et quelles valeurs de pixel définissent l'objet. S'il y a plusieurs objets d'intérêt dans l'image, une technique appelée détection d'objet est utilisée pour appliquer ces boîtes englobantes à tous les objets 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'image. La segmentation d'image fonctionne en divisant l'image entière en segments basés sur des caractéristiques similaires. Différentes régions de l'image auront des valeurs de pixels similaires par rapport aux autres régions de l'image, de sorte que ces pixels sont regroupés dans des masques d'image qui correspondent à la forme et aux limites des objets pertinents dans l'image. La segmentation d'image aide l'ordinateur à isoler les caractéristiques de l'image qui l'aideront à classer un objet, un peu comme le font les cadres de délimitation, mais ils fournissent des étiquettes beaucoup plus précises au niveau du pixel.

Une fois la détection d'objet ou la segmentation d'image terminée, des étiquettes sont appliquées aux régions en question. Ces étiquettes sont introduites, avec les valeurs des pixels composant l'objet, dans les algorithmes d'apprentissage automatique qui apprendront les modèles associés aux différentes étiquettes.

Algorithmes d'apprentissage automatique

Une fois les données préparées et étiquetées, les données sont introduites dans un algorithme d'apprentissage automatique, qui s'entraîne sur les données. Nous couvrirons certains des types d'apprentissage automatique les plus courants algorithmes de classification d'images ci-dessous.

Les voisins les plus proches

K-Nearest Neighbors est un algorithme de classification qui examine les exemples de formation les plus proches et examine leurs étiquettes pour déterminer l'étiquette la plus probable pour un exemple de test donné. En ce qui concerne la classification des images à l'aide de KNN, les vecteurs de caractéristiques et les étiquettes des images d'entraînement sont stockés et seul le vecteur de caractéristiques est transmis à l'algorithme pendant les tests. Les vecteurs de caractéristiques d'apprentissage et de test sont ensuite comparés les uns aux autres pour la similarité.

Les algorithmes de classification basés sur KNN sont extrêmement simples et traitent assez facilement plusieurs classes. Cependant, KNN calcule la similarité en fonction de toutes les caractéristiques de la même manière. Cela signifie qu'il peut être sujet à une mauvaise classification lorsqu'il est fourni avec des images où seul un sous-ensemble des caractéristiques 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, puis trace des lignes de séparation entre les points, plaçant des objets dans différentes classes en fonction du côté du plan de séparation sur lequel les points tombent. Les machines à vecteurs de support sont capables d'effectuer une classification non linéaire grâce à l'utilisation d'une technique connue sous le nom d'astuce du noyau. Alors que les classificateurs SVM sont souvent très précis, un inconvénient substantiel des classificateurs SVM est qu'ils ont tendance à être limités à la fois par la taille et la vitesse, la vitesse souffrant à mesure que la taille augmente.

Perceptrons multicouches (réseaux de neurones)

Les perceptrons multicouches, également appelés modèles de réseaux de neurones, sont des algorithmes d'apprentissage automatique inspirés du cerveau humain. Les perceptrons multicouches sont composés de différentes couches qui sont reliées les unes aux autres, un peu comme les neurones du cerveau humain sont reliés entre eux. Les réseaux de neurones font des hypothèses sur la façon dont les caractéristiques d'entrée sont liées aux classes de données et ces hypothèses sont ajustées au cours de la formation. Des modèles de réseaux de neurones simples comme le perceptron multicouche sont capables d'apprendre des relations non linéaires et, par conséquent, ils peuvent être beaucoup plus précis que d'autres modèles. Cependant, les modèles MLP souffrent de problèmes notables tels que la présence de fonctions de perte non convexes.

Algorithmes d'apprentissage en profondeur (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 neuronal convolutif (CNN). Les CNN sont des versions personnalisées de réseaux de neurones qui combinent les réseaux de neurones multicouches avec des couches spécialisées capables d'extraire les caractéristiques 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 caractéristiques des images. Cela réduit considérablement le besoin d’étiqueter et de segmenter manuellement les images pour les préparer aux algorithmes d’apprentissage automatique. Ils présentent également un avantage sur les réseaux MLP car ils peuvent gérer des fonctions de perte non convexes.

Les réseaux de neurones convolutifs 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 considérer cela comme la visualisation de sections d'un paysage à travers une fenêtre mobile, en vous concentrant uniquement sur les éléments visibles à travers la fenêtre à tout moment. 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 d'origine. Ce processus est répété pour un nombre choisi de filtres, puis les cadres sont réunis en une nouvelle image légèrement plus petite et moins complexe que l'image d'origine. Une technique appelée regroupement est utilisée pour sélectionner uniquement les valeurs les plus importantes dans l'image, et l'objectif est que les couches convolutives n'extraient finalement que les parties les plus saillantes de l'image qui aideront le réseau de neurones à reconnaître les objets de l'image.

Réseaux de neurones convolutionnels sont composés de deux parties différentes. Les couches convolutives extraient les caractéristiques de l'image et les convertissent dans un format que les couches de réseau neuronal peuvent interpréter et apprendre. Les premières couches convolutionnelles sont chargées d'extraire les éléments les plus élémentaires de l'image, comme les lignes simples et les limites. Les couches convolutionnelles intermédiaires commencent à capturer des formes plus complexes, comme des courbes et des coins simples. Les couches convolutives ultérieures et plus profondes extraient les caractéristiques de haut niveau de l'image, qui sont transmises à la partie réseau neuronal du CNN, et sont ce que le classificateur apprend.

Blogueur et programmeur spécialisé dans Machine Learning et L'apprentissage en profondeur les sujets. Daniel espère aider les autres à utiliser le pouvoir de l'IA pour le bien social.