baiduFaceRec

来自于:开发者立即使用

getAuth detect match

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。

概述

baiduFaceRec模块封装了百度AI人脸识别功能,使用此模块可实现百度人脸检测(包括age,beauty,expression,faceshape,gender,glasses,landmark,race,quality,facetype信息)、人脸对比功能(比对两张图片中人脸的相似度,并返回相似度分值)。暂仅支持 android 平台。

使用说明:

  1. 1、首先要在百度AI开放平台注册账号;
  2. 2、创建应用,选择需要使用文字识别选项,然后获取API KeySecret Key,后面需要使用aksk进行百度身份验证;
  3. 3、具体操作可参考百度AI开发平台文档;
  4. 4、此模块是封装了百度人脸识别V3版本,在注册应用的时候注意版本选择;

获取access_token错误说明:

  1. 对应的是错误码、错误信息、解释(错误返回err.msg):
  2. error:错误码;关于错误码的详细信息请参考下方鉴权认证错误码。
  3. error_description:错误描述信息,帮助理解和解决发生的错误。
  4. errorAccess unknown client id API Key 不正确
  5. invalid_client Client authentication failed Secret Key不正确

识别验证错误说明:

  1. 对应的是错误码、错误信息、描述(错误返回err.msg):
  2. 4 Open api request limit reached 集群超限额
  3. 6 no permission to access data 没有接口权限
  4. 17 Open api daily request limit reached 每天流量超限额
  5. 18 Open api qps request limit reached QPS超限额
  6. 19 Open api total request limit reached 请求总量超限额
  7. 100 Invalid parameter 无效的access_token参数
  8. 110 Access token invalid or no longer valid Access Token失效
  9. 111 Access token expired Access token过期
  10. 222001 param[] is null 必要参数未传入
  11. 222009 quality_conf format error 参数格式错误
  12. 222013 param[image] format error 参数格式错误
  13. 222015 param[image_type] format error 参数格式错误
  14. 222016 param[max_face_num] format error 参数格式错误
  15. 222017 param[face_field] format error 参数格式错误
  16. 222024 param[face_type] format error 参数格式错误
  17. 222025 param[face_token] format error 参数格式错误
  18. 222026 param[max_star_num] format error 参数格式错误
  19. 222201 network not available 服务端请求失败
  20. 222202 pic not has face 图片中没有人脸
  21. 222203 image check fail 无法解析人脸
  22. 222204 image_url_download_fail 从图片的url下载图片失败
  23. 222205 network not availablel 服务端请求失败
  24. 222206 rtse service return fail 服务端请求失败
  25. 222207 match user is not found 未找到匹配的用户
  26. 222208 the number of image is incorrect 图片的数量错误
  27. 222209 face token not exist face token不存在
  28. 222300 add face fail 人脸图片添加失败
  29. 222301 get face fail 获取人脸图片失败
  30. 222302 system error 服务端请求失败
  31. 222303 get face fail 获取人脸图片失败
  32. 223112 quality_conf format error quality_conf 格式不正确
  33. 223113 face is covered 人脸有被遮挡
  34. 223114 face is fuzzy 人脸模糊
  35. 223115 face light is not good 人脸光照不好
  36. 223116 incomplete face 人脸不完整
  37. 223117 app_list is too large app_list包含app数量过多
  38. 222901 system busy 系统繁忙请重新尝试
  39. 222902 system busy 系统繁忙请重新尝试
  40. 222903 system busy 系统繁忙请重新尝试
  41. 222904 system busy 系统繁忙请重新尝试
  42. 222905 system busy 系统繁忙请重新尝试
  43. 222906 system busy 系统繁忙请重新尝试
  44. 222907 system busy 系统繁忙请重新尝试
  45. 222908 system busy 系统繁忙请重新尝试
  46. 222909 system busy 系统繁忙请重新尝试
  47. 222910 system busy 系统繁忙请重新尝试
  48. 222911 system busy 系统繁忙请重新尝试
  49. 222912 system busy 系统繁忙请重新尝试
  50. 222913 system busy 系统繁忙请重新尝试
  51. 222914 system busy 系统繁忙请重新尝试
  52. 222915 system busy 系统繁忙请重新尝试
  53. 222916 system busy 系统繁忙请重新尝试
  54. 222361 system busy 系统繁忙请重新尝试

getAuth

获取access_token

getAuth({params},callback(ret, err))

params

ak:

  • 类型:字符串
  • 描述:API Key
  • 说明:字段必填,不填会返回错误信息msg

sk:

  • 类型:字符串
  • 描述:Secret Key
  • 说明:字段必填,不填会返回错误信息msg

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. access_token: //要获取的Access Token
  3. session_key: //暂无使用
  4. scope: ////暂无使用
  5. refresh_token: //暂无使用
  6. session_secret: //暂无使用
  7. expires_in: //Access Token的有效期(秒为单位,一般为1个月)
  8. }

err:

  • 类型:JSON 对象

内部字段:

  1. {
  2. msg: //返回错误信息
  3. }

示例代码

  1. var baiduFaceRec= api.require('baiduFaceRec');
  2. var param = {
  3. ak: 'your ak',
  4. sk: 'your sk',
  5. };
  6. baiduFaceRec.getAuth(params, function (ret, err) {
  7. if (ret) {
  8. console.log(JSON.stringify(ret));
  9. alert('access_token=' + ret.access_token);
  10. } else {
  11. console.log(err.msg);
  12. alert('错误信息:' + err.msg);
  13. }
  14. });

补充说明

请确保参数ak、sk正确,身份验证在使用前验证一次即可(有效期一个月),建议每次调用接口方法先获取最新access_token

可用性

Android系统

可提供的1.0.0及更高版本

detect

人脸检测

detect({params},callback(ret, err))

params

filePath:

  • 类型:字符串
  • 描述:识别图片路径
  • 说明:字段必填,不填会返回错误信息msg

access_token:

  • 类型:字符串
  • 描述:获取的access_token
  • 说明:字段必填,不填会返回错误信息msg

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段(字段(加号表示层级) 类型 说明):

  1. {
  2. error_code int 错误编号
  3. error_msg string 错误信息
  4. log_id int 日志id
  5. timestamp int 时间戳
  6. cached int 缓存
  7. result json 对比结果
  8. +face_num int 检测到的图片中的人脸数量
  9. +face_list array 人脸信息列表,具体包含的参数参考下面的列表。
  10. ++face_token string 人脸图片的唯一标识
  11. ++location array 人脸在图片中的位置
  12. +++left double 人脸区域离左边界的距离
  13. +++top double 人脸区域离上边界的距离
  14. +++width double 人脸区域的宽度
  15. +++height double 人脸区域的高度
  16. +++rotation int64 人脸框相对于竖直方向的顺时针旋转角,[-180,180]
  17. ++face_probability double 人脸置信度,范围【0~1】,代表这是一张人脸的概率,0最小、1最大。
  18. ++angel array 人脸旋转角度参数
  19. +++yaw double 三维旋转之左右旋转角[-90(左), 90(右)]
  20. +++pitch double 三维旋转之俯仰角度[-90(上), 90(下)]
  21. +++roll double 平面内旋转角[-180(逆时针), 180(顺时针)]
  22. ++age double 年龄 ,当face_field包含age时返回
  23. ++beauty int64 美丑打分,范围0-100,越大表示越美。当face_fields包含beauty时返回
  24. ++expression array 表情,当 face_field包含expression时返回
  25. +++type string none:不笑;smile:微笑;laugh:大笑
  26. +++probability double 表情置信度,范围【0~1】,0最小、1最大。
  27. ++face_shape array 脸型,当face_field包含faceshape时返回
  28. +++type double square: 正方形 triangle:三角形 oval: 椭圆 heart: 心形 round: 圆形
  29. +++probability double 置信度,范围【0~1】,代表这是人脸形状判断正确的概率,0最小、1最大。
  30. ++gender array 性别,face_field包含gender时返回
  31. +++type string male:男性 female:女性
  32. +++probability double 性别置信度,范围【0~1】,0代表概率最小、1代表最大。
  33. ++glasses array 是否带眼镜,face_field包含glasses时返回
  34. +++type string none:无眼镜,common:普通眼镜,sun:墨镜
  35. +++probability double 眼镜置信度,范围【0~1】,0代表概率最小、1代表最大。
  36. ++race array 人种 face_field包含race时返回
  37. +++type string yellow: 黄种人 white: 白种人 black:黑种人 arabs: 阿拉伯人
  38. +++probability double 人种置信度,范围【0~1】,0代表概率最小、1代表最大。
  39. ++facetype array 真实人脸/卡通人脸 face_field包含facetype时返回
  40. +++type string human: 真实人脸 cartoon: 卡通人脸
  41. +++probability double 人脸类型判断正确的置信度,范围【0~1】,0代表概率最小、1代表最大。
  42. ++landmark array 4个关键点位置,左眼中心、右眼中心、鼻尖、嘴中心。face_field包含landmark时返回
  43. ++landmark72 array 72个特征点位置 face_field包含landmark时返回
  44. ++quality array 人脸质量信息。face_field包含quality时返回
  45. +++occlusion array 人脸各部分遮挡的概率,范围[0~1],0表示完整,1表示不完整
  46. ++++left_eye double 左眼遮挡比例,[0-1] 1表示完全遮挡
  47. ++++right_eye double 右眼遮挡比例,[0-1] 1表示完全遮挡
  48. ++++nose double 鼻子遮挡比例,[0-1] 1表示完全遮挡
  49. ++++mouth double 嘴巴遮挡比例,[0-1] 1表示完全遮挡
  50. ++++left_cheek double 左脸颊遮挡比例,[0-1] 1表示完全遮挡
  51. ++++right_cheek double 右脸颊遮挡比例,[0-1] 1表示完全遮挡
  52. ++++chin double 下巴遮挡比例,,[0-1] 1表示完全遮挡
  53. +++blur double 人脸模糊程度,范围[0~1],0表示清晰,1表示模糊
  54. +++illumination double 取值范围在[0~255], 表示脸部区域的光照程度 越大表示光照越好
  55. +++completeness int64 人脸完整度,01, 0为人脸溢出图像边界,1为人脸都在图像边界内
  56. }

err:

  • 类型:JSON 对象

内部字段:

  1. {
  2. msg: //返回错误信息
  3. }

示例代码

  1. var baiduFaceRec= api.require('baiduFaceRec');
  2. var param = {
  3. filePath: 'your filePath',
  4. access_token:'your access_token',
  5. };
  6. baiduFaceRec.detect(param, function (ret, err) {
  7. if (ret) {
  8. console.log(JSON.stringify(ret));
  9. alert('人脸检测数据' + JSON.stringify(ret.result.face_list));
  10. } else {
  11. console.log(err.msg);
  12. alert('错误信息:' + err.msg);
  13. }
  14. });

补充说明

请确保参数filePath、access_token正确,filePath是图片绝对路径,可是有apicloud官方的api.getPicture()获取图片记得地址。

可用性

Android系统

可提供的1.0.0及更高版本

match

人脸对比

match({params},callback(ret, err))

params

filePath1:

  • 类型:字符串
  • 描述:识别图片路径
  • 说明:字段必填,不填会返回错误信息msg

filePath2:

  • 类型:字符串
  • 描述:识别图片路径
  • 说明:字段必填,不填会返回错误信息msg

access_token:

  • 类型:字符串
  • 描述:获取的access_token
  • 说明:字段必填,不填会返回错误信息msg

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. error_code int 错误编号
  3. error_msg string 错误信息
  4. log_id int 日志id
  5. timestamp int 时间戳
  6. cached int 缓存
  7. result json 对比结果
  8. +score int 人脸相似度得分
  9. +face_list array 人脸信息列表
  10. ++face_token string 人脸的唯一标志
  11. }

err:

  • 类型:JSON 对象

内部字段:

  1. {
  2. msg: //返回错误信息
  3. }

示例代码

  1. var baiduFaceRec= api.require('baiduFaceRec');
  2. var param = {
  3. filePath1: 'your filePath1',
  4. filePath2: 'your filePath2',
  5. access_token: 'your access_token',
  6. };
  7. baiduFaceRec.match(param, function (ret, err) {
  8. if (ret) {
  9. console.log(JSON.stringify(ret));
  10. alert('人脸对比数据' + JSON.stringify(ret));
  11. } else {
  12. console.log(err.msg);
  13. alert('错误信息:' + err.msg);
  14. }
  15. });

补充说明

请确保参数filePath1、filePath2、access_token正确,filePath1、filePath2都为绝对路径,可以使用官方模块UIAlbumBrowser得到对比图片路径,两个参数没有先后顺序,只要保证是图片绝对路径即可。

可用性

Android系统

可提供的1.0.0及更高版本