Équipe IMAGE - Le projet Pantheon

Évaluation et classement d'algorithmes de segmentation d'images selon leurs performances

Identification

Ce tutoriel décrit une méthode pour classer des algorithmes de segmentation d'images selon leurs performances. L'originalité de la méthode proposée est de prendre en compte la tâche de segmentation pour calculer les valeurs de performances et faire le classement. La méthode est décrite par le biais d'un exemple fil rouge.

Plan

  1. Méthode
  2. Exemple
  3. Code

I. Méthode

L'évaluation des performances d'un algorithme est basée sur des mesures de distance entre des résultats de l'algorithme de segmentation et des segmentations de référence dites vérités terrain.

Vocabulaire : pour clarifier la présentation, les composantes connexes qui composent les résultats de segmentation sont nommées «segments» et les composantes connexes qui composent les vérités terrain sont nommées «régions».
Prérequis :
  • Les images test sont supposées stockées dans un dossier, par exemple nommé «sourceimages».
  • Les résultats de chaque algorithme de segmentation sont stockés dans un autre dossier, par exemple «resultimages». À l'intérieur, chaque algorithme possède son propre sous-dossier, par exemple nommés «algo001», «algo002», etc. Chaque sous-dossier est organisé de la même manière que le dossier des images test «sourceimage» avec les mêmes noms d'image.
  • Les vérités terrains sont stockées dans un troisième dossier, par exemple «groundtruths». Les vérités terrain peuvent être produites par plusieurs experts et sont stockées dans des sous-dossiers distincts, par exemple nommés «expert001», «expert002», etc. Chaque sous-dossier est organisé de la même manière que le dossier «sourceimage» avec les mêmes noms d'images.

I.1. Les indicateurs de performance

Les performances sont évaluées à l'aide de cinq indicateurs, quatre géométriques et un topologique. Chaque indicateur est mesuré par deux erreurs de différence entre les résultats de segmentation et les vérités terrain correspondantes. En fonction de la tâche de segmentation, la valeur de performance pour l'indicateur est calculée par un compromis entre les deux valeurs d'erreur. L'évaluateur doit choisir un type de compromis parmi les 6 possibles donnés dans la colonne de droite du tableau ci-dessous.

1. Précision de la détection.

Cet indicateur mesure combien de régions de la vérité terrain ont été détectées par au moins un segment du résultat de segmentation. Un segment détecte une région si une partie du segment couvre une partie de la région. Il y a deux erreurs possibles. Les faux négatifs sont des régions de la vérité terrain qui ne sont pas couvertes par un segment. Les faux positifs sont des segments qui ne couvrent aucune région.

Si l'indicateur de précision de la détection est jugé important pour une application donnée, alors il est aussi nécessaire de préciser laquelle des deux erreurs est la plus acceptable. Plus précisément, il est nécessaire de spécifier laquelle des propositions ci-à droite correspond le mieux à l'application.

1Les deux erreurs sont acceptables, signifiant que cet indicateur n'est pas à prendre en compte pour cette application.
2

Les deux erreurs sont indésirables, signifiant que les erreurs de sous-détection et de sur-détection doivent être pénalisées de la même façon.
3Préférer les faux négatifs, signifiant pénaliser plus les erreurs dues à la sur-détection qu'à la sous-détection.
4Préférer les faux positifs, signifiant pénaliser plus les erreurs dues à la sous-détection.
5Ne pas pénaliser les faux négatifs, signifiant pénaliser seulement la sur-détection.
6Ne pas pénaliser les faux positifs, signifiant pénaliser seulement la sous-détection.
2. Cohérence de fragmentation.

Idéalement, chaque région devrait être détectée par un segment exactement et chaque segment devrait être détecté par une région exactement. Mais deux types d'erreur peuvent intervenir : la sur-segmentation correspond à la division d'une région en plusieurs segments, et la sous-segmentation correspond au regroupement de plusieurs régions dans un segment.

Pour chaque application dans laquelle cet indicateur est jugé important, il est nécessaire de préciser quelle proposition parmi celles de droite correspond le plus aux objectifs de l'application :

1Les deux erreurs sont acceptables.
2Les deux erreurs sont indésirables.
3Préférer la sous-segmentation.
4Préférer la sur-segmentation.
5Ne pas pénaliser la sous-segmentation.
6Ne pas pénaliser la sur-segmentation.
3. Précision des frontières.

La précision des frontières est un aspect important pour beaucoup d'applications. La précision maximale est atteinte quand la surface des régions de la vérité terrain est couverte exactement par les segments correspondants. Les deux types d'erreur possibles sont l'excès de pixels quand les pixels des segments sont positionnés à l'extérieur de la région correspondante, et l'erreur de déficit de pixels quand les pixels des régions sont positionnés à l'extérieur du segment correspondant.

L'évaluation de cet indicateur pour une application donnée doit être faite en fonction d'une des propositions ci-à droite.

1Les deux erreurs sont acceptables.
2Les deux erreurs sont indésirables.
3Préférer le déficit de pixels.
4Préférer l'excès de pixels.
5Ne pas pénaliser les déficits de pixels.
6Ne pas pénaliser les excès de pixels.
4. Respect de la forme.

Le respect de la forme évalue de combien la forme des segments s'éloigne de la forme des régions correspondantes. Il mesure en quoi l'excès et le déficit de pixels affectent la forme des régions détectées : est-ce que les pixels mal segmentés sont plutôt répartis le long de la frontière ce qui modifie peu la forme ou au contraire forment plutôt une surface supplémentaire, ce qui modifie profondément la surface. Cet indicateur distingue les erreurs de forme dues à l'ajout de surface qui affecte l'extérieur de la région et celles dues à la perte de surface qui affecte l'intérieur de la région.

Si le respect à la forme est un indicateur important pour une application, la préférence doit être donnée à l'une des propositions ci-à droite.

1Les deux erreurs sont acceptables.
2Les deux erreurs sont indésirables.
3Préférer l'erreur de forme due à l'omission de surface.
4Préférer l'erreur de forme due à l'ajout de surface.
5Ne pas pénaliser l'omission de surface.
6Ne pas pénaliser l'ajout de surface.
5. Préservation de la topologie.

Le critère de topologie consiste à compter le nombre de trous. En effet, en 2D, deux régions sont topologiquement équivalentes si elles ont le même nombre de trous internes.

Nous définissons un trou ajouté comme une composante connexe composée de pixels faux négatifs complètement à l'intérieur d'un segment. i.e., une composante connexe qui n'a qu'un segment voisin y compris le fond. Donc, un trou qui n'intersecte pas une région n'est pas un trou ajouté. De façon similaire, un trou supprimé est une composante connexe formée de pixels faux positifs qui sont complètement à l'intérieur d'une région.

Les deux erreurs possibles sont l'addition de trous et la suppression de trous dans les régions détectées. Les propositions correspondantes sont données à droite.

1Les deux erreurs sont acceptables.
2Les deux erreurs sont indésirables.
3Préférer l'addition de trous.
4Préférer la suppression de trous.
5Ne pas pénaliser l'addition de trous.
6Ne pas pénaliser la suppression de trous.

I.2. Calcul de la valeur des indicateurs de performance

La valeur de performance de chaque indicateur i résulte d'un compromis entre les deux erreurs antagonistes en fonction de ce que le développeur considère comme l'erreur la plus acceptable pour l'application parmi les 6 propositions :

  1. Les deux erreurs sont acceptables. Cela correspond à exclure cet indicateur du classement :

    indicateuri=0.
    
  2. Les deux erreurs sont indésirables. Les deux erreurs sont pénalisées de la même façon :

                       |    0.5             0.5      |-1
    indicateuri = 1 -  | -----------  +  ----------  |
                       |  1 - erreur2    1 - erreur1 |
    
  3. Préférer l'erreur1 à l'erreur2. Cela correspond à pénaliser l'erreur2 deux fois plus que l'erreur1 :

                       |   0.8             0.2       |-1
    indicateuri = 1 -  | -----------  +  ----------  |
                       |  1 - erreur2    1 - erreur1 |
    
  4. Préférer l'erreur2 à l'erreur1. Au contraire, l'erreur1 est pénalisée deux fois plus que l'erreur2 :

                       |   0.2             0.8       |-1
    indicateuri = 1 -  | -----------  +  ----------  |
                       |  1 - erreur2    1 - erreur1 |
    
  5. Ne pas pénaliser les erreurs de type erreur1. Cela signifie d'utiliser seulement la valeur de l'erreur2 :

    indicateuri = erreuri2
    
  6. Ne pas pénaliser les erreurs de type erreur2. Cela signifie de n'utiliser que la valeur de l'erreur1 :

    indicateuri = erreuri1
    

I.3. Le classement

Finalement, le classement des algorithmes est fait en utilisant les cinq indicateurs calculés.

Après avoir précisé les erreurs les plus acceptables pour chaque indicateur, l'évaluateur doit donner les priorités sur ces indicateurs toujours en relation avec les besoins spécifiques de l'application ; les égalités sont possibles.

Pour effectuer le classement, les priorités sont d'abord converties en poids affectant chaque indicateur à partir d'une distribution uniforme de ces poids sur l'intervalle [0..1] selon l'approche "Rank Order Centroid". Chaque poids wi de l'indicateur i est obtenu à partir de la priorité j par :

wi = 1/n Sj=in{1/j}

par exemple, si n=5 alors w1=0.4567, w2=0.2567, w3=0.1567, w4=0.0900 et w5=0.0400.

Le classement est alors donné par la somme pondérée du rang rij de chaque algorithme i pour chaque indicateur j multiplié par le poids wj correspondant à la priorité j :

ri=Sj=1n{rij.wj}

II. Exemple

II.1. Description de l'application

Il s'agit d'une application biologique dans le contexte du dépistage du cancer. Le but est d'assister les cytotechniciens à rechercher les cellules anormales ou suspectes sur des images. L'objectif spécifique de la segmentation d'images est de localiser chaque cellule de séreuse dans une région comme présenté dans la Figure 1.2. Ces régions seront ensuite données à un classifieur qui sera entraîné à identifier les types de cellules.

La définition complète du problème nécessite de spécifier quelle erreur est la plus acceptable pour chacun des cinq indicateurs. Elles sont induites par les besoins de la classification :

  • Précision de la détection : erreur acceptable n°4 : Préférer les faux positifs.
    Les images contiennent seulement un petit nombre de cellules est encore moins de cellules suspectes ou anormales (autour de 2 % des cellules). Donc, la sous-détection est une erreur plus sérieuse puisqu'elle signifie que la segmentation pourrait oublier des cellules suspectes. La sur-détection est moins dommageable puisque les segments faux positifs seront écartés ensuite par la classifieur.
  • Cohérence de la fragmentation : erreur acceptable n°2 : Les deux erreurs sont indésirables.
    La sur-segmentation détruit l'intégrité des cellules et la sous-segmentation crée des amas de cellules. Les deux erreurs conduisent à une mauvaise classification des régions.
  • Précision des frontières : erreur acceptable n°3 : Préférer le déficit de pixels.
    Puisque le classifieur utilise des caractéristiques photométriques sur les régions, l'excès de pixels biaise les valeurs des caractéristiques avec des pixels du fond.
  • Respect de la forme : acceptable erreur n°2 : Les deux erreurs sont indésirables.
    Les caractéristiques de forme des régions (eg., circularité, excentricité) peuvent aussi être utilisées par le classifieur. Donc, les erreurs de forme dues à l'ajout et l'omission de surface doivent être également pénalisées.
  • Préservation de la topologie : erreur acceptable n°1 : Les deux erreurs sont acceptables.
    La notion de trou n'a pas d'intérêt pour cette application.

Figure 1.1. Une image de cytologie avec des cellules de séreuse et des globules rouges.

Figure 1.2. Une des vérités terrain superposée en blanc.



II.2. Évaluation des performances d'un algorithme de segmentation

Le script Pandore utilisé pour générer le résultat de l'évaluation des résultats de l'algorithme a001 est :

passesssegmentationalgorithm -v \
    0 \
    0.5 \
    cytology/resultimages/a001 \
    cytology/groundtruths \
    /tmp/detail_errors_algo1.pan \
    /tmp/total_errors_algo1.pan

La table suivante donne les dix erreurs de différence entre le résultat de segmentation donné en Figure 2.3 et les deux vérités terrain données en Figure 2.1 et Figure 2.2. L'algorithme de mise en correspondance utilisé (type 0) autorise les correspondances de type une région avec n segments et un segment avec n régions. Le seuil de détection est fixé à 50% (0.50) dans le but de garder des cellules presque complètes. Un seuil plus faible aurait pour but d'accepter des cellules plus fragmentées qui nuiraient à leur identification ultérieure par le classifieur.

Table 1. Les valeurs d'erreur résultant de la comparaison entre le résultat de segmentation donné dans la Figure 2.3 et les deux vérités terrain donnée en Figure 2.1 et 2.2. sont les suivantes.

Précision de la détection

erreur11 : Erreur de rappel

0.000
erreur12 : Erreur de précision0.083
Cohérence de la fragmentation erreur21 : Erreur de sous-segmentation0.196
erreur22 : Erreur de sur-segmentation

0.000

Précision des frontières

erreur31 : Erreur de déficit de pixels

0.112

erreur32 : Erreur d'excès de pixels

0.046

Fidélité à la forme

erreur41: Erreur de forme due à l'omission de surface

0.262

erreur42 : Erreur de forme due à l'ajout de surface

0.241

Préservation de la topologie

erreur51 : Erreur d'addition de trous

0.000

erreur52 : Erreur de suppression de trous0.000


L'interprétation des résultats est la suivante :

  • Précision de la détection. Toutes les régions des vérités terrain ont été détectées, mais 8.3 % des segments sont des faux positifs. En effet, 2 segments sur 24 sont des faux positifs.
  • Cohérence de la fragmentation. Le résultat de segmentation souffre d'un défaut de sous-segmentation seulement. La valeur de l'erreur de sous-segmentation de 0.196 indique qu'il y a 20.196/(1-0.196) = 1.184 région par segment correct. En effet, 3 segments sur 22 fusionnent deux régions chacun.
  • Précision des frontières. L'erreur de précision des frontières est principalement due à un déficit de pixels. Les frontières des segments sont plutôt placées à l'intérieur des régions correspondantes : 11.2 % de la surface des régions correctement retrouvée n'est pas détectée, et 4.6 % de la surface des bons segments est erronée.
  • Respect de la forme. Les pixels mal segmentés qu'ils soient en déficit ou en excès modifient peu la forme des régions. Le déficit de pixels affecte plus la forme que l'excès pixels. La distance moyenne entre la frontière de la surface omise et la frontière de la région de référence est de 100.262/(1-0.262)-1=1.3 pixel, et la moyenne de la distance des frontières de la surface ajoutée par rapport à la frontière de la région de référence est de 100.241/(1-0.241)-1=1.1 pixel.
  • Préservation de la topologie. Il n'y a ni addition ni suppression de trous.

Figure 2.1. Une première vérité terrain superposées en blanc sur l'image source.

Figure 2.2. Une deuxième vérité terrain superposées en blanc sur l'image source.

Figure 2.3. Le résultat de segmentation de l'algorithme A superposé sur l'image source.

II.3. Classement d'algorithmes de Segmentation d'Images

Nous supposons cinq algorithmes de segmentation d'images différents nommés respectivement A, B, C, D et E. Le résultat de segmentation de chacun de ces algorithmes sur l'image donnée Figure 3.1 sont présentés dans les Figures 3.2 to 3.6.

Figure 3.1. Une image de cytologie avec des cellules de séreuse et des globules rouges. La première vérité terrain est superposée en blanc (pour la deuxième vérité terrain voir l'image 2.2).

Figure 3.2. Le résultat de segmentation de l'algorithme A superposé à l'image source.

Figure 3.3. Le résultat de segmentation de l'algorithme B superposé à l'image source.

Figure 3.4. Le résultat de segmentation de l'algorithme C superposé à l'image source.

Figure 3.5. Le résultat de segmentation de l'algorithme D superposé à l'image source.

Figure 3.6. Le résultat de segmentation de l'algorithme E superposé à l'image source.

Les performances calculées pour les algorithmes sont données dans la Table 2.

Table 2. Les valeurs d'erreur résultant de la comparaison des résultats de segmentation avec la vérité terrain.

 

A

B

C

D

E

Erreur11 : Erreur de rappel

0.000

0.000

0.000

0.000

0.000

Erreur12 : Erreur de précision

0.083

0.077

0.000

0.000

0.000

Erreur21 : Erreur de sous-segmentation

0.196

0.154

0.292

0.000

0.000

Erreur22 : Erreur de sur-segmentation

0.000

0.000

0.000

0.189

0.401

Erreur31 : Erreur de déficit de pixels

0.112

0.045

0.000

0.004

0.090

Erreur32 : Erreur d'excès de pixels

0.046

0.017

0.349

0.112

0.005

Erreur41 : Erreur de forme due à l'omission de surface

0.262

0.250

0.000

0.231

0.275

Erreur42 : Erreur de forme due à l'ajout de surface

0.241

0.258

0.341

0.270

0.255

Erreur51 : Erreur d'addition de trous

0

0

0

0

0

Erreur52 : Erreur de suppression de trous

0

0

0

0

0

En utilisant les erreurs acceptables et les priorités données ci-dessous, on obtient le classement donné en Table 3 :

  • Priorité 1: Précision de la détection avec une préférence pour les faux positifs (erreur acceptable n°4).
  • Priorité 2: Cohérence de la segmentation en pénalisant autant la sous-segmentation et la sur-segmentation (erreur acceptable n°2).
  • Priorité 3: Précision de la frontière avec une préférence pour le déficit de pixels (erreur acceptable n°3).
  • Les autres erreurs ne sont pas prises en compte.

Table 3. Les valeurs d'indicateur des cinq algorithmes avec leur rang de performance pour les propositions {4, 2, 3}.

A

B

C

D

E

Indicateur1

0.018

0.016

0.000

0.000

0.000

Indicateur2

0.108

0.084

0.171

0.100

0.251

Indicateur3

0.060

0.023

0.300

0.092

0.024

Indicateur4

0

0

0

0

0

Indicateur5

0

0

0

0

0

Rang

5

1

4

1

3

Le script Pandore utilisé pour le classement des algorithmes est :

 pranksegmentationalgorithmsfromfolders \
    0 0.5\
    4 1 \
    2 2 \
    3 3 \
    1 4 \
    1 4 \
    cytology/resultimages/ cytology/groundtruths \
    /tmp/indicators2.pan /tmp/rank2.pan

L'ordre donné Table 3 indique que les deux algorithme B et D ont les mêmes meilleures performances pour cette application. B est meilleur en moyenne mais D est le plus perfomant sur le premier indicateur qui est le plus prioritaire. Pour cette application, l'un ou l'autre des deux algorithmes convient.

III. Code

Les programmes d'évaluation et de claassement sont fournis avec la distribution de Pandore. Le code ci-dessous n'utilise pas Pandore. Il prend entrée des images de labels au format ppm. Néanmoins, le code peut être utilisé pour d'autres formats d'images, en changeant les fonctions de lecture d'images dans le fichier myinputoutput.h

III.2. Téléchangement

Code Download
(mise à jour le 27/08/15)

III.2. Compilation

III.3. Exécution

Usage:

pranksegmentationalgorithmsfromfolders [-v] matching_algorithm_id matching_threshold acceptable_error1 priority1 acceptable_error2 priority2 acceptable_error3 priority3 acceptable_error4 priority4 acceptable_error5 priority5 segmentation_result_path ground_truth_path result_indicators result_ranks

Exemple

pranksegmentationalgorithmsfromfolders \
    0 0.5\
    4 1 \
    2 2 \
    3 3 \
    1 4 \
    1 4 \
    ./example/resultimages/ \
    ./example/groundtruths \
    /tmp/indicators2.txt /tmp/rank2.txt


Projet Panthéon
Equipe Image Laboratoire GREYC
UMR CNRS 6072 - ENSICAEN - Université de Caen, France
Page modifiée le 26 August 2015