9 applications du Deep Learning pour la vision par ordinateur
Le domaine de la vision par ordinateur passe des méthodes statistiques aux méthodes de réseau neuronal d’apprentissage profond.
Il reste encore de nombreux problèmes difficiles à résoudre en matière de vision par ordinateur. Néanmoins, les méthodes d’apprentissage profond obtiennent des résultats de pointe sur certains problèmes spécifiques.
Ce n’est pas seulement la performance des modèles d’apprentissage profond sur des problèmes de référence qui est la plus intéressante ; c'est le fait qu'un modèle unique peut apprendre le sens des images et effectuer des tâches de vision, évitant ainsi le besoin d'un pipeline de méthodes spécialisées et artisanales.
Dans cet article, vous découvrirez neuf tâches de vision par ordinateur intéressantes dans lesquelles les méthodes d'apprentissage en profondeur font des progrès.
Démarrez votre projet avec mon nouveau livre Deep Learning for Computer Vision, comprenant des tutoriels pas à pas et les fichiers code source Python pour tous les exemples.
Commençons.
Aperçu
Dans cet article, nous examinerons les problèmes de vision par ordinateur suivants dans lesquels l'apprentissage profond a été utilisé :
- Classement des images
- Classification d'images avec localisation
- Détection d'objet
- Segmentation d'objet
- Transfert de style d'image
- Colorisation des images
- Reconstruction d'images
- Super-résolution d'image
- Synthèse d'images
- Autres problèmes
Notez qu'en ce qui concerne les tâches de classification (reconnaissance) d'images, la convention de dénomination de l'ILSVRC a été adoptée. Bien que les tâches se concentrent sur les images, elles peuvent être généralisées aux images vidéo.
J'ai essayé de me concentrer sur les types de problèmes des utilisateurs finaux qui pourraient vous intéresser, par opposition aux sous-problèmes plus académiques où l'apprentissage profond fonctionne bien.
Chaque exemple fournit une description du problème, un exemple et des références à des articles qui démontrent les méthodes et les résultats.
Avez-vous une application de vision par ordinateur préférée pour le deep learning qui ne figure pas dans la liste ?
Faites-le moi savoir dans les commentaires ci-dessous.
Classement des images
La classification d'images consiste à attribuer une étiquette à une image ou une photographie entière.
Ce problème est également appelé « classification d'objets » et peut-être plus généralement « reconnaissance d'images », bien que cette dernière tâche puisse s'appliquer à un ensemble beaucoup plus large de tâches liées à classer le contenu des images.
Voici quelques exemples de classification d’images :
- Étiqueter une radiographie comme cancer ou non (classification binaire).
- Classification d'un chiffre manuscrit (classification multiclasse).
- Attribuer un nom à une photographie d'un visage (classification multiclasse).
Un exemple populaire de classification d’images utilisé comme problème de référence est l’ensemble de données MNIST.
Une version populaire du monde réel de classification de photos de chiffres est l'ensemble de données Street View House Numbers (SVHN).
Pour obtenir des résultats de pointe et des articles pertinents sur ces tâches et d’autres tâches de classification d’images, voir :
- Quelle est la classe de cette image ?
Il existe de nombreuses tâches de classification d'images qui impliquent des photographies d'objets. Deux exemples populaires incluent les ensembles de données CIFAR-10 et CIFAR-100 qui contiennent des photographies à classer respectivement en 10 et 100 classes.
Le Large Scale Visual Recognition Challenge (ILSVRC) est un concours annuel dans lequel les équipes s'affrontent pour obtenir les meilleures performances sur une gamme de tâches de vision par ordinateur sur des données tirées de la base de données ImageNet. De nombreuses avancées importantes dans la classification d'images proviennent d'articles publiés sur ou à propos des tâches de ce défi, notamment les premiers articles sur la tâche de classification d'images. Par exemple:
- Classification ImageNet avec des réseaux de neurones à convolution profonde, 2012.
- Réseaux convolutifs très profonds pour la reconnaissance d'images à grande échelle, 2014.
- Aller plus loin avec les convolutions, 2015.
- Apprentissage résiduel profond pour la reconnaissance d'images, 2015.
Classification d'images avec localisation
La classification d'images avec localisation implique d'attribuer une étiquette de classe à une image et d'afficher l'emplacement de l'objet dans l'image par un cadre de délimitation (en dessinant un cadre autour de l'objet).
Il s'agit d'une version plus complexe de la classification d'images.
Voici quelques exemples de classification d'images avec localisation :
- Étiqueter une radiographie comme étant un cancer ou non et dessiner un cadre autour de la région cancéreuse.
- Classer les photographies d'animaux et dessiner un cadre autour de l'animal dans chaque scène.
Un ensemble de données classique pour la classification d'images avec localisation est l'ensemble de données PASCAL Visual Object Classes, ou PASCAL VOC en abrégé (par exemple VOC 2012). Il s’agit d’ensembles de données utilisés dans les défis de vision par ordinateur depuis de nombreuses années.
La tâche peut impliquer l'ajout de cadres de délimitation autour de plusieurs exemples du même objet dans l'image. En tant que telle, cette tâche peut parfois être appelée « détection d'objet ».
L'ensemble de données ILSVRC2016 pour la classification d'images avec localisation est un ensemble de données populaire composé de 150 000 photographies avec 1 000 catégories d'objets.
Voici quelques exemples d'articles sur la classification d'images avec localisation :
- Recherche sélective pour la reconnaissance d'objets, 2013.
- Hiérarchies de fonctionnalités riches pour une détection précise des objets et une segmentation sémantique, 2014.
- Rapide R-CNN, 2015.
Détection d'objet
La détection d'objets est la tâche de classification d'images avec localisation, bien qu'une image puisse contenir plusieurs objets nécessitant une localisation et une classification.
Il s’agit d’une tâche plus difficile que la simple classification d’images ou la classification d’images avec localisation, car il y a souvent plusieurs objets de différents types dans l’image.
Souvent, les techniques développées pour la classification d’images avec localisation sont utilisées et démontrées pour la détection d’objets.
Voici quelques exemples de détection d'objets :
- Dessiner un cadre de délimitation et étiqueter chaque objet dans une scène de rue.
- Dessiner un cadre de délimitation et étiqueter chaque objet sur une photographie d'intérieur.
- Dessiner un cadre de délimitation et étiqueter chaque objet dans un paysage.
Les ensembles de données PASCAL Visual Object Classes, ou PASCAL VOC en abrégé (par exemple VOC 2012), sont un ensemble de données courant pour la détection d'objets.
Un autre ensemble de données pour plusieurs tâches de vision par ordinateur est l’ensemble de données Common Objects in Context de Microsoft, souvent appelé MS COCO.
Voici quelques exemples d'articles sur la détection d'objets :
- OverFeat : reconnaissance, localisation et détection intégrées à l'aide de réseaux convolutifs, 2014.
- R-CNN plus rapide : vers une détection d'objets en temps réel avec des réseaux de propositions régionales, 2015.
- Vous ne regardez qu'une seule fois : détection d'objets unifiée en temps réel, 2015.
Segmentation d'objet
La segmentation d'objets, ou segmentation sémantique, est la tâche de détection d'objets où une ligne est tracée autour de chaque objet détecté dans l'image. La segmentation d'images est un problème plus général consistant à diviser une image en segments.
La détection d'objets est également parfois appelée segmentation d'objets.
Contrairement à la détection d'objets qui implique l'utilisation d'un cadre de délimitation pour identifier les objets, la segmentation d'objets identifie les pixels spécifiques de l'image qui appartiennent à l'objet. C'est comme une localisation à grain fin.
Plus généralement, la « segmentation d'image » peut faire référence à la segmentation de tous les pixels d'une image en différentes catégories d'objets.
Encore une fois, les ensembles de données VOC 2012 et MS COCO peuvent être utilisés pour la segmentation d'objets.
La KITTI Vision Benchmark Suite est un autre ensemble de données de segmentation d'objets populaire, fournissant des images de rues destinées à la formation de modèles pour véhicules autonomes.
Voici quelques exemples d'articles sur la segmentation d'objets :
- Détection et segmentation simultanées, 2014.
- Réseaux entièrement convolutionnels pour la segmentation sémantique, 2015.
- Hypercolonnes pour la segmentation d'objets et la localisation à granularité fine, 2015.
- SegNet : une architecture d'encodeur-décodeur convolutionnel profond pour la segmentation d'images, 2016.
- Masque R-CNN, 2017.
Transfert de style
Le transfert de style ou transfert de style neuronal consiste à apprendre le style à partir d'une ou plusieurs images et à appliquer ce style à une nouvelle image.
Cette tâche peut être considérée comme un type de filtre ou de transformation photo qui peut ne pas avoir d'évaluation objective.
Les exemples incluent l'application du style d'œuvres d'art célèbres spécifiques (par exemple de Pablo Picasso ou Vincent van Gogh) à de nouvelles photographies.
Les ensembles de données impliquent souvent l’utilisation d’œuvres d’art célèbres appartenant au domaine public et de photographies provenant d’ensembles de données de vision par ordinateur standard.
Certains articles incluent :
- Un algorithme neuronal du style artistique, 2015.
- Transfert de style d'image à l'aide de réseaux de neurones convolutifs, 2016.
Colorisation des images
La colorisation d'image ou colorisation neuronale consiste à convertir une image en niveaux de gris en une image en couleur.
Cette tâche peut être considérée comme un type de filtre ou de transformation photo qui peut ne pas avoir d'évaluation objective.
Les exemples incluent la colorisation de vieilles photographies et films en noir et blanc.
Les ensembles de données impliquent souvent l'utilisation d'ensembles de données de photos existants et la création de versions en niveaux de gris de photos que les modèles doivent apprendre à coloriser.
Certains articles incluent :
- Colorisation d'images colorées, 2016.
- Que la couleur soit ! : Apprentissage conjoint de bout en bout des priorités d'images globales et locales pour la colorisation automatique des images avec classification simultanée, 2016.
- Colorisation profonde, 2016.
Reconstruction d'images
La reconstruction d'image et l'inpainting d'image consistent à combler les parties manquantes ou corrompues d'une image.
Cette tâche peut être considérée comme un type de filtre ou de transformation photo qui peut ne pas avoir d'évaluation objective.
Les exemples incluent la reconstruction de photographies et de films en noir et blanc anciens et endommagés (par exemple, restauration de photos).
Les ensembles de données impliquent souvent l'utilisation d'ensembles de données de photos existants et la création de versions corrompues de photos que les modèles doivent apprendre à réparer.
Certains articles incluent :
- Réseaux de neurones récurrents Pixel, 2016.
- Inpainting d'images pour des trous irréguliers utilisant des convolutions partielles, 2018.
- Reconstruction d'images hautement évolutive à l'aide de réseaux de neurones profonds avec filtrage passe-bande, 2018.
Super-résolution d'image
La super-résolution d'image consiste à générer une nouvelle version d'une image avec une résolution et des détails plus élevés que l'image d'origine.
Souvent, les modèles développés pour la super-résolution d’images peuvent être utilisés pour la restauration et l’inpainting d’images car ils résolvent des problèmes connexes.
Les ensembles de données impliquent souvent l'utilisation d'ensembles de données de photos existants et la création de versions réduites de photos pour lesquelles les modèles doivent apprendre à créer des versions en super-résolution.
Certains articles incluent :
- Super-résolution d'image unique photo-réaliste utilisant un réseau contradictoire génératif, 2017.
- Réseaux pyramidaux laplaciens profonds pour une super-résolution rapide et précise, 2017.
- Image profonde avant, 2017.
Synthèse d'images
La synthèse d'images consiste à générer des modifications ciblées d'images existantes ou d'images entièrement nouvelles.
Il s’agit d’un domaine très vaste qui progresse rapidement.
Cela peut inclure de petites modifications de l'image et de la vidéo (par exemple, des traductions d'image à image), telles que :
- Changer le style d'un objet dans une scène.
- Ajouter un objet à une scène.
- Ajouter un visage à une scène.
Cela peut également inclure la génération d’images entièrement nouvelles, telles que :
- Générer des visages.
- Générer des salles de bains.
- Générer des vêtements.
Certains articles incluent :
- Apprentissage de représentation non supervisé avec des réseaux contradictoires génératifs à convolution profonde, 2015.
- Génération d'images conditionnelles avec les décodeurs PixelCNN, 2016.
- Traduction d'image à image non appariée à l'aide de réseaux contradictoires cohérents en cycle, 2017.
Autres problèmes
Il existe d’autres problèmes importants et intéressants que je n’ai pas abordés car il ne s’agit pas de tâches purement de vision par ordinateur.
Exemples notables image vers texte et texte vers image :
Sous-titrage d'image : génération d'une description textuelle d'une image.
- Montrer et raconter : un générateur de légendes d'images neuronales, 2014.
Description d'image : génération d'une description textuelle de chaque objet dans une image.
- Alignements visuels-sémantiques profonds pour la génération de descriptions d'images, 2015.
Texte en image : synthèse d'une image basée sur une description textuelle.
- AttnGAN : Génération de texte en image à grain fin avec des réseaux contradictoires génératifs attentionnels, 2017.
Vraisemblablement, on apprend à établir une correspondance entre d’autres modalités et images, comme l’audio.
Lectures complémentaires
Cette section fournit plus de ressources sur le sujet si vous souhaitez approfondir.
Documents d'enquête
- Détection d'objets avec Deep Learning : une revue, 2018.
- Une étude de la littérature moderne sur la détection d'objets utilisant le Deep Learning, 2018.
- Une enquête sur l'apprentissage profond dans l'analyse d'images médicales, 2017.
Ensembles de données
- Ensemble de données MNIST
- L'ensemble de données Street View House Numbers (SVHN)
- Ensemble de données ImageNet
- Défi de reconnaissance visuelle à grande échelle (ILSVRC)
- Ensemble de données ILSVRC2016
- La page d'accueil des classes d'objets visuels PASCAL
- Ensemble de données MS COCO.
- La suite de référence KITTI Vision
Articles
- Quelle est la classe de cette image ?
- Les 9 articles sur le Deep Learning que vous devez connaître (Comprendre les CNN, partie 3)
- Liste et examen des documents du GAN
- Un guide 2017 sur la segmentation sémantique avec le Deep Learning.
Références
- Base de données MNIST, Wikipédia.
- AlexNet, Wikipédia.
- Segmentation d'images, Wikipédia.
Résumé
Dans cet article, vous avez découvert neuf applications du deep learning aux tâches de vision par ordinateur.
Votre exemple préféré d'apprentissage profond pour la vision par ordinateur a-t-il été oublié ?
Faites-le moi savoir dans les commentaires.
Avez-vous des questions ?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.