Artistic style transfer for videos
In the past, manually re-drawing an image in a certain artistic style required a professional artist and a long time. Doing this for a video sequence single-handed was beyond imagination. Nowadays computers provide new possibilities. We present an approach that transfers the style from one image (for example, a painting) to a whole video sequence. We make use of recent advances in style transfer in still images and propose new initializations and loss functions applicable to videos. This allows us to generate consistent and stable stylized video sequences, even in cases with large motion and strong occlusion. We show that the proposed method clearly outperforms simpler baselines both qualitatively and quantitatively.
There have recently been a lot of interesting contributions to the issue of style transfer using deep neural networks. Gatys et al.  proposed a novel approach using neural networks to capture the style of artistic images and transfer it to real world photographs. Their approach uses high-level feature representations of the images from hidden layers of the VGG convolutional network  to separate and reassemble content and style. This is done by formulating an optimization problem that, starting with white noise, searches for a new image showing similar neural activations as the content image and similar feature correlations (expressed by a Gram matrix) as the style image.
The present paper builds upon the approach from Gatys et al.  and extends style transfer to video sequences. Given an artistic image, we transfer its particular style of painting to the entire video. Processing each frame of the video independently leads to flickering and false discontinuities, since the solution of the style transfer task is not stable. To regularize the transfer and to preserve smooth transition between individual frames of the video, we introduce a temporal constraint that penalizes deviations between two frames. The temporal constraint takes the optical flow from the original video into account: instead of penalizing the deviations from the previous frame, we penalize deviation along the point trajectories. Disoccluded regions as well as motion boundaries are excluded from the penalizer. This allows the process to rebuild disoccluded regions and distorted motion boundaries while preserving the appearance of the rest of the image, see Fig. 1.
In addition, we present two extensions of our approach. The first one aims on improving the consistency over larger periods of time. When a region that is occluded in some frame and disoccluded later gets rebuilt during the process, most likely this region will have a different appearance than before the occlusion. To solve this, we make use of long term motion estimates. This allows us to enforce consistency of the synthesized frames before and after the occlusion.
Secondly, the style transfer tends to create artifacts at the image boundaries. For static images, these artifacts are hardly visible, yet for videos with strong camera motion they move towards the center of the image and get amplified. We developed a multi-pass algorithm, which processes the video in alternating directions using both forward and backward flow. This results in a more coherent video.
We quantitatively evaluated our approach in combination with different optical flow algorithms on the Sintel benchmark. Additionally we show qualitative results on several movie shots. We were able to successfully eliminate most of the temporal artifacts and can create smooth and coherent stylized videos.
2 Related work
2.0.1 Style transfer using deep networks:
Gatys et al.  showed remarkable results by using the VGG-19 deep neural network for style transfer. Their approach was taken up by various follow-up papers that, among other things, proposed different ways to represent the style within the neural network. Li et al.  suggested an approach to preserve local patterns of the style image. Instead of using a global representation of the style, computed as Gram matrix, they used patches of the neural activation from the style image. Nikulin et al.  tried the style transfer algorithm by Gatys et al. on other nets than VGG and proposed several variations in the way the style of the image is represented to archive different goals like illumination or season transfer. However, we are not aware of any work that applies this kind of style transfer to videos.
Painted animations: One common approach to create video sequences with an artistic style is to generate artificial brush strokes to repaint the scene. Different artistic styles are gained by modifying various parameters of these brush strokes, like thickness, or by using different brush placement methods. To achieve temporal consistency Litwinowicz  was one of the first who used optical flow. In his approach, brush strokes were generated for the first frame and then moved along the flow field. Later, this approach was refined. Hays et al.  proposed new stylistic parameters for the brush strokes to mimic different artistic styles. O’Donovan et al.  formulated an energy optimization problem for an optimal placement and shape of the brush strokes and also integrated a temporal constraint into the optimization problem by penalizing changes in shape and width of the brush strokes compared to the previous frame. These approaches are similar in spirit to what we are doing, but they are only capable of applying a restricted class of artistic styles.
3 Style transfer in still images
In this section, we briefly review the style transfer approach introduced by Gatys et al. . The aim is to generate a stylized image showing the content of an image in the style of an image . Gatys et al. formulated an energy minimization problem consisting of a content loss and a style loss. The key idea is that features extracted by a convolutional network carry information about the content of the image, while the correlations of these features encode the style.
We denote by the function implemented by the part of the convolutional network from input up to the layer . The feature maps extracted by the network from the original image , the style image and the stylized image we denote by , and respectively. The dimensionality of these feature maps we denote by , where is the number of filters (channels) in the layer, and is the spatial dimensionality of the feature map, that is, the product of its width and height.
The content loss, denoted as , is simply the mean squared error between and . This loss need not be restricted to only one layer. Let be the set of layers to be used for content representation, then we have:
The style loss is also a mean squared error, but between the correlations of the filter responses expressed by their Gram matrices for the style image and for the stylized image . These are computed as and . As above, let be the set of layers we use to represent the style, then the style loss is given by:
Overall, the loss function is given by
with weighting factors and governing the importance of the two components.
The stylized image is computed by minimizing this energy with respect to using gradient-based optimization. Typically it is initialized with random Gaussian noise. However, the loss function is non-convex, therefore the optimization is prone to falling into local minima. This makes the initialization of the stylized image important, especially when applying the method to frames of a video.
4 Style transfer in videos
We use the following notation: is the frame of the original video, is the style image and are the stylized frames to be generated. Furthermore, we denote by the initialization of the style optimization algorithm at frame . By we denote the component of a vector .
4.1 Short-term consistency by initialization
When the style transfer for consecutive frames is initialized by independent Gaussian noise, two frames of a video converge to very different local minima, resulting in a strong flickering. The most basic way to yield temporal consistency is to initialize the optimization for the frame with the stylized frame . Areas that have not changed between the two frames are then initialized with the desired appearance, while the rest of the image has to be rebuilt through the optimization process.
If there is motion in the scene, this simple approach does not perform well, since moving objects are initialized incorrectly. Thus, we take the optical flow into account and initialize the optimization for the frame with the previous stylized frame warped: . Here denotes the function that warps a given image using the optical flow field that was estimated between image and . Clearly, the first frame of the stylized video still has to be initialized randomly.
4.2 Temporal consistency loss
To enforce stronger consistency between adjacent frames we additionally introduce an explicit consistency penalty to the loss function. This requires detection of disoccluded regions and motion boundaries. To detect disocclusions, we perform a forward-backward consistency check of the optical flow . Let be the optical flow in forward direction and the flow in backward direction. Denote by the forward flow warped to the second image:
In areas without disocclusion, this warped flow should be approximately the opposite of the backward flow. Therefore we mark as disocclusions those areas where the following inequality holds:
Motion boundaries are detected using the following inequality:
The temporal consistency loss function penalizes deviations from the warped image in regions where the optical flow is consistent and estimated with high confidence:
Here is per-pixel weighting of the loss and is the dimensionality of the image. We define the weights between frames and as follows: in disoccluded regions (as detected by forward-backward consistency) and at the motion boundaries, and everywhere else. Potentially weights between and could be used to incorporate the certainty of the optical flow prediction. The overall loss takes the form:
We optimize one frame after another, thus refers to the already stylized frame .
Furthermore we experimented with the more robust absolute error instead of squared error for the temporal consistency loss; results are shown in section B.
4.3 Long-term consistency
The short-term model has the following limitation: when some areas are occluded in some frame and disoccluded later, these areas will likely change their appearance in the stylized video. This can be counteracted by also making use of long-term motion, i.e. not only penalizing deviations from the previous frame, but also from temporally more distant frames. Let denote the set of indices each frame should take into account, relative to the frame number. E.g. means frame takes frames , and into account. Then, the loss function with long-term consistency is given by:
It is essential how the weights are computed. Let be the weights for the flow between image and , as defined for the short-term model. The long-term weights are computed as follows:
where is taken element-wise. This means, we first apply the usual short-term constraint. For pixels in disoccluded regions we look into the past until we find a frame in which these have consistent correspondences. An advantage over simply using is that each pixel is connected only to the closest possible frame from the past. Since the optical flow computed over more frames is more erroneous than over fewer frames, this results in nicer videos. An empirical comparison of and is shown in the supplementary video (see section B.1).
4.4 Multi-pass algorithm
We found that the output image tends to have less contrast and is less diverse near image boundaries than in other areas of the image. For mostly static videos this effect is hardly visible. However, in cases of strong camera motion the areas from image boundaries move towards the center of the image, which leads to a lower image quality over time when combined with our temporal constraint. Therefore, we developed a multi-pass algorithm which processes the whole sequence in multiple passes and alternating directions. The basic idea is that we progressively propagate intermediate results in both forward and backward direction, avoiding an one-way information flow from the image boundaries to the center only.
Every pass consists of a relatively low number of iterations without full convergence. At the beginning, we process every frame independently based on a random initialization. After that, we blend frames with non-disoccluded parts of previous frames warped according to the optical flow, then run the optimization algorithm for some iterations initialized with this blend. The direction in which the sequence is processed is alternated in every pass. We repeat this blending and optimization to convergence.
Formally, let be the initialization of frame in pass and the corresponding output after some iterations of the optimization algorithm. When processed in forward direction, the initialization of frame is created as follows:
Here denotes element-wise vector multiplication, and are the blend factors, is a vector of all ones, and .
Analogously, the initialization for a backward direction pass is:
The multi-pass algorithm can be combined with the temporal consistency loss described above. We achieved good results when we disabled the temporal consistency loss in several initial passes and enabled it in later passes only after the images had stabilized.
In this section, we briefly describe implementation details and present experimental results produced with different versions of our algorithm. While we did our best to make the paper self-contained, it is not possible to demonstrate effects like video flickering in still images. We therefore advise the readers to watch the supplementary video, which is available at https://youtu.be/vQk_Sfl7kSc.
5.1 Implementation details
Our implementation111GitHub: https://github.com/manuelruder/artistic-videos is based on the Torch  implementation called neural-style222GitHub: https://github.com/jcjohnson/neural-style. We used the following layers of the VGG-19 network  for computing the losses: relu4_2 for the content and relu1_1,relu2_1,relu3_1,relu4_1,relu5_1 for the style. The energy function was minimized using L-BFGS. For precise evaluation we incorporated the following strict stopping criterion: the optimization was considered converged if the loss did not change by more than during 50 iterations. This typically resulted in roughly to iterations for the first frame and roughly to iterations for subsequent frames when optimizing with our temporal constraint, depending on the amount of motion and the complexity of the style image. Using a convergence threshold of cuts the number of iterations and the running time in half, and we found it still produces reasonable results in most cases. However, we used the stronger criterion in our experiments for the sake of accuracy.
For videos of resolution we used weights and for the content and style losses, respectively (default values from neural-style), and weight for the temporal losses. However, the weights should be adjusted if the video resolution is different. We provide the details in section A.2.
For our multi-pass algorithm, we used iterations per pass and set , but we needed at least passes for good results, so this algorithm needs more computation time than our previous approaches.
We used DeepMatching, DeepFlow and EpicFlow implementations provided by the authors of these methods. We used the ”improved-settings” flag in DeepMatching 1.0.1 and the default settings for DeepFlow 1.0.1 and EpicFlow 1.00.
For the relaxed convergence threshold of with random initialization the optimization process needed on average roughly eight to ten minutes per frame at a resolution of on an Nvidia Titan X GPU. When initialized with the warped previous frame and combined with our temporal loss, the optimization converges 2 to 3 times faster, three minutes on average. Optical flow computation runs on a CPU and takes roughly minutes per frame pair (forward and backward flow together), therefore it can be performed in parallel with the style transfer. Hence, our modified algorithm is roughly times faster than naive per-frame processing, while providing temporally consistent output videos.
5.2 Short-term consistency
We evaluated our short-term temporal loss on diverse scenes from the MPI Sintel Dataset , with 20 to 50 frames of resolution pixels per scene, and famous paintings (shown in section A.1) as style images. The Sintel dataset provides ground truth optical flow and ground truth occlusion areas, which allows a quantitative study. We warped each stylized frame back with the ground truth flow and computed the difference with the stylized frame in non-disoccluded regions. We use the mean square of this difference (that is, the mean squared error) as a quantitative performance measure.
On this benchmark we compared several approaches: our short-term consistency loss with DeepFlow and EpicFlow, as well as three different initializations without the temporal loss: random noise, the previous stylized frame and the previous stylized frame warped with DeepFlow. We set , , .
A qualitative comparison is shown in Fig. 2. Quantitative results are in Table 2. The most straightforward approach, processing every frame independently, performed roughly an order of magnitude worse than our more sophisticated methods. In most cases, the temporal penalty significantly improved the results. The ambush scenes are exceptions, since they contain very large motion and the erroneous optical flow impairs the temporal constraint. Interestingly, on average DeepFlow performed slightly better than EpicFlow in our experiments, even through EpicFlow outperforms DeepFlow on the Sintel optical flow benchmark.
|Init prev warped||0.0016||0.0063||0.012||0.0015||0.0049|
5.3 Long-term consistency and multi-pass algorithm
The short-term consistency benchmark presented above cannot evaluate the long-term consistency of videos (since we do not have long-term ground truth flow available) and their visual quality (this can only be judged by humans). We therefore excluded the long-term penalty and the multi-pass approach from the quantitative comparison and present only qualitative results. Please see the supplementary video for more results.
Fig. 3 shows a scene from Miss Marple where a person walks through the scene. Without our long-term consistency model, the background looks very different after the person passes by. The long-term consistency model keeps the background unchanged. Fig. 4 shows another scene from Miss Marple with fast camera motion. The multi-pass algorithm avoids the artifacts introduced by the basic algorithm.
We presented a set of techniques for style transfer in videos: suitable initialization, a loss function that enforces short-term temporal consistency of the stylized video, a loss function for long-term consistency, and a multi-pass approach. As a consequence, we can produce stable and visually appealing stylized videos even in the presence of fast motion and strong occlusion.
-  Butler, D.J., Wulff, J., Stanley, G.B., Black, M.J.: A naturalistic open source movie for optical flow evaluation. In: A. Fitzgibbon et al. (Eds.) (ed.) European Conf. on Computer Vision (ECCV). pp. 611–625. Part IV, LNCS 7577, Springer-Verlag (Oct 2012)
-  Collobert, R., Kavukcuoglu, K., Farabet, C.: Torch7: A matlab-like environment for machine learning. In: BigLearn, NIPS Workshop (2011)
-  Gatys, L.A., Ecker, A.S., Bethge, M.: A neural algorithm of artistic style. CoRR abs/1508.06576 (2015), http://arxiv.org/abs/1508.06576
-  Hays, J., Essa, I.: Image and video based painterly animation. In: Proceedings of the 3rd International Symposium on Non-photorealistic Animation and Rendering. pp. 113–120. NPAR ’04, ACM, New York, NY, USA (2004), http://doi.acm.org/10.1145/987657.987676
-  Li, C., Wand, M.: Combining markov random fields and convolutional neural networks for image synthesis. CoRR abs/1601.04589 (2016), http://arxiv.org/abs/1601.04589
-  Litwinowicz, P.: Processing images and video for an impressionist effect. In: Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques. pp. 407–414. SIGGRAPH ’97, ACM Press/Addison-Wesley Publishing Co., New York, NY, USA (1997), http://dx.doi.org/10.1145/258734.258893
-  Nikulin, Y., Novak, R.: Exploring the neural algorithm of artistic style. CoRR abs/1602.07188 (2016), http://arxiv.org/abs/1602.07188
-  O’Donovan, P., Hertzmann, A.: Anipaint: Interactive painterly animation from video. IEEE Transactions on Visualization and Computer Graphics 18(3), 475–487 (2012)
-  Revaud, J., Weinzaepfel, P., Harchaoui, Z., Schmid, C.: EpicFlow: Edge-Preserving Interpolation of Correspondences for Optical Flow. In: CVPR 2015 - IEEE Conference on Computer Vision & Pattern Recognition. Boston, United States (Jun 2015), https://hal.inria.fr/hal-01142656
-  Simonyan, K., Zisserman, A.: Very deep convolutional networks for large-scale image recognition. CoRR abs/1409.1556 (2014), http://arxiv.org/abs/1409.1556
-  Sundaram, N., Brox, T., Keutzer, K.: Dense point trajectories by gpu-accelerated large displacement optical flow (Sept 2010), http://lmb.informatik.uni-freiburg.de//Publications/2010/Bro10e
-  Weinzaepfel, P., Revaud, J., Harchaoui, Z., Schmid, C.: DeepFlow: Large displacement optical flow with deep matching. In: ICCV 2013 - IEEE International Conference on Computer Vision. pp. 1385–1392. IEEE, Sydney, Australia (Dec 2013), https://hal.inria.fr/hal-00873592
Appendix A Additional details of experimental setup
a.1 Style images
Style images we used for benchmark experiments on Sintel are shown in Figure 5.
a.2 Weighting of the loss components
As mentioned in the main paper, for best results the weights , and of different components of the loss function have to be adjusted depending on the resolution of the video. The settings we used for different resolutions are shown in Table 2.
Appendix B Additional experiments
b.1 Supplementary video
A supplementary video, available at https://youtu.be/vQk_Sfl7kSc, shows moving sequences corresponding to figures from this paper, plus a number of additional results:
Results of the basic algorithm on different sequences from Sintel with different styles
Additional comparison of the basic and the multi-pass algorithm
Additional comparison of the basic and the long-term algorithm
Comparison of ”naive” () and ”advanced” () weighting schemes for long-term consistency
Another video, showing results of the algorithm on a number of diverse videos with different style images is avalable at https://youtu.be/Khuj4ASldmU.
b.2 Robust loss function for temporal consistency
We tried using the more robust absolute error instead of squared error for the temporal consistency loss. The weight for the temporal consistency was doubled in this case. Results are shown in Figure 6. While in some cases (left example in the figure) absolute error leads to slightly improved results, in other cases (right example in the figure) it causes large fluctuations. We therefore stick with mean squared error in all our experiments.
b.3 Effect of errors in optical flow estimation
The quality of results produced by our algorithm strongly depends on the quality of optical flow estimation. This is illustrated Figure 7. When the optical flow is correct (top right region of the image), the method manages to repair the artifacts introduced by warping in the disoccluded region. However, erroneous optical flow (tip of the sword in the bottom right) leads to degraded performance. Optimization process partially compensates the errors (sword edges get sharp), but cannot fully recover.