Qu'est-ce que la segmentation d'images ?
Découvrez IBM Maximo Visual Inspection
Graphisme de cadres en 3D

La segmentation d'image est une technique de vision par ordinateur qui divise une image numérique en groupes de pixels distincts (segments d'image) afin de faciliter la détection d'objets et les tâches connexes. En décomposant les données visuelles complexes d'une image en segments de forme spécifique, la segmentation d'image permet un traitement de l'image plus rapide et plus avancé.

Les techniques de segmentation d'image vont de l'analyse heuristique simple et intuitive à l'implémentation de pointe de l'apprentissage profond. Les algorithmes de segmentation d'image conventionnels traitent des caractéristiques visuelles de haut niveau de chaque pixel, telles que la couleur ou la luminosité, pour identifier les limites des objets et les régions d'arrière-plan. Le machine learning, qui s’appuie sur des ensembles de données annotés, est utilisé pour entraîner des modèles afin de classer avec précision les types spécifiques d’objets et de régions qu’une image contient.

La segmentation d'image est une méthode très polyvalente et très pratique de vision par ordinateur. Elle s'applique dans de nombreux cas d'utilisation de l'intelligence artificielle, depuis l'aide au diagnostic en imagerie médicale jusqu'à l'automatisation de la locomotion pour la robotique et les voitures sans conducteur, en passant par l'identification d'objets d'intérêt dans les images satellite.

Contenu connexe

Abonnez-vous à la newsletter IBM

Segmentation d'image, détection des objets et classification des images : comparaison

La segmentation d'image représente une évolution poussée de la classification des images et de la détection d'objets ; c'est aussi un ensemble distinct de capacités uniques de vision par ordinateur.

La classification des images applique une étiquette de classe à une image entière. Par exemple, un simple modèle de classification des images peut être formé pour catégoriser les images des véhicules comme « voiture » ou « camion ». Les systèmes de classification des images conventionnels sont généralement peu sophistiqués, car ils ne traitent pas séparément les caractéristiques d'image individuelles.

La détection d'objets associe la classification d'image et la localisation d'objets, en générant des régions rectangulaires, appelées « cadres de délimitation », dans lesquelles les objets sont situés. Ainsi, au lieu de simplement étiqueter une image de véhicule comme « voiture » ou « camion », un modèle de détection d'objets pourrait indiquer se trouvent la (les) voiture(s) ou le(s) camion(s) dans l'image. Bien que la détection d'objets puisse classer plusieurs éléments au sein d'une image et déterminer approximativement la largeur et la hauteur de chaque élément, elle ne peut pas discerner des formes ou des contours précis. Cela restreint la capacité des modèles conventionnels de détection d'objets à délimiter les objets très rapprochés avec des cadres de délimitation superposés.

La segmentation d'image traite les données visuelles au niveau du pixel, en utilisant diverses techniques pour annoter des pixels individuels comme appartenant à une classe ou une instance spécifique. Les techniques de segmentation d’image dites classiques déterminent les annotations en analysant les qualités inhérentes à chaque pixel (que l'on désigne comme « heuristiques ») telles que la couleur et l’intensité, tandis que les modèles d’apprentissage profond utilisent des réseaux neuronaux complexes pour une reconnaissance sophistiquée des formes. Les résultats de ce processus d'annotation sont des masques de segmentation, représentant la limite et la forme spécifiques, pixel par pixel, de chaque classe, ce qui correspond généralement à différents objets, entités ou régions au sein de l’image. 

D'une manière générale, la segmentation d'image est utilisée pour trois types de tâches : la segmentation sémantique, la segmentation d'instance et la segmentation panoptique.

Classes sémantiques : « choses » et « ensemble de choses »

La différence entre les divers types de segmentation d'image réside dans la façon dont ils traitent les classes sémantiques : les catégories spécifiques auxquelles il détermine qu'un pixel donné appartient.

Dans le langage de la vision par ordinateur, il existe deux types de classes sémantiques. Chacun se prête à différentes techniques pour une segmentation précise et efficace.

Les choses sont des classes d'objets aux formes caractéristiques, comme « voiture », « arbre » ou « personne ». En général, les choses ont des instances clairement définies que l'on peut compter. Leur taille varie relativement peu d'une instance à l'autre, ainsi que leurs éléments constitutifs distincts : par exemple, toutes les voitures ont des roues, mais une roue n'est pas une voiture.

Les ensembles font référence à des classes sémantiques de forme amorphe et de taille très variable, comme « ciel », « eau » ou « herbe ». En règle générale, les ensembles n'ont pas d'instances individuelles clairement définies et dénombrables. Contrairement aux choses, les ensembles n’ont pas de parties distinctes : un brin d’herbe et un champ d’herbe sont tous deux désignés par « herbe ».

Certaines classes, dans certaines conditions d'image, peuvent être à la fois des choses et des ensembles. Par exemple, un grand groupe de personnes peut être interprété comme plusieurs « personnes », chacune ayant une forme distincte et pouvant être comptée en tant que chose, ou comme une « foule » singulière et sans forme particulière.

Bien que la plupart des efforts de détection d'objets se concentrent principalement sur les classes d'objets, il est important de prendre en compte que les ensembles (ciel, murs, étages, sol) constituent la majeure partie de notre contexte visuel. Les ensembles constituent un point de données essentiel pour identifier des objets, et vice versa : une chose métallique sur une route est généralement une voiture ; le fond bleu derrière un bateau est probablement de l'eau, tandis que le fond bleu derrière un avion est probablement le ciel. Ceci est particulièrement important pour les modèles d’apprentissage profond.

Segmentation sémantique

La segmentation sémantique est le type de segmentation d'image le plus simple. Un modèle de segmentation sémantique attribue une classe sémantique à chaque pixel, mais ne génère aucun autre contexte ni aucune information (comme les objets).

La segmentation sémantique traite tous les pixels comme des ensembles; elle ne fait aucune différence entre des ensembles et des choses.

Ainsi, un modèle de segmentation sémantique conçu pour identifier certaines classes dans une rue de la ville produirait des masques de segmentation indiquant les limites et les contours de chaque catégorie pertinente de choses (véhicules, lampadaires) et d'ensembles (routes, trottoirs), sans faire de distinction entre les instances multiples de la même classe ni les décompter. Par exemple, les voitures garées l'une devant l'autre peuvent être simplement traitées comme un long segment « voiture ».

Segmentation d'instance

La segmentation d'instance inverse les priorités de la segmentation sémantique : alors que les algorithmes de segmentation sémantique prédisent uniquement la classification sémantique de chaque pixel (sans tenir compte des instances individuelles), la segmentation d'instance, elle, délimite la forme exacte de chaque instance d'objet distincte.

La segmentation d'instance isole les choses des ensembles (qu'elle ignore) et peut donc être comprise comme une forme très évoluée de détection d'objets, qui génère un masque de segmentation précis au lieu d'un cadre de délimitation approximatif.

C'est une tâche plus difficile que la segmentation sémantique : même lorsque des éléments de la même classe se touchent ou se chevauchent, les modèles de segmentation d'instance doivent être capables de les séparer et de déterminer leur forme, alors que la segmentation sémantique peut se contenter de les regrouper. Prenons par exemple la façon dont les deux modèles différents traitent les voitures garées dans cette image de la rue d'une ville.

Les algorithmes de segmentation d'instance adoptent généralement une approche du problème en deux étapes ou one-shot. Les modèles en deux étapes, comme les réseaux neuronaux convolutifs basés sur la région (R-CNN), effectuent une détection d'objets conventionnelle pour générer des cadres de délimitation pour chaque instance proposée, puis effectuent une segmentation et une classification plus affinées au sein de chaque cadre de délimitation. Les modèles ponctuels, comme YOLO (You Only Look Once), réalisent une segmentation d'instance en temps réel en effectuant simultanément la détection, la classification et la segmentation des objets.

Les approches one-shot sont plus rapides (mais un peu moins précises), tandis que les approches en deux étapes offrent une plus grande précision (mais sont moins rapides).

Segmentation panoptique

Les modèles de segmentation panoptique déterminent à la fois la classification sémantique de tous les pixels et différencient chaque instance d'objet au sein d'une même une image, combinant les avantages de la segmentation sémantique et d'instance.

Dans une tâche de segmentation panoptique, chaque pixel doit se voir attribuer à la fois une étiquette sémantique et un « ID d'instance ». Les pixels partageant le même libellé et le même ID appartiennent au même objet ; pour les pixels déterminés comme ensembles, l'ID d'instance est ignoré.

La segmentation panoptique fournit ainsi aux systèmes de vision par ordinateur une compréhension globale et exhaustive d'une image donnée. Bien qu'il soit tentant de l'utiliser, réaliser une segmentation panoptique de manière cohérente et efficace sur le plan informatique constitue un défi de taille.

La difficulté réside dans l'unification de deux méthodologies contradictoires : les modèles de segmentation sémantique traitent tous les pixels comme des ensembles, en ignorant les instances individuelles de choses ; de leur côté, les modèles de segmentation isolent les choses individuelles, ignorant les ensembles. Aucun type de modèle ne peut correctement absorber les responsabilités de l'autre.

Les premières tentatives de modèles de segmentation panoptique ont simplement combiné les deux modèles, en effectuant chaque tâche séparément, puis en combinant leur résultat dans une phase de post-traitement. Cette approche présente deux inconvénients majeurs : elle nécessite beaucoup de temps de calcul et a du mal à résoudre les écarts entre les points de données produits par le réseau de segmentation sémantique et les points de données générés par le réseau de segmentation d'instance.

Les nouvelles architectures de segmentation panoptiques visent à éviter ces inconvénients grâce à une approche plus unifiée de l'apprentissage profond. La plupart d'entre elles reposent sur un réseau « principal », tel qu'un réseau pyramidal de caractéristiques (FPN), qui extrait les caractéristiques de l'image d'entrée, introduit ces données extraites dans des branches parallèles — par exemple une « branche de premier plan » et une « branche d'arrière-plan » ou une « tête sémantique » et une « tête d'instance », puis fusionne les résultats de chaque branche à l'aide d'un système de pondération. Les architectures panoptiques proposées comprennent EfficientPS, OANet, PanopticFPN, UPSNet, SOGNet, BGRNet, AUNet, FPSNet et SpatialFlow.

Techniques traditionnelles de segmentation d'image

Les techniques traditionnelles de segmentation d'image utilisent les informations provenant des valeurs de couleur d'un pixel (et des caractéristiques associées telles que la luminosité, le contraste ou l'intensité) afin d'extraire les caractéristiques. Elles peuvent être rapidement entraînées à l'aide d'algorithmes de machine learning simples pour des tâches telles que la classification sémantique.

Si les méthodes de segmentation basées sur l'apprentissage profond sont capables d'une plus grande précision et d'une analyse d'image plus sophistiquée, en particulier les tâches comme la segmentation panoptique qui nécessitent beaucoup d'informations contextuelles, les méthodes traditionnelles sont beaucoup moins coûteuses et exigeantes en termes de calcul, et peuvent résoudre certains problèmes de manière plus efficace.

Les techniques les plus répandues de segmentation d'images traditionnelles (dites « classiques ») comprennent :

  • Le seuillage : les méthodes de seuillage créent des images binaires en classant les pixels selon que leur intensité est supérieure ou inférieure à une « valeur seuil » donnée. La méthode d'Otsu est souvent utilisée pour déterminer la valeur seuil qui minimise la variation intra-classe.
  • Les histogrammes : les histogrammes, qui proposent un diagramme de la fréquence de certaines valeurs de pixel dans une image, sont souvent utilisés pour définir des seuils. Par exemple, ils peuvent déduire les valeurs des pixels d'arrière-plan, ce qui permet d'isoler les pixels des objets.
  • La détection des arêtes : les méthodes de détection des arêtes identifient les contours des objets ou des classes en détectant les variations de luminosité ou de contraste.
  • La ligne de partage des eaux : les algorithmes de partage des eaux transforment les images en niveaux de gris, puis génèrent une carte topographique dans laquelle « l'élévation » de chaque pixel est déterminée par sa luminosité. Les régions, les contours et les objets peuvent être déduits de la forme des « vallées », des « crêtes » et des « bassins versants ».
  • La segmentation par régions : en commençant par un ou plusieurs « pixels de départ », les algorithmes de création des régions regroupent les pixels voisins présentant des caractéristiques similaires. Les algorithmes peuvent être agglomérants ou diviseurs.
  • La segmentation par regroupement : les algorithmes de regroupement sont une méthode d'apprentissage non supervisé qui consiste à diviser les données visuelles en grappes de pixels présentant des valeurs similaires. Une variante commune est le regroupement par K-moyennes, dans laquelle K représente le nombre de grappes : les valeurs de pixel sont exprimées sous forme de points de données, et des points aléatoires K sont sélectionnés comme centre d'une grappe (et appelés « centroïdes »). Chaque pixel est attribué à un groupe en fonction du centroïde le plus proche, c'est-à-dire le plus similaire. Les centroïdes sont ensuite déplacés vers la moyenne de chaque grappe et le processus est répété, en déplaçant les centroïdes à chaque itération jusqu'à ce que les grappes soient stabilisées. Le processus est expliqué sous forme visuelle ici (lien externe à ibm.com).
Modèles de segmentation d'image par apprentissage profond

Entraînés sur un ensemble d’images annotées, les réseaux neuronaux des modèles de segmentation d’image par apprentissage profond peuvent découvrir des modèles sous-jacents dans les données visuelles et discerner les caractéristiques saillantes les plus pertinentes pour la classification, la détection et la segmentation.

Malgré les compromis en termes d'exigences informatiques et de temps d'apprentissage, les modèles d'apprentissage profond sont toujours plus performants que les modèles traditionnels et constituent la base de la plupart des progrès actuels dans le domaine de la vision par ordinateur.

Les modèles d'apprentissage profond les plus importants utilisés dans la segmentation d'image sont les suivants :

  • Les réseaux entièrement convolutifs (FCN) : les FCN sont souvent utilisés pour la segmentation sémantique et sont un type de réseau neuronal convolutif (CNN) sans couche fixe. Un réseau d'encodeurs fait passer les données visuelles d'entrée à travers des couches convolutives afin d'extraire les caractéristiques pertinentes pour la segmentation ou la classification, et compresse (ou sous-échantillonne) ces caractéristiques pour supprimer les informations non essentielles. Ces données compressées sont ensuite introduites dans des couches de décodeurs , en sur-échantillonnant les caractéristiques extraites pour reconstruire l'image d'entrée à l'aide de masques de segmentation.
  • Les réseaux U-Net : ils modifient l'architecture des FCN afin de réduire la perte de données lors du sous-échantillonnage grâce à des connexions résiduelles, préservant davantage de détails en contournant de manière sélective certaines couches convolutives à mesure que les informations et les gradients se déplacent à travers le réseau neuronal. Leur nom vient de la forme des diagrammes démontrant l'agencement des couches.
  • Deeplab : tout comme les U-Nets, Deeplab est une architecture FCN modifiée. En plus des connexions résiduelles, il utilise une convolution dilatée (dite « à trous ») pour générer des cartes de sortie plus grandes sans nécessiter de puissance de calcul supplémentaire.
  • Les Mask R-CNN : il s'agit d'un modèle leader en matière de segmentation d'instance. Les Mask R-CNN associent d'une part un réseau de proposition de région (RPN) qui génère des cadres de délimitation pour chaque instance potentielle, et d'autre part une « tête de masque » basée sur le FCN qui génère des masques de segmentation dans chaque cadre de délimitation confirmé.
Jeux de données d'entraînement pour les modèles d'apprentissage profond

Afin de cartographier les contours des segments d'image, mais également de prédire quel ensemble ou quelle chose représente chaque segment, les modèles d'apprentissage profond sont entraînés sur de grands ensembles de données annotés afin de reconnaître des classes sémantiques spécifiques. À partir de ces images pré-étiquetées, les modèles d'apprentissage profond déduisent les modèles et les valeurs de pixel typiques pour chaque étiquette.

Des tâches différentes nécessitent des données d'entraînement différentes : un système de vision par ordinateur pour voitures sans conducteur est formé sur des images étiquetées à l'aide de classes sémantiques telles que « personne », « voiture », « voie » et « arrêt », tandis que les modèles d'imagerie médicale nécessitent une optimisation des classes spécifiques de tissus physiques, de tumeurs ou d'autres pathologies.

Les ensembles de données d'entraînement doivent être soigneusement pré-étiquetés par des experts humains, ce qui peut être extrêmement laborieux. La plupart des modèles de segmentation d'image utilisent de grands ensembles de données open source. Ces ensembles de données publics servent également de « vérité terrain » lors de l'évaluation du succès des modèles entraînés : les indicateurs de performance sont souvent exprimés en pourcentage des résultats correspondant avec précision aux annotations de l'ensemble de données d'entraînement.

Les jeux de données d'entraînement les plus populaires pour les modèles de segmentation des images par apprentissage profond sont les suivants :

  • COCO (Common Objects in Context) : un jeu de données à grande échelle contenant plus de 330 000 images avec des segments annotés dans 80 catégories de choses et 91 catégories d'ensembles.
  • ADE20K : un jeu de données de segmentation de scènes créé par le MIT, contenant plus de 20000 et plus de 150 classes sémantiques.
  • Cityscapes : un jeu de données à grande échelle axé sur les rues des villes. Ses données ont été capturées dans 50 villes à divers jours et périodes de l'année et dans diverses conditions météorologiques.
Cas d'utilisation de la segmentation d'images

La segmentation d'image est devenue un outil essentiel dans de nombreux domaines.

  • Imagerie médicale : la segmentation d’image a de nombreuses applications dans les domaines de la radiographie, de l’imagerie par résonance magnétique (IRM), de l'échographie et de la tomodensitométrie (TDM). Elle permet de faciliter des tâches comme la détection de tumeurs, la segmentation du cerveau, le diagnostic de maladies et la planification chirurgicale.
  • Véhicules sans conducteur : la segmentation des images permet aux voitures sans conducteur d'éviter les obstacles tels que les piétons et les autres voitures, ainsi que d'identifier les voies et les panneaux de signalisation. Elle est également utilisée pour informer la navigation dans la robotique.
  • Imagerie satellite : la segmentation sémantique et la segmentation d'instance permettent d'automatiser l’identification de différents terrains et caractéristiques topographiques.
  • Villes intelligentes : la segmentation des images alimente des tâches telles que la surveillance et la gestion du trafic en temps réel.
  • Industrie : en plus d'alimenter les tâches robotiques, la segmentation d'image alimente le tri des produits et la détection des défauts.
  • Agriculture : la segmentation d'image aide les agriculteurs à estimer les rendements des cultures et à détecter les mauvaises herbes à enlever.
Solutions connexes
IBM Maximo Visual Inspection

Exploitez la puissance de la vision par ordinateur sans code pour une inspection visuelle automatisée grâce à un ensemble d'outils intuitifs permettant l'étiquetage, l'entraînement et le déploiement de modèles de vision par intelligence artificielle.

Découvrez IBM Maximo Visual Inspection

Ressources pour la segmentation d'image IBM Research : vision par ordinateur

Les systèmes modernes de vision par ordinateur font preuve d'une précision inégalée en matière de reconnaissance et d'analyse d'images, mais ils ne comprennent pas vraiment ce qu'ils voient. Chez IBM Research, nous concevons des systèmes d'IA capables de voir le monde comme nous.

Introduction à la vision par ordinateur et au traitement de l'image

Ce cours adapté aux débutants vous aidera à comprendre la vision par ordinateur et ses diverses applications dans de nombreux secteurs. Dans le cadre de ce cours, vous utiliserez Python, Pillow et OpenCV pour le traitement d'image de base, la classification des images et la détection d'objets.

Premiers pas avec IBM Maximo Visual Inspection

Lancez-vous avec IBM Maximo Visual Inspection afin de créer et d'entraîner des modèles basés sur l'IA pour inspecter vos actifs et vos produits, et identifiez les défauts qui peuvent poser des problèmes en matière de production et de qualité.

Passez à l’étape suivante

Exploitez la puissance de la vision par ordinateur sans code pour une inspection visuelle automatisée avec IBM Maximo Visual Inspection, un ensemble d'outils intuitifs permettant l'étiquetage, l'entraînement et le déploiement de modèles de vision par intelligence artificielle.

Découvrez IBM Maximo Visual Inspection Regarder la démo MVI