Disponible avec une licence Image Analyst.
Les méthodes et concepts suivants sont essentiels pour comprendre et réaliser une classification de pixels dans AllSource.
Segmentation sémantique
La segmentation sémantique, également nommée classification basée sur des pixels, est une tâche importante où la classification de chaque pixel appartient à une classe en particulier. Dans les SIG, vous pouvez utiliser la segmentation pour classer l’occupation du sol ou pour extraire des routes ou bâtiments d’une imagerie satellite.
L’objectif de la segmentation sémantique est le même que celui de la classification d’images traditionnelle en télédétection. L’opération s’effectue généralement en appliquant des techniques de Machine Learning traditionnelles telles que la forêt aléatoire ou le classificateur de vraisemblance maximale. Comme pour la classification d’images, la segmentation sémantique comporte deux entrées.
- Une image raster qui contient plusieurs bandes
- Une image d’étiquette qui contient l’étiquette de chaque pixel
Entraînement avec données rares
Tous les pixels d’une image n’interviennent pas dans la classification d’échantillons d’entraînement. On parle alors d’échantillons d’entraînement rares. Vous trouverez ci-dessous une illustration de l’image et des échantillons d’entraînement rares sélectionnés. Dans le cas d’échantillons d’entraînement rares comme ci-dessous, vous devez définir le paramètre Ignorer la classe sur 0. Cela permet d’ignorer les pixels qui n’ont pas été classés pour l’entraînement.
U-Net
On peut considérer l’architecture U-Net comme un réseau d’encodeurs suivi par un réseau de décodeurs. La segmentation sémantique classe les entités de pixels et cette classification au niveau des pixels est apprise à différentes étapes de l’encodeur.
L’encodeur compose la première moitié du processus U-Net. L’encodeur est généralement un réseau de classification pré-entraîné tel que VGG ou ResNet, dans lequel vous appliquez des blocs de convolution suivis par un sous-échantillonnage par valeur maximale (maxpool) pour coder l’image en entrée en représentations d’entités à plusieurs niveaux1. Le décodeur constitue la seconde moitié du processus. L’objectif est de projeter sémantiquement les entités discriminantes (de résolution inférieure) apprises par l’encodeur sur l’espace pixel (de résolution supérieure) pour obtenir une classification dense. Le décodeur réalise des opérations de sur-échantillonnage et de concaténation, suivies par des opérations de convolution1
Bibliographie
[1] Olaf Ronneberger, Philipp Fischer, Thomas Brox. U-Net: Convolutional Networks for Biomedical Image Segmentation, https://arxiv.org/abs/1505.04597, (2015).
PSPNet
Le modèle PSPNet (Pyramid Scheme Parsing Network) se compose d’un encodeur et d’un décodeur. L’encodeur est chargé d’extraire les entités de l’image. Le décodeur prédit la classe du pixel au terme du processus.
Deep Lab
Les réseaux neuronaux entièrement convolutifs (FCN, Fully Convolutional Neural Networks) sont fréquemment utilisés pour la segmentation sémantique. Un des défis de l’utilisation des FCN sur les images pour des tâches de segmentation est que les cartes d’entités en entrée rétrécissent lorsqu’elles passent à travers les couches convolutives et de regroupement du réseau. Cela entraîne une perte d’informations sur les images et génère une sortie où les prédictions sont de faible résolution et les limites d’objet sont floues.
Le modèle DeepLab résout ce problème en utilisant des convolutions dilatées (Atrous) et des modules ASPP (Atrous Spatial Pyramid Pooling). La première version de DeepLab (DeepLabV1) utilise la convolution dilatée (Atrous) et un champ aléatoire conditionnel entièrement connecté pour contrôler la résolution à laquelle les entités image sont calculées.
AllSource utilise DeepLabV3. DeepLabV3 utilise également la convolution dilatée (Atrous), en plus d’un modèle ASPP amélioré qui intègre une normalisation par lots et des entités au niveau de l’image. Il n’utilise plus le champ aléatoire conditionnel (CRF, Conditional Random Field) devenu obsolète, comme dans la version 1 et la version 2.
L’architecture du modèle DeepLabV3 est la suivante :
- Les entités sont extraites du réseau de backbone tel que VGG, DenseNet et ResNet.
- Pour contrôler la taille de la carte d’entités, la convolution dilatée (Atrous) est utilisée dans les derniers blocs du backbone.
- Par-dessus les entités extraites du backbone, un réseau ASPP est ajouté pour classer chaque pixel correspondant à leurs classes.
- La sortie du réseau ASPP est transmise via une convolution de 1 sur 1 pour obtenir la taille réelle de l’image, qui sera le dernier masque segmenté de l’image.
Vous avez un commentaire à formuler concernant cette rubrique ?