版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于tensorflow的人脸识别系统设计 李慧颖 李薇 邢艳芳 何光威摘要:介绍了基于tensorflow的人脸识别系统的设计过程。该系统采用深度学习的理论以及google开发的人工智能框架tensorflow来实现人脸识别。系统调用opencv计算机视觉库中的功能函数从一段离线视频帧里截取人脸图像帧,用mtcnn模型进行人脸检测,再与通过数据集vggface2里训练的inception模型进行识别,输出特征向量,并与选好的图片库内图片对比。结果表明,该系统可较好的实现人脸识别功能。关键词:人脸识别;深度学习;人工智能;tensorflo
2、w; opencv计算机视觉库:tp311:a:1006-8228(2020)09-61-03design of face recognition system based on tensorflowli huiying, li wei. xing yanfang, he guangwei(com,nun.ication university of china, aranjing, jiang.su 211100. china)abstract: developed a face recognition system based on tensorflow. the system uses d
3、eep learning theory and artificialintelligence framework tensorflow developed by google to realize face recognition. the system calls the function in the opencvcomputer vision library to intercept the face image frame from an offline video frame, uses the mtcnn model for face detection.and identifie
4、s the face detected with the inception model trained in the data set vggface2, then outputs the feature vector andcompared it with pictures selected from the gallery. the results show that the system can realize the face recognition function.key words: face recognition; deep learning; artificial int
5、elligence; tensorflow; opencv computer vision library0引言许多早期普遍使用的身份验证方法随着时代演变已不具有完整的安全性,因为这类信息极易被伪造。本文研究基于tensorflow的人脸识别技术,先应用一种较好的mtcnn模型进行人脸检测,它是一种既考虑面部关键点检测又考虑面部边界回归深度的学习模型1。从opencv库中调用函数进行面部检测并识别被输入图像信息,并从视频数据中截取图像帧数据。然后程序从mtcnn网络读取截取的人脸图像,并通过inception框架对图像进行识别和确认。人脸检测和识别过程使用tensorflow來构建网络完成系统
6、设计。1cnn的基本网络结构cnn的基本网络结构由卷积层、池化层、全连接层、softmax层组成。而计算机所理解的输入层就是由许多的输入矩阵组成。在这一层上是跟dnn有很大相同点的。它的第一个网络是cnn结构独有的卷积层,其后是池化层,它也是cnn的独特部分。卷积层和池化层的组合在结构中出现多次。卷积层和池化层的组合模型可灵活使用所需的任意组合。在这些组合层后面出现的是有着dnn结构的全连接层(fully connected layer,简称fc)。而输出层主要是使用softmax激活函数来做图像识别的分类。2mtcnn的研究与应用在执行到人脸检测和特征点定位的任务时,将会使用多任务级联的卷积
7、神经网络(mtcnn)。该网络是实现人脸检测和五点校准的模型,主要通过cnn模型级联实现多任务学习网络。该模型利用检测和对齐之间的通用关系来提高其性能,并且从细致任务到粗糙任务的替换基本上是由三阶级联卷积神经网络完成的。这也是其特殊性能的体现。三阶段可大致分为:(1)使用全卷积网络(p-net)快速发布一系列候选窗口;(2)通过使用更复杂的cnn网络(r-net)过滤掉大多数非面部候选窗口;(3)使用一个能力稍作加强的网络(o-net)监测出人脸上面的五个标记点。3tensorflow系统结构tensorflow是一个可以使用数值类计算的开源软件库,它可以稳定在python的语言环境中运行2。
8、该程序在实施运行的基础上,兼顾一定的准确性和稳定性。tensorflow还具备完全开源性,可在智能手机或数据服务中心集群上运行,重要的是基于数据流图(data flow graphs),并可以广泛的应用于语音或图像分类的机器学习和深度学习领域3。tensorflow代表将张量从流程图的一个部分运动到另一端所需要进行的计算过程,分解来看就是tensor表示着张量(由n维数组成),以及流表示了基于数据流程图的运算。capi(computer assisted personal interviewing)即计算机辅助面访,是作为本系统的界线,分出两个子系统:前端系统和后端系统。前端系统主要工作是负责
9、构造建成计算图并为其提供实现编程所需要的模型;后端系统主要负责执行(出计算图)并在系统运行时提供稳定的环境。本系统中需关注四个基本组件,因系统是采用分布式运行机制,那么这四个组件就是关键。客户端是构成前端系统的重要部分,该系统可以支持多语言的客户端,不仅如此,还提供基于计算图上的编程模型,可为用户构建造出各种类的计算图而提供了便利,从而实现所需的模型没计。客户端以会话为桥梁连接后端的运行,同时启动计算图的运行过程。在分布式的运行环境中,分布式master承担从计算图中找到最小子图的责任,并将其分成多个子图,以便在多种进程和设备上运行。tensorflow将为每个不同的任务启动相应的工作者服务。
10、worker service在计算图的节点之间存在依赖关系的前提下完成图的计算,然后在硬件环境(例如cpu/gpu)中移动op内核,并且还需要接受其他工人服务或工序的计算结果将结果发送到其他工人服务。op(operator)以特殊方式在硬件设备上实现,以表示数据操作层。它负责执行op操作,每个op都有一个优化的内核实现,但要考虑设备的类型4。4系统设计与分析4.1获取被识别人脸特征向量由于本设计并没用到摄像头获取人脸图像,而是自主构建图片库。初次系统识别公众人物周杰伦,建立出一个名为jaychou的文件夹。在该文件夹内保存为获取人脸特征向量进行对比而截取的三张图片。为了与系统运行后从离线视频端
11、检测到的人脸特征向量进行对比,首先要在图片库里已获取的图片上进行检测,获取特征向量。4.2基于opencv读取视频该程序使用opencv截取视频数据流中的图像帧数据来提供输入图像以供之后的面部检测和面部识别5。opencv,也就是计算机视觉接口可以用在许多类型的操作系统上实现运行,例如更常用的windows,macos和linux。opencv是使用c+类与c函数构成的,具有高效特性与轻量化优势,此外在架构上还规划了一些接口提供给python、ruby、matlab等使用。该程序调用opencv库中的函数从离线视频端截取到视频帧,它内部的视觉处理算法变化多端,且c语言编写占用它的绝大多数功能,
12、可以说在dsp系统包括arm嵌入式系统中的运行代码都会在opencv中简略的重写过,考虑其开源特性前提下处理稳妥,不加额外的非内部支持也是能完整的编译链接并产生运行程序的,可以极其方便的做算法的移植。该步骤会影响后面程序对人脸检测的效果,所以必须严谨,其实现流程图如1所示。4.3mtcnn人脸检测人脸检测首先必须检测图片中是否含有人脸,这是其主要工作。其次,确定是否存在人脸边界的关键点。该系统的面部检测模块是使用多任务级联卷积神经网络(mtcnn)深度学习模型实现的,该模型专注于对面部框架回归和面部关键点检测。mtcnn主要存在三层网络,分别是p-net层、r-net层和o-net层。首先p-
13、net用在初步确认人脸的边框范围,使用r-net层精准的确定人脸边框范围,最后用o-net层检测并确认五个人脸关键点。首先将12*12尺寸的图像输入到p-net网络层,然后使用在训练之前生成的训练数据将其转换为12*12*3的结构。然后,r-net可以更准确地调整p-net生成的边界框的坐标。由p-net生成的回归帧和由其生成的面部轮廓关键点构成r-net训练数据,其中r-net生成的回归帧变为24*24大小,其面部轮廓关键点所用生成数据的方法与p-net相比没有变化。在mtcnn中用作输出的最后一个网络是o-net。与r-net的训练数据生成方式相类似是o-net网络的特点,其中包含面部轮廓
14、关键点数据和通过p-net和r-net后检测出来的每个图片中的bounding boxes。4.4 inception人脸识别人脸识别的步骤使用inception模型,该模型在vggface2数据集里进行了训练,在这里是形成了pb文件,直接进行使用。人脸识别是检测到人脸后的关键步骤,嵌入特征向量(embedding)是通过inception网络识别获得的。获得到人脸特征向量的代码: embs=sess.run(embeddings, feed_dict=feed_dict)从pb文件中找到模型的入口输入、出口输出并加载,其工作代码如下: images_placeholder=tf.get_de
15、fault_graph().get_tensor_by_name("input:0") embeddings = tf.get_default_graph().get_tensor_by_name("embeddings:0") phase_train_placeholder = tf.get_default_graph().get_tensor_by_name("phase_train:0")4.5特征向量的比对以上步骤进行完,这时获得了两种人脸的特征向量,分别是自己创建的图片库里的人脸特征向量和离线视频里截取到的人脸特征向量,比较
16、这两者,当特征向量之间比对的余弦距离较大时,就可以识别出人脸6。4.6结果展示在确认识别结果之后,用opencv画框将识别人的名字打上去,显示在视频中。这样,整个系统的操作完成。设计完成后,该系统的运行结果如图2所示。这组图片中,第一、二张为设计所需的结果,在视频中识别周杰伦的脸,并显示名字jaychou在画框里。第三张为对比显示图,其中,程序中获得人脸特征向量的人物得到识别,而另一个人没有获取特征向量识别为unk无信息。最后一张也为未获取特征向量的人物,故识别为unk。5结束语该系统设计的完成,具有一定的实用价值。系统依赖深度学习的发展,其在人脸识别技术上的运用,使得在短时间内刷新了大众对传统识别方式的认知7。但同时也存在着不可忽略的问题,如在完成度上由于缺少大量的训练,造成一些环境下存在识别误差,这也是人脸识别技术未来需要攻克的难题。参考文献(references):1朱秀娟,卢琳,钟洪发,人脸识别技术在考试身份验证中的应用j.激光杂志,2016.37(6):90-932章敏敏,徐和平,王晓洁,等.谷歌tensorflow机器学习框架及应用.微型机与应用j.2017,36(10):58-60.3黄睿,陆许明,邬依林.基于tensorflow深度学习手写体数字识别及应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度委托加工合同:高端定制家具委托加工协议
- 2024年度环保设备生产、销售与工程合同
- 想加租赁合同范例
- 存量房屋个人购买合同范例
- 消防报建合同范例
- 消防道路施工合同模板
- 求合作合同范例
- 2024年度版权购买合同:小说作者将作品改编权转让给影视公司
- 散白酒加盟合同范例
- 电梯安装结算合同模板
- 4-5《地球家园的化学变化》精编课件
- 小学英语单词完整版
- 重庆市社会公共安全视频图像信息系统技术规范
- 2022年03月浙江嘉兴南湖区教育研究培训中心选聘研训员笔试参考题库答案解析版
- 有经营才有结果必须开个人酒会月日
- 《新疆维吾尔自治区去极端化条例》(全文)及教案
- GB/T 32722-2016土壤质量土壤样品长期和短期保存指南
- GB 5606.5-2005卷烟第5部分:主流烟气
- 幼儿园食堂安全知识培训测试题附答案
- 《第一单元 行进之歌-欣赏-☆中国人民解放军进行曲课件》初中音乐人音版七年级下册221
- 幼儿园保育教育质量指南评估指标考核试题及答案
评论
0/150
提交评论