百度人脸识别服务

简介: 百度开放云中提供了一项人脸识别服务,依托百度业界领先的人脸识别算法,提供了人脸检测、五官定位、人脸属性检测等功能。

百度开放云中提供了一项人脸识别服务,依托百度业界领先的人脸识别算法,提供了人脸检测、五官定位、人脸属性检测等功能。


功能

提供人脸及五官几何位置定位

image.png

支持人脸图像的性别、表情等人脸属性分析功能

image.png

支持REST API方式调用

支持常用图片格式,能应对复杂的光照场景,并支持多种人脸姿态

提供了ANDROID、iOS、WP7、JAVA及PHP多种平台的SDK

服务控制台支持详细的服务统计查询及服务使用频次管理


典型案例

  • 百度云网盘
  • 百度相册
  • 百度魔拍
  • 百度内部移动办公应用
  • 有缘网


API

开启服务

使用人脸服务前,首先需要开启服务。通过开发者中心“管理控制台”,进入“我的应用列表”,创建应用。填写信息,创建成功后,点击左侧“媒体云”开启媒体云人脸识别服务。


获取 access_token

  • 访问百度开发者中心使用百度账号登录
  • 从管理中心进入相应应用得到 API Key(client_id)和 Secret Key(client_secret)。
  • 采用Client Credentials方式,获取Access Token,具体步骤见下。

在服务端发送请求(推荐用POST方法)到百度OAuth2.0授权服务的“https://openapi.baidu.com/oauth/2.0/token”地址上,并带上以下参数:

  • grant_type:必须参数,固定为“client_credentials”;
  • client_id:必须参数,应用的API Key;
  • client_secret:必须参数,应用的Secret Key;
  • scope:非必须参数。以空格分隔的权限列表,采用本方式获取Access Token时只能申请跟用户数据无关的数据访问权限。关于权限的具体信息请参考“权限列表”

例如:

https://openapi.baidu.com/oauth/2.0/token?

   grant_type=client_credentials&

   client_id=Va5yQRHlA4Fq4eR3LT0vuXV4&

   client_secret= 0rDSjzQ20XUj5itV7WRtznPQSzr5pVw2&

若参数无误,服务器将返回一段JSON文本,包含以下参数:

  • access_token:要获取的Access Token;
  • expires_in:Access Token的有效期,以秒为单位;
  • refresh_token:用于刷新Access Token 的 Refresh Token,所有应用都会返回该参数;(10年的有效期)
  • scope:Access Token最终的访问范围,即用户实际授予的权限列表(用户在授权页面时,有可能会取消掉某些请求的权限),关于权限的具体信息参考“权限列表”一节;
  • session_key:基于http调用Open API时所需要的Session Key,其有效期与Access Token一致;
  • session_secret:基于http调用Open API时计算参数签名用的签名密钥。

例如:

HTTP/1.1200 OK

Content-Type: application/json

Cache-Control: no-store

{

   "access_token":"1.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328",

   "expires_in":86400,

   "refresh_token":"2.385d55f8615fdfd9edb7c4b5ebdc3e39.604800.1293440400-2346678-124328",

   "scope":"public",

   "session_key":"ANXxSNjwQDugf8615OnqeikRMu2bKaXCdlLxn",

   "session_secret":"248APxvxjCZ0VEC43EYrvxqaK4oZExMB",

}

若请求错误,服务器将返回一段JSON文本,包含error(错误码)和 error_description (错误描述信息),例如:

HTTP/1.1400 Bad Request

Content-Type: application/json

Cache-Control: no-store

{

   "error":"invalid_grant",

   "error_description":"Invalid authorization code: ANXxSNjwQDugOnqeikRMu2bKaXCdlLxn"

}

注意:

  • 默认情况下,Access Token的有效期为一个月,如果Access Token过期可以重新获取。
  • 获取Access Token时所返回的session_key和session_secret参数不是OAuth2.0协议标准规定的返回参数,而是百度OAuth2.0服务扩展加入的,目的是使得开发者可以基于http调用百度的Open API,因为基于https调用Open API虽然更为简单,但毕竟响应速度更差(比基于http的要差一倍时间左右)。


API 请求方式

  • 目前人脸检测接口支持 POST 和 GET 方式。
  • 媒体云人脸识别 REST API 的所有参数在传入时应当使用:UTF-8 编码。

URL 格式:

https://openapi.baidu.com/rest/2.0/media/v1/face/{request_type}?{query_string}

其中:

  • request_type 为操作方法,detect为人脸检测。

示例:

GET请求:

https://openapi.baidu.com/rest/2.0/media/v1/face/detect?access_token=urlencode(xxxxx)&url =urlencode(xxxxxx)

POST请求:

POST /rest/2.0/media/v1/face

User-Agent: curl/7.12.1 (x86_64-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2

libidn/0.5.6

Pragma: no-cache

Accept: */*

Host:openapi.baidu.com

Content-Type:application/x-www-form-urlencoded

Content-Length:123

access_token =urlencode(xxxx)&url =urlencode(xxxx)

人脸检测 API

请求:GET/POST

URL: https://openapi.baidu.com/rest/2.0/media/api/v1/face/detect

参数:

  • access_token
  • url:图片地址(需要使用 urlencode)
  • callback_url:(可选)离线请求回调地址

请求示例:

curl -v "https://openapi.baidu.com/rest/2.0/media/v1/face/detect?access_token=3.ad2ee1e9b351cd800fd62bddc8bef016.2592000.1377163536.4212382003-260146&url=http://c.hiphotos.bdimg.com/album/s%3D800/sign=6bd70c1da044ad342abf8a87e0a00c08/8d5494eef01f3a29d7017b3e9825bc315d607c71.jp"

返回示例:

{

"face": //在原图片中检测到的人脸数组

[{

"attribute"{

 "gender": { //检测到的人脸的性别

   "value": "male"//人脸性别结果

   "confidence": "1.0", //性别的置信度

 },

 "smiling ": { //检测到的笑脸

   "confidence":”1.0//笑脸的置信度

 },

},

"face_id": "ffffff32c1f3813f0944f52427ed060b", //检测到的人脸的 id

"position": { //检测到的人脸的位置,坐标均进行了归一化,值在 0~1 之间

 "center": {

   "x": "0.591000", //人脸区域中心 x 坐标,

   "y": "0.267000"}, //人脸区域中心 y 坐标

 "width": "0.181290", //人脸区域宽度

 `height": "0.120600", //人脸区域高度

 "eye_left": {

   "x": "0.556230",//左眼 x 坐标

   "y": "0.230250"//左眼 y 坐标

 },

 "eye_right": {

   "x": "0.638620",//右眼 x 坐标

   "y": "0.244190", //右眼 y 坐标

 },

 "mouth": {

 ` "x":”0.574910”,//嘴巴中心 x 坐标

   "y":” 0.301350”,//嘴巴中心 y 坐标

 },

}

}],

"img_id": "966f0f32c1f3813f0944f52427ed060b", //图片 id

"url": ""//请求中的图片 url

"session_id":  "966f0f32c1f3813f0944f52427jjjkkk"//唯一标识请求

"img_width": "320"//图片宽度

"img_height": "240"//图片高度

}

附言

除了百度提供的人脸识别服务之外,国内还有其他人脸识别服务提供商,其中 Face++的技术非常先进,值得一看。

百度深度学习研究院目前招聘人脸方向的工程师,包括人脸算法工程师、物体检测算法工程师、多媒体高级研发工程师、计算机视觉研发工程师、大规模机器学习工程师、算法研发工程师、图像方向高级测试开发工程师等,地点在北京和深圳。如果你热爱计算机视觉技术,并且在视觉方向有深入理解或取得过突出成绩,请速投简历。


相关文章
|
3月前
|
Java Maven 计算机视觉
开发指南045-挂接百度人脸识别
平台集成了很多第三方功能,通过统一的封装模式进行封装,屏蔽了其技术细节
|
移动开发 前端开发 计算机视觉
百度人脸识别记录(3):H5 capture通过ajax上传
百度人脸识别记录(3):H5 capture通过ajax上传
86 0
|
8月前
|
Linux API 计算机视觉
DeepFace【部署 03】轻量级人脸识别和面部属性分析框架deepface在Linux环境下服务部署(conda虚拟环境+docker)
DeepFace【部署 03】轻量级人脸识别和面部属性分析框架deepface在Linux环境下服务部署(conda虚拟环境+docker)
283 0
|
8月前
|
人工智能 API 开发工具
【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)
【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)
388 0
|
前端开发 C# 开发工具
C# 30分钟完成百度人脸识别——进阶篇(文末附源码)(下)
C# 30分钟完成百度人脸识别——进阶篇(文末附源码)(下)
|
开发框架 .NET API
C# 30分钟完成百度人脸识别——进阶篇(文末附源码)(上)
C# 30分钟完成百度人脸识别——进阶篇(文末附源码)
|
API 开发工具 C#
C# 10分钟完成百度人脸识别——入门篇
C# 10分钟完成百度人脸识别——入门篇
|
数据采集 移动开发 前端开发
漏刻有时数据可视化大屏数据采集工具(2):百度人脸识别调用微信摄像头ajax上传识别的解决方案
漏刻有时数据可视化大屏数据采集工具(2):百度人脸识别调用微信摄像头ajax上传识别的解决方案
90 0
|
JSON PHP 计算机视觉
php百度人脸识别param[image_template] is null使用BASE64图片类型json_decode返回NULL的处理解决方案
php百度人脸识别param[image_template] is null使用BASE64图片类型json_decode返回NULL的处理解决方案
142 0
|
PHP 计算机视觉
php利用百度人脸识别实现人脸融合的解决方案(1)image_type为URL类型
php利用百度人脸识别实现人脸融合的解决方案(1)image_type为URL类型
112 0