一种基于智能手机的课堂考勤系统

2019-03-16 06:12汤文俊彭立席博文
计算机时代 2019年2期
关键词:人脸识别智能手机

汤文俊 彭立 席博文

摘  要: 智能手机已用于课堂考勤,但现有的系统没有兼顾考勤效率和身份识别。为了弥补现有系统的不足,通过综合运用人脸识别及手机定位技术,设计了一个基于智能手机的课堂考勤系统,该系统采用C/S架构,客户端运行于Android手机,服务端运行于后台服务器,学生通过客户端以签到和签退的方式来完成考勤,教师通过客户端可直接查询考勤结果。

关键词: 课堂考勤; 智能手机; 人脸识别; 手机定位

中图分类号:TP311.1          文献标志码:A     文章编号:1006-8228(2019)02-18-04

A mobile phone based classroom attendance checking system

Tang Wenjun, Peng Li, Xi Bowen

(Department of Information Science and Engineering, Hunan First Normal University, Changsha, Hunan 410205, China)

Abstract: The mobile phone has been applied to check attendance, but existing systems do not give attention to both efficiency and identity recognition. To compensate for the shortcomings of these systems, a mobile phone based system for checking classroom attendance is designed. The system adopts the C/S architecture, in which the client side runs on Android mobile phones, and the server side runs on a back-end server. Using the client side, students can record their attendance in a way of checking in and checking out, and teachers can query students' attendance directly.

Key words: classroom attendance checking; mobile phone; face recognition; mobile phone location

0 引言

在高校这种较为宽松的学习环境中,因学生缺乏自觉性和自律性,逃课现象较为严重。为了严肃教学纪律,确保教学质量,有必要采取相应措施来打击这种现象。课堂考勤是目前各高校普遍采用的一种手段。任课教师一般是通过点名来进行考勤,在学生人数较多的情况下,无疑会耗费较多的时间,并影响教学进度。为了在有限的课时内完成既定的教学任务,有些教师干脆不考勤或尽量少考勤,这给那些不自觉的学生可乘之机。另外,人工考勤一般只会记录在纸上,也不便于做考勤结果的统计。

随着智能手机的普及和其功能的不断强大,已出现一些基于智能手机的课堂考勤系统[1-2]。这些系统分为两类,一类基于人脸识别技术并只运行在教师的手机上,另一类基于手机定位技术并只运行在学生的手机上。前者通过比对现场扫描到的学生脸部信息和事先采集到的学生脸部信息来确认哪些学生到课,从而解决了身份识别问题,但考勤时需要教师对所有学生进行脸部扫描,耗费的时间并不比传统的点名方式少。后者通过比较学生手机的位置和教室的位置来确认学生是否到课,因为不需要教师参与考勤,所以提高了考勤效率,但无法识別学生身份。为了弥补以上两类系统的不足,本文设计了一个基于智能手机的课堂考勤系统,该系统通过综合运用人脸识别和手机定位技术,解决了到课确认和身份识别问题,且具有较好的考勤效率。

1 系统功能

该系统由客户端和服务端构成,用户分为学生和教师。客户端运行于Android手机,为学生和教师提供了访问入口;服务端运行于后台服务器,负责具体的业务逻辑处理。学生通过客户端以签到和签退的方式来完成考勤,教师不需要参与考勤便可通过客户端查询到考勤结果。

1.1 账号激活

系统事先为学生和教师设置了个人账号,他们必须激活账号才能使用系统。学生激活账号时,需选择用户类别为学生,输入学号和密码,并通过前置摄像头拍摄人脸照片(拍摄3张),系统根据以上信息激活相应的账号并进行人脸识别器的训练。只有当学号和密码正确,且3次拍照都拍到了人脸时,激活账号才会成功。教师激活账号时,选择用户类别为教师并输入工号和密码,系统根据以上信息激活相应的账号。只有当工号和密码正确时,激活账号才会成功。

1.2 登录

已激活账号的学生和教师在每次使用系统时需先登录。用户登录时,需选择用户类别并输入账号和密码,系统根据以上信息完成登录处理。只有当账号和密码正确时,登录才会成功。

1.3 签到和签退

学生登录系统后,可通过签到和签退来完成考勤。学生签到时,需选择签到的课程(含节次)并通过前置摄像头拍摄人脸(拍摄1张),系统根据签到的课程、签到的时间、手机所在的位置、人脸照片等信息来完成签到处理。对于任意一门课程,只有在规定的时间和上课地点由学生本人签到,签到才能成功。签退流程与签到类似。其他要求如下:①每次课都要进行签到和签退,任何一个操作未完成都将视为缺勤;②正常签到时间为上课前10分钟内,不能提前签到,上课后10分钟内签到则视为迟到,10分钟后将无法签到并视为缺勤;③正常签退时间为下课后10分钟内,不能延后签退,提前签退则视为早退。

1.4 考勤查询

教师登录系统后,可查询本学期任教课程的考勤情况,考勤查询只能在登录的当天进行。查询时,需选择任教课程(含班级),并选择是查询当天的考勤情况还是查询本学期的考勤情况,系统根据以上信息返回查询结果。若查询的是当天的考勤情况,查询结果为该课程当天每次课的考勤情况,包含课程、班级、节次、缺勤人姓名、迟到者姓名、早退者姓名等信息;若查询的是本学期的考勤情况,查询结果为本学期该课程到目前为止总的考勤情况,包含课程、班级以及每位学生的出勤次数、出勤率等信息。

2 系统设计

2.1 基本设计思想

⑴ 整体设计思路

系统采用C/S架构,其中客户端运行于Android手机,为学生和教师提供访问入口,服务端运行于后台服务器,负责具体的业务逻辑处理。针对系统的功能需求,在客户端中设计相应的模块;针对客户端中的每一个模块,在服务端中设计相应的服务模块。客户端的实现采用Android开发技术;服务端的实现采用Java Web开发技术[3]:运行服务端程序的Web服务器为Tomcat,系统数据存放于MySQL数据库,服务模块被封装成Servlet。客户端通过HTTP协议与服务端通信,客户端模块将用户提交的信息以HTTP请求发往后台服务器,当Tomcat接收到HTTP请求后,将请求转发给相应的服务端模块进行处理,期间服务端模块会根据需要访问MySQL数据库,请求处理完毕后,Tomcat将处理结果以HTTP响应返回至客户端。系统架构如图1所示。

⑵ 到课确认的方法

学生签到时,客户端利用百度地图API[4]获取学生手机所在的位置并将该信息发往服务端,服务端通过比较该信息和数据库中存放的教室位置信息来判断学生是否到课。

⑶ 身份识别的方法

学生激活账号时,客户端把要激活的账号和拍摄到的人脸照片发往服务端,服务端以账号作为人脸照片的分类标签,并以人脸照片和其分类标签作为训练样本来训练人脸识别器,人脸识别器是Opencv for Java[5]提供的人脸识别器类的实例。学生签到和签退时,客户端会把当前用户的账号和采集到的人脸照片发往服务端,服务端利用人脸识别器识别出人脸照片的分类标签,并比较当前用户的账号与分类标签是否相同,以此判断是否学生本人签到或签退。

2.2 软件结构

本系统的客户端和服务端各有5个模块。客户端和服务端的软件结构分别见图2和图3。

2.3 模塊设计

⑴ 账号激活模块

该模块先接收用户输入的账号和密码,对于学生用户,还要通过前置摄像头采集3张人脸照片。之后,将用户类别(学生或教师)、账号、密码、人脸照片(学生用户)发往发往服务端的账号激活服务模块,以激活用户的个人账号。

⑵ 账号激活服务模块

该模块先根据接收到的用户类别、账号和密码来查询数据库,以确认账号和密码正确且账号的状态为未激活,之后将账号的状态改为激活。接着,对于学生用户,将接收到的3张照片放置于人脸照片目录并用目录中的所有照片来训练人脸识别器。最后将处理结果返回客户端。

⑶ 登录模块

该模块先接收用户输入的账号和密码,之后将用户类别、账号、密码、登录日期发往服务端的登录服务模块,以确认用户是否有使用该系统的资格。

⑷ 登录服务模块

该模块先根据接收到的用户类别、账号和密码来查询数据库,以确认账号和密码正确且账号的状态为已激活。之后,根据接收到的账号和登录日期在数据库中进行以下查询:对于学生用户,查找当天可签到的课程及相应节次;对于教师用户,查找本学期的任教课程及相应班级。最后,将处理结果返回客户端。在登录成功的情况下,处理结果中会包含当天可签到的课程及相应节次(学生用户)或本学期的任教课程及相应班级(教师用户)。

⑸ 签到模块

该模块先接收学生选择的签到课程(含节次),并通过前置摄像头采集1张人脸照片。之后,调用百度地图API获取手机所在的位置。最后,将账号、签到课程(含节次)、签到时间、手机所在的位置、人脸照片发往服务端的签到服务模块,以实现学生对该次课的签到。

⑹ 签到服务模块

该模块先根据接收到的账号、签到课程(含节次)、签到时间、手机所在的位置来查询数据库,以确认该生该次课尚未签到,并确认该生在规定的时间和地点签到。之后,用人脸识别器根据接收到的人脸照片识别出照片对应的账号,并确认识别出的账号与接收到的账号一致。接着,将签到情况(正常或迟到)记录在数据库中。最后,将处理结果返回客户端。

⑺ 签退模块

该模块先接收学生选择的签退课程(含节次),并通过前置摄像头采集1张人脸照片。之后,调用百度地图API获取手机所在的位置。最后,将账号、签退课程(含节次)、签退时间、手机所在的位置、人脸照片发往服务端的签退服务模块,以实现学生对该次课的签退。

⑻ 签退服务模块

该模块先根据接收到的账号、签退课程(含节次)、签退时间、手机所在的位置来查询数据库,以确认该生该次课尚未签退,并确认该生在规定的时间和地点签退。之后,用人脸识别器根据接收到的人脸照片识别出照片对应的账号,并确认识别出的账号与接收到的账号一致。接着,将签退情况(正常或早退)记录在数据库中。最后,将处理结果返回客户端。

⑼ 考勤查询模块

该模块先接收用户选择的任教课程(含班级)和查询方式(查询当天考勤情况或本学期考勤情况),之后将账号、任教课程(含班级)、查询方式、查询时间发往服务端的考勤查询服务模块,以实现对该课程考勤结果的查询。

⑽ 考勤查询服务模块

该模块根据接收到的账号、任教课程(含班级)、查询方式、查询时间来查询数据库,以获得该课程当天每次课的考勤情况或本学期到目前为止总的考勤情况。之后,将处理结果返回客户端,处理结果中包含该课程当天每次课的考勤情况或本学期到目前为止总的考勤情况。

2.4 数据库表

本系统共有9个表。

⑴ student表(存放学生用户的基本信息,表结构见表1)。

⑵ teacher表(存放教师用户的基本信息,表结构见表2)。

⑶ class表(存放班级的基本信息,表结构见表3)。

⑷ course表(存放课程的基本信息,表结构见表4)。

⑸ classroom表(存放上课教室的基本信息,表结构见表5)。

⑹ semester表(存放学期的基本信息,表结构见表6)。

⑺ schedule表(存放教学计划信息,表结构见表7)。

⑻ curriculum表(存放课表信息,表结构见表8)。

⑼ kaoqin表(存放考勤结果,表结构见表9)。

3 结束语

本文设计了一个基于智能手机的课堂考勤系统,该系统采用C/S架构,客户端运行于Android手机,服务端运行于后台服务器,学生通过客户端以签到和签退的方式来完成考勤,教师通过客户端可直接查询考勤结果。该系统通过综合运用人脸识别及手机定位技术,不但解决了到课确认和身份识别问题,还具有较好的考勤效率。

参考文献(References):

[1] 陈鸿飞,严忱君,俞宝福.基于人脸识别的中学课堂考勤系统的设计[J].科技传播,2015.7(15):91-92

[2] 王大伟.基于Android的课堂考勤系统设计[J].电子世界,2015.22:176-177

[3] 郭克华,李敏,陈志刚.Java Web程序设计[M].清华大学出版社,2011.

[4] 百度文库.百度地图移动版API for android开发指南[EB/OL].https://wenku.baidu.com/view/1b03451959eef8c75-fbfb363.html

[5] 毛星云,冷雪飞,王碧辉等.OpenCV3编程入门[M].电子工业出版社,2015.

猜你喜欢
人脸识别智能手机
智能手机是座矿
人脸识别 等
揭开人脸识别的神秘面纱
使用智能手机增大肥胖风险?
假如我是一部智能手机
基于(2D)2PCA-LBP 的人脸识别方法的研究
人脸识别在高校安全防范中的应用
基于智能手机控制风扇运行的实现
智能手机如何让我们变得低能
基于类独立核稀疏表示的鲁棒人脸识别