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完成人脸识别,检测人种-年龄-性别-颜值-眼镜相关推荐

  1. 树莓派+百度api实现人脸识别

    title: 树莓派+百度api实现人脸识别 tags: 树莓派 date: 2018-5-31 20:06:00 --- 树莓派对接百度api 我以前玩安卓的时候一直用的讯飞的平台和api,对于百度 ...

  2. Python调用百度API进行人脸对比

    目录 1. 作者介绍 2. 关于Base64知识介绍 2.1 Bsae64是什么 2.1 Bsae64编码原理 3. 实验过程 3.1 实验过程 3.2 实验代码 3.3 运行结果 3.4 问题分析 ...

  3. Python调用百度API进行身份证识别

    目录 1.作者介绍 2.基于百度API的身份证识别 2.1 百度ORC接口简介 2.2 算法介绍 2.2.1图像预处理 2.2.2身份证图像粗定位 2.2.3细定位各种信息和分割 2.2.4识别信息 ...

  4. C#窗口调用百度云实现人脸识别。(注意代码中添加的控件以及部分传值给函数,亲测百分百可用。)

    调用的dll库文件 代码模块 首先是连接开启电脑摄像头,拍照后保存照片到本地. 然后是调用百度云: 1.获取百度云access_token与百度云连接: 2.建立控制太应用:人脸识别: 3.人脸库的人 ...

  5. 调用百度API实现人脸对比

    百度API人脸对比 1.首先注册一个百度账号 2.百度AI平台https://ai.baidu.com/,找到 开放能力>人脸与人体检测>人脸对比>立即使用>创建应用 ,点击 ...

  6. Python实例之调用百度API实现车牌识别

    目录 1.作者介绍 2.车牌识别API介绍 3.实现过程 3.1 调用API 3.2 代码 参考 1.作者介绍 王世豪,男,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组. 研究 ...

  7. win10+python3.6+百度AI——实现人脸识别

    一.说明 近来半个月的时间沉迷于python不能自拔,不是初学,而是好久没有写程序了.在此记录pycharm建立Django项目基于百度AI实现的人脸检测.该项目参考了知乎的一篇文章,详情点击这里,原 ...

  8. 调用百度接口实现人脸识别

    首先去百度ai开通人脸对比接口应用才有接下来的故事 地址:https://ai.baidu.com/tech/face/compare 1.导入人脸对比SDK,我使用maven自动下载,不嫌麻烦可以下 ...

  9. 基于javaweb调用百度接口实现人脸识别登陆功能

    百度开放平台有很多新鲜的玩法,有人脸识别,文字识别,图像识别,,,各种各样的接口,忍不住注册了一个玩玩. 注册一个百度开发者账号,然后就可以'折腾'了~ 拿人脸识别作为例子,可以先注册个人脸识别程序体 ...

最新文章

  1. weblogic oracle连接池配置文件,关于WebLogic 访问Oracle 数据库(建立连接池)问题...
  2. c语言 链表 删除节点,C语言实现单链表节点的删除(不带头结点)
  3. Cloud for Customer客户主数据重复检查duplicate check的前台实现
  4. switch语句可以被代替吗_爬楼梯可以代替跑步吗?
  5. python多线程基本操作
  6. javascript 滚动+停留 代码
  7. linux mysql c语言 api_linux连接MySQL数据库(C语言 API 分析,动态插入修改数据)
  8. linuxsz隐藏文件_linux中rz上传、sz下载命令详解
  9. Input禁用文本框
  10. securiteCRT中退出全屏
  11. SHOP++ JTM2.5发布
  12. 猿创征文 | 2022 我的开发者工具
  13. java利用poi为excel添加图片水印
  14. vs2017安装qt插件及安装qt插件后的设置
  15. ubuntu重装显卡驱动全过程!所有选项的选择!
  16. 苹果公司发布iPhone 5s和iPhone 5c
  17. 特斯拉中国召回近5万辆Model S和X,美国法务:中国驾驶员使用不当-1
  18. 苹果手机连接电脑服务器传文件,还在羡慕苹果电脑隔空操作?windows的这个骚操作,3秒即可传文件...
  19. matlab网孔电流法,网孔电流法解题方法
  20. 计算机的正确配置文件,显示器颜色配置文件在win10电脑中设置正确配置的方法...

热门文章

  1. 互联网的十条常见盈利模式
  2. php源码克隆,SiteCloner站点复制克隆PHP源码下载
  3. Windows环境下Composer的安装和使用说明,从零开始熟悉安装composer,不会者、不常用者和遗忘者的幸福
  4. Socket(套接字)详解 画图+实例
  5. 【5G MAC】随机接入流程中的 Msg2 (RAR)
  6. PCA主成分分析实现方法Matlab
  7. 如何在Linux上安装Node.js
  8. 深度解读:美国自动驾驶技术及测试示范区现状
  9. Servlet入门总结及第一个Servlet程序
  10. 代码块(局部代码块、构造代码块、静态代码块)