一、代码框架认识
二、开源数据与预训练模型下载
1.开源测试图像:https://efrosgans.eecs.berkeley.edu/pix2pix/datasets/
https://efrosgans.eecs.berkeley.edu/pix2pix/datasets/
图像数据结构,包含训练集、验证集,测试集根据需要。
图像数据存放在: ./datasets/
2.预训练模型:https://efrosgans.eecs.berkeley.edu/pix2pix/models-pytorch/
模型存放路径
将模型名称改为:latest_net_G.pth,以便进行测试调用模型。
三、自建数据集训练pix2pix模型
1.训练前图像数据拼接
建立文件夹A和文件夹B,A和B存放对齐的两组数据。例如:
文件夹A路径:F:\YoloWorkData\gds2mask\gds_A
文件夹B路径:F:\YoloWorkData\gds2mask\mask_B
调用datasets/combine_A_and_B.py,将A和B中相同文件名的一对图像进行拼接,合成AB。
文件夹AB路径:F:\YoloWorkData\gds2mask\gds2mask_AB
python datasets/combine_A_and_B.py --fold_A F:\YoloWorkData\gds2mask\gds_A --fold_B F:\YoloWorkData\gds2mask\mask_B --fold_AB F:\YoloWorkData\gds2mask\gds2mask_AB --num_imgs 40
2.数据文件分类整理
将合并的图像进行训练集和验证集分类。
|--.../pytorch-CycleGAN-and-pix2pix-master/datasets/gds2mask_AB(生成的拼接图)
| |--train
| |--val
| |--test
3.开始训练
3.1.打开可视化界面
python -m visdom.server
3.2.修改base_options.py代码
常见需要需要修改的内容:
--dataroot:数据集的目录,设置为刚刚拼接后的目录.../pytorch-CycleGAN-and-pix2pix- master/datasets/gds2mask_AB
--name : 训练数据存放文件夹名称,路径在.../checkpoints/name
--use_wandb:设置wandb,填入default=False设置不适用wandb;
--model:选择模型pix2pix ,可以选择cycle_gan | pix2pix | test | colorization;
--input_nc:输入通道数,3是RGB,1是灰度
--output_nc:输出通道数,3是RGB,1是灰度
--dataset_mode:数据模式,unaligned | aligned | single | colorization,pix2pix 的默认会设置为-----aligned,修不修改都可以。
--direction:数据生成方向,是A生成B(左→右),还是B生成A(右→左)
3.2.执行训练命令
train.py
http://localhost:8097/中显示训练曲线与过程结果。
训练结果在.../checkpoints/name下。
四、测试训练模型
测试输入图像,也需要是AB拼接图。
Terminal中输入
python test.py --dataroot ./datasets/gds2mask_AB --direction AtoB --model pix2pix --name gds2mask
--dataroot:测试数据路径,自动检测test文件夹 ./datasets/gds2mask_AB。
--direction :数据生成方向,AtoB。
--model :数据模式,pix2pix。
--name :模型存文件夹(base_options中设置),默认使用latest_net_G.pth文件。
测试结果,保存在.../result/name 中。