L'intégration d'images expliquée

L'intégration d'images expliquée

‍Introduction

Aujourd'hui, les données sont omniprésentes et croissent de manière exponentielle. Il est encore difficile pour les ordinateurs de comprendre et de traiter les données basées sur la vision par ordinateur comme le font les humains. Dans le passé, les techniques de vision par ordinateur utilisaient des méthodes fragiles de détection des contours, des profils de couleur et une série de processus codés manuellement qui nécessitaient également des annotations d'images de haute qualité. Elles n'offraient toujours pas les moyens les plus efficaces pour permettre aux ordinateurs de comprendre la sémantique des données. Les progrès des techniques d'apprentissage automatique ont permis aux ordinateurs d'exploiter les données volumineuses et d'exécuter efficacement les tâches de vision par ordinateur.

L'intégration de l'apprentissage automatique est devenue une technique essentielle pour traiter efficacement divers types et formes de données dans le cadre de tâches d'apprentissage automatique telles que la vision par ordinateur, le traitement du langage naturel (NLP), la reconnaissance vocale, les systèmes de recommandation, la détection des fraudes, etc. Cet article aborde les principes fondamentaux de l'application de la technique d'intégration à la vision par ordinateur en décomposant le concept d'intégration d'images à l'aide de réseaux neuronaux convolutifs (CNN).

Qu'est-ce que l'intégration d'images ?

En résumé, l'intégration est une technique de réduction de la dimensionnalité. Il s'agit d'une représentation vectorielle de moindre dimension de vecteurs de caractéristiques de haute dimension (c'est-à-dire de données d'entrée brutes) comme des mots ou des images. Techniquement, le concept implique la création de grappes denses de similitudes ou de relations au sein des données, qui servent de caractéristiques sémantiques encodées dans un espace vectoriel. Ces caractéristiques encodées sont des vecteurs d'identification uniques pour une classe de données particulière. Les vecteurs dimensionnels permettent de gérer efficacement les caractéristiques des données qui sortent du lot, ce qui permet au modèle d'apprentissage automatique de mieux comprendre une classe de données.

En général, les algorithmes d'incorporation d'images extraient des caractéristiques distinctes d'une image et les représentent par des vecteurs denses (c'est-à-dire des identificateurs numériques uniques) dans un espace de dimension différente. Les vecteurs denses générés sont ensuite comparés au vecteur de l'image pour mesurer les similitudes. Cela revient à représenter uniquement les caractéristiques les plus distinctes d'une image tridimensionnelle en deux dimensions et à comparer la façon dont les caractéristiques apparaissent en deux dimensions. 

Les méthodes de génération d'images intégrées ont évolué et sont devenues plus avancées avec l'essor de l'apprentissage profond (DL). Depuis l'ère de l'apprentissage profond, des techniques telles que les sacs de mots visuels (BOVW), les réseaux neuronaux convolutifs (CNN) et les transformateurs visuels (VIT) ont été développées. Les techniques d'apprentissage profond utilisent des modèles ML qui apprennent à générer des enchâssements d'images au sein des modèles et apprennent directement à partir des poids d'enchâssement plutôt que d'extraire manuellement des enchâssements (caractéristiques) d'images dans le cadre d'une étape de prétraitement distincte. Elles ont permis de développer des solutions de vision artificielle pour de nombreux ensembles de données et cas d'utilisation.

CNN Embeddings d'images 

À l'heure où nous écrivons ces lignes, les CNN sont la norme de facto dans le domaine de la CV, avec de nombreux cas d'utilisation pratiques et de production. Cependant, ils sont coûteux en termes de calcul et nécessitent beaucoup de données.

Un CNN est une architecture de modèle de réseau neuronal profond contenant deux ensembles de blocs : les blocs de convolution et les blocs de classification. Ces blocs sont les faces impliquées dans la génération d'incrustations d'images à l'aide d'un CNN. Chaque bloc de CNN joue un rôle spécifique dans l'extraction d'encastrements permettant à l'ordinateur de comprendre les images, comme nous le verrons plus loin. Bien qu'il s'agisse d'architectures CNN différentes telles que LeNet-5, AlexNet, VGGNet, ResNet, etc., le processus fondamental d'extraction de l'intégration est le même.

Architecture typique d'un CNN

Bloc convolutif

Ce bloc est responsable de l'extraction des caractéristiques des images et de la mise en correspondance des caractéristiques extraites avec les incrustations d'images. Comme son nom l'indique, ce bloc se compose de couches convolutives. Chaque couche contient un filtre et une fonction d'activation ; entre les deux, ils utilisent également d'autres couches optionnelles, qui comprennent généralement des couches de mise en commun et de normalisation. Ces couches offrent des avantages supplémentaires, tels que la régularisation et l'amélioration de la dynamique d'apprentissage.

Les couches convolutives peuvent extraire des caractéristiques abstraites et des idées au sein d'une image et les coder sous forme d'enchâssements. Il se compose de plusieurs couches convolutives superposées qui leur permettent de reconnaître des caractéristiques simples, telles que les bords, les formes, les textures, etc. Au fur et à mesure que le réseau s'approfondit, il peut capturer des caractéristiques plus abstraites et distinctives, que les modèles utilisent finalement pour identifier le concept d'un objet particulier dans une image.

Les pixels avec un canal de couleur constituent une image. L'ordinateur considère les pixels et les canaux de couleur comme un tableau de vecteurs (matrice) dont les valeurs vont de 0 (pas de couleur) à 255 (couleur maximale). Ces valeurs représentent les bords, les formes et les textures des différents éléments d'une image.

Le filtre convolutionnel réduit la matrice de l'image à une représentation de moindre dimension par compression de l'image. Les filtres sont des valeurs initialisées de manière aléatoire avec une forme de matrice plus petite (taille de la fenêtre). La matrice du filtre est multipliée par les valeurs des pixels et renvoie une valeur unique (produit scalaire) pour représenter la fenêtre de l'image. Au fur et à mesure que la matrice du filtre glisse sur chaque fenêtre d'image, elle génère une carte complète des caractéristiques de l'image (c'est-à-dire une matrice d'intégration de dimension inférieure).

Ce processus supprime le bruit dans l'image afin de produire une copie plus petite et plus lisse des bribes qui mettent en correspondance les caractéristiques les plus importantes de l'image, détectées dans la couche convolutionnelle. Ces mappings sont extraits des embeddings qui contiennent les qualités abstraites de l'image. L'intégration est générée en compressant l'image à l'aide du CNN. Considérons la conversion d'une vidéo de 1080p à 360p ; bien que la résolution soit floue, vous pouvez toujours identifier les objets dans une image en raison de leurs formes distinctes, de leurs couleurs, etc.

Étant donné que les images intégrées extraites dans la dimension inférieure sont des copies plus lisses de l'image d'entrée, il est essentiel de faire attention à une compression excessive de l'image pour éviter de perdre des informations vitales dans l'intégration. Il existe plusieurs façons de contrôler le degré de compression de l'image. 

La modification de la taille du filtre et du stride (c'est-à-dire le nombre de pixels qu'un filtre déplace par fenêtre) est un moyen de contrôler la compression. En augmentant le pas, le filtre parcourt l'ensemble de l'image en moins d'étapes, ce qui donne moins de valeurs et une carte de caractéristiques plus comprimée, et vice versa.

L'utilisation de couches de remplissage peut également limiter la compression. La couche ajoute des pixels de valeur nulle au bord du vecteur d'image ; le filtre a donc plus de vecteurs de pixels et de fenêtres d'image à agréger. Le remplissage est un remède plus efficace pour les images plus petites ; il est généralement placé avant la couche convolutive.

La couche de mise en commun assure une extraction robuste de l'incorporation, permettant une stabilité lors de l'identification des informations comprimées dans une incorporation extraite. Elle sous-échantillonne les enregistrements pour réduire la taille des cartes de caractéristiques en prenant la valeur maximale ou moyenne d'un groupe de pixels voisins. Il est utile dans les cas où les pixels des caractéristiques d'intégration se déplacent légèrement en raison de la compression, et où l'identification de l'objet devient difficile en raison de la légère déviation des formes, des bords, etc.

Avant de transmettre l'intégration à la couche suivante du bloc convolutif, la fonction d'activation de chaque couche convolutive applique la non-linéarité au modèle, ce qui permet à la couche d'apprendre les relations complexes entre l'image et les intégrations extraites. L'unité linéaire rectifiée (ReLU), l'unité linéaire exponentielle (ELU), la fonction sigmoïde et la fonction Tanh sont quelques-unes des fonctions d'activation les plus courantes utilisées dans un bloc convolutif.

La profondeur des couches convolutives est un élément essentiel qui contribue à la haute performance de l'extraction d'encastrements utiles. À chaque couche successive de ce bloc, l'intégration comprend de manière plus abstraite les caractéristiques particulières des objets dans les images initiales. Par exemple, l'image d'un iPhone 14 Pro Max. Les couches intermédiaires permettent d'extraire plus d'informations et de déterminer qu'il s'agit d'un iPhone. Enfin, la dernière couche permet d'identifier l'iPhone 14 Pro Max.

Bloc de classification

Cette partie du CNN est la couche linéaire entièrement connectée. Elle est généralement située après le bloc convolutif. Elle prend les données intégrées des couches convolutives et calcule la probabilité que les données intégrées appartiennent à une classe d'objets.

Cette couche transforme les intégrations vectorielles d'un vecteur en un point de données scalaire. L'intégration des points de données montre une représentation numérique plus précise des caractéristiques abstraites sous forme de grappes, ce qui facilite l'identification de la classe d'un objet. Les grappes représentent les différentes caractéristiques d'une classe d'objets.

Conclusion 

Les encastrements d'images ont révolutionné le domaine de la vision par ordinateur en fournissant une représentation compacte et significative des images. Grâce à leur capacité à capturer des informations visuelles riches, les encastrements d'images ont ouvert les portes à de nombreuses applications et ouvert la voie à des avancées dans l'analyse, l'interprétation et la génération d'images.

Cependant, les techniques de génération d'encastrements d'images sont associées à des défis typiques de sensibilité aux variations de l'image, de complexité informatique et de nécessité de grands ensembles de données pour l'entraînement. Néanmoins, la recherche et l'innovation en cours continuent de s'attaquer à ces limites et d'améliorer l'efficacité et l'efficience des techniques d'intégration d'images. Au fur et à mesure des progrès de la recherche et du développement dans ce domaine, les intégrations d'images continueront sans aucun doute à façonner l'avenir de la vision par ordinateur.

Commencez à gérer vos données d'IA de la bonne façon.

Demander un essai gratuit

Recommandé pour vous :