一.人脸搜索

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

# 人脸识别检测,只检测一个人
    def face_search(self):
        request_url = "https://aip.baidubce.com/rest/2.0/face/v3/search"
        params = {
            "image": self.base64_image,
            "image_type": "BASE64",
            "group_id_list": "class2",
        }
        access_token = self.access_token
        request_url = request_url + "?access_token=" + access_token
        headers = {'content-type': 'application/json'}
        response = requests.post(request_url, data=params, headers=headers)
        if response:
            data = response.json()
            if data['error_code'] == 0:
                if data['result']['user_list'][0]['score'] > 90:
                    self.search_data.emit("学生签到成功\n学生信息:"+data['result']['user_list'][0]['user_info'])

为了使界面能够流畅显示,还是在之前的多线程类detect.py中调用这个函数
在这里插入图片描述

二.完善签到

人脸搜索成功后,百度会返回人脸标志,用户组id,以及用户信息。在这里就要用到用户信息,通过窗口右侧的学生签到情况来显示是否签到成功以及签到的学生的信息
在这里插入图片描述从detect.py类中将返回的用户信息发送到mywindow.py类中,并将其用户信息打印到“学生签到情况”
在这里插入图片描述在这里插入图片描述
同时如果出现摄像头未扫描到人脸的情况出现,添加一个条件语句,未扫到人脸时,打印失败原因并返回,防止程序卡死
在这里插入图片描述

三.代码演示

选择签到,点击启动签到,如果人脸匹配成功则在学生签到情况打印“签到成功”以及用户信息
在这里插入图片描述如果出现匹配失败,则会打印失败原因,这里将摄像头遮住了,这里就在显示画面中没有人脸
在这里插入图片描述

四.相关下载

代码下载:Face_Recognition_Project_6.zip

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐