DAR-UNet
DAR-UNet copied to clipboard
[JBHI2022] A novel 3D unsupervised domain adaptation framework for cross-modality medical image segmentation
前辈你好,我对你们使用的对数据的预处理方式很感兴趣,并希望自己尝试一下。 在3d的dataloader中你们使用了volumentations来进行aug,然后直接用已经i2i_translated的图像进行分割网络的训练,就不会有问题。 但我所使用的框架中需要先使用dataloader进行数据的读取和预处理,再进行源域图像向目标域图像的translate,之后再统一训练分割网络, 在我所使用的框架的训练准备过程中,先是使用了dataloader(我们几乎直接使用了你的dataloader3d.py,数据集来源也是你的文件来源,仅是简单地将.npy转换成了.nii,以方便使用SimpleITK进行读取) ``` db_train_t = SEGDataset(root=args.root_path_t, n_class=args.num_classes) db_train_s = SEGDataset(root=args.root_path_s, n_class=args.num_classes) trainloader_t = DataLoader(db_train_t, batch_size=batch_size_half, shuffle=True, num_workers=0, pin_memory=True, worker_init_fn=worker_init_fn) trainloader_s = DataLoader(db_train_s, batch_size=batch_size_half, shuffle=True, num_workers=0, pin_memory=True, worker_init_fn=worker_init_fn) ```...
您好,感谢你这项出色的工作,我有两个问题想要向您请教, 1) 在stage_1.5_i2i_inference.py中,您给出了CT2MR的代码,我用您给出的数据中的 'source_training_npy'和'target_training_npy'文件夹下 的数据作为source和target进行了CT2MR的转换(使用权重'enc_40.pt').但是效果相较您转换好的('source2target_training_npy_multi_style'文件下的结果)有一定差距,想知道这是什么原因造成的? 2) 为了进行MR2CT的转换,根据我的理解,我把stage_1.5_i2i_inference.py'中的 https://github.com/Kaiseem/DAR-UNet/blob/056d3fc2918d8a9056ad75f99c87ce45045406cd/stage_1.5_i2i_inference.py#L33 更改为: s=trainer.enc_s_a(single_img).cpu().numpy()[0] 并交换了source和target的文件夹路径,不知道这样的做法是否正确?结果仍有差距,且差距相比问题1更大。 如图是CT2MR和MR2CT的转换结果:  
作者您好!您的思路独具特色,效果也非常好,我尝试使用您公开的代码进行实验, 在观察您的issue后,我使用了您分享的阶段2数据集进行阶段2的实验,但是我遇到了如下两个问题: 1.您在dataloader3d文件的getitem函数返回的是 output = {'img': A_img, 'label': A_label}, 但是在模型训练的时候使用的是 A_img=train_A_data['A_img'].cuda() A_label=train_A_data['A_label'].cuda() 导致如下报错 Traceback (most recent call last): File "/home/lab312/PycharmProjects/DAR-UNet-main/stage_2_seg_train.py", line 132, in A_img=train_A_data['A_img'].cuda() KeyError: 'A_img' 请问这里是否应该改为 A_img=train_A_data['img'].cuda() A_label=train_A_data['label'].cuda() 2.我尝试将代码改为...
感谢作者的工作,抱歉打扰您了。关于我使用您第二阶段训练分割网络的代码,我得到了分割网络best.pt文件,然后我使用权重和您提供的测试代码,出现了key缺失的报错。具体如下: RuntimeError: Error(s) in loading state_dict for DARUnet: Missing key(s) in state_dict: "L1_fromimg.conv_block.0.weight", "L1_fromimg.conv_block.0.bias", "L1_fromimg.conv_block.1.weight", "L1_fromimg.conv_block.1.bias", "L1_fromimg.conv_block.3.weight", "L1_fromimg.conv_block.3.bias", "L1_fromimg.conv_block.4.weight", "L1_fromimg.conv_block.4.bias", "L1_fromimg.conv_block.6.weight", "L1_fromimg.conv_block.6.bias", "L1_fromimg.conv_skip.0.weight", "L1_fromimg.conv_skip.0.bias", "L1_fromimg.conv_skip.1.weight", "L1_fromimg.conv_skip.1.bias", "L1_fromimg.qam.branchs.0.compress.1.weight", "L1_fromimg.qam.branchs.0.compress.2.weight", "L1_fromimg.qam.branchs.0.compress.2.bias", "L1_fromimg.qam.branchs.0.compress.2.running_mean",...