Segmentation d'image

La segmentation d’images

La segmentation d’images est une technique couramment utilisée dans le traitement et l'analyse d'images afin de diviser une image en plusieurs parties ou régions, souvent en fonction des caractéristiques des pixels de l'image. La segmentation d’images peut impliquer de séparer l'arrière-plan du premier plan, ou d'effectuer un clustering des régions de pixels en fonction de leurs similarités en termes de couleur ou de forme. Par exemple, dans le domaine de l'imagerie médicale, la segmentation d’images est couramment utilisée pour détecter et labelliser les pixels d'une image ou les voxels d'un volume 3D, qui représentent une tumeur dans le cerveau ou dans d'autres organes d'un patient.

Importance de la segmentation d’images

Plusieurs algorithmes et techniques de segmentation d’images ont été développés dans le but de résoudre efficacement les problèmes de segmentation en utilisant des connaissances spécifiques au domaine. Ces applications concernent, notamment, l'imagerie médicale, la conduite autonome, la vidéosurveillance et la vision industrielle.

Imagerie médicale

La segmentation et l'analyse jouent un rôle important dans le diagnostic clinique, la planification des traitements et la recherche médicale. Utilisez la segmentation pour labelliser et analyser des organes, des tumeurs, des cellules, des implants et d'autres régions d'intérêt. Par exemple, vous pouvez utiliser la radiomique afin de classer une tumeur comme cancéreuse ou bénigne, puis mesurer la croissance de la tumeur lors des scanners de suivi. Vous pouvez également suivre la position et la morphologie des cellules dans des images de microscopie segmentées, ou analyser la densité osseuse lors d'un essai pharmaceutique. Les masques de segmentation peuvent également être utilisés afin de générer des modèles anatomiques en 3D pour des applications comme l'impression 3D ou l'analyse par éléments finis, qui sont utiles pour la planification chirurgicale spécifique au patient.

Segmentation d’images dans Medical Imaging Toolbox illustrée avec l'application d'une surbrillance colorée pour identifier des segments.

Exemples de segmentation à l’aide de Medical Imaging Toolbox™, comprenant (dans le sens des aiguilles d'une montre à partir du coin supérieur gauche) des poumons sur un tomodensitogramme, un cerveau sur une IRM, des cellules sur une image de microscopie et un ventricule gauche sur une IRM cardiaque.

Conduite autonome

Lors du design de la perception des véhicules autonomes, comme par exemple les voitures autonomes, la segmentation sémantique est souvent appliquée pour permettre au système d'identifier et de situer des véhicules ainsi que d'autres objets sur la route.

Exemple de segmentation d’images montrant la photo d'une voiture sur une autoroute ; à côté, la même photo avec une surbrillance colorée est appliquée pour identifier des segments.

Utilisation de la segmentation sémantique dans Computer Vision Toolbox™ afin d'associer chaque pixel de l'image à une étiquette de classe (comme voiture, route, ciel, piéton ou vélo). (Consulter la documentation.)

Fonctionnement de la segmentation d’images

La première étape de la segmentation d’images consiste à convertir l'image en un ensemble de régions de pixels qui sont représentés par un masque ou par une image labellisée. En divisant une image en segments, vous pouvez sélectionner puis traiter uniquement les segments importants de l'image, au lieu de traiter l'image dans son intégralité.

Parmi les techniques courantes, on trouve la recherche de discontinuités brutes dans les valeurs de pixels ; cela indique généralement les contours qui définissent une région.

Deux images côte-à-côte montrant la même page qui contient plusieurs paragraphes de texte. L'image de gauche contient des zones foncées et illisibles. À droite, sur l'image traitée, la lisibilité est améliorée.

Utilisation de la fonction adaptthresh dans Image Processing Toolbox pour le seuillage d'image adaptatif. La conversion en image binaire améliore la lisibilité du texte dans une image. (Voir le code MATLAB.)

Parmi les approches courantes, on trouve également la détection de similarités dans les régions d'une image. Dans les techniques qui utilisent cette approche, on retrouve la croissance de région, le clustering et le seuillage.

Trois exemples illustrant l'utilisation de la segmentation d’images pour identifier des régions, avec des comparaisons côte-à-côte de l'image d'origine et des images segmentées.

Segmentation des régions en fonction des valeurs de couleurs, des formes ou de la texture à l'aide d'Image Processing Toolbox. (Consulter la documentation.)

Segmentation d’images avec MATLAB

Avec MATLAB®, vous pouvez :

  • Utiliser des applications pour explorer différentes techniques de segmentation de manière interactive
  • Simplifier les workflows d'analyse d'image à l'aide d'algorithmes de segmentation d’images intégrés
  • Utiliser le Deep Learning pour la segmentation d’images

Utiliser des applications pour effectuer le seuillage des images de manière interactive

Application Image Segmenter

Vous pouvez utiliser l'application interactive Image Segmenter afin d'essayer plusieurs méthodes de segmentation d’images de manière itérative pour atteindre le résultat escompté. Par exemple, vous pouvez utiliser l'application pour segmenter et affiner davantage les images d'une voiture.

Capture d'écran illustrant l'utilisation de l'application MATLAB Image Segmenter pour identifier la carrosserie d'une voiture sur une photo de parking.

Utilisation de l'application Image Segmenter pour appliquer différentes techniques de segmentation de manière interactive.

Application Color Thresholder

L'application Color Thresholder vous permet d'appliquer un seuillage aux images couleur en manipulant la couleur des images de manière interactive, en fonction des différents espaces de colorimétriques. Par exemple, avec l'application Color Thresholder, vous pouvez créer un masque binaire à l'aide de contrôles en nuages de points pour une image couleur.

Utilisation de l'application Color Thresholder pour appliquer une segmentation des couleurs afin de séparer les oiseaux au premier plan de l'arrière-plan.

Utilisation d’une variété de techniques de segmentation d'images

Grâce aux fonctions de MATLAB et d’ Image Processing Toolbox™, vous pouvez développer une expertise dans différentes techniques de segmentation d’images, comprenant par exemple le seuillage, le clustering, la segmentation basée sur les graphes et la croissance de région, ainsi que dans les techniques de Deep Learning, comme le Segment Anything Model.

Seuillage

Pour créer une image binaire, vous pouvez utiliser la fonction imbinarize pour effectuer le seuillage d'une image 2D ou 3D en niveaux de gris. Pour produire une image binaire depuis une image couleur en RGB, utilisez la fonction rgb2gray pour la convertir en une image en niveaux de gris.

Capture d'écran illustrant la comparaison avec côte-à-côte une image couleur d'origine et une image binaire convertie.

Utilisation de la fonction imbinarize dans Image Processing Toolbox pour convertir une image couleur en une image binaire. (Voir le code MATLAB.)

Clustering

Cette technique vous permet de créer une image segmentée labellisée à l'aide d'un algorithme de clustering spécifique. La fonction imsegkmeans, qui utilise la segmentation basée sur le clustering k-means, segmente une image en clusters au sein d'un espace de couleur.

Capture d'écran montrant une comparaison avec côte-à-côte l'image d'origine d'un chien brun clair sur un sol en carrelage noir et blanc et l'image traitée montrant les segments mis en évidence.

Utilisation d'une technique de clustering k-means imsegkmeans afin de séparer le sol à motifs en arrière-plan. (Voir le code MATLAB.)

Segmentation basée sur les graphes

Les techniques de segmentation basées sur les graphes telles que le lazy snapping vous permettent de segmenter une image en régions de premier plan et d'arrière-plan. MATLAB vous permet d'effectuer cette segmentation sur une image de manière programmatique (lazysnapping) ou de manière interactive, à l'aide de l'application Image Segmenter.

Capture d'écran montrant une comparaison avec côte-à-côte une image d'origine de légumes sur un tissu violet et une image traitée dans laquelle le tissu (arrière-plan) a été retiré.

Utilisation de la fonction lazysnapping dans Image Processing Toolbox pour séparer les régions de premier plan et d'arrière-plan. (Voir le code MATLAB.)

Capture d'écran montrant l'utilisation de l'application Image Segmenter afin de retirer un objet du premier plan.

Utilisation de l'application Image Segmenter dans Image Processing Toolbox afin d'appliquer la segmentation basée sur les graphes de manière interactive.

Croissance de région

La croissance de région est une méthode simple de segmentation d’images basée sur les régions (également classifiée comme basée sur les pixels). L'algorithme activecontour est couramment utilisé : il examine les pixels avoisinants un point de départ et détermine de manière itérative si les pixels voisins doivent être ajoutés à la région. Vous pouvez également effectuer cette segmentation sur des images en utilisant l'application Image Segmenter.

Utilisation de l'application Image Segmenter pour effectuer une croissance de région.

Le Deep Learning pour la segmentation d’images

Grâce à l'utilisation de réseaux de neurones à convolution (CNN), une technique de Deep Learning appelée segmentation sémantique vous permet d'associer chaque pixel d'une image à une étiquette de classe. Parmi les applications de la segmentation sémantique, on retrouve la conduite autonome, l'inspection industrielle, la robotique, l'imagerie médicale et l'analyse d'images satellite. Pour en savoir plus, consultez l'exemple Segmentation sémantique avec le Deep Learning.

Représentation visuelle d'une image parcourant le réseau de gauche à droite afin d'effectuer la segmentation d’images.

Schéma de la technique de segmentation sémantique.

Vous pouvez concevoir et entraîner des réseaux de segmentation sémantique à l'aide d'une collection d'images et de leurs images labellisées correspondantes, puis utiliser les réseaux entraînés afin de labelliser de nouvelles images. Pour labelliser les images d'apprentissage, vous pouvez utiliser les applications Image Labeler, Video Labeler ou Ground Truth Labeler.

Capture d'écran de l'application Image Labeler dans Image Processing Toolbox, avec des étiquettes pour chaque segment mis en évidence dans l'image segmentée.

Utilisation de l'application Image Labeler pour effectuer une segmentation sémantique.

Ressources

Développez vos connaissances grâce à la documentation, aux exemples, aux vidéos et plus encore.