> For the complete documentation index, see [llms.txt](https://hujian.gitbook.io/deep-learning/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hujian.gitbook.io/deep-learning/juan-ji-wang-luo/feng-ge-qian-yi/arbitrary-style-transfer-in-real-time-with-adaptive-instance-normalization.md).

# Adaptive Instance Normalization

> [Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization](https://arxiv.org/abs/1703.06868)

Gatys等人最近引入了一种神经算法，以另一幅图像的风格渲染内容图像，实现所谓的风格转换。然而，他们的框架需要一个缓慢的迭代优化过程，这限制了它的实际应用。已经提出了具有前馈神经网络的近似值以加速神经类型转移。不幸的是，速度提升需要付出代价：网络通常与固定的样式相关联，并且无法适应任意新的样式。 在本文中，我们提出了一种简单而有效的方法，它首次实现了任意样式传输。我们方法的核心是一个新颖的自适应实例规范化（AdaIN）层，它将内容特征的均值和方差与样式特征的均值和方差对齐。我们的方法实现了与现有最快方法相当的速度，而没有对预定义样式集的限制。另外，我们的方法允许灵活的用户控制，例如内容式权衡，样式插值，颜色和空间控制，所有这些都使用单个前馈神经网络。

## 方法

### Instance Normalization

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAUCGE3HY0ukeh5Ju9%2Fimage.png?alt=media\&token=bb828232-280d-4404-8b33-99e590c1798d)

与BN层不同，这里 $$μ(x)$$ 和 $$σ(x)$$ 在每个样本的每个通道上独立地跨空间维度进行计算：

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAUN3LNQADfJd1J3tu%2Fimage.png?alt=media\&token=09172926-0fc2-423c-b6b2-01658eb3702f)

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAUPGaZQ5atzwWEgc6%2Fimage.png?alt=media\&token=e8001bc0-273a-4373-8ca8-2b73ff85668a)

### Conditional Instance Normalization

Dumoulinet提出了一种条件实例正则化（CIN）层，它为每种样式 $$s$$ 学习一组不同的参数$$\gamma^s$$ 和 $$\beta^s$$ ，而不是只学习一组仿射参数 $$\gamma$$ 和 $$\beta$$ 。令人惊讶的是，网络可以通过使用相同的卷积参数生成不完全不同风格的图像但IN层中的不同参数。

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAUYNuJP3j5Vb45tzy%2Fimage.png?alt=media\&token=459eb3a5-b445-4263-aae3-bf6de9d2843b)

与没有归一化层的网络相比，具有CIN层的网络需要 $$2FS$$ 个附加参数，其中 $$F$$ 是网络中特征图的总数。由于附加参数的数量与样式的数量成线性比例，因此扩展它们的方法来对大量样式(例如数万个)建模是一个挑战。此外，如果不重新训练网络，他们的方法无法适应新的风格。

### Interpreting Instance Normalization

尽管(条件)实例规范化取得了巨大的成功，但它们在样式转换方面特别有效的原因仍然难以解释。Ulyanov认为IN的成功在于其对图像对比度的不变性。然而，IN发生在特征空间中，因此它应该比像素空间中的简单对比度归一化具有更深刻的影响。 也许更令人惊讶的是，IN中的仿射参数完全改变了输出图像的样式。

众所周知，DNN的卷积特征统计可以捕捉图像\[的风格。而盖特·艾尔使用二阶统计量作为它们的优化目标。最近显示，与许多其他统计数据相匹配，包括channel-wise mean和variance，对于风格转换也是有效的。通过这些观察得出的结论，我们认为实例正规化通过对特征统计进行正规化来实现一种风格规范化，即均值和方差。尽管DNN是图像描述者，但我们相信网络的特征统计可以控制生成图像的风格。

我们进行了以下实验：即测试对比度归一化和风格归一化后IN的影响力，结果表明IN在风格化归一化后效果变差，所以也说明了IN本身的作用就是风格归一化。

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAW2Ql_Ikc-9Azjv33%2Fimage.png?alt=media\&token=3866fc2f-f06d-42d1-8f47-57b12ebb6f33)

### Adaptive Instance Normalization

如果IN将输入规范化为仿射参数指定的单一样式，是否可以通过使用自适应仿射变换使其适应任意的样式？ 在这里，我们提出了一个简单的IN扩展，我们称之为adaptive实例规范化（AdaIN）。AdaIN接收内容输入x和样式输入y，并简单地将x的通道均值和方差对齐以匹配y。与BN，IN或CIN不同，AdaIN没有可学习的仿射参数。相反，它从样式输入中自适应地计算仿射参数。

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAX4rCluPN0PCFwKTt%2Fimage.png?alt=media\&token=23659fd7-9301-4601-905b-6e0523a50b29)

直观地说，让我们考虑一个检测特定风格的画笔笔迹的特征通道。具有这种笔画的样式图像将为该特征产生高平均激活。AdaIN生成的输出将具有相同的高平均激活功能，同时保留内容图像的空间结构。笔画特征可以通过前馈解码器转换到图像空间，此通道的方差可以编码更细微的样式信息，也可以转移到AdaIN输出和最终输出图像。

简而言之，AdaIN通过传递特征统计数据，特别是通道均值和方差，在特征空间中执行样式传递。

### Experimental Setup

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAXk3-mSsQlH8Ilmkl%2Fimage.png?alt=media\&token=fef2e8a0-86fb-418a-8c7d-f8e31091d7ff)

#### Loss Function

整体损失氛围内容损失和风格损失

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAY1y7BFFDaYgbqbEx%2Fimage.png?alt=media\&token=56f5ef52-0e6c-4fe7-8e34-c845c054f618)

内容损失是目标特征和输出图像特征之间的欧几里德距离。我们使用AdaIN输出内容目标，而不是常用的内容图像的特征响应。我们发现这导致了稍微更快的收敛，并且没有反转AdaIN输出的目标

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAY3kM3VfLI5dXF3YN%2Fimage.png?alt=media\&token=6ebc4692-dfa9-441d-9518-011f267170a8)

由于我们的AdaIN图层仅传递样式特征的均值和标准偏差，因此我们的样式丢失仅匹配这些统计信息。虽然我们发现常用的Gram矩阵损失可以产生类似的结果，但我们对IN统计数据进行了匹配，因为它在概念上更清晰：

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAY6AuzK1vwkucG3Rz%2Fimage.png?alt=media\&token=526040db-ab5a-4a05-8f13-f2970fa55629)

其中每个φ标识VGG-19中的一层，用于计算样式损失

## 效果

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-LcAH1a466RKUs7HWJ-a%2F-LcAeKDRyDe9qbw1sHHL%2Fimage.png?alt=media\&token=eaf894d0-1ad9-44c1-aca5-9a871783d7d6)
