keras如何实现图像风格转换 -,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司是一家集网站建设,南澳企业网站建设,南澳品牌网站建设,网站定制,南澳网站建设报价,网络营销,网络优化,南澳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
前言
说到深度学习的应用,第一个想到的就是Prisma App的图像风格转换。既然感兴趣就直接开始干,读了论文,一知半解;看了别人的源码,才算大概了解的具体的实现,也惊叹别人的奇思妙想。
- 论文可以参考【A Neural Algorithm of Artistic Style】,网上也有中文的版本。 - http://arxiv.org/abs/1508.06576 
- 使用的工具:py34、keras1.1.2、theano0.8.2、GeForce GT 740M (CNMeM is disabled, cuDNN not available)。 
实现原理
1. 总流程
- 实现流程如下,可以看到这里总共分为5层,本次实验使用vgg16模型实现的。  
- 如上,a有个别名是 - conv1_1,b是- conv2_1,依次类推,c,d,e对应- conv3_1,- conv4_1,- conv5_1;输入图片有风格图片- style image和内容图片- content image,输出的是就是合成图片,然后用合成图片为指导训练,但是训练的对象不像是普通的神经网络那样训练权值- w和偏置项- b,而是训练合成图片上的像素点,以达到损失函数不断减少的效果。论文使用的是随机的噪声像素图为初始合成图,但是使用原始图片会快一点。
2. 内容损失函数 - Content Loss
- 下面是content loss函数的定义。  
- l代表第l层的特征表示,- p是原始图片,- x是生成图片。公式的含义就是对于每一层,原始图片生成特征图和生成图片的特征图的一一对应做平方差。
3. 风格损失函数 - style loss
- 在定义风格损失函数之前首先定义一个Gram矩阵。  
- F是生成图片的特征图。上面式子的含义:Gram第i行,第j列的数值等于把生成图在第- l层的第- i个特征图与第- j个特征图分别拉成一维后相乘求和。 

- 上面是风格损失函数, - Nl是指生成图的特征图数量,- Ml是图片宽乘高。- a是指风格图片,- x是指生成图片。- G是生成图的Gram矩阵,- A是风格图的Gram矩阵,- wl是权重。
4. 总损失
- 总损失函数如下, - alpha与- beta比例为- 1*10^-3或更小。 
代码讲解
1. 图片预处理和还原

2. content loss

3. style loss

结果



- 可以看出效果每一代都有进步,因为自己的显卡渣,跑一代估计要1.5个小时,自己测试的时候总共跑了14个小时,不过这里有个技巧,就是可以把上一代的图片继续做输入,这样中途有什么事就可以停止。下次只要把上次输出的图片当输入就可以。 
- vgg16模型加载原项目的权值。 
- 具体项目代码可见githua上的代码、权值文件和测试图片,因为中途修改过,可能有些地方需要改过来,不过代码比较简单,估计很快就可以找到问题了。 
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
分享标题:keras如何实现图像风格转换-
网址分享:http://www.cqwzjz.cn/article/joscce.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 