卷积神经网络的应用:人脸识别+神经网络风格迁移

一、人脸识别问题

1.人脸验证和人类识别的区别

(1)人脸验证(1对1问题)

输入:图片和人物的身份(名字或ID)

系统:只需判断图片上的人物是否为对应身份的人

(2)人脸识别(1对K问题)

数据:拥有一个K个人物照片的数据库

输入:一张某人的图片

系统:若所输入图片中的人物为数据库K个图片上的人物之一,输出对应身份信息(名字或ID)

2.one-shot learning(一次学习)

(1)定义

        仅仅通过一张图片或一个人脸样例就能识别人物。

(2)背景

        当深度学习只有一个训练样例,它的效果是不好的 ,因为训练集是很小的,且数据库中的数据会改变,训练好的模型经常需要改变,是很麻烦的。

因此采用学习Similarity函数,实现一次学习,效果会更好。

(3)实现方法

        通过计算两张图片的差异值,再规定阈值,若小于阈值,则认定两张图片为同一人;若大于阈值,则两张图片不是同一人。

3.Siamese network

(1)图片编码

       实现人脸验证,计算两张图片的差异值时,不能简单的比较图片的像素,可以通过将其编码为向量的形式再计算差值。

(2)siamese网络结构

        通过计算两个图片编码后的差异值,再与阈值比较,判断两张图像是否是同一人。

        为有更好的识别准确率,我们在训练siamese网络时,我们需要一组优秀的参数,可以使得:

  • 同一个人的两个图像的编码非常相似,即计算两张图片的差异值很小。

  • 两个不同人物的图像的编码非常不同,即计算两张图片的差异值很大。

3.三元组损失函数

        使用三元组图像(A,P,N)定义损失函数,训练模型,可以很好区分是否是同一人,其中:

  • A是“Anchor”,是一个人的图像。
  • P是“Positive”,是相对于“Anchor”的同一个人的另外一张图像。
  • N 是“Negative”,是相对于“Anchor”的不同的人的另外一张图像。

  • 公式(2)是给定三元组A与正例P之间的距离的平方,我们要让它变小。
  • 公式(3)是给定三元组A与负例N之间的距离的平方,我们要让它变大,经公式(1)变换后前面为一个负号。
  • α是间距,这个需要我们来手动选择,这里我们使用α = 0.2。

二、神经风格迁移问题(Neural Style Transfer,NST)

1.图像风格迁移

(1)原理

        合并两个图像,即“内容”图像(Content)和“风格”图像(Style),以创建“生成的”图像(Generated)。生成的图像G将图像C的“内容”与图像S的“风格”相结合。

(2)通过迁移学习实现神经网络风格迁移

        使用在不同任务上训练的网络并将其应用于新任务的想法称为迁移学习。

        神经风格转换(NST)使用先前训练好了的卷积网络,并在此基础之上进行构建。模型已经在非常大的数据库上进行了训练,因此学会了识别各种低级特征(浅层)和高级特征(深层)。

2.神经网络风格迁移算法三步骤

(1)构建内容代价函数

1)定义内容代价函数

        生成的”图像G具有与输入图像C相似的内容。假设我们选择了一些层的激活来表示图像的内容,在实践中,如果你在网络中间选择一个层——既不太浅也不太深,你会得到最好的的视觉结果。

        用一个预训练模型,如VGG网络也可以用其他网络,将图像C作为已经训练好的VGG网络的输入,然后进行前向传播。让a^{[l](C)}成为你选择的层中的隐藏层激活,激活值为n_{H}\times n_{W}\times n_{C}的张量。然后用图像G重复这个过程:将G设置为输入数据,并进行前向传播,让a^{[l](G)}成为相应的隐层激活。

2)内容代价函数

        通过计算a^{[l](C)}a^{[l](G)}之间的距离,判断生成的图像与原图像是否具有相同的内容。

        注意:这里前面所乘的归一化常数可加可不加,最后内容代价函数前会有参数\alpha进行调整。

(2)风格代价函数

1)图片风格

       为图片风格定义一个深度测量,针对L隐藏层,可将图片的风格定义为L层中各个通道之间激活项的相关系数。

2)不同通道间激活项的相关系数

        不同通道对于不同类型的纹理颜色喜好不同,因此可以计算通道之间的相关系数,描述图片之间风格相似程度。

       在通道之间使用相关系数来描述通道的风格,分别对输入的风格图像和生成图像进行计算各通道间的相关系数,从而可以测量生成图像与输入风格图像的相似程度。

3)计算图像的风格矩阵

4)构建风格代价函数

        通过计算G^{[l](S)}G^{[l](G)}之间的距离,判断生成的图像与原图像是否具有相同的内容。

        注意:这里前面所乘的归一化常数可加可不加,最后内容代价函数前会有参数\alpha进行调整。

(3)神经网络风格迁移代价函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值