1 引言python
因为是初次接触软件工程设计这种知识领域,并且是和搭档一块儿完成这个项目,要学习python计算机学习等多种东西,因此难度仍是有的。但愿在作项目的过程当中能锻炼本身,在过程当中学习新知识,提升本身的实践动手能力。算法
1.1 目的数据库
在肯定选题,全面查阅相关资料,了解相关的知识背景后,撰写了此项目需求规格说明书。该文档是关于人脸识别签到系统的功能和性能的描述,重点描述了系统的功能需求,并将其做为系统设计阶段的主要输入。编程
本文档的主要预期读者包括:项目的需求分析人员、项目的设计人员、项目的开发人员、项目管理人员、项目测试人员以及用户。后端
1.2项目背景安全
项目名称:基于深度学习的人脸识别系统网络
开发者:计科1703 吴坤 性能
计科1703 张珏铖学习
计科 1703 宋剑桥测试
计科 1703 谭玮
1.3缩写说明
无
1.4术语定义
无
1.5参考资料
[1]Tensorflow技术解析与实战[M].北京:人民邮电大学出版社,2017
[2]Python核心编程(第三版)[M].北京:人民邮电大学出版社,2016
[3]数字图像处理(第三版)[M].武汉:武汉大学出版社,2003
[4]需求规格分析说明书标准[S].GB 856D-1988
1.6版本信息
修改编号 |
修改日期 |
修改后版本 |
修改位置 |
修改内容归纳 |
1 |
2019.3.24 |
1.0 |
所有 |
完成第一次编写 |
2 |
2019.3.28 |
1.1 |
引言 参考资料 |
内容补充 排版完善 |
|
|
|
|
|
表一 具体版本信息
2任务归纳
2.1系统定义
2.1.1 项目来源及背景
在当下,人脸识别已经成为了火热的课题,有关人脸识别的各类研究成果层出不穷。围绕着人脸识别这个课题,各国研究人员提出了各类各样的算法,主要包括如下四个方面的研究:
1.提出不一样的人脸空间模型,包括以线性判别分析为表明的线性建模方法,以Kernel方法为表明的非线性建模方法和基于3D信息的3D人脸识别方法。
2.深刻分析和研究影响人脸识别的因素,包括光照不变人脸识别、姿态不变人脸识别和表情不变人脸识别等。
3.利用新的特征表示,包括局部描述子(Gabor Face, LBP Face等)和深度学习方法。
4.利用新的数据源,例如基于视频的人脸识别和基于素描、近红外图像的人脸识别。而咱们打算采起深度学习的方法来设计这个项目。
2.1.2 项目的目标
本项目要完成的任务是人脸识别。系统在事先录入用户的照片数据后,用户在摄像头前拍摄本身的照片,而后提交给系统进行检验。检验后系统会反馈出识别结果。若是检验后发现是系统中已有的信息,系统将会提示识别到底人脸对应哪一个人。若是不是系统中已经保存的信息,系统会提示没法识别并要求用户重试。
2.1.3 系统总体结构
物理组成结构:
2.1.4 系统各部分组成、与其余部分的关系、各部分的接口等
本系统仅需用带有NVIDIA主板的计算机、采用GPU加速以及用自带摄像头采集图像便可独立完成,不需其余接口。
2.2运行环境
2.2.1 设备环境
我的笔记本
2.2.2硬件环境
能运行主流编程软件,有摄像头,最好拥有GPU的笔记本。
2.2.3软件环境
该系统基于Windows系统,采用Python 3.7.2,使用OpenCV,Keras(使用Tensorflow做为后端)等库
2.2.4网络环境
本系统无需链接网络,彻底使用本地资源,后期考虑采用GPU云计算的方式进行神经网络的训练。
2.2.5操做环境
我的笔记本
2.2.6应用环境
系统工做流程以下图所示:
2.3条件细则
2.3.1软件开发工做的假定和约束,如经费限制、开发期限等
该系统基于Windows系统,采用Python 3.7.2,使用OpenCV,Keras(使用Tensorflow做为后端)等库
本项目由二人小组开发,要求于数字图像处理课程结束前开发完毕。
2.3.2最终用户,用户的教育水平和技术专长
最终用户要求会使用笔记本电脑的摄像头。
2.3.3软件的预期使用频度等
本软件在课前或课间进行人脸识别签到,使用频率中等。
3数据描述
3.1静态数据
本系统须要采集图片,须要训练神经网络,须要有输出信息。所以,本系统须要存储图片和神经网络的信息,以及需签到成员的基本信息。
3.2动态数据
采集的用户图片信息
3.3 数据库描述
MySQL 8.0
3.4 数据字典
3.5 数据采集
系统运行时须要预先读取数据,或实时经过外设读取数据
系统运行前须要读取需签到成员的大量图片与对应的姓名和学号,系统启动后需经过摄像头读取签到成员的照片。
4功能需求
4.1功能划分
4.1.1系统功能组成
摄像头采集和处理图片
本地图片处理
卷积神经网络的搭建与训练
使用训练好的模型进行测试
使用测试完毕的模型进行识别
4.1.2功能编号和优先级
编号 |
名称 |
优先级 |
描述 |
主要发起者 |
1 |
摄像头采集和处理图片
|
重要 |
为神经网络提供样本集 |
管理员 |
2 |
本地图片处理 |
次要 |
对采集到图片进行预处理以适应系统需求 |
管理员 |
3 |
卷积神经网络的搭建与训练
|
重要 |
核心,只有训练好神经网络的模型才能进行识别 |
管理员 |
4 |
使用训练好的模型进行测试
|
次要 |
测试模型的精确度 |
管理员 |
5 |
使用测试完毕的模型进行识别 |
重要 |
采集用户图像进行识别 |
用户 |
4.1.3 功能定义
摄像头采集和处理图片:使用OpenCV,自动打开摄像头采集照片。在采集到过程当中自动检测和定位人脸,改变不一样的角度,实现采集不一样效果的图片,将图片保存在本地备用。
本地图片处理:对本地的图片进行处理,例如进行灰度化,定位人脸,裁剪,把图片处理成适合系统使用的尺寸,以知足系统使用的需求。
卷积神经网络搭建和训练:经过上述两个子模块获得训练集与测试集(训练集与测试集比例为8:2),开始搭建神经网络并对模型进行训练,最终搭建成符合须要的卷积神经网络。
使用训练好的模型进行测试:完成训练后,用测试集对训练好的模型进行精度测试,测试已经训练好的模型的推广能力。
使用测试好的模型进行识别:完成训练后,使用搭建好的模型进行识别。在识别时,优先采集用户图像,而后提取用户图像的特征,最终经过卷积神经网络完成对用户图像的识别并反馈结果。
4.2 功能描述
4.2.1 功能说明
采集照片:指启用摄像头拍摄当前用户的照片
4.2.2 详情描述
5 性能需求
5.1数据精确度
系统所须要的图片具备严格的格式要求,在输入前必须知足格式要求。
5.2时间特性
通常操做的响应时间应在可接受的时间范围内。
5.3 适用性
知足通常学生使用的需求,识别的速度应尽量的快,准确率尽量高。对前面提到的运行环境要求不该存在困难。
6 运行需求
6.1 用户界面
6.1.1 界面风格
遵照Windows风格。
6.1.2 界面描述和样式
根据最终需求设计相关的界面。
6.2 硬件接口
本系统须要调用计算机摄像头,运行本系统的计算机应保证摄像头可用。
6.3 软件接口
运行在Windows 系统之上
6.4 故障处理
正常使用时不该出错,若运行遇到错误,退出程序后自动重启,并向开发者发送错误信息。
7其它要求
7.1检测或验收标准
人脸识别的准确率达到老师要求的标准。
7.2可用性,可维护性,可靠性,可转换性,可移植性要求
软件故障率低于10%。
软件要求模块设计,设备驱动可更换。
7.3安全保密性要求
无。
7.4开发要求
合适的OpenCV,Python,Keras,Tensorflow版本。
按照黑盒测试方法测试用例进行验收