You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.1 KiB

6 months ago
#coding:utf-8
__author__ = "ila"
import urllib.request, json
import base64
import urllib.parse
class BaiDuBce(object):
def get_alitoken(self,client_id, client_secret):
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret + ''
request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
content = response.read()
access_token = 'err'
if (content):
# print(content)
access_token = json.loads(content.decode('utf-8'))['access_token']
# print(access_token)
return access_token
def open_pic2base64(self,image):
f = open(image, 'rb')
img = base64.b64encode(f.read()).decode('utf-8')
return img
def bd_check2pic(self,client_id, client_secret, image1, image2):
request_url = "https://aip.baidubce.com/rest/2.0/face/v3/match"
params = json.dumps(
[{"image": self.open_pic2base64(image1), "image_type": "BASE64", "face_type": "LIVE", "quality_control": "LOW"},
{"image": self.open_pic2base64(image2), "image_type": "BASE64", "face_type": "LIVE", "quality_control": "LOW"}])
access_token = self.get_alitoken(client_id, client_secret)
request_url = request_url + "?access_token=" + access_token
params = params.encode("utf-8")
req = urllib.request.Request(url=request_url, data=params)
req.add_header('Content-Type', 'application/json')
res = urllib.request.urlopen(req)
content = res.read()
score = 0
if content:
score = json.loads(content.decode('utf-8'))['result']['score']
print(score)
return score
if __name__=='__main__':
client_id = 'x20xOjtOsAtbQhm2WBuifuQw' # ak
client_secret = 'O7yMp2dmOnCtQtBokUt1gN6hgFCcLLcp' # sk
# 本地图片地址,根据自己的图片进行修改
image1 = 'nude1.jpg'
image2 = 'nude2.jpg'
bdb=BaiDuBce()
bdb.bd_check2pic(client_id, client_secret, image1, image2)