MRF算法,全程马尔科夫随机场,所谓的马尔科夫特性,就是当前变量的值只和距离最近的变量有关系。这方面最简单的应用是语言模型方面。MRF应用的图像生成上时,会使用最近邻算法寻找最相似的patch来进行生成。
而图像生成领域,在[2]的领导下,诞生了一系列基于CNN特征的生成算法。但基于CNN的算法也存在问题,即只有pixel级别的相关性被考虑了进来,而空间布局的限制则没有被考虑进来。
论文将MRF和CNN结合起来,把[2]的Gram矩阵用MRF Loss进行了替代。即能利用CNN抽象特征的提取能力,又能利用MRF的空间布局限制,提高了生成图像的质量。
由公式可知,待生成图像中的MRF Loss是由各个patch的损失值加起来的。而每个patch的损失值则是该patch A与在风格图像中的最接近A的patch的欧式距离,该损失是基于feature_map的。
而最接近则是用NN(i)来计算的。
这个计算过程看似和CNN格格不入,会使得CNN不能用反向传播的形式求导图像。但可以用一种巧妙的方法将其转换为CNN支持的方式,后续会介绍。
和[2]中的方法类似,计算待生成图像和内容图像在网络某层的feature_map上的欧氏距离。
为了保证平滑,添加平方梯度的regularizer项。
总的损失函数即上述几个的加权和:
为了将MRF的损失函数变得可以利用卷积的反向传播,论文做法如下:
在实现过程中,实现了金字塔式的清晰度计算方法。如下:
为了避免内容图和风格图的视野和尺度的影响,对style Image做了多种变化。
一起加入到Loss计算中。
下面三个分析来证明CNN特征的有效性和MRF的有效性。
高层特征找相似patch比pixel要好。
高层特征的混合比pixel要好,但太高层或太底层也不稳定。
比较MRF损失添加前和添加后的合成结果,
上面一行是添加了MRF的,下面则是没有添加的。由于上面那行和风格图像中的patch几乎没区别,就没有画。
当然,MRF的方法也有限制,那就是只在内容图像中的patch和风格图像中的patch可以吻合的比较好的时候才会有效。否则,那就会倾向于把整幅图都变化了。如