使用VGG人脸数据集、Dlib和OpenCV的名人识别器

本文介绍了如何创建一个名人识别程序,使用VGG人脸数据集、Dlib和OpenCV,涉及面部关键点检测和距离计算。注册阶段处理大量图像生成描述符,推理阶段用于识别输入图像中的名人。
摘要由CSDN通过智能技术生成

210823b34ecc1d9ce5472ab8c691b377.png

在本文中,我们将探索如何创建一个程序,返回最像输入图像的名人姓名。

这个应用程序很酷,因为你可以用类似的方法做很多事情,比如情感检测或手势识别。

我们将使用的数据是VGG人脸数据集;你可以从这个链接下载https://www.robots.ox.ac.uk/~vgg/data/vgg_face/[1]

该数据库由2622个身份组成。每个身份都有一个文本文件,其中包含指向其图像的多个链接。为了加快这个过程,我们将只使用来自每个身份的5张图像。

基本策略包括两个步骤:注册和推理。

注册

在注册步骤中,我们对每个名人的5张图像中的每一张进行面部关键点检测。面部标志点通过Dlib面部识别器。Dlib模型将输出每个人脸的唯一响应。

VGG数据集的一个优点是已经执行了人脸检测,每个URL都有一个左上角和右下角的点。这是一个很大的帮助,因为人脸检测非常耗时。

991c1a0d548c2a4fd668d5e67eda20cc.png

我有好消息和坏消息要告诉你。坏消息是2622个身份,每个都有5张图片,所以一共有13110张图片,所以准备好吧——这需要一段时间。我在周末运行了它,大约花了6个小时来处理数据集。

它如此之慢的原因之一是因为你必须从URL打开图像。这大大降低了过程的速度,但使数据集更易于公众访问,因为作者不需要处理每个图像的版权规则。

好消息是你只需要做一次;运行程序后,描述符数组将保存为.npy文件。

一旦我们有了名人的描述,我们就可以进行推断了。

推理

在推理步骤中,检测输入图像的人脸及其关键点。关键点然后通过Dlib人脸识别器,该识别器将输出描述符。

1e75ee1675b024e6fe01d5bd50cd1328.png

我们所要做的就是计算输入图像描述符和数据集描述符之间的距离。

10d72891e84059738bce78290e28a8c4.png

下面的图片显示了我的结果。

63ace1bc152c33b5e916828e74032a25.png

我对结果很满意,但我想确保它起作用。所以,我用Amanda Seyfried的照片测试了我的程序,事实上,她看起来很像她自己!

b1bfe0aa6d8948d0da1df55621a08076.png

请参见以下实现:

<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值