1、基于人脸识别的考勤签到小程序的设计基于人脸识别的考勤签到小程序的设计与实现基于人脸识别的考勤签到小程序的设计与实现摘 要学生上课的考勤签到是一种大学课堂教学管理的重要手段和考核指标。对比与传统的考勤签到模式,人脸识别的考勤签到系统更加节省人力,更具高效性。人脸识别考勤签到系统具有传统签到无可匹敌的优势,是最高效的签到方式之一。近年来,许多基于深度学习的人脸识别算法取得了很好的进展,使得人脸识别签到更具可行性。基于此,本文设计实现了一个基于人脸识别的考勤签到系统。系统以微信小程序作为实现平台,使用 WXML + WXSS + JavaScript 技术进行开发。系统分为教师端和学生端,教师端可以
2、修改后台服务器的签到设置,用于开设学生签到操作;学生端可以使用微信小程序对接云服务器上的人脸识别接口,实现人脸识别,再连接数据库的用户数据,完成考勤签到功能。 系统设计完成后,对系统的各个功能进行测试,测试结果表明,系统完成了本毕设选题的预设功能。关键词:微信小程序,人脸识别,考勤签到,深度学习Design and implementation of attendance sign-in miniprogram based on facial recognitionAbstractClass attendance is an important means of university stud
3、ent management, a specific indicator of teachers classroom efficiency. Compared with the traditional check-in mode, face recognition attendance check-in system is more labor-saving and efficient. Face recognition attendance sign-in system has the unmatched advantages of traditional sign-in and is on
4、e of the most efficient sign-in methods. In recent years, many deep learning-based face recognition algorithms have made good progress, making face recognition check-in more feasible. Based on this, this paper designs and implements a face recognition-based attendance check-in system. The system is
5、developed using WXML + WXSS + JavaScript technology with WeChat applet as the implementation platform. The system is divided into teacher and student side, the teacher side can modify the check-in settings of the backend server for opening student check-in operation; the student side can use the WeC
6、hat applet to dock the face recognition interface on the cloud server to realize face recognition, and then connect the user data in the database to complete the attendance check-in function. After the system design was completed, the various functions of the system were tested and the results showe
7、d that the system completed the pre-determined functions of this selection.Keywords: Face recognition, attendance system, deep learning 1 引言1.1研究背景及意义各大高校的扩招计划和教育改革,让绝大多数的青年学子都有机会进入校园,实现人生梦想。然而大学生从充斥着压力,进军高考的高中生活,进入了一个时间、空间自由支配的大学时期后,学生们的学习态度开始发生了变化,部分学生认为只需要考好最后的考试,或者完成老师布置下的学习任务,就能完成课程拿到学分。这种懒散的学习
8、态度,给大学生带来了迷茫和困惑,与此同时逃课现象开始蔓延。学生的任务本来应该是学习,而学习最好的方式就是认真参加每一堂课。逃课现象已逐渐使得不少学校对老师发出指令,并将课堂的出勤率作为判断教师教学质量的标准之一,教师为了提高所教班级的出勤率,往往会实施课课点名的方案,以此来督促学生不迟到、不早退。这样一来难免会加重了老师的负担,老师即需要向学生传授知识,又需要对学生完成考勤记录。因而可知,一套高效的考勤签到系统的开发极为重要。考勤签到系统的使用能够使教师能够更加专心与教学内容上,能够在一定程度上提高教学质量,并且能够提高考勤的效率和以及考勤的正确率,同时又能够防止其他的同学代替该签到的学生进行
9、签到的行为,人脸识别技术实现的考勤签到系统,理论上能够百分百的解决上述的全部问题。智能手机的广泛普及,使得绝大多数的大学生都能够拥有一台属于自己的手机。目前的智能手机较为流行的主要是 iOS、Android、以及 Window Phone,由于操作系统的不同,导致许多应用都需要开发不同的版本,来达到服务大众的目的。显然,想要使所有的学生使用同一个操作系统的手机是无法实现的,多平台的开发也会增加更多的工作内容。微信小程序能够完美解决需要多平台开发的问题,无论哪一种操作平台(iOS、Android以及Window Phone),都能够支持微信的运行,通过微信小程序的开发也能够实现多平台开发的目的。
10、所以本次设计最终确定通过微信小程序平台进行系统的开发。2 国内外研究现状2.1人脸识别研究现状LFW(Labeled faces in the wild)是一个在人脸识别研究领域比较有名的人脸图像数据集合,其图像主要从 Yahoo! News 上进行采集,多达13233张人脸图片,在该数据集里包含了5749个人,并且其中有1680人是拥有两幅及以上的图像,4069人只有一幅图像1。几乎所有的图像都是同一态名为” Viola-Jones ”的人脸检测器得到的,在检测到人脸图像之后,图片将被裁剪为固定大小,仅有少量的人脸图像是从 false positive 中得到。在该数据集中的所有图像均产生于
11、现实场景(有别于实验室场景),具备自然的光线,表情,姿势和遮挡,且涉及人物多为公物人物,这将带来化妆,聚光灯等更加复杂的干扰因素,因此,在该数据集上验证的人脸识别算法,理论上更贴近现实应用,这也给研究人员带来巨大的挑战2。2018年,中国不少企业在国际人脸识别评估集LFW榜上有名, face+ 99.5% , 商汤 99.53% , 腾讯 99.65% , XX 99.77%,中科奥森 99.77% , 中科云从 99.5%, 北京飞搜科技 99.67% , 颜鉴99.4%,宇泛智能 99%, 中国平安 99.8% 大华 99.78%, 海鑫 99.68% 等,这些都是基于国内的,也可以看看国
12、外提供的api,谷歌针对这个人脸识别数据集的分数是 99.63%,研究人员在使用LFW数据集以外的数据,对模型进行联系,再使用模型进行刷分,人脸识别率都可以高达99以上的识别率3。对于日程生活学习的环境中,网络上公开的人脸识别api是具有足够的准确度。2.2考勤签到研究现状荆洲等设计出基于人脸检测的智能课堂点名系统,是集合了人脸识别技术、图像处理技术、汇编语言、网站制作技术的综合应用,使网页、数据库、人脸检测程序互联,构成一个完整的系统。该系统的研究与开发可以更加充分地利用课堂时间,以方便教师的教学,提高效率。系统操作界面简单,检索信息快捷,搜索方便。在多样的活动出现,生活日渐丰富的今天,人们
13、参加各种活动的同时难以避免地参与活动考勤和签到。传统的签到方式有点名和自助签名等,其缺点为耗时,易代签,难以统计。随着互联网的普及,和人工智能服务设备的涌现,签到系统也可以跟上时代发展的进程。随着信息时代的到来,移动手机成为人们生活的必需品,用户的日常需求丰富了移动应用,触及生活的方方面面。智能手机早已普及,而且微信也已经成为装机日用的必要软件,深植于人们的生活习惯之中。在移动手机上的应用中,微信受众广泛,频频被人使用。考虑到大学生移动设备的高普及度和微信小程序的蓬勃发展,针对课堂中的常有的点名环节,开发一个微信小程序不失为一个良好的办法。2016年起微信发布了“微信公众平台小程序”,这是一种
14、不需要进行下载安装就能使用的“触手可及”的应用; 微信小程序作为内置在微信里的应用程序,具有与本地应用不同的形式,实现多种多样的功能,在使用流畅的前提下,不会占用太多的手机内存4。近年来大受欢迎的微信小程序,在微信平台的支持下,其免下载,功能多样,体积小的特点都使其越来越火爆。所以,凭借微信小程序开发的考勤签到系统可以达到活动发起者与活动的参与者的需要。而课堂考勤作为最为常见的考勤活动之一,为了提高考勤效率,达到良好的实施效果,关于促进课堂教学的考勤制度的设计备受关注,同时利用各种新技术如蓝牙、人脸检测等的考勤系统的研究日益增多。在分析国内点名系统研究状况和微信小程序发展前景的基础上,本文通过
15、“微信小程序开发者工具”+“微信小程序云开发”设计一个考勤签到小程序,用来进行课堂点名,能够实现准确、方便、高效的学生考勤管理。2.3本章小结信息时代的到来,伴随着信息技术的迅速发展,教育领域已经进入”互联网+”的阶段。传统的教学模式集成互联网技术是高等教育改革创新的一条途径,更加先进、多样化、与时俱进的的教育教学模式正在形成。新时代背景下教学理念以及方法与互联网技术等的相互融合,可使教学质量和效率得到提升,激发学生学习的动力,促进教育的良好发展。本文旨在通过使用微信小程序实现课堂上的点名过程,方便教师进行学生考勤结果的记录和管理,减少教师浪费的时间,提高考勤效率,达到增加课堂效率的目的。3
16、需求分析3.1考勤系统介绍3.1.1系统概述本课题设计实现一个微信上的考勤系统小程序,通过此程序可以实现课堂考勤和记录信息的查看。初次登录时,学生需要绑定自己的学号、姓名班级,教师账号需要进行注册,之后微信账号自动登录。在课程考勤表管理部分中,教师可添加相应课程的考勤表并进行编辑;点名时,教师选择课程考勤表与签到时间,生成签到链接。学生通过链接进入签到界面,在满足定位条件的情况下通过人脸识别进行签到;最后实现对考勤记录的查看。学生可以浏览参与课程的出勤记录,教师可浏览自己所发布的考勤记录。3.1.2系统的业务流程点名系统小程序主要包括:用户信息绑定,课堂考勤管理,签到点名和考勤记录浏览。如图3
17、.1为 系统流程图。图3.1 系统流程图初次登录时,学生需要绑定自己的学号姓名、班级,教师账号需要进行注册,之后微信账号自动登录; 学生通过点击教师推送的链接进行签到界面,在满足定位信息和人脸识别的情况下成功签到,在小程序首页浏览自己所在课程的签到状况,可以在个人中心修改自己的相关信息并上传照片。教师能够修改自己的签到设置,用于保证签到的准确性。发布签到时,通过选择相应课程,定位教师位置,设置签到的截止时间后推送链接给学生。在签到结束后,能够对每个学生的签到状况进行修改。教师在签到记录页面中选择目标课程后,显示相应课程缺勤的学生与缺勤次数,同时可浏览该课程最近三次的出勤情况。学生与教师均可在个
18、人中心进行身份切换。 3.2系统参与者该系统主要是用于各类高校间,教师记录学生的出勤状况。所以系统的主要参与者分别为老师和学生。3.2.1教职工用户教师是考勤过程的主要管理者。在签到时,能够发布签到连接;在签到结束后,教师还能够查看各位学生到课情况。3.2.2学生用户学生作为签到过程中的主要签到人员,首先需要注册个人信息,把个人信息储存在系统中,方可进行签到,可以在考勤管理系统上查看自己的出勤记录。学生用户的主要功能包括签到、查看课程信息、查看考勤。3.3系统功能3.3.1学生用户功能学生用户主要有以下操作:登陆、注册、修改个人信息、签到、查看签到记录。如图3.2为 学生用户功能图。图3.2
19、学生用户功能图3.3.2注册功能学生进行注册操作,需要依次填写姓名、班级学号等信息,在完成基础信息填写之后,还需提交脸部图像信息,以完成注册。注册完成后的个人信息,会根据微信号进行一对一保存。当再次进入该微信小程序后,只需要进行登陆操作,无需再次注册。如图3.2为 学生注册流程图。图3.2 学生注册流程3.3.3登录功能学生进入小程序后,需要进行登陆操作,根据微信号获取,在小程序数据库内的个人信息。如图3.3为 登陆功能图。图3.3 登陆功能图3.3.4修改个人信息功能从首页进入修改页面后,可以对个人信息进行修改,当修改完成后,系统会确认个人信息是否填写正确,放可以点击完成按钮,完成修改操作。
20、如图3.4为 学生修改个人信息功能图。图3.4 学生修改个人信息功能图3.3.5签到功能学生签到时,系统会判断是否登陆、注册,当已经完成登陆、注册时,则开始脸部识别,在线获取脸部图像,与数据库内的脸部特征进行对比,若匹对失败,则再次进行图像获取。匹对成功后,完成签到操作。如图3.5为 学生签到功能图。图3.5学生签到功能图3.3.6查看签到记录功能点击查看按钮,系统将以列表的形式显示本人的签到记录,完成签到记录的查看。3.4.1教职工功能教职工用户功能主要有注册、登录、修改个人信息、开设签到、查看签到的操作。如图3.6为 教职工功能图。图3.6 教职工功能图3.4.2注册功能教职工进行注册操作
21、,需要依次填写姓名、工号等信息,完成注册。如图3.7为 教职工注册功能图。图3.7 教职工注册功能图3.4.3登录功能教职工登陆功能图与学生登陆功能图相同,详细请看图3.3 登陆功能图。3.4.4修改个人信息功能在首页,进入修改页面后,对个人信息完成修改,系统会确认个人信息是否填写正确,点击完成按钮,完成修改操作。如图3.8 教职工修改个人信息功能图。图3.8 教职工修改个人信息功能图3.4.5开设签到功能教职工点击开设签到按钮,开始设置签到信息,选择签到所需签到的班级,设置签到的时间限制,点击开始签到,完成签到的开设。如图3.9为 教职工开设签到功能图。如图3.9 教职工开设签到功能图3.4
22、.6查看签到功能点击查看按钮,系统将以列表的形式显示所有学生的签到记录,完成签到记录的查看。3.5 数据需求用户在初次进入点名小程序时,系统获取用户的微信账号信息后,进行学号和姓名的绑定或者切换为教师身份进行账号的绑定。用户信息中包括用户的身份类型、绑定账号以及账号信息,课程信息中包括课程与对应的教师数据,签到信息包含发布的签到条目数据以及签到结束后添加的记录状况和时间等数据。3.6 功能需求学生和教师两个角色拥有不同的操作,而用户则可以在两个角色间进行切换。学生在进行签到时,由教师发布的链接进入学生签到界面,并且在后台通过地图接口,获取学生现实的地理位置,使之与发布签到时的地理位置进行匹对,
23、最后一步在脸部识别正确,确保是学生本人的情况下,完成签到。系统不允许学生更改绑定在微信上的学号,以防止学生通过更改学号实现代签。教师需要开设不同的班级,在对应的班级中发布签到连接,在发布前需要设置签到要求(位置、时间)。由于签到过程中存在种种意外状况,所以签到后的记录不直接添加在数据库中,需要由教师进行确认。在发布签到后,教师首页会显示进行中签到与待确认的签到以供选择。4 系统的开发技术介绍4.1微信小程序介绍随着信息时代的到来,移动手机成为人们生活的必需品,用户的日常需求丰富了移动应用,触及生活的方方面面。智能手机早已普及,而且微信也已经成为装机日用的必要软件,深植于人们的生活习惯之中。在移
24、动手机上的应用中,微信受众广泛,频频被人使用。考虑到大学生移动设备的高普及度和微信小程序的蓬勃发展,针对课堂中的常有的点名环节,开发一个微信小程序不失为一个良好的办法。相比于传统的移动终端应用,开发者进行微信小程序开发时,会发现手机客户端应用软件开发与微信小程序开发是相类似的。甚至会觉得其开发系统的架构更为简单、快捷,归根结底还是由于使用了更加简单明了的页面代码,让开发者感觉小程序开发周期对比与正常的手机应用更短;与此同时,微信提供了必要的开发者工具以及完整的开发文档,开发人员可以迅速上手微信小程序开发。微信小程序为开发者提供了网络、媒体、位置、界面、动画等诸多API,开放了大部分功能,开发门
25、槛相对较低,使得开发人员有广阔的空间来实现各种各样的的功能。小程序被一个描述整个程序的app对象和多个描述程序下不同页面的page所构成,小程序主体部分是app,整个小程序被小程序逻辑,小程序的公共设置,以及小程序公共样式表,公共设置和公共样式标所共同构成的。小程序每个页面page由四个文件组成,分别为页面逻辑.js、页面结构.wxml、页面样式表.wxss和页面配置.json。开发框架的逻辑层为.js文件的集合,逻辑层主要通过JavaScript 编写,逻辑层设置并处理页面所显示的数据后,传递给视图层,同时接收视图层的事件,触发反馈并进行相应处理。WXML与WXSS构成视图层,通过页面的.j
26、s与.wxml间的数据绑定来实现逻辑层与视图层的数据交互。本文中的点名模块客户端使用小程序的框架进行开发。官方小程序框架为开发者提供了一系列基础组件,分别是以下八大类:视图容器、基础内容、表单、导航、多媒体、地图、画布以及客服会话,同时为有需要的开发者提供如媒体、文件、数据缓存、位置、设备、第三方平台、开放接口等多种多样的API,诸多功能的便利的实现方式,从而使开发者能够进行快速高效的开发。4.2前端4.2.1 WXMLWXML(WeiXin Markup Language)是微信小程序开发框架设计中的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构,WXML类似HTML,其文件的后
27、缀名为“.wxml”。对比HTML,WXML有以下扩展的特性,数据绑定,在.wxml文件中如果需要输出某对象的信息,利用双大括号 text 这样的格式来进行信息的绑定,我们只需要在js文件的data属性中加上 text代表的数据。如图4.1为 数据绑定图。图4.1数据绑定图列表渲染 如图4.2为 列表渲染。图4.2. 列表渲染4.2.2 WXSSWXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式。与 CSS 相比WXSS扩展的特性有:尺寸单位以及样式导入。尺寸单位:rpx(responsive pixel): 固定的屏幕宽度,提高了小程序的兼容性
28、,所有的手机屏幕一律规定宽度为750rpx,屏幕宽度会有小程序内部进行自适应而调节。如表4.3为 不同手机的手机尺寸单位换算表。表4.3 不同手机的手机尺寸单位换算表设备rpx换算px (屏幕宽度/750)px换算rpx (750/屏幕宽度)iPhone51rpx = 0.42px1px = 2.34rpxiPhone61rpx = 0.5px1px = 2rpxiPhone6 Plus1rpx = 0.552px1px = 1.81rpx样式导入:当需要导入样式表,只需使用导入语句import,便可以在.wxss文件中使用导入的样式。如图4.4为 样式导入。图4.4 样式导入全局样式与局部样
29、式全局样式需要把定义写在 app.wxss 中,全局样式可以作用于整个app的任何一个页面。局部样式是定义在单独的page.wxss文件中,局部样式的作用域只存在于当前的页面,如果全局样式和局部样式发生冲突,局部样式并会覆盖全局样式。4.2.3 WXSWXS(WeiXin Script)是微信小程序的一套为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言,页面结构主要由标签语言与脚本语言构成。类似于封装后的JS,WXS结合于WXML页面。标签为”。例如, 图4.5和 图4.6 分别为代码图和结果图。图4.5 代码图图4.6 结果图4.2.4 JSONJSON, 是一种轻量级的数据交
30、换格式。由于JSON是以 key-value 的形式来表达数据,所以也表现出了JSON格式最大的优点,便于人的阅读和编写;不需要通过特殊的开发工具,便可以轻易的看懂文件数据。由此微信小程序中的JSON,主要用于对项目的全局配置或者是单页面的配置,后缀名为:“.json”。app.json文件保存了整个微信小程序的全局配置,可以通过修改全局配置中page数据来改变页面文件的路径、通过改变window数组来改变窗口表现方式、设置网络超时时间则是由networkTimeout数组来决定的、如果想开发多个不同Tab页面的小程序,则可以通过设置tabBar数组来完成。4.3后端4.3.1微信小程序云函数
31、基于wx.cloud免鉴权机制,可以直接通过调用callFunction,来使用小程序开放接口的能力,包括调用login登陆函数、以及openapi所包含的开放数据等。4.4服务器与数据库4.4.1微信小程序云函数微信给开发者提供一个云服务器,开发者能够轻易的往云服务上推送自己编写的云函数,无需将函数代码写在程序中,达到减少使用繁杂的后台操作和企业用户高额的维护成本的概念。开发者无需自行搭建服务器。在云端运行的代码,微信私有安全通信协议,开发者只需实现业务逻辑。将代码上传至云函数服务器中,完成部署后,便开始独立运行,极大地加快了开发者独立开发的速度。4.4.2微信小程序数据库微信小程序数据库为
32、云数据库,云数据库有轻松部署,高可靠性以及低成本的优势。对于开发者而言,开发者无需进行数据库的搭建,可以直接通过Http请求的方式直接连接数据库。微信小程序的数据类型是JSON。5 系统的设计与实现5.1前端前端是使用wxui官方样式框架,配合wxml+wxss+wxs实现。5.1.1 wxui框架导入在工程目录下,导入wxui.wxss文件,点解npm构建,完成架构的导入。选择需要使用的样式,在需要使用该样式的page页面中,加入配置。如图5.1为 weui-miniprogram配置图。图5.1 weui-miniprogram配置图5.2后端5.2.1登陆通过调用登陆接口 wx.login ,在返回