Once, when I was young and reckless, I experimented with TensorFlow on Android devices.
The diversity of painting styles represents a rich visual vocabulary for the construction of an image. The degree to which one may learn and parsimoniously capture this visual vocabulary measures our understanding of the higher level features of paintings, if not images in general. In this work we investigate the construction of a single, scalable deep network that can parsimoniously capture the artistic style of a diversity of paintings. We demonstrate that such a network generalizes across a diversity of artistic styles by reducing a painting to a point in an embedding space. Importantly, this model permits a user to explore new painting styles by arbitrarily combining the styles learned from individual paintings. We hope that this work provides a useful step towards building rich models of paintings and offers a window on to the structure of the learned representation of artistic style.READ FULL TEXT VIEW PDF
Multi-Style Transfer (MST) intents to capture the high-level visual
What defines a visual style? Fashion styles emerge organically from how
Mirroring is the behavior in which one person subconsciously imitates th...
How does the machine classify styles in art? And how does it relate to a...
We use customer demand data for fashion articles on Myntra, and derive a...
Most software systems today do not support cognitive diversity. Further,...
While members of Congress now routinely communicate with constituents us...
Once, when I was young and reckless, I experimented with TensorFlow on Android devices.
Pokedex using tensorflow
A pastiche is an artistic work that imitates the style of another one. Computer vision and more recently machine learning have a history of trying to automate pastiche, that is, render an image in the style of another one. This task is calledstyle transfer, and is closely related to the texture synthesis task. While the latter tries to capture the statistical relationship between the pixels of a source image which is assumed to have a stationary distribution at some scale, the former does so while also attempting to preserve some notion of content.
On the computer vision side, Efros & Leung (1999) and Wei & Levoy (2000) attempt to “grow” textures one pixel at a time using non-parametric sampling of pixels in an examplar image. Efros & Freeman (2001) and Liang et al. (2001) extend this idea to “growing” textures one patch at a time, and Efros & Freeman (2001) uses the approach to implement “texture transfer”, i.e. transfering the texture of an object onto another one. Kwatra et al. (2005) approaches the texture synthesis problem from an energy minimization perspective, progressively refining the texture using an EM-like algorithm. Hertzmann et al. (2001) introduces the concept of “image analogies”: given a pair of “unfiltered” and “filtered” versions of an examplar image, a target image is processed to create an analogous “filtered” result. More recently, Frigo et al. (2016) treats style transfer as a local texture transfer (using an adaptive patch partition) followed by a global color transfer, and Elad & Milanfar (2016) extends Kwatra’s energy-based method into a style transfer algorithm by taking content similarity into account.
On the machine learning side, it has been shown that a trained classifier can be used as a feature extractor to drive texture synthesis and style transfer.Gatys et al. (2015a) uses the VGG-19 network (Simonyan & Zisserman, 2014) to extract features from a texture image and a synthesized texture. The two sets of features are compared and the synthesized texture is modified by gradient descent so that the two sets of features are as close as possible. Gatys et al. (2015b)
extends this idea to style transfer by adding the constraint that the synthesized image also be close to a content image with respect to another set of features extracted by the trained VGG-19 classifier.
The style representation learned via conditional instance normalization permits the arbitrary combination of artistic styles. Each pastiche in the sequence corresponds to a different step in interpolating between theand values associated with two styles the model was trained on.
While very flexible, this algorithm is expensive to run due to the optimization loop being carried. Ulyanov et al. (2016a), Li & Wand (2016) and Johnson et al. (2016) tackle this problem by introducing a feedforward style transfer network, which is trained to go from content to pastiche image in one pass. However, in doing so some of the flexibility of the original algorithm is lost: the style transfer network is tied to a single style, which means that separate networks have to be trained for every style being modeled. Subsequent work has brought some performance improvements to style transfer networks, e.g. with respect to color preservation (Gatys et al., 2016a) or style transfer quality (Ulyanov et al., 2016b), but to our knowledge the problem of the single-purpose nature of style transfer networks remains untackled.
We think this is an important problem that, if solved, would have both scientific and practical importance. First, style transfer has already found use in mobile applications, for which on-device processing is contingent upon the models having a reasonable memory footprint. More broadly, building a separate network for each style ignores the fact that individual paintings share many common visual elements and a true model that captures artistic style would be able to exploit and learn from such regularities. Furthermore, the degree to which an artistic styling model might generalize across painting styles would directly measure our ability to build systems that parsimoniously capture the higher level features and statistics of photographs and images (Simoncelli & Olshausen, 2001).
In this work, we show that a simple modification of the style transfer network, namely the introduction of conditional instance normalization, allows it to learn multiple styles ((a)).We demonstrate that this approach is flexible yet comparable to single-purpose style transfer networks, both qualitatively and in terms of convergence properties. This model reduces each style image into a point in an embedding space. Furthermore, this model provides a generic representation for artistic styles that seems flexible enough to capture new artistic styles much faster than a single-purpose network. Finally, we show that the embeddding space representation permits one to arbitrarily combine artistic styles in novel ways not previously observed ((b)).
Style transfer can be defined as finding a pastiche image whose content is similar to that of a content image but whose style is similar to that of a style image . This objective is by nature vaguely defined, because similarity in content and style are themselves vaguely defined.
The neural algorithm of artistic style proposes the following definitions:
Two images are similar in content if their high-level features as extracted by a trained classifier are close in Euclidian distance.
Two images are similar in style if their low-level features as extracted by a trained classifier share the same statistics or, more concretely, if the difference between the features’ Gram matrices has a small Frobenius norm.
The first point is motivated by the empirical observation that high-level features in classifiers tend to correspond to higher levels of abstractions (see Zeiler & Fergus (2014) for visualizations; see Johnson et al. (2016) for style transfer features). The second point is motivated by the observation that the artistic style of a painting may be interpreted as a visual texture (Gatys et al., 2015a). A visual texture is conjectured to be spatially homogenous and consist of repeated structural motifs whose minimal sufficient statistics are captured by lower order statistical measurements (Julesz, 1962; Portilla & Simoncelli, 1999).
In its original formulation, the neural algorithm of artistic style proceeds as follows: starting from some initialization of (e.g. , or some random initialization), the algorithm adapts
to minimize the loss function
where is the style loss, is the content loss and
are scaling hyperparameters. Given a set of “style layers”and a set of “content layers” , the style and content losses are themselves defined as
where are the classifier activations at layer , is the total number of units at layer and is the Gram matrix associated with the layer activations. In practice, we set and and leave as a free hyper-parameter.
In order to speed up the procedure outlined above, a feed-forward convolutional network, termed a style transfer network , is introduced to learn the transformation (Johnson et al., 2016; Li & Wand, 2016; Ulyanov et al., 2016a). It takes as input a content image and outputs the pastiche image directly (Figure 2). The network is trained on many content images (Deng et al., 2009) using the same loss function as above, i.e.
While feedforward style transfer networks solve the problem of speed at test-time, they also suffer from the fact that the network is tied to one specific painting style. This means that a separate network has to be trained for every style to be imitated. The real-world impact of this limitation is that it becomes prohibitive to implement a style transfer application on a memory-limited device, such as a smartphone.
Our work stems from the intuition that many styles probably share some degree of computation, and that this sharing is thrown away by trainingnetworks from scratch when building an -styles style transfer system. For instance, many impressionist paintings share similar paint strokes but differ in the color palette being used. In that case, it seems very wasteful to treat a set of impressionist paintings as completely separate styles.
To take this into account, we propose to train a single conditional style transfer network for styles. The conditional network is given both a content image and the identity of the style to apply and produces a pastiche corresponding to that style. While the idea is straightforward on paper, there remains the open question of how conditioning should be done. In exploring this question, we found a very surprising fact about the role of normalization in style transfer networks: to model a style, it is sufficient to specialize scaling and shifting parameters after normalization to each specific style. In other words, all convolutional weights of a style transfer network can be shared across many styles, and it is sufficient to tune parameters for an affine transformation after normalization for each style.
We call this approach conditional instance normalization. The goal of the procedure is transform a layer’s activations into a normalized activation specific to painting style . Building off the instance normalization technique proposed in Ulyanov et al. (2016b), we augment the and parameters so that they’re matrices, where is the number of styles being modeled and is the number of output feature maps. Conditioning on a style is achieved as follows:
where and are
’s mean and standard deviation taken across spatial axes andand are obtained by selecting the row corresponding to in the and matrices (Figure 3). One added benefit of this approach is that one can stylize a single image into painting styles with a single feed forward pass of the network with a batch size of . In constrast, a single-style network requires feed forward passes to perform style transfers (Johnson et al., 2016; Li & Wand, 2016; Ulyanov et al., 2016a).
Because conditional instance normalization only acts on the scaling and shifting parameters, training a style transfer network on styles requires fewer parameters than the naive approach of training separate networks. In a typical network setup, the model consists of roughly 1.6M parameters, only around 3K (or ) of which specify individual artistic styles. In fact, because the size of and grows linearly with respect to the number of feature maps in the network, this approach requires parameters, where is the total number of feature maps in the network.
In addition, as is discussed in subsection 3.4, conditional instance normalization presents the advantage that integrating an style to the network is cheap because of the very small number of parameters to train.
Unless noted otherwise, all style transfer networks were trained using the hyperparameters outlined in the Appendix’s Table 1.
We used the same network architecture as in Johnson et al. (2016)
, except for two key details: zero-padding is replaced with mirror-padding, and transposed convolutions (also sometimes calleddeconvolutions) are replaced with nearest-neighbor upsampling followed by a convolution. The use of mirror-padding avoids border patterns sometimes caused by zero-padding in SAME-padded convolutions, while the replacement for transposed convolutions avoids checkerboard patterning, as discussed in in Odena et al. (2016). We find that with these two improvements training the network no longer requires a total variation loss that was previously employed to remove high frequency noise as proposed in Johnson et al. (2016).
Our training procedure follows Johnson et al. (2016)
. Briefly, we employ the ImageNet dataset(Deng et al., 2009) as a corpus of training content images. We train the
-style network with stochastic gradient descent using the Adam optimizer(Kingma & Ba, 2014)
. Details of the model architecture are in the Appendix. A complete implementation of the model in TensorFlow(Abadi et al., 2016) as well as a pretrained model are available for download 111https://github.com/tensorflow/magenta. The evaluation images used for this work were resized such that their smaller side has size 512. Their stylized versions were then center-cropped to 512x512 pixels for display.
As a first test, we trained a 10-styles model on stylistically similar images, namely 10 impressionist paintings from Claude Monet. Figure 4 shows the result of applying the trained network on evaluation images for a subset of the styles, with the full results being displayed in the Appendix. The model captures different color palettes and textures. We emphasize that of the parameters are shared across all styles in contrast to of the parameters which are unique to each painting style.
To get a sense of what is being traded off by folding 10 styles into a single network, we trained a separate, single-style network on each style and compared them to the 10-styles network in terms of style transfer quality and training speed (Figure 5).
The left column compares the learning curves for style and content losses between the single-style networks and the 10-styles network. The losses were averaged over 32 random batches of content images. By visual inspection, we observe that the 10-styles network converges as quickly as the single-style networks in terms of style loss, but lags slightly behind in terms of content loss.
In order to quantify this observation, we compare the final losses for 10-styles and single-style models (center column). The 10-styles network’s content loss is around higher than its single-style counterparts, while the difference in style losses ( lower) is insignificant. While the -styles network suffers from a slight decrease in content loss convergence speed, this may not be a fair comparison, given that it takes times more parameter updates to train single-style networks separately than to train them with an -styles network.
The right column shows a comparison between the pastiches produced by the 10-styles network and the ones produced by the single-style networks. We see that both results are qualitatively similar.
We evaluated the flexibility of the -styles model by training a style transfer network on 32 works of art chosen for their diversity. (a) shows the result of applying the trained network on evaluation images for a subset of the styles. Once again, the full results are displayed in the Appendix. The model appears to be capable of modeling all 32 styles in spite of the tremendous variation in color palette and the spatial scale of the painting styles.
Since all weights in the transformer network are shared between styles, one way to incorporate a new style to a trained network is to keep the trained weights fixed and learn a new set ofand parameters. To test the efficiency of this approach, we used it to incrementally incorporate Monet’s Plum Trees in Blossom painting to the network trained on 32 varied styles. Figure 6 shows that doing so is much faster than training a new network from scratch (left) while yielding comparable pastiches: even after eight times fewer parameter updates than its single-style counterpart, the fine-tuned model produces comparable pastiches (right).
The conditional instance normalization approach raises some interesting questions about style representation. In learning a different set of and parameters for every style, we are in some sense learning an embedding of styles.
Previous work suggested that cleverly balancing optimization strategies offers an opportunity to blend painting styles 222For instance, https://github.com/jcjohnson/neural-style. To probe the utility of this embedding, we tried convex combinations of the and values to blend very distinct painting styles ((b); Figure 7, left column). Employing a single convex combination produces a smooth transition from one style to the other. Suppose () and () are the parameters corresponding to two different styles. We use and to stylize an image. Employing convex combinations may be extended to an arbitrary number of styles 333Please see the code repository for real-time, interactive demonstration. A screen capture is available at https://www.youtube.com/watch?v=6ZHiARZmiUI.. Figure 7 (right column) shows the style loss from the transformer network for a given source image, with respect to the Bicentennial Print and Head of a Clown paintings, as we vary from to . As increases, the style loss with respect to Bicentennial Print increases, which explains the smooth fading out of that style’s artifact in the transformed image.
It seems surprising that such a small proportion of the network’s parameters can have such an impact on the overall process of style transfer. A similar intuition has been observed in auto-regressive models of images (van den Oord et al., 2016b) and audio (van den Oord et al., 2016a) where the conditioning process is mediated by adjusting the biases for subsequent samples from the model. That said, in the case of art stylization when posed as a feedforward network, it could be that the specific network architecture is unable to take full advantage of its capacity. We see evidence for this behavior in that pruning the architecture leads to qualitatively similar results. Another interpretation could be that the convolutional weights of the style transfer network encode transformations that represent “elements of style”. The scaling and shifting factors would then provide a way for each style to inhibit or enhance the expression of various elements of style to form a global identity of style. While this work does not attempt to verify this hypothesis, we think that this would constitute a very promising direction of research in understanding the computation behind style transfer networks as well as the representation of images in general.
Concurrent to this work, Gatys et al. (2016b) demonstrated exciting new methods for revising the loss to selectively adjust the spatial scale, color information and spatial localization of the artistic style information. These methods are complementary to the results in this paper and present an interesting direction for exploring how spatial and color information uniquely factor into artistic style representation.
The question of how predictive each style image is of its corresponding style representation is also of great interest. If it is the case that the style representation can easily be predicted from a style image, one could imagine building a transformer network which skips learning an individual conditional embedding and instead learn to produce a pastiche directly from a style and a content image, much like in the original neural algorithm of artistic style, but without any optimization loop at test time.
Finally, the learned style representation opens the door to generative models of style: by modeling enough paintings of a given artistic movement (e.g. impressionism), one could build a collection of style embeddings upon which a generative model could be trained. At test time, a style representation would be sampled from the generative model and used in conjunction with the style transfer network to produce a random pastiche of that artistic movement.
In summary, we demonstrated that conditional instance normalization constitutes a simple, efficient and scalable modification of style transfer networks that allows them to model multiple styles at the same time. A practical consequence of this approach is that a new painting style may be transmitted to and stored on a mobile device with a small number of parameters. We showed that despite its simplicity, the method is flexible enough to capture very different styles while having very little impact on training time and final performance of the trained network. Finally, we showed that the learned representation of style is useful in arbitrarily combining artistic styles. This work suggests the existence of a learned representation for artistic styles whose vocabulary is flexible enough to capture a diversity of the painted world.
We would like to thank Fred Bertsch, Douglas Eck, Cinjon Resnick and the rest of the Google Magenta team for their feedback; Peyman Milanfar, Michael Elad, Feng Yang, Jon Barron, Bhavik Singh, Jennifer Daniel as well as the the Google Brain team for their crucial suggestions and advice; an anonymous reviewer for helpful suggestions about applying this model in a mobile domain. Finally, we would like to thank the Google Cultural Institute, whose curated collection of art photographs was very helpful in finding exciting style images to train on.
Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on, pp. 248–255. IEEE, 2009.
Texture synthesis using convolutional neural networks.In Advances in Neural Information Processing Systems, pp. 262–270, 2015a.
|Operation||Kernel size||Stride||Feature maps||Padding||Nonlinearity|
|Network – input|
|Residual block – feature maps|
|Add the input and the output|
|Upsampling – feature maps|
|Nearest-neighbor interpolation, factor 2|
|Normalization||Conditional instance normalization after every convolution|
|Optimizer||Adam (Kingma & Ba, 2014) (, , )|
|Weight initialization||Isotropic gaussian (, )|