首页 > 其他分享 >动作活体检测能力支持自定义扫描动作,开发者接入更高效

动作活体检测能力支持自定义扫描动作,开发者接入更高效

时间:2023-11-14 15:35:46浏览次数:38  
标签:活体 自定义 动作 检测 num 开发者 数组

随着人脸识别技术在金融、医疗等多个领域的加速落地,网络安全、信息泄露等问题愈为突出,用户对应用稳定性和安全性的要求也更为严格。

华为机器学习服务的动作活体检测能力,支持实时捕捉人脸,根据用户配合做动作可以判断是真实活体,还是非活体攻击(比如:翻拍图片、翻拍视频以及面具等)。

此前,动作活体检测能力通过采用指令动作配合的方式进行活体检测,在眨眼、张嘴、左摇头、右摇头、注视、点头六种动作中随机选择三种,让用户按指令完成动作。目前,动作活体检测能力新增了自定义扫描动作,开发者可以自己设定扫描动作进行人脸检测,以此判断机器前的人脸是否为真实人脸。

使用人脸关键点及人脸追踪技术,通过连续的图片,计算变化距离与不变距离的比值,进行上一帧图像与下一帧图像的对比,从而验证用户是否为真实活体本人操作,对照片、视频和面具的攻击具有很好的防御效果,是人脸识别能否有效应用的前提条件。以此实现更加友好的交互体验,打造安全可靠的活体检测能力。

image

自定义扫描动作

不设置自定义扫描动作时会默认从1-6个动作中按照默认规则随机生成三个动作进行检测,如果想自己设定检测动作,可以通过调用MLInteractiveLivenessConfigsetActionArray(int[] actionArray, int num, boolean isRandomable)来设置自定义扫描动作。

动作说明:

image

参数说明:

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个动作。

MLInteractiveLivenessConfig interactiveLivenessConfig = new MLInteractiveLivenessConfig.Builder()
// actionArray 自定义动作int数组,actionArrayNum检测动作数目,isRandom动作是否随机
.setActionArray(actionArray, num, isRandom)
.build();

了解更多详情>>

访问机器学习服务联盟官网

获取机器学习服务开发指导文档

标签:活体,自定义,动作,检测,num,开发者,数组
From: https://www.cnblogs.com/hmscore/p/17831732.html

相关文章

  • 使用JWT、拦截器与ThreadLocal实现在任意位置获取Token中的信息,并结合自定义注解实现
    1.简介1.1JWTJWT,即JSONWebToken,是一种用于在网络上传递声明的开放标准(RFC7519)。JWT可以在用户和服务器之间传递安全可靠的信息,通常用于身份验证和信息交换。声明(Claims):JWT包含一组称为声明的信息,声明描述了一些数据。有三种类型的声明:注册声明(RegisteredClaims):这是......
  • SpringBoot定义拦截器+自定义注解+Redis实现接口防刷(限流)
    实现思路在拦截器Interceptor中拦截请求通过地址+请求uri作为调用者访问接口的区分在Redis中进行计数达到限流目的简单实现定义参数访问周期最大访问次数禁用时长#接口防刷配置,时间单位都是秒.如果second秒内访问次数达到times,就禁用lockTime秒access:lim......
  • Oracle sql自定义统计月范围
     思路: 1,使用SUBSTR(to_char(INSPECTION_DATE,'yyyy-mm-dd'),-2)取出天数, 2,使用case……when……then……判断取出的天数是否大于等于25号,如果是则将日期设置成下月第一天 如果小于等于24号,则设置成当月第一天 3,使用TRUNC(ADD_MONTHS(INSPECTION_DATE,1),'mm')增......
  • 自定义GPT已经出现,并将影响人工智能的一切,做好被挑战的准备了吗?
    原创|文BFT机器人OpenAI凭借最新突破:定制GPT站在创新的最前沿。预示着个性化数字协助的新时代到来,ChatGPT以前所未有的精度来满足个人需求和专业需求。自定义GPT具有变革性的特点——可以被定制为任何领域或任务的专家。我们可以想象一下为SEO研究量身定制的数字助理、能够筛选......
  • 微信小程序--自定义tabbar切换页面时,保留数据方案
    自定义的tabbar组件,每次切换页面时都会重新加载页面和数据,需要通过一些方法把tabbar菜单的数据保留下来,不要每次都请求数据。方案一:在app.js文件里定义全局数据(本次项目采用的是可以在后台管理里配置的数据,所以采用了方案一)1、在app.js文件里定义一个全局变量App({  globa......
  • 十三、自定义类型
    用户定义数据类型通俗定义:用户自己设计并实现的数据类型就称为用户自定义数据类型,即使这些数据类型基于系统数据类型。也可以理解为基础类型的一个延伸。用户定义数据类型三要素:1.数据类型的名称2.所基于的系统数据类型3.数据类型的可空性(是否可以为空)USE[Advanc......
  • Java开发者的Python快速进修指南:函数基础
    话不多说,今天我们要介绍的是函数。本系列文章追求短而精,今天我们将重点讨论函数以及与Java方法的区别。与Java方法不同,函数不需要像Java方法一样讲究修饰符等其他特性,它只需要使用"def"关键字进行声明。另外,函数的参数也与Java方法有所不同,Java方法中不存在默认参数的概念,而在Pyth......
  • 苹果Ios系统app应用程序开发者如何获取IPA文件?签名证书时需要注意什么?
    大家好呀,我是咕噜签名分发可爱多。在 iOS应用程序开发中,签名过程是非常重要的一环。签名保证了应用的真实性和完整性,它也是让应用能在设备上运行的前置条件。苹果使用一系列证书和配置文件来管理这一过程。获取IPA文件签名证书是发布应用程序至AppStore的重要步骤之一。签名证书......
  • 使用 Chrome 开发者工具获取网站的 LCP 数据
    LargestContentfulPaint(LCP)是一个重要的、用户感知性能的测量指标,它报告了在页面加载过程中,视口内最大可见元素呈现的时间。理想的LCP时间小于2.5秒。那么,我们如何使用Chrome浏览器来度量一个网站的LCP呢?下面是一个详细的步骤说明。首先,你需要打开你想要测试的网站。......
  • nuclei 快速&可自定义的基于DSL的漏洞扫描工具
    nuclei是基于golang开发的,可以使用基于yaml定义的dsl,支持扫描不少协议(tcp,dns,http,ssl,file,whois,websocket,headless,以及code)同时nuclei也提供了不少模版可以方便快速使用说明nuclei使用简单,主要包含两步,定义yaml文件,运行,同时提供了大量可用的模版是一个很不错的安全工具,很值......