毕设项目-人脸识别考勤签到系统

人脸识别小程序、签到小程序,借助百度AI智能识别功能实现。

需求说明

学生信息管理,考勤管理,人脸识别处理大概这三个模块。

功能模块:

  • 登录与注册(两种身份 老师或学生)
  • 课程发布(老师可以发布课程信息 名称 地点 选课人数)
  • 课程查看(学生查看课程信息)
  • 人脸录入(学生登录后有录入人脸功能)
  • 考勤发布(老师发布考勤签到,课程名称,开始时间和结束时间)
  • 学生签到(人脸识别签到,签到失败,迟签,签到成功)
  • 考勤记录查看(学生ID,课程名称,签到状态)

功能分析

人脸识别调用百度智能云api就可以。做人脸识别签到,其实就是要拿识别的人脸和数据库里的人脸对比,相识度大于一定的值,就可以判定成功。

如我们识别的结果是98.295%,所以这里就可以认定为签到成功。

效果图

还没签到

签到

签到成功

接入人脸识别

人脸注册

我们要想实现人脸识别,就需要一开始先在百度的可视化人脸库里注册人脸,要调用的接口如下。

获取acess_token

在调用这个之前,我们需要先去获取对应的acess_token,所以接下来我们要做的第一步就是获取acess_token。我们后面做的所有操作,基本上都要获取这个。

wx.request({url: 'https://aip.baidubce.com/oauth/2.0/token',data: {grant_type: 'client_credentials',client_id:, //应用的API Keyclient_secret:  //应用的Secret Key},header: {'Content-Type': 'application/json' // 默认值},success: res => {this.setData({token: res.data.access_token //获取到token})console.log('获取到的token', this.data.token)}})

拍人脸照,注册人脸到百度人脸库

我们在拍照以后,获取到图片,并通过 wx.getFileSystemManager().readFile()方法把图片转换为base64,因为百度需要这样格式的数据。

var that = this;//拍照const ctx = wx.createCameraContext()ctx.takePhoto({quality: 'high',success: (res) => {that.setData({src: res.tempImagePath //获取图片})//图片base64编码wx.getFileSystemManager().readFile({filePath: that.data.src, //选择图片返回的相对路径encoding: 'base64', //编码格式success: res => { //成功的回调that.setData({base64: res.data})//第三步:上传人脸进行注册wx.request({url: 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=' + that.data.token,method: 'POST',data: {image: that.data.base64,image_type: 'BASE64',group_id: 'users', //自己建的用户组iduser_id: app.globalData.userInfo.phone, //学号user_info: app.globalData.userInfo.name //存储学生姓名},header: {'Content-Type': 'application/json' // 默认值},success(res) {that.setData({msg: res.data.error_msg})console.log("人脸注册返回结果", res)//做成功判断if (that.data.msg == 'SUCCESS') { //微信js字符串使用单引号wx.showToast({title: '注册成功',icon: 'success',duration: 2000})// that.registerFace()}}}),//失败尝试wx.showToast({title: '请重试',icon: 'loading',duration: 500})}})} //拍照成功结束}) //调用相机结束

我们注册完以后,可以在百度人脸库里看到这条数据,可以看到我们创建的users表。

查看人脸库

人脸比对

我们上面注册好人脸以后,接下来就可以使用人脸打卡功能了。 使用之前还是第一步,获取acess_token。

获取acess_token

// acess_token获取getTokenInfo() {var that = thiswx.request({url: 'https://aip.baidubce.com/oauth/2.0/token',data: {grant_type: 'client_credentials',client_id: app.globalData.client_id, //应用的API Keyclient_secret: app.globalData.client_secret //Secret Key},header: {'Content-Type': 'application/json' // 默认值},success(res) {that.setData({token: res.data.access_token //获取到token})console.log(that.data.token)}})},

人脸比对

//拍照并编码takePhoto() {let that=thisconst ctx = wx.createCameraContext()ctx.takePhoto({quality: 'high',success: (res) => {//图片base64编码wx.getFileSystemManager().readFile({filePath: res.tempImagePath, //选择图片返回的相对路径encoding: 'base64', //编码格式success: res => { //成功的回调that.signInFace(res.data)}})}})},//上传人脸进行 比对signInFace(base64) {var that = thisif (base64 != "") {wx.request({url: 'https://aip.baidubce.com/rest/2.0/face/v3/search?access_token=' + that.data.token,method: 'POST',data: {image: base64,image_type: 'BASE64',group_id_list: 'users' //自己建的用户组id},header: {'Content-Type': 'application/json' // 默认值},success(res) {console.log("人脸对比返回结果", res)if (res.data.error_msg == "match user is not found") {wx.showModal({title: '签到失败',content: '请先注册人脸才可以人脸使用',})}if (res.data.error_msg == "SUCCESS") {that.setData({msg: res.data.result.user_list[0].score,})// console.log(res)if (that.data.msg > 80) { //相似度大于80console.log('人脸识别成功')} else {wx.showToast({title: '人脸识别失败',})}} else {wx.showToast({title: '人脸识别失败',})}}});}if (base64 == "") {wx.showToast({title: '请重试',icon: 'loading',duration: 500})}},

我们执行代码以后,会返回一个相识度,我这里规定相识度80%以上即为同一个人。看日志可以知道我们的相识度是98.295%,所以这里就可以认定为签到成功。

毕设项目-人脸识别考勤签到系统相关推荐

  1. 基于 OpenCV + Python 的人脸识别上课签到系统

    目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...

  2. 基于JAVA人脸识别公司签到系统(Springboot框架+AI人工智能) 开题报告

      本科生毕业论文 基于Java(springboot框架)人脸识别公司签到系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本 ...

  3. 基于python opencv人脸识别的签到系统

    基于python opencv人脸识别的签到系统 前言 先看下效果 实现的功能 开始准备 页面的构建 功能实现 代码部分 总结 前言 一个基于opencv人脸识别和TensorFlow进行模型训练的人 ...

  4. python人脸识别门禁系统毕设_人脸识别门禁系统 毕业设计 可移植树莓派

    [实例简介] 基于python的人脸识别门禁系统,实现对人脸的录入与识别功能 ,毕业设计 附论文 可移植树莓派 [实例截图] [核心代码] 人脸识别毕业设计源码 └── 人脸识别毕业设计源码 ├── ...

  5. 基于百度API人脸识别课堂签到系统(一)--------人脸检测

    一.前言 今年由于疫情,全国学生的教学方式都从线下转到了线上:线下可以点名进行签到,那么线上应该如何进行准确的签到,防止学生作弊签到的情况呢?因此一款适用于大中小学生的基于人脸识别的课堂签到系统便应运 ...

  6. php 会议签到系统_人脸识别会议签到系统有哪些优点?

    随着人工智能的不断发展,人识别在各大场所的应用也是熠熠生辉,它打破了传统签到模式带来的弊端,尤其在会议签到领域,提升有效提升了工作效率,带给参会者以及用户更好的体验. 人脸识别签到系统是怎么工作的? ...

  7. 基于opencv实现人脸识别及签到系统

    首先需要安装opencv.dlib.face_recongnition库,opencv安装起来比较简单,其他两个库的安装请看关于face_recognition的安装最简单方式_时间和我都在往前走的博 ...

  8. Springboot毕业设计毕设作品,人脸识别公司考勤系统 开题报告

      本科生毕业论文 基于Java(springboot框架)人脸识别公司签到系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本 ...

  9. 如何规划一款AI硬件产品(以人脸识别考勤门锁为例)_团员分享_@ocean

    前言:本文作者团员@ocean,分享了很多来自实战的内容,特别是人脸识别考勤门禁一体机的需求分析,以及人脸识别算法指标(准确率.召回率.误识率.拒识率.ROC曲线和识别速度),大家能直接借鉴到自己的工 ...

最新文章

  1. LeetCode简单题之Excel表列名称
  2. RansomCoin 二进制中提取加密货币地址
  3. Linux-0.00 代码解析(三)
  4. Spark常规性能调优三:并行度调节
  5. Windows API 逐个逐个学MessageBox(5) 遍历驱动器并获取驱动器属性 GetLogicalDriveStrings、GetDriveTypeA...
  6. bootstrap,datetimepicker日期时间选择器-限制时间段,以及中文显示问题
  7. linux 带ifdef运行程序_如何让linux的一段程序代码进入内核态运行
  8. window中搭建jenkins_为容器化的 Go 程序搭建 CI
  9. python3.3使用tkinter实现猜数字游戏代码
  10. 算法——贪心算法解0-1背包问题
  11. 软件开发者优质资源网站
  12. ps一点等于多少厘米_请问PS中“像素”和“厘米”是怎么换算的?
  13. php判断是否是全英文,php判断字符串是否全英文,纯中文,中英文组合的方法
  14. android 删除短信无效,android删除短信(绕过权限)
  15. 现代计算机体系结构发明人,cpu的发明人是谁啊?
  16. C/C++编码准则,可借鉴的东西还挺多!
  17. 使用Matlab把图片集合生成视频流文件
  18. IDEA使用Spark 进行对所有数据进行统计
  19. USACO美国信息学奥赛竞赛12月份开赛,中国学生备赛指南
  20. 手机关机不拔电池也能被定位吗?

热门文章

  1. 牛客SQL练习-39-针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引
  2. 职场工作细节提升建议
  3. 电磁场与仿真软件(36)
  4. yolov3运行及保存检测视频(包括摄像头)
  5. Miniconda在服务器上的安装与使用
  6. 微信小程序-H5-uniapp css制作上下跳动的柱状图——频谱
  7. Gi常用命令大全整理
  8. WPF 创建秒表 计时器
  9. 一场美好的婚礼对女孩子来说意味着什么?
  10. 一些学习gis有关的文章