失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 卷积神经网络 — 特殊应用:人脸识别和神经风格迁移

卷积神经网络 — 特殊应用:人脸识别和神经风格迁移

时间:2023-08-26 05:08:57

相关推荐

卷积神经网络 — 特殊应用:人脸识别和神经风格迁移

卷积神经网络 — 特殊应用:人脸识别和神经风格迁移

Part 1:人脸识别

1. 人脸验证和人脸识别

人脸验证(Verification):

Input:图片、名字/ID;

Output:输入的图片是否是对应的人。

1 to 1 问题。

人脸识别(Recognition):

拥有一个具有K个人的数据库;

输入一副人脸图片;

如果图片是任意这K个人中的一位,则输出对应人的ID。

人脸识别问题对于人脸验证问题来说,具有更高的难度。如对于一个验证系统来说,如果我们拥有99%99%的精确度,那么这个验证系统已经具有了很高的精度;但是假设在另外一个识别系统中,如果我们把这个验证系统应用在具有K个人的识别系统中,那么系统犯错误的机会就变成了K倍。所以如果我们想在识别系统中得到更高的精度,那么就需要得到一个具有更高精度的验证系统。

2. one shot learning

对于大多数的人脸识别系统都存在的一个问题就是one shot learning。

什么是one shot learning:

对于一个人脸识别系统,我们需要仅仅通过先前的一张人脸的图片或者说一个人脸的样例,就能够实现该人的识别,那么这样的问题就是one shot 问题。对于存在于数据库中的人脸图片,系统能够识别到对应的人;而不在数据库中的人脸图片,则系统给出无法通过识别的结果。

对于one shot learning 问题,因为只有单个样本,是不足以训练一个稳健的卷积神经网络来进行不同人的识别过程。而且,在有新的样本成员加入的时候,往往还需要对网络进行重新训练。所以我们不能以传统的方法来实现识别系统。

Similarity 函数:

为了能够让人脸识别系统实现一次学习,需要让神经网络学习 Similarity 函数:

d(img1, img2):两幅图片之间的差异度

输入:两幅图片

输出:两者之间的差异度

如果 d(img1,img2)⩽τd(img1,img2)⩽τ,则输出“same”;

如果d(img1,img2)>τd(img1,img2)>τ,则输出“different”.

对于人脸识别系统,通过将输入的人脸图片与数据库中所拥有的图片成对输入Similarity函数,两两对比,则可解决one shot problem。如果有新的人加入团队,则只需将其图片添加至数据库即可。

3. Siamese 网络

利用Siamese 网络来实现 Similarity 函数。

构建网络:

对于一个卷积神经网络结构,我们去掉最后的softmax层,将图片样本1输入网络,最后由网络输出一个N维的向量(图中实例以128表示),这N维向量则代表输入图片样本1的编码。将不同人的图片样本输入相同参数的网络结构,得到各自相应的图片编码。

Similarity 函数实现:

将Similarity 函数表示成两幅图片编码之差的范数:

d(x1,x2)=||f(x1)−f(x2)||22

d(x1,x2)=||f(x1)−f(x2)||22

那么也就是说:

我们的神经网络的参数定义了图片的编码;

学习网络的参数,使我们得到好的Similarity

如果觉得《卷积神经网络 — 特殊应用:人脸识别和神经风格迁移》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。