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:
ABCAbstract base class for measures used for evaluation.
In subclasses, either
__init__()should be inherited or it should callsuper().__init__()in order to register theshort_nameand 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_nameas 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_namewas 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
Measureinstance 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:
MeasureThe 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:
MeasureThe 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:
MeasureThe 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=Noneandshort_name='psnr'.
- class dival.measure.SSIMMeasure(short_name=None, **kwargs)[source]
Bases:
MeasureThe 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=Noneandshort_name='ssim'.