Skip to content

Latest commit

 

History

History
238 lines (183 loc) · 16.1 KB

README_es.md

File metadata and controls

238 lines (183 loc) · 16.1 KB




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

Pix2pix: Proyeto | PDF | Torch | Guia de Tensorflow Core | PyTorch Colab

EdgesCats Demo | pix2pix-tensorflow | por Christopher Hesse

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 usando conda 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.

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 en scripts 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 directorio facades/testB).

  • Vea una lista de los modelos disponibles actualmente en ./scripts/download_pix2pix_model.sh

Proporcionamos la imagen Docker y el archivo Docker preconstruidos que pueden ejecutar este repositorio de código. Ver docker.

Descargue los conjuntos de datos pix2pix / CycleGAN y cree sus propios conjuntos de datos.

Las mejores prácticas para entrenar y probar sus modelos.

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.

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.