基于人脸识别的课堂签到管理系统
实习第三天,上午练习实现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
上一篇: 杨仪堪称孔明的左右手,最后为何*自杀了?