欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

基于人脸识别的课堂签到管理系统

程序员文章站 2022-03-20 11:33:50
实习第三天,上午练习实现ui界面的日期和时间与系统时间保持一致,人脸识别能够把摄像头采集的画面进行人脸识别,能识别人脸,且判断到是谁。之后进行人脸分析识别判断,实现方式有很多种,但是考虑到诸多原因我们最终选择了百度的人脸识别。在离线SDK和在线API两种方式间我们选择了后者。详细讲解了人脸检测、人脸对比、人脸搜索及人脸库管理在线识别方式。使用在线识别的功能完成人脸识别需要之前的摄像头采集画面,在线检测,实现方式是向百度AI发送人脸检测请求,让百度AI去完成人脸检测,返回检测结果。因为在发送请求前必须要有百....

实习第三天,上午练习实现ui界面的日期和时间与系统时间保持一致,人脸识别能够把摄像头采集的画面进行人脸识别,能识别人脸,且判断到是谁。之后进行人脸分析识别判断,实现方式有很多种,但是考虑到诸多原因我们最终选择了百度的人脸识别。在离线SDK和在线API两种方式间我们选择了后者。详细讲解了人脸检测、人脸对比、人脸搜索及人脸库管理在线识别方式。使用在线识别的功能完成人脸识别需要之前的摄像头采集画面,在线检测,实现方式是向百度AI发送人脸检测请求,让百度AI去完成人脸检测,返回检测结果。因为在发送请求前必须要有百度云提供的令牌,所以需要申请注册百度智能云的账号。


时间功能(可选):
1、获取系统时间
2、把获取的系统时间日期添加到对应的时间/日期编辑器中
3、多次重复获取系统时间,添加定时器,设置定时时间,产生信号,关联槽函数,在槽函数中去完成获取系统时间/日期功能
当定时器到达定时时间后才会产生信号
在创建窗口时就应该有这个定时器,启动定时器产生信号,关联设置时间日期的槽函数

人脸识别: 能够把摄像头采集的画面进行人脸识别(识别人脸,且能判断到是谁)
进行人脸分析识别判断,实现方式有很多种:采用成熟的现成的技术方式或者我们自己从0开始设计一个识别模型进行识别判断

  • 厂商现成的技术方案–使用百度的人脸识别
    需要使用百度的相关技术方案(实现)--------不会提供实现方式,只会提供使用的方式
    在对应网站 http://ai.baidu.com/ 找到人脸识别使用方法,使用提供的技术文档进行完成
    离线方式-----离线sdk
    在线方式-----在线api
    在线识别方式:
    人脸检测:对人脸进行分析检测
    人脸对比:比对两个人脸画面是否为同一个人,多个人脸信息进行比对判断(确定是否为同一个人)
    人脸搜索:在人脸库中搜索是否存在相识人脸(确认人脸库中是否存在同一个人)
    人脸库管理:管理人脸信息(存储多人人脸信息)
    使用在线识别的功能完成人脸识别:
    1、摄像头采集画面
    2、实现人脸检测:在线检测-----让百度AI进行检测
    实现方式:
    发送请求(向百度AI发送人脸检测请求,让百度AI去完成人脸检测,返回检测结果)
    发送请求不是任意的网络请求能够接受,必须有百度提供的访问令牌(access_token)
    a、在发送请求前必须先有access_token,获取access_token:需要注册人脸识别API
    client_id
    client_secret决定是否有访问权限
    需要注册API获取id与secret,用百度账号进行注册
    注册后建立人脸识别应用(才能进行使用),才会创建id与secret
    id:应用的API Key ------- exGfN5ZtUhTgZGHZVV8v821I
    secret:应用的Secret Key -------uNXjdRa7SbYwt0EgBdRwsmQYX6VADGx8
    在使用requests.get(host)发送请求后,最终得到字典数据
    从字典中取出键为access_token的值,得到accesstoken值
    b、发送请求,通过网络请求方式完成让百度AI进行人脸检测
    让百度AI检测一张画面(图片)是否存在人脸,以及人脸的一些属性
    通过requests.post()函数完成请求,返回检测到的结果
    结果数据是一个字典,存在多项数据内容,通过键值对进行表示
    返回结果如下
    {‘error_code’: 0,
    ‘error_msg’: ‘SUCCESS’,
    ‘log_id’: 6589201457925,
    ‘timestamp’: 1594992415,
    ‘cached’: 0,
    ‘result’:
  • 这个字典是检测的结果,其中有两项内容:
    ‘face_num’: 2,-----人脸的数目(每张人脸都有信息)
    ‘face_list’:-------每个人脸的信息,是一个列表,列表中的每个数据就是一张人脸的信息数据,每个数据是一个字典从来存储一个人脸信息的各个部分
    {‘face_num’: 1,
    ‘face_list’: [{‘face_token’: ‘9092a8eb509e65c5c215d494f95969c8’,
    ‘location’: {‘left’: 386.12,
    ‘top’: 556.48,
    ‘width’: 651,
    ‘height’: 571,
    ‘rotation’: 5
    },
    ‘face_probability’: 1,
    ‘angle’: {‘yaw’: -15.93, ‘pitch’: 28.1, ‘roll’: 10.37},
    ‘gender’:
    {‘type’: ‘female’,
    ‘probability’: 1
    },
    ‘age’: 22,
    ‘beauty’: 69.68
    }]}

完成人脸搜索,搜索库中是否存在对应人脸,进行签到


时间日期完成的基本情况
基于人脸识别的课堂签到管理系统
最终完成的效果显示

  • 我选择进行人脸检测的图片
    基于人脸识别的课堂签到管理系统
    最终的检测执行结果显示(先按taken令牌,再按face_post进行检测)
    基于人脸识别的课堂签到管理系统此时终端返回的基本信息
    {‘error_code’: 0,
    ‘error_msg’: ‘SUCCESS’,
    ‘log_id’: 2584156505552,
    ‘timestamp’: 1595035410,
    ‘cached’: 0,
    ‘result’: {‘face_num’: 1, ‘face_list’: [{‘face_token’: ‘9092a8eb509e65c5c215d494f95969c8’, ‘location’: {‘left’: 386.12, ‘top’: 556.48, ‘width’: 651, ‘height’: 571, ‘rotation’: 5}, ‘face_probability’: 1, ‘angle’: {‘yaw’: -15.93, ‘pitch’: 28.1, ‘roll’: 10.37}, ‘gender’: {‘type’: ‘female’, ‘probability’: 1}, ‘age’: 22, ‘beauty’: 69.68}]}}

今天使用百度智能云的在线识别的功能完成人脸识别(摄像头采集画面、让百度AI进行在线人脸检测),与平时学习的不一样。我觉得这种开源平台的现成代码挺好用的,学会了新的人脸识别的实现方式。
作为物联网小白,个人能力有限,今天是我们学习人脸识别的课堂签到管理系统的第三天,肯定有很多不足,后面会慢慢改正。
同时以上内容非常谢谢姚老师给我们的总结与讲解,非常有耐心并详细!

本文地址:https://blog.csdn.net/qq_44830040/article/details/107423744