python 人脸识别调整人脸大的距离_技术告诉你你有多像女神——python脸比较,科技,和,Python,人脸,对比...

本文介绍了如何使用Python和百度AI进行人脸识别对比。通过创建应用获取Access Token,然后利用Tkinter构建GUI,用户输入图片路径进行相似度比对。文章提供了代码示例和异常处理,同时分享了GitHub和百度网盘的资源链接。
摘要由CSDN通过智能技术生成

引言

两个人在一起久了,由于环境因素,行为习惯,无意识的模仿对方,两个人就会越来越像,这个程序就会告诉你,你和你的女神有多像。

也可以测一下自己和自己心里最深处的那个人有多像,科技告诉你,ta是不是你的菜。

实现原理

百度AI

网站:https://ai.baidu.com

点击控制台,登录百度账号,进入控制台,进入人脸识别。

温馨提示:账号与百度搜索、百度贴吧、百度云盘、百度知道、百度文库等产品账号通用。

1677f7d17d81a58de82f059942f62982.png

ba8e680247b9f95ef5b5fb87fc9b365d.png

进入创建应用后,按照里面的步骤,创建一个人脸识别的应用。

查看人脸对比API文档

网站:https://cloud.baidu.com/doc/FACE/s/Lk37c1tpf

向API服务地址使用POST发送请求,必须在URL中带上参数access_token。需要自行获取Access Token,Access Token可通过应用的API Key和Secret Key生成。对官方文档做个更改,更改过后access_token直接输出的就是所需要的access_token的值。

# encoding:utf-8

import requests

# client_id 为官网获取的AK, client_secret 为官网获取的SK

host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'

response = requests.get(host)

if response:

access_token = response.json()['access_token']

print(access_token)

注意:access_token的有效期为30天,切记需要每30天进行定期更换,或者每次请求都拉取新access_token。

API中获取access_token的代码做了一些修改,使各位阅读者更快的获取到access_token的值

Python代码

可视化窗口代码

注释可以说很全面了。

from tkinter import *

root=Tk() # 实例化一个Tk

root.title ('人脸相似度对比') # 设置窗体的标题栏

root.geometry('400x270+550+300') #设置窗口的大小及初始位置

label_1=Label(root, text='路径1:', font=('宋体',20)) #设置label键,显示文本

label_1.grid(row=0,column=0) #label位置

entry_1=Entry(root,font=('宋体',20)) #单行文本框,输入路径

entry_1.grid(row=0,column=1) #确定文本框位置

label_2=Label(root, text='路径2:', font=('宋体',20))

label_2.grid(row=1,column=0)

entry_2=Entry(root,font=('宋体',20))

entry_2.grid(row=1,column=1)

text = Text(root,width=55, height=6,font=('宋体',10)) #多行文本框,放置注意事项

text.insert("insert","注意事项:"+"\r\n"+"路径格式:D:\pycharm\picture\XXX.jpg"+"\r\n"+"路径1:已知图片*_*_*路径2:需要对比的图片"+"\r\n"+"路径1与路径2图片路径可以互换*_*哈哈哈"+"\r\n"+"路径最好手动打出并且不能出现python内置函数,例如:反斜杠t、反斜杠1、反斜杠User,为什么不能出现反斜杠User我也不知道。")

text.grid(row=2,columnspan=2)

button=Button(root,text='对 比',font=('宋体',20),command =change) #按钮

button.grid(row=3,column=0,sticky=W)

button1=Button(root,text='退 出',font=('宋体',20),command=root.quit)

button1.grid(row=3,column=1,sticky=E)

text = Listbox(root, font=('楷书', 16), width=35, heigh=3) #显示输出结果

# 定位 columnspan 组件横跨的列数

text.grid(row=4, columnspan=2)

root.mainloop() #进入消息循环,必不可少

运行代码后,就构建出这样的窗口。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NjU2NDIy,size_16,color_FFFFFF,t_70#pic_center#pic_center

路径转换代码

def change():

picture_1 = entry_1.get() #从可视化代码的单行文本框获取路径信息

path_1 = picture_1.replace('\\', '/') #将"D:\pycharm\study\ceshi.jpg"中的'\'装换成'/'

picture_2 = entry_2.get()

path_2 = picture_2.replace('\\', '/')

#异常处理,当路径中出现python关键字时可能无法转换

try:

img_base(path_1,path_2)

except:

text.insert(END, '路径格式错误,请按注意事项检查。')

# 文本框滚动

text.see(END)

# 更新

text.update()

源代码

GitHub地址:https://github.com/i7366464/python/blob/face_compare/face_compare3.0.py

百度网盘:链接:https://pan.baidu.com/s/1qBKyI9x1l1kBTdvHr_7eRg

提取码:9gxs

百度网盘中提供普通版本。。

效果

路径格式正确运行结果

b620a47b261bceea8861a49529261b11.png

路径格式错误输出结果

a3c3f65be203d6c213cfba411d59d25d.png

结语

代码中只进行了一种异常的处理,就是python无法将输入路径转换为python可识别路径的地异常。代码编写的比较理想化,就是路径所指向的图片中一定有人脸,但是事实不一定如此,可能画质较低,无法识别到人脸或者根本没有人脸,这种异常并未进行异常处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值