PANDORE Version 6 |
GREYC-IMAGE |
pranksegmentationalgorithmsfromfolders
Classement d'algorithmes de segmentation à partir de mesures de dissimilarité entre des résultats de segmentation et des segmentations de référence (complet).
Synopsis
pranksegmentationalgorithmsfromfolders matching_algorithm_id matching_threshold acceptable_error1 priority1 acceptable_error2 priority2 acceptable_error3 priority3 acceptable_error4 priority4 acceptable_error5 priority5 segmentation_result_path reference_segmentation_path [col_out1|-] [col_out2|-]
Description
L'opérateur pranksegmentationalgorithmsfromfolders permet de classer plusieurs
algorithmes de segmentation d'images selon leurs performances.
Les performances sont évaluées par comparaison des résultats des algorithmes sur
des images test avec des segmentations de référence fournies par des experts.
Les performances sont calculées à partir de mesures de dissimilarité
entre les résultats de segmentation et les segmentations de référence correspondantes.
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.
Le dossier d'entrée est supposé contenir autant de sous-dossiers qu'il y a
d'algorithmes à classer. De même, le dossier des segmentations de référence contient
autant de sous-dossiers qu'il a d'expertise pour les images test.
Les sous-dossiers sont tous organisés de la même manière avec les mêmes noms d'images.
Pour chaque indicateur i, il est nécessaire de préciser l'erreur qu'il faut considérer comme
la plus acceptable parmi les deux possibles par l'intermédiaire du paramètre acceptable_errori
(voir la section "Paramètres").
Le résultat est stocké dans deux collections.
La première collection col_out1 contient les valeurs
pour les cinq indicateurs de performances ci-dessus.
La deuxième collection col_out2 contient les rangs de chacun des algorithmes.
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écoupée 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.
- acceptable_error1, acceptable_error2, acceptable_error3, acceptable_error4, acceptable_error5 : permet d'indiquer pour chaque indicateur quelle est l'erreur qu'il faut considérer comme la plus
acceptable. Les valeurs sont comprises entre 1 et 8:
- Les deux erreurs sont acceptables (pas de pénalisation).
- Les deux erreurs sont indésirables.
- Préférer l'erreur1 à l'erreur2.
- Préférer l'erreur2 à l'erreur1.
- Ne pas pénaliser l'erreur1.
- Ne pas pénaliser l'erreur2.
- Prohiber l'erreur1.
- Prohiber l'erreur2.
- priority1, priority2, priority3, priority4, priority5:
La priorité relative entre les indicateurs. Plus la priorité est faible plus l'importance est grande.
C'est un entier entre 1 et 5 où les ex aequo sont possibles.
- 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 contenant les valeurs d'indicateurs pour chaque algorithme.
- col_out2: une collection contenant les rangs de chaque algorithme.
Résultat
Retourne SUCCESS ou FAILURE en cas de problème.
Exemples
Classement des algorithmes à partir de leurs résultats de segmentation
stockés dans des sous-dossiers du dossier 'resultimages'. La priorité des indicateurs est dans l'ordre
la précision de la détection, la cohérence de la fragmentation, le respect de la forme, la précision de la frontière et la préservation de la topologie :
pranksegmentationalgorithmsfromfolders 0 0.5 4 1 5 2 4 4 2 3 1 5 resultimages groundtruths indicators.pan rank.pan
Voir aussi
Evaluation,
passessdetectionaccuracy,
passessfragmentationconsistency,
passessboundaryprecision,
passessshapefidelity,
passesstopologypreservation,
passesssegmentationalgorithm,
pranksegmentationalgorithms
Prototype C++
Errc PRankSegmentationAlgorithmsFromFolders( int matching_algorithm_id, float matching_threshold,
int acceptable_error1, int priority1,
int acceptable_error2, int priority2,
int acceptable_error3, int priority3,
int acceptable_error4, int priority4,
int acceptable_error5, int priority5,
std::string segmentation_result_path, std::string ground_truth_path,
Collection & cold1, Collection & cold2,
bool verbose );
Auteur: Régis Clouard