Fast Patch-based Style Transfer of Arbitrary Style 理解

流程:

提取人脸特征点->人脸摆正->提取人脸->人脸替换->人脸倾斜->贴回去

 

前三个和后两个用别人的API就好

关键是做人脸替换

 

人脸替换:

 

训练人脸替换:

对于神经网络输出的图像X'我们要考虑四个东西

X'的内容,X'的风格,X'的亮度,X与X’的接近程度

 

那么就有四个loss_function

为了计算loss我们使用了VGG

VGG可以看做一个用来提取神经网络特征的东西

他是一个深层神经网络,我们这里用的是19层的版本

他已经预训练好了

他是全卷积神经网络

 

我们将生成的图片(X‘)与原图(X)一起输入VGG中

然后我们有19 × 2个一一对应的feature map

 

X'的内容

对于第i层VGG我们输入X,X'之后会得到两个对应的feature map

我们把每一个对应的feature map的每个元素做相减然后平方

我们相减平方之后得到 f(i)

然后再求平均值f(i)_mean

我们求出原图的feature_map的平均值g[i]_mean

最后将f[i]_mean / g[i]_mean得到这一层的loss

将所有层的loss做平均即得到内容损失函数

 

X’的风格

运用X'和Y(想转换的风格的图片)输入VGG

得到对应的feature map之后fi(X'),fi(Y) 

我们从fi(Y)每3 × 3取一块(就像做卷积那样)

对于每一块,我们在fi(X')的相同位置附近找一个最接近的块

然后计算他们之间的距离

距离函数为:

我也不知道为什么是这样的

 

X‘的亮度

因为VGG是用来提取图像特征来做图像分类和图像识别的

所以用VGG去评价亮度就不合适了

这里作者自己训练了一个神经网络用来评价亮度

 

然后把我们的X和X‘输入将结果的输出做

 

 

X与X‘的接近程度:

就这玩意没什么好说的

也是运用了风格损失函数中的思想

 

最后总的loss就是这四个个loss的加权求和,这个权是要调的超参数了

 

转载于:https://www.cnblogs.com/shensobaolibin/p/9072477.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值