[Toc]
软件开发流程说明文档
需求调研分析
1、人脸识别技术的现状
人脸识别技术正式起步于美国,我国接触该技术较晚,但是经过科研人员和学者们多年的研究和实验,目前我国的人脸识别技术已经达到国际先进的水平。
1、在我国,最早从人工向计算机智能识别发展的生物识别技术是指纹识别,但是在实际应用中逐渐产生了对人脸识别技术的需求。从2001年开始,公安部门就开始使用这一技术来防范打击重大刑事犯罪并取得国家的支持。随后,我国在2008年北京奥运会举行时应用了人脸识别技术,这标志着我国的人脸识别进入大规模的使用阶段。在前几年举办的世博会上,该技术得到更加广泛的应用,同时各大公司也逐渐加入,实现了人脸识别技术在中国的大规模应用。随着我国技术的不断进步,“三化两合”将是人脸识别发展的必然趋势。“三化”指:主流化、芯片化、标准化;“两合”指:与其他生物特征的多生物特征融合与REID的联合。
2、2017-2022年中国人脸识别行业细分市场研究及重点企业深度调查分析报告表明,国内外对于人脸识别的研究都非常的活跃。美国、德国、日本等经济发达国家和部分发展中国家都有研究机构和研究人员对此进行专门的研究。美国是人脸识别技术最先起步的国家,也是最先应用该技术的国家,其人脸识别技术的水平一直走在国际前列。早在1993年,美国国防部就启动了FERET项目,为其之后的生物智能识别技术奠定了基础,推动人脸识别技术从初始阶段提升到原型系统阶段。目前,美国电影中没有钥匙孔只有一个摄像头的大门,刷一下人脸就可以进入;机要部门的核心设备通过指纹进行设备的解锁;追踪情节中利用街边摄像头进行识别等等,这些场景在实际生活中已经得到实际的应用。例如,FBI在2014年就推出了他们的新一代的电子识别系统,总投入超过10亿美金。用于利用监控锁定犯罪嫌疑人,从而进行全网追捕。不仅如此,美国国防部和国土安全部门加大了对人工智能识别技术的投资,用来防止恐怖分子对公共安全造成的威胁。
3、根据人脸识别行业发展现状分析,我国人脸识别市场规模约占全球市场的10%左右,因此2016年,我国人脸识别市场规模约为17.25亿元,其中金融领域约3.28亿元,安防领域约5.69亿元,考勤门禁领域约6.99亿元,其他领域刚刚起步,约为1.29亿元。尽管,目前来看,我国人脸识别市场规模较小,然而市场空间巨大。从场景评估的角度来技术人脸识别的市场空间,依据各场景的市场空间和人脸识别技术占产业链价值的比例,未来十年,我国人脸识别行业市场规模有望达到千亿元。
2、人脸识别技术的应用前景
随着技术的进一步成熟和社会认同度的提高,人脸识别技术将应用在更多的领域。
1、企业、住宅、学校安全和管理。如人脸识别门禁考勤系统,人脸识别防盗门等。
2、电子护照及身份证。这或许是未来规模最大的应用,国际民航组织(ICAO)已确定,从2010年起,其118个成员国家和地区,必须使用机读护照,人脸识别技术是首推识别模式,该规定已经成为国际标准。中国的电子护照计划公安部一所正在加紧规划和实施。
3、公安、司法和刑侦。如利用人脸识别系统和网络,在全国范围内搜捕逃犯。
4、自助服务。如银行的自动提款机,如果用户卡片和密码被盗,就会被他人冒取现金。如果同时应用人脸识别就会避免这种情况的发生。
5、信息安全。如计算机登录、电子政务和电子商务。在电子商务中交易全部在网上完成,电子政务中的很多审批流程也都搬到了网上。而当前,交易或者审批的授权都是靠密码来实现,如果密码被盗,就无法保证安全。但是使用生物特征,就可以做到当事人在网上的数字身份和真实身份统一,从而大大增加电子商务和电子政务系统的可靠性。
6、越来越趋向于高科技的犯罪手段使得人们对各种场合的安全机制要求也近乎苛刻,各种应用需求不断涌现。人脸识别市场的快速发展一方面归功于生物识别需求的多元化,另一方面则是由于人脸识别技术的进步。从需求上来说,除了传统的考勤、门禁等应用外,视频监控环境下的身份识别正成为一种迫切的需求,即在一个较复杂的场景中,在较远的距离就识别出特定的人,这显然是其它生物识别方法所欠缺的,而人脸识别却是一个极佳的选择。
3、门禁人脸识别系统需求分析
1、需求分析
随着经济的发展,社会开放程度的提高,社会上的一些违法犯罪事件也日渐影响到学校校园。如何建立一个安全的校园环境,保障师生的学习、校园生活安全一直是教育部门和社会各界关注的焦点。特别是中小学校、幼儿园的校园安全建设尤其重要,中小学校师生均属于安全防卫能力较弱的群体,大部分中小学生尚未成年,防范意识和自我保护能力比较弱。中小学校园安全问题,维系着社会的稳定,牵动着家庭的幸福,已成为全社会密切关注的话题,直接影响到和谐社会的建设。
据社会调查显示,造成中小学校安全事故发生的原因,很大一部分是由外来的侵害造成的,包括冒领接走、被绑架和学生外出活动伤害等等。针对以上事故原因,可以通过加强学生接送管理、校门进出人员管理、宿舍人员出入管理等来改善和避免。
首先是解决小学或幼儿园学校在接送孩子环节存在的隐患,目前可能发生的情况是,外来人员乘家长接孩子时人多混进校园内,校方只认接送卡不认人,外来人员拿着捡到或偷来的接送卡将孩子冒领;有的是别有用心的亲戚或熟人骗领孩子,教师并不知道来领孩子的亲戚是否已得到家长的授权,因此种种造成了学生的伤害绑架等事故。为防止冒领的发生,就要保证学校能识别出接孩子的家长是"真实家长",或者来领孩子的是"真实家长"所授权的人员。
再一个是加强校门看守和学生宿舍出入人员的有效管理,目前大多采取的是来访、出入登记的方式,外来人员提供虚假证件或事由就可进入校园,学生出入校门或宿舍也多采取人工看管方式,有少数学校也采用了智能IC卡系统等管理手段,但智能卡"只认卡不认人"的缺陷并不能给学校带来真正有效的安全管理,冒用卡片进入校园或学生宿舍的事故时有发生。杜绝此类情况就要保证进入校园、宿舍的人员身份得到验证,校方可实时掌握到出入人员的身份信息。
人脸识别技术具有识别的唯一性,身份鉴定不可仿冒,能很好地解决以上学校在安全管理方面存在的问题,为学生营造健康、安全的校园环境,这一生物识别技术的应用正在成为校园安全建设的新动向。
2、设计目标
1、将人脸面相作为进出校门及校内各场所的身份鉴别条件,身份不符者门禁装置拒绝通行。
2、采用人脸面相作为家长接送学生的身份鉴别条件。对家长进行人脸识别成功后,系统自动调出相对应学生的资料,达到家长与学生对应匹配。教师核对无误将学生交送给家长。
3、扩展的系统能通过互联网或电信网络,将代接学生的人员面相发送给已登记家长进行确认,系统接收到家长远程密钥授权,自动调出学生资料进行匹配,并留存记录以备查询。
4、能提供人脸识别门禁出入人员信息的管理平台,按不同权限对数据库进行操作,并可提供查询门禁记录、数据备份和数据打印输出等功能。
5、能通过网络实现人脸识别数据的传输、远程访问和远程系统维护。
概要设计
1、系统拓扑结构
2、功能设计
列表及完成进度
3、人脸识别流程示意图
人脸识别校园管理系统,采用行业领先的人脸识别技术,精确分析人脸特征,作为身份识别的依据,为学校的门禁管理、宿舍通行管理、小学幼儿园学生接送管理提供安全、便捷的系统解决方案。
人脸注册:先在终端注册人脸模板。
人脸检测:当人站到终端前时,自动检测到人脸并进行一对多人脸识别。
按钮/刷卡:在触控键盘中输入ID号码或在读卡区刷卡,进行一对一人脸识别。
人脸识别:将当前人脸与数据库中已注册的人脸模板进行检索比对。
门禁控制:识别出当前人员身份,通过门禁控制器打开电控门锁,允许当前人员开门。
本地数据管理:人脸识别终端与管理电脑通过TCP/IP网络连接,使用浏览器打开门禁管理Web,设置终端参数,管理用户资料、门禁记录等数据。
详细设计
1、系统环境
门禁人脸识别后台
数据库:mysql
开发语言:php
开发框架:thinkphp5
功能:
a、分配学区、员工以及学生账号
b、收集学生、员工的基本信息
c、采集人脸所需数据
门禁人脸识别应用
开发语言:C++
开发框架:opencv3.0
功能:
a、预处理人脸图片
b、对人脸图片进行特征提取,生成人脸模型
c、对视频进行人脸识别
2、功能结构图
后台功能结构图
graph LR
A[系统管理]-->B[基本管理]
A[系统管理]-->C[学生管理]
A[系统管理]-->D[员工管理]
A[系统管理]-->E[门禁管理]
B[基本管理]-->F[学区管理]
B[基本管理]-->G[班级管理]
B[基本管理]-->H[部门管理]
C[学生管理]-->I[学生信息管理]
C[学生管理]-->J[学生联系人管理]
D[员工管理]-->K[员工信息管理]
D[员工管理]-->L[员工联系人管理]
E[门禁管理]-->M[学生出入记录管理]
E[门禁管理]-->N[学生门禁权限管理]
E[门禁管理]-->O[员工出入记录管理]
E[门禁管理]-->P[员工门禁权限管理]
后台业务流程图
graph LR
A(用户)-->B{登陆}
B-->|登陆成功|C[系统管理]
B-->|登陆失败|G[无法进入系统]
G-->A
C-->D[信息管理]
C-->E[门禁管理]
C-->F[基本设置]
后台功能模块介绍
名称 |
控制器 |
功能 |
学区管理 |
SchoolManagement |
添加、删除以及修改学区账号信息 |
班级管理 |
ClassManagement |
添加、删除以及修改班级信息 |
部门管理 |
DivisionManagement |
添加、删除以及修改部门信息 |
员工信息管理 |
EmployeeManagement |
添加、删除以及修改员工账号信息以及员工的联系人信息 |
员工联系人管理 |
EmployeeLinkman |
添加、删除以及修改员工的联系人信息 |
学生信息管理 |
StudentManagement |
添加、删除以及修改学生账号信息以及学生的联系人信息 |
学生联系人管理 |
StudentLinkman |
添加、删除以及修改学生的联系人信息 |
员工门禁出入记录管理 |
EmployeeAccessControl |
添加、删除以及修改员工门禁出入记录 |
学生门禁出入记录管理 |
StudentAccessControl |
添加、删除以及修改学生门禁出入记录 |
学生门禁权限管理 |
StudentAccessManagement |
对学生及其联系人的门禁权限设置 |
员工门禁权限管理 |
EmployeeAccessManagement |
对员工及其联系人的门禁权限设置 |
人脸识别功能结构图
graph TB
A[人脸识别系统]-->B[人脸图片采集]
A-->C[人脸图片预处理]
A-->D[训练生成模型]
A-->E[视频识别]
人脸识别业务流程图
graph TB
A(视频)-->B{是否存在人脸}
B-->|是|C[将人脸图片进行处理]
B-->|否|G[不需要处理]
G-->A
C-->D[提取人脸特征]
D-->H[人脸数据库]
H-->I{进行搜索匹配}
I-->|是|J[返回人脸的信息]
I-->|否|K[返回人脸不存在数据库]
C-->A
数据库设计
数据库表设计格式说明
1、班级管理表
表名 |
列名 |
类型 |
备注 |
tp_class_management |
id |
int(11) unsigned |
班级管理主键 |
tp_class_management |
schoolId |
varchar(255) |
学区ID |
tp_class_management |
schoolName |
varchar(255) |
学区名称 |
tp_class_management |
class |
varchar(255) |
学级 |
tp_class_management |
className |
varchar(255) |
班级单位 |
tp_class_management |
classTeacher |
varchar(255) |
班主任 |
tp_class_management |
remark |
varchar(255) |
备注 |
tp_class_management |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_class_management |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
tp_class_management |
create_time |
int(10) unsigned |
创建时间 |
tp_class_management |
update_time |
int(10) unsigned |
更新时间 |
2、部门管理表
表名 |
列名 |
类型 |
备注 |
tp_division_management |
id |
int(11) unsigned |
部门管理主键 |
tp_division_management |
schoolName |
varchar(255) |
学区名称 |
tp_division_management |
divisionName |
varchar(255) |
部门名称 |
tp_division_management |
remark |
varchar(255) |
备注 |
tp_division_management |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_division_management |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
3、学区管理表
表名 |
列名 |
类型 |
备注 |
tp_school_management |
id |
int(11) unsigned |
学区管理主键 |
tp_school_management |
schoolName |
varchar(255) |
校区名称 |
tp_school_management |
schoolID |
varchar(255) |
校区编号 |
tp_school_management |
schoolAccount |
varchar(255) |
学区账号 |
tp_school_management |
passWord |
varchar(255) |
密码 |
tp_school_management |
number |
varchar(255) |
联系电话 |
tp_school_management |
address |
varchar(255) |
校区地址 |
tp_school_management |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_school_management |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
4、员工信息管理表
表名 |
列名 |
类型 |
备注 |
tp_employee_management |
id |
int(11) unsigned |
员工管理主键 |
tp_employee_management |
schoolName |
varchar(255) |
学校名称 |
tp_employee_management |
divisionName |
varchar(255) |
部门名称 |
tp_employee_management |
className |
varchar(255) |
班级名称 |
tp_employee_management |
account |
varchar(255) |
员工账号 |
tp_employee_management |
passWord |
varchar(255) |
密码 |
tp_employee_management |
name |
varchar(255) |
姓名 |
tp_employee_management |
sex |
varchar(255) |
性别 |
tp_employee_management |
cardID |
varchar(255) |
身份证号码 |
tp_employee_management |
postName |
varchar(255) |
岗位 |
tp_employee_management |
iphone |
varchar(255) |
电话 |
tp_employee_management |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_employee_management |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
5、员工联系人表
表名 |
列名 |
类型 |
备注 |
tp_employee_linkman |
id |
int(11) unsigned |
员工联系人主键 |
tp_employee_linkman |
employee_id |
varchar(255) |
员工序号 |
tp_employee_linkman |
name |
varchar(255) |
姓名 |
tp_employee_linkman |
relation |
varchar(255) |
关系 |
tp_employee_linkman |
number |
varchar(255) |
联系电话 |
tp_employee_linkman |
remark |
varchar(255) |
备注 |
tp_employee_linkman |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_employee_linkman |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
6、学生信息管理表
表名 |
列名 |
类型 |
备注 |
tp_student_management |
id |
int(11) unsigned |
学生管理主键 |
tp_student_management |
schoolName |
varchar(255) |
学校名称 |
tp_student_management |
className |
varchar(255) |
班级名称 |
tp_student_management |
account |
varchar(255) |
学员账号 |
tp_student_management |
passWord |
varchar(255) |
密码 |
tp_student_management |
name |
varchar(255) |
姓名 |
tp_student_management |
sex |
varchar(255) |
性别 |
tp_student_management |
birthDate |
varchar(255) |
出生日期 |
tp_student_management |
contact |
varchar(255) |
联系方式 |
tp_student_management |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_student_management |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
7、学生联系人表
表名 |
列名 |
类型 |
备注 |
tp_student_linkman |
id |
int(11) unsigned |
学生联系人主键 |
tp_student_linkman |
student_id |
varchar(255) |
学生序号 |
tp_student_linkman |
name |
varchar(255) |
姓名 |
tp_student_linkman |
relation |
varchar(255) |
关系 |
tp_student_linkman |
number |
varchar(255) |
联系电话 |
tp_student_linkman |
remark |
varchar(255) |
备注 |
tp_student_linkman |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_student_linkman |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
8、员工门禁出入记录表
表名 |
列名 |
类型 |
备注 |
tp_employee_access_control |
id |
int(11) unsigned |
员工门禁管理主键 |
tp_employee_access_control |
name |
varchar(255) |
姓名 |
tp_employee_access_control |
account |
varchar(255) |
员工账号 |
tp_employee_access_control |
divisionName |
varchar(255) |
部门名称 |
tp_employee_access_control |
type |
varchar(255) |
门禁方式 |
tp_employee_access_control |
outTime |
varchar(255) |
出门时间 |
tp_employee_access_control |
inTime |
varchar(255) |
进门时间 |
tp_employee_access_control |
remark |
varchar(255) |
备注 |
tp_employee_access_control |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_employee_access_control |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
9、员工门禁权限管理表
表名 |
列名 |
类型 |
备注 |
tp_employee_access_management |
id |
int(11) unsigned |
员工门禁权限管理主键 |
tp_employee_access_management |
employee_id |
varchar(255) |
员工序号 |
tp_employee_access_management |
face_file_ids |
varchar(255) |
人脸图片文件序号组 |
tp_employee_access_management |
car_file_ids |
varchar(255) |
车辆图片文件序号组 |
tp_employee_access_management |
acess |
varchar(255) |
自身权限 |
tp_employee_access_management |
lAcess |
varchar(255) |
联系人权限 |
tp_employee_access_management |
remark |
varchar(255) |
备注 |
tp_employee_access_management |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_employee_access_management |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
10、学生门禁出入记录表
表名 |
列名 |
类型 |
备注 |
tp_student_access_control |
id |
int(11) unsigned |
学员门禁管理主键 |
tp_student_access_control |
name |
varchar(255) |
姓名 |
tp_student_access_control |
account |
varchar(255) |
学员账号 |
tp_student_access_control |
divisionName |
varchar(255) |
班级名称 |
tp_student_access_control |
type |
varchar(255) |
门禁方式 |
tp_student_access_control |
outTime |
varchar(255) |
出门时间 |
tp_student_access_control |
inTime |
varchar(255) |
进门时间 |
tp_student_access_control |
remark |
varchar(255) |
备注 |
tp_student_access_control |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_student_access_control |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
11、学生门禁权限管理表
表名 |
列名 |
类型 |
备注 |
tp_student_access_management |
id |
int(11) unsigned |
学生门禁权限管理主键 |
tp_student_access_management |
student_id |
varchar(255) |
学生序号 |
tp_student_access_management |
face_file_ids |
varchar(255) |
人脸图片文件序号组 |
tp_student_access_management |
car_file_ids |
varchar(255) |
车辆图片文件序号组 |
tp_student_access_management |
acess |
varchar(255) |
自身权限 |
tp_student_access_management |
lAcess |
varchar(255) |
联系人权限 |
tp_student_access_management |
remark |
varchar(255) |
备注 |
tp_student_access_management |
status |
tinyint(1) unsigned |
状态,1-正常 |
tp_student_access_management |
isdelete |
tinyint(1) unsigned |
删除状态,1-删除 |
开发计划
gantt
dateFormat YYYY-MM-DD
title 门禁人脸识别系统开发计划
section 后台开发
后台基本框架 :done, des1, 2017-09-25,2017-10-17
修改联系人列表 :active, des2, 2017-10-18, 1d
添加门禁图片采集标志 : des3, after des2, 1d
增加联系人的图片采集 : des4, after des3, 3d
section 门禁人脸识别应用
C++开发环境搭建 :active,a1,after des4, 3d
人脸图片采集功能 :a2,after a1 , 5d
图片人脸检测并标记 :a3, after a2 , 7d
图片人脸五官定位 :a4, after a3 , 10d
人脸图片训练及生成模型 :a5, after a4 , 8d
静态人脸图片识别 :a6, after a5 , 10d
视频人脸识别 :a7, after a6 , 15d
section 测试与调试
静态人脸图片识别的测试与调试 :after a7, 10d
视频人脸识别的测试与调试 : 10d
对环境各种因素进行测试 : 15d
费用预算
项目 |
费用 |
门禁后台系统 |
5000元 |
人脸识别系统 |
50000元 |