全文共5146字,预计学习时长10分钟
风格迁移是计算机视觉的一个激动人心的子领域,目的是将一幅图像的风格迁移到另一幅图像上,称为内容图像。这项技术支持结合不同图像的内容和风格合成新图像。在这个子领域已经取得了一些进展,但最显著的初步工作(神经类型迁移)是Gatys等人在2015年完成的。以下是应用这种技术的效果图。
从左到右为:内容图像、风格图像、生成的图像
这个方法相当直观,本文是在pytorch和python中实现神经风格迁移的简单指南,并预先解释了这个方法。
Github完整代码:https://github.com/ksivaman/Transfer-image-styling
理解风格和内容
神经风格迁移涉及到将一个图像的风格迁移到另一个图像的内容上。它们分别是什么?
内容就是图像的组成部分。可能是风景、海滩环境、花园里的猫、动物园里的长颈鹿等等……在典型的图像分类网络中,基本上是图像的标签。内容是图像组成的高级表征。
图像风格涉及更复杂的细节:笔触、颜色对比、整体纹理等等……
假设图像的内容是一只狗,不同人画这个“内容”的方式不一样,也就是说狗的模样会不尽相同。这种差异形成了图像风格。你的笔画可能会更粗更有活力,而我的笔画可能会更细更钝。
这些定义有助于理解目的,但实际上,实现该算法需要更精确的定义。可以使用下面概述的标准图像分类网络获得这些定量定义。
卷积神经网络(CNN)是图像分类的常用方法。为了进行分类,CNN将图像作为输入,并应用一组卷积滤波器、最大池化和非线性激活来给出更密集的输入图像表示。
更全面的CNNs指南:https://towardsdatascience.com/convolutional-neural-networks-from-the-ground-up-c67bb41454e1
卷积网络丢失了大量的输入图像信息(尤其是池化层)。丢失的信息主要与图像风格有关,因为在处理图像分类任务时,风格是无用的信息。默认情况下,分类渠道(CNNs)非常擅长表示图像的内容。密集的输出表示是特征映射的术语,从CNNs中获得的完全连接的层保留了输入