动作活体检测能力支持自定义扫描动作,开发者接入更高效
随着人脸识别技术在金融、医疗等多个领域的加速落地,网络安全、信息泄露等问题愈为突出,用户对应用稳定性和安全性的要求也更为严格。
华为机器学习服务的动作活体检测能力,支持实时捕捉人脸,根据用户配合做动作可以判断是真实活体,还是非活体攻击(比如:翻拍图片、翻拍视频以及面具等)。
此前,动作活体检测能力通过采用指令动作配合的方式进行活体检测,在眨眼、张嘴、左摇头、右摇头、注视、点头六种动作中随机选择三种,让用户按指令完成动作。目前,动作活体检测能力新增了自定义扫描动作,开发者可以自己设定扫描动作进行人脸检测,以此判断机器前的人脸是否为真实人脸。
使用人脸关键点及人脸追踪技术,通过连续的图片,计算变化距离与不变距离的比值,进行上一帧图像与下一帧图像的对比,从而验证用户是否为真实活体本人操作,对照片、视频和面具的攻击具有很好的防御效果,是人脸识别能否有效应用的前提条件。以此实现更加友好的交互体验,打造安全可靠的活体检测能力。
自定义扫描动作
不设置自定义扫描动作时会默认从 1-6 个动作中按照默认规则随机生成三个动作进行检测,如果想自己设定检测动作,可以通过调用MLInteractiveLivenessConfig的setActionArray(int[] actionArray, int num, boolean isRandomable)来设置自定义扫描动作。
动作说明:
参数说明:
actionArray:
自定义动作数组,数组元素的取值在[1,6]之间,数组的长度大于等于 num 并且最大长度不超过 6,当 isRandom=false 时 sdk 会取数组的前 num 个动作元素进行验证,当 isRandom=true 时数组的元素禁止重复并且需要满足以下规则:
1.当数组长度和 num 相等并且值为 2 时,[眨眼,注视] [左摇头,右摇头]同一组合中的动作元素不能同时存在;
2.当 num = 4 时,数组中的动作元素必须包含眨眼。
说明
a.当数组为 null 或者数组长度为 0 时,返回错误码 11405;
b.当数组中的元素不在[1,6]之间时,返回错误码 11405;
生成动作组合,当 isRandom=true 时,sdk 会根据生成动作规则自动抛弃不合规的动作组合,生成动作规则如下:
1.当 num=2 时,[眨眼,注视] [左摇头,右摇头]同一组合中的动作元素不会同时存在并且相邻的动作不会相同;
2.当 num=3 时,[眨眼,注视]组合中的动作元素不会同时存在并且相邻的动作元素不会相同;
3.当 num=4 时,眨眼动作元素有且仅有 1 次,注视动作元素最多出现 1 次,[眨眼,注视]组合中的动作元素不会相邻,相邻的动作元素不会相同。
num:
用户需要生成检测动作的个数,num 取值范围[1,4]并且小于等于 actionArray 的长度。
isRandom:
生成检测的动作是否随机,取值 true 表示在 actionArray 数组中随机取 num 个动作进行检测,值为 false 表示定序检测 actionArray 数组前 num 个动作。
了解更多详情>>
评论