看论文:
http://blog.csdn.net/elaine_bao/article/details/50502929
http://www.w2bc.com/article/158174
http://blog.csdn.net/shenxiaolu1984/article/details/52090012(更好一些)
https://github.com/fzliu/style-transfer(我用的这个caffe代码,见/home/echo/caffe-master/examples/style-transfer-master),想要实现更多,则结合代码:https://github.com/jcjohnson/neural-style
我的理解,实际上网络的参数都是现成有的,直接拿别人训练好的分类网络之类,输入一张随机图像(比如可以是噪声图像),我们构建一个混合的Loss(包含与内容图像的内容上的Loss与风格图像风格上的Loss),由反向传播来实现对之前那个随机图像上的像素值的更新,比如说:(可能也就是内容上的Loss按照某个高层来定,而风格上按照其他多个层来定的)
内容层- conv4_2
风格层- conv1_1, conv2_1, conv3_1, conv4_1, conv5_1
内容误差与风格误差的权重设为α,β,两者之比从1×10−3到5×10−4,五个风格层权重相同。当风格误差权重很高时,得到的结果近似风格图像的纹理。
由于需要反复迭代,本文算法的速度很慢。512×512图像,使用NVIDIA K40 GPU,需要近1小时完成。但是我跑了一下,一般7分钟左右
网友评论