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

KS

Knowledge Sharing

知识分享

现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。

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

  • 获取接口权限
  • 准备接口调用工具
  • 进行接口调用,全部流程走通只需要十分钟时间。

获取接口权限

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

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

地址:

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

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

2、创建人脸识别应用

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

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

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

3、获取秘钥

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

获取调用接口所需的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的主界面。

4、 进行调用接口

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

输入请求地址

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

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

修改请求头(header)

Key栏输入:Content-Type

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

输入请求参数(body)

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

  • image_type=BASE64
  • image=图片的base64转码后的结果(此处要使用即将注册到人脸库的人脸图片),转码工具:https://tool.css-js.com/base64.html(注意:在base64转码工具中,要取消默认选项“包含头”)
  • group_id=gropu001(可自定义:由数字、字母、下划线组成)
  • user_id=0001(可自定义:由数字、字母、下划线组成)

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

开始请求

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

验证调用结果

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

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

原文发布于微信公众号 - 互扯程序(chat_routine)

原文发表时间:2018-06-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大闲人柴毛毛

Java基础笔记——学习Java前的准备

        接下来的一个月我会和大家分享我学JavaSE时候的笔记,分享是最好的老师,希望我的笔记能给大家一些帮助。 我会每天发一篇文章,这些都是我学Jav...

3579
来自专栏极客猴

pustil - 获取系统信息库

运维工程师经常使用 Python 编写脚本程序来做监控系统运行的状态。如果自己手动使用 Python 的标准库执行系统命令来获取信息,会显得非常麻烦。既要兼容不...

1321
来自专栏Java后端技术栈

分布式锁简单入门以及三种实现方式介绍

很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多...

1001
来自专栏编程

tornado全面剖析与实践系列1

猿助猿的技术栈是基于Tornado的, 在学习的过程中参考了很多文章, 但是内容大都碎片化, 缺少系统性讲解, 而且不少关于异步应用的内容还是基于过时的旧版本....

3089
来自专栏思考的代码世界

Python网络数据采集之使用API|第03天

百度百科关于API的解释:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序...

5057
来自专栏Danny的专栏

VMware10下安装CentOS 6.5+基本网络配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1063
来自专栏GreenLeaves

Asp.Net Cache缓存技术学习

本文参考自Fish Li的细说 ASP.NET Cache 及其高级用法 一、前言,相信大多数做网站开发的都知道缓存技术对于网站的重要性,它对于网站的性能优化...

2098
来自专栏智能计算时代

Envoy架构概览(6):异常检测

异常值检测和弹出是动态确定上游群集中的某些主机是否正在执行不同于其他主机的过程,并将其从正常负载平衡集中移除。 性能可能沿着不同的轴线,例如连续的故障,时间成功...

3836
来自专栏Python

IO模型

一 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步:   所谓同...

1985
来自专栏哲学驱动设计

性能优化总结(六):预加载、聚合SQL应用实例

    前面已经把原理都讲了一遍,这篇主要是给出一个应用的实例。该实例取自GIX4,比较复杂。 领域模型:     领域模型间的关系,如下: ? 右边模型链的具...

3565

扫码关注云+社区

领取腾讯云代金券