基于人脸识别的课堂签到管理系统(三)---实时时间显示以及百度AI人脸识别

  • 一.前言概述
  • 二.实时时间显示
  • 三.百度AI人脸识别
    • 3.1 获取access_token
    • 3.2 发送请求,通过网络请求方式完成让百度AI进行人脸检测
  • 四.相关下载

一.前言概述

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

人脸识别

能够把摄像头采集的画面进行人脸识别(识别人脸,且能判断到是谁)
进行人脸分析识别判断,实现方式有很多种:采用成熟的现成的技术方式或者我们自己从0开始设计一个识别模型进行识别判断
厂商现成的技术方案–使用百度的人脸识别
需要使用百度的相关技术方案(实现)–不会提供实现方式,只会提供使用的方式
在对应网站http://ai.baidu.com/找到人脸识别使用方法,使用提供的技术文档进行完成
离线方式-----离线sdk
在线方式-----在线api
在线识别方式:
人脸检测:对人脸进行分析检测
人脸对比:比对两个人脸画面是否为同一个人,多个人脸信息进行比对判断(确定是否为同一个人)
人脸搜索:在人脸库中搜索是否存在相识人脸(确认人脸库中是否存在同一个人)
人脸库管理:管理人脸信息(存储多人人脸信息)
使用在线识别的功能完成人脸识别:
1、摄像头采集画面
2、实现人脸检测:在线检测-----让百度AI进行检测
实现方式:
发送请求(向百度AI发送人脸检测请求,让百度AI去完成人脸检测,返回检测结果)
发送请求不是任意的网络请求能够接受,必须有百度提供的访问令牌(access_token)

     a、在发送请求前必须先有access_token,获取access_token:需要注册人脸识别APIclient_idclient_secret决定是否有访问权限需要注册API获取id与secret,用百度账号进行注册注册后建立人脸识别应用(才能进行使用),才会创建id与secretid:应用的API Key -------  kSD6zWfxpki2AKWtysCUe0nSsecret:应用的Secret Key -------uNXjdRa7SbYwt0EgBdRwsmQYX6VADGx8在使用requests.get(host)发送请求后,最终得到字典数据从字典中取出键为access_token的值,得到accesstoken值b、发送请求,通过网络请求方式完成让百度AI进行人脸检测让百度AI检测一张画面(图片)是否存在人脸,以及人脸的一些属性通过requests.post()函数完成请求,返回检测到的结果结果数据是一个字典,存在多项数据内容,通过键值对进行表示返回结果如下

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

二.实时时间显示

添加一个定时器,定时时间为500ms,每500ms产生一个信号。

 #启动获取系统时间/日期定时器,定时时间为500ms,500ms产生一次信号
self.datetime.start(500)
#关联时间/日期的定时器信号与槽函数
self.datetime.timeout.connect(self.data_time )

设置函数data_time获取时间与日期,添加到对应的定时器。
这样每隔500ms就获取时间与日期

#data_time函数获取日期与时间,添加到对应的定时器def data_time(self):# 获取日期date = QDate.currentDate()#print(date)self.dateEdit.setDate(date)self.label_3.setText(date.toString())# 获取时间time = QTime.currentTime()#print(time)self.timeEdit.setTime(time)self.label_2.setText(time.toString())# 获取日期时间datetime = QDateTime.currentDateTime()#print(datetime)

显示运行结果:
时间能够实时显示,不再是之前的设置了就不变了。

三.百度AI人脸识别

3.1 获取access_token

实现人脸检测:在线检测-----让百度AI进行检测
实现方式:
发送请求(向百度AI发送人脸检测请求,让百度AI去完成人脸检测,返回检测结果)
发送请求不是任意的网络请求能够接受,必须有百度提供的访问令牌(access_token)

在发送请求前必须先有access_token,获取access_token:
点击链接进入网页https://ai.baidu.com/?track=cp:aipinzhuan|pf:pc|pp:AIpingtai|pu:title|ci:|kw:10005792,点击进入人脸识别。
点击立即使用,输入百度账号,进入百度智能云。
当然你也可以点击技术文档,查看其人脸检测的具体技术实现。
点击人脸识别,在选择创建应用。
这里在应用简称和应用描述上都是人脸检测,其他都是默认,点击创建。
这样我们就有了API Key,Secret Key放便获取access_token

3.2 发送请求,通过网络请求方式完成让百度AI进行人脸检测

首先是获取access_token,具体的函数这里不做过多解释,感兴趣的朋友可以点击链接技术文档,深入了解。

    def get_accesstoken(self):print("get_accesstoken")#host对象是字符串对象存储是授权的服务地址-----获取accesstoken的地址host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=1cFzLl7ZshdilAAMZnnyX4Ak&client_secret=2OgXkKUAPSEQzQmnkj88LGGoj71Kk3Tj'#发送网络请求   requests网络库#使用get函数发送网络请求,参数为网络请求的地址,执行时会产生返回结果,结果就是请求的结果response = requests.get(host)if response:# print(response.json())data = response.json()self.access_token = data.get('access_token')print(self.access_token)

获取了令牌后,我们就可以上传图片,让百度AI进行人脸检测,并对相关属性进行分析并返回。
这里我是请求识别了人脸的性别,年龄,以及美丽程度。

    def get_face(self):#获取一张图片(一帧画面)#getOpenFileName通过对话框的形式获取一个图片(.JPG)路径path,ret = QFileDialog.getOpenFileName(self,"open picture",".","图片格式(*.jpg)")#把图片转换成base64编码格式fp = open(path,'rb')base64_imag = base64.b64encode(fp.read())print(base64_imag)#发送请求的地址request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"#请求参数是一个字典,在字典中存储,百度AI要识别的图片信息,属性内容params = {"image":base64_imag,#图片信息字符串"image_type":"BASE64",#图片信息格式"face_field":"gender,age,beauty"#请求识别人脸的属性, 各个属性在字符串中用,逗号隔开}#访问令牌access_token = self.access_token#把请求地址和访问令牌组成可用的网络请求request_url = request_url + "?access_token=" + access_token#参数:设置请求的格式体headers = {'content-type': 'application/json'}#发送网络post请求,请求百度AI进行人脸检测,返回检测结果response = requests.post(request_url, data=params, headers=headers)if response:data = response.json()if data['error_msg'] == 'SUCCESS' :age = data['result']['face_list'][0]['age']beauty = data['result']['face_list'][0]['beauty']print(age)print(beauty)

代码运行
第一步,获取access_token令牌
第二步,上传照片,百度AI分析并返回其分析的结果

四.相关下载

代码下载:Face_Recognition_Project_3.zip。

基于人脸识别的课堂签到管理系统(三)---实时时间显示以及百度AI人脸识别相关推荐

  1. 【项目实训】基于人脸识别的课堂签到管理系统(python+qt5+sqlite3+百度智能云)

    [项目实训]基于人脸识别的课堂签到管理系统(python+qt5+sqlite3+百度智能云) 一.环境介绍 二.签到功能 2.1 启动签到 2.2 结束签到 三.用户组操作 3.1 添加用户组 3. ...

  2. 基于人脸识别的课堂签到管理系统【学习三】

    实习第三天,上午练习实现ui界面的日期和时间与系统时间保持一致,人脸识别能够把摄像头采集的画面进行人脸识别,能识别人脸,且判断到是谁.之后进行人脸分析识别判断,实现方式有很多种,但是考虑到诸多原因我们 ...

  3. 基于人脸识别的课堂签到管理系统(六)---删除,查询用户组以及人脸的添加,删除,更新

    基于人脸识别的课堂签到管理系统(六)---删除,查询用户组以及人脸的添加,删除 一.用户组操作 1.1 查询用户组 1.2 删除用户组 二.人脸操作 2.1 人脸添加 2.2 人脸更新 2.3 人脸删 ...

  4. 基于人脸识别的课堂签到管理系统(五)---启动/结束签到,以及在百度智能云创建用户组

    基于人脸识别的课堂签到管理系统(五)---启动/结束签到,以及在百度智能云创建用户组 一.前言概述 二.签到功能 2.1 启动签到 2.2 结束签到 三.创建用户 四.程序展示 五.相关下载 一.前言 ...

  5. 基于人脸识别的课堂签到管理系统(四)---摄像头上传实时数据,百度AI读取并返回信息以及多线程操作

    基于人脸识别的课堂签到管理系统(四)---摄像头上传实时数据,百度AI读取并返回以及多线程操作 一. 前言概述 二.摄像头上传数据,读取百度AI返回信息 三.多线程操作 四.程序展示 五.相关下载 一 ...

  6. 基于人脸识别的课堂签到管理系统(一)---环境设置以及简单的QT界面设计

    基于人脸识别的课堂签到管理系统(一)---环境设置以及简单的QT界面设计 一.前言 二.Pycharm安装与环境配置 2.1 Pycharm安装配置 2.2 Pycharm环境配置 三.QT界面设计 ...

  7. 基于人脸识别的课堂签到管理系统【学习一】

    写在前面:需要搭建的环境 (我使用的环境情况如下) pycharm python opencv-python pysqlit3 pyqt5-tools 具体情况如图所示 基于人脸识别的课堂签到管理系统 ...

  8. 人脸课堂签到管理系统(总结二) 摄像头显示

    文章目录 一.摄像头显示 二.摄像头操作类 camera 实现 三.界面类 myWindow 一.摄像头显示 总结一:人脸课堂签到管理系统(总结一) pyqt5界面设计 实现流程图大致如下: 二.摄像 ...

  9. 基于人脸识别的课堂签到管理系统(七)---实现人脸搜索,完善签到功能

    一.人脸搜索 首先还是参考百度的技术文档,可以看到想要进行人脸搜索操作就需要提供图片信息,格式,用户组id三个必需的参数 这些参数在之前就已经获取好了,只需要直接调用即可 # 人脸识别检测,只检测一个 ...

最新文章

  1. JSTL标签显示分页
  2. sql server在执行批处理时出现错误。错误消息为: 目录名无效
  3. Emscripten-mac安装与升级
  4. The Web Audio autoplay policy will be re-enabled in 音频无法播放
  5. 【详解】某企业的培训关系模式 R(培训科目,培训师,学生,成绩,时间,教室), R的函数依赖集 F={培训科目→→培训师,(学生,培训科目)→成绩,(时间,教室)→培训科目,(时间,培训师)→
  6. vue-cookies使用方法,vue中使用获取cookie
  7. 三、Web服务器——HTTP协议 Response对象 ServletContext对象 学习笔记
  8. 真的很OK!雷军成科创板大赢家 相关投资企业3家已上市
  9. Oracle管理文件OMF (oracle managed files)
  10. Servlet获取全路径
  11. 大数据平台搭建及搭建过程出错解析
  12. javaweb超市仓库管理系统
  13. 小白如何快速绘制原型图
  14. 关于浮点运算和定点运算
  15. HTML表格简单的创建与制作
  16. ui sketch_如何在Sketch中设计汽车应用程序设计UI
  17. 修改 vscode 中主题注释中文的斜体格式
  18. python-gif图生成
  19. 电脑显示器的相关设置与常见故障排除方法
  20. 【机器学习】简述多种降维算法

热门文章

  1. 大学计算机专业绩点在3.5算好,大学绩点3.5算什么水平 绩点低有哪些补救方法...
  2. 量子计算机加密货币,量子计算机会打击到加密货币吗?
  3. Linux5常规网络配置,求解red hat linux enterprise 5 网络配置问题
  4. volatile指令重排_面试:为了进阿里,重新翻阅了Volatile与Synchro
  5. python节点之间的继承关系_python--继承关系
  6. 剑指offer面试题[5]-从尾到头打印链表
  7. linux中nfs存储权限,NFS权限管理 - 麦苗的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. linux中_Linux基础知识(Linux系统、Linux中的链表)
  9. java hbase 例子,java操作hbase例子
  10. 小宝机器人的储存容量_扫地机器人和吸尘器哪个更实用?