swan.ai.faceDetect

基础库 3.20.11 开始支持,低版本需做兼容处理。

解释:人脸检测,检测图片中的人脸并标记出相应的信息位置,同时可以展示出人脸的关键信息和属性信息,比如年龄,性别等。使用本功能需要小程序开发者后台登录超级管理员账号,点击云平台付费链接开通云账号付费功能。
Web 态说明:受宿主环境限制,Web 态暂不支持 AI 能力相关接口。在 Web 态会做 打开百度 App 对应小程序页面 的降级处理。

方法参数

Object object

object 参数说明

属性名类型必填默认值说明

image

String

图片信息(总数据大小应小于 10M),图片上传方式根据 image_type 来判断。注意:
· 图片尺寸建议:1920 * 1080 以内
· 支持格式:支持 jpg、jpeg、png、bmp,不支持 gif 图

image_type

String

图片类型。有效值:
· BASE64:图片的 base64 值,base64 编码后的图片数据,编码后的图片大小不超过 2M
· URL:图片的 URL 地址(可能由于网络等原因导致下载图片时间过长)
· FACE_TOKEN:人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的 FACE_TOKEN,同一张图片多次检测得到的 FACE_TOKEN 是同一个

face_field

String

包括 age、beauty、expression、face_shape、gender、glasses、landmark、race、quality、eye_status、emotion、face_type 信息,逗号分隔。默认只返回 face_token 、人脸框、概率和旋转角度

max_face_num

String

1

最多处理人脸的数目,默认值为 1 ,仅检测图片中面积最大的那个人脸;最大值 10 ,检测图片中面积最大的几张人脸

face_type

String

LIVE

人脸的类型。有效值:
· LIVE 表示生活照:通常为手机、相机拍摄的人像图片、或从网络获取的人像图片等
· IDCARD 表示身份证芯片照:二代身份证内置芯片中的人像照片
· WATERMARK 表示带水印证件照:一般为带水印的小图,如公安网小图
· CERT 表示证件照片:如拍摄的身份证、工卡、护照、学生证等证件图片;默认 LIVE

success

Function

接口调用成功后的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明

参数名参数类型说明

log_id

Number

唯一的 log id ,用于问题定位

error_code

Number

错误码,错误码为 0 时,人脸检测成功

error_msg

String

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

result

Object

人脸属性对象的集合

result 参数说明

参数名参数类型说明

face_num

Number

检测到图片中的人脸数量

face_list

Array

人脸信息列表

face_list 参数说明

参数名参数类型说明

face_token

String

人脸图片的唯一标识

location

Object

人脸在图片中的位置

face_probability

Number

人脸置信度,范围 [0-1] ,代表这是一张人脸的概率,0:最小、1:最大

angel

Object

人脸旋转角度参数

age

Number

年龄,当 face_field 包含 age 时返回

beauty

Number

美丑打分,范围 [0-100],越大表示越美,当 face_fields 包含 beauty 时返回

expression

Object

表情,当 face_field 包含 expression 时返回

face_shape

Object

脸型,当 face_field 包含 face_shape 时返回

gender

Object

性别,face_field 包含 gender 时返回

glasses

Object

是否带眼镜,face_field 包含 glasses 时返回

eye_status

Object

双眼状态(睁开/闭合)face_field 包含 eye_status 时返回

emotion

Object

情绪,face_field 包含 emotion 时返回

race

Object

人种 face_field 包含 race 时返回

face_type

Object

真实人脸/卡通人脸 face_field 包含 face_type 时返回

landmark

Object

4 个关键点位置,左眼中心、右眼中心、鼻尖、嘴中心。face_field 包含 landmark 时返回

quality

Object

人脸质量信息,face_field 包含 quality 时返回

location 返回值说明

参数名参数类型说明

left

Number

人脸区域离左边界的距离

top

Number

人脸区域离上边界的距离

width

Number

人脸区域的宽度

height

Number

人脸区域的高度

rotation

Number

人脸框相对于竖直方向的顺时针旋转角,[-180,180]

angel 返回值说明

参数名参数类型说明

yaw

Number

三维旋转之左右旋转角 [-90(左),90(右)]

pitch

Number

三维旋转之俯仰角度 [-90(上),90(下)]

roll

Number

平面内旋转角 [-180(逆时针),180(顺时针)]

expression 返回值说明

参数名参数类型说明

type

String

none:不笑;smile:微笑;laugh:大笑

probability

Number

表情置信度,范围 [0-1] ,0 最小、1 最大

face_shape 返回值说明

参数名参数类型说明

type

String

square:正方形;triangle:三角形;oval:椭圆;heart:心形;round:圆形

probability

Number

置信度,范围 [0-1] ,代表这是人脸形状判断正确的概率,0 最小、1 最大

gender 返回值说明

参数名参数类型说明

type

String

male:男性;female:女性

probability

Number

性别置信度,范围 [0-1] ,0 代表概率最小、1 代表最大

glasses 返回值说明

参数名参数类型说明

type

String

none:无眼镜;common:普通眼镜;sun:墨镜

probability

Number

眼镜置信度,范围 [0-1],0 代表概率最小、1 代表最大

eye_status 返回值说明

参数名参数类型说明

left_eye

Number

左眼状态 [0,1] 取值,越接近 0 闭合的可能性越大

right_eye

Number

右眼状态 [0,1] 取值,越接近 0 闭合的可能性越大

emotion 返回值说明

参数名参数类型说明

type

String

angry:愤怒;disgust:厌恶;fear:恐惧;happy:高兴;sad:伤心;surprise:惊讶;neutral:无情绪

probability

Number

情绪置信度,范围 [0-1]

race 返回值说明

参数名参数类型说明

type

String

yellow:黄种人;white:白种人;black:黑种人;arabs:阿拉伯人

probability

Number

人种置信度,范围 [0-1] ,0:代表概率最小、1:代表最大

face_type 返回值说明

参数名参数类型说明

type

String

human:真实人脸;cartoon:卡通人脸

probability

Number

人脸类型判断正确的置信度,范围 [0-1] ,0:代表概率最小、1:代表最大

landmark 返回值说明

参数名参数类型说明

landmark72

Array

72 个特征点位置 face_field 包含 landmark72 时返回

landmark150

Array

150 个特征点位置 face_field 包含 landmark150 时返回

quality 返回值说明

参数名参数类型说明

occlusion

Number

人脸各部分遮挡的概率,范围 [0-1] ,0:表示完整,1:表示不完整

blur

Number

人脸模糊程度,范围 [0-1] ,0:表示清晰,1:表示模糊

illumination

Number

取值范围在 [0-255] ,表示脸部区域的光照程度越大表示光照越好

completeness

Number

人脸完整度,0 或 1 ,0:为人脸溢出图像边界,1:为人脸都在图像边界内

occlusion 返回值说明

参数名参数类型说明

left_eye

Number

左眼遮挡比例,[0-1] ,1:表示完全遮挡

right_eye

Number

右眼遮挡比例,[0-1] ,1:表示完全遮挡

nose

Number

鼻子遮挡比例,[0-1] ,1:表示完全遮挡

left_cheek

Number

左脸颊遮挡比例,[0-1] ,1:表示完全遮挡

right_cheek

Number

右脸颊遮挡比例,[0-1] ,1:表示完全遮挡

chin

Number

下巴遮挡比例,[0-1] ,1:表示完全遮挡

示例

扫码体验

代码示例

百度智能小程序

请使用百度APP扫码

图片示例

swan.ai.faceDetect - 图2

代码示例 1:image_type 为 BASE64

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

  • JS
  1. Page({
  2. faceDetect() {
  3. swan.chooseImage({
  4. success: res => {
  5. let image = res.tempFilePaths[0];
  6. // AI系列的api有宿主使用限制,只可在百度App中使用,建议使用时加一层判断防止代码报未知错误
  7. let host = swan.getSystemInfoSync().host;
  8. if (host === 'baiduboxapp') {
  9. swan.ai.faceDetect({
  10. image,
  11. image_type: 'BASE64',
  12. face_field: 'age,beauty,angle,expression,face_shape,gender,glasses,eye_status,race,quality',
  13. max_face_num: '1',
  14. face_type: 'LIVE',
  15. success: res => {
  16. console.log(res.face_list);
  17. },
  18. fail: err => {
  19. console.log( err);
  20. }
  21. });
  22. }
  23. else {
  24. swan.showToast({
  25. title: '此api目前仅可在百度App上使用',
  26. icon: 'none'
  27. });
  28. }
  29. }
  30. })
  31. }
  32. });

代码示例 2:image_type 为 URL

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

  • JS
  1. Page({
  2. faceDetect() {
  3. swan.chooseImage({
  4. success: res => {
  5. let image = res.tempFilePaths[0];
  6. // AI系列的api有宿主使用限制,只可在百度App中使用,建议使用时加一层判断防止代码报未知错误
  7. let host = swan.getSystemInfoSync().host;
  8. if (host === 'baiduboxapp') {
  9. swan.ai.faceDetect({
  10. image:'https://b.bdstatic.com/miniapp/image/faceDetect.png',
  11. image_type: 'URL',
  12. face_field: 'age,beauty,angle,expression,face_shape,gender,glasses,eye_status,race,quality',
  13. max_face_num: '1',
  14. face_type: 'LIVE',
  15. success: res => {
  16. console.log(res.face_list);
  17. },
  18. fail: err => {
  19. console.log( err);
  20. }
  21. });
  22. }
  23. else {
  24. swan.showToast({
  25. title: '此api目前仅可在百度App上使用',
  26. icon: 'none'
  27. });
  28. }
  29. }
  30. })
  31. }
  32. });

代码示例 3:image_type 为 FACE_TOKEN

在开发者工具中打开

在开发者工具中打开

在 WEB IDE 中打开

  • JS
  1. Page({
  2. faceDetect() {
  3. swan.chooseImage({
  4. success: res => {
  5. let image = res.tempFilePaths[0];
  6. // AI系列的api有宿主使用限制,只可在百度App中使用,建议使用时加一层判断防止代码报未知错误
  7. let host = swan.getSystemInfoSync().host;
  8. if (host === 'baiduboxapp') {
  9. swan.ai.faceDetect({
  10. // 可由之前图片检测的返回值中获得
  11. image:'4160b708a826b18de95fe5c9a098a436',
  12. image_type: 'FACE_TOKEN',
  13. face_field: 'age,beauty,angle,expression,face_shape,gender,glasses,eye_status,race,quality',
  14. max_face_num: '1',
  15. face_type: 'LIVE',
  16. success: res => {
  17. console.log(res.face_list);
  18. },
  19. fail: err => {
  20. console.log( err);
  21. }
  22. });
  23. }
  24. else {
  25. swan.showToast({
  26. title: '此api目前仅可在百度App上使用',
  27. icon: 'none'
  28. });
  29. }
  30. }
  31. })
  32. }
  33. });

返回值示例

  • JSON
  1. {
  2. "face_num": 1,
  3. "face_list": [
  4. {
  5. "face_token": "35235asfas21421fakghktyfdgh68bio",
  6. "location": {
  7. "left": 117,
  8. "top": 131,
  9. "width": 172,
  10. "height": 170,
  11. "rotation": 4
  12. },
  13. "face_probability": 1,
  14. "angle" :{
  15. "yaw" : -0.34859421849251
  16. "pitch" 1.9135693311691
  17. "roll" :2.3033397197723
  18. }
  19. "landmark": [
  20. {
  21. "x": 161.74819946289,
  22. "y": 163.30244445801
  23. },
  24. ...
  25. ],
  26. "landmark72": [
  27. {
  28. "x": 115.86531066895,
  29. "y": 170.0546875
  30. },
  31. ...
  32. ],
  33. "age": 29.298097610474,
  34. "beauty": 55.128883361816,
  35. "expression": {
  36. "type": "smile",
  37. "probability" : 0.5543018579483
  38. },
  39. "gender": {
  40. "type": "male",
  41. "probability": 0.99979132413864
  42. },
  43. "glasses": {
  44. "type": "sun",
  45. "probability": 0.99999964237213
  46. },
  47. "race": {
  48. "type": "yellow",
  49. "probability": 0.99999976158142
  50. },
  51. "face_shape": {
  52. "type": "triangle",
  53. "probability": 0.5543018579483
  54. }
  55. "quality": {
  56. "occlusion": {
  57. "left_eye": 0,
  58. "right_eye": 0,
  59. "nose": 0,
  60. "mouth": 0,
  61. "left_cheek": 0.0064102564938366,
  62. "right_cheek": 0.0057411273010075,
  63. "chin": 0
  64. },
  65. "blur": 1.1886881756684e-10,
  66. "illumination": 141,
  67. "completeness": 1
  68. }
  69. }
  70. ]
  71. }