Comment fonctionne la reconnaissance d'images et comment l'utiliser ?
La reconnaissance d’images fait référence aux technologies qui identifient les lieux, les logos, les personnes, les objets, les bâtiments et plusieurs autres variables dans des images. Les utilisateurs partagent de grandes quantités de données par le biais d’applications, des réseaux sociaux et des sites Web. De plus, les téléphones mobiles équipés d’appareils photo permettent la création d’un nombre illimité d’images et de vidéos numériques. Le grand volume de données numériques est utilisé par les entreprises pour fournir des services meilleurs et plus intelligents aux personnes qui y accèdent. La reconnaissance d’images fait partie de la vision par ordinateur et d’un processus pour identifier et détecter un objet ou un attribut dans une vidéo ou une image numérique. La vision par ordinateur est un terme plus large qui inclut les méthodes de collecte, de traitement et d’analyse des données du monde réel. Les données sont hautement dimensionnelles et produisent des informations numériques ou symboliques sous forme de décisions. Outre la reconnaissance d’images, la vision par ordinateur comprend également la détection d’événements, la reconnaissance d’objets, l’apprentissage, la reconstruction d’images et le suivi vidéo.
Quelle technologie derrière la reconnaissance d’images ?
Facebook peut maintenant effectuer la reconnaissance faciale avec une précision de 98 %, ce qui est comparable à la capacité des humains. Facebook peut identifier le visage de votre ami avec seulement quelques photos étiquetées. L’efficacité de cette technologie dépend de la capacité à classer les images. La classification est l’appariement de modèles avec des données. Les images sont des données sous forme de matrices bidimensionnelles. En fait, la reconnaissance d’images consiste à classer les données dans une catégorie parmi tant d’autres. Un exemple courant et important est la reconnaissance optique de caractères (ROC). L’OCR convertit les images de texte dactylographié ou manuscrit en texte codé par machine. Les principales étapes du processus de reconnaissance d’images sont la collecte et l’organisation des données, la construction d’un modèle prédictif et son utilisation pour reconnaître les images.
Recueillir et organiser les données
L’œil humain perçoit une image comme un ensemble de signaux qui sont traités par le cortex visuel dans le cerveau. Il en résulte une expérience vivante d’une scène, associée à des concepts et des objets enregistrés dans la mémoire. La reconnaissance d’images essaie d’imiter ce processus. L’ordinateur perçoit une image comme une image matricielle ou vectorielle. Les images raster sont une séquence de pixels avec des valeurs numériques discrètes pour les couleurs tandis que les images vectorielles sont un ensemble de polygones annotés en couleur.
Image vectorielle vs image raster
Pour analyser les images, l’encodage géométrique est transformé en constructions représentant des caractéristiques physiques et des objets. Ces constructions peuvent ensuite être analysées logiquement par l’ordinateur. L’organisation des données comprend la classification et l’extraction des caractéristiques. La première étape de la classification des images consiste à simplifier l’image en extrayant les informations importantes et en omettant le reste. Par exemple, dans l’image ci-dessous, si vous voulez extraire un chat de l’arrière-plan, vous remarquerez une variation significative des valeurs des pixels RVB.
Procédé de classification d’images
Cependant, en faisant fonctionner un détecteur de contours sur l’image, nous pouvons la simplifier. Vous pouvez encore facilement discerner la forme circulaire du visage et des yeux dans ces images de bord et nous pouvons donc conclure que la détection de bord conserve l’information essentielle tout en jetant l’information non essentielle. Certaines techniques bien connues de descripteurs de caractéristiques sont des caractéristiques semblables à celles de Haar introduites par Viola et Jones, l’histogramme des gradients orientés (HOG), la transformation des caractéristiques à échelle invariante (SIFT), la fonction de robustesse accélérée (SURF), etc.
Construire un modèle prédictif
Dans l’étape précédente, nous avons appris comment convertir une image en vecteur de caractéristique. Dans cette section, nous apprendrons comment un algorithme de classification prend ce vecteur de caractéristiques en entrée et sort une étiquette de classe (par ex. cat ou background/no-cat). Avant qu’un algorithme de classification puisse faire sa magie, nous devons l’entraîner en montrant des milliers d’images chat et non chat. Le principe général des algorithmes d’apprentissage machine est de traiter les vecteurs de caractéristiques comme des points dans un espace dimensionnel supérieur. Ensuite, il essaie de trouver des plans ou des surfaces (contours) qui séparent l’espace dimensionnel supérieur d’une manière telle que tous les exemples d’une classe particulière se trouvent sur un côté du plan ou de la surface.
Images pour la formation
Pour construire un modèle prédictif, nous avons besoin de réseaux neuronaux. Le réseau neuronal est un système de matériel et de logiciel semblable à notre cerveau pour estimer les fonctions qui dépendent de l’énorme quantité d’entrées inconnues. Selon Kaz Sato, Staff Developer Advocate à Google Cloud Platform « Un réseau neuronal est une fonction qui apprend le résultat attendu pour une entrée donnée à partir de données de formation ». Un réseau neuronal est un groupe interconnecté de nœuds. Chaque nœud de traitement possède sa propre petite sphère de connaissances, y compris ce qu’il a vu et les règles qu’il a initialement programmées ou développées pour lui-même. Le réseau neuronal nécessiterait un algorithme d’apprentissage. Il existe de nombreux algorithmes de classification d’images pour la reconnaissance d’images, tels que les poches de mots, les machines à vecteur de support (SVM), l’estimation des repères de visage (pour la reconnaissance faciale), les voisins les plus proches (KNN), la régression logistique, etc.
Reconnaître les images
Bien que les deux étapes ci-dessus prennent la majeure partie de l’effort, cette étape pour reconnaître l’image est assez facile. Les données d’image, l’entraînement et le test sont organisés. Les données de formation sont différentes des données de test, ce qui signifie également que nous supprimons les doublons (ou quasi-doublons) entre eux. Ces données sont introduites dans le modèle pour reconnaître les images. Nous devons trouver l’image d’un chat dans notre base de données d’images connues qui a les mesures les plus proches de notre image test. Tout ce que nous avons à faire est de former un classificateur qui peut prendre les mesures à partir d’une nouvelle image de test et nous indique la correspondance la plus proche avec un chat. L’exécution de ce classificateur prend quelques millisecondes. Le résultat du classificateur est le’Chat’ ou’Non-chat’. Les principaux défis dans la construction d’un modèle de reconnaissance d’images sont la puissance de traitement du matériel et le nettoyage des données d’entrée. Il est possible que la plupart des images soient en haute définition. Si vous traitez de grandes images de plus de 500 pixels, il devient 250 000 pixels (500 X 500) par image. Des données d’entraînement de 1000 images seulement représentent 0,25 milliard de valeurs pour le modèle d’apprentissage machine. De plus, les calculs ne sont pas des additions ou des multiplications faciles, mais des dérivées complexes impliquant des poids et des matrices en virgule flottante. Il y a quelques hacks rapides pour surmonter les défis ci-dessus : – Outils de compression d’image pour réduire la taille de l’image sans perdre en clarté – Utiliser les niveaux de gris et la version dégradé des images colorées – Processeurs graphiques (GPU) – Pour former les réseaux de neurones contenant de grands ensembles de données en moins de temps et avec moins d’infrastructure informatique.