def _generate_base_params():
    # initialise compulsory params that are irrelevant
    # to this unit test
    user_param = dict()
    user_param['SYSTEM'] = ParserNamespace(model_dir='./testing_data',
                                           num_threads=2,
                                           num_gpus=1,
                                           cuda_devices='',
                                           event_handler=None,
                                           iteration_generator=None)

    user_param['NETWORK'] = ParserNamespace(
        batch_size=20, name='tests.toy_application.TinyNet')

    user_param['TRAINING'] = ParserNamespace(starting_iter=0,
                                             max_iter=2,
                                             save_every_n=2,
                                             tensorboard_every_n=0,
                                             max_checkpoints=100)

    user_param['INFERENCE'] = ParserNamespace(inference_iter=-1)

    user_param['CUSTOM'] = ParserNamespace(
        name='tests.toy_application.ToyApplication',
        vector_size=100,
        mean=10.0,
        stddev=2.0)
    return user_param
def _generate_data_param():
    user_param = dict()
    user_param['modality'] = ParserNamespace(csv_file=os.path.join(
        'testing_data', 'mod1test.csv'),
                                             path_to_search='testing_data')

    user_param['modality2'] = ParserNamespace(csv_file=os.path.join(
        'testing_data', 'mod2test.csv'),
                                              path_to_search='testing_data')
    return user_param
Exemplo n.º 3
0
def get_initialised_driver(starting_iter=0,
                           model_dir_rand=True,
                           vars_to_restore='',
                           application='tests.toy_application.ToyApplication'):
    if model_dir_rand:
        model_dir = os.path.join('.', 'testing_data', 'tmp', str(uuid.uuid4()))
        os.makedirs(model_dir)
    else:
        model_dir = os.path.join('.', 'testing_data')
    system_param = {
        'SYSTEM':
        ParserNamespace(action='train',
                        num_threads=2,
                        num_gpus=4,
                        cuda_devices='6',
                        model_dir=model_dir,
                        dataset_split_file=os.path.join(
                            '.', 'testing_data', 'testtoyapp.csv'),
                        event_handler=[
                            'niftynet.engine.handler_model.ModelRestorer',
                            'niftynet.engine.handler_sampler.SamplerThreading',
                            'niftynet.engine.handler_gradient.ApplyGradients'
                        ],
                        iteration_generator=None),
        'NETWORK':
        ParserNamespace(batch_size=20, name='tests.toy_application.TinyNet'),
        'TRAINING':
        ParserNamespace(
            starting_iter=starting_iter,
            max_iter=500,
            save_every_n=20,
            tensorboard_every_n=1,
            max_checkpoints=20,
            optimiser='niftynet.engine.application_optimiser.Adagrad',
            validation_every_n=-1,
            exclude_fraction_for_validation=0.1,
            exclude_fraction_for_inference=0.1,
            vars_to_restore=vars_to_restore,
            patience=100,
            lr=0.01),
        'CUSTOM':
        ParserNamespace(vector_size=100,
                        mean=10.0,
                        stddev=2.0,
                        name=application)
    }
    app_driver = ApplicationDriver()
    app_driver.initialise_application(system_param, {})
    # set parameters without __init__
    app_driver.app.action_param = system_param['TRAINING']
    app_driver.app.net_param = system_param['NETWORK']
    app_driver.app.action = 'train'
    return app_driver
Exemplo n.º 4
0
def get_ill_image_window_2():
    return dict(source_names={
        'image': (u'modality1', u'modality2'),
        'label': (u'modality3', )
    },
                image_shapes={
                    'image': (192, 160, 192, 1, 2),
                    'label': (192, 160, 192, 1, 1)
                },
                image_dtypes={'image': tf.float32},
                window_sizes={
                    'modality1': ParserNamespace(spatial_window_size=(10, 10)),
                    'modality2': ParserNamespace(spatial_window_size=(10, 10)),
                    'modality3': ParserNamespace(spatial_window_size=())
                })
Exemplo n.º 5
0
def get_static_window_param():
    return dict(
        source_names={
            'image': (u'modality1', u'modality2'),
            'label': (u'modality3',)},
        image_shapes={
            'image': (192, 160, 192, 1, 2),
            'label': (192, 160, 192, 1, 1)},
        image_dtypes={
            'image': tf.float32,
            'label': tf.float32},
        data_param={
            'modality1': ParserNamespace(spatial_window_size=(10, 10, 2)),
            'modality2': ParserNamespace(spatial_window_size=(10, 10, 2)),
            'modality3': ParserNamespace(spatial_window_size=(5, 5, 1))}
    )
Exemplo n.º 6
0
def get_all_dynamic_image_window():
    return dict(
        source_names={
            'image': (u'modality1', u'modality2'),
            'label': (u'modality3',)},
        image_shapes={
            'image': (192, 160, 192, 1, 2),
            'label': (192, 160, 192, 1, 1)},
        image_dtypes={
            'image': tf.float32,
            'label': tf.float32},
        data_param={
            'modality1': ParserNamespace(spatial_window_size=(-1, -1)),
            'modality2': ParserNamespace(spatial_window_size=(-1, -1)),
            'modality3': ParserNamespace(spatial_window_size=-1)}
    )
Exemplo n.º 7
0
def preprocess(
    input_path,
    model_path,
    output_path,
    cutoff,
):
    input_path = Path(input_path)
    output_path = Path(output_path)
    input_dir = input_path.parent

    DATA_PARAM = {
        'Modality0':
        ParserNamespace(
            path_to_search=str(input_dir),
            filename_contains=('nii.gz', ),
            interp_order=0,
            pixdim=None,
            axcodes='RAS',
            loader=None,
        )
    }

    TASK_PARAM = ParserNamespace(image=('Modality0', ))
    data_partitioner = ImageSetsPartitioner()
    file_list = data_partitioner.initialise(DATA_PARAM).get_file_list()
    reader = ImageReader(['image'])
    reader.initialise(DATA_PARAM, TASK_PARAM, file_list)

    binary_masking_func = BinaryMaskingLayer(type_str='mean_plus', )

    hist_norm = HistogramNormalisationLayer(
        image_name='image',
        modalities=['Modality0'],
        model_filename=str(model_path),
        binary_masking_func=binary_masking_func,
        cutoff=cutoff,
        name='hist_norm_layer',
    )

    image = reader.output_list[0]['image']
    data = image.get_data()
    norm_image_dict, mask_dict = hist_norm({'image': data})
    data = norm_image_dict['image']
    nii = nib.Nifti1Image(data.squeeze(), image.original_affine[0])
    dst = output_path
    nii.to_filename(str(dst))
Exemplo n.º 8
0
def get_dynamic_image_window():
    window = ImageWindow.from_data_reader_properties(
        source_names={
            'image': (u'modality1', u'modality2'),
            'label': (u'modality3', )
        },
        image_shapes={
            'image': (192, 160, 192, 1, 2),
            'label': (192, 160, 192, 1, 1)
        },
        image_dtypes={
            'image': tf.float32,
            'label': tf.float32
        },
        data_param={
            'modality1': ParserNamespace(spatial_window_size=(10, 10)),
            'modality2': ParserNamespace(spatial_window_size=(10, 10)),
            'modality3': ParserNamespace(spatial_window_size=(5, 5, 1))
        })
    return window
Exemplo n.º 9
0
def get_initialised_driver(starting_iter=0):
    system_param = {
        'SYSTEM':
        ParserNamespace(action='train',
                        num_threads=2,
                        num_gpus=4,
                        cuda_devices='6',
                        model_dir=os.path.join('.', 'testing_data'),
                        dataset_split_file=os.path.join(
                            '.', 'testing_data', 'testtoyapp.csv')),
        'NETWORK':
        ParserNamespace(batch_size=20, name='tests.toy_application.TinyNet'),
        'TRAINING':
        ParserNamespace(
            starting_iter=starting_iter,
            max_iter=500,
            save_every_n=20,
            tensorboard_every_n=1,
            max_checkpoints=20,
            optimiser='niftynet.engine.application_optimiser.Adagrad',
            validation_every_n=-1,
            exclude_fraction_for_validation=0.1,
            exclude_fraction_for_inference=0.1,
            lr=0.01),
        'CUSTOM':
        ParserNamespace(vector_size=100,
                        mean=10.0,
                        stddev=2.0,
                        name='tests.toy_application.ToyApplication')
    }
    app_driver = ApplicationDriver()
    app_driver.initialise_application(system_param, {})
    # set parameters without __init__
    app_driver.app.action_param = system_param['TRAINING']
    app_driver.app.net_param = system_param['NETWORK']
    app_driver.app.is_training = True
    return app_driver
Exemplo n.º 10
0
import os

import tensorflow as tf

from niftynet.contrib.dataset_sampler.sampler_resize_v2 import ResizeSampler
from niftynet.io.image_reader import ImageReader
from niftynet.io.image_sets_partitioner import ImageSetsPartitioner
from niftynet.utilities.util_common import ParserNamespace

MULTI_MOD_DATA = {
    'T1':
    ParserNamespace(csv_file=os.path.join('testing_data', 'T1sampler.csv'),
                    path_to_search='testing_data',
                    filename_contains=('_o_T1_time', ),
                    filename_not_contains=('Parcellation', ),
                    interp_order=3,
                    pixdim=None,
                    axcodes=None,
                    spatial_window_size=(7, 10, 2),
                    loader=None),
    'FLAIR':
    ParserNamespace(csv_file=os.path.join('testing_data', 'FLAIRsampler.csv'),
                    path_to_search='testing_data',
                    filename_contains=('FLAIR_', ),
                    filename_not_contains=('Parcellation', ),
                    interp_order=3,
                    pixdim=None,
                    axcodes=None,
                    spatial_window_size=(7, 10, 2),
                    loader=None)
}
from niftynet.io.image_sets_partitioner import ImageSetsPartitioner
from niftynet.layer.discrete_label_normalisation import \
    DiscreteLabelNormalisationLayer
from niftynet.layer.pad import PadLayer
from niftynet.utilities.util_common import ParserNamespace
from tests.niftynet_testcase import NiftyNetTestCase

NEW_ORDER = (0, 1, 2, 4, 3)
NEW_ORDER_2D = (0, 1, 3, 2)
MULTI_MOD_DATA = {
    'T1':
    ParserNamespace(csv_file=os.path.join('testing_data', 'T1sampler.csv'),
                    path_to_search='testing_data',
                    filename_contains=('_o_T1_time', '23'),
                    filename_not_contains=('Parcellation', ),
                    interp_order=0,
                    pixdim=(2.4, 5.0, 2.0),
                    axcodes='LAS',
                    spatial_window_size=(23, 32, 15),
                    loader=None),
    'FLAIR':
    ParserNamespace(csv_file=os.path.join('testing_data', 'FLAIRsampler.csv'),
                    path_to_search='testing_data',
                    filename_contains=('FLAIR_', '23'),
                    filename_not_contains=('Parcellation', ),
                    interp_order=0,
                    pixdim=(2.4, 5.0, 2.0),
                    axcodes='LAS',
                    spatial_window_size=(23, 32, 15),
                    loader=None)
}
Exemplo n.º 12
0
import os

import tensorflow as tf

from niftynet.engine.sampler_linear_interpolate import LinearInterpolateSampler
from niftynet.io.image_reader import ImageReader
from niftynet.io.image_sets_partitioner import ImageSetsPartitioner
from niftynet.utilities.util_common import ParserNamespace

MULTI_MOD_DATA = {
    'T1': ParserNamespace(
        csv_file=os.path.join('testing_data', 'T1sampler.csv'),
        path_to_search='testing_data',
        filename_contains=('_o_T1_time',),
        filename_not_contains=('Parcellation',),
        interp_order=3,
        pixdim=None,
        axcodes=None,
        spatial_window_size=(7, 10, 2)
    ),
    'FLAIR': ParserNamespace(
        csv_file=os.path.join('testing_data', 'FLAIRsampler.csv'),
        path_to_search='testing_data',
        filename_contains=('FLAIR_',),
        filename_not_contains=('Parcellation',),
        interp_order=3,
        pixdim=None,
        axcodes=None,
        spatial_window_size=(7, 10, 2)
    )
}
Exemplo n.º 13
0
import os

import tensorflow as tf

from niftynet.io.image_sets_partitioner import COLUMN_UNIQ_ID
from niftynet.io.image_sets_partitioner import ImageSetsPartitioner
from niftynet.io.image_sets_partitioner import TRAIN, VALID, INFER
from niftynet.utilities.util_common import ParserNamespace

test_sections = {
    'T1':
    ParserNamespace(csv_file=os.path.join('testing_data', 'test_reader.csv'),
                    path_to_search='testing_data',
                    filename_contains=('_o_T1_time', ),
                    filename_not_contain=('Parcellation', ),
                    interp_order=3,
                    pixdim=None,
                    axcodes=None,
                    loader=None),
    'Flair':
    ParserNamespace(csv_file=os.path.join('testing_data',
                                          'test_Flairreader.csv'),
                    path_to_search='testing_data',
                    filename_contains=('FLAIR_', ),
                    filename_not_contains=('Parcellation', ),
                    interp_order=3,
                    pixdim=None,
                    axcodes=None,
                    loader=None)
}
Exemplo n.º 14
0
import tensorflow as tf

from niftynet.io.image_reader import ImageReader
from niftynet.io.image_sets_partitioner import ImageSetsPartitioner
from niftynet.layer.discrete_label_normalisation import \
    DiscreteLabelNormalisationLayer
from niftynet.layer.pad import PadLayer
from niftynet.utilities.util_common import ParserNamespace

# test multiple modalities
MULTI_MOD_DATA = {
    'T1':
    ParserNamespace(csv_file=os.path.join('testing_data', 'T1reader.csv'),
                    path_to_search='testing_data',
                    filename_contains=('_o_T1_time', ),
                    filename_not_contains=('Parcellation', ),
                    interp_order=3,
                    pixdim=None,
                    axcodes=None),
    'FLAIR':
    ParserNamespace(csv_file=os.path.join('testing_data', 'FLAIRreader.csv'),
                    path_to_search='testing_data',
                    filename_contains=('FLAIR_', ),
                    filename_not_contains=('Parcellation', ),
                    interp_order=3,
                    pixdim=None,
                    axcodes=None)
}
MULTI_MOD_TASK = ParserNamespace(image=('T1', 'FLAIR'))

# test single modalities
from niftynet.contrib.csv_reader.sampler_csvpatch import CSVPatchSampler
from niftynet.engine.image_window import N_SPATIAL
# from niftynet.engine.sampler_uniform import UniformSampler
from niftynet.engine.sampler_uniform_v2 import rand_spatial_coordinates
from niftynet.io.image_reader import ImageReader
from niftynet.io.image_sets_partitioner import ImageSetsPartitioner
from niftynet.utilities.util_common import ParserNamespace
from tests.niftynet_testcase import NiftyNetTestCase

DYNAMIC_MOD_DATA = {
    'T1':
    ParserNamespace(csv_file='',
                    path_to_search='data/csv_data',
                    filename_contains=(),
                    filename_not_contains=('_', 'csv'),
                    interp_order=3,
                    csv_data_file='',
                    pixdim=None,
                    axcodes=None,
                    spatial_window_size=(69, 69, 69),
                    loader=None),
    'sampler':
    ParserNamespace(csv_file='',
                    path_to_search='',
                    filename_contains=(),
                    filename_not_contains=(),
                    interp_order=0,
                    pixdim=None,
                    axcodes=None,
                    spatial_window_size=(),
                    loader=None,
                    csv_data_file='data/csv_data/ICBMTest3.csv')
Exemplo n.º 16
0
from niftynet.io.image_sets_partitioner import ImageSetsPartitioner
from niftynet.layer.discrete_label_normalisation import \
    DiscreteLabelNormalisationLayer
from niftynet.layer.pad import PadLayer
from niftynet.utilities.util_common import ParserNamespace
from tests.reader_modular_test import generate_2d_images, SEG_THRESHOLD
from tests.niftynet_testcase import NiftyNetTestCase

generate_2d_images()
# test multiple modalities
MULTI_MOD_DATA = {
    'T1':
    ParserNamespace(csv_file=os.path.join('testing_data', 'T1reader.csv'),
                    path_to_search='testing_data',
                    filename_contains=('_o_T1_time', ),
                    filename_not_contains=('Parcellation', ),
                    interp_order=3,
                    pixdim=None,
                    axcodes=None,
                    loader=None),
    'FLAIR':
    ParserNamespace(csv_file=os.path.join('testing_data', 'FLAIRreader.csv'),
                    path_to_search='testing_data',
                    filename_contains=('FLAIR_', ),
                    filename_not_contains=('Parcellation', ),
                    interp_order=3,
                    pixdim=None,
                    axcodes=None,
                    loader=None)
}
MULTI_MOD_TASK = ParserNamespace(image=('T1', 'FLAIR'))
from niftynet.io.image_reader import ImageReader
from niftynet.io.image_sets_partitioner import ImageSetsPartitioner
from niftynet.layer.binary_masking import BinaryMaskingLayer
from niftynet.layer.histogram_normalisation import \
    HistogramNormalisationLayer
from niftynet.layer.mean_variance_normalisation import \
    MeanVarNormalisationLayer
from niftynet.utilities.util_common import ParserNamespace
from tests.niftynet_testcase import NiftyNetTestCase

DATA_PARAM = {
    'T1':
    ParserNamespace(csv_file=os.path.join('testing_data', 'T1.csv'),
                    path_to_search='testing_data',
                    filename_contains=('_o_T1_time', ),
                    filename_not_contains=('Parcellation', ),
                    interp_order=3,
                    pixdim=None,
                    axcodes=None,
                    loader=None),
    'FLAIR':
    ParserNamespace(csv_file=os.path.join('testing_data', 'FLAIR.csv'),
                    path_to_search='testing_data',
                    filename_contains=('FLAIR_', ),
                    filename_not_contains=('Parcellation', ),
                    interp_order=3,
                    pixdim=None,
                    axcodes=None,
                    loader=None)
}
TASK_PARAM = ParserNamespace(image=('T1', 'FLAIR'))
MODEL_FILE = os.path.join('testing_data', 'std_models.txt')