(IA) et l'informatique qui permet aux systèmes automatisés de voir, c'est-à-dire de traiter des images et des vidéos d'une manière humaine pour détecter et identifier des objets ou des régions d'importance, prédire un résultat ou même modifier l'image au format souhaité [1]. Les cas d'utilisation les plus courants dans le domaine CV incluent la perception automatisée pour la conduite autonome, les réalités augmentées et virtuelles (RA, VR) pour les simulations, les jeux, les lunettes, la réalité et le commerce électronique axé sur la mode ou la beauté.
Medical image (MI ), d'autre part, implique une analyse beaucoup plus détaillée des images médicales qui sont généralement en niveaux de gris telles que les images IRM, CT ou rayons X pour la détection automatisée de la pathologie, une tâche qui nécessite l'œil d'un spécialiste qualifié pour la détection. Les cas d'utilisation les plus courants dans le domaine MI incluent l'étiquetage automatisé de la pathologie, la localisation, l'association avec un traitement ou des pronostics, et la médecine personnalisée.
Avant l'avènement des méthodes d'apprentissage en profondeur, les solutions de traitement du signal 2D telles que le filtrage d'image, les transformées en ondelettes, l'image l'enregistrement, suivi des modèles de classification [2–3] ont été largement appliqués pour les cadres de solution. Les solutions de traitement du signal continuent d'être le premier choix pour la création de modèles de référence en raison de leur faible latence et de leur grande généralisabilité entre les ensembles de données.
Cependant, les solutions et les cadres d'apprentissage en profondeur sont devenus un nouveau favori en raison de leur nature de bout en bout. qui élimine le besoin d'ingénierie des fonctionnalités, de sélection des fonctionnalités et de seuillage de sortie. Dans ce tutoriel, nous passerons en revue les choix du projet « Top 10» pour les débutants dans les domaines CV et MI et fournirons des exemples avec données et démarreur code pour faciliter l'apprentissage au rythme de chacun.
Les cadres de solution CV et MI peuvent être analysés en trois segments: Data, Process, and Outcomes [4]. Il est important de toujours visualiser les données requises pour que ces cadres de solution aient le format «{X, Y}», où X représente les données image / vidéo et Y représente la cible ou les étiquettes de données . Alors que les images et les séquences vidéo (X) naturelles non étiquetées peuvent être abondantes, l'acquisition d'étiquettes précises (Y) peut être un processus coûteux. Avec l'avènement de plusieurs plates-formes d'annotation de données telles que [5–7]les images et les vidéos peuvent être étiquetées pour chaque cas d'utilisation.
Étant donné que les modèles d'apprentissage en profondeur reposent généralement sur de grands volumes de données annotées pour apprendre automatiquement les fonctionnalités des tâches de détection ultérieures, le Les domaines CV et MI souffrent souvent du « petit défi de données », dans lequel le nombre d'échantillons disponibles pour l'apprentissage d'un modèle d'apprentissage automatique est de plusieurs ordres inférieur au nombre de paramètres du modèle.
Les «petites données défi ”si non résolu peut conduire à des modèles de sur-ajustement ou de sous-ajustement qui peuvent ne pas se généraliser à de nouveaux ensembles de données de test invisibles. Ainsi, le processus de conception d'un cadre de solution pour les domaines CV et MI doit toujours inclure des contraintes de complexité de modèle, les modèles avec moins de paramètres étant généralement préférés pour éviter un sous-ajustement du modèle.
Enfin, la solution les résultats du cadre sont analysés à la fois qualitativement par des solutions de visualisation et quantitativement en termes de métriques bien connues telles que la précision, le rappel, l'exactitude et les coefficients F1 ou Dice [8–9].
Les projets énumérés ci-dessous présentent une variété de niveaux de difficulté (difficulté niveaux Facile, Moyen, Difficile ) en ce qui concerne le prétraitement des données et la construction de modèles. En outre, ces projets représentent une variété de cas d'utilisation qui prévalent actuellement dans les communautés de recherche et d'ingénierie. Les projets sont définis en termes de: Objectif, Méthodes, et Résultats .
Projet 1: MNIST et Fashion MNIST pour la classification d'images (Niveau: Facile)
Objectif: Traiter des images (X) de taille [28×28] pixels et les classer dans l'une des 10 catégories de sortie (Y). Pour l'ensemble de données MNIST, les images d'entrée sont des chiffres manuscrits compris entre 0 et 9 [10]. Les ensembles de données d'entraînement et de test contiennent respectivement 60 000 et 10 000 images étiquetées. Inspiré par le problème de la reconnaissance des chiffres manuscrits, un autre ensemble de données appelé le jeu de données Fashion MNIST a été lancé [11] où le but est de classer les images (de taille [28×28]) en catégories de vêtements, comme le montre la Fig. 1.
Méthodes: Lorsque l'image d'entrée est petite ([28×28] pixels) et que les images sont en niveaux de gris, des modèles de réseau neuronal convolutif (CNN), où le nombre de couches convolutives peut varier de des modèles de classification adaptés à une à plusieurs couches. Un exemple de construction de modèle de classification MNIST utilisant Keras est présenté dans le fichier colab:
Un autre exemple de classification sur le jeu de données Fashion MNIST est présenté dans:
In Dans les deux cas, les paramètres clés à régler incluent le nombre de couches, la suppression, l'optimiseur (optimiseurs adaptatifs préférés), le taux d'apprentissage et la taille du noyau, comme indiqué dans le code ci-dessous. Puisqu'il s'agit d'un problème multi-classes, la fonction d'activation 'softmax' est utilisée dans la couche finale pour s'assurer qu'un seul neurone de sortie est pondéré plus que les autres.
Résultats : Lorsque le nombre de couches convolutives augmente de 1–10, la précision de la classification augmente également. L'ensemble de données MNIST est bien étudié dans la littérature avec des précisions de test comprises entre 96 et 99%. Pour l'ensemble de données Fashion MNIST, les précisions des tests sont généralement comprises entre 90 et 96%. Un exemple de visualisation du résultat de la classification MNIST à l'aide de modèles CNN est présenté sur la figure 2 ci-dessous ( Voir la visualisation à l'avant ici ).
Projet 2: Classification pathologique des images médicales (niveau: facile)
Objectif: Classer les images médicales (acquises par tomographie par cohérence optique, OCT) comme Normal, œdème maculaire diabétique (DME), Drusen, néovascularisation choroïdienne (CNV) comme indiqué dans [12]. L'ensemble de données contient environ 84 000 images de formation et environ 1 000 images de test avec des étiquettes et chaque image a une largeur de 800 à 1 000 pixels comme le montre la figure 2.
Méthodes: Des modèles Deep CNN tels que Resnet et CapsuleNet [12] ont été appliqués pour classer cet ensemble de données. Les données doivent être redimensionnées en [512×512] ou [256×256] pour être introduites dans les modèles de classification standard. Étant donné que les images médicales présentent moins de variations dans les catégories d'objets par image par rapport aux images non médicales en extérieur et en intérieur, le nombre d'images médicales nécessaires pour former de grands modèles CNN est nettement inférieur au nombre d'images non médicales. [19659004] Les travaux de [12] et de la base de code OCT démontrent le recyclage de la couche ResNet pour l'apprentissage par transfert et la classification des images de test. Les paramètres à régler ici incluent l'optimiseur, le taux d'apprentissage, la taille des images d'entrée et le nombre de couches denses à la fin de la couche ResNet.
Résultats: Pour le modèle ResNet, la précision du test peut varier entre 94 à 99% en faisant varier le nombre d'images d'entraînement comme indiqué dans [12]. La figure 3. démontre qualitativement les performances du modèle de classification.
Ces visualisations sont produites à l'aide de la bibliothèque Gradcam qui combine les activations de la couche CNN sur l'image d'origine pour comprendre les régions d'intérêt ou les caractéristiques détectées automatiquement de importance, pour la tâche de classification. L'utilisation de Gradcam à l'aide de la bibliothèque tf_explain est illustrée ci-dessous.
Projet 3: Explicabilité de l'IA pour la classification d'images multi-étiquettes (niveau: facile)
Objectif: Les modèles CNN permettent une livraison de bout en bout, ce qui signifie qu'il n'est pas nécessaire de concevoir et de classer les fonctionnalités pour la classification et le résultat du modèle est le résultat souhaité du processus. Cependant, il est souvent important de visualiser et d'expliquer les performances des modèles CNN comme indiqué dans les parties ultérieures du projet 2.
Certaines bibliothèques de visualisation et d'explicabilité bien connues sont tf_explain and ] Explications locales interprétables indépendantes du modèle (LIME) . Dans ce projet, l'objectif est de parvenir à une classification multi-étiquettes et d'expliquer ce que le modèle CNN considère comme des fonctionnalités permettant de classer les images d'une manière particulière. Dans ce cas, nous considérons un scénario multi-étiquettes dans lequel une image peut contenir plusieurs objets, par exemple un chat et un chien dans Colab for LIME .
Ici, l'entrée est des images avec chat et le chien dedans et le but est d'identifier quelles régions correspondent respectivement à un chat ou un chien.
Méthode: Dans ce projet, chaque image est soumise à une segmentation de super-pixels qui divise l'image en plusieurs sous-régions avec des caractéristiques de couleur et de texture de pixel similaires. Le nombre de sous-régions divisées peut être fourni manuellement en tant que paramètre. Ensuite, le modèle InceptionV3 est appelé pour attribuer une probabilité à chaque sous-région de superpixels d'appartenir à l'une des 1000 classes sur lesquelles InceptionV3 est initialement entraîné. Enfin, les probabilités d'objet sont utilisées comme poids pour ajuster un modèle de régression qui explique les retours sur investissement correspondant à chaque classe, comme indiqué sur la figure 4 et le code ci-dessous.
Résultats: En utilisant la méthode proposée, les retours sur investissement dans la plupart des images non médicales devraient être explicables. L'évaluation qualitative et l'explicabilité, comme indiqué ici, sont particulièrement utiles dans les cas d'angle ou dans les situations où le modèle a mal classé ou omis des objets d'intérêt. Dans de telles situations, expliquer ce que le modèle CNN regarde et augmenter le retour sur investissement en conséquence pour corriger les performances de classification globales peut aider à réduire considérablement les biais induits par les données.
Projet 4: Apprentissage par transfert pour la détection de boîtes englobantes 2D sur de nouveaux objets (Niveau: Moyen )
Objectif: La prochaine étape après la classification des images est la détection d'objets d'intérêt en plaçant des cadres de délimitation autour d'eux. Il s'agit d'un problème important dans le domaine de la conduite autonome pour identifier avec précision les objets en mouvement tels que les voitures et les piétons à partir d'objets statiques tels que les barrages routiers, les panneaux de signalisation, les arbres et les bâtiments.
La principale différence entre ce projet et les projets antérieurs est la format des données. Ici, les étiquettes Y sont typiquement sous la forme de [x,y,w,h] par objet d'intérêt, où (x, y) représentent typiquement le coin supérieur gauche de la boîte englobante et w et h correspondent à la largeur et à la hauteur de la boîte englobante de sortie. Dans ce projet, l'objectif est d'exploiter un classificateur pré-entraîné pour ses capacités d'extraction de caractéristiques, puis de le recycler sur un petit ensemble d'images pour créer un cadre de délimitation serré autour d'un nouvel objet.
Méthode: [19659009] Dans le code Bounding Box colab nous pouvons étendre un détecteur d'objet pré-entraîné tel qu'un détecteur à un seul coup (SSD) avec des connexions de saut Resnet50 et un backbone de réseau pyramidal, qui est pré-formé pour l'objet détection sur le jeu de données MS-COCO [13] pour détecter une nouvelle catégorie d'objet complètement invisible, un canard en caoutchouc dans ce cas.
Dans cette configuration d'apprentissage par transfert, les poids déjà appris depuis le début Les couches du détecteur d'objet sont utiles pour extraire les informations structurelles et texturales locales des images et seule la couche de classification finale nécessite un recyclage pour la nouvelle classe d'objets. Cela permet de recycler le détecteur d'objet pour une nouvelle classe, comme un canard en caoutchouc dans ce cas d'utilisation, en utilisant aussi peu que 5 à 15 images du nouvel objet. Les paramètres à régler comprennent l'optimiseur, le taux d'apprentissage, la taille de l'image d'entrée et le nombre de neurones dans la couche de classificateur finale.
Résultats: Une différence majeure entre les détecteurs d'objets et les modèles de classificateurs basés sur CNN antérieurs. ci-dessus est une métrique de sortie supplémentaire appelée Intersection over Union (IoU) [11] qui mesure l'étendue du chevauchement entre la boîte englobante réelle et la boîte englobante prévue. En outre, un modèle de détecteur d'objet se compose généralement d'un classificateur (qui prédit la classe d'objet) et d'un régresseur de boîte englobante qui prédit les dimensions de la boîte englobante autour de l'objet. Un exemple de l'API Google pour la détection d'objets sur une nouvelle image invisible est illustré à la Fig. 5 et le code ci-dessous.
Les extensions du détecteur de boîte englobante 2D aux boîtes englobantes 3D spécifiquement pour la conduite autonome sont présentées dans ] ces projets .
Projet 5 : Médecine personnalisée et explicabilité (niveau: moyen)
Objectif: Dans ce projet, l'objectif est de segmenter automatiquement les retours sur investissement de plusieurs sites pathologiques pour classer l'étendue de la pâleur anémique chez un patient et suivre la pâleur au fil du temps [13]. Les deux principales différences dans ce projet par rapport aux précédents sont que: 1) la pâleur doit être détectée sur plusieurs sites d'image tels que la conjonctive (sous l'œil) et la langue pour prédire une seule étiquette comme le montre la figure 6, 2) ROIs correspondants à la pâleur doivent être affichés et suivis au fil du temps.
Méthodes: Pour ce projet, des modèles basés sur des caractéristiques et des classificateurs basés sur CNN sont appliqués avec une forte augmentation des données en utilisant le Imagedata generator à Keras. Pour fusionner les résultats de plusieurs sites de pathologie, une fusion précoce, moyenne et tardive peut être appliquée.
Le travail de [13] applique la fusion tardive dans laquelle la couche avant le classificateur, qui est considérée comme la représentation optimale des caractéristiques de l'image , est utilisé pour fusionner des caractéristiques sur plusieurs sites pathologiques. Enfin, l'algorithme Deepdream, comme indiqué dans le Deepdream Colab est appliqué aux images originales des yeux et de la langue pour visualiser les retours sur investissement et expliquer l'étendue de la pathologie. Les paramètres à régler dans ce projet incluent les paramètres du projet 2 ainsi que le facteur de gradient additif pour les visualisations Deepdream.
Résultats: Les données pour ce travail sont disponibles pour benchmarking . En utilisant l'algorithme Deepdream, les visualisations sont présentées sur la figure 7, où nous observons une concentration plus élevée de caractéristiques correspondant à la pâleur dans les vaisseaux sanguins sous l'œil que partout ailleurs dans l'œil. De même, nous observons des différences de caractéristiques entre les segments interne et externe de la langue. Ces évaluations sont utiles pour créer un système de suivi de pathologie personnalisé pour les patients souffrant d'anémie.
Projet 6: Segmentation des nuages de points pour la détection d'objets. (Niveau: Difficile)
Objectif: Dans ce projet, l'entrée est un flux de nuages de points, c'est-à-dire la sortie des capteurs Lidar qui fournissent une résolution en profondeur. La principale différence entre les nuages de points Lidar et une image est que les nuages de points fournissent une résolution 3D, de sorte que chaque voxel (équivalent 3D de pixel) représente l'emplacement d'un objet à partir de la source Lidar et la hauteur de l'objet par rapport à la source Lidar. Les principaux défis posés par les modèles de données de nuages de points sont i) la complexité de calcul du modèle si les convolutions 3D sont utilisées et ii) l'invariance de la transformation d'objet, ce qui signifie qu'un objet pivoté doit être détecté comme l'objet lui-même comme indiqué dans [13].
Méthode : L'ensemble de données pour ce projet est le benchmark de classification des formes ModelNet40 qui contient plus de 12 000 modèles 3D de 40 classes d'objets. Chaque objet est sous-échantillonné pour extraire un nombre fixe de points suivi d'une augmentation pour répondre à de multiples transformations de forme. Les convolutions 1D suivantes sont utilisées pour apprendre les caractéristiques de forme ness en utilisant la bibliothèque Pytorch dans le Pointnet colab comme indiqué ci-dessous.
Résultats: [19659007] Le résultat du modèle peut être résumé à l'aide de la figure 8 ci-dessous. Jusqu'à 89% de précision d'entraînement pour la classification d'objets peut être obtenue par cette méthode qui peut également être étendue à la segmentation sémantique 3D. Des extensions de ce travail peuvent être utiles pour la détection de la boîte englobante 3D pour les cas d'utilisation de lecteurs autonomes.
Projet 7: Segmentation sémantique d'image utilisant U-net pour binaire et multi-classe. (Moyen)
Objectif: Jusqu'à présent, les modèles CNN ont été appliqués pour apprendre automatiquement les caractéristiques qui peuvent ensuite être utilisées pour la classification. Ce processus est connu sous le nom de codage de caractéristiques . Comme étape suivante, nous appliquons une unité de décodeur avec une structure similaire à celle du codeur pour permettre la génération d'une image de sortie. Cette combinaison de paires codeur-décodeur permet à l'entrée et à la sortie d'avoir des dimensions similaires, c'est-à-dire que l'entrée est une image et la sortie est également une image.
Méthodes: La combinaison codeur-décodeur avec des connexions de saut résiduelles est populairement connu sous le nom de U-net [15]. Pour les problèmes binaires et multi-classes, les données doivent être formatées de telle sorte que si X (image d’entrée) a des dimensions [m x m] pixels, Y a des dimensions [m x m x d]où «d» est le nombre de classes à prédire. Les paramètres à régler comprennent l'optimiseur, le taux d'apprentissage et la profondeur du modèle U-net comme indiqué dans [15] et Fig. 9 ci-dessous ( source here) .
Résultats: Le modèle U-net peut apprendre à générer des cartes sémantiques binaires et multi-classes à partir de grands et petits ensembles de données [16–17]mais on le trouve être sensible au déséquilibre des données. Ainsi, la sélection du bon ensemble de données d'entraînement est très importante pour des résultats optimaux. D'autres extensions de ce travail incluraient les connexions DenseNet au modèle, ou d'autres réseaux de codeurs-décodeurs tels que MobileNet ou les réseaux d'exception [17].
Projet 8: Machine Translation for Posture and Intention Classification (Niveau: Difficile)
Objectif: La détection automatisée de la posture ou du geste inclut souvent l'identification des points clés (comme l'identification de la structure du squelette) dans les vidéos qui peuvent conduire à l'identification de la posture (debout, marcher, bouger) ou de l'intention des piétons (traverser la route , pas de croisement), etc. [18–19]comme le montre la figure 10 ci-dessous. Pour cette catégorie de problèmes, les informations sur les images clés provenant de plusieurs images vidéo suivantes sont traitées collectivement pour générer des prédictions liées à la pose / intention.
Source link