python人脸对比相似度_python人脸对比

该博客介绍了一种使用Python调用百度API进行人脸对比和相似度检测的方法。通过获取API token,读取并编码图片为base64,然后发送请求到人脸对比API,最后根据返回的分数判断两张照片是否属于同一个人。
摘要由CSDN通过智能技术生成

import sys

import ssl

from urllib import request,parse

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

#获取token

def get_token():

client_id =API Key

client_secret =Secret Key

host = ‘https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s‘%(client_id,client_secret)

req = request.Request(host)

req.add_header(‘Content-Type‘, ‘application/json; charset=UTF-8‘)

response = request.urlopen(req)

#获得请求结果

content = response.read()

#结果转化为字符

content = bytes.decode(content)

#转化为字典

content = eval(content[:-1])

return content[‘access_token‘]

#转换图片

#读取文件内容,转换为base64编码

#二进制方式打开图文件

def imgdata(file1path,file2path):

import base64

f=open(r‘%s‘ % file1path,‘rb‘)

pic1=base64.b64encode(f.read())

f.close()

f=open(r‘%s‘ % file2path,‘rb‘)

pic2=base64.b64encode(f.read())

f.close()

#将图片信息格式化为可提交信息,这里需要注意str参数设置

params = {"images":str(pic1,‘utf-8‘) + ‘,‘ + str(pic2,‘utf-8‘)}

return params

#提交进行对比获得结果

def img(file1path,file2path):

token = get_token()

#人脸识别API

#url = ‘https://aip.baidubce.com/rest/2.0/face/v2/detect?access_token=‘+token

#人脸对比API

url = ‘https://aip.baidubce.com/rest/2.0/face/v2/match?access_token=‘+token

params = imgdata(file1path,file2path)

#urlencode处理需提交的数据

data = parse.urlencode(params).encode(‘utf-8‘)

req = request.Request(url,data=data)

req.add_header(‘Content-Type‘, ‘application/x-www-form-urlencoded‘)

response = request.urlopen(req)

content = response.read()

content = bytes.decode(content)

content = eval(content)

print(content)

#获得分数

score = content[‘result‘][0][‘score‘]

if score>80:

return ‘照片相似度:‘+str(score)+‘,同一个人‘

else:

return ‘照片相似度:‘+str(score)+‘,不是同一个人‘

if __name__ == ‘__main__‘:

file1path = ‘d:/ym1.jpg‘

file2path = ‘d:/ym2.jpg‘

res = img(file1path,file2path)

print(res)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值