利用百度进行人脸识别

6fdb432766184bdc8accbc954bc71d86.png6b05a3a07ef64396b81e3cb829694541.png9051b407949640379698ee348b24d22d.png

感谢优秀的你打开了小白的文章

“希望在看文章的你今天又进步了一点点,离美好生活更近一步!”5658b74787654a1c86f49773b8fe1c8c.png

 

目录

前提工作:

aip安装

 graphics安装

 程序代码

运行结果


前提工作:

需要在百度人脸识别云平台注册账号并登陆:百度智能云-登录

然后创建人脸检测应用,则会生成相应的APP_ID API_KEY SECRET_KEY,开发时要用到

aip安装

我们需要安装相关的包进行运行程序:

在anaconda prompt中输入:

install baidu-aip

 graphics安装

另外,还存在一个问题:在pycharm中import graphics显示无法找到graphics。

解决办法:只需在graphics.py · PyPI下载安装包,将graphics文件夹中修改成graphics.py拷贝到Anaconda3Libsite-packages目录下,重新加载即可。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_20,color_FFFFFF,t_70,g_se,x_16 

将文件解压缩 ,打开graphics.py-5.0.1graphics,将文件名字修改。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_20,color_FFFFFF,t_70,g_se,x_16

 将graphics.py放到anacodaLibsite-packages中,即可。

 程序代码

# -*- coding: utf-8 -*-# from aip import AipFaceimport cv2import base64import syssys.setrecursionlimit(1000000) from graphics import*import tkinter as tkfrom tkinter import filedialogfrom time import sleepAPP_ID = '16290061'API_KEY = '4uKwGeC2Ci7aHbn6dHuYIrGc'SECRET_KEY = 'KRdPZdtYwLsdEthIGu03jb7GEeRtTUMF'aipFace = AipFace(APP_ID, API_KEY, SECRET_KEY)filepath1 = "C:\Users\ZXY13\Desktop\train_face\1.jpg"filepath2 = "C:\Users\ZXY13\Desktop\train_face\9.jpg"win = GraphWin('人脸比对第1张图片', 500, 90)win.setBackground("yellow")Text(Point(win.getWidth()/2, 40), "请在文件夹中选择 第1张 人脸图片").draw(win)sleep(1)root = tk.Tk()root.withdraw()filepath1 = filedialog.askopenfilename()win = GraphWin('人脸比对第2张图片', 500, 90)win.setBackground("yellow")Text(Point(win.getWidth()/2, 40), "请在文件夹中选择 第2张 人脸图片").draw(win)sleep(1)root = tk.Tk()root.withdraw()filepath2 = filedialog.askopenfilename()with open(filepath1, "rb") as fp:    base64_data = base64.b64encode(fp.read())image = str(base64_data, 'utf-8')imageType = "BASE64"options = {    'max_face_num': 1,     'face_fields': "expression,faceshape",}result1 = aipFace.detect(image, imageType,options)location1=result1['result']['face_list'][0]['location']left_top1=(int(location1['left']),int(location1['top']))right_bottom1=(int(left_top1[0]+location1['width']),int(left_top1[1]+location1['height'])) img1=cv2.imread(filepath1)cv2.rectangle(img1,left_top1,right_bottom1,(0,255,0),2)cv2.imshow('img1',img1)with open(filepath2, "rb") as fp:    base64_data = base64.b64encode(fp.read())image = str(base64_data, 'utf-8')imageType = "BASE64"result2 = aipFace.detect(image, imageType,options)location2=result2['result']['face_list'][0]['location']left_top2=(int(location2['left']),int(location2['top']))right_bottom2=(int(left_top2[0]+location2['width']),int(left_top2[1]+location2['height'])) img2=cv2.imread(filepath2)cv2.rectangle(img2,left_top2,right_bottom2,(0,255,0),2)cv2.imshow('img2',img2)result = aipFace.match([    {        'image' : base64.b64encode(open(filepath1, 'rb').read()).decode(),        'image_type': 'BASE64',    },    {       'image' : base64.b64encode(open(filepath2, 'rb').read()).decode(),        'image_type': 'BASE64',    }])res=result['result']['score']if res>80:#print ("图1和图2是同一个人.
")win = GraphWin('检测结果', 300, 300)Text(Point(win.getWidth()/2, 40), "相似得分为:").draw(win)Text(Point(win.getWidth()/2, 80), res).draw(win)Text(Point(win.getWidth()/2, 120), "图1和图2是同一个人.").draw(win)win.getMouse()win.close()        else:#print ("图1和图2不是同一个人.
")win = GraphWin('检测结果', 300, 300)Text(Point(win.getWidth()/2, 40), "相似得分为:").draw(win)Text(Point(win.getWidth()/2, 80), res).draw(win)Text(Point(win.getWidth()/2, 120), "图1和图2不是同一个人.").draw(win)win.getMouse()win.close()cv2.waitKey(100000)

运行结果

选择第一张照片:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_20,color_FFFFFF,t_70,g_se,x_16

 选择第二张照片:

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_17,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_17,color_FFFFFF,t_70,g_se,x_16

 得到评分:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_12,color_FFFFFF,t_70,g_se,x_16

 具体代码可以在公众号获取:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_14,color_FFFFFF,t_70,g_se,x_16

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进步小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值