300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 人脸识别:理论 建模 应用

人脸识别:理论 建模 应用

时间:2020-04-21 14:27:05

相关推荐

人脸识别:理论 建模 应用

介绍

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

学习基础

建立一个自己的人脸识别系统需要用到深度学习技术,所以对于深度学习你要知道激活单元,填充,前向传播,反向传播,过拟合,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%的准确率。

应用

人脸识别系统广泛用于公共安全监控系统以及考勤系统。

人脸识别系统用于刑事侦查和法医鉴定。美国联邦调查局正在使用人脸识别来识别驾驶执照中的嫌疑人。在英国,人工智能配备的摄像机也已经进行了试验。

人脸识别用于实现安全可靠的在线支付。

人脸识别用于电子设备解锁

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