Les modèles de segmentation sémantique créent une carte de segmentation de l’image en entrée. Cette carte de segmentation est une reconstruction de l’image initiale, dans laquelle chaque pixel se voit attribuer un code couleur en fonction de sa classe sémantique pour générer des masques de segmentation. Le masque de segmentation n’est rien d’autre qu’une partie de l’image qui a été isolée des autres régions. Par exemple, la carte de segmentation d’un arbre dans un champ désert comporterait trois masques de segmentation : un pour l’arbre, un pour le sol et un pour le ciel en arrière-plan.
Pour ce faire, les modèles de segmentation sémantique s’appuient sur des réseaux neuronaux complexes qui leur permettent de regrouper avec précision les pixels connexes en masques de segmentation et d’identifier correctement la classe sémantique réelle de chaque groupe de pixels (ou segment). Ces méthodes d’apprentissage profond exigent un modèle qui soit entraîné sur des jeux de données volumineux, pré-étiquetés et annotés par l’humain pour ajuster ses pondérations et éliminer les biais grâce à des techniques de machine learning telles que la rétropropagation et la descente de gradient.
Les méthodes d’apprentissage profond ont fini par remplacer les algorithmes de machine learning « traditionnels » tels que les machines à vecteurs de supports (SVM) et Random Forest. Bien que leur entraînement requière plus de temps, de données et de ressources informatiques, les réseaux de neurones profonds s’avèrent plus efficaces que les autres méthodes. Au vu du succès rencontré par les premières innovations en la matière, ils se sont rapidement imposés comme premier choix.
Utilisation de jeux de données à des fins d’apprentissage
Pour être précise, la classification des données d’image requiert des jeux de données composés de valeurs de pixels qui représentent des masques correspondant aux différents objets ou aux étiquettes de classe contenus dans une image. Étant donné la complexité des données d’entraînement impliquées dans la segmentation d’image, ces types de jeux de données sont généralement plus volumineux et plus complexes que les autres jeux de données de machine learning.
Il existe une multitude de jeux de données de segmentation open source, couvrant un large éventail de classes sémantiques avec des milliers d’exemples et d’annotations détaillées pour chacune. Prenons l’exemple d’une tâche de segmentation qui vise à entraîner la vision par ordinateur d’une voiture autonome pour reconnaître tous les objets devant lesquels elle devra freiner, comme les piétons, les vélos et les autres véhicules. La vision par ordinateur de la voiture doit être entraînée pour tous les reconnaître systématiquement, sinon elle risquerait de ne pas demander à la voiture de freiner quand il le faut. Cet entraînement doit être extrêmement précis pour éviter également que la voiture ne freine constamment après avoir classé parmi les objets d’intérêt des éléments visuels non concernés.
Voici les principaux jeux de données open source utilisés dans la segmentation sémantique et la segmentation d’image :
Pascal Visual Object Classes (Pascal VOC) : le jeu de données Pascal VOC associe une multitude de classes d’objets, de boîtes de délimitation et de cartes de segmentation robustes.
MS COCO : MS COCO comporte environ 330 000 images et annotations pour la détection, la segmentation et le sous-titrage d’image, ainsi que d’autres tâches.
Cityscapes : très connu, Cityscapes interprète les données acquises dans un environnement urbain et compte 5 000 images, 20 000 annotations et 30 étiquettes de classe.
Modèles de segmentation sémantique
Pour fonctionner correctement, les modèles entraînés nécessitent une architecture robuste. Voici quelques modèles de segmentation sémantique largement utilisés.
Réseaux entièrement convolutifs (FCN)
Un réseau entièrement convolutif (FCN) est une architecture de réseau de neurones de pointe utilisée à des fins de segmentation sémantique, qui dépend de plusieurs couches connectées et convolutives. Les architectures de réseau de neurones convolutifs traditionnelles associent couches convolutives et couches plates qui génèrent des étiquettes uniques, tandis que les modèles de FCN remplacent certaines de ces couches plates par des blocs convolutifs 1x1, qui permettent d’extraire davantage d’informations concernant l’image. En remplaçant les couches plates et denses par des couches de convolution, de pooling ou de sur-échantillonnage, les réseaux FCN s’avèrent plus faciles à entraîner.
- Sur-échantillonnage et sous-échantillonnage : étant donné que le réseau regroupe davantage de couches convolutives, la taille de l’image est réduite, ce qui entraîne une diminution de la quantité d’informations spatiales et d’informations contenues dans les pixels. Indispensable, ce processus est connu sous le nom de sous-échantillonnage. À l’issue de ce processus, les ingénieurs de données optimisent les images. Pour ce faire, ils agrandissent, ou sur-échantillonnent, la carte des caractéristiques créée pour revenir à la forme de l’image en entrée.
- Max-pooling : il s’agit d’un autre outil indispensable pour extraire des informations à partir des différentes régions d’une image à des fins d’analyse. Le max-pooling choisit l’élément le plus important de la région analysée afin de produire une carte qui comporte les principales caractéristiques de la carte précédente.
U-Net
Introduite en 2015 pour modifier l’architecture FCN initiale, l’architecture U-Net améliore les résultats, et ce de façon constante. Elle est composée de deux parties, un encodeur et un décodeur. La partie encodeur empile les couches convolutives qui échantillonnent systématiquement l’image pour en extraire des informations, tandis que la partie décodeur reconstruit les caractéristiques de l’image grâce au processus de déconvolution. L’architecture U-Net est principalement utilisée dans le domaine médical pour détecter les tumeurs malignes ou bénignes des poumons et du cerveau.
- Connexions résiduelles : U-Net a révolutionné l’architecture FCN en introduisant les connexions résiduelles. Il s’agit de connecter la sortie d’une couche convolutive à une autre qui n’est pas adjacente. Ce processus permet de limiter les pertes de données lors du sous-échantillonnage et améliore la résolution des sorties. Chaque couche convolutive est échantillonnée séparément et combinée aux caractéristiques provenant d’autres couches de manière à ce que la sortie finale représente fidèlement l’image analysée.
DeepLab
Le modèle de segmentation sémantique DeepLab a été développé par Google en 2015 pour améliorer l’architecture FCN initiale, ainsi que la précision des résultats. Alors que les piles de couches des modèles FCN réduisent considérablement la résolution de l’image, l’architecture DeepLab sur-échantillonne les données grâce à un processus appelé convolution dilatée. Ce processus consiste à supprimer une partie des informations contenues dans l’image et à laisser des espaces entre les paramètres des noyaux de convolution.
L’approche de convolution dilatée adoptée par DeepLab permet d’extraire des données à partir d’un champ réceptif étendu, tout en conservant la même résolution. L’espace des caractéristiques est ensuite extrait à l’aide d’un algorithme de champs aléatoires conditionnels (CRF) entièrement connectés, afin que davantage de détails puissent être saisis et utilisés pour la fonction de perte par pixel, et que le masque de segmentation obtenu soit plus clair et plus précis.
Réseau d’analyse de scène pyramidale (PSPNet)
En 2017, un nouvel algorithme de segmentation d’image a été introduit. PSPNet déploie un module d’analyse pyramidale qui rassemble des jeux de données d’image contextuelles avec plus de précision que ses prédécesseurs. À l’instar de ces derniers, l’architecture PSPNet repose sur une approche de type encodeur-décodeur, mais là où DeepLab procède à une mise à l’échelle pour effectuer ses calculs pour chaque pixel, PSPNet ajoute une nouvelle couche de pooling pyramidal. L’agrégation multi-échelle permet à PSPNet de réunir davantage d’informations d’image à analyser que les autres modèles.