专栏首页Node开发NodeJS人脸识别(2)

NodeJS人脸识别(2)

上一篇介绍了NodeJS实现人脸识别中的人脸注册,搜索,检测功能。可以看到其实抛开用户量不说,其实任何想要实现的功能最终用NodeJS都是可以实现的。今天我们来看下SDK文档关于人脸识别其他的接口,我们可以来看看整套人脸识别具体有什么功能,我们可以怎么在实际应用中去进行应用呢?

人脸更新

我们上一篇讲到了人脸注册,每个人脸会绑定一个唯一的userId, 当然,既然注册了必须要有更新功能。人脸更新就是针对userId进行更新,这时候有两种可能性:

userId存在于人脸库userId不存在人脸库

第一种情况很好理解,存在即更新。那如果第二种情况呢?我们可以先看看如果人脸库存在userId的情况:

我们跑下测试下效果:

可以看到userId存在的情况下会成功更新人脸并返回图片新的face_token以及人脸相对图片的位置信息。那如果userId不存在呢?

可以看到人脸不存在会报错user is not exist。这样的返回其实也是可以的,但是人脸识别本质就是为了提升用户体验,降低操作复杂性,所以其实还有一种方案可以在用户不存在的情况进行将该人脸静默注册到人脸库,就是添加参数action_type: REPLACE

PS:文档中这里存在一个坑:relace文档小写,实际需要大写,且选传参数文档并没有action_type这参数。

我们现在给本接口添加action_type参数:

我们现在使用不存在的userId测试一下具体效果:

可以看到如果人脸不存在直接静默注册到人脸库,这样就可以大大提升用户体验。当然这个接口一样可以添加选传参数,我就不详细演示了。我直接贴上请求参数及接口返回参数:

人脸删除

人脸删除会将用户人脸信息从用户组中进行删除。这里同样存在两种情况:

用户人脸可能只存在于一个用户组。用户人脸可能同时存在于多个用户组。

如果用户人脸信息只存在于一个用户组,那直接删除不会出问题。如果用户人脸存在于多个用户组,我们一般不能直接全部删除,因为不同用户组可能应用于不同场景的应用。groupId指定从什么用户组删除人脸信息,如果同时从多个用户组删除则用逗号隔开。

我们先看下测试效果:

可以看到如果在对应的用户组能够找到与userIdface_token匹配的人脸,就可以删除成功。

老规矩,我直接贴上请求参数以及返回参数:

用户信息查询

这个接口的用法看标题就可以知道了,可以查询用户信息,人脸注册以及人脸更新进行静默注册都是可以选传用户信息user_info,通过这个接口查询就可以查询到用户绑定的个人信息。本接口可以直接通过用户组id以及用户的userId进行查询指定人脸的信息:

我们先看下测试结果:

可以看到返回的user_info为空,因为我注册人脸未进行保存用户个人信息。接下来贴上请求参数和返回参数:

查询用户人脸列表

一个用户可以注册多个人脸。本接口可以通过用户组id以及用户userId进行查询指定用户组中该用户所有人脸信息:

我们先看下测试结果:

返回的结果只有一张人脸信息,因为该userId对应的人脸只有一张,会返回创建或更新时间。接下来贴上请求参数和返回参数:

查询用户列表

本接口可以通过用户组id进行查询指定用户组中所有用户信息:

我们先看下测试结果:

返回的结果会有该groupId中所有userId的信息接下来贴上请求参数和返回参数:

复制用户到新的用户组

如果用户人脸已存在一个用户组,使用本接口可以直接将用户人脸信息复制到新的用户组中。这个接口官方SDK文档是有问题的,我们可以先看看请求参数和返回参数:

接口文档只有用户userId是必传参数,实际经过测试,三个参数都为必传参数。复制与被复制的人脸组都必须已经存在。

我们先看下测试结果:

删除用户

本接口可以通过将用户从某个用户组中进行删除。这个接口与人脸删除接口最大的区别是人脸删除接口是将某个用户组中指定用户的指定人脸进行删除,本接口是删除某用户组指定用户。

我们先看下测试结果:

可以看到返回success,代表用户从指定的用户组中被删除成功。接下来贴上请求参数和返回参数:

创建用户组

本接口可以创建新的用户组,若用户组已存在则会返回错误信息

我们先看下测试结果:

可以看到返回success,代表新的用户组创建成功。接下来贴上请求参数和返回参数:

删除用户组

本接口可以删除用户组,若用户组不存在则会返回错误信息

我们先看下测试结果:

可以看到返回success,代表删除用户组成功。接下来贴上请求参数和返回参数:

查询用户组列表

本接口可以查询用户组列表

我们先看下测试结果:

可以看到存在用户组有15。接下来贴上请求参数和返回参数:

在线活体检测

本接口主要功能有:

人脸基础信息:包括人脸框位置,人脸空间旋转角度,人脸置信度等信息。人脸质量检测:判断人脸的遮挡、光照、模糊度、完整度等质量信息。可用于判断上传的人脸是否符合标准。基于图片的活体检测:基于单张图片,判断图片中的人脸是否为二次翻拍举例:如用户A用手机拍摄了一张包含人脸的图片一,用户B翻拍了图片一得到了图片二,并用图片二伪造成用户A去进行识别操作,这种情况普遍发生在金融开户、实名认证等环节)。此能力可用于H5场景下的一些人脸采集场景中,增加人脸注册的安全性和真实性。

我们先看下测试结果:

这里最重要的返回参数有:

face_liveness:活体分数值thresholds:由服务端返回最新的阈值数据,将此参数与返回的face_liveness进行比较,可以作为活体判断的依据。 frr_1e-4:万分之一误识率的阈值;frr_1e-3:千分之一误识率的阈值;frr_1e-2:百分之一误识率的阈值。误识率越低,准确率越高,相应的拒绝率也越高

可以看到返回的thresholds值为0.97.代表基本上不可能为同一个人。因为我选择的是两张不同的网络图片。其他参数不多进行解释,接下来贴上请求参数和返回参数可以自行理解:

返回参数过多我只对必返回参数进行截图:

人脸对比

本接口主要功能有:

两张人脸图片相似度对比:比对两张图片中人脸的相似度,并返回相似度分值;多种图片类型:支持生活照、证件照、身份证芯片照、带网纹照四种类型的人脸对比;活体检测:基于图片中的破绽分析,判断其中的人脸是否为二次翻拍(举例:如用户A用手机拍摄了一张包含人脸的图片一,用户B翻拍了图片一得到了图片二,并用图片二伪造成用户A去进行识别操作,这种情况普遍发生在金融开户、实名认证等环节。);质量检测:返回模糊、光照等质量检测信息,用于辅助判断图片是否符合识别要求;

我们先看下测试结果:

这里最重要的返回参数有: score:人脸相似得分

可以看到返回的score值为7.644287109.代表基本上不可能为同一个人。因为我选择的是两张不同的网络图片。其他参数不多进行解释,接下来贴上请求参数和返回参数可以自行理解:

到这里其实SDK关于人脸识别的所有接口都介绍完毕了。其实还有几个接口,必须账户进行企业实名认证才有权限调用,在这里我就不介绍了。本篇内容到这里差不多结束了。如果喜欢我的文章请关注我的个人公众号:周先生自留地。

本文分享自微信公众号 - 程序猿周先森(zhanyue_org),作者:逆月翎

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一文了解Mysql

    Redis系列到上一篇已经全部结束了,从本篇开始进入Mysql系列文章专题。本篇作为Mysql系列专题的开篇文章,主要是一文带大家大致了解什么是Mysql。本篇...

    逆月翎
  • vue博客实战---博客首页开发

    上一篇文章讲完了项目的搭建。本篇开始就正式博客网站的开发了,本篇文章实现博客首页的开发。博客网站的架构如下:

    逆月翎
  • Redis持久化机制

    上一篇主要针对Redis的内存淘汰机制以及Redis容易引发的三大问题:缓存击穿、缓存穿透以及缓存雪崩进行了详细的讲解以及提供了业界常用的解决方案。本篇主要讲...

    逆月翎
  • 比特币ETF替代品ETN?指数投资证券(ETN)将开放美国投资者交易

    由于许多美国业者要求监管机构美国SEC批准比特币指数型证券投资信托基金(Exchange Traded Funds,ETF),但鉴于监管疑虑至今仍在有待SEC定...

    币聪财经
  • 某大公司产品经理被研发人员暴打!是你产品飘了,还是我开发提不动刀了?

    产品经理了解技术,有助于和研发人员沟通。但了解技术后提需求时,会权衡需求和实现难度。有人说产品经理提需求时,只需要考虑用户需求,不应该考虑技术实现难度,这样做是...

    老九君
  • 产品优化正确的打开姿势

    以下所有的步骤都是思考的一个过程,有些过程需要记录下来,有些不需要,在实际工作中有些功能迭代在团队中口头传达一下就执行下去了,有些需要和领导汇报,总的来说记录下...

    靠谱先生
  • #集合笔记二#list集合特有功能及案例迭代

    吾爱乐享
  • 拼多多面试题:如何用 Redis 统计独立用户访问量?

    当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过12个小时,也是相当辛苦的。

    Java技术栈
  • 笔记 | GWAS 操作流程4-3:LM模型+因子协变量

    第一列为FID 第二列为ID 第三列以后为协变量(注意,只能是数字,不能是字符!)

    邓飞
  • [深度学习概念]·深度学习中人脸识别开发解析

    人脸验证做的是 1 比 1 的比对,即判断两张图片里的人是否为同一人。最常见的应用场景便是人脸解锁,终端设备(如手机)只需将用户事先注册的照片与临场采集的照片做...

    小宋是呢

扫码关注云+社区

领取腾讯云代金券