dival.measure module
Provides the abstract Measure
base class and some popular measures.
Measure instances are identified by a unique short_name
, which
is used by the evaluation
module.
- class dival.measure.Measure(short_name=None)[source]
Bases:
ABC
Abstract base class for measures used for evaluation.
In subclasses, either
__init__()
should be inherited or it should callsuper().__init__()
in order to register theshort_name
and to ensure it is unique.- measure_type
The measure type. Measures with type
'distance'
should attain small values if the reconstruction is good. Measures with type'quality'
should attain large values if the reconstruction is good.- Type:
{
'distance'
,'quality'
}
- short_name
Short name of the measure, used as identifier (key in
measure_dict
).- Type:
str
- name
Name of the measure.
- Type:
str
- description
Description of the measure.
- Type:
str
- measure_type = None
Class attribute, default value for
measure_type
.
- description = ''
Class attribute, default value for
description
.
- measure_dict = {'l2': <dival.measure.L2Measure object>, 'mse': <dival.measure.MSEMeasure object>, 'psnr': <dival.measure.PSNRMeasure object>, 'ssim': <dival.measure.SSIMMeasure object>}
Class attribute, registry of all measures with their
short_name
as key.
- __init__(short_name=None)[source]
- Parameters:
short_name (str, optional) – The short name of this measure, used as identifier in
measure_dict
. If None is passed andshort_name
was not set by the subclass, the__name__
of the subclass is used. If short_name is already taken by another instance, a unique short name is generated by appending a suffix of format'_%d'
.
- short_name = ''
Class attribute, default value for
short_name
.
- abstract apply(reconstruction, ground_truth)[source]
Calculate the value of this measure.
- Parameters:
reconstruction (odl element) – The reconstruction.
ground_truth (odl element) – The ground truth to compare with.
- Returns:
value – The value of this measure for the given reconstruction and ground_truth.
- Return type:
float
- classmethod get_by_short_name(short_name)[source]
Return
Measure
instance with given short name by registry lookup.- Parameters:
short_name (str) – Short name, identifier in
measure_dict
.- Returns:
measure – The instance.
- Return type:
- class dival.measure.L2Measure(short_name=None)[source]
Bases:
Measure
The euclidean (l2) distance measure.
- measure_type = 'distance'
Class attribute, default value for
measure_type
.
- short_name = 'l2'
Class attribute, default value for
short_name
.
- description = 'distance given by sqrt(sum((reconstruction-ground_truth)**2))'
Class attribute, default value for
description
.
- apply(reconstruction, ground_truth)[source]
Calculate the value of this measure.
- Parameters:
reconstruction (odl element) – The reconstruction.
ground_truth (odl element) – The ground truth to compare with.
- Returns:
value – The value of this measure for the given reconstruction and ground_truth.
- Return type:
float
- class dival.measure.MSEMeasure(short_name=None)[source]
Bases:
Measure
The mean squared error distance measure.
- measure_type = 'distance'
Class attribute, default value for
measure_type
.
- short_name = 'mse'
Class attribute, default value for
short_name
.
- description = 'distance given by 1/n * sum((reconstruction-ground_truth)**2)'
Class attribute, default value for
description
.
- apply(reconstruction, ground_truth)[source]
Calculate the value of this measure.
- Parameters:
reconstruction (odl element) – The reconstruction.
ground_truth (odl element) – The ground truth to compare with.
- Returns:
value – The value of this measure for the given reconstruction and ground_truth.
- Return type:
float
- dival.measure.MSE = <dival.measure.MSEMeasure object>
Instance of
MSEMeasure
, withshort_name='mse'
.
- class dival.measure.PSNRMeasure(data_range=None, short_name=None)[source]
Bases:
Measure
The peak signal-to-noise ratio (PSNR) measure.
The data range is automatically determined from the ground truth if not given to the constructor.
- data_range
The data range (max-min possible value). If data_range is None,
np.max(ground_truth) - np.min(ground_truth)
is used inapply()
.- Type:
float or None
- measure_type = 'quality'
Class attribute, default value for
measure_type
.
- short_name = 'psnr'
Class attribute, default value for
short_name
.
- description = 'quality given by 10*log10(MAX**2/MSE)'
Class attribute, default value for
description
.
- __init__(data_range=None, short_name=None)[source]
- Parameters:
data_range (float, optional) – The data range (max-min possible value). If data_range is None,
np.max(ground_truth) - np.min(ground_truth)
is used inapply()
.short_name (str, optional) – Short name.
- apply(reconstruction, ground_truth)[source]
Calculate the value of this measure.
- Parameters:
reconstruction (odl element) – The reconstruction.
ground_truth (odl element) – The ground truth to compare with.
- Returns:
value – The value of this measure for the given reconstruction and ground_truth.
- Return type:
float
- dival.measure.PSNR = <dival.measure.PSNRMeasure object>
Instance of
PSNRMeasure
, withdata_range=None
andshort_name='psnr'
.
- class dival.measure.SSIMMeasure(short_name=None, **kwargs)[source]
Bases:
Measure
The structural similarity index measure.
- measure_type = 'quality'
Class attribute, default value for
measure_type
.
- short_name = 'ssim'
Class attribute, default value for
short_name
.
- description = 'The (M)SSIM like described in `Wang et al. 2014 <https://doi.org/10.1109/TIP.2003.819861>`_.'
Class attribute, default value for
description
.
- __init__(short_name=None, **kwargs)[source]
This is a wrapper for
skimage.metrics.structural_similarity()
. The data range is automatically determined from the ground truth if not given to the constructor.- Parameters:
short_name (str, optional) – Short name.
kwargs (dict, optional) – Keyword arguments that will be passed to
structural_similarity()
inapply()
. If data_range is not specified,np.max(ground_truth) - np.min(ground_truth)
is used.
- apply(reconstruction, ground_truth)[source]
Calculate the value of this measure.
- Parameters:
reconstruction (odl element) – The reconstruction.
ground_truth (odl element) – The ground truth to compare with.
- Returns:
value – The value of this measure for the given reconstruction and ground_truth.
- Return type:
float
- dival.measure.SSIM = <dival.measure.SSIMMeasure object>
Instance of
SSIMMeasure
, withdata_range=None
andshort_name='ssim'
.