Skip to content

Commit

Permalink
call NumpyToTensor last (#818)
Browse files Browse the repository at this point in the history
* call NumpyToTensor before NormalizeInstance

* fixing tests

* call NumpyToTensor last

* fix tests

* use new release of data_functional_test
  • Loading branch information
cakester committed Jun 17, 2021
1 parent 805b394 commit 8437ee1
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 11 deletions.
2 changes: 1 addition & 1 deletion ivadomed/scripts/download_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"url": ["https://github.com/ivadomed/model_find_disc_t2/archive/r20200928.zip"],
"description": "Intervertebral disc detection model trained on T2-weighted images."},
"data_functional_testing": {
"url": ["https://github.com/ivadomed/data_functional_testing/archive/r20210204.zip"],
"url": ["https://github.com/ivadomed/data_functional_testing/archive/r20210617.zip"],
"description": "Data used for functional testing in Ivadomed."
}

Expand Down
6 changes: 5 additions & 1 deletion ivadomed/scripts/visualize_transforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import nibabel as nib
import numpy as np
import random
import torch

from ivadomed import config_manager as imed_config_manager
from ivadomed.loader import utils as imed_loader_utils
Expand Down Expand Up @@ -158,7 +159,10 @@ def run_visualization(input, config, number, output, roi):
before = np.rot90(imed_maths.rescale_values_array(data[0], 0.0, 1.0))
else:
before = after
after = np.rot90(imed_maths.rescale_values_array(stack_im[0], 0.0, 1.0))
if isinstance(stack_im[0], torch.Tensor):
after = np.rot90(imed_maths.rescale_values_array(stack_im[0].numpy(), 0.0, 1.0))
else:
after = np.rot90(imed_maths.rescale_values_array(stack_im[0], 0.0, 1.0))
# Plot
imed_utils.plot_transformed_sample(before,
after,
Expand Down
17 changes: 13 additions & 4 deletions ivadomed/transforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,13 +142,17 @@ def __init__(self, dict_transforms, requires_undo=False):
"gt": torchvision_transforms.Compose(list_tr_gt),
"roi": torchvision_transforms.Compose(list_tr_roi)}

def __call__(self, sample, metadata, data_type='im'):
def __call__(self, sample, metadata, data_type='im', preprocessing=False):
if self.transform[data_type] is None or len(metadata) == 0:
# In case self.transform[data_type] is None
return None, None
else:
for tr in self.transform[data_type].transforms:
sample, metadata = tr(sample, metadata)

if not preprocessing:
numpy_to_tensor = NumpyToTensor()
sample, metadata = numpy_to_tensor(sample, metadata)
return sample, metadata


Expand All @@ -172,6 +176,8 @@ def __call__(self, sample, metadata, data_type='gt'):
# In case self.transforms.transform[data_type] is None
return None, None
else:
numpy_to_tensor = NumpyToTensor()
sample, metadata = numpy_to_tensor.undo_transform(sample, metadata)
for tr in self.transforms.transform[data_type].transforms[::-1]:
sample, metadata = tr.undo_transform(sample, metadata)
return sample, metadata
Expand Down Expand Up @@ -1067,17 +1073,20 @@ def apply_preprocessing_transforms(transforms, seg_pair, roi_pair=None):
if roi_pair is not None:
stack_roi, metadata_roi = transforms(sample=roi_pair["gt"],
metadata=roi_pair['gt_metadata'],
data_type="roi")
data_type="roi",
preprocessing=True)
metadata_input = imed_loader_utils.update_metadata(metadata_roi, metadata_input)
# Run transforms on images
stack_input, metadata_input = transforms(sample=seg_pair["input"],
metadata=metadata_input,
data_type="im")
data_type="im",
preprocessing=True)
# Run transforms on images
metadata_gt = imed_loader_utils.update_metadata(metadata_input, seg_pair['gt_metadata'])
stack_gt, metadata_gt = transforms(sample=seg_pair["gt"],
metadata=metadata_gt,
data_type="gt")
data_type="gt",
preprocessing=True)

seg_pair = {
'input': stack_input,
Expand Down
3 changes: 0 additions & 3 deletions testing/functional_tests/test_segment_volume.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ def test_segment_volume_2d(download_functional_test_files):
"applied_to": ["im", "gt"],
"dataset_type": ["training"]
},
"NumpyToTensor": {},
"NormalizeInstance": {"applied_to": ["im"]}
},
"postprocessing": {},
Expand Down Expand Up @@ -117,7 +116,6 @@ def test_segment_volume_2d_with_patches(download_functional_test_files, center_c
"applied_to": ["im", "gt"],
"dataset_type": ["training"]
},
"NumpyToTensor": {},
"NormalizeInstance": {"applied_to": ["im"]}
},
"postprocessing": {},
Expand Down Expand Up @@ -182,7 +180,6 @@ def test_segment_volume_3d(download_functional_test_files, center_crop):
"applied_to": ["im", "gt"],
"dataset_type": ["training"]
},
"NumpyToTensor": {},
"NormalizeInstance": {"applied_to": ["im"]}
},
"postprocessing": {},
Expand Down
1 change: 0 additions & 1 deletion testing/unit_tests/test_orientation.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ def test_image_orientation(download_data_testing_test_files, loader_parameters):
{
"size": [176, 128, 160]
},
"NumpyToTensor": {},
"NormalizeInstance": {"applied_to": ['im']}
}

Expand Down
1 change: 0 additions & 1 deletion testing/unit_tests/test_testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ def setup_function():
"CenterCrop": {
"size": [48, 48]
},
"NumpyToTensor": {},
"NormalizeInstance": {"applied_to": ["im"]}
}])
@pytest.mark.parametrize('test_lst', [['sub-unf01']])
Expand Down

0 comments on commit 8437ee1

Please sign in to comment.