人脸识别:理论、建模、应用

介绍

面部是人体的独特标识,每个人都有着独特的面部特征。通过一个人的面部可以识别出其身份,不过双胞胎可能有点困难。那么什么是面部识别系统?简单来说,面部识别系统是一种通过人的面部轮廓比较和分析来从数字图像或视频源中识别人的身份的技术。人脸识别已经成为深度学习的重要方向。

学习基础

建立一个自己的人脸识别系统需要用到深度学习技术,所以对于深度学习你要知道激活单元,填充,前向传播,反向传播,过拟合,Droupout,Flatten,Python语法和数据结构,Keras库等。

建立模型

构建人脸识别模型的方法有很多,简单的可以直接用python调用dlib人脸识别库,还可以使用简单的卷积神经网络(CNN)模型来训练模型,本次给大家提供一个通过CNN训练的简单示例。

识别原理

在深度学习中,卷积神经网络(CNN或ConvNet)是一类常用于分析视觉图像。卷积网络受到生物过程的启发,因为神经元之间的连接模式类似于动物视觉皮层的组织。在图像识别中,给定输入图像,CNN模型应用各种滤波器识别图像中的边缘部分以便检测给定图像中的目标。

数据增强:一种有效扩展数据的方法,有助于我们构建强大的人脸识别系统,通过应用各种操作(如挤压,拉伸,翻转,放大,缩小,裁剪,旋转图像等)将单个图像转换为多个图像,从而确保以不同的角度和方向识别面部。

图像到Tensor:彩色图像由三个通道组成,即红色,蓝色和绿色。图像被分成三个通道并被转换成灰度图像以形成张量。三个灰度图像的像素被认为是张量的行和列,并且基于每个像素中颜色的深度,行和列被编号,其范围从0到255,0是白色,255是黑色。下面给出的图片基本了解了图像是如何由这三个通道组成的。

卷积:纹理检测可以被认为是卷积中最重要的部分。在CNN网络中,我们使用Sobel边缘检测技术来识别边缘。在这种技术中,我们使用张量相同深度的掩模/内核,并在图像张量和内核之间应用卷积运算。

这是应用Sobel边缘检测技术后图像的外观。我们在每个层中使用多个这样的内核,包括padding,strides和ReLu激活单元。

Max-Pooling:Max-Pooling是一个检测给定图像中目标的图层。其具有位置,比例和旋转是不变的特性,因此不管图像中待检测目标大小或位置变化,都能够检测出目标。下图为Pooling工作原理。

我们使用卷积,激活和最大池层的组合,即自动提取图像中的面部特征以及将其构成我们的训练数据进行训练与分类识别。

最终,我们的模型看起来类似于下图所示的模型。

写代码

下面我们将开始构建我们模型,本次数据集包括1608个图像,分为11个类别,即有11种人脸,每种类别分别存在对应的子文件夹中。

首先,我们导入所有必需的库。

开始划分训练集和测试集,我们将以8:2的比例将训练图像分成Train和Test。

接下来使用Keras中提供的ImageDataGenerator进行数据增强。该生成器将读取在“数据/训练”子文件夹中找到的图片,并批量的增强图像数据。

在数据处理完成之后,我们现在定义基本CNN模型进行训练。在这里,我创建了一个具有三个卷积层和2个Droupout层的模型,其值分别为0.25和0.5。具体代码如下:

定义好我们的模型之后,开始训练模型,其训练结果如下,其验证准确率为98.30%,最小验证交叉熵损失为0.04。

由于深度学习模型很容易过度适应。为了避免模型过度拟合,我们可以绘制训练和测试损失图表,如下所示。

这个模型网络结构比较简单,在训练之后可以获得99.5%的准确率。

应用

  1. 人脸识别系统广泛用于公共安全监控系统以及考勤系统。
  2. 人脸识别系统用于刑事侦查和法医鉴定。美国联邦调查局正在使用人脸识别来识别驾驶执照中的嫌疑人。在英国,人工智能配备的摄像机也已经进行了试验。
  3. 人脸识别用于实现安全可靠的在线支付。
  4. 人脸识别用于电子设备解锁

本文分享自微信公众号 - 深度学习与python(PythonDC)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

纳米级无人机PULP Dronet仅重27克,具有强大的自主导航能力

苏黎世联邦理工学院和博洛尼亚大学的研究人员开发了一个纳米级无人机,名为PULP Dronet,仅有27克,具有深度学习的视觉导航引擎。论文显示无人机可以在一个端...

19430
来自专栏小詹同学

Dropout的前世与今生

图 1:一些目前提出的 Dropout方法,以及 2012 到 2019 年间 Dropout 方法的理论进展。

11810
来自专栏深度学习和计算机视觉

为什么不建议你入门计算机视觉

作者:Jackpop https://zhihu.com/p/question/317440183 本文已授权,未经允许,不得二次转载

36830
来自专栏深度学习和计算机视觉

CVPR2019 | 6D目标姿态估计,李飞飞夫妇等提出DenseFusion

6D 目标姿态估计对许多重要的现实应用都很关键,例如机器人抓取与操控、自动导航、增强现实等。理想情况下,该问题的解决方案要能够处理具有各种形状、纹理的物体,且面...

42730
来自专栏深度学习和计算机视觉

SIGGRAPH提出的图像修复技术

图像修复技术是一种用可选内容填充目标区域的技术,它的主要用途是在对象删除任务中,从照片中删除一个对象,并用希望能保持图像上下文完整性的内容自动替换被删除的部分。...

14540
来自专栏机器学习算法原理与实践

机器学习中的矩阵向量求导(五) 矩阵对矩阵的求导

    在矩阵向量求导前4篇文章中,我们主要讨论了标量对向量矩阵的求导,以及向量对向量的求导。本文我们就讨论下之前没有涉及到的矩阵对矩阵的求导,还有矩阵对向量,...

15120
来自专栏灯塔大数据

学术大讲堂 | (三)智慧农业领域的关键AI技术

1) 从收入增长方面看:手机流量红利持续, 创新业务和宽带业务快速增长, 带动行业收入增长2.9%; 中电信、中联通收入增速超行业平均份额。

20530
来自专栏机器学习与统计学

揭秘LinkedIn!全球最大的招聘推荐系统如何被机器学习驱动?

大数据文摘出品 来源:towardsdatascience 编译:夏雅薇、Stats熊

12430
来自专栏Jerry的SAP技术分享

机器学习在SAP Cloud for Customer中的应用

关于机器学习这个话题,我相信我这个公众号1500多位关注者里,一定有很多朋友的水平比Jerry高得多。如果您看过我以前两篇文章,您就会发现,我对机器学习仅仅停留...

8910
来自专栏ATYUN订阅号

谷歌开发新模型EfficientNets,缩放CNN的精度与效率超越现有模型

卷积神经网络(CNN)通常以固定的资源成本开发,然后进行缩放,以便在获得更多资源时得到更好的精度。

12330

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励