本文案例使用的是开源项目instagan,是一种比较新的gan模型建模原理,来自2019年ICLR的论文(https://openreview.net/forum?id=ryxwJhC9YX),下面看下效果对照:
- 克隆此存储库
git clone https://github.com/sangwoomo/instagan
- 从http://pytorch.org和其他依赖项(例如,visdom和dominate)安装PyTorch 0.4 和torchvision 。您可以安装所有依赖项
pip install -r requirements.txt
- 对于Conda用户,您可以使用脚本./scripts/conda_deps.sh来安装PyTorch和其他库。
- 致谢:安装脚本来自官方的CycleGAN代码。
- 下载服装协同解析(CCP)数据集:
git clone https://github.com/bearpaw/clothing-co-parsing ./datasets/clothing-co-parsing
- 下载多人解析(MHP)数据集:
# Download "LV-MHP-v1" from the link and locate in ./datasets
- 下载MS COCO数据集:
./datasets/download_coco.sh 生成双域数据集
- 生成用于实验的双域数据集:
python ./datasets/generate_ccp_dataset.py --save_root ./datasets/jeans2skirt_ccp --cat1 jeans --cat2 skirt python ./datasets/generate_mhp_dataset.py --save_root ./datasets/pants2skirt_mhp --cat1 pants --cat2 skirt python ./datasets/generate_coco_dataset.py --save_root ./datasets/shp2gir_coco --cat1 sheep --cat2 giraffe
- 注意:生成的数据集包含图像和相应的掩码,它们分别位于图像文件夹(例如,“trainA”)和掩码文件夹(例如,“trainA_seg”)中。对于每个图像(例如,'0001.png'),提供每个实例的对应掩模(例如,'0001_0.png','0001_1.png',......)。
- 训练模型:
python train.py --dataroot ./datasets/jeans2skirt_ccp --model insta_gan --name jeans2skirt_ccp_instagan --loadSizeH 330 --loadSizeW 220 --fineSizeH 300 --fineSizeW 200 --niter 400 --niter_decay 200 python train.py --dataroot ./datasets/pants2skirt_mhp --model insta_gan --name pants2skirt_mhp_instagan --loadSizeH 270 --loadSizeW 180 --fineSizeH 240 --fineSizeW 160 python train.py --dataroot ./datasets/shp2gir_coco --model insta_gan --name shp2gir_coco_instagan --loadSizeH 220 --loadSizeW 220 --fineSizeH 200 --fineSizeW 200
- 要查看训练结果和丢失图,请运行python -m visdom.server并单击URL http:// localhost:8097。要查看更多中间结果,请查看./checkpoints/experiment_name/web/index.html。
- 为了加快实验速度,增加批量大小并使用更多gpus:
python train.py --dataroot ./datasets/shp2gir_coco --model insta_gan --name shp2gir_coco_instagan --loadSizeH 220 --loadSizeW 220 --fineSizeH 200 --fineSizeW 200 --batch_size 4 --gpu_ids 0,1,2,3
- 测试模型:
python test.py --dataroot ./datasets/jeans2skirt_ccp --model insta_gan --name jeans2skirt_ccp_instagan --loadSizeH 300 --loadSizeW 200 --fineSizeH 300 --fineSizeW 200 python test.py --dataroot ./datasets/pants2skirt_mhp --model insta_gan --name pants2skirt_mhp_instagan --loadSizeH 240 --loadSizeW 160 --fineSizeH 240 --fineSizeW 160 --ins_per 2 --ins_max 20 python test.py --dataroot ./datasets/shp2gir_coco --model insta_gan --name shp2gir_coco_instagan --loadSizeH 200 --loadSizeW 200 --fineSizeH 200 --fineSizeW 200 --ins_per 2 --ins_max 20
- 测试结果将保存到html文件中:./results/experiment_name/latest_test/index.html。
- 您可以从以下Google驱动器链接下载预训练模型(裤子 - >裙子和/或羊 - >长颈鹿)。将预先训练的模型保存在./checkpoints/目录中。
- 我们在此存储库中提供了两个数据集(裤子 - >裙子和羊 - >长颈鹿)的样本。要测试模型:
python test.py --dataroot ./datasets/pants2skirt_mhp --model insta_gan --name pants2skirt_mhp_instagan --loadSizeH 240 --loadSizeW 160 --fineSizeH 240 --fineSizeW 160 --ins_per 2 --ins_max 20 --phase sample --epoch 200 python test.py --dataroot ./datasets/shp2gir_coco --model insta_gan --name shp2gir_coco_instagan --loadSizeH 200 --loadSizeW 200 --fineSizeH 200 --fineSizeW 200 --ins_per 2 --ins_max 20 --phase sample --epoch 200 结果
我们提供了一些模型的翻译结果。请参阅链接以获取更多训练结果(https://github.com/sangwoomo/instagan/blob/master/docs/more_results.md)。
1.时尚数据集(裤子 - >裙子)
2. COCO数据集(绵羊 - >长颈鹿)
3.谷歌搜索图像的结果(裤子 - >裙子)
4. YouTube搜索视频的结果(裤子 - >裙子)