Machine Learning pour la vision par ordinateur

Effectué

La possibilité d'utiliser des filtres pour appliquer des effets aux images est utile dans les tâches de traitement d'images, comme celles que vous pouvez effectuer avec un logiciel de retouche d'images. Cependant, l'objectif de la vision par ordinateur est souvent d'extraire du sens, ou au moins des informations exploitables, à partir d'images. Pour ce faire, il convient de créer des modèles Machine Learning qui sont entraînés à reconnaître des caractéristiques sur la base de grands volumes d'images existantes.

Conseil

Cette unité suppose que vous connaissez les principes fondamentaux du Machine Learning et que vous avez une connaissance conceptuelle du Deep Learning avec les réseaux neuronaux. Si vous êtes novice en matière de Machine Learning, envisagez de suivre le module Principes fondamentaux du Machine Learning sur Microsoft Learn.

Les réseaux neuronaux convolutifs (CNN)

L’une des plus courantes architectures de modèle Machine Learning pour Vision par ordinateur est un réseau neuronal convolutif (CNN), un type d’architecture de Deep Learning. Les CNN utilisent des filtres pour extraire des cartographies de caractéristiques numériques des images, puis introduisent les valeurs des caractéristiques dans un modèle Deep Learning pour générer une prédiction d'étiquette. Par exemple, dans un scénario de classification d'images, l'étiquette représente le sujet principal de l'image (en d'autres termes, que représente cette image ?). Vous pouvez entraîner un modèle CNN avec des images de différents types de fruits (comme la pomme, la banane et l'orange) afin que l'étiquette prédite soit le type de fruit dans une image donnée.

Au cours du processus de formation d'un CNN, les noyaux de filtrage sont initialement définis à l'aide de valeurs de poids générées de manière aléatoire. Ensuite, à mesure que le processus de formation progresse, les prédictions des modèles sont évaluées par rapport à des valeurs d'étiquettes connues et les poids des filtres sont ajustés pour améliorer la précision. Au final, le modèle de classification d'images de fruits entraîné utilise les poids des filtres qui extraient le mieux les caractéristiques permettant d'identifier les différentes sortes de fruits.

Le diagramme suivant illustre le fonctionnement d'un CNN pour un modèle de classification d'images :

Diagramme d’un réseau neuronal convolutif.

  1. des images avec des étiquettes connues (par exemple, 0 : pomme, 1 : banane ou 2 : orange) sont introduites dans le réseau pour entraîner le modèle.
  2. Une ou plusieurs couches de filtres sont utilisées pour extraire des caractéristiques de chaque image, car elles sont alimentées par le réseau. Les noyaux de filtrage commencent par des poids attribués de manière aléatoire et génèrent des tableaux de valeurs numériques appelés cartographie de caractéristiques.
  3. Les cartographies de caractéristiques sont aplaties en un tableau unidimensionnel dans lequel figurent les valeurs des caractéristiques.
  4. Les valeurs de caractéristique sont transmises à un réseau neuronal entièrement connecté.
  5. La couche de sortie du réseau neuronal utilise une fonction softmax ou une fonction similaire pour produire un résultat contenant une valeur de probabilité pour chaque classe possible, par exemple [0,2, 0,5, 0,3].

Pendant la formation, les probabilités de sortie sont comparées à l'étiquette de classe réelle - par exemple, l'image d'une banane (classe 1) devrait avoir la valeur [0,0, 1,0, 0,0]. La différence entre les scores de classe prédits et réels est utilisée pour calculer la perte dans le modèle, et les poids dans le réseau neuronal entièrement connecté et les noyaux de filtrage dans les couches d'extraction de caractéristiques sont modifiés pour réduire la perte.

Le processus de formation se répète sur plusieurs époques jusqu'à ce qu'un ensemble optimal de poids ait été appris. Ensuite, les pondérations sont enregistrées et le modèle peut être utilisé pour prédire les étiquettes pour les nouvelles images pour lesquelles l'étiquette est inconnue.

Remarque

Les architectures CNN comprennent généralement plusieurs couches de filtres convolutifs et des couches supplémentaires pour réduire la taille des cartographies de caractéristiques, contraindre les valeurs extraites et manipuler d'une autre manière les valeurs des caractéristiques. Ces couches ont été omises dans cet exemple simplifié pour se concentrer sur le concept clé. En d'autres termes, les filtres sont utilisés pour extraire des caractéristiques numériques d'images, qui sont ensuite utilisées dans un réseau neuronal pour prédire les étiquettes d'images.

Transformateurs et modèles multimodaux

Les CNN ont été au cœur des solutions de vision par ordinateur depuis de nombreuses années. Bien qu'ils soient couramment utilisés pour résoudre les problèmes de classification d'images comme décrit précédemment, ils sont également la base des modèles de vision par ordinateur plus complexes. Par exemple, les modèles de détection d'objets combinent des couches d'extraction de caractéristiques CNN avec l'identification de régions d'intérêt dans les images pour localiser plusieurs classes d'objets dans la même image.

Transformateurs

La plupart des progrès réalisés dans le domaine de la vision par ordinateur au cours des décennies ont été dus à l'amélioration des modèles basés sur les réseaux neuronaux. Toutefois, dans une autre discipline de l'IA : le traitement du langage naturel (NLP), un autre type d'architecture de réseau neuronal, appelé transformateur, a permis le développement de modèles sophistiqués pour le langage. Les transformateurs fonctionnent en traitant de gros volumes de données et de jetons de langage d'encodage (représentant des mots ou expressions individuels) en tant qu'incorporations basées sur des vecteurs (tableaux de valeurs numériques). Vous pouvez considérer une incorporation comme représentant un ensemble de dimensions qui représentent chacun un attribut sémantique du jeton. Les incorporations sont créées de sorte que les jetons couramment utilisés dans le même contexte soient plus proches de la dimension que les mots non liés.

À titre d'exemple simple, le diagramme suivant montre quelques mots codés sous forme de vecteurs 3D et représentés dans un espace 3D :

Diagramme des vecteurs de jeton dans un espace 3D.

les jetons qui sont sémantiquement similaires sont encodés dans des positions similaires, créant un modèle de langage sémantique qui permet de créer des solutions NLP sophistiquées pour l'analyse de texte, la traduction, la génération de langue et d'autres tâches.

Remarque

Nous n'avons utilisé que trois dimensions, car elles sont faciles à visualiser. En réalité, les encodeurs dans les réseaux transformateurs créent des vecteurs avec de nombreuses dimensions supplémentaires, définissant des relations sémantiques complexes entre des jetons basés sur des calculs algébriques linéaires. Les mathématiques impliquées sont complexes, comme l'architecture d'un modèle transformateur. Notre objectif ici est simplement de fournir une compréhension conceptuelle de la manière dont l'encodage crée un modèle qui encapsule les relations entre les entités.

Modèles multimodaux

Le succès des transformateurs comme moyen de créer des modèles de langage a conduit les chercheurs de l'IA à déterminer si la même approche serait efficace pour les données d'image. Le résultat est le développement de modèles multimodaux, dans lesquels le modèle est entraîné à l'aide d'un grand volume d'images sous-titrées, sans étiquettes fixes. Un encodeur d'image extrait des caractéristiques d'images basées sur des valeurs de pixels et les combine avec des incorporations de texte créées par un encodeur de langage. Le modèle global encapsule les relations entre les incorporations de jetons de langage naturel et les fonctionnalités d'image, comme illustré ici :

Diagramme d’un modèle multimodal qui encapsule les relations entre les vecteurs en langage naturel et les caractéristiques de l’image.

le modèle Microsoft Florence répond à cette définition. Entraîné avec d'énormes volumes d'images sous-titrées provenant d'Internet, il comprend à la fois un encodeur de langage et un encodeur d'image. Florence est un exemple de modèle de base. En d'autres termes, un modèle général préentraîné sur lequel vous pouvez créer plusieurs modèles adaptatifs pour des tâches spécialisées. Par exemple, vous pouvez utiliser Florence comme modèle de base pour les modèles adaptatifs qui effectuent :

  • Classification d'images : identifier la catégorie à laquelle appartient une image.
  • Détection des objets : localisation d'objets individuels dans une image.
  • Sous-titrage : génération de descriptions appropriées d'images.
  • Étiquetage : compilation d'une liste de balises textuelles pertinentes pour une image.

Diagramme d’un modèle Florence en tant que modèle de base avec de plusieurs modèles adaptatifs basés sur celui-ci.

Les modèles multimodaux comme Florence sont à la pointe de la vision par ordinateur et de l'IA en général, et devraient faire progresser les types de solutions rendues possibles par l'IA.