Yanfeng-Zhou / XNet

[ICCV2023] XNet: Wavelet-Based Low and High Frequency Merging Networks for Semi- and Supervised Semantic Segmentation of Biomedical Images
MIT License
184 stars 8 forks source link

关于CREMI数据输入预处理 #7

Closed VinyehShaw closed 10 months ago

VinyehShaw commented 11 months ago

作者大大,数据处理readme中没写的很详细我想确认下我想的是否正确 1.对于CREMI数据,是不是原始尺寸12501250,滑动窗口切成 256256,然后online_aug.py改成128128,然后小波变换分成LH两个64128size大小的输入吗 2.CREMI数据的掩码处理用的也是res_image_mask.py吗

Yanfeng-Zhou commented 11 months ago

正确顺序应该是这样的:(1)滑窗裁剪至256256(同时掩码也需要一摸一样的操作),(2)小波变换得到128128的L和H(掩码也可以resize一份128128的,但不强求,因为后面训练的时候online_aug.py会将mask和image的size调整到一致),(3)训练模型(训练尺寸根据online_aug.py里的参数来确定,我在论文中用的是128128) res_image_mask.py是给conresnet生成掩码用的,至于conresnet为什么需要这种掩码请看它的原论文

VinyehShaw commented 11 months ago

作者大大你好,请教下为什么xnet在训练输入时L和H在经过branch1和2时的通道数为何定义不同一个是3一个是1,定位到xnet.py 132和170行。

self.b1_1_1 = nn.Sequential(
            conv3x3(in_channels, l1c),
            conv3x3(l1c, l1c),
            BasicBlock(l1c, l1c)
        )

self.b2_1_1 = nn.Sequential(
            conv3x3(1, l1c),
            conv3x3(l1c, l1c),
            BasicBlock(l1c, l1c)
        )

我不知道我数据处理的对不对,在train_sup_Xnet.py中 我的两个输入和mask大小分别为 2,3,128,128 、2,3,128,128、 2,128,128、 我理解的经过小波变换后L和H通道数是一样的,是不是我理解错了

 for i, data in enumerate(dataloaders['train']):

            inputs_train_1 = Variable(data['image'].cuda()) #2,3,128,128
            inputs_train_2 = Variable(data['image_2'].cuda())#2,3,128,128 
            mask_train = Variable(data['mask'].cuda())#2,128,128

            optimizer.zero_grad()
            outputs_train1, outputs_train2 = model(inputs_train_1, inputs_train_2)#通道数不对了
            torch.cuda.empty_cache()

希望指教感谢

Yanfeng-Zhou commented 11 months ago

我在写XNet的架构的时候,是在其它基线模型之后,所以习惯性的写了in_channels这个参数,并且把in_channels的默认值习惯性设置为3,在config/dataset_config.py中配置的数据集IN_CHANNELS也是基于数据集原始图像的通道数而确定,这是方便其它基线模型的使用。这不是什么大问题,你在使用的时候注意自己结合数据集的情况调整in_channels就行。 另外,对于原始数据是RGB三通道的图像来说,其实小波变换的方式非常灵活。你可以先将RGB三通道转换成灰度图在进行小波变换得到L和H,这样L和H就是单通道的,训练输入就是[2,1,128,128]。你也可以分别对R、G、B三个通道各自进行小波变换得到各个通道对应的L和H,在concatenate起来,这样训练输入就是三通道的[2,3,128,128]。第二种方法的性能会稍微好一丁点,但说实话这对性能的差异影响不大。

HsiangHui-Zee commented 10 months ago

正确顺序应该是这样的:(1)滑窗裁剪至256256(同时掩码也需要一摸一样的操作),(2)小波变换得到128128的L和H(掩码也可以resize一份128128的,但不强求,因为后面训练的时候online_aug.py会将mask和image的size调整到一致),(3)训练模型(训练尺寸根据online_aug.py里的参数来确定,我在论文中用的是128128) res_image_mask.py是给conresnet生成掩码用的,至于conresnet为什么需要这种掩码请看它的原论文

作者大大您好,这里如何是从原始的cremi数据集(hdf)当中得到对应的掩码的呢,也就是如何获得不同神经元的区域,请您不吝赐教,万分感谢!

yangz9527 commented 5 months ago

作者大大,数据处理readme中没写的很详细我想确认下我想的是否正确 1.对于CREMI数据,是不是原始尺寸12501250,滑动窗口切成 256256,然后online_aug.py改成128128,然后小波变换分成LH两个64128size大小的输入吗 2.CREMI数据的掩码处理用的也是res_image_mask.py吗

您好 我想问问您是怎么处理数据集的HDF文件并对他进行预处理的 如果可以的话不知您是否可以提供一下关于CREMI数据预处理的代码

indifferenttan commented 5 months ago

作者大大,数据处理readme中没写的很详细我想确认下我想的是否正确 1.对于CREMI数据,是不是原始尺寸12501250,滑动窗口切成 256256,然后online_aug.py改成128128,然后小波变换分成LH两个64128大小的输入吗 2.CREMI数据的掩码处理用的也是res_image_mask.py吗

您好 我想问问您是怎么处理数据集的HDF文件并对他进行预处理的 如果可以的话,不知您是否可以提供一下关于CREMI数据预处理的代码

同问,请问能提供相应代码吗?

HsiangHui-Zee commented 5 months ago

作者大大,数据处理readme中没写的很详细我想确认下我想的是否正确 1.对于CREMI数据,是不是原始尺寸12501250,滑动窗口切成 256256,然后online_aug.py改成128128,然后小波变换分成LH两个64128size大小的输入吗 2.CREMI数据的掩码处理用的也是res_image_mask.py吗

您好 我想问问您是怎么处理数据集的HDF文件并对他进行预处理的 如果可以的话不知您是否可以提供一下关于CREMI数据预处理的代码

这个我后来找到的一份代码倒是,有需要的可以联系我

simzhangbest commented 3 weeks ago

作者大大,数据处理readme中没写的很详细我想确认下我想的是否正确 1.对于CREMI数据,是不是原始尺寸12501250,滑动窗口切成 256256,然后online_aug.py改成128128,然后小波变换分成LH两个64128size大小的输入吗 2.CREMI数据的掩码处理用的也是res_image_mask.py吗

您好 我想问问您是怎么处理数据集的HDF文件并对他进行预处理的 如果可以的话不知您是否可以提供一下关于CREMI数据预处理的代码

这个我后来找到的一份代码倒是,有需要的可以联系我

您好,请问如何联系你,获取一份 数据预处理的代码,谢谢