需求分析初稿
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版本。
按照黑盒测试方法测试用例进行验收
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具