faceVerify

解释:在线活体检测,基于单张图片,判断图片中的人脸是否为二次翻拍。

最低支持版本 3.20.11 。

方法参数:ObjectObject 参数说明

参数名参数类型是否必填说明
dataArray图片信息
successFunction接口调用成功后的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

data 参数说明

参数名参数类型是否必填
imagestring图片信息(总数据大小应小于 10M),图片上传方式根据 image_type 来判断。
image_typestring图片类型· BASE64:图片的 base64 值,base64 编码后的图片数据,编码后的图片大小不超过2M;· URL:图片的 URL 地址( 可能由于网络等原因导致下载图片时间过长);· FACE_TOKEN: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的 FACE_TOKEN,同一张图片多次检测得到的 FACE_TOKEN 是同一个。
face_fieldstring包括 age,beauty,expression,face_shape,gender,glasses,landmark,race,quality,eye_status,emotion,face_type 信息,逗号分隔。默认只返回 face_token、人脸框、概率和旋转角度。

返回值参数说明

参数名参数类型说明
face_livenessnumber活体分数值
thresholdsObject由服务端返回最新的阈值数据(随着模型的优化,阈值可能会变化),将此参数与返回的 face_liveness 进行比较,可以作为活体判断的依据。 frr_1e-4:万分之一误识率的阈值;frr_1e-3:千分之一误识率的阈值;frr_1e-2:百分之一误识率的阈值。误识率越低,准确率越高,相应的拒绝率也越高。
face_listArray人脸信息列表

face_list参数说明

参数名参数类型说明
face_tokenstring人脸图片的唯一标识
locationObject人脸在图片中的位置
face_probabilitynumber人脸置信度,范围[0~1],代表这是一张人脸的概率,0 最小、1 最大。
angelObject人脸旋转角度参数
agenumber年龄 ,当face_field包含age时返回。
beautynumber美丑打分,范围 0-100,越大表示越美。当 face_fields 包含 beauty 时返回。
expressionObject表情,当 face_field 包含 expression 时返回。
face_shapeObject脸型,当 face_field 包含 face_shape 时返回。
genderObject性别,face_field 包含 gender 时返回。
glassesObject是否带眼镜,face_field 包含 glasses 时返回。
eye_statusObject双眼状态(睁开/闭合) face_field 包含 eye_status 时返回。
emotionObject情绪 face_field 包含 emotion 时返回
raceObject人种 face_field 包含 race 时返回
face_typeObject真实人脸/卡通人脸 face_field 包含 face_type 时返回。
landmarkObject4 个关键点位置,左眼中心、右眼中心、鼻尖、嘴中心。face_field 包含 landmark 时返回。
qualityObject人脸质量信息。face_field 包含 quality 时返回

location返回值说明

参数名参数类型说明
leftnumber人脸区域离左边界的距离
topnumber人脸区域离上边界的距离
widthnumber人脸区域的宽度
heightnumber人脸区域的高度
rotationnumber人脸框相对于竖直方向的顺时针旋转角,[-180,180]。

angel返回值说明

参数名参数类型说明
yawnumber三维旋转之左右旋转角[-90(左), 90(右)]。
pitchnumber三维旋转之俯仰角度[-90(上), 90(下)]。
rollnumber平面内旋转角[-180(逆时针), 180(顺时针)]。

expression返回值说明

参数名参数类型说明
typestringnone:不笑;smile:微笑;laugh:大笑。
probabilitynumber表情置信度,范围[0~1],0最小、1最大。

face_shape返回值说明

参数名参数类型说明
typestringsquare: 正方形; triangle:三角形; oval: 椭圆; heart: 心形; round: 圆形。
probabilitynumber置信度,范围[0~1],代表这是人脸形状判断正确的概率,0最小、1最大。

gender返回值说明

参数名参数类型说明
typestringmale:男性; female:女性。
probabilitynumber性别置信度,范围[0~1],0 代表概率最小、1 代表最大。

glasses返回值说明

参数名参数类型说明
typestringnone:无眼镜;common:普通眼镜;sun:墨镜。
probabilitynumber眼镜置信度,范围[0~1],0 代表概率最小、1 代表最大。

eye_status返回值说明

参数名参数类型说明
left_eyenumber左眼状态 [0,1]取值,越接近 0 闭合的可能性越大。
right_eyenumber右眼状态 [0,1]取值,越接近 0 闭合的可能性越大。

emotion返回值说明

参数名参数类型说明
typestringangry:愤怒; disgust:厌恶; fear:恐惧; happy:高兴; sad:伤心; surprise:惊讶; neutral:无情绪。
probabilitynumber情绪置信度,范围 [0~1]。

race返回值说明

参数名参数类型说明
typestringyellow: 黄种人; white: 白种人; black:黑种人; arabs: 阿拉伯人。
probabilitynumber人种置信度,范围[0~1],0 代表概率最小、1 代表最大。

face_type返回值说明

参数名参数类型说明
typestringhuman: 真实人脸;cartoon: 卡通人脸。
probabilitynumber人脸类型判断正确的置信度,范围[0~1],0 代表概率最小、1 代表最大。

landmark返回值说明

参数名参数类型说明
landmark72Array72 个特征点位置 face_field 包含 landmark72 时返回。
landmark150Array150 个特征点位置 face_field 包含 landmark150 时返回。

quality返回值说明

参数名参数类型说明
occlusionnumber人脸各部分遮挡的概率,范围[0~1],0 表示完整,1 表示不完整。
blurnumber人脸模糊程度,范围[0~1],0 表示清晰,1 表示模糊。
illuminationnumber取值范围在[0~255], 表示脸部区域的光照程度越大表示光照越好。
completenessnumber人脸完整度,0 或 1, 0 为人脸溢出图像边界,1 为人脸都在图像边界内。

occlusion返回值说明

参数名参数类型说明
left_eyenumber左眼遮挡比例,[0-1] ,1 表示完全遮挡。
right_eyenumber右眼遮挡比例,[0-1] ,1 表示完全遮挡。
nosenumber鼻子遮挡比例,[0-1] , 1 表示完全遮挡。
left_cheeknumber左脸颊遮挡比例,[0-1] ,1 表示完全遮挡。
right_cheeknumber右脸颊遮挡比例,[0-1] ,1 表示完全遮挡。
chinnumber下巴遮挡比例 [0-1] ,1 表示完全遮挡。

示例代码

  1. swan.chooseImage({
    success(res) {
    swan.ai.faceVerify({
    data: [
    {
    "image": res.tempFilePaths[0],
    "image_type": "BASE64",
    "face_field": "age,beauty,expression"
    },
    {
    "image": res.tempFilePaths[1],
    "image_type": "BASE64",
    "face_field": "age,beauty,expression"
    }
    ],
    success(res) {
    console.log('res');
    }
    });
    }
    })

返回示例

  1. {
    "thresholds": {
    "frr_1e-4": 0.05, //万分之一误拒率的阈值
    "frr_1e-3": 0.3, //千分之一误拒率的阈值
    "frr_1e-2": 0.9 //百分之一误拒率的阈值
    },
    "face_liveness": 0.05532243927,
    "face_list": [
    {
    "face_token": "df46f7c7db4aa09a093c26fb8d1a8d44",
    "location": {
    "left": 328.9026489,
    "top": 97.16340637,
    "width": 162,
    "height": 154,
    "rotation": 32
    },
    "face_probability": 1,
    "angle": {
    "yaw": 10.16196251,
    "pitch": 2.244354248,
    "roll": 33.82199097
    },
    "age": 23,
    "beauty": 20.23693275
    },
    {
    "face_token": "901d2c64274fccd687d311a6e6110a01",
    "location": {
    "left": 411.4876404,
    "top": 166.3593445,
    "width": 329,
    "height": 308,
    "rotation": 45
    },
    "face_probability": 0.9194830656,
    "angle": {
    "yaw": -1.716423035,
    "pitch": 7.344647408,
    "roll": 45.79914856
    },
    "age": 23,
    "beauty": 12.6438179
    },
    {
    "face_token": "7d57e36981c48b4946eb97c8d838b02a",
    "location": {
    "left": 161.4559937,
    "top": 199.8726501,
    "width": 218,
    "height": 201,
    "rotation": -1
    },
    "face_probability": 1,
    "angle": {
    "yaw": -8.187754631,
    "pitch": 6.973727226,
    "roll": -1.25429821
    },
    "age": 23,
    "beauty": 8.20657444
    }
    ]
    }