HooverCompareSegmentation¶
Compare two segmentations with Hoover metrics
Description¶
This application compares a machine segmentation (MS) with a partial ground truth segmentation (GT). The Hoover metrics are used to estimate scores for correct detection, over-segmentation, under-segmentation and missed detection.
The application can output the overall Hoover scores along with coloredimages of the MS and GT segmentation showing the state of each region (correct detection, over-segmentation, under-segmentation, missed).
The Hoover metrics are described in: Hoover et al., “An experimental comparison of range image segmentation algorithms”, IEEE PAMI vol. 18, no. 7, July 1996.
Parameters¶
Input ground truth -ingt image
Mandatory
A partial ground truth segmentation image.
Input machine segmentation -inms image
Mandatory
A machine segmentation image.
Background label -bg int
Default value: 0
Label value of the background in the input segmentations
Overlapping threshold -th float
Default value: 0.75
Overlapping threshold used to find Hoover instances.
Colored ground truth output -outgt image [dtype]
The colored ground truth output image.
Colored machine segmentation output -outms image [dtype]
The colored machine segmentation output image.
Correct detection score -rc float
Mandatory
Overall score for correct detection (RC)
Over-segmentation score -rf float
Mandatory
Overall score for over segmentation (RF)
Under-segmentation score -ra float
Mandatory
Overall score for under segmentation (RA)
Missed detection score -rm float
Mandatory
Overall score for missed detection (RM)
Examples¶
From the command-line:
otbcli_HooverCompareSegmentation -ingt maur_GT.tif -inms maur_labelled.tif -outgt maur_colored_GT.tif uint8
From Python:
import otbApplication
app = otbApplication.Registry.CreateApplication("HooverCompareSegmentation")
app.SetParameterString("ingt", "maur_GT.tif")
app.SetParameterString("inms", "maur_labelled.tif")
app.SetParameterString("outgt", "maur_colored_GT.tif")
app.SetParameterOutputImagePixelType("outgt", 1)
app.ExecuteAndWriteOutput()