Voici comment l'apprentissage en profondeur aide les ordinateurs à détecter des objets
Les réseaux de neurones profonds sont devenus célèbres pour leur capacité à traiter des informations visuelles. Et au cours des dernières années, ils sont devenus un élément clé de nombreuses applications de vision par ordinateur.
Parmi les problèmes clés que les réseaux de neurones peuvent résoudre, il y a la détection et la localisation d'objets dans les images. La détection d'objets est utilisée dans de nombreux domaines différents, notamment la conduite autonomela vidéosurveillance et les soins de santé.
Dans cet article, je passerai brièvement en revue les architectures d'apprentissage en profondeur[19659007] qui aident les ordinateurs à détecter des objets.
Réseaux de neurones convolutifs
L'un des composants clés de la plupart des applications de vision par ordinateur basées sur l'apprentissage profond est le réseau de neurones convolutifs (CNN). Inventés dans les années 1980 par le pionnier de l'apprentissage en profondeur Yann LeCunles CNN sont un type de réseau de neurones efficace pour capturer des modèles dans des espaces multidimensionnels. Cela rend les CNN particulièrement adaptés aux images, bien qu'ils soient également utilisés pour traiter d'autres types de données. (Pour nous concentrer sur les données visuelles, nous considérerons nos réseaux de neurones convolutifs comme étant bidimensionnels dans cet article.)
Chaque réseau de neurones convolutifs est composé d'un ou plusieurs couches convolutives un composant logiciel qui extrait des valeurs significatives de l'image d'entrée. Et chaque couche de convolution est composée de plusieurs filtres, des matrices carrées qui glissent sur l'image et enregistrent la somme pondérée des valeurs de pixels à différents emplacements. Chaque filtre a des valeurs différentes et extrait différentes caractéristiques de l'image d'entrée. La sortie d'une couche de convolution est un ensemble de "cartes de caractéristiques".
Lorsqu'elles sont empilées les unes sur les autres, les couches de convolution peuvent détecter une hiérarchie de modèles visuels. Par exemple, les couches inférieures produiront des cartes de caractéristiques pour les bords verticaux et horizontaux, les coins et d'autres motifs simples. Les couches suivantes peuvent détecter des motifs plus complexes tels que des grilles et des cercles. Au fur et à mesure que vous vous enfoncez dans le réseau, les couches détectent des objets complexes tels que des voitures, des maisons, des arbres et des personnes.
La plupart des réseaux de neurones convolutifs utilisent regrouper les couches pour réduire progressivement la taille de leurs cartes de caractéristiques et conserver les parties les plus saillantes. Max-pooling, qui est actuellement le principal type de couche de pooling utilisé dans les CNN, conserve la valeur maximale dans un patch de pixels. Par exemple, si vous utilisez une couche de pooling de taille 2, elle prendra des patchs de 2×2 pixels à partir des cartes de caractéristiques produites par la couche précédente et conservera la valeur la plus élevée. Cette opération divise par deux la taille des cartes et conserve les caractéristiques les plus pertinentes. Les couches de mise en commun permettent aux CNN de généraliser leurs capacités et d'être moins sensibles au déplacement d'objets à travers les images.
Enfin, la sortie des couches de convolution est aplatie en une matrice à dimension unique qui est la représentation numérique des caractéristiques contenues dans l'image. . Cette matrice est ensuite introduite dans une série de couches « entièrement connectées » de neurones artificiels qui mappent les caractéristiques au type de sortie attendu du réseau.
La tâche la plus fondamentale pour les réseaux de neurones convolutifs sont une classification d'images, dans laquelle le réseau prend une image en entrée et renvoie une liste de valeurs qui représentent la probabilité que l'image appartienne à l'une de plusieurs classes.
Par exemple, disons que vous souhaitez entraîner un réseau de neurones. pour détecter les 1 000 classes d'objets contenus dans le populaire jeu de données open source ImageNet. Dans ce cas, votre couche de sortie aura 1 000 sorties numériques, chacune contenant la probabilité que l'image appartienne à l'une de ces classes.
Vous pouvez toujours créer et tester votre propre réseau de neurones convolutifs à partir de zéro. Mais la plupart des chercheurs et développeurs en apprentissage automatique utilisent l'un des nombreux réseaux de neurones convolutifs éprouvés tels que AlexNet, VGG16 et ResNet-50.
Ensembles de données de détection d'objets
Alors qu'un réseau de classification d'images peut dire si une image contient un certain objet ou non, il ne dira pas où dans l'image l'objet se trouve. Les réseaux de détection d'objets fournissent à la fois la classe d'objets contenus dans une image et une boîte englobante qui fournit les coordonnées de cet objet.
Les réseaux de détection d'objets ressemblent beaucoup aux réseaux de classification d'images et utilisent des couches de convolution pour détecter les caractéristiques visuelles. En fait, la plupart des réseaux de détection d'objets utilisent une classification d'images CNN et la réutilisent pour la détection d'objets.
La détection d'objets est un problème d'apprentissage automatique superviséce qui signifie que vous devez entraîner vos modèles sur des exemples étiquetés. . Chaque image de l'ensemble de données d'apprentissage doit être accompagnée d'un fichier qui inclut les limites et les classes des objets qu'elle contient. Il existe plusieurs outils open source qui créent des annotations de détection d'objets.
Le réseau de détection d'objets est entraîné sur les données annotées jusqu'à ce qu'il puisse trouver des régions dans les images qui correspondent à chaque type d'objet.
Regardons maintenant quelques architectures de réseaux neuronaux de détection d'objets.
Le modèle d'apprentissage en profondeur R-CNN
Le Convolutional basé sur la région. Le réseau neuronal (R-CNN) a été proposé par des chercheurs en IA de l'Université de Californie à Berkley, en 2014. Le R-CNN est composé de trois composants clés.
Premièrement, un sélecteur de région utilise la « recherche sélective, ” qui trouve des régions de pixels dans l'image qui pourraient représenter des objets, également appelées « régions d'intérêt » (RoI). Le sélecteur de région génère environ 2 000 régions d'intérêt pour chaque image.
Ensuite, les RoI sont déformées dans une taille prédéfinie et transmises à un réseau de neurones convolutifs. Le CNN traite chaque région séparément et extrait les caractéristiques via une série d'opérations de convolution. Le CNN utilise des couches entièrement connectées pour coder les cartes de caractéristiques dans un vecteur unidimensionnel de valeurs numériques.
Enfin, un modèle d'apprentissage automatique de classificateur mappe les caractéristiques codées obtenues à partir du CNN vers les classes de sortie. Le classificateur a une classe de sortie distincte pour « l'arrière-plan », qui correspond à tout ce qui n'est pas un objet.
Source link