PANDORE Version 6 |
GREYC-IMAGE |
passesssegmentationalgorithm
Évaluation des performances d'un algorithme de segmentation basée sur des mesures de dissimilarité entre des résultats de segmentation et des segmentations de référence.
Synopsis
passesssegmentationalgorithm [-v] matching_algorithm_id matching_threshold segmentation_result_path reference_segmentation_path [col_out1|-] [col_out2|-]
Description
L'opérateur passesssegmentationalgorithm calcule des mesures
de dissimilarité entre des résultats de segmentation obtenus par un algorithme
et des segmentations de référence faites sur les mêmes images.
Cinq indicateurs de dissimilarité sont évalués, et à chaque fois,
deux mesures sont calculées avec une valeur entre 0 et 1 :
- Indicateur 1 : La précision de la détection : Les deux erreurs mesurées sont :
- L'erreur de rappel qui rend compte de la proportion de faux négatifs.
- L'erreur de précision qui rend compte de la proportion de faux positifs.
- Indicateur 2 : La cohérence de la fragmentation : Les deux erreurs mesurées sont :
- L'erreur de sous-segmentation qui rend compte de la proportion de régions agglomérées par segment.
- L'erreur de sur-segmentation qui rend compte de la proportion de fragmentation des régions en plusieurs segments.
- Indicateur 3 : La localisation des frontières : Les deux erreurs mesurées sont :
- L'erreur de déficit de pixels qui rend compte de la proportion de pixels non détectés dans les régions détectées.
- L'erreur d'excès de pixels qui rend compte de la proportion de pixels erronés ajoutés aux régions détectées.
- Indicateur 4 : Le respect de la forme : Les deux erreurs mesurées sont :
- L'erreur de forme due à l'omission de surface des régions.
- L'erreur de forme due à l'ajout de surface aux régions.
- Indicateur 5 : La préservation de la topologie : Les deux erreurs mesurées sont :
- L'erreur d'ajout de trou qui rend compte de la proportion de faux trous détectés.
- L'erreur de suppression de trou qui rend compte de la proportion de trous non détectés.
Les mesures sont calculées sur la base d'un graphe de correspondance entre les segments des résultats
de segmentation et les régions des segmentations de référence. Deux types de mise en correspondance
sont possibles selon le paramètre matching_algorithm_id : le premier autorise la sur-segmentation et
la sous-segmentation et le second ne permet que la mise en correspondance unique.
Dans ce graphe, un segment S détecte une région R
si la surface de recouvrement | R * S | est telle que :
| R * S | | R * S |
--------- >= matching_threshold and --------- >= matching_threshold
| R | | S |
Les résultats de segmentation et les segmentations de référence sont des cartes de régions.
Plusieurs segmentation de référence peuvent exister pour chaque image test.
Le dossier reference_segmentation_path doit être organisé en sous-dossiers correspondant à
chacune des expertises, par exemple expert001, expert002, etc.
Le dossier segmentation_result_path ainsi que chaque sous-dossier
de reference_segmentation_path doivent être organisés de la même façon, avec les
mêmes sous-dossiers et les mêmes noms d'image.
Le résultat des 10 mesures d'erreur pour chaque résultat de segmentation est stocké
dans la collection col_out1 (sous la forme numérateur / dénominateur).
Quand plusieurs segmentations de référence existent, c'est l'erreur minimale qui est gardée.
La collection de sortie col_out2 contient les valeurs d'erreur moyennes prenant en compte
les résultats de segmentation.
Paramètres
- -v : mode verbeux
- matching_algorithm_id : spécifie le numéro de l'algorithme de mise en correspondance à utiliser :
- 0 : pour une correspondance de type 1-n et n-1. Un segment d'un résultat de segmentation peut regrouper plusieurs
régions de la référence (sous-segmentation),
et une région de la référence peut être découper en plusieurs segments
d'un résultat de segmentation (sur-segmentation).
Toutefois, un segment ou une région ne peut participer à la fois à une sur-segmentation
et à une sous-segmentation.
- 1 : pour une correspondance de type 1-1. Un segment de la segmentation ne peut être mis en correspondance qu'avec au plus
une région de la référence, et une région de la référence ne peut être mise en correspondance qu'avec au plus un segment de la segmentation.
- matching_threshold : indique la proportion minimale de surface de recouvrement entre une région et un segment
pour accepter une détection. C'est une valeur entre [0,1] où la valeur x correspond à un recouvrement de (x*100)%.
- segmentation_result_path : le chemin vers le dossier des résultats de segmentation de l'algorithme. Ce dossier peut être organisé en sous-dossiers.
- reference_segmentation_path : le chemin vers le dossier des segmentations de référence. Le dossier est divisé en autant de sous-dossiers qu'il y a d'expertises disponibles sur les images.
Chaque sous-dossier d'expertise est organisé de la même façon qu'un
sous-dossier du dossier segmentation_result_path avec les mêmes noms d'image.
Sorties
- col_out1: une collection avec les 10 valeurs d'erreur de segmentation pour chaque image test.
- col_out2: une collection avec les 10 valeurs moyenne d'erreur de segmentation qui résument
les performances de l'algorithme.
Résultat
Retourne SUCCESS ou FAILURE en cas de problème.
Exemples
Évaluation de la qualité de l'algorithme 'algo001' à partir de
ses résultats stockés dans le dossier 'images/resulimages/algo001:
passesssegmentationalgorithm 0 0.5 images/resultimages/algo001 images/groundtruths detail_errors.pan total_errors.pan
pdisplayperformancevalues detail_errors.pan total_errors.pan
Voir aussi
Evaluation,
passessdetectionaccuracy,
passessfragmentationconsistency,
passessboundaryprecision,
passessshapefidelity,
passesstopologypreservation,
pranksegmentationalgorithms,
pranksegmentationalgorithmsfromfolders
Prototype C++
Errc PAssessSegmentationAlgorithm( int matching_algorithm_id, float matching_threshold,
std::string segmentation_result_path,
std::string reference_segmentation_path,
Collection & col_out1,
Collection & col_out2 );
Auteur: Régis Clouard