Introduction
Aujourd’hui, les données sont omniprésentes et connaissent une croissance exponentielle. Il est toujours difficile pour les ordinateurs de comprendre et de gérer les données basées sur la vision par ordinateur, comme les humains. Dans le passé, les techniques de vision par ordinateur utilisaient des méthodes de détection des contours fragiles, des profils de couleurs et une multitude de processus codés manuellement qui nécessitent également des annotations d'image de haute qualité. Ils ne fournissent pas toujours aux ordinateurs les moyens les plus efficaces pour comprendre la sémantique des données. Les progrès des techniques d’apprentissage automatique ont permis aux ordinateurs d’exploiter le Big Data et d’exécuter efficacement des tâches de vision par ordinateur.
L'intégration de l'apprentissage automatique (ML) est devenue une technique essentielle pour gérer efficacement diverses formes et types de données pour les tâches de ML telles que la vision par ordinateur, le traitement du langage naturel (NLP), la reconnaissance vocale, les systèmes de recommandation, la détection de fraude, etc. Cet article traite des principes fondamentaux de l'application de la technique d'intégration à la vision par ordinateur en décomposant le concept d'image embedding à l'aide de réseaux de neurones convolutifs (CNN).
Qu'est-ce qu’un image embedding
En un mot, l’intégration est une technique de réduction de dimensionnalité. Il s'agit d'une représentation vectorielle de dimension inférieure de vecteurs de caractéristiques de haute dimension (c'est-à-dire des données d'entrée brutes) comme des mots ou des images. Techniquement, le concept implique la création de groupes denses de similitudes ou de relations au sein des données, qui servent de caractéristique sémantique codée dans un espace vectoriel. Ces caractéristiques codé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 se démarquent, permettant au modèle d'apprentissage automatique de mieux comprendre une classe de données.
Généralement, les algorithmes d'image embedding extraient des caractéristiques distinctes dans une image et les représentent avec des vecteurs denses (c'est-à-dire des identifiants numériques uniques) dans un espace dimensionnel différent. Les vecteurs denses générés sont ensuite comparés au vecteur de l'image pour mesurer les similitudes. Considérez-le comme représentant uniquement les caractéristiques les plus distinctes d'une image 3D en 2D et en comparant la façon dont les caractéristiques apparaissent en 2D.
Les méthodes de génération d'image embedding ont évolué et sont devenues plus avancées avec l'essor du deep learning (DL). Depuis l'ère DL, des techniques telles que Bag of Visual Words (BOVW), Convolutional Neural Networks (CNN) et Visual Transformers (VIT) ont été développées. Les techniques d'apprentissage profond utilisent des modèles ML qui apprennent à générer des intégrations à partir d'images dans les modèles et apprennent directement à partir des poids d'intégration plutôt que d'extraire manuellement les intégrations (caractéristiques) des images dans le cadre d'une étape de prétraitement distincte. Ils ont permis le développement de solutions de vision par ordinateur pour de nombreux ensembles de données et cas d'utilisation.
Incorporations d'images CNN
Au moment d'écrire ces lignes, les CNN sont la norme de facto dans le domaine des CV, avec de nombreux cas d'utilisation pratiques et en production. Cependant, ils sont coûteux en 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 : des blocs convolutifs et des blocs de classification. Ces blocs sont les visages impliqués dans la génération de l'image embedding avec CNN. Chaque bloc de CNN joue un rôle spécifique dans l’extraction des intégrations permettant à l’ordinateur de comprendre les images, comme nous le verrons ci-dessous. Bien qu'il s'agisse d'architectures CNN différentes comme 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 chargé d'extraire les caractéristiques des images et de mapper les caractéristiques extraites aux intégrations d'images. Comme son nom l’indique, ce bloc est constitué de couches convolutives. Chaque couche contient un filtre et une fonction d'activation ; entre les deux, ils utilisent également d’autres couches facultatives, qui incluent généralement des couches de pooling et de normalisation. Ces couches offrent des avantages supplémentaires, tels qu'une régularisation et une dynamique d'entraînement améliorée.
Les couches convolutives peuvent extraire des caractéristiques et des idées abstraites dans une image et les coder sous forme d'intégrations. Il se compose de plusieurs couches convolutives empilées les unes sur les autres pour leur permettre de reconnaître des caractéristiques simples, comme les bords, les formes, les textures, etc. À mesure que le réseau s'approfondit, il peut capturer des traits plus abstraits et distinctifs, que les modèles finissent par utiliser. pour identifier le concept d'un objet particulier dans une image.
Pixels avec un canal de couleur composer une image. L'ordinateur considère les pixels et les canaux de couleur comme un tableau de vecteurs (matrice) avec une plage de valeurs allant de 0 (pour aucune couleur) à 255 (pour une couleur maximale). Ces valeurs représentent les bords, les formes et les textures des différentes caractéristiques d'une image.
Le filtre de couche convolutive réduit la matrice d'image à une représentation dimensionnelle inférieure par compression d'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 de filtre est multipliée par les valeurs de pixels et renvoie une valeur unique (produit scalaire) pour représenter cette partie de fenêtre de l'image. Lorsque la matrice de filtre glisse sur chaque fenêtre d'image, elle génère une carte de caractéristiques complète (c'est-à-dire une intégration matricielle de dimension inférieure) de l'image.
Ce processus supprime le bruit dans l'image pour produire une copie plus petite et plus fluide des extraits qui cartographient la caractéristique de l'image la plus importante, détectée dans la couche convolutive. Ces mappages sont des intégrations extraites qui contiennent des qualités abstraites de l'image. La génération de l'intégration se fait en compressant l'image avec CNN. Considérez qu'il s'agit de convertir une vidéo de 1080p en 360p ; même si la résolution est floue, vous pouvez toujours identifier les objets dans un cadre en raison de leurs formes, couleurs, etc. distinctes.
Étant donné que les intégrations d'images extraites dans la dimension inférieure sont des copies plus fluides de l'image d'entrée, il est essentiel de faire attention à une compression excessive de l'image pour éviter de perdre des informations sur les caractéristiques vitales lors de l'intégration. Il existe plusieurs façons de contrôler le niveau de compression de l'image.
Modifier la taille et la foulée du filtre (c'est-à-dire le nombre de pixels qu'un filtre déplace par fenêtre) est un moyen de contrôler la compression. L'augmentation de la foulée amène le filtre à parcourir l'intégralité de l'image en moins d'étapes, produisant moins de valeurs et une carte de caractéristiques plus compressée, et vice versa.
L'utilisation de couches de remplissage peut également limiter la compression. Le calque ajoute des pixels de valeur nulle au bord du vecteur d'image ; en conséquence, le filtre a plus de vecteurs de pixels et de fenêtres d'images à agréger. Le remplissage est un remède plus efficace pour les images plus petites, généralement placées avant la couche convolutive.
La couche de pooling garantit une extraction d'intégration robuste, permettant la stabilité lors de l'identification des informations compressées dans une intégration extraite. Il sous-échantillonne les intégrations pour réduire la taille des cartes de caractéristiques en prenant la valeur maximale ou moyenne d'un groupe de pixels voisins. Cela est utile dans les cas où les pixels des fonctionnalités d'intégration se déplacent un peu en raison de la compression et où l'identification de l'objet devient due à une légère déviation des formes, des bords, etc.
Avant de transmettre l'intégration à la couche suivante dans le bloc convolutif, la fonction d'activation dans 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 couramment utilisées dans un bloc convolutif.
La profondeur des couches convolutives est un élément essentiel qui contribue aux hautes performances d’extraction des plongements utiles. À chaque couche successive de ce bloc, l'intégration permet d'obtenir une compréhension plus abstraite des caractéristiques particulières des objets dans les images initiales. Par exemple, il y a une image d’un iPhone 14 Pro Max. Grâce aux intégrations extraites dans les premières couches convolutives, il reconnaît la présence d'un téléphone portable dans l'image ; par les couches intermédiaires, il tire plus d'intégration et peut dire qu'il s'agit d'un iPhone, et avec plus d'intégrations par la dernière couche, il est capable de l'identifier comme un iPhone 14 Pro Max.
Bloc de classification
Cette partie du CNN est la couche linéaire entièrement connectée. Généralement situé après le bloc convolutif. Il prend les intégrations des couches convolutives et calcule la probabilité que la fonctionnalité incorporée appartienne à 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 cluster, ce qui facilite l'identification de la classe d'un objet. Les clusters représentent différentes fonctionnalités d'une classe d'objets.
Conclusion
Les intégrations 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 image embeddings ont ouvert les portes de nombreuses applications et ouvert la voie à des progrès dans l’analyse, l’interprétation et la génération d’images.
Cependant, les techniques de génération d'intégrations d'images sont associées à des défis typiques de sensibilité aux variations d'image, de complexité informatique et de besoin de grands ensembles de données pour la formation. Néanmoins, la recherche et l’innovation en cours continuent de remédier à ces limitations et d’améliorer l’efficacité et l’efficience des techniques d’image embedding. À mesure que la recherche et le développement progressent dans ce domaine, l’image embedding continuera sans aucun doute à façonner l’avenir de la vision par ordinateur.