风格迁移系列论文阅读 之 Combining MRF and CNN for Image Synthesis (Li&Wand, CVPR 2016)
CVPR 2016, 268 cited
本文创举:
在Gatys经典方法之外另辟蹊径,利用与Efros一脉相承的MRF纹理合成思想在CNN特征空间中作文章,得到了新的风格迁移方法。特别地,该算法可以photo-realistic。但是,本算法要求两张图像的内容相近,不然无法进行块匹配。
本文贡献:
在CNN的feature域利用MRF合成feature map,再通过优化得到图像。
解决痛点:
1. Gatys方法只能迁移艺术风格,无法迁移photo-reallistc风格。
2. 与经典的MRF方法相比,基于CNN高层特征的MRF方法将利用高层匹配而不是像素
充分利用了CNN能够extract图像的invariance,使得匹配块在语义上接近!
3. 与Gatys的统计建模方法相比,MRF方法能够更好地维持内容图像的局部结构(使得photo-realistic的合成得以实现)
4. 传统MRF方法受限于:窗口太小的纹理模式匹配无法学习到图像全局的结构模式!
5. 图像被CNN编码后,几乎无法从高层编码的feature中解码得到像素域的特征:而MRF方法有效地维持了高层feature的局部相关性。(?如何理解?)
6. Gatys方法太全局了,会有伪影、区域错叠、涂抹痕迹;
本文算法:
0. 首先是如何找到最匹配块;然后是如何对匹配块进行融合;最后恢复到像素域
1. 首先把content和Style图像送进VGG网络,然后对content feature map的每一个k*k*C块,寻找其在style feature map中的NN(最近邻)块。然后优化加权的Loss至最小,实际上是在两个feature块之间线性插值。(这样在一定程度上维持了原来的feature map,有利于维持平滑?但是块到底是怎么取的?无重叠吗?(有重叠!否则相邻块之间各自为政,无法平滑))
2. 最后还是用优化的方法回到像素域(问题是:块的大小如何确定?以及边缘如何平滑避免块效应?)
3. 注意,简单的块匹配然后优化并没有用到MRF?事实上,如果简单地块匹配然后优化的话,必然会有伪影!(deepdream)本文因此加上一个MRF正则项。(?)
4. 采用多尺度的处理管程,将内容图与风格图都制成两个金字塔,然后从大尺度开始合成,然后再插值上采样,重复合成进程。
细节:
1. 要求特征图与内容图的内容是相近的,否则在特征空间中也匹配不到相应的块!
2. 匹配块时使用的技巧!将style图像中某一层feature map的所有3x3块取出来,作为一个卷积层,然后根据内积的响应来获得最匹配的块。
3. 实际算法中还要将风格图作缩放和旋转处理!得到一系列的风格图(惊人,计算量飙升)
启示与问题:
1. 本文指出,近20年前的传统的MRF方法无法学习到整个图像的纹理结构(即使采用了多尺度金字塔),得到的结果近似于一锅乱炖的“texture soup”,我深有感触!本文是如何解决的?
2. 又一个问题:块匹配是如何导出Loss的?解决!算法是,先让内容feature块找到最接近的那一个风格块,然后在所有内容块都找到对应块之后,在像素域上对feature域的Loss进行优化,从而得到一种(feature域)线性插值的效果!
3. 如何在特征空间取块?如何达到平滑效果?解决!算法在高层feature空间以3x3 s=1的密集步长进行取值,然后块匹配、计算loss、更新参数,从而获得平滑的空域(因为相邻3x3 feature块对应的感受野之间存在重叠,因此当然会平滑)