![](https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/raw/master/imgs/horse2zebra.gif)
CycleGAN y pix2pix en PyTorch
Implementacion en PyTorch de Unpaired Image-to-Image Translation.
Este codigo fue escrito por Jun-Yan Zhu y Taesung Park, y con ayuda de Tongzhou Wang.
Esta implementacion de PyTorch produce resultados comparables o mejores que nuestros original software de Torch. Si te gustaria producir los mismos resultados que en documento oficial, echa un vistazo al codigo original CycleGAN Torch y pix2pix Torch
Aviso: El software actual funciona correctamente en PyTorch 0.41+. Para soporte en PyTorch 0.1-0.3: branch.
Puede encontrar informaci贸n 煤til en training/test tips y preguntas frecuentes. Para implementar modelos y conjuntos de datos personalizados, consulte nuestro templates. Para ayudar a los usuarios a comprender y adaptar mejor nuestra base de c贸digo, proporcionamos un overview de la estructura de c贸digo de este repositorio.
CycleGAN: Proyecto | PDF | Torch | Guia de Tensorflow Core | PyTorch Colab
![](https://junyanz.github.io/CycleGAN/images/teaser_high_res.jpg)
Pix2pix: Proyeto | PDF | Torch | Guia de Tensorflow Core | PyTorch Colab
![](https://phillipi.github.io/pix2pix/images/teaser_v3.png)
EdgesCats Demo | pix2pix-tensorflow | por Christopher Hesse
![](https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/blob/master/imgs/edges2cats.jpg)
Si usa este c贸digo para su investigaci贸n, cite:
Unpaired Image-to-Image Translation usando Cycle-Consistent Adversarial Networks.
Jun-Yan Zhu*, Taesung Park*, Phillip Isola, Alexei A. Efros. In ICCV 2017. (* contribucion igualitaria) [Bibtex]
Image-to-Image Translation usando Conditional Adversarial Networks.
Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, Alexei A. Efros. In CVPR 2017. [Bibtex]
Charlas y curso
Presentacion en PowerPoint de Pix2pix: keynote | pdf, Presentacion en PowerPoint de CycleGAN: pptx | pdf
Asignaci贸n del curso CycleGAN codigo y handout dise帽ado por el Prof. Roger Grosse for CSC321 "Intro to Neural Networks and Machine Learning" en la universidad de Toronto. P贸ngase en contacto con el instructor si desea adoptarlo en su curso.
Colab Notebook
TensorFlow Core CycleGAN Tutorial: Google Colab | Codigo
Guia de TensorFlow Core pix2pix : Google Colab | Codigo
PyTorch Colab notebook: CycleGAN y pix2pix
Otras implementaciones
CycleGAN
[Tensorflow] (por Harry Yang), [Tensorflow] (por Archit Rathore), [Tensorflow] (por Van Huy), [Tensorflow] (por Xiaowei Hu), [Tensorflow-simple] (por Zhenliang He), [TensorLayer] (por luoxier), [Chainer] (por Yanghua Jin), [Minimal PyTorch] (por yunjey), [Mxnet] (por Ldpe2G), [lasagne/Keras] (por tjwei), [Keras] (por Simon Karlsson)
pix2pix
[Tensorflow] (por Christopher Hesse), [Tensorflow] (por Eyy眉b Sariu), [Tensorflow (face2face)] (por Dat Tran), [Tensorflow (film)] (por Arthur Juliani), [Tensorflow (zi2zi)] (por Yuchen Tian), [Chainer] (por mattya), [tf/torch/keras/lasagne] (por tjwei), [Pytorch] (por taey16)
Requerimientos
- Linux o macOS
- Python 3
- CPU o NVIDIA GPU usando CUDA CuDNN
Inicio
Instalaci贸n
- Clone este repositorio:
git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
cd pytorch-CycleGAN-and-pix2pix
- Instale PyTorch 0.4+ y sus otras dependencias (e.g., torchvision, visdom y dominate).
- Para uso de pip, por favor escriba el comando
pip install -r requirements.txt
. - Para uso de Conda, proporcionamos un script de instalaci贸n
./scripts/conda_deps.sh
. De forma alterna, puede crear un nuevo entorno Conda usandoconda env create -f environment.yml
. - Para uso de Docker, Proporcionamos la imagen Docker y el archivo Docker preconstruidos. Por favor, consulte nuestra p谩gina Docker.
- Para uso de pip, por favor escriba el comando
CycleGAN entreanimiento/test
- Descargar el dataset de CycleGAN (e.g. maps):
bash ./datasets/download_cyclegan_dataset.sh maps
- Para ver los resultados del entrenamiento y las gr谩ficas de p茅rdidas,
python -m visdom.server
y haga clic en la URL http://localhost:8097. - Entrenar el modelo:
#!./scripts/train_cyclegan.sh
python train.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan
Para ver m谩s resultados intermedios, consulte ./checkpoints/maps_cyclegan/web/index.html
.
- Pruebe el modelo:
#!./scripts/test_cyclegan.sh
python test.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan
-Los resultados de la prueba se guardar谩n en un archivo html aqu铆: ./results/maps_cyclegan/latest_test/index.html
.
pix2pix entrenamiento/test
- Descargue el dataset de pix2pix (e.g.facades):
bash ./datasets/download_pix2pix_dataset.sh facades
- Para ver los resultados del entrenamiento y las gr谩ficas de p茅rdidas
python -m visdom.server
, haga clic en la URL http://localhost:8097. - Para entrenar el modelo:
#!./scripts/train_pix2pix.sh
python train.py --dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA
Para ver m谩s resultados intermedios, consulte ./checkpoints/facades_pix2pix/web/index.html
.
- Pruebe el modelo (
bash ./scripts/test_pix2pix.sh
):
#!./scripts/test_pix2pix.sh
python test.py --dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA
- Los resultados de la prueba se guardar谩n en un archivo html aqu铆:
./results/facades_pix2pix/test_latest/index.html
. Puede encontrar m谩s scripts enscripts
directory. - Para entrenar y probar modelos de colorizaci贸n basados en pix2pix, agregue la linea
--model colorization
y--dataset_mode colorization
. Para m谩s detalles de nuestro entrenamiento tips.
Aplicar un modelo pre-entrenado (CycleGAN)
- Puedes descargar un modelo previamente entrenado (e.g. horse2zebra) con el siguiente script:
bash ./scripts/download_cyclegan_model.sh horse2zebra
El modelo pre-entrenado se guarda en
./checkpoints/{name}_pretrained/latest_net_G.pth
. Revise aqui para todos los modelos CycleGAN disponibles.Para probar el modelo, tambi茅n debe descargar el dataset horse2zebra:
bash ./datasets/download_cyclegan_dataset.sh horse2zebra
- Luego genere los resultados usando:
python test.py --dataroot datasets/horse2zebra/testA --name horse2zebra_pretrained --model test --no_dropout
La opcion
--model test
ise usa para generar resultados de CycleGAN de un solo lado. Esta opci贸n configurar谩 autom谩ticamente--dataset_mode single
, carga solo las im谩genes de un conjunto. Por el contrario, el uso de--model cycle_gan
requiere cargar y generar resultados en ambas direcciones, lo que a veces es innecesario. Los resultados se guardar谩n en./results/
. Use--results_dir {directory_path_to_save_result}
para especificar el directorio de resultados.Para sus propios experimentos, es posible que desee especificar
--netG
,--norm
,--no_dropout
para que coincida con la arquitectura del generador del modelo entrenado.
Aplicar un modelo pre-entrenado (pix2pix)
Descargue un modelo pre-entrenado con ./scripts/download_pix2pix_model.sh
.
- Revise aqui para todos los modelos pix2pix disponibles. Por ejemplo, si desea descargar el modelo label2photo en el dataset:
bash ./scripts/download_pix2pix_model.sh facades_label2photo
- Descarga el dataset facades de pix2pix:
bash ./datasets/download_pix2pix_dataset.sh facades
- Luego genere los resultados usando:
python test.py --dataroot ./datasets/facades/ --direction BtoA --model pix2pix --name facades_label2photo_pretrained
Tenga en cuenta que
--direction BtoA
como Facades dataset's, son direcciones A o B para etiquetado de fotos.Si desea aplicar un modelo previamente entrenado a una colecci贸n de im谩genes de entrada (en lugar de pares de im谩genes), use la opcion
--model test
. Vea./scripts/test_single.sh
obre c贸mo aplicar un modelo a Facade label maps (almacenados en el directoriofacades/testB
).Vea una lista de los modelos disponibles actualmente en
./scripts/download_pix2pix_model.sh
Docker
Proporcionamos la imagen Docker y el archivo Docker preconstruidos que pueden ejecutar este repositorio de c贸digo. Ver docker.
Datasets
Descargue los conjuntos de datos pix2pix / CycleGAN y cree sus propios conjuntos de datos.
Entretanimiento/Test Tips
Las mejores pr谩cticas para entrenar y probar sus modelos.
Preguntas frecuentes
Antes de publicar una nueva pregunta, primero mire las preguntas y respuestas anteriores y los problemas existentes de GitHub.
Modelo y Dataset personalizado
Si planea implementar modelos y conjuntos de datos personalizados para sus nuevas aplicaciones, proporcionamos un conjunto de datos template y un modelo template como punto de partida.
Estructura de codigo
Para ayudar a los usuarios a comprender mejor y usar nuestro c贸digo, presentamos brevemente la funcionalidad e implementaci贸n de cada paquete y cada m贸dulo.
Solicitud de Pull
Siempre puede contribuir a este repositorio enviando un pull request.
Por favor ejecute flake8 --ignore E501 .
y python ./scripts/test_before_push.py
antes de realizar un Pull en el c贸digo, asegure de tambi茅n actualizar la estructura del c贸digo overview en consecuencia si agrega o elimina archivos.
Citaci贸n
Si utiliza este c贸digo para su investigaci贸n, cite nuestros documentos.
@inproceedings{CycleGAN2017,
title={Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networkss},
author={Zhu, Jun-Yan and Park, Taesung and Isola, Phillip and Efros, Alexei A},
booktitle={Computer Vision (ICCV), 2017 IEEE International Conference on},
year={2017}
}
@inproceedings{isola2017image,
title={Image-to-Image Translation with Conditional Adversarial Networks},
author={Isola, Phillip and Zhu, Jun-Yan and Zhou, Tinghui and Efros, Alexei A},
booktitle={Computer Vision and Pattern Recognition (CVPR), 2017 IEEE Conference on},
year={2017}
}
Proyectos relacionados
CycleGAN-Torch |
pix2pix-Torch | pix2pixHD|
BicycleGAN | vid2vid | SPADE/GauGAN
iGAN | GAN Dissection | GAN Paint
Cat Paper Collection
Si amas a los gatos y te encanta leer gr谩ficos geniales, computer vision y documentos de aprendizaje, echa un vistazo a Cat Paper Collection.
Agradecimientos
Nuestro c贸digo fue inspirado en pytorch-DCGAN.