Esempio n. 1
0
 def test_shape(self, expected_shape):
     test_image = nib.Nifti1Image(
         np.random.randint(0, 2, size=[128, 128, 128]), np.eye(4))
     tempdir = tempfile.mkdtemp()
     nib.save(test_image, os.path.join(tempdir, 'test_image1.nii.gz'))
     nib.save(test_image, os.path.join(tempdir, 'test_label1.nii.gz'))
     nib.save(test_image, os.path.join(tempdir, 'test_extra1.nii.gz'))
     nib.save(test_image, os.path.join(tempdir, 'test_image2.nii.gz'))
     nib.save(test_image, os.path.join(tempdir, 'test_label2.nii.gz'))
     nib.save(test_image, os.path.join(tempdir, 'test_extra2.nii.gz'))
     test_data = [{
         'image': os.path.join(tempdir, 'test_image1.nii.gz'),
         'label': os.path.join(tempdir, 'test_label1.nii.gz'),
         'extra': os.path.join(tempdir, 'test_extra1.nii.gz')
     }, {
         'image': os.path.join(tempdir, 'test_image2.nii.gz'),
         'label': os.path.join(tempdir, 'test_label2.nii.gz'),
         'extra': os.path.join(tempdir, 'test_extra2.nii.gz')
     }]
     dataset = Dataset(
         data=test_data,
         transform=LoadNiftid(keys=['image', 'label', 'extra']))
     data1 = dataset[0]
     data2 = dataset[1]
     shutil.rmtree(tempdir)
     self.assertTupleEqual(data1['image'].shape, expected_shape)
     self.assertTupleEqual(data1['label'].shape, expected_shape)
     self.assertTupleEqual(data1['extra'].shape, expected_shape)
     self.assertTupleEqual(data2['image'].shape, expected_shape)
     self.assertTupleEqual(data2['label'].shape, expected_shape)
     self.assertTupleEqual(data2['extra'].shape, expected_shape)
Esempio n. 2
0
 def test_shape(self, input_param, expected_shape):
     test_image = nib.Nifti1Image(
         np.random.randint(0, 2, size=[128, 128, 128]), np.eye(4))
     tempdir = tempfile.mkdtemp()
     test_data = dict()
     for key in KEYS:
         nib.save(test_image, os.path.join(tempdir, key + '.nii.gz'))
         test_data.update({key: os.path.join(tempdir, key + '.nii.gz')})
     result = LoadNiftid(**input_param)(test_data)
     shutil.rmtree(tempdir)
     for key in KEYS:
         self.assertTupleEqual(result[key].shape, expected_shape)
Esempio n. 3
0
                                   num_seg_classes=1,
                                   channel_dim=-1)

    n = nib.Nifti1Image(im, np.eye(4))
    nib.save(n, os.path.join(tempdir, 'im%i.nii.gz' % i))

    n = nib.Nifti1Image(seg, np.eye(4))
    nib.save(n, os.path.join(tempdir, 'seg%i.nii.gz' % i))

images = sorted(glob(os.path.join(tempdir, 'im*.nii.gz')))
segs = sorted(glob(os.path.join(tempdir, 'seg*.nii.gz')))
val_files = [{'img': img, 'seg': seg} for img, seg in zip(images, segs)]

# Define transforms for image and segmentation
val_transforms = transforms.Compose([
    LoadNiftid(keys=['img', 'seg']),
    AsChannelFirstd(keys=['img', 'seg'], channel_dim=-1),
    Rescaled(keys=['img', 'seg'])
])
val_ds = monai.data.Dataset(data=val_files, transform=val_transforms)

device = torch.device("cuda:0")
net = UNet(
    dimensions=3,
    in_channels=1,
    out_channels=1,
    channels=(16, 32, 64, 128, 256),
    strides=(2, 2, 2, 2),
    num_res_units=2,
)
net.to(device)
Esempio n. 4
0
    "/workspace/data/medical/ixi/IXI-T1/IXI584-Guys-1129-T1.nii.gz",
    "/workspace/data/medical/ixi/IXI-T1/IXI253-HH-1694-T1.nii.gz",
    "/workspace/data/medical/ixi/IXI-T1/IXI092-HH-1436-T1.nii.gz",
    "/workspace/data/medical/ixi/IXI-T1/IXI574-IOP-1156-T1.nii.gz",
    "/workspace/data/medical/ixi/IXI-T1/IXI585-Guys-1130-T1.nii.gz"
]
# 2 binary labels for gender classification: man and woman
labels = np.array([0, 0, 1, 0, 1, 0, 1, 0, 1, 0])
val_files = [{
    'img': img,
    'label': label
} for img, label in zip(images, labels)]

# Define transforms for image
val_transforms = transforms.Compose([
    LoadNiftid(keys=['img']),
    AddChanneld(keys=['img']),
    Rescaled(keys=['img']),
    Resized(keys=['img'], output_spatial_shape=(96, 96, 96))
])

# Create DenseNet121
net = monai.networks.nets.densenet3d.densenet121(
    in_channels=1,
    out_channels=2,
)
device = torch.device("cuda:0")


def prepare_batch(batch, device=None, non_blocking=False):
    return _prepare_batch((batch['img'], batch['label']), device, non_blocking)