PANDORE Version 6 |
GREYC-IMAGE |
pranksegmentationalgorithms
Image segmentation algorithms ranking based on discrepancy measures between segmentation results and reference segmentations.
Synopsis
pranksegmentationalgorithms [-v] acceptable_error1 priority1
acceptable_error2 priority2 acceptable_error3 priority3 acceptable_error4 priority4 acceptable_error5 priority5 col_in* [col_out1|-] [col_out2|-]
Description
The operator pranksegmentationalgorithms ranks several segmentation algorithms
according to their performances.
Performances are evaluated by discrepancy measures between segmentation results and ground truths.
Performance is calculated from 10 discrepancy measures between segmentations and the corresponding ground truth. Five discrepancy indicators are evaluated and for each
indicator two measures are calculated with value between 0 and 1:
- Indicator 1: Detection accuracy. The two measured errors are:
- Recall error accounts for proportion of false negative regions.
- Precision error accounts for proportion of false positive regions.
- Indicator 2: Fragmentation consistency. The two measured errors are:
- Under-segmentation error accounts
for proportion of regions grouped into a single segment.
- Over-segmentation error accounts
for proportion of segments grouped into a single region.
- Indicator 3: boundary precision. The two measured errors are:
- Pixel deficit error accounts for
proportion of missed pixels in correctly detected regions.
- Pixel excess error accounts for
proportion of false pixels added to correctly detected region.
- Indicator 4: Shape fidelity. The two measured errors are:
- Omission shape error accounts for distance of deleted shape to true shape.
- Commission error accounts for distance of added shape to true shape.
- Indicator 5: Topology preservation. The two measured errors are:
- Hole addition error accounts for the proportion of false holes.
- Hole detection error accounts for the proportion of missed holes.
For each indicator i, the most acceptable error between the two
should be specified by the way of the parameter
acceptable_errori. (See section "Parameters")
The results are stored in two collections.
The first collection col_out1 contains the value of each performance indicator for each algorithm.
The second collection col_out2 contains the rank of each algorithm.
Parameters
- -v : verbose mode
- acceptable_error1, acceptable_error2, acceptable_error3, acceptable_error4, acceptable_error5:
the value indicates the preferences :
- Both errors are acceptable (no penalty).
- Both errors are undesirable.
- Prefer error1 to error2.
- Prefer error2 to error1.
- Do not penalize error1.
- Do not penalize error2.
- Prohibit error1.
- Prohibit error2.
- priority1, priority2, priority3, priority4, priority5:
The relative priority of the related indicator.
It is an integer between 1 and 5, where ties are possible. The less the priority value, the higher the importance.
Inputs
- col_in*: a list of collections; each of them contains the 10 error values
of a segmentation algorithm (computed from
passesssegmentationalgorithm).
Outputs
- col_out1: a collection with indicator values of each algorithm.
- col_out2: a collection with the rank of each algorithm.
Result
Returns SUCCESS or FAILURE.
Examples
Rank two algorithms from their segmentation results:
passesssegmentationalgorithm 0 0.5 resultimages/algo001 groundtruths detail_errors_algo1.pan total_errors_algo1.pan
passesssegmentationalgorithm 0 0.5 resultimages/algo002 groundtruths detail_errors_algo2.pan total_errors_algo2.pan
pranksegmentationalgorithms 4 1 5 2 4 4 2 3 1 5 total_errors_algo1.pan total_errors_algo1.pan indicators.pan rank.pan
See also
Evaluation,
passessdetectionaccuracy,
passessfragmentationconsistency,
passessboundaryprecision,
passessshapefidelity,
passesstopologypreservation,
passesssegmentationalgorithm,
pranksegmentationalgorithmsfromfolders
Prototype C++
Errc PRankSegmentationAlgorithms( Pobject ** colss,
int nbOfAlgorithms,
Collection & cold1, Collection & cold2,
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,
bool verbose );
Author: Régis Clouard