La segmentation sémantique est une tâche de vision par ordinateur qui s’appuie sur un algorithme d’apprentissage profond afin de classer chaque pixel en lui associant une étiquette. Il s’agit de l’une des trois sous-catégories du processus de segmentation d’image, qui permet aux ordinateurs de comprendre les informations visuelles. La segmentation sémantique identifie les ensembles de pixels et les classe en fonction de différentes caractéristiques. Les deux autres sous-catégories de la segmentation d’image sont la segmentation d’instance et la segmentation panoptique.
La segmentation d’image est un processus d’analyse d’image de bout en bout qui consiste à diviser une image numérique en plusieurs segments et à classer les informations contenues dans chaque région. Lors des trois types de tâches de segmentation d’image (segmentation sémantique, d’instance et panoptique), on attribue une étiquette à chaque pixel de l’image afin de délimiter les contours et la forme des différents objets et régions de l’image. Leur classement se fait selon divers critères : couleur, contraste, position dans l’image, etc.
La segmentation sémantique associe une étiquette à chaque pixel contenu dans une image selon sa classe sémantique, tandis la segmentation d’instance et la segmentation panoptique sont utilisées à des fin de classification différentes. Les modèles de segmentation d’instance se concentrent uniquement sur les classes sémantiques que l’on peut compter dans une image (entités et objets tels que les personnes, les animaux, les arbres, les voitures ou encore les hydrants). Ces modèles détectent chaque objet, ou instance, puis ils génèrent un masque de segmentation et une étiquette d’identification qu’ils lui attribuent. Les modèles de segmentation panoptique combinent les deux types d’informations : en plus de procéder à une segmentation sémantique, ils détectent et segmentent chaque instance d’objet. Ils attribuent à chaque pixel une étiquette sémantique, mais aussi un identifiant d’instance unique (le cas échéant).
Découvrez comment faire évoluer les charges de travail d’IA pour toutes vos données, partout.
Abonnez-vous à la newsletter IBM
Les tâches de segmentation sémantique permettent aux machines de distinguer les différentes classes d’objets et régions d’arrière-plan dans une image. Avec l’essor de l’intelligence artificielle (IA) et du machine learning (ML), la segmentation d’image et la création de cartes permettent d’entraîner les ordinateurs à comprendre le contexte des images numériques telles que les paysages, les photos représentant des personnes, l’imagerie médicale et bien plus encore.
Les modèles d’apprentissage conçus pour la segmentation d’image permettent aux machines de traiter l’information visuelle de la même manière que le cerveau humain. Bien que les modèles de segmentation d’image et les modèles de détection d’objets aient quelques usages en commun, un aspect important les différencie. En effet, pour identifier les différentes entités contenues dans une image, la segmentation d’image se concentre sur les pixels au lieu d’approximer l’information à l’aide d’une boîte de délimitation. En gros, sachant que les modèles de classification d’image déterminent ce que contient l’image (sans procéder à une localisation), et que les modèles de détection d’objets déterminent la position de l’objet dans l’image, seuls les modèles de segmentation d’image sont capables de déterminer la forme et les contours des entités dans une image.1
Grâce à l’efficacité des algorithmes d’apprentissage profond qui les aident à interpréter les images comme des données, les machines identifient de mieux en mieux les objets. Alors que la classification leur permet de comprendre quelles informations sont contenues dans une image, la segmentation sémantique aident les machines à identifier l’emplacement précis des différents types d’informations visuelles et à déterminer où commence et où se termine chaque unité.
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.
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.
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.
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.
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.
Les voitures autonomes s’appuient sur la segmentation sémantique pour voir le monde qui les entoure et réagir en temps réel. La segmentation sémantique consiste à diviser en régions et à classer ce que voit le voiture, comme les voies de circulation, les autres véhicules et les intersections. Grâce aux informations qui lui sont fournies par le biais de la segmentation sémantique, la voiture peut circuler en toute sécurité et arriver à destination. En effet, le véhicule est capable de réagir face aux événements inattendus (par exemple, un piéton qui traverse la route ou un autre véhicule qui freine brusquement).
Bon nombre de procédures médicales courantes telles que le scanner, la radiographie et l’IRM, reposent sur l’analyse d’image. Alors que ce type de tâche est traditionnellement réalisé par un professionnel de santé, les modèles de segmentation en imagerie médicale obtiennent aujourd’hui des résultats similaires. En analysant l’image et en traçant avec précision le contour des différents objets qu’elle contient, l’IA équipée d’une fonctionnalité de segmentation sémantique permet de détecter les anomalies et même de suggérer des diagnostics.
En agriculture, l’IA, l’automatisation et la segmentation sémantique sont utilisées pour détecter les signes d’infestation dans les cultures, et même pour automatiser la pulvérisation des pesticides. La vision par ordinateur indique à l’agriculteur les parties du champ infectées ou à risque, tandis que les systèmes automatisés prennent les mesures nécessaires pour éliminer les ravageurs.
La segmentation sémantique est souvent utilisée pour permettre aux appareils photo de passer du mode portrait au mode paysage, pour ajouter ou supprimer un filtre ou encore pour créer un effet. Les filtres et les fonctionnalités les plus utilisés dans les applications comme Instagram et TikTok s’appuient sur la segmentation sémantique pour identifier les différents objets (voitures, bâtiments, animaux, etc.) et permettre l’application des filtres ou des effets sélectionnés.
La segmentation sémantique et la segmentation d’image jouent un rôle essentiel dans le traitement d’image lié aux charges de travail optimisées par l’IA. IBM watsonx.data associe plusieurs outils et technologies IA open source aux innovations d’IBM Research pour doter les entreprises modernes de workflows d’IA robustes et efficaces.
Découvrez IBM watsonx.data, un entrepôt de données conçu pour permettre aux entreprises d’unifier et de gouverner leurs données structurées et non structurées.
Découvrez comment IBM watsonx.data permet aux entreprises de faire face à la complexité du paysage des données actuel et de faire évoluer l’IA selon leurs besoins.
Découvrez comment organiser l’information et générer des résultats au sein d’un environnement informatique grâce à l’IA.
Découvrez les différences entre les principales technologies utilisées pour apprendre aux ordinateurs à comprendre et à traiter l’information visuelle.
1« Practical Machine Learning for Computer Vision » (lien externe à ibm.com), Lakshmanan, Valliappa, Gorner, Martin et Gillard, Ryan, O’Reilly Media, juillet 2021