需求分析初稿

1 引言

      由于是初次接触软件工程设计这种知识领域,而且是和搭档一起完成这个项目,要学习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版本。

按照黑盒测试方法测试用例进行验收

 

posted @ 2019-03-25 17:48  zjcfrancis  阅读(397)  评论(0编辑  收藏  举报