这里,记录一下百度人脸识别在线API的调用,语言是python2.7,供大家一起学习参考

本教程目录如下

1.申请百度人脸识别应用

2.获取token

3.图片的base64编码

4.人脸识别

5.结果绘制与可视化

6.实现的完整源代码


1.申请百度人脸识别应用

首先需要在百度智能云平台登录

https://console.bce.baidu.com/ai/?_=1558444274128&fromai=1#/ai/face/overview/index

登陆后创建应用,创建的应用是人脸识别的,默认已帮你勾选上了相关功能。

创建应用后,点击管理应用,你就可以获取API Key和Secret Key

2.获取token

现在就可以编写代码调用在线的人脸检测API了

首先是获取token,用于校验,代码如下,注意换成自己申请的API Key和Secret Key

def getToken():global token# client_id 为官网获取的AK, client_secret 为官网获取的SKhost = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的API Key&client_secret=你的Secret Key'request = urllib2.Request(host)request.add_header('Content-Type', 'application/json; charset=UTF-8')response = urllib2.urlopen(request)content = response.read()if (content):token=json.loads(content)['access_token']

3.图片的base64编码

上传的用于检测的图片需经过Base64编码。需要注意的是,图片的base64编码是不包含图片头的,代码如下:

def imgToBase64(imgPath):with open(imgPath, "rb") as f:  # 转为二进制格式base64_data = base64.b64encode(f.read())  # 使用base64进行加密return base64_data

4.人脸识别

最后就是调用接口进行人脸识别了

def faceDetect(imgBase64):'''人脸检测与属性分析'''request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"request_url = request_url + "?access_token=" + tokenrequest = urllib2.Request(request_url)request.add_header('Content-Type', 'application/json')data = {"image": imgBase64, "image_type": "BASE64","face_field":"age,beauty,expression,face_shape,gender"}response = urllib2.urlopen(request, urllib.urlencode(data))content = response.read()if content:return content

这个函数中输入的是图片的base64编码,请求的参数中比较重要的是那个face_field,默认只返回人脸框的位置、概率和旋转角度,age(年龄预测),beauty(颜值打分),expression(表情)等更多属性,需要在这个参数中添加,具体的请参考官方说明文档:http://ai.baidu.com/docs#/Face-Detect-V3/top

5.结果绘制与可视化

人脸识别最后返回的是json数据,但我们往往需要画个框框,把人脸框出来,同时把一些预测的属性也标注上,这个代码我已经附在最后面了。

最终实现的效果如下:

6.实现的完整源代码

下面我附上实现这些功能的完整代码:

#coding:utf-8
import urllib,urllib2, sys
import ssl
import json
import base64
import cv2
global tokendef getToken():global token# client_id 为官网获取的AK, client_secret 为官网获取的SKhost = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的API Key&client_secret=你的Secret Key'request = urllib2.Request(host)request.add_header('Content-Type', 'application/json; charset=UTF-8')response = urllib2.urlopen(request)content = response.read()if (content):token=json.loads(content)['access_token']def faceDetect(imgBase64):'''人脸检测与属性分析'''request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"request_url = request_url + "?access_token=" + tokenrequest = urllib2.Request(request_url)request.add_header('Content-Type', 'application/json')data = {"image": imgBase64, "image_type": "BASE64","face_field":"age,beauty,expression,face_shape,gender"}response = urllib2.urlopen(request, urllib.urlencode(data))content = response.read()if content:return contentdef imgToBase64(imgPath):with open(imgPath, "rb") as f:  # 转为二进制格式base64_data = base64.b64encode(f.read())  # 使用base64进行加密return base64_dataif __name__=="__main__":getToken()imgPath=r"C:\Users\lee\Pictures\lena.jpg"result=json.loads(faceDetect(imgToBase64(imgPath)))['result']face_list=result['face_list'][0]location=face_list['location']age=face_list['age']beauty=face_list['beauty']expression=face_list['expression']['type']gender=face_list['gender']['type']img = cv2.imread(imgPath, cv2.IMREAD_COLOR)leftTopX=int(location['left'])leftTopY=int(location['top'])rightBottomX=int(leftTopX+int(location['width']))rightBottomY = int(leftTopY + int(location['height']))cv2.rectangle(img, (leftTopX, leftTopY), (rightBottomX, rightBottomY), (0, 255, 0), 2)font = cv2.FONT_HERSHEY_SIMPLEX# 第一个坐标表示起始位置cv2.putText(img,"age:"+str(age),(0, 20),font, 0.5, (200, 255, 255), 1)cv2.putText(img, "gender:" + gender.encode("utf-8"), (0, 40), font, 0.5, (200, 255, 255), 1)cv2.putText(img, "beauty:" + str(beauty), (0, 60), font, 0.5, (200, 255, 255), 1)cv2.putText(img, "expression:" + str(expression), (0, 80), font, 0.5, (200, 255, 255), 1)cv2.imshow('image', img)cv2.waitKey(0)print("end")

百度在线人脸识别API简单实现教程相关推荐

  1. 百度在线人脸识别API简单实现

    基于 Python2.7 ,百度人脸识别在线API的调用 1.申请百度人脸识别应用 首先需要在百度智能云平台登录,登陆后创建应用,创建的应用是人脸识别的,默认已帮你勾选上了相关功能. 创建应用后,点击 ...

  2. 百度在线人脸识别API调用教程

    目录 API调用 第一步 获取access token 第二步 访问API 最后 API调用 百度API调用主要是分为两步 第一步:通过AK和SK获取 access token 第二步:使用夹带acc ...

  3. python随机图片api_Python丨调用百度的人脸识别api给你的颜值打个分

    原标题:Python丨调用百度的人脸识别api给你的颜值打个分 需要用到的工具 百度的人脸识别api Flask PIL requests 本人对于Python学习创建了一个小小的学习圈子,为各位提供 ...

  4. 百度在线人脸识别技术性能测试

    1,百度在线人脸识别技术文档 https://cloud.baidu.com/doc/FACE/Face-Search.html#.E8.AF.B7.E6.B1.82.E8.AF.B4.E6.98.8 ...

  5. 基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别)

    基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别) 资源: download.csdn.net/download/weixin_53403301/43644312 ...

  6. 基于百度云人脸识别API与opencv的人脸识别系统

    基于百度云人脸识别API与opencv的人脸识别系统 简介 弄这个东西是因为参加了学校的项目,第一次开发做的不是很好. 本系统是基于百度云人脸识别API.opencv级联器.PYQT5进行开发.百度云 ...

  7. 百度AI——人脸识别的简单应用

    因为工作上的需要,最近接触到百度的AI开放平台,应用到了它上面的人脸对比功能.因为百度AI的接口开放的时间不久,使用的人不是很多,这里就百度给的API及其应用做个简单的介绍.百度的说明文档,可以在这里 ...

  8. python人脸识别代码百度ai_python百度AI人脸识别API测试

    1.注册账号 2.创建应用 3.得到AK和SK 4.用AK SK获取access_token 可用下面的代码: #!/usr/bin/python3.5 # encoding:utf-8 import ...

  9. 百度人脸识别API调用实现

    目录 一. 准备工作 A. 应用创建 1. 百度用户创建登录 2. 进入人脸识别服务 3. 应用创建 4.应用查看 B. 开发准备 1. 工具类下载 2. maven依赖注入 二. 调用实现 A. 看 ...

最新文章

  1. 深度学习的数学 (5)偏导数
  2. JavaScript实现快速傅立叶变换FFT算法(附完整源码)
  3. Android之6.0上的重要变化(二)
  4. CF993E Nikita and Order Statistics
  5. window.print 点击取消后再次打印无效_教程 | 图书馆自助复印打印机使用方法
  6. Linux字体最好看的发行版,如何给任意一款 Linux 发行版添加漂亮的字体
  7. 《深度学习Python实践》第20章——回归项目实例
  8. package.json 封装 vue模块_Vue管理系统前端~相关工具引入及封装
  9. 2021接力题典1800【数学一】-汤家凤【题目册】
  10. WinForm中 SplitContainer的使用
  11. 微软推出 Go 语言免费中文教程,真香!
  12. Nginx(九):Nginx网页压缩技术
  13. Java实现电子表格的创建
  14. 防止用户将表单重复提交的方法汇总
  15. 【论文解读】R-CNN 深入浅出理解目标检测开山之作
  16. 什么是数据探针_什么是数据?
  17. 胎儿面部超声切面识别
  18. 怎么选择合适的灯杆智能网关
  19. OSG三维渲染引擎编程学习(全系列开展OSG学习)
  20. 八爪鱼_数据采集器学习流程

热门文章

  1. 达梦数据库dblink
  2. Android手机 全面屏(18:9屏幕)
  3. 如何运营一个B2B2C电商网站
  4. Move 和 SimpleMove
  5. java lucene 开发介绍
  6. php相关分享会主题,主题分享会精选.ppt
  7. 网页动态背景——随鼠标变换的动态线条
  8. vue + echarts 漏斗图 实现里面数据 外面标签 漏斗不随值改变而变形
  9. TDL3 Source Code
  10. Python 打造专属照片墙