import numpy as np
from dival.evaluation import TaskTable
from dival.measure import PSNR, SSIM
from dival.reconstructors.odl_reconstructors import FBPReconstructor
from dival.datasets.standard import get_standard_dataset

np.random.seed(0)

# %% data
dataset = get_standard_dataset('ellipses', impl='astra_cpu')
test_data = dataset.get_data_pairs('test', 10)

# %% task table and reconstructors
eval_tt = TaskTable()

reconstructor = FBPReconstructor(dataset.ray_trafo)

eval_tt.append(reconstructor=reconstructor, measures=[PSNR, SSIM],
               test_data=test_data,
               hyper_param_choices={'filter_type': ['Ram-Lak', 'Hann'],
                                    'frequency_scaling': [0.8, 0.9, 1.]})

# %% run task table
results = eval_tt.run()
print(results.to_string(show_columns=['misc']))

# %% plot reconstructions
fig = results.plot_all_reconstructions(test_ind=range(1),
                                       fig_size=(9, 4), vrange='individual')
Ejemplo n.º 2
0
from odl.ufunc_ops.ufunc_ops import log_op
from dival.evaluation import TaskTable
from dival.measure import PSNR, SSIM
from dival.reconstructors.odl_reconstructors import FBPReconstructor
from dival.datasets.standard import get_standard_dataset
from dival.util.constants import MU_MAX

# %% data
dataset = get_standard_dataset('lodopab', observation_model='pre-log')
ray_trafo = dataset.get_ray_trafo(impl='astra_cpu')
reco_space = ray_trafo.domain
test_data = dataset.get_data_pairs('test', 10)

# %% task table and reconstructors
eval_tt = TaskTable()

fbp_reconstructor = FBPReconstructor(
    ray_trafo, hyper_params={
        'filter_type': 'Hann',
        'frequency_scaling': 0.8},
    pre_processor=(-1/MU_MAX) * log_op(ray_trafo.range))

reconstructors = [fbp_reconstructor]

eval_tt.append_all_combinations(reconstructors=reconstructors,
                                test_data=[test_data])

# %% run task table
results = eval_tt.run()
results.apply_measures([PSNR, SSIM])
print(results)
Ejemplo n.º 3
0
from dival.evaluation import TaskTable
from dival.measure import L2, PSNR, SSIM
from dival.reconstructors.odl_reconstructors import FBPReconstructor
from dival.datasets.standard import get_standard_dataset

# %% data
dataset = get_standard_dataset('lidc_idri_dival')
ray_trafo = dataset.ray_trafo
reco_space = ray_trafo.domain
test_data = dataset.get_data_pairs('test', 2)

# %% task table and reconstructors
eval_tt = TaskTable()

fbp_reconstructor = FBPReconstructor(
    ray_trafo, hyper_params={
        'filter_type': 'Hann',
        'frequency_scaling': 0.8})

reconstructors = [fbp_reconstructor]
options = {'save_iterates': True}

eval_tt.append_all_combinations(reconstructors=reconstructors,
                                test_data=[test_data], options=options)

# %% run task table
results = eval_tt.run()
results.apply_measures([L2, PSNR, SSIM])
print(results.to_string(formatters={'reconstructor': lambda r: r.name}))

# %% plot reconstructions
Ejemplo n.º 4
0
import os
import requests
from dival.evaluation import TaskTable
from dival.measure import PSNR, SSIM
from dival.reconstructors.odl_reconstructors import FBPReconstructor
from dival.reconstructors.fbp_unet_reconstructor import (FBPUNetReconstructor,
                                                         CachedFBPDataset)
from dival.datasets.standard import get_standard_dataset

os.environ['CUDA_VISIBLE_DEVICES'] = '0'  # TODO adjust

# %% data
dataset = get_standard_dataset('lodopab')
dataset.fbp_dataset = CachedFBPDataset(
    dataset, {
        'train': '/localdata/jleuschn/lodopab/reco_fbps_train.npy',
        'validation': '/localdata/jleuschn/lodopab/reco_fbps_validation.npy',
        'test': '/localdata/jleuschn/lodopab/reco_fbps_test.npy'
    })
ray_trafo = dataset.get_ray_trafo(impl='astra_cpu')
reco_space = ray_trafo.domain
test_data = dataset.get_data_pairs('test', 7)

# %% task table and reconstructors
eval_tt = TaskTable()

fbp_reconstructor = FBPReconstructor(ray_trafo,
                                     hyper_params={
                                         'filter_type': 'Hann',
                                         'frequency_scaling': 0.8
                                     })
Ejemplo n.º 5
0
import numpy as np
from dival.evaluation import TaskTable
from dival.measure import L2
from dival.reconstructors.odl_reconstructors import FBPReconstructor
from dival.datasets.standard import get_standard_dataset

np.random.seed(0)

# %% data
dataset = get_standard_dataset('ellipses')
validation_data = dataset.get_data_pairs('validation', 10)
test_data = dataset.get_data_pairs('test', 10)

# %% task table and reconstructors
eval_tt = TaskTable()

reconstructor = FBPReconstructor(dataset.ray_trafo)
options = {
    'hyper_param_search': {
        'measure': L2,
        'validation_data': validation_data
    }
}

eval_tt.append(reconstructor=reconstructor,
               test_data=test_data,
               options=options)

# %% run task table
results = eval_tt.run()
print(results.to_string(formatters={'reconstructor': lambda r: r.name}))