Méthodes numériques pour le traitement d’images

Cours 4 : Segmentation d’images (1/2)

Emmanuel Caruyer

2023-2024, L3 SIF (ENS Rennes, Université de Rennes)

Introduction

La segmentation d’une image \(f[x, y]\) correspond au découpage de l’image en un ensemble (fini) de \(k\) zones connexes, qui correspondent aux constituants ou objets présents dans l’image.

On associe généralement une étiquette (ou label en anglais) à chaque zone. La tâche qui consiste à ajouter une sémantique à ce découpage, c’est-à-dire à nommer les objets, s’appelle la reconnaissance ; le cours d’aujourd’hui ne se consacre qu’à la segmentation, c’est-à-dire au découpage.

Exemple d’application 1 : découpage de l’arrière-plan

Une image (source : Adonis annua, ) et la segmentation du premier plan

Le découpage de l’arrière-plan d’une image peut être utile pour :

Exemple d’application 2 : découpage des objets dans une scène

Une scène prise depuis une voiture et la segmentation sémantique de la scène (source : Cityscapes dataset)

Le découpage sémantique, ici appliqué à la reconnaissance d’objets sur une route. NB : ici les objets d’une même classe ont été regroupés ; les zones ne sont donc plus forcément connexes.

Les applications sont nombreuses :

Exemples d’application 3 : imagerie biomédicale (1/2)

Une image IRM (à gauche), sa segmentation en zones anatomiques (au centre) et rendu 3d des différentes zones (à droite). Source : plateforme Neurinfo, segmentation réalisée à l’aide de l’atlas de Desikan-Kelliany et le logiciel Freesurfer

En imagerie médicale, la segmentation d’une image peut avoir plusieurs applications :

Exemples d’application 3 : imagerie biomédicale (2/2)

Axones vues au microscopie électronique à balayage (ligne du haut) et segmentation de la gaine de myéline (en rouge) et de l’intérieur de l’axone (en bleu) (ligne du bas). Image reproduite de (Zaimi et al, 2018)

En microscopie, la segmentation peut permettre de

Méthodes

Le principe d’un algorithme de segmentation se base sur deux propriétés naturelles des images et des objets qu’elle contient :

On va aborder deux techniques qui exploitent respectivement ces deux propriétés pour segmenter un objet dans une image.

Regroupement par intensité : Méthode des \(k\)-moyennes (1/4)

Segmentation d’une image avec la méthode des \(k\)-moyennes. Image originale dont on souhaite segmenter l’inflorescence au premier plan (à gauche - source : Taraxacum campylodes, Plantnet). Nuage de point représentant les couleurs présentes dans l’image (au centre), chaque point représente un des pixels de l’image, dans le repère 3d (rouge, vert, bleu) ; l’algorithme des \(k\)-moyennes (ici \(k = 2\)) cherche à trouver un hyperplan qui sépare de façon optimale les deux classes. Segmentation résultant de la partition des couleurs avec l’algorithme des \(k\)-moyennes (à droite)

Regroupement par intensité : Méthode des \(k\)-moyennes (2/4)

La méthode des \(k\)-moyennes est une méthode « globale », qui cherche à partitionner les pixels de l’image en \(k\) sous-ensembles uniquement en fonction des valeurs prise par l’image sur ces pixels. La partition essaie de minimiser la somme des variances à l’intérieur de chacune des \(k\) classes. Si on note \(\mathcal{S} = \{\mathcal{S}_i, i = 1\ldots k\}\) une partition de l’image, on cherche à minimiser

\[ \sum_i \sum_{(x,y)\in \mathcal{S}_i} ||f[x, y] - \mathbf{\mu}_i ||^2, \qquad\text{où les centroïdes sont définis par } \mathbf{\mu}_i = \frac{1}{|\mathcal{S}_i|} \sum_{(x,y)\in \mathcal{S}_i} f[x, y]. \]

L’image peut être à valeurs vectorielles, par exemple pour une image couleur ; c’est pour cette raison qu’on utilise une norme \(||\cdot||\). On remarque que dans le critère qu’on cherche à optimiser, il n’y a aucune référence à la position des pixels dans l’image.

Regroupement par intensité : Méthode des \(k\)-moyennes (3/4)

L’algorithme classique des \(k\)-moyennes, aussi algorithme de Lloyd, est un algorithme itératif. Il démarre par une étape d’initialisation, où un centroïde pour chaque classe \(i \in \{1, \ldots, k\}\) est choisi aléatoirement ; puis l’algorithme alterne entre les deux étapes suivantes jusqu’à convergence :

Pour plus de détails sur cette méthode, on pourra se reporter à la description de l’algorithme sur Wikipédia.

Regroupement par intensité : Méthode des \(k\)-moyennes (4/4)

Cette méthode est simple, mais comporte un certain nombre de limites pour la segmentation d’images.

Méthodes basées sur les contours

Intuitivement, le contour d’un objet dans une image correspond à une zone de discontinuité de la fonction \(f\). On présente dans la suite une méthode qui permet de détecter les contours dans une image de manière

Détection des contours

Pour localiser les discontinuités de la fonction \(f\), on va s’intéresser aux variations de \(f\), en particulier au gradient \(\nabla f\) dont on rappelle la définition \[ \nabla f(x, y) = \left[ \begin{array}{c} \partial f/\partial x\\ \partial f/\partial y \end{array} \right]. \]

L’objectif du TP5 est d’implémenter le Détecteur de contour de Canny [2], qui se base sur un calcul du gradient et une méthode de seuillage intelligente.

References

  1. Zaimi, A., Wabartha, M., Herman, V., Antonsanti, P. L., Perone, C. S., & Cohen-Adad, J. (2018). AxonDeepSeg: automatic axon and myelin segmentation from microscopy data using convolutional neural networks. Scientific reports, 8(1), 1-11.

  2. Canny, J. (1986). A computational approach to edge detection. IEEE Transactions on pattern analysis and machine intelligence, (6), 679-698.