python3调用百度API完成人脸识别,检测人种-年龄-性别-颜值-眼镜
https://ai.baidu.com/docs#/Face-Detect/top
这个是百度人脸识别api
参考博客:https://blog.csdn.net/qq_38412868/article/details/92394766
调用主要有三步:
- 获取access_token
- 将图片处理成base64编码格式
- post请求访问接口得到结果
1.获取access_token
官方给的python示例代码,不过这个是python2的代码,python3里已经没有了urllib2,而且很繁琐
给出博主自己编写的py3利用requests的demo:
def get_access_token(client_id, client_secret):# client_id 为官网获取的AK, client_secret 为官网获取的SK# 帮助文档# https://ai.baidu.com/docs#/Auth/top# 帮助文档中python代码基于python2,本文已经转换为python3x调试通过。host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secretheader = {'Content-Type': 'application/json; charset=UTF-8'}response1 = requests.post(url=host, headers=header) # <class 'requests.models.Response'>json1 = response1.json() # <class 'dict'>access_token = json1['access_token']return access_token
2.将图片处理成base64编码格式
流程大致是将图片读取为二进制格式,再利用二进制到base64格式的函数转换
打开文件夹,选择图片,自动记录图片目录
def open_pic2base64():# 本地图片地址,根据自己的图片进行修改# 打开本地图片,并转化为base64root = tkinter.Tk() # 创建一个Tkinter.Tk()实例root.withdraw() # 将Tkinter.Tk()实例隐藏file_path = tkinter.filedialog.askopenfilename(title=u'选择文件')f = open(file_path, 'rb')img = base64.b64encode(f.read()).decode('utf-8')return img
3.post请求访问接口得到结果
识别人脸,给出性别、年龄、人种、颜值分数、是否带眼镜等信息
def bd_rec_face(client_id, client_secret):# 识别人脸,给出性别、年龄、人种、颜值分数、是否带眼镜等信息# 帮助文档中python代码基于python2,本文已经转换为python3x调试通过。request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"params = {"image": open_pic2base64(), "image_type": "BASE64","face_field": "age,beauty,glasses,gender,race"}header = {'Content-Type': 'application/json'}access_token = get_access_token(client_id, client_secret) # '[调用鉴权接口获取的token]'request_url = request_url + "?access_token=" + access_tokenrequest_url = request_url + "?access_token=" + access_tokenresponse1 = requests.post(url=request_url, data=params, headers=header)json1 = response1.json()print("性别为", json1["result"]["face_list"][0]['gender']['type'])print("年龄为", json1["result"]["face_list"][0]['age'], '岁')print("人种为", json1["result"]["face_list"][0]['race']['type'])print("颜值评分为", json1["result"]["face_list"][0]['beauty'], '分/100分')print("是否带眼镜", json1["result"]["face_list"][0]['glasses']['type'])
完整代码:
# 调用百度API完成人脸识别
"""
Created on 2019-06-21
@author: DaDaBaoBaoRen
"""import requests
import base64
import tkinter.filedialogdef get_access_token(client_id, client_secret):# client_id 为官网获取的AK, client_secret 为官网获取的SK# 帮助文档# https://ai.baidu.com/docs#/Auth/top# 帮助文档中python代码基于python2,本文已经转换为python3x调试通过。host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secretheader = {'Content-Type': 'application/json; charset=UTF-8'}response1 = requests.post(url=host, headers=header) # <class 'requests.models.Response'>json1 = response1.json() # <class 'dict'>access_token = json1['access_token']return access_tokendef open_pic2base64():# 本地图片地址,根据自己的图片进行修改# 打开本地图片,并转化为base64root = tkinter.Tk() # 创建一个Tkinter.Tk()实例root.withdraw() # 将Tkinter.Tk()实例隐藏file_path = tkinter.filedialog.askopenfilename(title=u'选择文件')f = open(file_path, 'rb')img = base64.b64encode(f.read()).decode('utf-8')return imgdef bd_rec_face(client_id, client_secret):# 识别人脸,给出性别、年龄、人种、颜值分数、是否带眼镜等信息# 帮助文档中python代码基于python2,本文已经转换为python3x调试通过。request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"params = {"image": open_pic2base64(), "image_type": "BASE64","face_field": "age,beauty,glasses,gender,race"}header = {'Content-Type': 'application/json'}access_token = get_access_token(client_id, client_secret) # '[调用鉴权接口获取的token]'request_url = request_url + "?access_token=" + access_tokenrequest_url = request_url + "?access_token=" + access_tokenresponse1 = requests.post(url=request_url, data=params, headers=header)json1 = response1.json()print("性别为", json1["result"]["face_list"][0]['gender']['type'])print("年龄为", json1["result"]["face_list"][0]['age'], '岁')print("人种为", json1["result"]["face_list"][0]['race']['type'])print("颜值评分为", json1["result"]["face_list"][0]['beauty'], '分/100分')print("是否带眼镜", json1["result"]["face_list"][0]['glasses']['type'])if __name__ == '__main__':# 以下为代码功能测试:# 账户id,client_id 为官网获取的AK, client_secret 为官网获取的SK。# https://console.bce.baidu.com/ai/?fromai=1#/ai/face/app/listclient_id = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # akclient_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' # sk# 实例1:人脸识别bd_rec_face(client_id, client_secret)
实例图片-贾静雯
测试结果
python3调用百度API完成人脸识别,检测人种-年龄-性别-颜值-眼镜相关推荐
- 树莓派+百度api实现人脸识别
title: 树莓派+百度api实现人脸识别 tags: 树莓派 date: 2018-5-31 20:06:00 --- 树莓派对接百度api 我以前玩安卓的时候一直用的讯飞的平台和api,对于百度 ...
- Python调用百度API进行人脸对比
目录 1. 作者介绍 2. 关于Base64知识介绍 2.1 Bsae64是什么 2.1 Bsae64编码原理 3. 实验过程 3.1 实验过程 3.2 实验代码 3.3 运行结果 3.4 问题分析 ...
- Python调用百度API进行身份证识别
目录 1.作者介绍 2.基于百度API的身份证识别 2.1 百度ORC接口简介 2.2 算法介绍 2.2.1图像预处理 2.2.2身份证图像粗定位 2.2.3细定位各种信息和分割 2.2.4识别信息 ...
- C#窗口调用百度云实现人脸识别。(注意代码中添加的控件以及部分传值给函数,亲测百分百可用。)
调用的dll库文件 代码模块 首先是连接开启电脑摄像头,拍照后保存照片到本地. 然后是调用百度云: 1.获取百度云access_token与百度云连接: 2.建立控制太应用:人脸识别: 3.人脸库的人 ...
- 调用百度API实现人脸对比
百度API人脸对比 1.首先注册一个百度账号 2.百度AI平台https://ai.baidu.com/,找到 开放能力>人脸与人体检测>人脸对比>立即使用>创建应用 ,点击 ...
- Python实例之调用百度API实现车牌识别
目录 1.作者介绍 2.车牌识别API介绍 3.实现过程 3.1 调用API 3.2 代码 参考 1.作者介绍 王世豪,男,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组. 研究 ...
- win10+python3.6+百度AI——实现人脸识别
一.说明 近来半个月的时间沉迷于python不能自拔,不是初学,而是好久没有写程序了.在此记录pycharm建立Django项目基于百度AI实现的人脸检测.该项目参考了知乎的一篇文章,详情点击这里,原 ...
- 调用百度接口实现人脸识别
首先去百度ai开通人脸对比接口应用才有接下来的故事 地址:https://ai.baidu.com/tech/face/compare 1.导入人脸对比SDK,我使用maven自动下载,不嫌麻烦可以下 ...
- 基于javaweb调用百度接口实现人脸识别登陆功能
百度开放平台有很多新鲜的玩法,有人脸识别,文字识别,图像识别,,,各种各样的接口,忍不住注册了一个玩玩. 注册一个百度开发者账号,然后就可以'折腾'了~ 拿人脸识别作为例子,可以先注册个人脸识别程序体 ...
最新文章
- weblogic oracle连接池配置文件,关于WebLogic 访问Oracle 数据库(建立连接池)问题...
- c语言 链表 删除节点,C语言实现单链表节点的删除(不带头结点)
- Cloud for Customer客户主数据重复检查duplicate check的前台实现
- switch语句可以被代替吗_爬楼梯可以代替跑步吗?
- python多线程基本操作
- javascript 滚动+停留 代码
- linux mysql c语言 api_linux连接MySQL数据库(C语言 API 分析,动态插入修改数据)
- linuxsz隐藏文件_linux中rz上传、sz下载命令详解
- Input禁用文本框
- securiteCRT中退出全屏
- SHOP++ JTM2.5发布
- 猿创征文 | 2022 我的开发者工具
- java利用poi为excel添加图片水印
- vs2017安装qt插件及安装qt插件后的设置
- ubuntu重装显卡驱动全过程!所有选项的选择!
- 苹果公司发布iPhone 5s和iPhone 5c
- 特斯拉中国召回近5万辆Model S和X,美国法务:中国驾驶员使用不当-1
- 苹果手机连接电脑服务器传文件,还在羡慕苹果电脑隔空操作?windows的这个骚操作,3秒即可传文件...
- matlab网孔电流法,网孔电流法解题方法
- 计算机的正确配置文件,显示器颜色配置文件在win10电脑中设置正确配置的方法...