基于人脸识别的高校课堂考勤微信小程序及系统
人脸识别、地图定位考勤微信小程序,调用百度云免费人脸识别API实现。
功能简介
教师学生信息管理,课堂考勤信息管理,人脸识别,地图打卡四大模块。
功能模块说明:
- 注册登录:
系统管理员、教师、学生 - 个人信息:
查看用户信息 - 考勤发布:
系统管理员和教师发布考勤,考勤地图位置、签到时间范围及签到说明。 - 考勤打卡:
学生用户必须按照老师发布的考勤要求,在一定的地图定位范围、签到时间内以及进行人脸识别打卡。 - 考勤信息查询:
教师用户可以查看到所发布考勤任务中,未打卡及已打卡的学生名单,方便教师记录学生平时成绩。管理员还拥有导出考勤数据为文件的功能。 - 人脸识别:
用户在注册后必须上传本人的真实图片,与用户考勤打卡时摄像头拍摄的人脸照片进行识别比对。 - 地图打卡:
学生根据教师发布课堂考勤的定位范围内进行打卡签到。
功能实现
-
地图定位功能:
- 前端Map_wrap定义了地图信息,微信小程序使用uni.getSetting()方法获取用户当前设置,每次进入程序都会判断当前是否获得用户授权,如果没有授权则调起弹窗请求获得授权,如果获得授权,就直接获取当前地理位置。
- 教师发布考勤信息时,前端使用uni.getLocation() API方法直接调用map组件打开地图,获取教师用户当前所在位置经纬度,然后根据经纬度获取详细地址,再把控件定在地图中心点,然后手动拖动地图,从而实现手动选择定位地址的功能,最后前端将获取到的地址信息传递至后端处理保存于数据库。
- 学生打卡考勤时,同样是uni.getLocation() API方法获取学生用户当前真实定位信息,根据经纬度和通过distance()方法(计算两点之间距离)来计算真实定位与考勤信息里的地址位置的直线距离,若学生用户真实位置离考勤定位点距离超过200米,则拒绝打卡请求。
-
人脸识别功能:
- 本系统采用的人脸识别功能是基于百度AI的人脸识别库而实现的,是对输入的人脸静态图像或视频流中采集的人脸图像,与数据库中图像进行人脸特征点信息对比,计算出相似度进行判断,从而达到人脸识别的目的。
整体算法分为三个步骤:- 根据百度Oauth的ClientCredenTIals授权方式,获取到的AppID、API Key(client_id)和Secret Key(client_secret)是作为本系统人脸识别功能的API接口。再通过API key和Secret Key获得参数accessToken。
- 调用百度AI平台提供的API函数,根据提供的图片的网络地址及base64编码,在人脸特征库得到的面部特征值face_token及json数组后返回。
- 再由面部特征值得出两张图片的相似度分数score,score=eval(response.text)[‘result’][‘score’],若相似度得分超过80,则说明是同一人的可能性极大。
- 本系统采用的人脸识别功能是基于百度AI的人脸识别库而实现的,是对输入的人脸静态图像或视频流中采集的人脸图像,与数据库中图像进行人脸特征点信息对比,计算出相似度进行判断,从而达到人脸识别的目的。
效果图
-
教师学生端微信小程序
- 登录注册
- 考勤模块
- 地图打卡
- 人脸识别
- 系统管理员端
相关资源
文档: 毕业设计任务书(https://download.csdn.net/download/cheese0408/87530355)