感谢优秀的你打开了小白的文章
“希望在看文章的你今天又进步了一点点,离美好生活更近一步!”
目录
前言
在上一篇文章利用百度进行人脸注册_am_student的博客-CSDN博客进行人脸注册之后,我们可以将要识别的人脸进行搜索,若在自己的数据库中,那么返回注册号以及姓名,并得出相似得分。如果没有则返回没有此用户。
实例代码
# -*- coding: utf-8 -*-
from aip import AipFace
import cv2
import base64
import sys
from graphics import*
import tkinter as tk
from tkinter import filedialog
from time import sleep
sys.setrecursionlimit(1000000)
APP_ID = '16290061'
API_KEY = '4uKwGeC2Ci7aHbn6dHuYIrGc'
SECRET_KEY = 'KRdPZdtYwLsdEthIGu03jb7GEeRtTUMF'
aipFace = AipFace(APP_ID, API_KEY, SECRET_KEY)
def face_search(filepath):
with open(filepath, 'rb') as fp:
base64_data = base64.b64encode(fp.read())
image = str(base64_data, 'utf-8')
imageType="BASE64"
groupIdList='face'
result=aipFace.search(image,imageType,groupIdList)
img = cv2.imread(filepath)
cv2.imshow('img', img)
if (result['result']['user_list'][0]['score']>=70):
win = GraphWin('人脸搜索结果',300,300)
Text(Point(win.getWidth()/2, 40), "搜索结果:").draw(win)
Text(Point(win.getWidth()/2, 65), result['result']['user_list'][0]['user_info']).draw(win)
Text(Point(win.getWidth()/2, 120), "相似得分为:").draw(win)
Text(Point(win.getWidth()/2, 145), result['result']['user_list'][0]['score']).draw(win)
win.getMouse()
win.close()
else:
win = GraphWin('人脸搜索结果',300,300)
Text(Point(win.getWidth()/2, 40), "查找无结果……").draw(win)
Text(Point(win.getWidth()/2, 120), "建议您先在人脸库中注册").draw(win)
win.getMouse()
win.close()
if __name__=='__main__':
filepath = "C:\\Users\\ZXY13\\Desktop\\train_face\\1.jpg"
win = GraphWin('人脸搜索', 500, 90)
win.setBackground("yellow")
Text(Point(win.getWidth()/2, 40), "请在文件夹中选择要搜索的人脸图片").draw(win)
sleep(1)
filepath = filedialog.askopenfilename()
face_search(filepath)
返回结果
选择要识别的人脸照片
人脸搜索
我们在上一次已经进行了人脸注册,在信息库中已经包含了此人的照片以及名称,那么我们在搜索时候就可以得到我们所需要此人的信息。此人的名字为小白,与在数据库中存储的信息的照片相似度为96.45%.
本代码可以通过公众号获取