Image-to-Image Translation in PyTorch
Image-to-image translation is a class of vision and graphics problems where the goal is to learn the mapping between an input image and an output image using a training set of aligned image pairs. However, for many tasks, paired training data will not be available. We present an approach for learning to translate an image from a source domain X to a target domain Y in the absence of paired examples. Our goal is to learn a mapping G: X → Y such that the distribution of images from G(X) is indistinguishable from the distribution Y using an adversarial loss. Because this mapping is highly under-constrained, we couple it with an inverse mapping F: Y → X and introduce a cycle consistency loss to push F(G(X)) ≈ X (and vice versa). Qualitative results are presented on several tasks where paired training data does not exist, including collection style transfer, object transfiguration, season transfer, photo enhancement, etc. Quantitative comparisons against several prior methods demonstrate the superiority of our approach.READ FULL TEXT VIEW PDF
Image-to-Image Translation in PyTorch
Software that can generate photos from paintings, turn horses into zebras, perform style transfer, and more.
An implementation of CycleGan using TensorFlow
Tensorflow implementation for learning an image-to-image translation without input-output pairs. https://arxiv.org/pdf/1703.10593.pdf
Reimplementation of cycle-gan(https://arxiv.org/pdf/1703.10593.pdf) with improved w-gan(https://arxiv.org/abs/1704.00028) loss in tensorflow.
What did Claude Monet see as he placed his easel by the bank of the Seine near Argenteuil on a lovely spring day in 1873 (Figure 1, top-left)? A color photograph, had it been invented, may have documented a crisp blue sky and a glassy river reflecting it. Monet conveyed his impression of this same scene through wispy brush strokes and a bright palette.††* indicates equal contribution
What if Monet had happened upon the little harbor in Cassis on a cool summer evening (Figure 1, bottom-left)? A brief stroll through a gallery of Monet paintings makes it possible to imagine how he would have rendered the scene: perhaps in pastel shades, with abrupt dabs of paint, and a somewhat flattened dynamic range.
We can imagine all this despite never having seen a side by side example of a Monet painting next to a photo of the scene he painted. Instead, we have knowledge of the set of Monet paintings and of the set of landscape photographs. We can reason about the stylistic differences between these two sets, and thereby imagine what a scene might look like if we were to “translate” it from one set into the other.
In this paper, we present a method that can learn to do the same: capturing special characteristics of one image collection and figuring out how these characteristics could be translated into the other image collection, all in the absence of any paired training examples.
This problem can be more broadly described as image-to-image translation , converting an image from one representation of a given scene, , to another,
, e.g., grayscale to color, image to semantic labels, edge-map to photograph. Years of research in computer vision, image processing, computational photography, and graphics have produced powerful translation systems in the supervised setting, where example image pairsare available (Figure 2, left), e.g., [11, 19, 22, 23, 28, 33, 45, 56, 58, 62]. However, obtaining paired training data can be difficult and expensive. For example, only a couple of datasets exist for tasks like semantic segmentation (e.g., ), and they are relatively small. Obtaining input-output pairs for graphics tasks like artistic stylization can be even more difficult since the desired output is highly complex, typically requiring artistic authoring. For many tasks, like object transfiguration (e.g., zebrahorse, Figure 1 top-middle), the desired output is not even well-defined.
We therefore seek an algorithm that can learn to translate between domains without paired input-output examples (Figure 2, right). We assume there is some underlying relationship between the domains – for example, that they are two different renderings of the same underlying scene – and seek to learn that relationship. Although we lack supervision in the form of paired examples, we can exploit supervision at the level of sets: we are given one set of images in domain and a different set in domain . We may train a mapping such that the output , , is indistinguishable from images
by an adversary trained to classifyapart from . In theory, this objective can induce an output distribution over that matches the empirical distribution (in general, this requires to be stochastic) . The optimal thereby translates the domain to a domain distributed identically to . However, such a translation does not guarantee that an individual input and output are paired up in a meaningful way – there are infinitely many mappings that will induce the same distribution over . Moreover, in practice, we have found it difficult to optimize the adversarial objective in isolation: standard procedures often lead to the well-known problem of mode collapse, where all input images map to the same output image and the optimization fails to make progress .
These issues call for adding more structure to our objective. Therefore, we exploit the property that translation should be “cycle consistent”, in the sense that if we translate, e.g., a sentence from English to French, and then translate it back from French to English, we should arrive back at the original sentence . Mathematically, if we have a translator and another translator , then and should be inverses of each other, and both mappings should be bijections. We apply this structural assumption by training both the mapping and simultaneously, and adding a cycle consistency loss  that encourages and . Combining this loss with adversarial losses on domains and yields our full objective for unpaired image-to-image translation.
We apply our method to a wide range of applications, including collection style transfer, object transfiguration, season transfer and photo enhancement. We also compare against previous approaches that rely either on hand-defined factorizations of style and content, or on shared embedding functions, and show that our method outperforms these baselines. We provide both PyTorch and Torch implementations. Check out more results at our website.
Generative Adversarial Networks (GANs) [16, 63] have achieved impressive results in image generation [6, 39], image editing , and representation learning [39, 43, 37]. Recent methods adopt the same idea for conditional image generation applications, such as text2image 38], and future prediction , as well as to other domains like videos  and 3D data . The key to GANs’ success is the idea of an adversarial loss that forces the generated images to be, in principle, indistinguishable from real photos. This loss is particularly powerful for image generation tasks, as this is exactly the objective that much of computer graphics aims to optimize. We adopt an adversarial loss to learn the mapping such that the translated images cannot be distinguished from images in the target domain.
Image-to-Image Translation The idea of image-to-image translation goes back at least to Hertzmann et al.’s Image Analogies , who employ a non-parametric texture model  on a single input-output training image pair. More recent approaches use a dataset of input-output examples to learn a parametric translation function using CNNs (e.g., ). Our approach builds on the “pix2pix” framework of Isola et al. , which uses a conditional generative adversarial network  to learn a mapping from input to output images. Similar ideas have been applied to various tasks such as generating photographs from sketches  or from attribute and semantic layouts . However, unlike the above prior work, we learn the mapping without paired training examples.
Unpaired Image-to-Image Translation Several other methods also tackle the unpaired setting, where the goal is to relate two data domains: and . Rosales et al.  propose a Bayesian framework that includes a prior based on a patch-based Markov random field computed from a source image and a likelihood term obtained from multiple style images. More recently, CoGAN  and cross-modal scene networks  use a weight-sharing strategy to learn a common representation across domains. Concurrent to our method, Liu et al. 
extends the above framework with a combination of variational autoencoders and generative adversarial networks . Another line of concurrent work [46, 49, 2] encourages the input and output to share specific “content” features even though they may differ in “style“. These methods also use adversarial networks, with additional terms to enforce the output to be close to the input in a predefined metric space, such as class label space , image pixel space , and image feature space .
Unlike the above approaches, our formulation does not rely on any task-specific, predefined similarity function between the input and output, nor do we assume that the input and output have to lie in the same low-dimensional embedding space. This makes our method a general-purpose solution for many vision and graphics tasks. We directly compare against several prior and contemporary approaches in Section 5.1.
Cycle Consistency The idea of using transitivity as a way to regularize structured data has a long history. In visual tracking, enforcing simple forward-backward consistency has been a standard trick for decades [24, 48]. In the language domain, verifying and improving translations via “back translation and reconciliation” is a technique used by human translators  (including, humorously, by Mark Twain ), as well as by machines . More recently, higher-order cycle consistency has been used in structure from motion , 3D shape matching , co-segmentation , dense semantic alignment [65, 64]
, and depth estimation. Of these, Zhou et al.  and Godard et al.  are most similar to our work, as they use a cycle consistency loss as a way of using transitivity to supervise CNN training. In this work, we are introducing a similar loss to push and to be consistent with each other. Concurrent with our work, in these same proceedings, Yi et al.  independently use a similar objective for unpaired image-to-image translation, inspired by dual learning in machine translation .
is another way to perform image-to-image translation, which synthesizes a novel image by combining the content of one image with the style of another image (typically a painting) based on matching the Gram matrix statistics of pre-trained deep features. Our primary focus, on the other hand, is learning the mapping between two image collections, rather than between two specific images, by trying to capture correspondences between higher-level appearance structures. Therefore, our method can be applied to other tasks, such as paintingphoto, object transfiguration, etc. where single sample transfer methods do not perform well. We compare these two methods in Section 5.2.
Our goal is to learn mapping functions between two domains and given training samples where and where 111We often omit the subscript and for simplicity.. We denote the data distribution as and . As illustrated in Figure 3 (a), our model includes two mappings and . In addition, we introduce two adversarial discriminators and , where aims to distinguish between images and translated images ; in the same way, aims to discriminate between and . Our objective contains two types of terms: adversarial losses  for matching the distribution of generated images to the data distribution in the target domain; and cycle consistency losses to prevent the learned mappings and from contradicting each other.
We apply adversarial losses  to both mapping functions. For the mapping function and its discriminator , we express the objective as:
where tries to generate images that look similar to images from domain , while aims to distinguish between translated samples and real samples . aims to minimize this objective against an adversary that tries to maximize it, i.e., . We introduce a similar adversarial loss for the mapping function and its discriminator as well: i.e., .
Adversarial training can, in theory, learn mappings and that produce outputs identically distributed as target domains and respectively (strictly speaking, this requires and to be stochastic functions) . However, with large enough capacity, a network can map the same set of input images to any random permutation of images in the target domain, where any of the learned mappings can induce an output distribution that matches the target distribution. Thus, adversarial losses alone cannot guarantee that the learned function can map an individual input to a desired output . To further reduce the space of possible mapping functions, we argue that the learned mapping functions should be cycle-consistent: as shown in Figure 3 (b), for each image from domain , the image translation cycle should be able to bring back to the original image, i.e., . We call this forward cycle consistency. Similarly, as illustrated in Figure 3 (c), for each image from domain , and should also satisfy backward cycle consistency: . We incentivize this behavior using a cycle consistency loss:
In preliminary experiments, we also tried replacing the L1 norm in this loss with an adversarial loss between and , and between and , but did not observe improved performance.
The behavior induced by the cycle consistency loss can be observed in Figure 4: the reconstructed images end up matching closely to the input images .
Our full objective is:
where controls the relative importance of the two objectives. We aim to solve:
Notice that our model can be viewed as training two “autoencoders” : we learn one autoencoder jointly with another . However, these autoencoders each have special internal structures: they map an image to itself via an intermediate representation that is a translation of the image into another domain. Such a setup can also be seen as a special case of “adversarial autoencoders” , which use an adversarial loss to train the bottleneck layer of an autoencoder to match an arbitrary target distribution. In our case, the target distribution for the autoencoder is that of the domain .
In Section 5.1.4, we compare our method against ablations of the full objective, including the adversarial loss alone and the cycle consistency loss alone, and empirically show that both objectives play critical roles in arriving at high-quality results. We also evaluate our method with only cycle loss in one direction and show that a single cycle is not sufficient to regularize the training for this under-constrained problem.
We adopt the architecture for our generative networks from Johnson et al. 18]
, and two fractionally-strided convolutions with stride. We use blocks for images and blocks for and higher-resolution training images. Similar to Johnson et al. , we use instance normalization . For the discriminator networks we use PatchGANs [22, 30, 29], which aim to classify whether overlapping image patches are real or fake. Such a patch-level discriminator architecture has fewer parameters than a full-image discriminator and can work on arbitrarily-sized images in a fully convolutional fashion .
We apply two techniques from recent works to stabilize our model training procedure. First, for (Equation 1), we replace the negative log likelihood objective by a least-squares loss . This loss is more stable during training and generates higher quality results. In particular, for a GAN loss , we train the to minimize and train the to minimize .
Second, to reduce model oscillation , we follow Shrivastava et al.’s strategy  and update the discriminators using a history of generated images rather than the ones produced by the latest generators. We keep an image buffer that stores the previously created images.
For all the experiments, we set in Equation 3. We use the Adam solver  with a batch size of . All networks were trained from scratch with a learning rate of . We keep the same learning rate for the first epochs and linearly decay the rate to zero over the next epochs. Please see the appendix (Section 7) for more details about the datasets, architectures, and training procedures.
We first compare our approach against recent methods for unpaired image-to-image translation on paired datasets where ground truth input-output pairs are available for evaluation. We then study the importance of both the adversarial loss and the cycle consistency loss and compare our full method against several variants. Finally, we demonstrate the generality of our algorithm on a wide range of applications where paired data does not exist. For brevity, we refer to our method as CycleGAN. The PyTorch and Torch code, models, and full results can be found at our website.
Using the same evaluation datasets and metrics as “pix2pix” , we compare our method against several baselines both qualitatively and quantitatively. The tasks include semantic labelsphoto on the Cityscapes dataset , and map
aerial photo on data scraped from Google Maps. We also perform ablation study on the full loss function.
AMT perceptual studies On the mapaerial photo task, we run “real vs fake” perceptual studies on Amazon Mechanical Turk (AMT) to assess the realism of our outputs. We follow the same perceptual study protocol from Isola et al. , except we only gather data from participants per algorithm we tested. Participants were shown a sequence of pairs of images, one a real photo or map and one fake (generated by our algorithm or a baseline), and asked to click on the image they thought was real. The first trials of each session were practice and feedback was given as to whether the participant’s response was correct or incorrect. The remaining trials were used to assess the rate at which each algorithm fooled participants. Each session only tested a single algorithm, and participants were only allowed to complete a single session. The numbers we report here are not directly comparable to those in  as our ground truth images were processed slightly differently 222We train all the models on images while in pix2pix , the model was trained on patches of images, and run convolutionally on the images at test time. We choose in our experiments as many baselines cannot scale up to high-resolution images, and CoGAN cannot be tested fully convolutionally. and the participant pool we tested may be differently distributed from those tested in  (due to running the experiment at a different date and time). Therefore, our numbers should only be used to compare our current method against the baselines (which were run under identical conditions), rather than against .
FCN score Although perceptual studies may be the gold standard for assessing graphical realism, we also seek an automatic quantitative measure that does not require human experiments. For this, we adopt the “FCN score” from , and use it to evaluate the Cityscapes labelsphoto task. The FCN metric evaluates how interpretable the generated photos are according to an off-the-shelf semantic segmentation algorithm (the fully-convolutional network, FCN, from ). The FCN predicts a label map for a generated photo. This label map can then be compared against the input ground truth labels using standard semantic segmentation metrics described below. The intuition is that if we generate a photo from a label map of “car on the road”, then we have succeeded if the FCN applied to the generated photo detects “car on the road”.
CoGAN  This method learns one GAN generator for domain and one for domain , with tied weights on the first few layers for shared latent representations. Translation from to can be achieved by finding a latent representation that generates image and then rendering this latent representation into style .
Feature loss + GAN We also test a variant of SimGAN  where the L1 loss is computed over deep image features using a pretrained network (VGG-16 relu4_2 ), rather than over RGB pixel values. Computing distances in deep feature space, like this, is also sometimes referred to as using a “perceptual loss” [8, 23].
. Though they were originally designed for mapping a latent vectorto an image , we implemented the same objective for mapping a source image to a target image .
For a fair comparison, we implement all the baselines using the same architecture and details as our method, except for CoGAN . CoGAN builds on generators that produce images from a shared latent representation, which is incompatible with our image-to-image network. We use the public implementation of CoGAN instead.
|Map Photo||Photo Map|
|Loss||% Turkers labeled real||% Turkers labeled real|
|CoGAN ||0.6% 0.5%||0.9% 0.5%|
|BiGAN/ALI [9, 7]||2.1% 1.0%||1.9% 0.9%|
|SimGAN ||0.7% 0.5%||2.6% 1.1%|
|Feature loss + GAN||1.2% 0.6%||0.3% 0.2%|
|CycleGAN (ours)||26.8% 2.8%||23.2% 3.4%|
|Loss||Per-pixel acc.||Per-class acc.||Class IOU|
|BiGAN/ALI [9, 7]||0.19||0.06||0.02|
|Feature loss + GAN||0.06||0.04||0.01|
|Loss||Per-pixel acc.||Per-class acc.||Class IOU|
|BiGAN/ALI [9, 7]||0.41||0.13||0.07|
|Feature loss + GAN||0.50||0.10||0.06|
|Loss||Per-pixel acc.||Per-class acc.||Class IOU|
|GAN + forward cycle||0.55||0.18||0.12|
|GAN + backward cycle||0.39||0.14||0.06|
|Loss||Per-pixel acc.||Per-class acc.||Class IOU|
|GAN + forward cycle||0.49||0.11||0.07|
|GAN + backward cycle||0.01||0.06||0.01|
As can be seen in Figure 5 and Figure 6, we were unable to achieve compelling results with any of the baselines. Our method, on the other hand, can produce translations that are often of similar quality to the fully supervised pix2pix.
Table 1 reports performance regarding the AMT perceptual realism task. Here, we see that our method can fool participants on around a quarter of trials, in both the mapsaerial photos direction and the aerial photosmaps direction at resolution333We also train CycleGAN and pix2pix at resolution, and observe the comparable performance: mapsaerial photos: CycleGAN: and pix2pix: ; aerial photosmaps: CycleGAN: and pix2pix: . All the baselines almost never fooled participants.
In Table 4 and Table 5, we compare against ablations of our full loss. Removing the GAN loss substantially degrades results, as does removing the cycle-consistency loss. We therefore conclude that both terms are critical to our results. We also evaluate our method with the cycle loss in only one direction: GAN + forward cycle loss , or GAN + backward cycle loss (Equation 2) and find that it often incurs training instability and causes mode collapse, especially for the direction of the mapping that was removed. Figure 7 shows several qualitative examples.
In Figure 4, we show a few random samples of the reconstructed images . We observed that the reconstructed images were often close to the original inputs , at both training and testing time, even in cases where one domain represents significantly more diverse information, such as mapaerial photos.
Figure 8 shows some example results on other paired datasets used in “pix2pix” , such as architectural labelsphotos from the CMP Facade Database , and edgesshoes from the UT Zappos50K dataset . The image quality of our results is close to those produced by the fully supervised pix2pix while our method learns the mapping without paired supervision.
We demonstrate our method on several applications where paired training data does not exist. Please refer to the appendix (Section 7) for more details about the datasets. We observe that translations on training data are often more appealing than those on test data, and full results of all applications on both training and test data can be viewed on our project website.
Collection style transfer (Figure 10 and Figure 11) We train the model on landscape photographs downloaded from Flickr and WikiArt. Unlike recent work on “neural style transfer” , our method learns to mimic the style of an entire collection of artworks, rather than transferring the style of a single selected piece of art. Therefore, we can learn to generate photos in the style of, e.g., Van Gogh, rather than just in the style of Starry Night. The size of the dataset for each artist/style was , , , and for Cezanne, Monet, Van Gogh, and Ukiyo-e.
Object transfiguration (Figure 13) The model is trained to translate one object class from ImageNet  to another (each class contains around training images). Turmukhambetov et al.  propose a subspace model to translate one object into another object of the same category, while our method focuses on object transfiguration between two visually similar categories.
Season transfer (Figure 13) The model is trained on winter photos and summer photos of Yosemite downloaded from Flickr.
Photo generation from paintings (Figure 12) For paintingphoto, we find that it is helpful to introduce an additional loss to encourage the mapping to preserve color composition between the input and output. In particular, we adopt the technique of Taigman et al.  and regularize the generator to be near an identity mapping when real samples of the target domain are provided as the input to the generator: i.e.,
Without , the generator and are free to change the tint of input images when there is no need to. For example, when learning the mapping between Monet’s paintings and Flickr photographs, the generator often maps paintings of daytime to photographs taken during sunset, because such a mapping may be equally valid under the adversarial loss and cycle consistency loss. The effect of this identity mapping loss are shown in Figure 9.
In Figure 12, we show additional results translating Monet’s paintings to photographs. This figure and Figure 9 show results on paintings that were included in the training set, whereas for all other experiments in the paper, we only evaluate and show test set results. Because the training set does not include paired data, coming up with a plausible translation for a training set painting is a nontrivial task. Indeed, since Monet is no longer able to create new paintings, generalization to unseen, “test set”, paintings is not a pressing problem.
Photo enhancement (Figure 14) We show that our method can be used to generate photos with shallower depth of field. We train the model on flower photos downloaded from Flickr. The source domain consists of flower photos taken by smartphones, which usually have deep DoF due to a small aperture. The target contains photos captured by DSLRs with a larger aperture. Our model successfully generates photos with shallower depth of field from the photos taken by smartphones.
Comparison with Gatys et al.  In Figure 15, we compare our results with neural style transfer  on photo stylization. For each row, we first use two representative artworks as the style images for . Our method, on the other hand, can produce photos in the style of entire collection. To compare against neural style transfer of an entire collection, we compute the average Gram Matrix across the target domain and use this matrix to transfer the “average style” with Gatys et al .
Figure 16 demonstrates similar comparisons for other translation tasks. We observe that Gatys et al.  requires finding target style images that closely match the desired output, but still often fails to produce photorealistic results, while our method succeeds to generate natural-looking results, similar to the target domain.
Although our method can achieve compelling results in many cases, the results are far from uniformly positive. Figure 17 shows several typical failure cases. On translation tasks that involve color and texture changes, like many of those reported above, the method often succeeds. We have also explored tasks that require geometric changes, with little success. For example, on the task of dogcat transfiguration, the learned translation degenerates into making minimal changes to the input (Figure 17). This failure might be caused by our generator architectures which are tailored for good performance on the appearance changes. Handling more varied and extreme transformations, especially geometric changes, is an important problem for future work.
Some failure cases are caused by the distribution characteristics of the training datasets. For example, our method has got confused in the horse zebra example (Figure 17, right), because our model was trained on the wild horse and zebra synsets of ImageNet, which does not contain images of a person riding a horse or zebra.
We also observe a lingering gap between the results achievable with paired training data and those achieved by our unpaired method. In some cases, this gap may be very hard – or even impossible – to close: for example, our method sometimes permutes the labels for tree and building in the output of the photoslabels task. To resolve this ambiguity may require some form of weak semantic supervision. Integrating weak or semi-supervised data may lead to substantially more powerful translators, still at a fraction of the annotation cost of the fully-supervised systems.
Nonetheless, in many cases completely unpaired data is plentifully available and should be made use of. This paper pushes the boundaries of what is possible in this “unsupervised” setting.
Acknowledgments: We thank Aaron Hertzmann, Shiry Ginosar, Deepak Pathak, Bryan Russell, Eli Shechtman, Richard Zhang, and Tinghui Zhou for many helpful comments. This work was supported in part by NSF SMA-1514512, NSF IIS-1633310, a Google Research Award, Intel Corp, and hardware donations from NVIDIA. JYZ is supported by the Facebook Graduate Fellowship and TP is supported by the Samsung Scholarship. The photographs used for style transfer were taken by AE, mostly in France.
The cityscapes dataset for semantic urban scene understanding.In CVPR, 2016.
Image style transfer using convolutional neural networks.CVPR, 2016.
Image-to-image translation with conditional adversarial networks.In CVPR, 2017.
Colorful image colorization.In ECCV, 2016.
We train our networks from scratch, with a learning rate of . In practice, we divide the objective by while optimizing , which slows down the rate at which learns, relative to the rate of . We keep the same learning rate for the first epochs and linearly decay the rate to zero over the next
epochs. Weights are initialized from a Gaussian distribution.
Cityscapes labelPhoto training images from the Cityscapes training set  with image size . We used the Cityscapes val set for testing.
Mapsaerial photograph training images were scraped from Google Maps  with image size . Images were sampled from in and around New York City. Data was then split into train and test about the median latitude of the sampling region (with a buffer region added to ensure that no training pixel appeared in the test set).
Architectural facades labelsphoto training images from the CMP Facade Database .
Edgesshoes around training images from UT Zappos50K dataset . The model was trained for epochs.
HorseZebra and AppleOrange We downloaded the images from ImageNet  using keywords wild horse, zebra, apple, and navel orange. The images were scaled to pixels. The training set size of each class: (horse), (zebra), (apple), and (orange).
SummerWinter Yosemite The images were downloaded using Flickr API with the tag yosemite and the datetaken field. Black-and-white photos were pruned. The images were scaled to pixels. The training size of each class: (summer) and ( winter).
PhotoArt for style transfer The art images were downloaded from Wikiart.org. Some artworks that were sketches or too obscene were pruned by hand. The photos were downloaded from Flickr using the combination of tags landscape and landscapephotography. Black-and-white photos were pruned. The images were scaled to pixels. The training set size of each class was (Monet), (Cezanne), (Van Gogh), (Ukiyo-e), and (Photographs). The Monet dataset was particularly pruned to include only landscape paintings, and the Van Gogh dataset included only his later works that represent his most recognizable artistic style.
Monet’s paintingsphotos To achieve high resolution while conserving memory, we used random square crops of the original images for training. To generate results, we passed images of width pixels with correct aspect ratio to the generator network as input. The weight for the identity mapping loss was where was the weight for cycle consistency loss. We set .
Flower photo enhancement Flower images taken on smartphones were downloaded from Flickr by searching for the photos taken by Apple iPhone 5, 5s, or 6, with search text flower. DSLR images with shallow DoF were also downloaded from Flickr by search tag flower, dof. The images were scaled to pixels by width. The identity mapping loss of weight was used. The training set size of the smartphone and DSLR dataset were and , respectively. We set .
Generator architectures We adopt our architectures from Johnson et al. . We use residual blocks for training images, and residual blocks for or higher-resolution training images. Below, we follow the naming convention used in the Johnson et al.’s Github repository.
Let c7s1-k denote a
Convolution-InstanceNorm-ReLU layer withfilters and stride . dk denotes a Convolution-InstanceNorm-ReLU layer with filters and stride
. Reflection padding was used to reduce artifacts.Rk denotes a residual block that contains two convolutional layers with the same number of filters on both layer. uk denotes a fractional-strided-Convolution-InstanceNorm-ReLU layer with filters and stride .
The network with 6 residual blocks consists of:
The network with 9 residual blocks consists of:
For discriminator networks, we use PatchGAN .
Let Ck denote a Convolution-InstanceNorm-LeakyReLU layer with k filters and stride . After the last layer, we apply a convolution to produce a -dimensional output. We do not use InstanceNorm for the first C64 layer. We use leaky ReLUs with a slope of . The discriminator architecture is: