1. 前导
依据原论文的思路简略过一遍。
1.1. 出处
论文名称:Learning Linear Transformations for Fast Image and Video Style Transfer
论文收录于CVPR2019
我的项目地址Github
1.2. 变量命名
\(F_c\) 示意内容图像的特色图;\(F_s\)示意格调图像的特色图;
\(F_d\) 示意变换后的特征向量;\(\bar{F}\) 示意具备0均值的矢量化特色图\(F\)(也就是F减去F的均值);
\(\phi_s\) 示意所需格调的“虚构”特色图(\(\phi_s=\phi(F_s)\),在AdaIN/WCT中,\(\phi_s=F_s\))
\(T\) 示意学习矩阵;
\(N\) 示意像素量,即\(N=H\times W\);\(C\) 示意通道数;
阐明:
为什么这里\(\bar{F}\)只减去均值不除以方差呢?是因为前面须要用方差计算协方差矩阵。
2. 推导(Image)
2.1. 求解指标
先给出优化指标公式
$$ F^*_d = arg\min_{F_d} \frac{1}{NC} \|\bar{F_d}\bar{F_d}^{\top} -\bar{\phi_s}\bar{\phi_s}^{\top} \|^2_F \tag{1} \\s.t. \bar{F_d} = T \bar{F_c}.$$
指标含意是为了最小化\(F_d\)和\(\phi_s\)之间的核心协方差。核心协方差就是将样本均值挪动到原点再计算协方差,这就是为什么\(\bar{F}\)只减去均值。也就是说咱们冀望减去均值后的内容特色通过学习矩阵\(T\)变换后靠近风格特征。留个问题:为什么这里应用的是协方差?
将公式\(1\)中的约束条件代入可知,当
$$T\bar{F}_c\bar{F}_c^{\top}T^{\top} = \bar{\phi_s}\bar{\phi_s}^{\top} \tag{2}$$
时,指标函数最小。
\(\bar{F_c}\)的核心协方差:\(cov(F_c)=\bar{F}_c\bar{F}_c^{\top}=V_cD_cV_c^{\top}\);对应的奇怪值合成(SVD):\(cov(\phi_s)=\bar{\phi_s}\bar{\phi_s}^{\top}=V_sD_sV_s^{\top} \)。所以,依据这两个公式,能够容易失去公式\(2\)的一组解:
$$T=(V_sD^{\frac{1}{2}}_sV_s^{\top})U(V_cD^{-\frac{1}{2}}_cV_c^{\top}) \tag{3}$$
其中,\(U\in R^{C\times C}\)是\(C\)维正交群。
由此,能够看出 \(T\)仅由内容特色协方差和风格特征协方差确定。
当给定一个\(T\)时,变换后的特色\(\bar{F_d}\) 加上 \(mean(F_s)\) 与 指标格调的均值和协方差统计值对齐。 (与后面那句加粗的话在肯定水平上等价)
当初的问题是\(T\)怎么失去,有后面能够晓得\(T\)仅取决于内容和格调,一种可行的办法是应用网络将两个图片间接输入为\( C \times C\)的矩阵。
由等式\(3\)得,内容和格调是拆散的,所以能够应用两个独立的CNNs来提取各自的特色。
从等式\(2\)能够推断出CNNs能够有三种输出的形式:1. 图片(c/s)2. 特色图(\(F_c\)/\(F_s\)) 3. 协方差矩阵(\(cov(F_c)\)/\(cov(F_s)\))。所以选哪种呢?还是每种都行呢?
在这里,作者心愿输入\(T\)的模块能够灵便适应所有内容图像和任意形态区域(就是大小能够不一样),所以形式1和形式2不实用,因为容易晓得\(T=\bar{\phi_s}U\bar{F_c}^{-1}\),那么这就要求内容和格调的维度特色须要雷同;还有另一点,因为\(T\)形容的是格调变换,侧重于形容全局统计量变动而不是图像空间信息。所以综合以上这两点,抉择形式3,输出协方差,输入\(C\times C\)两头矩阵,而后这两个矩阵相乘失去\(T\)。