总说
简单来说,这个其实类似 Deep photo吧,都是加了分割mask的。和Deep Photo的区别就是,那么仍旧采用Gram-matrix-matching的方式进行style loss的计算。这个采用的是CNNMRF的style loss。
框架也是一样,采用一个能提取特征的model,一般就选VGG19了。然后在隐藏层上进行一些loss的计算。主要是content loss和style loss,都是这些东西。这文章和CNNMRF的区别就是,加入了soft masks,否则还真的完全没区别啊。不过加入semantic mask的话,也是借鉴了 Deep photo吧。。简单来说就是用了CNNMRF的style loss加上Deep photo的semantic mask也加入进style loss的计算。 结合起来就完事。速度也慢,和deep photo的一样,迭代的方法能快? 也没和Deep photo比效果,和CNNMRF比算啥啊。唉唉。不过另外说一点,就是这个不是用hard mask,而是用soft mask来弄,算是和他们不太一样的地方吧。
简述方法
简单来说就是他们先将content 图
然后也是输入到网络中。这次有4个输入
如何获得soft mask
由于用的CRF-RNN是用来进行Pascal VOC分割任务的,有20个类,因此有20个masks,但是作者就用了5个。这5个类是将
(额,这不就说明了要求style 图和content图的形状比较相近才行啊。。我觉得还不如看Deep Image Analogy。。。)
计算style loss
算了不想写了,公式写的乱七八糟的。看着糟心。
总结
从这里以及以前的Deep photo和Deep image analogy可以看出,为了达到semantic的风格转换,一般都将分割mask加入网络(一般直接将这种mask放缩后concat到feature map上),然后计算style loss时直接全部的通道进行切块计算。这是因为这种soft mask是一种probability map。反正计算loss时别单纯用x的feature map吧。不过Deep image analogy采用coarse-to-fine一层层迭代的方式进行,它那个对content 图和style图的形状相近应该要求还要严格些