def cmr_3d_sax_transform(self):

        train_transform = ts.Compose([
            ts.Pad(size=self.scale_size),
            ts.ToTensor(),
            ts.ChannelsFirst(),
            ts.TypeCast(['float', 'float']),
            ts.RandomFlip(h=True, v=True, p=self.random_flip_prob),
            ts.RandomAffine(rotation_range=self.rotate_val,
                            translation_range=self.shift_val,
                            zoom_range=self.scale_val,
                            interp=('bilinear', 'nearest')),
            #ts.NormalizeMedicPercentile(norm_flag=(True, False)),
            ts.NormalizeMedic(norm_flag=(True, False)),
            ts.ChannelsLast(),
            ts.AddChannel(axis=0),
            ts.RandomCrop(size=self.patch_size),
            ts.TypeCast(['float', 'long'])
        ])

        valid_transform = ts.Compose([
            ts.Pad(size=self.scale_size),
            ts.ToTensor(),
            ts.ChannelsFirst(),
            ts.TypeCast(['float', 'float']),
            #ts.NormalizeMedicPercentile(norm_flag=(True, False)),
            ts.NormalizeMedic(norm_flag=(True, False)),
            ts.ChannelsLast(),
            ts.AddChannel(axis=0),
            ts.SpecialCrop(size=self.patch_size, crop_type=0),
            ts.TypeCast(['float', 'long'])
        ])

        return {'train': train_transform, 'valid': valid_transform}
    def ct_82_transform(self):
        train_transform = ts.Compose([
                                      ts.ToTensor(),
                                      ts.RangeNormalize(0, 1),
                                      ts.Pad(size=self.scale_size),
                                      ts.TypeCast(['float', 'float']),
                                      RandomFlip3D(z=True, x=True, y=True, p=self.random_flip_prob),
                                      RandomAffine3D(degrees=self.rotate_val, translate=self.shift_val,
                                                      scale=self.scale_val, resample=Image.NEAREST),
                                      CustomCrop3D(size=self.patch_size, crop_type="random"),
                                      ts.AddChannel(axis=0),
                                      # ts.TypeCast(['float', 'float'])
                                ])


        valid_transform = ts.Compose([
                                      ts.ToTensor(),
                                      ts.RangeNormalize(0, 1),
                                      ts.Pad(size=self.scale_size),
                                      ts.TypeCast(['float', 'float']),
                                      CustomCrop3D(size=self.patch_size, crop_type="center"),
                                      ts.AddChannel(axis=0),
                                      # ts.TypeCast(['float', 'float'])
                                ])

        return {'train': train_transform, 'valid': valid_transform}
Ejemplo n.º 3
0
    def test_3d_sax_transform(self):
        test_transform = ts.Compose([
            ts.PadFactorNumpy(factor=self.division_factor),
            ts.ToTensor(),
            ts.ChannelsFirst(),
            ts.TypeCast(['float']),
            #ts.NormalizeMedicPercentile(norm_flag=True),
            ts.NormalizeMedic(norm_flag=True),
            ts.ChannelsLast(),
            ts.AddChannel(axis=0),
        ])

        return {'test': test_transform}
    def ultrasound_transform(self):

        train_transform = ts.Compose([ts.ToTensor(),
                                      ts.TypeCast(['float']),
                                      ts.AddChannel(axis=0),
                                      ts.SpecialCrop(self.patch_size,0),
                                      ts.RandomFlip(h=True, v=False, p=self.random_flip_prob),
                                      ts.RandomAffine(rotation_range=self.rotate_val,
                                                      translation_range=self.shift_val,
                                                      zoom_range=self.scale_val,
                                                      interp=('bilinear')),
                                      ts.StdNormalize(),
                                ])

        valid_transform = ts.Compose([ts.ToTensor(),
                                      ts.TypeCast(['float']),
                                      ts.AddChannel(axis=0),
                                      ts.SpecialCrop(self.patch_size,0),
                                      ts.StdNormalize(),
                                ])

        return {'train': train_transform, 'valid': valid_transform}
Ejemplo n.º 5
0
    random.seed(c)
    print("random seed: {}".format(c))
    comment = "20/200 with parameter per slice and all slices"
    print(comment)

    patient_id_G_test = random.sample(patient_id_G, 20)
    patient_id_H_test = random.sample(patient_id_H, 200)

    patient_id_G_train = list(patient_id_G.difference(patient_id_G_test))
    patient_id_H_train = list(patient_id_H.difference(patient_id_H_test))

    transform_pipeline_train = tr.Compose([
        AddGaussian(),
        AddGaussian(ismulti=False),
        tr.ToTensor(),
        tr.AddChannel(axis=0),
        tr.TypeCast('float'),
        # Attenuation((-.001, .1)),
        # tr.RangeNormalize(0,1),
        tr.RandomBrightness(-.2, .2),
        tr.RandomGamma(.9, 1.1),
        tr.RandomFlip(),
        tr.RandomAffine(rotation_range=5,
                        translation_range=0.2,
                        zoom_range=(0.9, 1.1))
    ])

    transform_pipeline_test = tr.Compose([
        tr.ToTensor(),
        tr.AddChannel(axis=0),
        tr.TypeCast('float')
Ejemplo n.º 6
0
        for epoch in range(1, nb_epoch + 1):
            seg_train(epoch, unet_model, seg_train_loader, criterion, optimizer)
            # print("Test AUC:", auc_cal(model, testloader))
            # test(model, testloader)
        torch.save(unet_model, os.path.join(model_repo_dir, 'unet.pt'))

    #Training UNET END


    #Training Diag network START
    transform_pipeline_train = tr.Compose(
        [
         # AddGaussian(),
         # AddGaussian(ismulti=False),
         tr.ToTensor(), tr.AddChannel(axis=0), tr.TypeCast('float'),
         # Attenuation((-.001, .1)),
         # tr.RangeNormalize(0,1),
         tr.RandomBrightness(-.2, .2),
         tr.RandomGamma(.9, 1.1),
         tr.RandomFlip(),
         tr.RandomAffine(rotation_range=5, translation_range=0.2
                         # zoom_range=(0.9, 1.1)
                         )])

    transform_pipeline_test = tr.Compose([tr.ToTensor(), tr.AddChannel(axis=0), tr.TypeCast('float')
                                          # tr.RangeNormalize(0, 1)
                                          ])

    transformed_images = Beijing_diag_dataset(root_dir, patient_id_G_train, patient_id_H_train, resize_dim= (96,288),
                                         transform=transform_pipeline_train)