手把手教你调用百度人脸识别API

 

在百度AI开放平台使用百度的人脸识别能力,只需要三个核心步骤即可操作完成:

  • 获取接口权限

  • 准备接口调用工具

  • 进行接口调用,全部流程走通只需要十分钟时间。

 

获取接口权限

 

获取接口权限是调用接口的前提,主要分为以下几步:

 

1、进入百度云的人脸识别控制台

 

地址:

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

 

若没有百度账号,可以用手机号快速注册一个。

 

2、创建人脸识别应用

 

账号登录成功,您需要创建应用才可正式调用AI能力。应用是您调用API服务的基本操作单元,您可以基于应用创建成功后获取的API Key及Secret Key,进行接口调用操作,及相关配置。

 

640?wx_fmt=png

 

创建应用,填写【应用名称】和【应用描述】,即可创建应用(其他选项可以不做操作,使用默认值即可)

 

640?wx_fmt=png

 

创建完成后,点击“返回应用列表”进行下一步操作。

 

640?wx_fmt=png

 

3、获取秘钥

 

在您创建完毕应用后,平台将会分配给您此应用的相关凭证:API Key、Secret Key。使用秘钥将可以在下一步中获取调用接口所需的Access Token。

 

640?wx_fmt=png

 

获取调用接口所需的Access Token

 

人脸识别在线接口主要针对HTTP API调用者,,调用API时必须在URL中带上accesss_token参数,获取Access Token的流程如下:

 

A、如果您使用的是mac电脑可以将此示例代码复制到“终端”上直接获取token。示例代码如下:

 

#!/bin/bash curl -i -k'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【API Key】&client_secret=【Seceret Key】

 

B、非Mac电脑操作流程如下,参考文档:http://ai.baidu.com/docs#/Auth/top

 

获取Access Token

 

请求URL数据格式

 

向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:

 

  • grant_type: 必须参数,固定为client_credentials;

  • client_id: 必须参数,应用的API Key;

  • client_secret: 必须参数,应用的Secret Key;

 

例如:

 

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHlA4Fq5eR3LT0vuXV4&client_secret=0rDSjzQ20XUj5itV6WRtznPQSzr5pVw2&

 

服务器返回的JSON文本参数如下:

 

  • access_token: 要获取的Access Token;

  • expires_in: Access Token的有效期(秒为单位,一般为1个月);

  • 其他参数忽略,暂时不用;

 

例如:

 

{
    "refresh_token""25.b55fe1d287227ca97aab219bb249b8ab.315360000.1798284651.282335-8574074",
    "expires_in"2592000,
    "scope""public wise_adapt",
    "session_key""9mzdDZXu3dENdFZQurfg0Vz8slgSgvvOAUebNFzyzcpQ5EnbxbF+hfG9DQkpUVQdh4p6HbQcAiz5RmuBAja1JJGgIdJI",
    "access_token""24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.282335-8574074",
    "session_secret""dfac94a3489fe9fca7c3221cbf7525ff"
}

 

若请求错误,服务器将返回的JSON文本包含以下参数:

 

  • error: 错误码;关于错误码的详细信息请参考下方鉴权认证错误码。

  • error_description: 错误描述信息,帮助理解和解决发生的错误。

     

     

 

例如认证失败返回:

 

{
    "error""invalid_client",
    "error_description""unknown client id"
}

 

保存获取到的Access Token,在调用接口时会用到。

 

2、  准备接口调用工具

 

Postman是一个比较给力的Http请求模拟工具,可以快速进行接口调用。

 

没有安装的小伙伴可以?下方 嘿 顺便把它还学了一遍

程序员必备工具:PostMan

安装结束后进入主界面

如下图,这就是Postman的主界面。

image

 

4、 进行调用接口

在postman上可以快速进行接口请求,调用人脸识别接口需要输入正确的接口地址,提前准备人脸图片,具体如下:

输入请求地址

可直接复制的请求地址:“https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=【在第一步中获取的access-token】”

注:需要将请求格式切换为“Post”

image

 

修改请求头(header)

Key栏输入:Content-Type

Value栏输入:application/x-www-form-urlencoded

image

 

输入请求参数(body)

先选择“x-www-form-urlencoded”,然后参考下图输入参数:

  • image_type=BASE64

  • image=图片的base64转码后的结果(此处要使用即将注册到人脸库的人脸图片),转码工具:https://tool.css-js.com/base64.html(注意:在base64转码工具中,要取消默认选项“包含头”)

  • group_id=gropu001(可自定义:由数字、字母、下划线组成)

  • user_id=0001(可自定义:由数字、字母、下划线组成)

image

 

注意:在base64转码工具中,要取消默认选项“包含头”

image

 

开始请求

点击右上角的“send”,即可请求成功。

image

 

验证调用结果

进入百度云后台的人脸库可视化管理界面,点击人脸库名称并逐级进入到人脸维度,即可看到注册成功的人脸图片(注:调用在线API接口添加用户后,会延迟几分钟再展示到此页面,如果没更新,请勿着急)

image

 

以上就是人脸识别api的调用啦 其实大多数的api调用都是大同小异 多琢磨琢磨都没问题的!

推荐阅读

技术:jenkins和docker实现自动化构建部署

技术:设计图都不会画,还想做”架构师“?

技术:玩转linux 这些命令就够了

技术:Kafka、RabbitMQ、RocketMQ等消息中间件的对比

技术:玩转linux 这些命令就够了

技术:30分钟如何学会使用Shiro

工具:如何通过技术手段 “干掉” 视频APP里讨厌广告?

工具:通过技术手段 “干掉” 视频APP里讨厌的广告之(腾讯视频)

博主11年java开发经验,现从事智能语音工作的研发,关注微信公众号与博主进行技术交流!更过干货资源等你来拿!

image

 

image

 

  • 8
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
人脸识别是一种非常实用的技术,可以广泛应用于安防、门禁、签到等领域。在Python中,我们可以使用OpenCV库来实现人脸识别。 以下是一个简单的手把手程,帮助您使用Python和OpenCV实现人脸识别: 1. 安装OpenCV库 在命令行中输入以下命令来安装OpenCV库: ``` pip install opencv-python ``` 2. 收集人脸数据 首先,我们需要收集一些人脸数据,用于训练我们的人脸识别模型。可以使用OpenCV中内置的`cv2.face.createFisherFaceRecognizer()`方法来训练模型。以下是一个收集人脸数据的代码示例: ```python import cv2 import os # 创建一个人脸识别器 recognizer = cv2.face.createFisherFaceRecognizer() # 收集人脸数据 def collect_faces(): # 从摄像头中捕捉图像 camera = cv2.VideoCapture(0) # 循环收集人脸数据 count = 0 while True: # 读取一帧图像 ret, image = camera.read() # 转换为灰度图像 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 检测人脸 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5) # 在图像中标记人脸 for (x, y, w, h) in faces: cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2) # 保存人脸数据 count += 1 cv2.imwrite("image%d.jpg" % count, gray[y:y+h,x:x+w]) # 显示图像 cv2.imshow("Collecting Faces", image) # 按下ESC键退出 if cv2.waitKey(1) == 27: break # 清理资源 camera.release() cv2.destroyAllWindows() # 训练人脸识别模型 def train_model(): # 加载人脸数据 images = [] labels = [] for filename in os.listdir("."): if filename.startswith("image"): label = int(filename.split(".")[0].replace("image", "")) image = cv2.imread(filename, cv2.IMREAD_GRAYSCALE) images.append(image) labels.append(label) # 训练人脸识别器 recognizer.train(images, np.array(labels)) # 收集人脸数据 collect_faces() # 训练人脸识别模型 train_model() ``` 3. 进行人脸识别 现在,我们已经训练好了一个人脸识别模型,可以使用它来进行人脸识别了。以下是一个简单的人脸识别代码示例: ```python import cv2 # 加载人脸识别器 recognizer = cv2.face.createFisherFaceRecognizer() recognizer.load("model.xml") # 进行人脸识别 def recognize_face(): # 从摄像头中捕捉图像 camera = cv2.VideoCapture(0) # 循环进行人脸识别 while True: # 读取一帧图像 ret, image = camera.read() # 转换为灰度图像 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 检测人脸 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5) # 对每个人脸进行识别 for (x, y, w, h) in faces: # 标记人脸 cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2) # 进行人脸识别 label, confidence = recognizer.predict(gray[y:y+h,x:x+w]) print("Label: %d, Confidence: %.2f" % (label, confidence)) # 显示图像 cv2.imshow("Recognizing Faces", image) # 按下ESC键退出 if cv2.waitKey(1) == 27: break # 清理资源 camera.release() cv2.destroyAllWindows() # 进行人脸识别 recognize_face() ``` 以上代码示例仅仅只是一个简单的例子,实际应用中还需要进行更多的优化和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值