基于神经网络的图像风格迁移(二)

    之前的那篇博文 基于神经网络的图像风格迁移(一)讲述的是Gates论文“Image Style Transfer Using Convolutional Neural Networks”。这篇论文虽然有着极其开创的作用,但是也有一些局限之处,最大的缺点就是必须要实时训练,这样耗时比较长,笔者在GTX 1080Ti双卡上大概需要3min。这样是无法移植到手机或者是网络,这些对实时要求比较高的设备中去的。
    好在Johnson的工作成功解决了这个问题,下面我们将介绍论文“Perceptual Losses for Real-Time Style Transfer and Super-Resolution”。
    这篇论文的主要工作就是用大量的内容图片仅训练一张风格图片,从而得到某个特定风格的模型,在测试时,将内容图片经过模型就能实时得到一张经过该风格渲染之后的合成图片,值得一提的是,代码还实现了视频的风格迁移。
    

    整篇论文的精华就在于上面这张图,即Johnson设计出的网络结构,先看右边部分,是经典VGG16网络,是风格输入,是内容输出,他们都只通过一次有着固定权重VGG16,在每个block都得到一个feature map,也经过VGG16,得到的特征和风格特征计算style loss,和内容特征计算content loss。同样是两个loss的线性和得到total loss,利用这个total loss去训练左边的Image Transfer Net。

    Image Transfer Net的网络结构是3层卷积,5层残差,3层反卷积。所有的卷积层之后都没有池化层,再利用后面的反卷积得到与原图同样大小的图片。

    所以整个网络的期望就是,一张输入图片x,经过训练好的模型之后,会得到,而这个已经使得total loss最小了,这样这个就相当于是经过指定风格渲染之后的合成图片。

    但是在模型训练好之前,需要利用已经训练好的VGG16网络,计算出total loss训练左边的自定义网络。训练好的自定义网络就是我们需要的模型了。这里content loss,style loss和total loss的计算方式与Gates论文中的计算方式无异。

    这里与Gates有一个差异需要注意,就是Gates计算出的total loss是对噪声图片求偏导,而Johnson计算出的loss是对自定义网络的权重w求偏导。

发布了36 篇原创文章 · 获赞 6 · 访问量 7001

猜你喜欢

转载自blog.csdn.net/zhuikefeng/article/details/80078149