当前位置:   article > 正文

计算机毕设:基于cnn卷积神经网络的人脸在线识别系统本设计研究_基于 cnn 的人脸学习专注度检测系统设计

基于 cnn 的人脸学习专注度检测系统设计

基于卷积神经网络的人脸在线识别系统

本设计研究人脸识别技术,基于卷积神经网络构建了一套人脸在线检测识别系统,系统将由以下几个部分构成:

  • 制作人脸数据集
  • CNN 神经网络模型训练
  • 人脸检测
  • 人脸识别

经过实验,确定该系统可对本人的人脸进行快速并准确的检测与识别。

关键词: 神经网络; 图像处理; 人脸检测;人脸识别;TensorFlow;模型训练

本系统使用人脸数据集下载:http://vis-www.cs.umass.edu/lfw/lfw.tgz

一、设计目标

  • 掌握人脸识别原理;
  • 掌握卷积神经网络算法原理
  • 掌握卷积神经网络模型训练过程;
  • 掌握常用图像处理技术;

设计内容与要求

  • 完成基于卷积神经网络的人脸在线识别系统算法设计;
  • 完成基于卷积神经网络的人脸在线识别系统模型训练;
  • 检测并且识别出人脸;

二、制作人脸数据集

2.1、制作我的人脸数据集

人脸检测出人脸位置,返回坐标、尺寸把脸用数组切片的方法截取下来,把截取的小图片保存下来作为数据集。

本系统获取本人的人脸数据集 10000 张,使用的是 dlib 来识别人脸,虽然速度比 OpenCV 识别慢,但是识别效果更好。其中,人脸大小:64*64。

2.2、主要步骤

  • 加载 dlib 机器学习的开源库
  • 图像预处理 cvtColor(灰度化)。
  • 使用 dlib 自带的 frontal_face_detector 进行特征提取。
  • 使用特征提取器进行人脸检测。
  • 人脸保存。

2.3、制作结果

2.4、制作其他人脸数据集

本系统使用人脸数据集下载:http://vis-www.cs.umass.edu/lfw/lfw.tgz。先将下载的图片集放在 img_source 目录下,用 dlib 来批量识别图片中的人脸部分,并保存到指定目录 faces_other。人脸大小为 64*64。

2.5、主要步骤

  • 读入人脸数据集源文件
  • 加载 dlib 机器学习的开源库。
  • 用 dlib 来批量识别图片中的人脸部分。
  • 人脸保存。

2.6、制作结果

三、 神经网络模型训练

3.1、卷积神经网络内部分析

第一、二层(卷积层 1、池化层 1),输入图片 64643,输出图片 323232;

第三、四层(卷积层 2、池化层 2),输入图片 323232,输出图片 161664;

第五、六层(卷积层 3、池化层 3),输入图片 161664,输出图片 8864;

第七层(全连接层),输入图片 8864,reshape 到 14096,输出 1512;

第八层(输出层),输入 1512,输出 12。

输出神经网络输出的 1*2,与标签 y_ [0,1]、[1,0]对比得出损失,损失函数为交叉熵,优化器采用 Adan 优化器,计算模型准确率。

代码实现:

cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=out, labels=y_))

optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cross_entropy)

accuracy = tf.reduce_mean(tf.cast(tf.equal(tf.argmax(out, 1), tf.argmax(y_, 1)), tf.float32))

3.2、输入层

人脸检测出人脸位置,返回坐标、尺寸把脸用数组切片的方法截取下来,把截取的小图片送入神经网络进行训练,输入的图片 64643。

3.3、卷积层

本网路共三层卷积层,卷积核大小为(3,3),卷积步长为[1,1,1,1],即一步,padding=“SAME”。卷积层提取特征,

增加通道数,图片大小不变。

3.4、池化层

本文提出的池化层采用最大值采样,采样大小为 22,即把输入的特征图分割成不重叠的 22 大小的矩形,对每个矩形取最大值,

所以输出特征图的长和宽均是输入特征图的一半。

3.5、全连接层

为了增强网络的非线性能力,同时限制网络规模的大小,网络在特征提取层提取特征后,接入一个全连接层,该层的每一个神经元

与前一层的所有神经元互相连接,将图片的卷积输出压扁成一个一维向量,输出 1*512。

3.6、输出层

本系统共分两类,一类我的人脸(yes),另一类其他人脸(no),从全连接层输入 1512,输出层输出 12。为求 loss 做准备。

3.7、主要步骤

(1)读入制作好的人脸数据集,将图片数据与标签转化成数组。

(2)划分测试集:训练集=20:1,做归一化处理。

(3)传入卷积神经网络。

(4)训练。

3.8、训练结果

四、利用模型进行人脸识别

4.1 、主要步骤

  • 打开摄像头获取图片进行灰度化。
  • 人脸检测。
  • 导入训练好的神经网络模型。
  • 人脸识别。

4.2、识别结果

 

五、总结

本次设计主要研究了基于卷积神经网络的人脸在线识别系统。设计了基于机器视觉的人脸图像采集系统,

自己制作了训练需要的人脸数据集。设计并实现了基于卷积神经网络的人脸识别系统,完成了基于卷积神经网络的

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号