用自己的数据集实战CycleGAN

       最近在做关于跨模态的医学图像生成,所以今天就跟大家聊一聊如何用自己的数据集训练CycleGAN吧~

       首先,我们来聊聊什么是CycleGAN?

       CycleGAN的一个重要应用领域是Domain Adaptation(域迁移:可以通俗的理解为画风迁移),比如可以把一张普通的风景照变化成梵高化作,或者将游戏画面变化成真实世界画面等等(如图1)。

图1 效果预览

       CycleGAN特点就是通过一个循环,首先将图像从一个域转换到另一个域,然后,再转回来,如果两次转换都很精准的话,那么,转换后的图像应该与输入的图像基本一致。通过这样的的一个循环,CycleGAN将转换前后图片的配对,类似于有监督学习,提升了转换效果。

       其中,在跨模态医疗图像生成中,大多会用到CycleGAN来完成。比如说,T2转T1等等。

       接下来废话不多说,我来教教大家如何用自己的数据集训练CycleGAN。文末会附上资源(代码和论文)。

       第一步,下载代码。解压后应该是图2这样。

图2 代码构成 

       第二步,数据准备。我这边是做的核磁共振T2转T1。大家在datasets文件夹中创建一个horse2zebra文件夹(如图3)。

图3 horse2zebra文件夹

       horse2zebra文件夹构成如下(图4)。大家将对应的图片放入文件夹中。数据集就完成啦~

       需要注意的是,trainA和trainB是训练的数据集,testA和testB是测试的数据集,大家记得按照自己需求进行分配哦~ trainA和testA是需要转换的图片,就是我做的这个的T2图片,trainB和testB是风格图片,就是我的任务中的T1图片。如图5。

图4 horse2zebra文件夹构成

图5 数据集构成

       第三步,开始训练数据集啦!我是用的学校服务器,通过命令行执行代码。

       需要调整的参数有epoch和batch_size。大家在根据图6找到这几个参数,并根据自己的情况进行修改即可。

图6 参数位置

        在命令行中输入下述代码,执行就可以开始训练啦!

nohup python train.py --dataroot ./datasets/horse2zebra --name horse2zebra_cyclegan --model cycle_gan &

       在nohup.out文件中会出现运行结果(如图7)。

图7 训练结果

       如果出现报错,大家根据报的错进行修改,一般来说,应该只会出现某个库没有下载的问题,这种情况大家用“pip install xxx”缺哪个库补哪个库就行。

       第四步,进行测试!训练结束之后就可以开始测试了,测试用的是我们文件夹testA中的数据。

      在checkpoints文件夹的horse2zebra_cyclegan文件夹中存有所有的权重。我们找到latest_net_D_A.pth。如图8。

图8 训练权重位置

        我们在checkpoints文件夹中创建一个horse2zebra_pretrained文件夹,并将latest_G_A.pth复制到horse2zebra_pretrained文件夹中,并改名为latest_net_G.pth。如图9。

图9 测试权重准备

          在命令行输入下述代码,即可开始测试!

nohup python test.py --dataroot datasets/horse2zebra/testA --name horse2zebra_pretrained --model test --no_dropout &

          测试的结果会保存在reults文件夹中。如图10。

图10 测试结果位置

         测试结果如图11。

图11 测试结果(左:生成图,右:原图)

         这样,整个训练和测试就结束啦!

        CycleGAN可以应用于很多领域的图像生成,风格迁移,甚至是AI画图。大家可以用自己的数据集做一下,说不定效果会很不错哦~

       最后附上相关资源(代码+论文),希望对各位小伙伴有所帮助鸭!

风格变换用CycleGAN跑自己的数据集code+训练教程+论文资源-CSDN文库

       大家如果有什么好的想法也可以发在评论区,大家一起讨论,一起学习鸭!祝大家科研愉快,中秋快乐呀~

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
CycleGAN实战的主要目标是通过使用CycleGAN算法来进行图像转换。CycleGAN是基于unconditional GAN和conditional GAN的算法,其中包含两个生成器和两个判别器。其核心思想是通过循环一致性来实现图像的转换。 在CycleGAN中,首先使用一个生成器G将原始输入图像x转换为目标域中的图像Y^。然后,使用另一个生成器F将生成的图像Y^转换回原始域中的图像x^。这个过程的目的是尽可能让原始输入图像x和经过两次转换得到的图像x^相似,从而实现循环一致性。同样地,也可以使用另一个生成器F将目标域中的图像y转换回原始域中的图像X^,并通过两次转换尽可能使得原始输入图像y和经过两次转换得到的图像Y^相似。 CycleGAN训练过程中,除了循环一致性损失外,还包括对生成器和判别器的对抗性损失。通过使用这些损失函数,CycleGAN可以学习到如何进行跨域图像转换,例如将马转换为斑马或将夏天的景色转换为冬天的景色。 在CycleGAN实战中,可以使用已经训练好的模型来进行图像转换。通过将原始输入图像输入到生成器G中,可以得到目标域中的转换图像Y^。同样地,也可以将目标域中的图像输入到生成器F中,得到原始域中的转换图像x^。通过这种方式,可以实现不同域之间的图像转换,从而获得有趣的结果。 总的来说,CycleGAN实战是通过使用CycleGAN算法来实现图像的跨域转换,其中包括循环一致性和对抗性损失的训练过程。通过使用已经训练好的模型,可以将图像从一个域转换为另一个域,获得有趣的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Pytorch】Cycle GAN实战(一):风格转换--真实风景图像转换为VanGogh风格](https://blog.csdn.net/qq_44031210/article/details/120113727)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [(五)cycleGAN论文笔记与实战](https://blog.csdn.net/qq_41845478/article/details/107553633)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cherry330

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值